MODUL 6
MODUL 6
Method
Method
TUJUAN PRAKTIKUM : TUJUAN PRAKTIKUM : 1.1. PraktikPraktikan dapaan dapat memahat memahami kmi konsep monsep method paethod pada java.da java. 2.
2. PraktikPraktikan an dapat dapat mengerti mengerti esensi esensi penggupenggunaan naan method method dalam dalam Java.Java. 3.
3. PraktikPraktikan dan dapat mapat memahami emahami bentuk bentuk umum umum method.method. 4.
4. PraktikPraktikan dapan dapat memat memahami kahami konsep onsep dasar Grdasar Greenfooteenfoot 5.
5. PrPraktaktikikan an dadapapat t menmengigimpmplemlemententasiasikakan n pepemahmahamaaman n metmethohod d papadada Greenfoot
Greenfoot
A.
A. CCllasasss
Dide
Didenisinisikan !lass kan !lass sebasebagai gai sebusebuah ah blublue e prinprint" t" atau protoatau prototipetipe" " #an#angg men
mendedeninisiksikan an vavariariablble$e$vavaririabeabel l dadan n memetodtode$me$metoetode de #an#ang g umumumum untuk semua objek dari jenis tertentu. !lass mendenisikan atribut dan untuk semua objek dari jenis tertentu. !lass mendenisikan atribut dan perilaku objek #ang dibuatn#a. !lass merupakan denisi formal suatu perilaku objek #ang dibuatn#a. !lass merupakan denisi formal suatu abst
abstrakraksi. si. !las!lass s berberlaklaku u sebasebagai gai temptemplate late untuuntuk k pempembuatbuatan an objobjek$ek$ objek. !la
objek. !lass berisi abstrss berisi abstraksi #ang taksi #ang terdiri derdiri dari nama ari nama %lass" atrib%lass" atribut danut dan servi%e.
servi%e.
&agian$bagian dari sebuah !lass se%ara umum penulisan %lass terdiri &agian$bagian dari sebuah !lass se%ara umum penulisan %lass terdiri atas 2 bagian #akni'
atas 2 bagian #akni'
1.
1. ClClass Decass Declarlaratiationon &entuk (mum ' &entuk (mum '
)modier*
)modier* classclass +nama,kelas- +nama,kelas- ... ... ... ... +%lass +%lass bod#-... ...
... /
)modier* adalah pengaturan level akses terhadap kelas
tersebut. Dengan kata lain" modier ini akan menentukan sejauh mana kelas ini dapat digunakan oleh kelas atau pa%kage lainn#a. 0dapun ma%am$ma%am modier ialah '
• kosong default not specifed
elas tersebut dapat diakses oleh kelas lain dalam satu pa%kage.
• public
elas tersebut dapat dipakai dimanapun" maupun kelas lain atau pa%kage lain.
• private
elas tersebut tidak dapat diakses oleh kelas manapun.
. Class od!
!lass &od# merupakan bagian dari kelas #ang mendeklarasikan kode program java.
!lass &od# tersusun atas' a. onstruktor
b. Variable Instance 0tribut
%. Method dikenal juga sebagai fun%tion atau def
(ntuk dapat menggunakan kelas #ang telah didenisikan" anda harus membuat sebuah objek dari kelas tersebut instance class" dengan syntax '
amaelas na"aO#$e% & ne' amaelas )parameter* (
!ontoh'
)it*n+l*as segitiga & ne' )it*n+l*as(
C. Instance Variables
,Atri#*t-6uatu objek dapat dibedakan berdasarkan sifat behavior #ang berbeda. objek juga dapat dibedakan berdasarkan atributn#a. 7isaln#a burung dapat dibedakan berdasarkan suara ki%auan" 8arna bulu" bentuk tubuh" dsb. . Dalam bahasa lain dikenal juga sebagai property #ang mana merupakan %iri$%iri dari sebuah objek.
0tribut #ang membedakan suatu instance objek burung #ang satu dengan #ang lainn#a disebut instance aria#le.
&entuk (mum '
)"odi/er* +ti0edata- +nama_variabel- 9 )nilai,default*:
!ontoh '
0*#lic do*#le tinggi: 0riate int berat 9 ;<:
0dapun perbedaan local dan instance variable adalah '
1. Instance variable dideklarasikan di dalam kelas tetapi tidak di dalam method.
class segitiga 2
do*#le tinggi 9 15.2: // ini adalah variabel instance 3trin+ jenis: // ini adalah variabel instance
int tambah() 2 ret*rn 4( 5
5
int tambah,- 2
int total 9 tinggi = 2: // total adalah variabel local ret*rn total:
5 D. Method
6ebuah method adalah bagian$bagian kode #ang dapat dipanggil oleh kelas" badan program atau method lainn#a untuk menjalankan fungsi #ang spesik di dalam kelas. 6e%ara umum method dalam java adalah sebuah fungsi.
&erikut adalah karakteristik dari method '
1. Dapat mengembalikan melaporkan nilai balikkan return value atau tidak void
2. Dapat diterima beberapa parameter #ang dibutuhkan atau tidak ada parameter sama sekali. Parameter bisa juga disebut sebagai argumen dari fungsi. Parameter berguna sebagai nilai masukkan #ang hendak diolah oleh fungsi.
3. 6etelah method telah selesai dieksekusi" dia akan kembali pada method #ang memanggiln#a.
De%larasi se#*ah "ethod
7ethod terdiri atas dua bagian #akni '
1. 7ethod de%laration 2. 7ethod &od#
7ethod dapat digambarkan sebagai sifat behavior dari suatu %lass. (ntuk mendenisikan method pada dalam class digunakan s#nta> '
"odi/er7 +tipe,data,return- na"a"ethod )parameter*
...
return +data,return-: /
!ontoh '
0*#lic int er!alian int y :int "
ret*rn y 8 " : /
9. Modi/er 0ada "ethod
7odier menentukan level pengaksesan sebuah method. ?al ini menentukan apakah sebuah method biasa diakses oleh objek lain" objek anak" objek dalam satu paket atau tidak dapat diakses oleh suatu obje%t sama sekali berikut adalah beberapa jenis level a%%ess'
• Publi%
0tribut ini menunjukan bah8a fungsimethod dapat diakses oleh kelas lain.
• Private
0tribut ini menunjukan bah8a fungsi atau method tidak dapat diakses oleh kelas lain
• Prote%ted
0tribut ini menunjukan bah8a fungsi atau method bisa diakses oleh kelas lain dalam satu paket dan han#a kelas lain #ang merupakan sub%lass n#a pada paket #ang berbeda.
• @anpa modier
0tribut ini menunjukan bah8a method dapat diakses oleh kelas lain dalam paket #ang sama.
. Method tan0a nilai #ali%an
7ethod ini merupakan method #ang tidak mengembalikan nilai. 7aka dari itu" kita harus mengganti tipe kembalian dengan kata kun%i void. &erikut ini kode program #ang dimaksud'
class Kota%2
do*#le panjang: do*#le lebar : do*#le tinggi:
//mendefnisi!an method void (tida! mengembali!an nilai) oid ceta!Volume,-2
System#out#printlnAVolume !ota! $ A Bpanjang=lebar=tinggi: 5
5
class De"oMethod12
0*#lic static oid "ain,3trin+7 ar+s-2 otak k1" k2" k3:
instansiasi objek k19ne8 otak: k29ne8 otak: k39ne8 otak:
mengisi data untuk objek k1 k1.panjang94:
k1.lebar93: k1.tinggi92:
mengisi data untuk objek k2 k2.panjang9C:
k2.lebar95: k2.tinggi94:
mengisi data untuk objek k3 k3.panjang9:
k3.lebar9;: k3.tinggi9C:
memanggil method %etakEolume untuk masing$masing objek k1.%etakEolume: k2.%etakEolume: k3.%etakEolume: 5 5
//%utput &
//Volume !ota! $ '# //Volume !ota! $ *'# //Volume !ota! $ ++,#
;. Method den+an nilai #ali%an
Di sini" kita akan memodikasi program sebelumn#a dengan
mengganti method %etakEolume menjadi method hitungEolume #ang akan mengembalikan nilai dengan tipe double. &erikut ini kode program #ang dimaksud'
class Kota%2
do*#le panjang: do*#le lebar : do*#le tinggi:
//mendefnisi!an method yang mengembali!an tipe double do*#le hitungEolume,-2
//menghitung volume
do*#le vol 9 panjang=lebar=tinggi: //mengembali!an nilai
ret*rn vol: 5
5
class De"oMethod<2
0*#lic static oid "ain,3trin+7 ar+s-2 otak k1" k2" k3:
instansiasi objek k19ne8 otak: k29ne8 otak: k39ne8 otak:
mengisi data untuk objek k1 k1.panjang94:
k1.lebar93: k1.tinggi92:
mengisi data untuk objek k2 k2.panjang9C:
k2.lebar95: k2.tinggi94:
k3.panjang9: k3.lebar9;: k3.tinggi9C: 6#stem.out.printlnAEolume k1 9 ABk1.hitungEolume: 6#stem.out.printlnAEolume k2 9 ABk2.hitungEolume: 6#stem.out.printlnAEolume k3 9 ABk3.hitungEolume: 5 5 O*t0*t : Eolume k1 9 24.< Eolume k2 9 12<.< Eolume k3 9 33C.< ). Para"eter
Dengan adan#a parameter" sebuah method dapat bersifat dinamis dan general. 0rtin#a" method tersebut dapat mengembalikan nilai #ang beragam sesuai dengan nilai parameter #ang dile8atkan. @erdapat dua istilah #ang perlu anda ketahui dalam bekerja dengan method" #aitu parameter dan argumen. Parameter adalah variabel #ang didenisikan pada saat method dibuat" sedangkan argumen adalah nilai #ang digunakan pada saat pemanggilan method. Dalam referensi lain" ada juga #ang men#ebut parameter sebagai parameter formal dan argumen sebagai parameter aktual. Perhatikan kembali denisi method berikut '
int luasersegianjang ,int panjang= int lebar -2 ret*rn panjang = lebar:
5
Disini" variabel panjang dan lebar disebut parameter.
Fuas1 9 luasPersegiPanjang1<" 5:
0dapun pada statemen diatas" nilai 1< dan 5 disebut argumen.
6ekarang" kita akan mengimplementasikan konsep di atas ke dalam kelas otak. Di sini data panjang" lebar" dan tinggi akan kita isikan
melalui sebuah method. &erikut ini kode program #ang dapat digunakan untuk melakukan hal tersebut.
class Kota%2 do*#le panjang: do*#le lebar : do*#le tinggi:
//mendefnisi!an method dengan parameter oid isiData,do*#le 0= do*#le l= do*#le t-2
panjang 9 p: lebar 9 l: tinggi 9 t: 5 do*#le hit*n+>ol*"e,-2 returnpanjang=lebar=tinggi: 5 5 class De"oMethod42
0*#lic static oid "ain,3trin+7 ar+s-2 otak k:
instansiasi objek k 9 ne8 otak:
memanggil method isiData k.isiData4"3"2:
6#stem.out.printlnAEolume kotak 9 A B k.hitungEolume: 5
5
O*t0*t :
Eolume kotak 9 24.<
&agaimana jika bagian lain dari program ingin tahu juga nilai volume itu tetapi tidak ingin menampilkann#a men%etakn#a. 0pabila terdapat suatu fungsi #ang tidak menghasilkan suatu nilai apapun maka bagian return t#pe ini diganti dengan void .
!ontoh penggunaan return'
0ac%a+e %oba!oba:
class balok int p" l" t:
int volume int p" int l" int t
ret*rn p=l=t: /
0*#lic static oid main6tring args)*
6%anner masuk 9 ne' 6%anner6#stem.in: fungsi untuk menginputkan suatu nilai
6#stem.out.printAPanjang 9 A: int a9masuk.ne>tnt: 6#stem.out.printAFebar 9 A: int b9masuk.ne>tnt: 6#stem.out.printA@inggi 9 A: int %9masuk.ne>tnt: balok %oba 9 ne' balok:
6#stem.out.printAHnEolume balok 9 AB %oba.volumea"b"%: / / //%utput & //anjang $ ' //Lebar $ + //-inggi $ ' //Volume balo! $ *' I. Method 3tatic
6ebuah method stati% dapat diakses tanpa harus melakukan instantiasi terlebih dahulu. Pemanggilan method stati% dilakukan dengan format '
Na"a%elas.nama_method:
ama,kelas diberikan bila method tersebut dipanggil dari kelas #ang berbeda.. !ontoh ' class 7#6tati% 2 static oid Fuas 2 int p 9 1<: int l 9 2 : 3!ste".out .0rintlnILuas $ IB p=l :
/
0*#lic static oid main 6tring )* args
Luas: // pemanggilan method luas 5
5
0*#lic class persegi
static int hitungluasint p" int l ret*rn p=l:
/
0*#lic static oid main6tring)* args int 9<: 9hitungluas3"2: 6#stem.out.println: / / J. ;reen?oot
Greenfoot adalah perangkat lunak #ang didesain untuk pemula agar dapat terbiasa dengan Pemrograman &erorientasi Kbjek %bject. %riented rogramming" #ang mendukung pengembangan aplikasi bergambar dengan memakai bahasa pemrograman Java.
(ntuk lebih memahami pengimplementasian method pada Greentfoot" berikut ini kami buat s%enario lengkapn#a '
Pada kesempatan kali ini akan membuat sebuah game #ang berjudul ILat and Mun NNO. 6e%ara umum permainan ini sangat mudah untuk dimainkan oleh siapa saja" %aran#a dengan menggunakan tombol navigasi pada ke#board untu menggerakan obje%t. 0dapun langkah$ langkah pembuatann#a" 0ntara lain '
a. Me"#*at @orld
orld pada greenfoot merupakan latar pada game #ang akan dibuat. Fangkah pengerjaan '
1. &uka aplikasi ;reen?oot
2. (ntuk memulai pertama$tama buatlah sebuah s%enario baru dengan %ara klik 3cenario" pilih ne' scenario. &eri nama pada s%enario baru #ang akan kalian buat dan tentukan lokasi pen#impanann#a" kemudian klik create
3. Pada orld !lasses buat ne8 sub%lass dengan %ara klik kanan pada @orld"klik kanan pilih ne' s*#class.&eri nama kelas
dengan nama Q&a%kgroundR. Falu pilih image untuk dijadikan ba%kground. Falu klik K.
4. 6etelah selesai klik Co"0ile
#. Me"#*at Actor
0%tor pada greenfoot merupakan obje%t #ang akan berperan dalam permainan. Fangkah pengerjaan '
1. lik kanan pada Actor" kemudian pilih ne' s*#class" kemudian beri nama sub%lass tersebut IlobsterO" setelah itu pilih gambar lobster pada mage %ategories" setelah itu klik o%
2. emudian buat obje%t lain dengan nama I&atuO dan IJamurO seperti pada langakah sebelumn#a" selanjutn#a klik Co"0ile
3. 6elanjutn#a letakan obje%t lobster #ang sudah dibuat pada orld dengan %ara klik kanan pada Lo#ster pilih ne' lo#ster,-" letakan juga obje%t #ang lainn#a.
c. User Interaction 0ada Actor
6etelah kita membuat a%tor dan 8orld pada greenfoot" langkah selanjutn#a #aitu memasukan perintah pada obje%t agar obje%t tersebut dapat digerakan. (ser ntera%tion #ang dapat kita gunakan 0ntara lain menggunakan inputan dari mouse dan ke#board.
(ntuk dapat menggerakan lobster" kita menggunakan ke#board untuk memasukan perintah. Fangkah Pengerjaan '
1. lik kanan pada a%tor Lo#ster" setelah itu pilih o0en editor. 6elanjutn#a kita akan memasukan perintah berupa baris program java. Act pada greenfoot merupakan method main #ang akan mengeksekusi baris program. &uat sebuah method baru #ang diberi nama Ke!#oardController dan letakan juga method tersebut dalam method main" sehingga pada saat program dijalankan method tersebut akan ikut dieksekusi. 6etelah itu klik co"0ile untuk mengeksekusi program dan memastikan tidak ada kesalahan pada baris program.
2. Fangkah selanjutn#a #aitu menjalankan aplikasi" dengan %ara klik tombol r*n. 6etelah itu %oba tekan tombol navigasi untuk memastikan lobster dapat bergerak.
3. emudian langkah selanjutn#a #aitu membuat obje%t IJamurO agar dapat menghilang ketika obje%t lobster menabrakn#a dengan %ara menambahkan a%tion pada obje%t lobster. &uka
open editor pada a%tor Lo#ster dan masukan perintah pada gambar berikut ini.
4. Mun kembali aplikasi dan lihat apakah obje%t Jamur berhasil hilang ketika ditabrak oleh lobster.
5. Fangkah terakhir #aitu memasukan a%tion pada a%tor lo#ster" sehingga apabila lobster menabrak &atu maka program berakhir. &uka o0en editor dan edit dengan menambahkan baris program sebagai berikut.
C. Mun kembali aplikasi dan lihat apakah permainan dapat berhenti ketika obje%t lobster menabrak batu.