(3) jobsheet class dan object 2-1 - ifrozi.files.wordpress.com · jobsheetpraktikum(oop((v1.0)(!...
TRANSCRIPT
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
3 – Class dan Object (2) PENDAHULUAN
Masih tentang Class dan Object, jika pada bagian sebelumnya fokus pembahasan terletak pada bagaimana cara menggambarkan desain Cklas menggunakan Class Diagram, cara membuat Class di Java, cara membuat/deklarasi atribut dan method, cara melakukan instansiasi dan cara mengakses atribut dan method dari suatu objek yang telah terbentuk, maka pada bagian ini akan dibahas konsep Class dan Object yang lebih lanjut. Kensep tersebut antara lain:
• Access Modifier • Konstruktor • Atribut/Method Instansiasi • Atribut/Method Class
Access Modifier
Atribut dan method yang dimiliki oleh oleh suatu class bisa dibatasi hak akses terhadapnya. Hal itu bisa dilakukan dengan memberikan access modifier pada atribut dan method dari suatu class. Ada 4 macam access modifier, yaitu:
Pada Class Diagram, private digambarkan dengan tanda -‐, public dengan tanda +, protected dengan tanda # dan default (tanpa modifier access) dengan tanda ~.
Konstruktor
Pada bahasan sebelumnya, setelah class terbentuk, selanjutnya harus dibuat objek. Pada saat proses pembentukan objek (instansiasi), sebenarnya yang berperan adalah konstruktor. Pada dasarnya, konstruktor merupakan suatu method tetapi dengan karakteristik khusus. Beberapa karakteristik dari konstuktor antara lain:
• Nama konstruktor selalu sama dengan nama class • Selalu memiliki modifier access public • Konstruktor hanya jalan saat proses instansiasi • Konsruktor tidak memiiki tipe data method, layaknya method pada umumnya
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
• Tidak bisa memiliki return.
Ada 2 jenis konstruktor, yaitu:
• Konstruktor Default : konstruktor yang tidak memiliki parameter atau argumen. Contoh konstruktor untuk class Mahasiswa:
• Konstruktor Berparameter/Berargumen : konstruktor yang memiliki parameter atau argumen.
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
Contoh proses instansiasi yang menggunakan konstruktor default dari contoh di atas, yaitu:
Mahasiswa m = new Mahasiswa();
Sedangkan contoh proses instansiasi yang menggunakan konstruktor berparameter dari contoh di atas yaitu:
Mahasiswa m = new Mahasiswa (“0210630064”, “Imam F”);
Atribut dan Method Instansiasi
Atribut dan method instansiasi merupakan atribut dan method yang dimiliki oleh objek hasil instansiasi. Jadi untuk mengakses atribut dan method tersebut, sebelumnya harus dibuat terlebih dahulu objek. Atribut instansiasi biasanya digunakan untuk atribut-‐atribut dari suatu class, dimana nilai dari atribut tersebut untuk objek satu dengan objek yang lain berbeda-‐beda dan tersimpan pada alamat referensi atau alamat memori yang berbeda.
Contohnya pada class Mahasiswa di atas, nilai nim dan nama untuk objek mahasiswa satu dengan objek mahasiswa lain bisa berbeda nilainya. Sehingga atribut nim dan nama tersebut termasuk ke jenis atribut instansiasi.
Dan untuk mengakses atribut maupun method instansiasi, harus terlebih dahulu dibuat objek. Contohnya: untuk mengakses atribut nim, nama dan memanggil method ubahNama(), terlebih dulu harus dibuat objek dari class Mahasiswa. Baru kemudian atribut nim dan nama dan method ubahNama() bisa diakses.
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
Mahasiswa m = new Mahasiswa(); m.nim = “0210630064”; m.nama = “Imam F”; m.ubahNama(“Imam Fahrur Rozi”);
Atribut dan Method Class
Jika atribut instansiasi digunakan untuk atribut yang memiliki nilai yang berbeda-‐beda antara objek yang satu dengan objek yang lain dari class yang sama, maka atribut class digunakan untuk atribut yang nilainya antara objek satu dengan objek yang lain dari class yang sama akan bernilai sama. Misalnya mahasiswa memiliki SPP, dan nilai SPP tersebut dipastikan sama antara mahasiswa satu dengan mahasiswa lainya. Ini berarti, atribut SPP untuk objek mahasiswa satu dengan objek mahasiswa lainnya bernilai sama. Sehingga SPP tersebut bisa digolongkan sebagai atribut class.
Untuk membuat atribut dan method class ditandai dengan kata kunci static. Dan untuk mengakses
atribut class, tidak perlu dibuat objek lebih dulu, karena bisa diakses langsung dari nama classnya.
Contohnya: Class Mahasiswa di atas ditambahi atribut spp yang merupakan atribut class dan method ubahSpp() yang merupakan method class.
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
Dan untuk mengakses atribut spp dan method ubahSpp() tidak perlu membuat objek dari class Mahasiswa lebih dulu, melainkan bisa langsung menggunakan nama class Mahasiswa langsung.
Mahasiswa.spp = 10000; Mahasiswa.ubahSpp(15000);
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
PERCOBAAN 1 : ACCESS MODIFIER
Tujuan:
1. Mahasiswa memahami konsep penggunaan access modifier 2. Mahasiswa mampu membuat atribut dan method dengan access modifier 3. Mahasiswa memahami efek dari access modifier yang diterapkan pada suatu atribut maupun
method
Prosedur Percobaan:
1. Perhatikan class diagram di bawah ini:
2. Buat program dari class diagram di atas, dan simpan dengan nama file Sepeda.java
Sepeda
+ kode : String # merek : String ~ jenis : String -‐ kecepatan : float -‐ gigi : int + start () : void + tambahKecepatan(float v) : void + kurangiKecapatan(float v) : void -‐ tambahGigi() : void -‐ kurangiGigi() : void + stop(): void + tampilData() : void
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
3. Compile dan jalankan class Sepeda tersebut! Amati hasilnya! 4. Buat class baru dan simpan dengan nama file SepedaDemo.java
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
5. Compile dan jalankan class SepedaDemo.java! Amati hasilnya!
Pertanyaan:
1. Adakah atribut dan method dari class Sepeda yang tidak bisa diakses dari dalam class itu sendiri? Sebutkan jika ada! …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
2. Dari hasil percobaan tahap 3 (hasil compile dan run terhadap Sepeda.java), apakah Anda menemukan error? Jelaskan (error atau tidak error hasilnya) dikaitkan dengan modifier access dari atribut maupun methodnya! …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
3. Dari hasil percobaan tahap 5 (hasil compile dan run terhadap SepedaDemo.java), apakah Anda menemukan error? Jika iya, jelaskan apa penyebab terjadinya error tersebut!
…………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
4. Atribut dan method apakah dari class Sepeda, yang hanya bisa diakses dari dalam class itu sendiri?
…………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
5. Atribut dan method apakah dari class Sepeda, yang bisa diakses dari class lain yang berada pada
paket yang sama dengan class Sepeda tersebut?
……………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………..
6. Bisakah atribut jenis dari class Sepeda diakses dari class SepedaDemo? Jika bisa, jelaskan lebih lanjut mengapa bisa?
……………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………..
7. Jika di dalam method main di dalam class SepedaDemo, ditambahkan sintaks s1.kurangiGigi(), apakah bisa? Jelaskan jawaban Anda!
……………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………..
8. Perhatikan baris program 19 dan 24 dari class Sepeda, disitu terlihat dipanggil method kurangiGigi() dan tambahGigi() yang notabene memiliki access modifier private, dan tidak menimbulkan error. Mengapa bisa demikian?
……………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………..
9. Apa yang harus dilakukan agar error pada class SepedaDemo bisa hilang?
……………………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………..
10. Berikan kesimpulan dari percobaan yang telah dilakukan dan beberapa pertanyaan terkait dengan access modifier!
……………………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………..
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
PERCOBAAN 2 : KONSTRUKTOR
Tujuan:
1. Mahasiswa memahami konsep konstruktor 2. Mahasiswa mampu membuat konstruktor default dan konstruktor berparameter 3. Mahasiswa mampu membuat objek dengan menggunakan konstruktor default dan konstruktor
berparameter
Prosedur Percobaan:
1. Buka kembali file Sepeda.java di atas! 2. Tambahkan konstruktor default dan konstruktor berparameter dari class Sepeda tersebut.
Letakkan konstuktor tersebut di bawah atribut!
3. Di dalam method main() yang ada di dalam class Sepeda, tambahkan beberapa proses instansiasi seperti tampil di gambar berikut:
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
4. Compile dan jalankan kembali class Sepeda! Amati hasilnya!
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
Pertanyaan:
1. Mengapa pada baris pertama hasil keluaran muncul tulisan Objek terbentuk menggunakan konstruktor default ? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
2. Mengapa juga pada baris-‐baris setelahnya muncul tulisan Objek terbentuk menggunakan konstruktor berparameter 1 dan Objek terbentuk menggunakan konstruktor berparameter 2? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..
3. Perhatikan pada method main() dari class Sepeda tersebut, pada baris berapakah proses instansiasi yang menggunakan konstruktor berparameter dengan 2 parameter dijalankan? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
4. Perhatikan hasil keluaran program: Objek terbentuk menggunakan konstruktor berparameter 2 KODE = KOSONG MEREK = KOSONG JENIS = KOSONG KECEPATAN = 25.0 GIGI = 4
Setelah ditampilkan muncul nilai kode=KOSONG, merek=KOSONG, jenis=KOSONG, kecepatan=25.0 dan gigi=4. Dapat dari manakah nilai-‐nilai tersebut? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
5. Misalkan di dalam class Sepeda ditambahkan konstruktor seperti di bawah ini: public Sepeda(int x){ gigi = x; }
Bisa apa tidak? Jelaskan! …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
…………………………………………………………………………………………………………………………………………………….. 6. Berikan contoh konstruktor berparameter dengan 3 parameter untuk class Sepeda tersebut,
dan berikan juga contoh proses instansiasi yang menggunakan konstruktor dengan 3 parameter tersebut! …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
7. Berikan kesimpulan dari percobaan yang telah dilakukan dan beberapa pertanyaan terkait dengan konstruktor!
……………………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………..
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
PERCOBAAN 3 : ATRIBUT&METHOD CLASS DAN ATRIBUT&METHOD INSTANSIASI
Tujuan:
1. Mahasiswa memahami konsep atribut&method class dan atribut&method instansiasi 2. Mahasiswa mampu membuat atribut&method class menggunakan kata kunci static 3. Mahasiswa mengetahui beda cara mengakses atribut&method class dengan atribut&method
instansiasi
Prosedur Percobaan:
1. Buka kembali file Sepeda.java di atas! 2. Tambahkan atribut class jumTotalSepeda dan method class tambahJumTotalSepeda()!
3. Method main() di dalam class Sepeda juga diubah menjadi sbb:
Atribut class
Method class
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
Penjelasan: Setiap selesai proses instansiasi, dijalankan method class tambahJumTotalSepeda(), yang menandakan bahwa jumlah objek yang terbentu dari class Sepeda bertambah
4. Compile dan jalankan class Sepeda, dan amati hasil keluarannya!
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
Pertanyaan:
1. Sebutkan atribut dan method instansiasi yang dimiliki oleh class Sepeda! …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
2. Sebutkan atribut dan method class yang dimiliki oleh class Sepeda! …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………..
3. Jelaskan perbedaan antara atribut dan method instansiasi dan atribut dan method class dari nilai yang disimpan di dalamnya! …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………..
4. Jelaskan perbedaan antara atribut dan method instansiasi dan atribut dan method class dari cara mengakses atribut dan method tersebut! …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………..
5. Perhatikan hasil keluaran di atas. Jelaskan bagaimana bisa muncul nilai 3 untuk jumlah total objek sepeda yang dibuat! …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………..
6. Berikan kesimpulan dari percobaan yang telah dilakukan dan beberapa pertanyaan terkait dengan konstruktor!
……………………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………..
Jobsheet Praktikum OOP (v1.0)
Imam Fahrur Rozi, PSMI -‐ Polinema
LATIHAN
Buatlah program dari Class Diagram di bawah ini!
Penjelasan: • Perhatikan notasi access modifier pada tiap atribut dan method • Perhatikan juga notasi atribut/method class • Atribut jumVolumeTotalBalok digunakan untuk menyimpan jumlah volume total dari
objek-‐objek balok yang sudah terbuat.
Balok
+ panjang : double # lebar : double ~ tinggi : double + jumVolumeTotalBalok : double
+ hitungVolume () : double + hitungLuasPermukaan() : double + hitungDiagonalRuang() : double ~ hitungDiagonalSisiDepan() : double # hitungDiagonalSisiSamping() : double -‐ hitungDiagonalSisiAtas() : double