LAPORAN HASIL PRATIKUM ALGORITMA DAN PEMROGRAMAN II
Nama
: WA WANDY SUPRIADI
NIM
: DB DBC 114 121
Kelas
: F
M!"l
: III # POLIMORFISME $
%URUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNI&ERSITAS PALANGKARAYA 2'1( BAB I TU%UAN DAN LANDASAN TEORI
1) T"*"a+
Setelah Setelah menyeles menyelesaik aikan an modul modul ini, ini, mahasis mahasiswa wa diharap diharapkan kan mampu mampu membua membuatt polimorfisme. 2) La+! La+!as asa+ a+ Te Te,,Polimorfisme Memiliki arti "banyak bentuk", melakukan hal yang sama untuk
berbagai data yang berbeda, mengirimkan pesan yang sama ke berbagai objek yang yang berbed berbedaa karena karena tiap tiap objek objek member memberii respons respons dengan dengan cara yang yang berbed berbeda. a. Berikut ini merupakan contoh polimorfisme.
Luas Bentuk
Segitiga Luas
Lingkaran Luas
Bujursangkar
Luas
Polimorfisme memiliki syarat-syarat sebagai berikut
!da hirarki pewarisan
elas dalam hirarki pewarisan barus memiliki fungsi #irtual $#irtual method% dengan signature yang sama.
Menggunakan pointer atau rujukan ke kelas induk. Pointer digunakan
untuk
memanggil fungsi #irtual Polimo Polimorfi rfisme sme dapat dapat diimple diimplemen mentasi tasikan kan dengan dengan menggu menggunak nakan an dasar dasar functio function n o#erriding $melakukan redefinisi suatu fungsi di kelas anak, fungsi yang dio#erride memilik memilikii signat signature ure sama, signat signature ure sama sama tipe tipe batik, batik, nama fungsi fungsi,, parameter sama% dan pewarisan. Suatu kelas disebut abstrak apabila memiliki minimal satu fungsi abstrak. &ungsi abstr abstrak ak meru merupa paka kan n fung fungsi si yang yang tida tidak k memil memilik ikii defi defini nisi si $hany $hanyaa dekl deklar arasi asi fungsi%'menggunakan fungsi #irtual $pure #irtual%.
&-,."al /al-0a+ +amaF"+s- #a,ame.e,$ 3 '
BAB II LANGKAH KER%A
(. Buatlah program seperti dibawah ini) 1 Ma+"s-a)
*ifndef M!+S!/
*define M!+S!/ class Manusia 0 class Manusia 0 public #irtual #oid /ello$%1 21 class Pelajar public Manusia 0 public #oid /ello$%1 2 class Pegawai public Manusia 0 public
#oid /ello$%1 21 *endif Ma+"s-a)5 *include "Manusia.h" *include 3iostream.h4
#oid Manusia/ello$% 0 cout 33"/allo ..."33 endl1 2 #oid Pelajar/ello$% 0 cout 33"/allo, Saya Pelajar ..."33 endl1 2 #oid Pegawai/ello$% 0 cout 33"/allo, Saya Pegawai ...."33 endl1 2 MPl-)5 *include "Manusia.h" *include 3iostream.h4 *include 3stdlib.h4 int main$2 0 Manusia5 m1 int pilihan1 do 0 cout 33"( Manusia, 6 Pelajar, 7 Pegawai 44 8
cin 44 pilihan1 2 while $ pilihan 3 ( 99 pilihan 4 71 switch $ pilihan % 0 case ( m : new Manusia1 break1 case 6 m : new Pelajar1 break1 case 7 m : new Pegawai1 break1 2 m-4/ello$%1 delete m1 return ;1 2 6. Buatlah program seperti di bawah ini)
Be+."02D) *ifndef B<+=6>/ *define B<+=6>/
class Bentuk6> 0 public
#irtual float cari?uas$%:;1 21 class Segiempat public Bentuk6> 0 protected float panjang, lebar1 public Segiempat$float, float%1 float cari?uas$%1 21 class ?ingkaran public Bentuk6> 0 pri#ate float jejari1 public ?ingkaran $float%1 float cari?uas$%1 21 class Segitiga public Bentuk6> f pri#ate float alas, tinggi1 public Segitiga$float, float%1 float cari?uas$%1 *endif
*include 3iostream.h4 *include "Bentuk6>.h" SegiempatSegiempat$float p, float l% 0 panjang : p1 lebar : l1 2 float Segiempat cari?uas$% 0 cout 33 "?uas segiempat 8 33 panjang5lebar 33 endl1 2 ?ingkaran?ingkaran $float r% 0 jejari : r1 2 float ?ingkaran cari?uas$% 0 cout 33 "?uas lingkaran 8 33 7.@5jejari5jejari 33 2
endl1
SegitiAaSegitiga$float a, float t% 0 alas : a1 tinggi : t1 2 float Segitiga cari?uas$% 0 cout 33 "?uas Segitiga 8 33 ;.5alas5tinggi 33 endl1 2
MA/s.,a0)5 *include "Bentuk6>.h" *include 3iostream.h4 *include 3stdlib.h4
int main$% 0 Bentuk6>5 b6d1 bool loop : true1 int pilihan1 do 0 cout 33"( Segiempat, 6 ?ingkaran, 7 Segitiga 44 81 cin 44 pilihan1 2 while $ pilihan 3 ( 66 pilihan 4 7 %1 Switch $ pilihan % 0 case ( b6d : new Segiempat$@.;, .;%1 break1 case6 b6d : new ?ingkaran $C.;%1 break1 case 7 b6d : new Segitiga $6.;, (;.;%1 break1 case@ loop: false1 2 b6d-4cari?uas$%1 delete b6d1 return ;1 2 7. Buatlah program seperti dibawah ini) sae) *ifndef S/!P</ *define S/!P</
class Shape 0 public #irtual double area$% const 0 return ;.;1 2 #irtual double #olume$% const 0 return ;.;1 2
#irtual #oid printShape+ame$% const : ;1 #irtual #oid print$% const : ;1 21 *endif P-+.1) *ifndef PD+=(/ *define PD+=(/
*include 3iostream4 *include "shape.h" class Point public Shape 0 public Point$ int : ;, int : ; %1 #oid setPoint$ int, int %1 int getED$% const 0 return F1 2 int getGD$% const 0 return y1 2 #irtual #oid printShape+ame$% const 0 cout 33 "Point 81 2 #irtual #oid print$% const1 Pri#ate int F, y1 21
*endif
-+.l)5 *include "pointl.h"
PointPoint$ int a, int b% 0 setPoint $ a, b %1 2 #oid PointsetPoint$ int a, int b % 0 E : a1 G : b1 2 #oid Pointprint$% const 0 cout 33 H IH 33 F 33 ", " 33 y 33 JKL1 2 5-,5lel) *ifnde N?<(/ *define N?<(/ *include "point(.h"
class ircle public Point 0 public ircle$ double r : ;.;, int F : ;, int y : ; %1
#oid setNadius$ double %1 double getNadius$% const1 #irtual double area$% const1 #irtual #oid printShape+ame$% const cout 33 "ircle 81 2 #irtual #oid print02 const1 pri#ate double radius1 21 *ifendif 5-,5le1)5 *include 3iostream4 *include "circlel.h" ircleircle$ double r, int a, int b % Point$ a, b % 0 setNadius$ r %1 2
#oid irclesetNadius$ double r % 0 radius : r 4 ; O r ;1 2 double irclegetNadius$% const 0 return radius1 2 double irclegetNadius$% const 0 return 7.(@(5radius5radius1 2 #oid ircleprint$% const 0 Pointprint$%1 cout 33 "1 Nadius : 8 33 radius1 2 ma-+)5 *include 3iostream4 *include 3stdlib.h4
*include "shape.h" *include "point(.h" *include "circle(.h" *include "cylindr(.h" #oid #irtualQiaPointer $ const Shape 5 %1 int main$% 2 Point point$ C, (( %1 ircle circle$ 7., 66, R %1
'' create a Point '' create a ircle
point.printShape+ame$%1 point.printo$%1
'' static binding '' static binding
cout 33 (nH1 circle.printShape+ame$%1 circle.printo$%1 cout 33 HnH1
'' static binding '' static binding
cout 33 "Qirtual function calls made off 8 33 "base-class pointersn"1 for $ int i : ;1 i 3 61 iTT % #irtualQiaPointer$ arrayDfShapesI i K %1 return ;1 2 #oid #irtualQiaPointer$ const Shape 5baselassPtr % 0 baselassPtr-4printShape+ame$%1 baselassPtr-4print$%1 cout 33 "n!rea : " 33 baselassPtr-4area$% 33 "#olume : 8 33 baselassPtr-4#olume$% 33"nn"1 2
BAB III PEMBAHASAN
Program pertama di atas terdiri dari 7 file, yaitu ( file header, dan 6 file source. >an diberi nama Manusia.h, Manusia.cpp, MPoli.cpp.
<= Pada program
ma+"s-a),
coding
program
diawali
dengan
penulisan
7-+5l"!e8-s.,eam)9 . include sendiri adalah salah satu pengarah prepoceccor
directive yang selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. oding include tidak diakhiri dengan tanda #$, karena bentuk tersebut bukanlah suatu bentuk pernyataan, tetapi merupakan prepocessor directi#e. oding tersebut diakhiri dengan ekstensi ) #;-le ea!e,$ yaitu file yang berisi sebagai deklarasi. 7-;+!e; pengarah compiler yang sering digunakan untuk menandai bahwa suatu file sudah diikutsertakan dalam kompilasi. >an pada program
tersebut, filenya adalah MANUSIA)H 7!e;-+e untuk mendefinisikan suatu pengenal ' konstanta yang nantinya akan digantikan oleh praprosesor saat program dikompilasi.
P"/l-5 adalah suatu tipe akses yang dapat diakses diluar class,sedangkan ,-
diakses didalam class. Pada program diatas terdapat 7 kelas yaitu kelas Manusia, Pelajar, Pegawai. >an kelas utama pada program ini adalah 0elas Ma+"s-a. Pada kelas utama yaitu Manusia, menggunakan fungsi #irtual, yaitu <-,."al <-! Hell#$. &ungsi #irtual ini adalah pendefinisian ulang pada kelas-kelas
turunannya. Uadi yang di ulang pada program ini adalah #ariabel /ello$% yang bertipe #oid $merupakan nilai dari suatu #ariabel dan tidak bertipe data%.
Pada penulisan 5lass Pela*a, : "/l-5 Ma+"s-a !a+ 5lass Pea=a- : "/l-5 Ma+"s-a , menandakan bahwa kelas Pelajar dan kelas Pegawai merupakan kelas
turunan dari kelas Manusia. Pada kedua kelas turunan tersebut menggunakan #ariabel <-! ell#$ dari kelas induk kelas Manusia. >an ketiga kelas ini menggunakan perubah akses $anggota kelas% public.
<= Pada program ma+"s-a)5 diatas, 7-+5l"!e >Ma+"s-a)? berfungsi untuk memasukkan file header Manusia.h ke dalam Manusia.cpp . Pernyataan 7-+5l"!e8-s.,eam)9 .diperlukan untuk melibatkan objek 5". $ digunakan pada proses input dan output%. Pada penulisan <-! Ma+"s-a::Hell#$ @ <-! Pela*a,::Hell#$ @ <-! Pea=a-::Hell#$ yang menggunakan fungsi COUT untuk menampilkan masing-
masing perintah yang ada pada script.
<= Pada bagian program Ml-)5 yang merupakan program utama ini terdapat kekurangan dalam memberi masukan file lain. Uadi kita tambahkan fungsi
7-+5l"!e Ma+"s-a)5 untuk mengincludekan file Manusia.cpp yang kita buat sebelumnya. >an fungsi 7-+5l"!e 8s.!l-/)9 adalah fungsi file header yang meliputi alokasi memori, kontrol proses, kon#ersi dan lain-lain. I+. ma-+ #$ berfungsi sebagai penanda program utama. Suatu program pada TT
harus memiliki sebuah ma-+. Ma-+ diikuti tanda #$ karena ma-+ merupakan sebuah fungsi. Pada penulisan Ma+"s-a m , tanda bintang #$ pada Manusia disebut pointer. Pointer $#ariabel penunjuk% adalah suatu #ariabel yang berisi alamat memori dari suatu #ariabel lain. !lamat ini merupakan lokasi dari obyek lain $biasanya #ariabel lain% di dalam memori. >alam hal ini pointer menunjuk kelas Manusia, jadi pointer ini menghasilkan nilai yang berada pada kelas alamat yaitu #ariabel #oid /ello$%. Pada program utama ini di buat #ariabel baru yaitu #ariabel pilihan yang bertipe integer #-+. --a+$. Qariabel ini digunakan untuk #ariabel inputan untuk memilih pilihan pada penulisan berikut
struktur !=-le, digunakan pada pengulangan yang dilakukan pada fungsi C". yaitu 88 1: Ma+"s-a@ 2: Pela*a,@ : Pea=a- 99 > dan fungsi CIN untuk
menggunakan #ariabel -l-a+ sebagai #ariabel inputan. Pada penggunaan, =-le # -l-a+ 8 1 66 -l-a+ 9 @ pengulangan akan terus dilakukan apabila inputan yang dimasukkan kurang dari ( atau lebih dari 7.
<= Pada saat #ariabel pilihan ditentukan nilainya, maka akan terpilih sesuai isi yang ada pada fungsi dari S=-.5)
<= pointer m mengarah kepada fungsi Hell#$ yang ada pada pilihan yang telah ditentukan.Pada saat kita memasukan angka 6, maka akan di eksekusi untuk menuju ke kelas Pelajar yang berisi perintah Hall@ Saa Pela*a, ))))
>an
fungsi !ele.e berfungsi untuk menghapus memori yang tersimpan pada saat program selesai di jalankan, maka apabila terhapus ruang di memori digunakan
untuk
keperluan yang
lainnya.
,e.",+
'
dapat
digunakan untuk
mengembalikan nilai fungsi, dan nilai balikannya adalah ;. Pada program kedua terdiri dari 7 file, ( file header, dan 6 file source. >an diberi nama Bentuk6>.h, Bentuk6>.cpp, M!bstrak.cpp.
<= Pada awal program Be+."02D) fungsi dari 7-+!e;@ 7!e;-+e telah dijelaskan diatas tapi yang berbeda adalah file yang sudah diikutsertakan saat kompilasi tersebut adalah B<+=6>/.
Pada program ini terdapat @ kelas yaitu kelas Be+."02D@ Se-ema.@ L-+0a,a+@ !a+ Se-.-a. >an kelas utama pada program ini adalah kelas Be+."02D . Pada
langkah kerja program kedua, #ariabel 5a,-L"as adalah bertipe ;la. $/-la+a+ e5aa+$ , tapi diganti menjadi bertipe <-!, karena melakukan percetakan sebuah
data, maka tipe #oid lah yang cocok untuk digunakan. Pada kelas utama yaitu Bentuk6>, menggunakan fungsi #irtual, yaitu <-,."al <-! 5a,-L"as#$3'. penggunaan &ungsi #irtual ini adalah pendefinisian ulang pada
kelas-kelas turunannya. Uadi yang di ulang pada program ini adalah #ariabel cari?uas$% yang bertipe #oid. Pada kelas turunan 5lass Se-ema. : "/l-5 Be+."02D , terdapat dua tipe perubah akses $anggota kelas% yaitu ,.e5.e! dan "/l-5. >alam protected terdapat #ariabel panjang dan lebar yang bertipe float. >an di dalam public terdapat konstruktor Se-ema.#;la.@ ;la.$ dan <-! 5a,-L"as#$ yang berasal dari kelas induk Bentuk6>. Pada kelas turunan 5lass L-+0a,a+ : "/l-5 Be+."02D , terdapat dua tipe perubah akses $anggota kelas% yaitu ,-
yang
bertipe
float. >an
di
dalam public terdapat konstruktor
L-+0a,a+#;la.$ dan <-! 5a,-L"as#$ yang berasal dari kelas induk Bentuk6>. Pada kelas turunan 5lass Se-.-a : "/l-5 Be+."02D , terdapat dua tipe perubah
akses $anggota kelas% yaitu ,-alam pri#ate terdapat #ariabel alas dan tinggi yang bertipe float. >an di dalam public terdapat konstruktor Se-.-a#;la.@ ;la.$ dan <-! 5a,-L"as#$ yang berasal dari kelas induk
Bentuk6>.
<= Pada program Be+."02D)5 diatas, penulisan Se-ema.::Se-ema.#;la. @ ;la. l$ ini adalah bagian konstruktor Segiempat dengan nilai berurutan p dan l
yang bertipe float. Bagian ini berisi #ariabel a+*a+ yang dinyatakan dengan p dan #ariabel le/a, yang dinyatakan dengan l . &ungsi
dari
;la.
Se-ema.::
5a,-L"as#$
adalah perintah yang
akan
menampilkan hasil nilai luas Segiempat dari rumus a+*a+ le/a, . Pada penulisan L-+0a,a+::L-+0a,a+#;la. ,$ merupakan bagian dari konstruktor ?ingkaran dengan komponennya adalah r yang bertipe float. Bagian ini berisi #ariabel *e*a,- yang dinisialisasi sama dengan r . &ungsi
dari
;la. L-+0a,a+:: 5a,-L"as#$
adalah perintah yang
akan
menampilkan hasil nilai luas ?ingkaran dari rumus )14 *e*a,- *e*a,- . Pada penulisan Se-.-a::Se-.-a#;la. a@ ;la. .$ merupakan bagian dari konstruktor Segitiga dengan komponen berurutan a, t yang bertipe float. Bagian ini berisi #ariabel alas yang dinyatakan dengan a dan #ariabel .-+- yang dinyatakan dengan t . &ungsi dari ;la. Se-.-a:: 5a,-L"as#$ adalah perintah yang akan menampilkan hasil nilai luas Segitiga dari ,"m"s ')( alas .-+- .
<= Pada program Ma/s.,a0)5 , fungsi dari 7-+5l"!e 8s.!l-/)9 adalah fungsi file header yang meliputi alokasi memori, kontrol proses, kon#ersi dan lain-lain. fungsi -+. ma-+ #$sebagai penanda program utama. Suatu program pada TT harus memiliki sebuah ma-+. Ma-+ diikuti tanda #$ karena ma-+ merupakan sebuah fungsi. Pada coding Be+."02D /2! , tanda bintang #$ pada Bentuk6> disebut -+.e,. Pointer $#ariabel penunjuk% adalah suatu #ariabel yang berisi alamat memori dari suatu #ariabel lain. !lamat ini merupakan lokasi dari obyek lain $biasanya #ariabel lain% di dalam memori. >alam hal ini pointer menunjuk kelas Bentuk6>, jadi pointer ini menghasilkan nilai yang berada pada kelas alamat yaitu #ariabel <-! 5a,-L"as#$. Pada program utama ini di buat #ariabel baru yaitu #ariabel pilihan yang bertipe -+.ee, #/-la+a+ /"la.$ dan l yang bertipe Blea+ #me+a.a0a+ .,"e;alse$ yang bernilai true. Qariabel ini digunakan untuk #ariabel inputan untuk
memilih pilihan pada
Pada pengulangan menggunakan struktur !=-le, dan pengulangan yang dilakukan adalah perinaht pada fungsi cout yaitu 881: Se-ema.@ 2: L-+0a,a+@ : Se-.-a 99 > , dan fungsi C-+ untuk menggunakan #ariabel pilihan sebagai
#ariabel inputan. Pada s.,"0.", =-le, =-le # -l-a+ 8 1 66 -l-a+ 9 , pengulangan akan terus dilakukan apabila inputan yang dimasukkan kurang dari ( atau lebih dari 7. Pada bagian s=-.5#-l-a+$@ Setelah #ariabel -l-a+ ditentukan nilainya, maka akan terpilih sesuai isi yang ada pada struktur switch. Pada pilihan ini sudah terisi nilai-nilai pada masing-masing #ariabel kelasnya.
pointer /2! mengarah kepada fungsi 5a,-L"as#$ yang ada pada pilihan yang kita tentukan. Pada saat kita memasukan 6, maka akan di eksekusi untuk menuju ke kelas lingkaran yang berisi argument nilai ?uas ?ingkaran yang di dapat dari rumus di dalamnya. fungsi !ele.e di atas digunakan untuk menghapus memori yang tersimpan pada saat program selesai di jalankan, sehingga apabila terhapus ruang di memori dapat digunakan untuk keperluan yang lainnya. ,e.",+ ' digunakan untuk mengembalikan nilai fungsi, dan nilai balikannya
adalah ;. Pada program ketiga terdiri dari V file, terdiri dari 7 buah file header, dan 7 buah source file. pada coding program, terdapat beberapa kesalahan. !gar program dapat berjalan, maka ada perbaikan pada coding program !ntara lain pada pengisian file header yang akan digunakan. Pada -+.1) , 5-,5le1)5@ ma-+)5 terdapat 7-+5l"!e8-s.,eam9. oding tersebut tidak dapat digunakan karena tidak
ada ekstensi ) #ea!e,$ di bagian sesudah -s.,eam-nya sehingga program tidak dapat berjalan. Selain itu, pada bagian ma-+)5, terdapat pemanggilan terhadap fungsi 85l-+!e,)? sedangkan pada coding program di modul tidak terdapat source file untuk cylinder. Uadi pada pemanggilan terhadap 5l-+!e, dihilangkan. (. file Sae) yang berisikan sebuah deklarasi kelas induk $dasar% program. oding yang terdapat pada file header ini berisikan deklarasi kelas, yaitu 0elas sae yang merupakan kelas dasar dari kelas point yang ada. !ttribute yang digunakan dari fungsi pada coding yang terdapat pada file header ini merupakan fungsi #irtual yang merupakan fungsi #irtual murni karena tidak mempunyai definisi sama sekali. !gar &ungsi yang terdapat pada kelas induk dapat di o#erride #me+-mleme+.as-0a+ l-m,;-sme$ oleh kelas turunannya, maka fungsi
tersebut harus bersifat #irtual dan untuk melakukan ini adalah dengan menambahkan keyword <-,."al di depan nama fungsinya. 6. file -+.1) merupakan kelas turunan dari kelas kelas sae). oding pada file header ini berisikan kelas point yang merupakan kelas turunan dari kelas shape, dan attribute yang digunakan memiliki fungsi #irtual. Pada coding
e. dan e.Y digunakan untuk memberikan nilai pada saat program dijalankan
dengan melalui #ariable yang telah ditentukan. 7. Program -+.1)5 mempunyai sebuah fungsi $method% yang berasal dari kelas point.
=erdapat 3a, dan 3/ ini menandakan bahwa untuk nilai x diisi dengan nilai yang telah ditentukan pada nilai a, serta nilai yang terdapat pada y adalah nilai yang dihasilkan atau sama dengan nilai yang terdapat pada /. @. Pada program 5-,5le1) berisikan deklarasi kelas yang berasal dari kelas turunan point #0elas C-,5le$. !ttribute pada kelas ini memiliki fungsi #irtual yang berguna untuk mengakses fungsi sebelumnya. . C-,5le1)5 nilai menuju source file dan berisikan fungsi-fungsi yang berasal dari kelas circle. fungsi-fungsi yang diakses oleh kelas circle terhadap fungsi #irtual pada dekalrasi kelas sebelumnya. Pada file ini, terdapat rumus untuk perhitungan yang berguna untuk memberikan nilai pada saat program 7 ini dijalankan. V. ma-+)5 merupakan sebuah progam utama dari keseluruhan file pada program ketiga ini.
<= Pada code program di atas, nilai telah ditentukan terlebih dahulu atau nilainya sudah tertanam pada tubuh program sehingga hasil yang akan dicetak adalah bernilai tetap, sesuai dengan apa yang telah dibuat pada program. &ungsi - digunakan untuk menambahkan operand dengan nilai ( $increment%. I i K digunakan untuk untuk mengindikasikan sebuah matrik satu atau multidimensi. BAB I& KESIMPULAN
polimorfisme, apabila salah satu nilai #ariabel pada salah satu kelas, maka output yang dihasilkan tidak mempengaruhi output semua kelas, tetapi hanya pada kelas
yang memuat nilai #ariabel tersebut. Pada polimorfisme menggunakan fungsi <-,."al, &ungsi #irtual ini adalah
pendefinisian ulang pada kelas-kelas turunannya. P-+.e, $#ariabel penunjuk% adalah suatu #ariabel yang berisi alamat memori dari suatu #ariabel lain. !lamat ini merupakan lokasi dari obyek lain $biasanya
#ariabel lain% di dalam memori. ntuk melakukan pengulangan dapat menggunakan fungsi dari !=-le
s=-.5 . =anda -4 digunakan untuk mengarahkan pointer kepada fungsi #irtual yang telah
di tentukan pada pengulangan struktur doWwhile s witch.
BAB & DAFTAR PUSTAKA
Modul Praktikum Algoritma dan Pemrograman II . Palangka Naya ni#ersitas Palangka Naya &akultas =eknik Uurusan =eknik nformatika. 6;(.
BAB &I LAMPIRAN
(. Program pada langkah kerja pertama Ma+"s-a) :
Ma+"s-a)5 :
MPl-)5 :
Dutputnya
6. Program pada langkah kerja kedua Be+."02D) :
Be+."02D)5 :
Ma/s.,a0)5 :
Dutputnya
7. Program pada langkah kerja ketiga sae) :
-+.1) :
-+.1)5 :
5-,5le1) :
5-,5le1)5 :
ma-+)5 :
Dutputnya