Pemrograman Terstruktur
Pertemuan I
Muchamad Gozali
PEMROGRAMAN TERSTRUKTUR Sejarah Metodologi Pemrograman Metodologi pengembangan program pertama kali diperkenalkan Prof E.W Dykstra tahun 1960. Pemrograman terstruktur mengurangi pemakaian instruksi G ! Disebut "uga G ! less programming
Mengapa Pemrograman Terstruktur ? #risis metode pengembangan #emampuan tenaga programmer tertinggal $ulitnya modifikasi program "ika ada kesalahan atau perubahan $ulitnya modifikasi kode program karena tidak terstruktur dengan baik
Man aat Pemrograman Terstruktur Dapat menangani program yang besar dan komplek Dapat menghindari konflik internal team Membagi ker"a team berdasarkan modul%modul program yang sudah diran&ang kema"uan penger"aan sistem dapat dimonitor dan dika"i
'un &orre&tly $program handal% 'un effi&iently $program menjadi sederhana & tidak rumit% (e easy to read and understand $mudah di'a#a dan ditelusuri% (e easy to debug $program mudah ditelusuri kesalahann(a% (e easy to modify $program mudah dimodi ikasi%
1. Definisikan masalah )(atasan masalah* +. 'an&ang outline peme&ahan masalah )Pengembangan model* ,. (uat algoritma berdasarkan outline peme&ahan masalah -. !est algoritma )Perbaikan algoritma* .. /oding )Pemrograman dan pengu"ian program* 6. E0e&ute )'unning* 1. Dokumentasi dan pemeliharaan
!entukan struktur kontrol )urut5 pengulangan5 kondisi*5 berapa bentuk struktur kontrol yang terlibat dalam satu
proses5 dan "enis strukturnya apa sa"a dan berapa banyak
Pemrograman terstruktur memakai metode pengembangan Top-Down. Peran&angan program dilakukan se&ara Modular. Pengem'angan Top/,o0n Pengembangan yang dimulai dari langkah yang global lebih dahulu5 yang kemudian diperluas lagi sehingga didapat langkah rin&i Modular Peran&angan program dilakukan dalam bentuk modul% modul
1. Sequence !iap instruksi diker"akan se&ara berurutan sesuai dengan urutan penulisannya
10
Modular Programming Mem'uat Modul Membuat Modul fungsi. dalam bahasa /99 adalah dengan
12
:ungsi ada + ma&am 8 1. +. :ungsi yang tidak bernilai :ungsi yang bernilai
1ungsi (ang tidak 'ernilai 1ormat Nama2 ungsi$3tipe par*4 5+6% 7 pern(ataan & instruksi8 9 1ungsi (ang 'ernilai 1ormat tipe hasil Nama2 ungsi$3tipe par*4 5+6% 7 pern(ataan & instruksi8 9 !ara memanggil modul dari program utama :oid main$% 7 Nama2 ungsi$3par*4 5+6% 9
#out << endl8 9 && modul mem'uat judul :oid judul$% 7 int i8 #out << DEtEt,A1TAR FUKUG<< endl8 && Et > ta'ulasi garis$%8 #out <<GHudul FukuG<<GEtEtPengarangG<< endl8 garis$%8 9 && program utama $main% :oid main$% 7 judul$%8 && memanggil modul judul 9
7 return $alas J tinggi & .%8 &&pengem'alian nilai dgn && return 9 && program utama $main% :oid main$% 7 loat A4 T8 #out <<G,ata Alas #out <<G,ata Tinggi - D8 #in == A8 - D8 #in == T8
6ariable ; dengan alas + 7ariabel yang berbeda 6ariable ! dengan tinggi + 7ariabel yang berbeda
% <uas=sgt);5!* &ara pemanggilan fungsi5 yang akan menghasilkan nilai dari fungsi )uas2sgt
7 luas > alas J tinggi & .8 9 && program utama $main% :oid main$% 7 loat alas4 tinggi4luas8 #out <<G,ata Alas - D8 #in == alas8
#out <<G,ata Tinggi - D8 #in == tinggi8 )uas2sgt$alas4 tinggi4 luas%8 #out <<G)uas segi tiga - D << luas<<endl8 9 #eterangan 8
% %
6ariable >alas berisi alamat dari 7ariabel alas 6ariable >tinggi berisi alamat dari 7ariabel tinggi
% <uas=sgt)alas5tinggi5luas* &ara pemanggilan fungsi5 yang akan menghasilkan nilai dari 7ariable luas melalui alamat )passing parameter by lo&ation*
<;!2?;@ 8
(uatlah fungsi )modul* untuk menghitung nilai kuadrat suatu bilangan bulat ).. A + 0 +* .
16