Laman

Jumat

Faktorial with Rekursif


Guyz, udah pernah denger blom tentang faktorial?? tentunya udah kan waktu di-SMA/SMK khususnya pada pelajaran Matematika, nah itu topik kita kali ini, mencari faktorial dengan rekursif.

Pertama pengertian Faktorial adalah Hasil kali bilangan bulat positif dari 1 sampai n disebut n factorial ditulis n!
jadi n ! = 1.2.3….…..(n-2)(n-1).n ; dan 0 ! = 1
Contoh:

Hitunglah 5 !
Penyelesaian
5 != 5.4.3.2.1= 120

Langsung aja ya guyz, Menghitung Nilai Factorial Dari Suatu Bilangan Bulat Positif menggunakan cara Rekursif. Pengertian Rekursif, Rekursif Berarti Bahwa Suatu Proses Bisa Memanggil Dirinya Sendiri.

Menurut Definisi Dalam Microsoft Bookshelf Rekursif Adalah Kemampuan Suatu Rutin Untuk Memanggil Dirinya Sendiri. Dalam Rekursif Sebenarnya Terkandung Pengertian Contoh Paling Sederhana Dari Proses Rekursif Ini adalah Proses Menghitung Nilai Factorial Dari Suatu Bilangan Bulat Positif. Sourcecode dari proses mencari faktorial suatu bilangan antara lain sebagai berikut:

01#include
02#include
03class Faktorial {
04 friend istream& operator>>(istream&, Faktorial&); //overloading
05 friend ostream& operator<<(ostream&, const Faktorial&); //overloading
06public:
07 long hitung(int);
08private:
09 int suku_n;
10 long hasil;
11};
12long Faktorial::hitung(int n) { // hati-hati, n tidak boleh negatif
13 if ((n==0) || (n==1)) return 1; // kasus penyetop, mengembalikan nilai integer
14 else return n*hitung(n-1); // memanggil rekursif, mengarah ke kasus penyetop
15}
16istream& operator>>(istream& input, Faktorial& x) { //input overloading
17 cout << "Masukkan integer : ";
18 input >> x.suku_n;
19 x.hasil = x.hitung(x.suku_n);
20 return input;
21}
22ostream& operator<<(ostream& output, const Faktorial& x) { // output overloading
23 output << "Hasil perhitungan\n\t " << x.suku_n << " ! = " << x.hasil;
24 return output;
25}
26int main() { //proses panggil class
27 Faktorial Bilangan;
28 cin >> Bilangan;
29 cout << Bilangan << endl;
30 system("PAUSE");
31 return EXIT_SUCCESS;
32}

Dari program diatas telah ada keterangan dan mana yg rekursifnya berfungsi ke pemanggil yang nantinya mengarah ke penyetop atau pemberhenti program jika masukan dan loop telah memenuhi persyaratan yang telah ditentukan dalam program dan rekursif.

Setelah tahu program/sourecodenya, sekarang kita harus tahu pula output atau keluarannya dari soucecode diatas, sebagai contoh, setelah di-Run kita masukkan angka integer 5, perhitungan manualnya 5! =5 x 4 x 3 x 2 x 1
sedangkan dari hasil Running setelah dimasukkan angka integer 5, maka keluarannya:

Nah, ternyata benarkan keluaran dari 5 ! = 120, alhamdulillah program telah jadi, hehe, guyz sudah waktunya ane cau lgai neh, ada panggilan dan undangan yang slalu dikumandangkan tiap 5 waktu pada waktunya ahihihihi,,
wassalamu’alaikum

Program Dan Algoritma Mencari Titik Tengah


Algoritma :

Algoritma untuk mencari titik tengah sebuah garis yang ujung titiknya adalah A(x1,y1) dan B(x2,y2).
1.masukan nilai dari titik x1,x2 dan titik y1,y2.
2.masukan ke dalam rumus yang menghasilkan nilai dari titik tengah dari inputan yang kita masukan.
3.tampilkan hasil nya.


Penjelasan:

1.Masukan nikai dari x1, x2, y1, y2
2.Tampilkan nilai titik tengah dari sumbu x dengan rumus (x1+x2/2)
3.Tampilkan nilai titik tengah dari sumbu y dengan rumus (y1+y2/2)
4.Tampikan secara keseluruhan dari titik tengah sumbu x dan y


