150 likes | 352 Views
LOGIKA DAN ALGORITMA. - PERTEMUAN 7 – SUB PROGRAM. Pengantar. Program yang besar perlu dipecah menjadi program kecil . Tiap sub program disebut Modul . Dirancang oleh programmer atau developer program. Disebut Teknik Pemrograman Modular.
E N D
LOGIKA DAN ALGORITMA - PERTEMUAN 7 – SUB PROGRAM
Pengantar • Program yang besarperludipecahmenjadi program kecil. • Tiap sub program disebutModul. • Dirancangoleh programmer atau developer program. • DisebutTeknikPemrograman Modular. • Beberapapemrogramanmenyebutmoduldengansebutan : • Routine • Prosedur • Fungsi • Terdapatprosesutama, yang berfungsiuntukmenggabungkanmodul yang ada.
Bagan Cara Kerja Sub Program A1 A2 A3 Call Modul 1 A4 A5 Call Modul 2 A6 A7 Call Modul 1 A8 ModulUtama Modul 1 M11 M12 M13 M14 Modul 2 M21 M22 M23 M24
ContohProsedur (1) • Procedure Hitung_Luas_Lingkaran {Menghitungnilailuaslingkarandarimasukanjari-jaridi program utama} Deklarasi Luas:Real Const phi =22/7 Deskripsi Luas phi*r*r write(Luas)
ContohProsedur (2) • Procedure Hitung_Keliling_Lingkaran {Menghitungnilaikelilinglingkarandarimasukanjari-jaridi program utama} Deklarasi Keliling:Real Const phi =22/7 Deskripsi Keliling 2*phi*r write(Keliling)
ContohProsedur (3) • Procedure Hitung_Keliling_Luas_Lingkaran {MenghitungnilaikelilingdanLuaslingkaran} Deklarasi r:Real Procedure Hitung_Luas_Lingkaran Procedure Hitung_Keliling_Lingkaran Deskripsi read(r) Hitung_Luas_Lingkaran Hitung_Keliling_Lingkaran
LATIHAN SOAL • Tuliskan procedure untukmenentukannilaiterbesarantara 2 buahvariabelbilbulat, A dan B. Nilaiterbesardicetakkelayar. • Buatlahmasing-masingproceduruntukmenghitungluasdan volume balokdaridaftar menu sederhana. dimana L balok = 6 x s x s V balok = s x s x s
Parameter Masukan(Input Parameter) • Parameter yang nilainyaberlakusebagaimasukanuntuk procedure yang dipanggil. • Biasadisebutparameter nilai(value parameter atauparameter by value)
Contoh Parameter Masukan • Procedure TentukanMaksimum (Input A,B:Integer) {Menentukannilaiterbesardari 2 buahvariabel A dan B. Nilai A dan B dibacaterlebihdahulu} Deklarasi Maks :Integer Deskripsi If (A>B) then Maks A Else Maks B Endif Write(Maks) • AlgoritmaUtama {AlgoritmautamauntukmemanggilTentukanMaksimum} Deklarasi X, Y :Integer Procedure TentukanMaksimum (Input A,B :Integer) Deskripsi read(X,Y) TentukanMaksimum(X,Y)
Parameter Keluaran(Output Parameter) • Parameter yang menampungkeluaran yang dihasilkanoleh procedure. • Parameter keluarandideklarasikandidalam header prosedur, seperti parameter masukan.
Contoh Parameter Keluaran • Procedure TentukanMaksimum (Input A,B:Integer, Output Maks : integer) {Menentukannilaiterbesardari 2 buahvariabel A dan B. Nilai A dan B dibacaterlebihdahulu} Deklarasi {tidakada} Deskripsi If (A>B) then Maks A Else Maks B Endif • AlgoritmaUtama {AlgoritmautamauntukmemanggilTentukanMaksimum} Deklarasi X, Y, Z :Integer Procedure TentukanMaksimum (Input A,B :Integer, Output Hasil:integer) Deskripsi read(X,Y) TentukanMaksimum(X,Y,Z) write(Z)
Parameter Masukan/Keluaran • Procedure TentukanMaksimum (I/O A,B:integer) {Menentukannilaiterbesardari 2 buahvariabel A dan B. Nilai A dan B dibacaterlebihdahulu} Deklarasi tukar:integer Deskripsi If (A<B) then tukar A A B B tukar Endif • AlgoritmaUtama {AlgoritmautamauntukmemanggilTentukanMaksimum} Deklarasi X, Y, :Integer Procedure TentukanMaksimum (I/O A,B:integer) Deskripsi read(X,Y) TentukanMaksimum(X,Y) write(A)
Fungsi • Program yang memberikan/mengembalikansebuahnilai (return) daritipetertentu. • Dalamnamafungsiterdapatsebuahnilai, sepertihalnyasebuahvariabel. Biasanyaberupakatakerja. • Format PembuatanFungsi : FunctioNamaFungsi(daftar parameter) Tipe Data {Bagiannamafungsi} Deklarasi {Pendeklarasiankamus data} Deskripsi {BagianalgoritmaUtama} Return (nilai)
ContohFungsi • Function HitungFaktorial(input x : integer) integer Deklarasi Hasil:integer Deskripsi Hasil 1 {menghitungnilaiHasil} For i N downto 1 do hasil=hasil*I Endfor Return(hasil) • AlgoritmaMenghitungnilai e {Menghitungnilai e} Deklarasi A, n ,r temp:integer Function HitungFaktorial(input x:integer) integer Deskripsi read(n) exp1 for i 1 to n do expexp+1/HitungFaktorial(i) Endfor write(exp)
LATIHAN 7 • TuliskanFungsiuntukmendeteksitipesuatusegitiga, apakahtermasuk : • Segitigasiku-siku • Segitigasamasisi • Segitigasama kaki • Segitigasembarang Jikadimasukkandari keyboard panjangsisi-sisinyaa,b,c (type real) danoutputnyaberupa type segitiga