KOMPUTER PROGRAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER UNIVERSITAS BRAWIJAYA PRAKTIKUM PEMROGRAMAN LANJUT MODUL 1 Judul Bab : Class, Konstruktor, dan Method Instan Disusun Oleh : Tusty Nadia Maghfira NIM : 1!1!"#""111"$! Dilaksanakan Tanggal : #1 Maret #"1% &sisten 1 : 'eru Chrisandi (etia)an &sisten # : Krisbianto Cahyo (u*arto Dosen +enga*,u : &dharul Mutta-in, (T., MT Pengesahan Tanggal As!s"en SEMESTER GENAP TA#UN $%1&/$%1'
A( De)!n!s! Masalah (oal 1 : Mena*bahkan o,erator selain dala* ,rogra* /asional.0a1a 2*ini*al ! o,erator yang dita*bahkan3, o,erator tersebut antara lain: O,erator 4nary 56 , unary 76, unary 86, unary 99, unary55 O,erator : , :6 , ;6 O,erator ,e*banding 66, ,e*banding <6 O,earator 9 , 5 , 8 , 7 B( S*+,-e .*/e (oal 1 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 public class Rasional4 { private int pembilang, penyebut public Rasional4!" { pembilang # 0 penyebut # 0 $ public Rasional4!int pbl, int pyb" { pembilang # pbl penyebut # pyb $ public voi% setRasio!int pbl, int pyb" { pembilang # pbl penyebut # pyb $ &&mengece' suatu bilangan a%ala( rasional atau bu'a public boolean isRasional!" { return !penyebut )# 0" $ &&menye%er(ana'an bilangan rasional public voi% *e%er(ana!" { int temp, +, , i- !penyebut ## 0" { return $ + # !pembilang . penyebut" / penyebut 0 pembilang , # !pembilang . penyebut" / pembilang 0 penyebut 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 1(ile !, )# 0" { temp # + 2 , + # , , # temp $ pembilang &# + penyebut &# + $ public %ouble 3ast!" { return !penyebut ## 040" / 040 0 !%ouble" pembilang & !%ouble" penyebut $ &&oprator 5 public boolean more6(an!Rasional4 +" { return !pembilang 7 +4penyebut 5 penyebut 7 +4pembilang" $ public boolean less6(an!Rasional4 +" { return !pembilang 7 +4penyebut . penyebut 7 +4pembilang" $ &&operator 8nary9 9995 + # 9+ public voi% negasi!" { pembilang # 9pembilang $ &&operator unary :# public voi% unary;lus!Rasional4 +" { pembilang # pembilang 7 +4penyebut : penyebut 7 +4pembilang penyebut 7# +4penyebut $ public voi% unary<in!Rasional4 +" { pembilang # pembilang 7 +4penyebut 9 penyebut 7 +4pembilang penyebut 7# +4penyebut $ public voi% unary,agi!Rasional4 +" { pembilang 7# +4penyebut penyebut 7# +4pembilang $ public voi% unary=ali!Rasional4 +" { pembilang 7# +4pembilang penyebut 7# +4penyebut $ public voi% unary;lus;lus!" { pembilang :# penyebut $ public voi% unary<in<in!" { pembilang 9# penyebut $ public boolean less6(an>r?@ual!Rasional4 +" { 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 return !less6(an!+" AA is?@ual!+"" $ public boolean <ore6(an>r?@ual!Rasional4 +" { return !more6(an!+" AA is?@ual!+"" $ public boolean is?@ual!Rasional4 +" { return !pembilang 7 +4penyebut ## penyebut 7 +4pembilang" $ public boolean isBot?@ual!Rasional4 +" { return !pembilang 7 +4penyebut )# penyebut 7 +4pembilang" $ public voi% ;lus!Rasional4 +1, Rasional4 +" { pembilang # +14pembilang 7 +4penyebut : +14penyebut 7 +4pembilang penyebut # +14penyebut 7 +4penyebut $ public voi% <inus!Rasional4 +1, Rasional4 +" { pembilang # +14pembilang 7 +4penyebut 9 +14penyebut 7 +4pembilang penyebut # +14penyebut 7 +4penyebut $ public voi% multiply!Rasional4 +1, Rasional4 +" { pembilang # +14pembilang 7 +4pembilang penyebut # +14penyebut 7 +4penyebut $ public voi% Civi%e!Rasional4 +1, Rasional4 +" { pembilang # +14pembilang 7 +4penyebut penyebut # +14penyebut 7 +4pembilang $ public voi% ceta'!" { *ystem4out4println!pembilang : D&D : penyebut" $ $ Main Class: 1 2 3 4 5 6 7 8 9 10 11 12 public class Rasional4Cemo { public static voi% main!*tringEF args" { Rasional4 R1 # ne1 Rasional4!4, 2" Rasional4 R2 # ne1 Rasional4!6, 4" Rasional4 R3 # ne1 Rasional4!3, 2" *ystem4out4println!DR14isRasional0 D : R14isRasional!"" *ystem4out4println!DR24isRasional0 D : R24isRasional!"" *ystem4out4println!" *ystem4out4println!DR1 5 R2 0 D : 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 R14more6(an!R2"" *ystem4out4println!" *ystem4out4println!DR1 . R2 0D : R14less6(an!R2"" *ystem4out4println!" *ystem4out4println!DR1 5# R2 0 D : R14<ore6(an>r?@ual!R2"" *ystem4out4println!" *ystem4out4println!DR1 .# R2 0D : R14less6(an>r?@ual!R2"" *ystem4out4println!" *ystem4out4print!DR1 0 D" R14ceta'!" *ystem4out4print!DR2 0 D" R24ceta'!" *ystem4out4println!" R14*e%er(ana!" R24*e%er(ana!" *ystem4out4println!D*etela( %ise%er(ana'an0 D" *ystem4out4print!DR1 0 D" R14ceta'!" *ystem4out4print!DR2 0 D" R24ceta'!" *ystem4out4println!" *ystem4out4println!D*etela( %ila'u'an 3ast 'e %ouble menGa%i 0 D" *ystem4out4println!DR1 0 D : R143ast!"" *ystem4out4println!DR2 0 D : R243ast!"" *ystem4out4println!" R14negasi!" *ystem4out4print!D8nary9 %ari R1 0 D" R14ceta'!" *ystem4out4println!" R14setRasio!4, 2" R14unary;lus!R2" *ystem4out4print!DBilai %ari HR1 :# R2H 0 D" R14ceta'!" *ystem4out4println!" R14setRasio!4, 2" R14unary<in!R2" *ystem4out4print!DBilai %ari HR1 9# R2H 0 D" 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 R14ceta'!" *ystem4out4println!" R14setRasio!4, 2" R14unary=ali!R2" *ystem4out4print!DBilai %ari HR1 7# R2H 0 D" R14ceta'!" *ystem4out4println!" R14setRasio!4, 2" R14unary,agi!R2" *ystem4out4print!DBilai %ari HR1 &# R2H 0 D" R14ceta'!" *ystem4out4println!" R14setRasio!4, 2" R14unary;lus;lus!" *ystem4out4print!DBilai %ari HR1 ::H 0 D" R14ceta'!" *ystem4out4println!" R24unary<in<in!" *ystem4out4print!DBilai %ari HR2 99H 0 D" R24ceta'!" *ystem4out4println!" *ystem4out4println!D;emban%ing bilangan D" R24setRasio!6, 4" *ystem4out4println!DR2 ## R3 0 D : R24is?@ual!R3"" R14setRasio!4, 2" *ystem4out4println!DR1 )# R3 0 D : R14isBot?@ual!R3"" R14setRasio!4, 2" R14;lus!R1, R2" *ystem4out4print!DBilai %ari HR1 : R2H 0 D" R14ceta'!" *ystem4out4println!" R14setRasio!4, 2" R14<inus!R1, R2" *ystem4out4print!DBilai %ari HR1 9 R2H 0 D" R14ceta'!" *ystem4out4println!" R14setRasio!4, 2" R14multiply!R1, R3" *ystem4out4print!DBilai %ari HR1 7 R3H 0 D" R14ceta'!" *ystem4out4println!" 115 116 117 118 119 120 121 122 R14setRasio!4, 2" R14Civi%e!R1, R3" *ystem4out4print!DBilai %ari HR1 & R3H 0 D" R14ceta'!" *ystem4out4println!" $ $ .( Pe01ahasan Class /asional% : 1 # 5= >51" 1151% 1! 1=51$ 1? #"5= >5%" %1 %#5%! %=5%? !" !15! !% !!5!? ="5=% =!5=$ =?5># Deklarasi kelas dengan na*a /asional% Deklarasi attribute ,e*bilang dan ,enyebut yang berti,e integer dan *e*iliki a@@ess *odifier ,ri1ate Deklarasi @onstru@tor dari @lass /asional% dengan body *ethodnya inisialisasi a)al ,e*bilang dan ,enyebut dengan nilai 6" Deklarasi o1erloading @onstru@tor dari @lass /asional% dengan ,ara*eter ,bl2,e*bilang3 dan ,yb2,enyebut3 yang berti,e integer Method untuk *eng5set ,e*bilang dan ,enyebut Co**ent Method berti,e Boolean untuk *enge@ek suatu bilangan adalah rasional atau bukan Co**ent Method untuk *enyederhanakan bilangan rasional Method untuk *enentukan suatu bilangan ,e@ahan *en0adi bilangan desi*al Co**ent Method untuk *enentukan o,erator lebih dari 2;3 Method untuk *enentukan o,erator kurang dari 2:3 Co**ent Method untuk *enentukan negasi dari suatu ,e@ahan Co**ent Method untuk *enentukan unary ,lus dari suatu ,e@ahan *enggunakan ti,e ke*balian 1oid Method untuk *enentukan unary *inus dari suatu ,e@ahan *enggunakan ti,e ke*balian 1oid Method untuk *enentukan unary bagi dari suatu ,e@ahan *enggunakan ti,e ke*balian 1oid Method untuk *enentukan unary kali dari suatu ,e@ahan >5>! >=5>$ >?5$1 $#5$% $!5$$ $?5?# ?5?> ?$51"# 1"5 1"= 1"> 11" 111 11! *enggunakan ti,e ke*balian 1oid Method untuk *enentukan unary ,lus,lus dari suatu ,e@ahan *enggunakan ti,e ke*balian 1oid Method untuk *enentukan unary *inus *inus dari suatu ,e@ahan *enggunakan ti,e ke*balian 1oid Method berti,e Boolean untuk *enge@ek suatu bilangan a,akah kurang dari sa*a dengan bilangan lainnya Method berti,e Boolean untuk *enge@ek suatu bilangan a,akah lebih dari sa*a dengan bilangan lainnya Method berti,e Boolean untuk *enge@ek suatu bilangan a,akah sa*a dengan bilangan lainnya Method berti,e Boolean untuk *enge@ek suatu bilangan a,akah tidak sa*a dengan bilangan lainnya Method untuk *enentukan ,erhitungan ,lus 293 dari dua bilangan ,e@ahan *enggunakan ti,e ke*balian 1oid Method untuk *enentukan ,erhitungan *inus 253 dari dua bilangan ,e@ahan *enggukan ti,e ke*balian 1oid Method untuk *enentukan ,erhitungan ,erkalian 283 dari dua bilangan ,e@ahan *enggunakan ti,e ke*balian 1oid Method untuk *enentukan ,erhitungan ,e*bagian 273 dari dua bilangan ,e@ahan *enggunakan ti,e ke*balian 1oid Method untuk *en@etak nilai dari ,e*bilang dan ,enyebut &khir dari kelas /asional% Main : 15# 5! =5> $511 1#51! 1=51? #"5# #%5#> #$5 Dekalarasi kelas dengan na*a /asional%De*o dan *ethod *ain Me*buat ob0ek baru dari @lass /asional% dengan na*a /1, /#, / Menentukan a,akah ,e@ahan ,ada ob0ek /1 adalah bilangan rasional atau bukan dengan *e*anggil *ethod is/asional 23 Menentukan a,akah ,e@ahan ,ada ob0ek /# adalah bilangan rasional atau bukan dengan *e*anggil *ethod is/asional 23 Menentukan a,akah ,e@ahan ,ada ob0ek /1 lebih dari /# dengan *e*anggil *ethod *oreThan Menentukan a,akah ,e@ahan ,ada ob0ek /1 kurang dari /# dengan *e*anggil *ethod lessThan Menentukan a,akah ,e@ahan ,ada ob0ek /1 lebih dari sa*a dengan /# dengan *e*anggil *ethod *oreThanOrA-ual Menentukan a,akah ,e@ahan ,ada ob0ek /1 kurang dari sa*a dengan /# dengan *e*anggil *ethod lessThanOrA-ual +erintah untuk *en@etak suatu nilai yang ada dari ob0ek /1 dan /# dengan *e*anggil *ethod @etak %5= >5%# %5%? !"5!% !!5=" =15== =>5># >5>$ >?5$% $!5$? ?"5? ?%5?> ?$51" 1"%5 1"? +e*anggilan *ethod (ederhana untuk *enghitung ,enyederhanaan dari 1ariabel ob0ek /1 dan /# Out,utan hasil ,enyederhanaan dari 1ariabel ob0ek /1 dan /# dengan *e*anggil *ethod @etak Out,utan hasil @ast atau ,erubahan nilai bilangan ,e@ahan dari /1 dan /# *en0adi desi*al dengan *e*anggil *ethod Cast +e*anggilan *ethod negasi untuk *enegasikan suatu bilangan ,e@ahan dari 1ariabel ob0ek /1 dan *en@etak hasilnya dengan *e*anggil *ethod @etak +e*anggilan *ethod set/asio untuk *engeset nilai /1 *en0adi bentuk ,e@ahan a)alnya dan *enghitung dengan *e*anggil *ethod unary+lus dari nilai /1 dan /# dan *en@etak hasilnya +e*anggilan *ethod set/asio untuk *engeset nilai /1 *en0adi bentuk ,e@ahan a)alnya dan *enghitung dengan *e*anggil *ethod unaryMin dari nilai /1 dan /# dan *en@etak hasilnya +e*anggilan *ethod set/asio untuk *engeset nilai /1 *en0adi bentuk ,e@ahan a)alnya dan *enghitung dengan *e*anggil *ethod unaryKali dari nilai /1 dan /# dan *en@etak hasilnya +e*anggilan *ethod set/asio untuk *engeset nilai /1 *en0adi bentuk ,e@ahan a)alnya dan *enghitung dengan *e*anggil *ethod unaryBagi dari nilai /1 dan /# dan *en@etak hasilnya +e*anggilan *ethod set/asio untuk *engeset nilai /1 *en0adi bentuk ,e@ahan a)alnya dan *enghitung dengan *e*anggil *ethod unary+lus+lus dari nilai /1 dan /# dan *en@etak hasilnya +e*anggilan *ethod set/asio untuk *engeset nilai /1 *en0adi bentuk ,e@ahan a)alnya dan *enghitung dengan *e*anggil *ethod unaryMinMin dari nilai /1 dan /# dan *en@etak hasilnya +erintah untuk *ena*,ilkan hasil ,enge@ekan dari 1ariabel ob0ek /# a,akah sa*a dengan / +erintah untuk *ena*,ilkan hasil ,enge@ekan dari 1ariabel ob0ek /1 a,akah tidak sa*a dengan / +e*anggilan *ethod set/asio untuk *engeset nilai /1 *en0adi bentuk ,e@ahan a)alnya dan *enghitung nilai bilangan ,e@ahan dari /1 dan /# dengan *e*anggil *ethod ,lus dan *en@etak hasilnya +e*anggilan *ethod set/asio untuk *engeset nilai /1 *en0adi bentuk ,e@ahan a)alnya dan *enghitung nilai bilangan ,e@ahan dari /1 dan /# dengan *e*anggil *ethod Minus dan *en@etak hasilnya 11"5 11! 11=5 1#1 1## +e*anggilan *ethod set/asio untuk *engeset nilai /1 *en0adi bentuk ,e@ahan a)alnya dan *enghitung nilai bilangan ,e@ahan dari /1 dan / dengan *e*anggil *ethod *ulti,ly dan *en@etak hasilnya +e*anggilan *ethod set/asio untuk *engeset nilai /1 *en0adi bentuk ,e@ahan a)alnya dan *enghitung nilai bilangan ,e@ahan dari /1 dan / dengan *e*anggil *ethod De1ide dan *en@etak hasilnya &khir dari kelas /asional%De*o D( S-,eensh*" P,*g,a0 E( Kes!02+lan Constru@tor adalah suatu *ethod yang *e*,unyai na*a sa*a dengan na*a @lass. Constru@tor tidak *e*iliki a@@ess *odifier. Constru@tor digunakan untuk *enginisialisasi ob0ek dari sebuah @lass. +erbedaan @onstru@tor dan *ethod yaitu body *ethod dari @onstru@tor dita*,ilkan saat ob0ek di@i,takan, sedangkan ,ada *ethod dita*,ilkan ketika *ethod tersebut di,anggil oleh ob0ek. Method instan adalah *ethod yang da,at *erubah keadaan dari suatu ob0ek yang telah di@i,takan. Cara *e*anggilnya yaitu dengan for*at na*aOb0ek.na*aMethod23 F( Sa,an Bebih di0elaskan lagi *as, *akasih.