Skrip program dalam bahasa C++:

#include
int main ()
{
float x1,x2,y1,y2;
float a, b;
cout << “Menghitung Titik Tengah sebuah Garis” << endl;
cout <<”Pada Titik A(x1,y1) dan B(x2,y2)” << endl;
cout<<”masukkan x1 = “;
cin>>x1;
cout<<”masukkan x2 = “;
cin>>x2;
cout<<”masukkan y1 = “;
cin>>y1;
cout<<”masukkan y2 = “;
cin>>y2;
cout<<<”nilai dari garis X adalah = “<< a <<<”nilai dari garis Y adalah = “<< b <<<<”titik tengah dari x1,y1 dan x2,y2 adalah = “<<”(“<< a <<”;”<< b<<”)”<

algoritma dan program untuk memisahkan bilangan integer yang kurang dari 1000 menjadi komponen- komponennya

#include

int main () {

int ribuan, ratusan, puluhan, satuan, uang;

cout << " Masukan jumlah uang = " << endl; cin >> uang;

if(uang >= 1000)

cout << " Masukkan jumlah uang tertalu besar " << endl;
else

ribuan = uang/1000;
ratusan = (uang - ribuan * 1000)/100;
puluhan = (uang - ribuan * 1000 - ratusan * 100)/10;
satuan = (uang - ribuan * 1000 - ratusan * 100 - puluhan * 10);

cout << " tampilannya sebagai berikut : " << endl;

cout << ribuan << " Ribuan " << endl;
cout << ratusan << " Ratusan " << endl;
cout << puluhan << " Puluhan " << endl;
cout << satuan << " Satuan " << endl;

return 0;

}

Algoritma Dan Program Mencari Bilangan Bulat

Algoritma :
  • Hitunglah hasil kali dari dua buah bilangan prima lalu jumlahkan dengan 1 buah bilangan bulat!
  • Analisis :
  1. Input : misalkan k, l, m semua integer
  2. Proses : hasil <– k * l + m
  3. Output : tulis (hasil)
  • Deklarasi
k, l, m: integer (input)
hasil : integer (output)
  • Deskripsi
read(k, l, m)
hasil(k * l + m)
write(hasil)



Program C++:
#include

class Menghitung {
friend ostream& operator<<(ostream&, const Menghitung&);
friend istream& operator>>(istream&, Menghitung&);
public:
Menghitung();
void menghitung_hasil (){hasil = (k *l + m);}
private:
int k,l,m;
int hasil;
};

Menghitung::Menghitung(){
cout<<” Hasil perhitungan nya adalah: “;
}

istream& operator>>(istream& in, Menghitung& masukan){
cout<<”Ketikkan nilai k: “; in>>masukan.k;
cout<<”Ketikkan nilai l: “; in>>masukan.l;
cout<<”Ketikkan nilai m: “; in>>masukan.m;
return in;
}
ostream& operator<<(ostream& out, const Menghitung& keluaran){
out<<”Hasil perkalian dan pertambahan nya adalah: “<<
return out;
}

Algoritma dan Program Konversi Meter ke Cm dan Inchi (JAVA)


Program :

import jeliot.io.*;
public class MyClass {
public static void main() {
konversi x = new konversi();
x.masukan();
x.proses();
x.keluaran();}}
class konversi{
void masukan(){
System.out.print("Konversi dari meter ke cm dan inchi\n");
System.out.print("Masukkan nilai untuk meter: ");
m =Input.readInt();}
void proses(){
cm=m *100;}
void keluaran(){
System.out.print(m);
System.out.print(" meter : ");
System.out.print(cm);
System.out.print(" centimeter\n");
System.out.print(m);
System.out.print(" meter : ");
System.out.print(cm/2.54);
System.out.print(" inchi");}
private float m,cm;}


Penjelasan :
Program di atas adalah program untuk mengkonfersi nilai meter yang di inputkan oleh user dan akan dirubah atau dikonfersi menjadi nilai centimeter dan inchi. Untuk prosesnya sendiri kita tinggal memberi nilai rumus yang akan kita cari, dalam hal ini untuk mencari cm kita perlu mengkalikan nilai meter yang di inputkan oleh user dengan nilai 100, sedangkan untuk mencari nilai inchi kita tinggal memanggil nilai centimeter yang sudah dikonversikan kemudian di bagi dengan 2,54. Oke tidak ribet kan ? jadi kalau mau mengkonversikan dari apa ke apa atau dari ini ke itu, tinggal kita masukkan rumusnya aja.

Algoritma dan Program Konversi Meter ke Cm dan Inchi


Algoritma:

Deklarasi
m : float
cm : float
inci : float
Deskripsi
read m
cm=m*100
inci=cm*100/2.54
write cm
write inchi
end


Program :
#include
#include
void main(){
float m,cm,inci;
cout<<"Konversi dari meter ke cm dan inchi\n";
cout<<"Masukkan nilai untuk meter: ";cin>>m;
cm=m*100;
inci=cm/2.54;
cout<<<" meter : "<<<" centimeter\n";
cout<<<" meter : "<<<" inchi";
getch();}



Keterangan :
Program di atas adalah program untuk mengkonfersi nilai meter yang di inputkan oleh user dan akan dirubah atau dikonfersi menjadi nilai centimeter dan inchi. Untuk prosesnya sendiri kita tinggal memberi nilai rumus yang akan kita cari, dalam hal ini untuk mencari cm kita perlu mengkalikan nilai meter yang di inputkan oleh user dengan nilai 100, sedangkan untuk mencari nilai inchi kita tinggal memanggil nilai centimeter yang sudah dikonversikan kemudian di bagi dengan 2,54. Oke tidak ribet kan ? jadi kalau mau mengkonversikan dari apa ke apa atau dari ini ke itu, tinggal kita masukkan rumusnya aja.

Algoritma dan Program Mencari Bilangan Terbesar


Algoritma:

Deklarasi
a : integer
b : integer
Deskripsi
if(a>b)
then
write(a)
else if(aProgram :

#include
int main(){
int a,b;
cout<<"Masukkan bilangan terbesar\n";
cout<<"Masukkan bilangan pertama: ";
cin>>a;
cout<<"Masukkan bilangan kedua: ";
cin>>b;
if(a>b)
cout<<"Bilangan terbesar adalah "<<<"Bilangan terbesar adalah "<<<"Bilangannya sama "<<<"Bukan bilangan";
return 0;}

Program Class :
#include
#include
class terbesar{
friend istream & operator>>( istream &, terbesar &);
friend ostream & operator<<( ostream &, terbesar &);
public:
terbesar();
int proses(){return hasil =a>b;};
private:
int a,b;
int hasil;};
terbesar::terbesar(){cout<<"Mencari bilangan terbesar\n";}
istream& operator>>(istream& in, terbesar& masukan){
cout<<"Masukan bilangan pertama: ";
in>>masukan.a;
cout<<"Masukan bilangan kedua: ";
in>>masukan.b;
return in;}
ostream& operator<<(ostream& out, terbesar& keluar){
if(keluar.a>keluar.b){
out<<"Bilangan terbesar adalah "<<<"Bilangan terbesar adalah "<<<"Bilangannya sama "<<<"Bukan bilangan";}
return out;}
int main(){
terbesar x;
cin>>x;
x.proses();
cout<<

Keterangan :
Program di atas merupakan program yang di gunakan untuk mencari bilangan terbesar yang diinputkan oleh user. Dalam hal ini kita hanya menggukan 2 variabel sebagai pembanding, apabila ingin menjadi 3 bahkan lebih variabel pembandingnya juga bisa sesuai dengan keinginan kita. Jadi yang pertama kita bandingkan nilai pertama dan nilai kedua, jika nilai pertama lebih besar maka langsung saja di tampilkan nilai yang terbesar adalah nilai yang pertama, apabila nilai yang kedua yang lebih besar maka langsung saja di tampilkan nilai kedua yang lebih besar menggunakan fungsi IF ELSE dan jika yang kita inputkan itu sama juga bisa kita ketahui. Untuk nilai ELSE nya kita tinggal mau memberi nama apa saja terserah kita, mau bukan bilangan atau bilangan salah itu terserah anda karena ELSE itu sama dengan nilai default atau nilai di luar batas yang sudah di definisikan di atasnya.