Algoritma Subprogram
Algoritma Pemograman
Rangkuman Materi
Tanggal 4 dan 10 Des 2009
Pembuat : Fiki.Zaini
Nim : 109093000124
Kelas : SI.D
Hari ini belajar Sub program.
Sub program adalah bagian dari program yang dapat berdiri sendiri. Sub program juga merupakan sebuah program. Dimana sub program itu membantu program utama.
Fungsi dari sub program itu sendiri adalah :
1. Untuk memydahkan program jika adabagian program yang ditulis berulang.
2. Lebih mudah dalam mengolah program(dalam mengoreksi,memodifikasi dan menulis ulang).
Macam-macam sub program antara lain:
a. Fungsi
b. Prosedur
Tanggal 4 Desember
1.Fungsi
Telah dikatakan diatas bahwa sub program itu sama seperti program , jadi fungsi kita dapat melihat penulisan fungsi sama seperti program.
Element penulisan fungsi sama seperti program dasar. Ada judul fungsi, kamus, dan algoritma yang dilakukan dalam fungsi tersebut.
Contoh penulisan fungsi dalam sebuah program:
Program utama
Algoritma FX
{dibaca x dan y dari piranti msukkan untuk memenuhi fungsi f(x)=x2+3x-5 dan f(x,y)=x2+3xy-5y-1 dan menulis hasil perhitungan tersebut}
Kamus :
X : integer
Y : real
FX : integer
FY : real
Function FXK(X : integer) --> integer
Function FXY ( X,Y : real) --> real
Algoritma :
Input(x,y)
FX <-- FXK (x) FXY <-- FXY (IntToReal(x,y)) Output(FXK,FXY)
Program fungsi
Function FXK (x: integer) --> integer
{ memessukan x ke rumus fungsi f(x)=x2+3x-5 }
Kamus local :
Algoritma :
--> ( x*x + 3*x – 5 )
Function FXY (x,y: real) --> real
{ memessukan x,y ke rumus fungsi f(x,y)=x2+3xy-5y-1 }
Kamus local :
Algoritma :
--> ( x*x + 3*x *y – 5y – 1 )
Jadi dengan adanya fungsi diatas kita lebih muda mengamati program akan mau berjalan bagaimana? lebih terarah dan mudah memperbaiki program jika ada yang eror.
Selanjutnya LATIHAN SOAL.
1.Fungsi Untuk Pecahan
Sebuah type pecahan tediri atas pembilang dan penyebut, bilangan integer, dan dan fungsi yang realisasi dari operator pecahan :
JumlahP : menerima 2 buah pecahan, menghasilkan jumlah berupa pecahan
KurangP : menerima 2 buah pecahan menghasilkan selisih berupa pecahan
KaliP : menerima 2 buah pecahan menghasilkan hasil kali berupa pecahan
BagiP : menerima 2 buah pecahan menghasilkan hasil bagi berupa pecahan
2.Fungsi genap ganjil
Buatlah sebuah fungsi yang akan menerima sebuah bilangan dengan tipe integer, yang lalu memberikan harga balikan berupa nilai logik,tru bila genap dan false bila ganjil.
3.Pecahan Uang
Buatlah fungsi untuk memecahkan pecahan uang dengan jumlahnya.Proses pemecahan uang menjasi:
50.000 a lembar
20.000 b lembar
5.000 c lembar
Fungsi hanya menerima inputan berupa kelipatan 5.000 ( hits : pastikan pada saat pemanggilan)
Contoh :
Pemanggilan fungsi
( x,y,z) <-- pecahan duit (75.000) Maka harga x adalah 1 harga y adalah 1 harga z adalah 1 (x,y,z) <-- pecahan duit (72.000) => tidak boleh dilakukan.
Jawab Latihan:
1.Fungsi Untuk Pecahan
Program Pecahan
{memasukkan pecahanyang terdiri darin pembialng dan penyebut dan menfg eksekisi dengan perhitungan tambah,kurang,bagi dan kali}
Kamus :
Type Pecahan :
P1,P2,P3 : integer
PT,PK,PB,PX : Pecahan
Function Tambah ( P1,P2 : Pecahan) --> Pecahan
Function Kurang ( P1,P2 : Pecahan) --> Pecahan
Function Bagi ( P1,P2 : Pecahan) --> Pecahan
Function Kali ( P1,P2 : Pecahan) --> Pecahan
Algoritma :
Input(P1.a,P1.b)
Input(P2.a,P2.b)
PT <-- Tambah (P2,P1) PK <-- Kurang (P2,P1) PB <-- Bagi (P2,P1) PX <-- Kali (P2,P1) Output(PT,PK,PB,PX) Function Tambah (P1,P2 : Pecahan ) --> Pecahan
Kamus local:
Algoritma :
P3.a <-- (P1.a * P2.b + P2.a*P1.b) P3.b <-- ( P1.b * P2.b) --> (P3.a,P3.b)
Function Kurang (P1,P2 : Pecahan ) --> Pecahan
Kamus local:
Algoritma :
P3.a <-- (P1.a * P2.b – P2.a*P1.b) P3.b <-- ( P1.b * P2.b) --> (P3.a,P3.b)
Function Bagi (P1,P2 : Pecahan ) --> Pecahan
Kamus local:
Algoritma :
P3.a <-- (P1.a * P2.b) P3.b <-- ( P1.b * P2.a) --> (P3.a,P3.b)
Function Kali (P1,P2 : Pecahan ) --> Pecahan
Kamus local:
Algoritma :
P3.a <-- (P1.a * P2.a) P3.b <-- ( P1.b * P2.b) --> (P3.a,P3.b)
2.Fungsi genap ganjil
Program Genap_Ganjil
{Memasukkan bilangan bertype integer dan menentikan ganjila atau genap bilangan ,apabila genap maka true dan bernilai false jika ganjil}
Kamus :
B : Integer
Function JBil (x : integer) --> Boolean
Algoritma :
Input (B)
X <-- B JB <-- JBil (int to Boolean (x)) Output (JB) Function JBil (x : integer) --> Boolean
Kamus lokal :
Algoritma :
B <-- (X mod 2) If (B = 0) then --> True
Else
--> False
Program Uang
{Masukkan nilai ulang dari keyboard kemudian tukar dengan berapa lembaran uang . Dengan X=50.000,Y=20.000,dan 5.000}
Kamus :
Type Uang
U : real
A : integer
K : string [20]
Function Pecahan Uang ( U : real ) -->
Algoritma :
A <-- (U mod 5000) If (A≠0) then K <-- “Tidak bias Tukar” else U <-- A UP <-- PecahanUang (U) Output (UP,K) Function Pecahan Uang (U : real) --> integer,integer,integer
Kamus lokal:
A : real
Algoritma :
If ( U div 50000) then
X <-- U div 50000 A <-- U mod 50000 Y <-- A div 20000 Z <-- Y mod 5000 else If ( U div 20000) then Y <-- U div 20000 Z <-- Y mod 5000 else Z <-- U mod 5000 --> X
--> Y
--> Z
Tanggal 10 Desember
2.Prosedur
Prosedur sama seperti fungsi yang merupakan seuah sub program ,untuk penulisan prosedur hampr sama dengan penulisan program harus di deklarasikan,dibuat badan prosedur, pemanggilan prosedur dan adanya variable local dan global.
Cara penulisan badan prosedur.
PosedureNamaProsedur(list nama parameter formal: type)
Kamus Lokal
Algoritma :
{Badan Prosedur}
{Deret intruksi pemberian Harga, input,output, analisa kamus,pengulangan atau prosedur}
Contoh Soal
Program Utama
Program LuasSegitiga
{program membaca panjang alas dan tinggi dari keyboard dan menghitung dengan rumus L=0.5*A*T}
Kamus :
A : integer
T : integer
L : Real
Prosedure Luas ( Input :A,T : integer; Output L :Real )
{Prosedur yang memproses alas A dan tinggi T untuk menjasi luas L sebuah segitiga}
Algoritma :
Input (A,T)
Luas (A,T,L)
Output (V)
Program Prosedur
Posedur Luas (Input :A,T : Integer; Output L : Real)
{IS : diberikan harga A dan T yang terdefinisi}
{FS : memproses harga A dan T se hingga dihasilkan V yaitu Luas dengan rumus : L= A*T*0.5}
Kamus Lokal :
Algoritma :
L <-- A * T * 0.5