Berikut contoh program menghitung dengan Regula Falsi metode numerik.
#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<string.h>
#include<process.h>
using namespace std;
// Deklarasi Formulanya
#define EPS 0.00001
#define f(x) (pow(2.718,-x)-x)
int n;
void FAL_POS();
int main()
{
cout <<"Metode Regula-Falsi "<< endl;
cout <<"Equation is -> f(x)=(e^-x)-x "<< endl;
cout <<"Masukkan Iterasi Maximum : "; cin >> n;
FAL_POS();
getch();
}
void FAL_POS()
{
float x1,x2,x0;
float f1,f2,f0;
int itr=n,i;
for(x1=0.0;;)
{
f1=f(x1);
if(f1>0)
break;
else
x1=x1+0.1;
}
x0=x1-0.1;
f0=f(x0);
printf("\n----------------------------------------------------");
printf("\n ITERATION\t x2\t\t\t F(X)\n");
printf("\n----------------------------------------------------\n");
for(i=0;i<itr;i++)
{
x2=x0-((x1-x0)/(f1-f0))*f0;
f2=f(x2);
if(f0*f2>0)
{
x1=x2;
f1=f2;
}
else
{
x0=x2;
f0=f2;
}
if(fabs(f(2))>EPS)
printf("\n %d \t %.7f \t %.7f ",i+1,x2,f2);
}
printf("\n----------------------------------------------------");
printf("\n Result = %.10f ",x2);
printf("\n----------------------------------------------------");
}
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<string.h>
#include<process.h>
using namespace std;
// Deklarasi Formulanya
#define EPS 0.00001
#define f(x) (pow(2.718,-x)-x)
int n;
void FAL_POS();
int main()
{
cout <<"Metode Regula-Falsi "<< endl;
cout <<"Equation is -> f(x)=(e^-x)-x "<< endl;
cout <<"Masukkan Iterasi Maximum : "; cin >> n;
FAL_POS();
getch();
}
void FAL_POS()
{
float x1,x2,x0;
float f1,f2,f0;
int itr=n,i;
for(x1=0.0;;)
{
f1=f(x1);
if(f1>0)
break;
else
x1=x1+0.1;
}
x0=x1-0.1;
f0=f(x0);
printf("\n----------------------------------------------------");
printf("\n ITERATION\t x2\t\t\t F(X)\n");
printf("\n----------------------------------------------------\n");
for(i=0;i<itr;i++)
{
x2=x0-((x1-x0)/(f1-f0))*f0;
f2=f(x2);
if(f0*f2>0)
{
x1=x2;
f1=f2;
}
else
{
x0=x2;
f0=f2;
}
if(fabs(f(2))>EPS)
printf("\n %d \t %.7f \t %.7f ",i+1,x2,f2);
}
printf("\n----------------------------------------------------");
printf("\n Result = %.10f ",x2);
printf("\n----------------------------------------------------");
}
Sekian script C++ untuk Regula-Falsi Method, jika ada yang ingin ditanyakan bisa melaui komentar dibawah ini atau langsung menghubungi saya melalui contact person yang ada. Terima Kasih & Semoga Bermanfaat
Program C++ Regula Falsi Method (Metode Regula-Falsi)
Posted by RZDev: Belajar Programming! on Saturday, October 21, 2017
Berikut ini merupakan program metode numerik yaitu Bisection Method atau metode bagidua.
#define cek 17
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <cmath>
#include <iomanip>
using namespace std;
float f(float x);
int main()
{
float a,b,c,lebar;
float epsilon;
int i=0;
cout << "METODE BAGI DUA " <<endl;
cout << endl;
cout <<"BATAS PERTAMA (a) : ";
cin >>a;
cout <<"BATAS KEDUA (b) : ";
cin >>b;
cout <<"EPSILON : ";
cin >>epsilon;
cout <<endl <<endl;
if (f(a)*f(b)>0){
return 0;
}
else{
cout <<"i"<<setw(cek)<<"a"<<setw(cek)<<"c"<<setw(cek)<<"b"<<setw(cek)<<"f(a)";
cout <<setw(cek)<<"f(c)"<<setw(cek)<<"f(b)"<<setw(cek)<<"Selang Baru"<<setw(cek)<<"Lebarnya"<<endl;
do
{
c=(a+b)/2;
f(c);
if(c<epsilon || i>40){
return 0;
}
else{
if(f(a)*f(c)<0){
cout <<i<<setw(cek)<<a<<setw(cek)<<c<<setw(cek)<<b<<setw(cek)<<f(a)<<setw(cek);
cout <<f(c)<<setw(cek)<<f(b)<<setw(cek)<<"[A,C]";
b=c;
lebar= abs(b-a);
cout<<setw(cek)<<lebar<<endl;
cout<<endl;
}
else{
cout<<i<<setw(cek)<<a<<setw(cek)<<c<<setw(cek)<<b<<setw(cek)<<f(a)<<setw(cek);
cout<<f(c)<<setw(cek)<<f(b)<<setw(cek)<<"[C,B]";
a=c;
lebar= abs(b-a);
cout<<setw(cek)<<lebar<<endl;
cout<<endl;
}
i++;
}
}
while( (lebar > epsilon) );
cout<<"Hampiran Akarnya = "<<c<<endl;
cout<<"Banyaknya Iterasi : "<<i;
}
getch();
return 0;
}
float f(float x)
{
float e=2.71828182845904523536;
float hasil,hasil2,hasil3,hasil4;
hasil = x*(-1);
hasil3 = pow(e,hasil);
hasil4=hasil3-x;
return (hasil4);
}
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <cmath>
#include <iomanip>
using namespace std;
float f(float x);
int main()
{
float a,b,c,lebar;
float epsilon;
int i=0;
cout << "METODE BAGI DUA " <<endl;
cout << endl;
cout <<"BATAS PERTAMA (a) : ";
cin >>a;
cout <<"BATAS KEDUA (b) : ";
cin >>b;
cout <<"EPSILON : ";
cin >>epsilon;
cout <<endl <<endl;
if (f(a)*f(b)>0){
return 0;
}
else{
cout <<"i"<<setw(cek)<<"a"<<setw(cek)<<"c"<<setw(cek)<<"b"<<setw(cek)<<"f(a)";
cout <<setw(cek)<<"f(c)"<<setw(cek)<<"f(b)"<<setw(cek)<<"Selang Baru"<<setw(cek)<<"Lebarnya"<<endl;
do
{
c=(a+b)/2;
f(c);
if(c<epsilon || i>40){
return 0;
}
else{
if(f(a)*f(c)<0){
cout <<i<<setw(cek)<<a<<setw(cek)<<c<<setw(cek)<<b<<setw(cek)<<f(a)<<setw(cek);
cout <<f(c)<<setw(cek)<<f(b)<<setw(cek)<<"[A,C]";
b=c;
lebar= abs(b-a);
cout<<setw(cek)<<lebar<<endl;
cout<<endl;
}
else{
cout<<i<<setw(cek)<<a<<setw(cek)<<c<<setw(cek)<<b<<setw(cek)<<f(a)<<setw(cek);
cout<<f(c)<<setw(cek)<<f(b)<<setw(cek)<<"[C,B]";
a=c;
lebar= abs(b-a);
cout<<setw(cek)<<lebar<<endl;
cout<<endl;
}
i++;
}
}
while( (lebar > epsilon) );
cout<<"Hampiran Akarnya = "<<c<<endl;
cout<<"Banyaknya Iterasi : "<<i;
}
getch();
return 0;
}
float f(float x)
{
float e=2.71828182845904523536;
float hasil,hasil2,hasil3,hasil4;
hasil = x*(-1);
hasil3 = pow(e,hasil);
hasil4=hasil3-x;
return (hasil4);
}
Sekian script C++ untuk Bisection Method, jika ada yang ingin ditanyakan bisa melaui komentar dibawah ini atau langsung menghubungi saya melalui contact person yang ada. Terima Kasih & Semoga Bermanfaat
Pengertian, Parameter & Faktor Penyebab Menurunnya QoS (Quality of Service)
Posted by RZDev: Belajar Programming! on Tuesday, October 17, 2017
Logic Gate atau Gerbang Logika merupakan dasar pembentukan Sistem Elektronika Digital yang berfungsi untuk mengubah satu atau beberapa Input (masukan) menjadi sebuah sinyal Output (Keluaran) Logis.
Gerbang Logika beroperasi berdasarkan sistem bilangan biner yaitu bilangan yang hanya memiliki 2 kode simbol yakni 0 dan 1 dengan menggunakan Teori Aljabar Boolean.
Gerbang Logika yang diterapkan dalam Sistem Elektronika Digital pada dasarnya menggunakan Komponen-komponen Elektronika seperti Integrated Circuit (IC), Dioda, Transistor, Relay, Optik maupun Elemen Mekanikal.
Post kali ini saya mau berbagi Program Konversi Bilangan Biner, Desimal, Oktal & Hexadesimal. Untuk script dapat di lihat dibawah ini semoga bermanfaat & terbantu ...
Silahkan tanyakan jika ada syntax yang kurang paham, bisa hubungi saya langsung atau beri komentar dibawah ini
#include <stdio.h>
#include <string.h>
void welcome() {
printf("PROGRAM KONVERSI BILANGAN");
}
void cls() {
int i;
for (i=0;i<100;i++) {
printf("\n");
}
}
void biner(int n) {
if (n > 0) {
biner(n/2);
printf("%d",n%2);
}
}
int pangkat(int n,int x) {
int nilai=1,i;
for (i=0;i<x;i++) {
nilai=nilai*n;
}
return nilai;
}
int cekdesimal(int x) {
//checking
if (x < 0) { //no minus
return 1;
}
//end of checking, all is right
return 0;
}
int cekbiner(char str[],int *x) {
int i,dec = 0;
//checking
for (i = 0; i < strlen(str); i++)
{
if ((str[i] - '0' != 1 ) && (str[i] - '0' != 0))
{
return 1;
}
}
//end of checking, all is right
for (i =0; i < strlen(str) ; i++)
{
if (str[i] - '0' == 1) {
dec = dec + pangkat(2,strlen(str)-1-i);
}
}
*x = dec;
return 0;
}
int cekoktal(char str[],int *x) {
int i,dec=0;
//checking
if ((strlen(str) >= 6) && (str[0] > 49)) {
return 1;
}
for (i = 0; i < strlen(str); i++)
{
if (!((str[i] > 47 ) && (str[i] < 56)))
{
return 1;
}
}
//end of checking, all is right
for (i =0; i < strlen(str) ; i++)
{
dec = dec + (str[i] - '0') * pangkat(8,strlen(str)-1-i);
}
*x = dec;
return 0;
}
int cekhexa(char str[],int *x) {
int i,dec=0;
//checking
for (i = 0; i < strlen(str); i++)
{
if (! ( ((str[i] > 47 ) && (str[i] < 58)) || ((str[i] > 96 ) && (str[i] < 103)) || ((str[i] > 64 ) && (str[i] < 71)) ))
{
return 1;
}
}
//end of checking, all is right
for (i =0; i < strlen(str) ; i++)
{
if ((str[i] >= '0' ) && (str[i] <= '9')) {
dec = dec + (str[i] - '0') * pangkat(16,strlen(str)-1-i);
}
else if ((str[i] > '@' ) && (str[i] < 'G')) {
dec = dec + (str[i] - 55) * pangkat(16,strlen(str)-1-i);
}
else if ((str[i] > 96 ) && (str[i] < 'g')) {
dec = dec + (str[i] - 87) * pangkat(16,strlen(str)-1-i);
}
}
*x = dec;
return 0;
}
int main() {
int x,dec;
char oct[6],bin[16],hex[4];
welcome();
while(1) {
printf("\n\n===============================\nBasis Angka Masukan\n1. Desimal\n2. Biner\n3. Oktal\n4. Heksadesimal\nChoose: ");
scanf("%d",&x);
switch(x) {
case 1:
printf("Masukan angka desimal (Maksimal 65535): ");
scanf("%d",&dec);
if(cekdesimal(dec) != 0) {
printf("Input salah");
break;
}
printf("Biner: ");
biner(dec);
printf("\nOktal: %o",dec);
printf("\nHexa: %X",dec);
break;
case 2:
printf("Masukan angka biner (Maksimal 16 bit): ");
scanf("%s",bin);
if(cekbiner(bin,&dec) != 0) {
printf("Input salah");
break;
}
printf("\nDesimal: %d",dec);
printf("\nOktal: %o",dec);
printf("\nHexa: %X",dec);
break;
case 3:
printf("Masukan angka Oktal (Maksimal 177777): ");
scanf("%s",oct);
if(cekoktal(oct,&dec) != 0) {
printf("Input salah");
break;
}
printf("Desimal: %d",dec);
printf("\nBiner: ");
biner(dec);
printf("\nHexa: %X",dec);
break;
case 4:
printf("Masukan angka hexa (Maksimal FFFF): ");
scanf("%s",hex);
if(cekhexa(hex,&dec) != 0) {
printf("Input salah");
break;
}
printf("Desimal: %d",dec);
printf("\nBiner: ");
biner(dec);
printf("\nOktal: %o",dec);
break;
default: printf("Not Present");
} //end case
} //end loop
return 0;
} //end main
#include <string.h>
void welcome() {
printf("PROGRAM KONVERSI BILANGAN");
}
void cls() {
int i;
for (i=0;i<100;i++) {
printf("\n");
}
}
void biner(int n) {
if (n > 0) {
biner(n/2);
printf("%d",n%2);
}
}
int pangkat(int n,int x) {
int nilai=1,i;
for (i=0;i<x;i++) {
nilai=nilai*n;
}
return nilai;
}
int cekdesimal(int x) {
//checking
if (x < 0) { //no minus
return 1;
}
//end of checking, all is right
return 0;
}
int cekbiner(char str[],int *x) {
int i,dec = 0;
//checking
for (i = 0; i < strlen(str); i++)
{
if ((str[i] - '0' != 1 ) && (str[i] - '0' != 0))
{
return 1;
}
}
//end of checking, all is right
for (i =0; i < strlen(str) ; i++)
{
if (str[i] - '0' == 1) {
dec = dec + pangkat(2,strlen(str)-1-i);
}
}
*x = dec;
return 0;
}
int cekoktal(char str[],int *x) {
int i,dec=0;
//checking
if ((strlen(str) >= 6) && (str[0] > 49)) {
return 1;
}
for (i = 0; i < strlen(str); i++)
{
if (!((str[i] > 47 ) && (str[i] < 56)))
{
return 1;
}
}
//end of checking, all is right
for (i =0; i < strlen(str) ; i++)
{
dec = dec + (str[i] - '0') * pangkat(8,strlen(str)-1-i);
}
*x = dec;
return 0;
}
int cekhexa(char str[],int *x) {
int i,dec=0;
//checking
for (i = 0; i < strlen(str); i++)
{
if (! ( ((str[i] > 47 ) && (str[i] < 58)) || ((str[i] > 96 ) && (str[i] < 103)) || ((str[i] > 64 ) && (str[i] < 71)) ))
{
return 1;
}
}
//end of checking, all is right
for (i =0; i < strlen(str) ; i++)
{
if ((str[i] >= '0' ) && (str[i] <= '9')) {
dec = dec + (str[i] - '0') * pangkat(16,strlen(str)-1-i);
}
else if ((str[i] > '@' ) && (str[i] < 'G')) {
dec = dec + (str[i] - 55) * pangkat(16,strlen(str)-1-i);
}
else if ((str[i] > 96 ) && (str[i] < 'g')) {
dec = dec + (str[i] - 87) * pangkat(16,strlen(str)-1-i);
}
}
*x = dec;
return 0;
}
int main() {
int x,dec;
char oct[6],bin[16],hex[4];
welcome();
while(1) {
printf("\n\n===============================\nBasis Angka Masukan\n1. Desimal\n2. Biner\n3. Oktal\n4. Heksadesimal\nChoose: ");
scanf("%d",&x);
switch(x) {
case 1:
printf("Masukan angka desimal (Maksimal 65535): ");
scanf("%d",&dec);
if(cekdesimal(dec) != 0) {
printf("Input salah");
break;
}
printf("Biner: ");
biner(dec);
printf("\nOktal: %o",dec);
printf("\nHexa: %X",dec);
break;
case 2:
printf("Masukan angka biner (Maksimal 16 bit): ");
scanf("%s",bin);
if(cekbiner(bin,&dec) != 0) {
printf("Input salah");
break;
}
printf("\nDesimal: %d",dec);
printf("\nOktal: %o",dec);
printf("\nHexa: %X",dec);
break;
case 3:
printf("Masukan angka Oktal (Maksimal 177777): ");
scanf("%s",oct);
if(cekoktal(oct,&dec) != 0) {
printf("Input salah");
break;
}
printf("Desimal: %d",dec);
printf("\nBiner: ");
biner(dec);
printf("\nHexa: %X",dec);
break;
case 4:
printf("Masukan angka hexa (Maksimal FFFF): ");
scanf("%s",hex);
if(cekhexa(hex,&dec) != 0) {
printf("Input salah");
break;
}
printf("Desimal: %d",dec);
printf("\nBiner: ");
biner(dec);
printf("\nOktal: %o",dec);
break;
default: printf("Not Present");
} //end case
} //end loop
return 0;
} //end main
Program Konversi Bilangan Biner, Desimal, Oktal dan Hexadesimal
Posted by RZDev: Belajar Programming! on Sunday, October 8, 2017
Berikut syntax C++ untuk penjumlahan 2 matriks dengan ordo BEBAS ...
Script ini tidak merupakan gabungan dari program yang menggunakan prosedur, jadi deklarasi silahkan di buat sendiri. Semoga dapat membantu !
void tambah ()
{
system("cls");
cout << "PENJUMLAHAN
MATRIKS " << endl;
do
{
cout << "Jumlah Baris
: "; cin >> baris;
cout << "Jumlah Kolom
: "; cin >> kolom;
}
while
((baris>10)||(kolom>10));
cout << "Matrix
A" << endl;
for(i=0;i<baris;i++)
for(j=0;j<kolom;j++)
{
cout << "data ["
<< i << "," << j << "] = "; cin
>> mA[i][j];
}
cout << "Matrix
B" << endl;
for(i=0;i<baris;i++)
for(j=0;j<kolom;j++)
{
cout << "data ["
<< i << "," << j << "] = "; cin
>> mB[i][j];
}
for(i=0;i<baris;i++)
for(j=0;j<kolom;j++)
hasil[i][j] =
mA[i][j] + mB[i][j];
cout <<
"\nHasilnya ..." << endl;
cout <<
"Matrix A + Matrix B
= Matrix C";
for(i=0;
i<baris; i++)
{
cout<<'\n';
for(j=0;
j<kolom; j++)
cout <<
setw(4) << mA[i][j];
cout <<
" ";
for(j=0;
j<kolom; j++)
cout <<
setw(4) << mB[i][j];
cout <<
" ";
for(j=0;
j<kolom; j++)
cout <<
setw(4) << hasil[i][j];
cout <<
endl;
}
}