,ALGORITMA
M.T.I PEMROGRAMAN 2
Modular (Prosedur dan Fungsi)
Kode Program
Prosedur
adalah sebuah blok Prosedur
program tersendiri, .
.
.
yang merupakan bagian .
lebih besar.
Program Utama
Contoh Program Prosedur
#include<iostream.h>
#include<conio.h>
void info_program();
void main()
{
info_program();
getch();
cout << “\n”;
info_program();
getche();
}
void info_program()
{
cout << “Selamat Belajar\n”;
cout << “di Universitas Teknologi Sumbawa”;
}
Fungsi
adalah sebuah blok program tersendiri yang
merupakan bagian dari program lain yang lebih besar
sama halnya dengan prosedur hanya saja fungsi
memiliki hasil keluaran
Proses c=a*b
Keluaran c=8
PROSEDUR FUNGSI
Contoh Program Fungsi
#include<iostream.h>
#include<conio.h>
int kuadrat(int b);
void main()
{
cout << “kuadrat 2 adalah ” << kuadrat(2);
cout << “\nkuadrat 3 adalah ” << kuadrat(3);
cout << “\nkuadrat 4 adalah ” << kuadrat(4);
getche();
}
int kuadrat(int b)
{ int z;
z=b*b;
}
Rekursif
• Merupakan proses memanggil dirinya sendiri yang
biasa dilakukan oleh fungsi atau prosedur pada
pemrograman prosedural.
• Rekursif aka terus berjalan saampai kondisi berhenti
terpenuhi, mirip dengan perulangan /looping.
• Ada beberapa masalah yang akan lebih mudah jika
dipecahkan menggunakan fungsi rekursif. Disamping
itu kode program yang menggunakan fungsi rekursif
akan lebih mudah dipahami (lebih ringkas) dari pada
versi iterasinya.
CONTOH : Program mencari hasil nilai pangkat. misalnya 32 = 9.
Iterasi
#include <iostream.h>
#include <conio.h>
void main ()
{
int x,a,i,hasil=1;
cout <<"Program Iterasi Perpangkatan \n“ ;
cout << “Masukkan nilai x = "; cin >> x ;
cout << “Masukkan nilai a = "; cin >> a ;
for ( i = 1 ; i <=a ; i++ )
{
hasil = hasil*x;
}
cout<<“Hasil pemangkatan "<<x <<"^" <<a <<" = " <<hasil;
getche();
}
Rekursif
#include <iostream.h>
#include <conio.h>
int pangkat (int j, int k);
void main()
{ int x, a, hasil;
cout <<"Program Rekursif Perpangkatan \n“ ;
cout << “Masukkan nilai x = "; cin >> x ;
cout << “Masukkan nilai a = "; cin >> a ;
cout << “Hasil pemangkatan "<<x <<"^" <<a <<" = " <<pangkat(x,a);
getche(); }
#include<iostream>
#include<conio.h>
void fahrenheit(float carifar, float c2);
void reamur(float carirea, float c2);
void kelvin(float carikel, float c2);
void main()
{
clrscr(); int hasil=1,c;
cout<< "Masukkan suhu dalam Celcius : ";
cin>>c;
fahrenheit(hasil,c); cout<<“\n”;
reamur(hasil,c); cout<<“\n”;
kelvin(hasil,c); cout<<“\n”;
getche();
}
void fahrenheit(float carifar, float c2)
{
carifar= c2*1.8+ 32;
cout<<“Nilai Fahrenheit : “<<carifar;
}
void reamur(float carirea, float c2)
{
carirea= c2*0.8;
cout<<“Nilai Reamur : “<<carirea;
}
void kelvin(float carikel, float c2)
{
carikel= c2+273.15;
cout<<“Nilai Kelvin : “<<carikel;
}
Bintang
#include<iostream.h>
#include<conio.h>
int bintangatas(int bil);
int bintangbawah(int bil);
void main()
{
clrscr();
int bil;
cout<<“Masukkan jumlah baris bintang: “; cin>>bil;
bintangatas(bil);
bintangbawah(bil);
getche();
}
int bintangatas(int bil)
{ int a,b;
for(a=1;a<=bil;a++)
{
for(b=bil;b>=a;b--)
cout<<“ “;
for(b=a;b<2*a;b++)
{
cout<<“*”;
}
for(b=2*(a-1);b>=a;b--)
{ cout<<“*”; }
cout<<“\n”;
}
}
int bintangbawah(int bil)
{ int a,b;
for(a=bil-1;a>=1;a--)
{
for(b=a;b<=bil;b++)
cout<<“ “;
for(b=2*a;b>a;b--)
{
cout<<“*”;
}
for(b>a;b<=2*(a-1);b++)
{ cout<<“*”; }
cout<<“\n”;
}
}
int bintang(int bil)
{ int a,b;
For(a=1;a<=bil;a++)
{ for(b=1;b<=a;b++)
cout<<“*”;
cout<<“\n”;
}
}
int bintang2(int bil)
{ int a,b;
For(a=1;a<=bil;a++)
{ for(b=bil-1;b>=a;b--)
cout<<“*”;
cout<<“\n”;
}}
Fibbonaci
• Barisan bilangan Fibonacci dapat dinyatakan sebagai berikut:
Fn = (x1n – x2n)/ sqrt(5)
dengan
Fn adalah bilangan Fibonacci ke-n
x1 dan x2 adalah penyelesaian persamaan x2 – x – 1 = 0.
Perbandingan antara Fn+1 dengan Fn hampir selalu sama untuk
sebarang nilai n dan mulai nilai n tertentu, perbandingan ini
nilainya tetap.
• Dapat juga dengan Logika berikut ;
Angka 1 = 0
Angka ke-2 = 1
Angka ke-3= angka 1+ Angka ke-2
Angka ke-4 = angka 2+ Angka ke-3
dst….
Contoh menentukan bilangan Fibbonaci
#include <iostream.h>
#include <conio.h>
int fibo(int n);
void main()
{clrscr(); int n;
cout << “Menentukan Nilai Fibbonaci\n”;
cout <<“ Input Nilai”; cin >> n;
cout << “Nilai Fibbonaci dari“<<n<<“bilangan = ”<<fibo(n) ;
getche(); }
int fibo(int n)
{
int i, next, a=0, b=1;
for (i=0;i<n;i++) {if (i<=1; {next=1;}
else {next= a+b; a=b; b=next;} } }
#include<iostream.h>
#include<conio.h>