Hal yang perlu dipahami adalah setiap subclass akan mewarisi state dan behaviour dari

PEMROGRAMAN BERORIENTASI OBJEK dideklarasikan dengan tingkat akses protected. Untuk mendeklarasikan suatu data atau method dengan tingkat akses protected, gunakan kata kunci ptotected. Listing Program public class motor { protected String jenismotor; protected String address; public motor() program turunan: program honda.java public class honda extends motor { protected String jenishonda; protected String kecepatanhonda; public honda() { dari contoh program protected yang dapat mengakses hanya kelas motor dan kelas turunannya, yaitu Honda Private Dengan mendeklarasikan data dan method menggunakan tingkat akses private, maka data dan method tersebut hanya dapat diakses oleh kelas yang memilikinya saja. Ini berarti data dan method tersebut tidak boleh diakses atau digunakan oleh kelas-kelas lain yang terdapat didalam program. Untuk mendeklarasikan suatu data atau method dengan tingkat akses private, gunakan kata kunci private. Listing Program public class Siswa { //akses dasar terhadap variabel private String nama; //akses dasar terhadap metode private String getNama(){ return name; } } 135 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Pada contoh diatas, variabel nama dan method getNama() hanya dapat diakses oleh method internal class tersebut. Default Untuk hak akses default ini, sebenarnya hanya ditujukan untuk class yang ada dalam satu paket, atau istilahnya hak akses yang berlaku untuk satu folder saja (tidak berlaku untuk class yang tidak satu folder/package). Listing Program public class Siswa{ //akses dasar terhadap variabel String nama; //akses dasar terhadap method String getName(){ return nama; } } Pada contoh diatas, variabel nama dan method getNama() hanya dapat diakses oleh method internal class tersebut.c. Rangkuman Terdapat 4 macam access modifiers di JAVA, yaitu : public, private, protected dan default. Public dapat diakses di dalam class itu sendiri, dapat diakses dengan menggunakan metode extend dan instan pada paket yang sama, serta dapat diakses dengan metode extend maupun instan dalam paket yang berbeda. Protected dapat diakses oleh kelas yang memilikinya dan juga oleh kelas-kelas yang masih memiliki oleh hubungan turunan. Sedangkan private, maka data dan method tersebut hanya dapat diakses oleh kelas yang memilikinya saja. Default sebenarnya hanya ditujukan untuk class yang ada dalam satu paket, atau istilahnya hak akses yang berlaku untuk satu folder saja (tidak berlaku untuk class yang tidak satu folder/package).d. TugasTugas 1Buatlah program untuk menghitung gaji bersih dari seorang pegawai, pajak ppnsebesar 10% dari gaji kotor. 136 | P a g ePEMROGRAMAN BERORIENTASI OBJEK  Mengamati Listing Program dan Output Program 1. Menentukan nama Class 2. Menentukan variabel yang digunakan 3. Menentukan nama Method 4. Gambar Class Diagram Nama Class Method : Operasi : 5. Buatlah listing program 6. Compile dan debug program  Bandingkan dan Simpulkan Bandingkan listing program dan output kelompok Anda dengan Kelompok lain. Berdasarkan hasil perbandingan tersebut hal penting apa yang harus dirumuskan secara bersama?e. Test FormatifDalam tes ini Anda harus membaca dengan cermat dan teliti setiap butir soaldibawah ini. Kemudian berdasarkan uraian materi diatas tulislah jawabannyapada lembar jawaban test formatif yang telah disediakan. 1. Apa yang anda pahami terkait keyword private, protected, public? 2. Apa yang terjadi jika anda membuat sebuah property atau method menjadi private, protected, public ? 137 | P a g ePEMROGRAMAN BERORIENTASI OBJEKf. Lembar Jawaban Test Formatif (LJ)LJ- 01 : Apa yang anda pahami terkait keyword private, protected, public? ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 02 : Apa yang terjadi jika anda membuat sebuah property atau methodmenjadi private, protected, public ? ................................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... 138 | P a g ePEMROGRAMAN BERORIENTASI OBJEKg. Lembar Kerja Siswa 139 | P a g ePEMROGRAMAN BERORIENTASI OBJEK10. Kegiatan Belajar 12 : Pewarisana. Tujuan Pembelajaran Setelah mengikuti kegiatan belajar 13 ini siswa diharapkan dapat : 1) Memahami konsep pewarisan 2) Menciptakan superclass dan subclassb. Uraian Materi1) Konsep Inheritas Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.Suatu class yang mempunyai class turunan dinamakan parent class atau base class. Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class. Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class. Karena suatu subclass dapat mewarisi apa apa yang dipunyai oleh parent class-nya, maka member dari suatu subclass adalah terdiri dari apa-apa yang ia punyai dan juga apa-apa yang ia warisi dari class parent-nya. Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lain hanya memperluas (extend) parent class-nya. Gambar 36. Mamalia Dari hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan semakin bersifat spesifik. Class mamalia memiliki seluruh sifat yang dimiliki oleh binatang, demikian halnya juga macan , kucing, Paus dan Monyet memiliki seluruh sifat yang diturunkan dari class mamalia. Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup didefinisikan didefinisikan dalam class binatang saja. Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh class binatang, karena sebagai class turunannya, ia akan mendapatkan karakteristik dari class binatang secara otomatis. Demikian juga dengan class macan, kucing, Paus dan monyet, hanya perlu mendefinisikan karakteristik yang spesifik dimiliki oleh class-nya masing-masing.Dengan 140 | P a g ePEMROGRAMAN BERORIENTASI OBJEKmemanfaatkan konsep pewarisan ini dalam pemrograman, maka hanyaperlu mendefinisikan karakteristik yang lebih umum akan didapatkan dariclass darimana ia diturunkan.Dalam Java, semua class, termasuk class yang membangun Java API,adalah subclasses dari superclass Object. Contoh hirarki class diperlihatkandi bawah ini. Beberapa class di atas class utama dalam hirarki class dikenalsebagai superclass. Sementara beberapa class di bawah class pokok dalamhirarki class dikenal sebagai sub class dari class tersebut. Gambar 37. Hierarki Class di JavaPewarisan adalah keuntungan besar dalam pemrograman berbasis objectkarena suatu sifat atau method didefinisikan dalam superclass, sifat inisecara otomatis diwariskan dari semua subclasses. Jadi, Anda dapatmenuliskan kode method hanya sekali dan mereka dapat digunakan olehsemua subclass. Subclass hanya perlu mengimplementasikan perbedaannyasendiri dan induknya.Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyekdapat mempunyai entitas/obyek turunan. Dengan konsep inheritance,sebuah class dapat mempunyai class turunan. Suatu class yangmempunyai class turunan dinamakan parent class atau base class.Sedangkan class turunan itu sendiri sering kali disebut subclass atau childclass. Suatu subclass dapat Mewari siapa-apa yang dipunyai oleh parentclass-nya, sehingga member dari suatu subclass adalah terdiri dari apa-apa yang ia punyai dan juga apa-apa yang diawarisi dari classparent-nya.Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lainhanya memperluas (extend) parentclass-nya. 141 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Kapan menerapkan inheritas? Kita baru perlu menerapkan inheritance pada saat kita jumpai ada suatu class yang dapat diperluas dari class lain. Misal terdapat class Pegawai public class Pegawai {public String nama;public double gaji;} Misal terdapat class Manager public class Manajer {public String nama;public double gaji;public String departemen;} Dari 2 buah class diatas, kita lihat class Manajer mempunyai data member yang identik sama dengan class Pegawai, hanya saja ada tambahan data member departemen.Sebenarnya yang terjadi disana adalah class Manajer merupakan perluasan dari class Pegawai dengan tambahan data member departemen. Disini perlu memakai konsep inheritance, sehingga class Manajer dapat kita tuliskan seperti berikut : public class Manajer extends Pegawai {public String departemen;} Keuntungan inheritas  Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan superclass, hal ini akan memungkinkan programmer Java untuk menggunakan ulang source code dari superclass yang telah ada.  Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class, untuk mendefinisikan class dengan behaviour dan state secara umum. Deklarasi inheritas Di dalam Java untuk mendeklarasikan suatu class sebagai sub class dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parentclass-nya. Kata kunci extends tersebut memberitahu compiler Java bahwa kita ingin melakukan perluasan class. Berikut adalah contoh deklarasi inheritance: public class B extends A{ ..... } Contoh di atas memberitahukan compiler Java bahwa kita ingin meng- extend class A ke class B. Dengan kata lain, class B adalah subclass 142 | P a g ePEMROGRAMAN BERORIENTASI OBJEK (class turunan) dari class A, sedangkan class A adalah parent class dari class B. Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati dengan mudah. Dalam konsep dasar inheritance dikatakan bahwa suatu subclass adalah tidak lain hanya memperluas (extend) parentclass-nya. Contoh: Listing Program Public class Pegawai{ Public String nama; Public double gaji; } Public class Manajer extends Pegawai{ Public String departemen; } Pada saat class Manajer menurunkan atau memperluas (extend) class Pegawai, maka ia mewarisi data member yang dipunyai oleh class Pegawai. Dengan demikian, class Manajer mempunyai data member yang diwarisi oleh Pegawai (nama, gaji), ditambah dengan data member yang ia punyai (departemen). Kontrol Pengaksesan Pengaksesan member yang ada di parent class dari subclass-nya tidak jauh berbeda dengan pengaksesan member subclass itu sendiri. Contoh: Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (control pengaksesan). Di dalam java, kontrol pengaksesan dapat digambarkan dalam table berikut ini: 143 | P a g ePEMROGRAMAN BERORIENTASI OBJEKTabel 12. Kontrol Pengaksesan ClassModifier Class yang package subclass Class Private sama yang sama manapun      Default  Protected Public c. Rangkuman Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan. Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya.d. Tugas Tugas 1 Buatlah sebuah super class dengan nama transport yang di dalamnya akan kita buat method bernama Kendaraan yang mencetak Kendaraan punya roda, stang, rem, dan jok. Selanjutnya buatlah sub class Mobil beserta method atau karakteristiknya, lalu tampilkan method Mobil beserta method-nya sebagai sebuah alat transport.  Mengamati Listing Program dan Output Program 1. Menentukan nama Class 2. Menentukan variabel yang digunakan 3. Menentukan nama Method 4. Gambar Class Diagram Nama Class Method : 144 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Operasi : 5. Buatlah listing program 6. Compile dan debug program  Bandingkan dan Simpulkan Bandingkan listing program dan output kelompok Anda dengan Kelompok lain. Berdasarkan hasil perbandingan tersebut hal penting apa yang harus dirumuskan secara bersama? Tugas 2 Buatlah kelas induk Hewan dan kelas anak Herbivora beserta masing-masing method-nya. Kemudian tampilkan karakteristik/method Hewan Herbivora tersebut. Mengamati Listing Program dan Output Program1. Menentukan nama Class2. Menentukan variabel yang digunakan3. Menentukan nama Method4. Gambar Class Diagram Nama Class Method : Operasi :5. Buatlah listing program6. Compile dan debug program 145 | P a g ePEMROGRAMAN BERORIENTASI OBJEKNo Output Program1.2.3.4.5.6.7.8.9.10. Bandingkan dan SimpulkanBandingkan listing program dan output kelompok Anda dengan Kelompok lain.Berdasarkan hasil perbandingan tersebut hal penting apa yang harus dirumuskansecara bersama? 146 | P a g ePEMROGRAMAN BERORIENTASI OBJEKe. Test FormatifDalam test ini setiap andaharus membaca dengan cermat dan teliti setiap butirsoal dibawah ini. Kemudian berdasarkan uraian materi diatas tulislah jawabannyapada lembar jawaban test formatif yang telah disediakan. 1. Apa arti keyword extends dan implements, kapan menggunakannya ? 2. Apa yang dimaksud dengan inheritance ?f. Lembar Jawaban Test Formatif (LJ)LJ- 01 :Apa arti keyword extends dan implements, kapan menggunakannya .................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 02 : Apa yang dimaksud dengan inheritance ? ................................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... 147 | P a g ePEMROGRAMAN BERORIENTASI OBJEKg. Lembar Kerja Siswa 148 | P a g ePEMROGRAMAN BERORIENTASI OBJEK11. Kegiatan Belajar 13: Pewarisana. Tujuan Pembelajaran Setelah mengikuti kegiatan belajar 16 siswa diharapkan dapat : 1) Memahami arti Superclass dan Subclass 2) Mendefinisikan Superclass dan Subclassb. Uraian MateriMendefinisikan Superclass dan Subclass untuk memperoleh suatu class,kitamenggunakan kata kunci extend.Untuk mengilustrasikan ini, kita akan membuatcontoh class induk. Dimisalkan kita mempunyai class induk yang dinamakanPerson. Listing Program public class Person { protected String name; protected String address; public Person(){ System.out.println(“Inside Person:Constructor”); name = ""; address = ""; } public Person(String name,String address ){ this.name = name; this.address = address; } public String getName(){ return name; } public String getAddress(){ 149 | P a g ePEMROGRAMAN BERORIENTASI OBJEK return address; } public void setName( String name ){ this.name = name; } public void setAddress( String add ){ this.address = add; } }Perhatikan bahwa atribut name dan address dideklarasikan sebagai protected.Alasannya kita melakukan ini yaitu, kita inginkan atribut-atribut ini untuk bisadiakses oleh sub classes dari super classess. Jika kita mendeklarasikannyasebagai private, sub classes tidak dapat menggunakannya. Catatan bahwasemua properti dari superclass yang dideklarasikan sebagai public, protecteddan default dapat diakses oleh sub classes-nya.Sekarang, kita ingin membuat class lain bernama Student. Karena Student jugasebagai Person, kita putuskan hanya meng-extend class Person, sehingga kitadapat mewariskan semua property dan method dari setiap class Person yangada. Untuk melakukan ini kita tulis, Listing Program public class Student extends Person { public Student(){ System.out.println(“Inside Student:Constructor”); //beberapa kode di sini } }Ketika object Student di-instantiate, default constructor dari super class secaramutlak meminta untuk melakukan inisialisasi yang seharusnya. Setelah itu,pernyataan di dalam sub class dieksekusi. 150 | P a g ePEMROGRAMAN BERORIENTASI OBJEKUntuk mengilustrasikannya, perhatikan kode berikut, Listing Program public static void main(String[]args ) { Student anna = new Student(); } Dalam kode ini,kita membuat sebuah object dari class Student. Keluaran dari program adalah, Inside Person:Constructor Inside Student:Constructor Gambar 38. Alur Program 151 | P a g ePEMROGRAMAN BERORIENTASI OBJEKc. Rangkuman Dalam konsep dasar inheritance dikatakan bahwa suatu sub class adalah tidak lain hanya memperluas (extend) parent class-nya. Pengaksesan member yang ada diparent class dari sub class-nya tidak jauh berbeda dengan pengaksesan member sub class itu sendiri. semua properti dari super class yang dideklarasikan sebagai public, protected dan default dapat diakses oleh sub classes-nya.d. Tugas Tugas 1 Buatlah program untuk menampilkan luas permukaan dan volume tabung. Gunakan parent-class Luas Lingkaran (method: jari-jari). Mengamati Listing Program dan Output Program1. Menentukan nama Class2. Menentukan variabel yang digunakan3. Menentukan nama Method4. Gambar Class Diagram Nama Class Method : Operasi :5. Buatlah listing program6. Compile dan debug program Bandingkan dan SimpulkanBandingkan listing program dan output kelompok Anda dengan Kelompok lain.Berdasarkan hasil perbandingan tersebut hal penting apa yang harusdirumuskan secara bersama? 152 | P a g ePEMROGRAMAN BERORIENTASI OBJEKTugas 2Buatlah program untuk menampilkan karakteristik (bentuk paruh, makanan,warna bulu, dan bentuk tungkai) Elang dari Kelas Burung. Mengamati Listing Program dan Output Program1. Menentukan nama Class2. Menentukan variabel yang digunakan3. Menentukan nama Method4. Gambar Class Diagram Nama Class Method : Operasi :5. Buatlah listing program6. Compile dan debug programNo Output Program1.2.3.4.5.6. 153 | P a g ePEMROGRAMAN BERORIENTASI OBJEK 7. 8. 9. 10.  Bandingkan dan Simpulkan Bandingkan listing program dan output kelompok Anda dengan Kelompok lain. Berdasarkan hasil perbandingan tersebut hal penting apa yang harus dirumuskan secara bersama?e. Test FormatifDalam test ini setiap anda harus membaca dengan cermat dan teliti setiap butirsoal dibawah ini. Kemudian berdasarkan uraian materi diatas tulislah jawabannyapada lembar jawaban test formatif yang telah disediakan. 1. Apa perbedaan superclass dan subclass ? 2. Apa yang anda ketahui tentang interface di java ?f. Lembar Jawaban Test Formatif (LJ)LJ- 01 : Apa perbedaan superclass dan subclass a. Superclass : a. ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... 154 | P a g ePEMROGRAMAN BERORIENTASI OBJEK b. Subclasss: ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 02: Apa yang anda ketahui tentang interface di java ? ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... 155 | P a g ePEMROGRAMAN BERORIENTASI OBJEKg. Lembar Kerja Siswa 156 | P a g ePEMROGRAMAN BERORIENTASI OBJEK12. Kegiatan Belajar 14 : Pewarisana. Tujuan Pembelajaran Setelah mengikuti kegiatan belajar 14 siswa diharapkan dapat : 1) Memahami penggunaan kata kunci super 2) Menerapkan penggunaan kata kunci cuper dalam inheritas 3) Memahami konsep overloading dan overriding 4) Menyajikan overloading dan overriding dalam classb. Uraian Materi1) Kata kunci super Subclass juga dapat memanggil constructor secara eksplisit dari superclass terdekat. Hal ini dilakukan dengan pemanggil constructor super. Pemanggil constructor super dalam constructor dari subclass akan menghasilkan eksekusi dari superclass constructor yang bersangkutan, berdasar dari argument sebelumnya. Sebagai contoh, pada contoh class sebelumnya. Person dan Student, kita tunjukkan contoh dari pemanggil constructor super. Diberikan kode berikut untuk Student, Sintaks kunci super public Student(){ super( "SomeName", "SomeAddress" ); System.out.println("Inside Student:Constructor"); } Kode ini memanggil constructor kedua dari superclass terdekat (yaitu Person) dan mengeksekusinya. Contoh kode lain ditunjukkan sebagai berikut, Listing Program public Student(){ super(); System.out.println("Inside Student:Constructor"); } 157 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Kode ini memanggil default constructor dari superclass terdekat (yaitu Person) dan mengeksekusinya. Ada beberapa hal yang harus diingat ketika menggunakan pemanggil constuktor super: a. Pemanggil super() harus dijadikan pernyataan pertama dalam constructor. b. Pemanggil super() hanya dapat digunakan dalam definisi constructor. c. Termasuk constructor this() dan pemanggil super() tidak boleh terjadi dalam constructor yang sama. Pemakaian lain dari supe radalah untuk menunjuk anggota dari superclass (seperti reference this). Sebagai contoh, Listing Program public Student() { super.name = “somename”; super.address = “some address”; }c. Rangkuman Subclass juga dapat memanggil constructor secara eksplisit dari superclass terdekat. Hal ini dilakukan dengan pemanggil constructor super. Pemanggil constructor super dalam constructor dari subclass akan menghasilkan eksekusi dari superclass constructor yang bersangkutan. Pemanggil super() hanya dapat digunakan dalam definisi constructor. Termasuk constructor this() dan pemanggil super() tidak boleh terjadi dalam constructor yang sama. Pemakaian lain dari super adalah untuk menunjuk anggota dari superclass (seperti reference this). 158 | P a g ePEMROGRAMAN BERORIENTASI OBJEKd. Tugas Tugas 1 Buatlah program untuk menghitung volume kubus dengan mengambil method dari class Persegi dengan memanfaatkan prinsip inheritas. Gunakan constructor this().  Mengamati Listing Program dan Output Program 1. Menentukan nama Class 2. Menentukan variabel yang digunakan 3. Menentukan nama Method 4. Gambar Class Diagram Nama Class Method : Operasi : 5. Buatlah listing program 6. Compile dan debug program Bandingkan dan SimpulkanBandingkan listing program dan output kelompok Anda dengan Kelompok lain.Berdasarkan hasil perbandingan tersebut hal penting apa yang harus dirumuskansecara bersama? 159 | P a g ePEMROGRAMAN BERORIENTASI OBJEKNo Output Program1.2.3.4.5.6.7.8.9.10. Bandingkan dan SimpulkanBandingkan listing program dan output kelompok Anda dengan Kelompok lain.Berdasarkan hasil perbandingan tersebut hal penting apa yang harus dirumuskansecara bersama?e. Test Formatif Dalam test ini setiap andaharus membaca dengan cermat dan teliti setiap butir soal dibawah ini. Kemudian berdasarkan uraian materi diatas tulislah jawabannya pada lembar jawaban test formatif yang telah disediakan. 1. Apakah fungsi dari kata kunci super ? 2. Apa yang harus diingat ketika menggunakan pemanggil constuktor super ? 160 | P a g ePEMROGRAMAN BERORIENTASI OBJEKf. Lembar Jawaban Test Formatif (LJ).LJ- 01 :Apakah fungsi dari kata kunci super ? ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 02 : Apa yang harus diingat ketika menggunakan pemanggil constuktorsuper ? ................................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... .................................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... 161 | P a g ePEMROGRAMAN BERORIENTASI OBJEKg. Lembar Kerja Siswa 162 | P a g ePEMROGRAMAN BERORIENTASI OBJEK13. Kegiatan Belajar 15 :Pewarisana. Tujuan Pembelajaran Setelah mengikuti kegiatan belajar 14 siswa diharapkan dapat : 1) Memahami konsep overloading dan overriding 2) Memahami metode final 3) Menyajikan overloading dan overriding dalam classb. Uraian Materi1) Metode Overloading Overloading adalah suatu keadaan dimana beberapa method sekaligus dapat mempunyai nama yang sama, akan tetapi mempunyai fungsionalitas yang berbeda. Overloading ini dapat terjadi pada class yang sama atau pada suatu parent class dan subclass-nya. Overloading mempunyai ciri-ciri sebagai berikut:  Nama method harus sama  Daftar parameter harus berbeda  Return type boleh sama, juga boleh berbedaContoh penggunaan overloading dilihat di bawah ini:Gambar(intt → 1parametertitik,untuk1) menggambartitikGambar(intt → 2parametertitik,untukmenggambargaris1, int t2) → 3parametertitik,untukmenggambarsegitGambar(intt iga1, int t2,int t3)Gambar(intt → 3parametertitik,untukmenggambarsegie1, int t2, mpatint t3, intt4)2) Overriding Method Overriding adalah suatu keadaan dimana method pada subclass menolak method pada parent class-nya. Overriding mempunyai ciri-ciri sebagai berikut:  Nama method harus sama  Daftar parameter harus sama 163 | P a g ePEMROGRAMAN BERORIENTASI OBJEK  Return type harus sama Untuk beberapa pertimbangan, terkadang class asal perlu mempunyai implementasi berbeda dari method yang khusus dari superclass tersebut. Oleh karena itulah, method overriding digunakan. Subclass dapat mengesampingkan method yang didefinisikan dalam superclass dengan menyediakan implementasi baru dari method tersebut. Misalnya kita mempunyai implementasi berikut untuk method getName dalam superclass Person, Listing Program public class Person { : public String getName() { System.out.println("Parent: getName"); return name; } }Untuk override, method getName dalam subclass Student, kita tulis, Listing Program public class Student extends Person { public String getName() { System.out.println("Student: getName"); return name; } }Jadi,ketika kita meminta method getName dari object class Student, methodoverridde akan dipanggil, keluarannya akan menjadi, Student: getName 164 | P a g ePEMROGRAMAN BERORIENTASI OBJEK3) Method final dan classfinal Dalam Java, juga memungkinkan untuk mendeklarasikan class-class yang tidak lama menjadi subclass. Class ini dinamakan class final. Untuk mendeklarasikan class untuk menjadi final kita hanya menambahkan kata kunci final dalam deklarasi class. Sebagai contoh, jika kita ingin class Person untuk dideklarasikan final, kita tulis, public final class Person { //area kode } Beberapa class dalam Java API dideklarasikan secara final untuk memastikan sifatnya tidak dapat di-override. Contoh-contoh dari class ini adalah Integer , Double , dan String. Ini memungkinkan dalam Java membuat method yang tidak dapat di-override. Method ini dapat kita panggil method final. Untuk mendeklarasikan method untuk menjadi final,kita tambahkan kata kunci final kedalam deklarasi method. Contohnya, jika kita ingin method getName dalam class Person untuk dideklarasikan final, kita tulis, Sintaks getName public final String getName(){ return name; } Method static juga secara otomatis final.Ini artinya Anda tidak dapat membuatnya override.c. Rangkuman Overloading adalah suatu keadaan dimana beberapa method sekaligus dapat mempunyai nama yang sama, akan tetapi mempunyai fungsionalitas yang berbeda. Overriding adalah suatu keadaan dimana method pada subclass menolak method pada parent class-nya. Subclass dapat mengesampingkan method yang didefinisikan dalam superclass dengan menyediakan implementasi baru dari method tersebut. Dalam Java, juga memungkinkan untuk mendeklarasikan class-class yang tidak lama menjadi subclass. Class ini dinamakan class final. Untuk mendeklarasikan class untuk menjadi final kita hanya menambahkan kata kunci final dalam deklarasi 165 | P a g ePEMROGRAMAN BERORIENTASI OBJEK class. Beberapa class dalam Java API dideklarasikan secara final untuk memastikan sifatnya tidak dapat di-override.d. TugasTugas 1Buatlah program untuk menampilkan luas segitiga dengan superclassbangun_datar dan sub class Segitiga. Gunakan prinsip overriding dan atauoverloading. Mengamati Listing Program dan Output Program1. Menentukan nama Class2. Menentukan variabel yang digunakan3. Menentukan nama Method4. Gambar Class Diagram Nama Class Method : Operasi :5. Buatlah listing program6. Compile dan debug programNo Output Program 1. 2. 3. 4. 166 | P a g ePEMROGRAMAN BERORIENTASI OBJEK 5. 6. 7. 8. 9. 10.  Bandingkan dan Simpulkan Bandingkan listing program dan output kelompok Anda dengan Kelompok lain. Berdasarkan hasil perbandingan tersebut hal penting apa yang harus dirumuskan secara bersama?e. Test Formatif.Dalam test ini setiap andaharus membaca dengan cermat dan teliti setiap butirsoal dibawah ini. Kemudian berdasarkan uraian materi diatas tulislah jawabannyapada lembar jawaban test formatif yang telah disediakan. 1. Apa arti dari override ? 2. Apa yang dimaksud dengan method overload ? 3. Apa perbedaan Method overriding dan method overload ? 4. Bagaimana anda secara eksplisit memanggil suatu konstruktor superclass dari subclass ?f. Lembar Jawaban Test Formatif (LJ) LJ- 01 : Apa arti dari override ? ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... 167 | P a g ePEMROGRAMAN BERORIENTASI OBJEK ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 02 : Apa yang dimaksud dengan method overload ? ................................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... .................................................................................................................. ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 03 : Apa perbedaan Method overriding dan method overload ? a. ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 04: Bagaimana anda secara eksplisit memanggil suatu konstruktorsuperclass dari subclass ? ................................................................................................................... 168 | P a g ePEMROGRAMAN BERORIENTASI OBJEK ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................g. Lembar Kerja Siswa. 169 | P a g ePEMROGRAMAN BERORIENTASI OBJEK14. Kegiatan Belajar 16 :Polimorphismea. Tujuan Pembelajaran Setelah mengikuti kegiatan belajar 16 siswa diharapkan dapat : 1) Memahami konsep polimorfisme 2) Menyajikan overloading dan overriding dalam classb. Uraian Materi1) Metode Overloading Polymorphism merupakan salah satu konsep penting dalam object oriented programming (OOP) khusunya di bahasa Java setelah abstraction dan inheritance. Polymorphism berarti banyak bentuk. Ada beberapa definisi berbeda tentang polymorphism yang berkaitan dengan pemrograman berorientasi obyek. Sedangkan apa yang dimaksud dengan polymorphism sendiri, sebenarnya sulit untuk didefinisikan. Sejalan dengan contoh yang diberikan, Anda diharapkan dapat mengerti dan memahami konsep polymorphism itu sendiri. Polymorphism sering dikaitkan dengan penggunaan lebih dari satu metoda dengan nama sama. Penggunaan metoda dengan nama sama dapat diterapkan dengan method overloading dan method overriding. Peran polymorphism sebenarnya tidak terbatas hanya pada hal tersebut. Ada keterkaitan antara polymorphism dan inheritance (turunan). Dalam konsep turunan, saat obyek dari subclass dikonstruksi, obyek dari superclass juga ikut dikonstruksi. Jadi setiap instance dari subclass adalah juga instance dari superclass. Apabila Anda mendeklarasikan metoda dengan parameter dari tipe superclass, Anda diperbolehkan untuk memberi argumen berupa obyek subclass yang merupakan turunan dari superclass tersebut. Berikut ini adalah contoh program yang dapat memberikan gambaran berkaitan dengan konsep polymorphism. Perlu dipahami dan dimengerti bahwa kelas Object merupakan akar dari semua kelas Java dan menduduki puncak tertinggi dalam hirarkhi. Program akan mendefinisikan kelas yang berkaitan dengan bidang datar secara sederhana termasuk beberapa kelas turunannya (kelas PersegiPanjang dan Balok) dan membatasi hanya pada penerapan method overriding. 170 | P a g ePEMROGRAMAN BERORIENTASI OBJEKListing Program // Nama file : Polimorphism.java // Contoh penerapan konsep polimorphism public class Polimorphism { public static void main(String[ ] args) { cetakObjek(new Balok()); cetakObjek(new PersegiPanjang()); cetakObjek(new BangunDatar()); cetakObjek(new Object()); } public static void cetakObjek(Object objek) { System.out.println(objek); } } // Akhir kelas Polimorphism class Balok extends PersegiPanjang { public String toString() { return "Mempunyai sisi panjang, lebar dan tinggi"; } } class PersegiPanjang extends BangunDatar { public String toString() { return "Mempunyai sisi panjang dan lebar"; } } class BangunDatar extends Object { public String toString() { return "Mempunyai berbagai bentuk"; } } 171 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Baris nomor 14 -16 adalah deklarasi metoda cetakObjek yang mempunyai satu parameter dengan tipe kelas Object. Kelas Object merupakan akar dari semua kelas di Java. Langsung maupun tidak langsung, semua kelas di Java merupakan turunan dari kelas Object. Anda dapat memanggil atau menggunakan metoda cetakObjek dengan argumen berupa obyek yang dibuat dari kelas turunan superclass Object. Ketika metoda cetakObjek dipanggil (baris nomor 8 – 11), argumen obyek akan diminta. obyek sebagai argumen metoda dapat berupa obyek yang merupakan kelas turunan dari kelas Object yaitu kelas BangunDatar, kelas PersegiPanjang maupun kelas Balok. Masing-masing kelas turunan mendeklarasikan ulang metoda toString yang mempunyai implementasi berbeda. Java Virtual Machine (JVM) akan menentukan secara dinamis implementasi metode toString yang akan digunakan saat program dijalankan. Kemampuan menentukan secara dinamis ini disebut dengan dynamic binding. Dari gambaran program di atas, apabila parameter sebuah metoda adalah tipe superclass, maka argumen metoda yang diberikan dapat berupa tipe dari subclassnya. Kemampuan seperti inilah yang dimaksud dengan polymorphism. Dari gambaran tersebut, dapat didefinisikan kembali bahwa polymorphism adalah kemampuan untuk menghasilkan sesuatu yang berbeda dengan cara yang sama. Pemberian obyek dari subclass ke obyek dari superclass dapat dilakukan tanpa perlu melakukan konversi.c. Rangkuman Polymorphism merupakan salah satu konsep penting dalam object oriented programming (OOP) khusunya di bahasa Java setelah abstraction dan inheritance. Polymorphism berarti banyak bentuk.Polymorphism sering dikaitkan dengan penggunaan lebih dari satu metoda dengan nama sama. Penggunaan metoda dengan nama sama dapat diterapkan dengan method overloading dan method overriding. Pada saat obyek yang sudah dibuat tersebut memanggil overridden method pada parent class, compiler Java akan melakukan invocation (pemanggilan) terhadap overriding method pada subclass dimana yang seharusnya dipanggil adalah overridden method. 172 | P a g ePEMROGRAMAN BERORIENTASI OBJEKd. TugasTugas 1Buatlah program untuk menampilkan beberapa jenis kendaraan (Mobil, KeretaApi, Pesawat) yang memiliki jenis bahan bakar yang berbeda pula. Gunakanprinsip polimorfisme serta tentukan super class dan sub class-nya. Mengamati Listing Program dan Output Program1. Menentukan nama Class2. Menentukan variabel yang digunakan3. Menentukan nama Method4. Gambar Class Diagram Nama Class Method : Operasi :5. Buatlah listing program6. Compile dan debug program Bandingkan dan SimpulkanBandingkan listing program dan output kelompok Anda dengan Kelompok lain.Berdasarkan hasil perbandingan tersebut hal penting apa yang harusdirumuskan secara bersama? 173 | P a g ePEMROGRAMAN BERORIENTASI OBJEKNo Output Program 1. 2. 3. 4. 5. 6. 7. 8. 9.10.e. Test Formatif Dalam test ini setiap andaharus membaca dengan cermat dan teliti setiap butir soal dibawah ini. Kemudian berdasarkan uraian materi diatas tulislah jawabannya pada lembar jawaban test formatif yang telah disediakan. 1. Apa itu polymorphisme ? 2. Jelaskan perbedaan antara overloading method dan overridding method ! 174 | P a g ePEMROGRAMAN BERORIENTASI OBJEKf. Lembar Jawaban Test Formatif (LJ) LJ- 01 :Apa itu polymorphisme: ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 02 : Apa yang dimaksud dengan polymorphic argument ? ................................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 03 : Apa yang dimaksud dengan VirtualMethodInvocation(VMI) ? b. ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 04: Jelaskan perbedaan antara overloading method dan overridding method ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... 175 | P a g ePEMROGRAMAN BERORIENTASI OBJEKg. Lembar Kerja Siswa. 176 | P a g ePEMROGRAMAN BERORIENTASI OBJEK15. Kegiatan Belajar 17 : Polimorphisme (Virtual Methode Invocation)a. Tujuan Pembelajaran Setelah mengikuti kegiatan belajar 14 siswa diharapkan dapat : 1) Memahami konsep overloading dan overriding 2) Memahami metode final 3) Menyajikan overloading dan overriding dalam classb. Uraian MateriVirtual Method Invocation (VMI) bisa terjadi jika terjadi polimorfisme danoverriding. Pada saat obyek yang sudah di buat tersebut memanggil overriddenmethod pada parent class, compiler Java akan melakukan invocation(pemanggilan) terhadap overriding method pada subclass , dimana yangseharusnya di panggil adalah overridden method. Berikut contoh terjadinyaVMI: Listing Program classParent{ intx=5; publicvoidInfo(){ System.out.println(“IniclassParent”); } } classChildextendsParent{ intx=10; publicvoidInfo(){ System.out.println(“IniclassChild”); } } publicclassTes{ publicstaticvoidmain(Stringargs[]){ Parenttes=newChild(); System.out.println(“Nilaix=“+tes.x); tes.Info(); } } 177 | P a g ePEMROGRAMAN BERORIENTASI OBJEKHasil dari running program diatas adalah sebagai berikut: Nilaix=5 IniclassChildPolymorphic arguments adalah tipe suatu parameter yang menerima suatuNilai yang bertipe subclass-nya. Berikut contoh dari polymorphics arguments: Listing Program …Class Pegawai{}Class Manajer extends Pegawai{ …}Public class Tes{Public static void Proses(Pegawaipeg){}Public static void main(Stringargs[]){Manajerman=newManajer(); Proses(man);} }Pernyataan instance of sangat berguna untuk mengetahui tipe asal darisuatu Polymorphic arguments. Untuk lebih jelasnya, misalnya dari contohprogram sebelumnya, kita sedikit membuat modifikasi pada class Tes danditambah sebuah class baru Kurir, seperti yang tampak dibawah ini: Listing ProgramClass Kurir extends Pegawai}Public classTes{publicstaticvoidProses(Pegawaipeg){if(peginstanceofManajer){…lakukantugas-tugasmanajer…}elseif(peginstanceofKurir){ 178 | P a g ePEMROGRAMAN BERORIENTASI OBJEK …lakukantugas-tugaskurir… }else{ …lakukantugas-tugaslainnya… } } publicstaticvoidmain(Stringargs[]){ Manajerman=newManajer(); Kurirkur=newKurir(); Proses(man); Proses(kur); } } Seringkali pemakaian instance of diikuti dengan casting object dari tipe parameter ke tipe asal. Misalkan saja program kita sebelumnya. Pada saat kita sudah melakukan instance of dari tipe manajer, kita dapat melakukan casting object ke tipe asalnya, yaitu manajer. Caranya adalah seperti berikut: Listing Program if(peginstanceofManajer) { Manajerman=(Manajer)peg; …lakukantugas-tugasmanajer… }c. Rangkuman Virtual Method Invocation (VMI) terjadi karena objek yang sudah di buat tersebut memanggil overriden method pada parent class dan akan melakukan panggilan pada overriding method yang seharusnya adalah overriden. Polymorphic arguments adalah tipe suatu parameter yang menerima suatu nilai yang bertipe subclass-nya. Pernyataan instance of 179 | P a g ePEMROGRAMAN BERORIENTASI OBJEK sangat berguna untuk mengetahui tipe asal dari suatu polymorphic arguments } Seringkali pemakaian instance of diikuti dengan casting object dari tipe parameter ke tipe asal.d. TugasTugas 1Buat program untuk menampilkan nilai siswa, dimana banyaknya siswa tidakditentukan, kemudian : a. Tampilkan data dari yang awal hingga akhir b. Hitung Jumlah nilai seluruh siswa c. Hitung rata-rata d. Nilai Maksimum e. Nilai Minimum Mengamati Listing Program dan Output Program1. Menentukan nama Class2. Menentukan variabel yang digunakan3. Menentukan nama Method4. Gambar Class Diagram Nama Class Method : Operasi :5. Buatlah listing program6. Compile dan debug program Bandingkan dan SimpulkanBandingkan listing program dan output kelompok Anda dengan Kelompok lain.Berdasarkan hasil perbandingan tersebut hal penting apa yang harusdirumuskan secara bersama? 180 | P a g ePEMROGRAMAN BERORIENTASI OBJEKe. Test FormatifDalam test ini setiap andaharus membaca dengan cermat dan teliti setiap butirsoal dibawah ini. Kemudian berdasarkan uraian materi diatas tulislah jawabannyapada lembar jawaban test formatif yang telah disediakan. 1. Apa yang dimaksud dengan polymorphic argument ? 2. Apa yang dimaksud dengan VirtualMethodInvocation(VMI) ?f. Lembar Jawaban Test Formatif (LJ) LJ- 01 : Apa yang dimaksud dengan polymorphic argument ? ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 02 : Apa yang dimaksud dengan VirtualMethodInvocation(VMI) ? ................................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... .................................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... 181 | P a g ePEMROGRAMAN BERORIENTASI OBJEKg. Lembar Kerja Siswa 182 | P a g ePEMROGRAMAN BERORIENTASI OBJEK16. Kegiatan Belajar 18 : Polimorphisme (Casting Objek dan InstanceOf)a. Tujuan Pembelajaran Setelah mengikuti kegiatan belajar 16 siswa diharapkan dapat : 1) Memahami konsep polimorfisme 2) Menyajikan overloading dan overriding dalam classb. Uraian Materi Anda telah menggunakan operator casting untuk mengubah variabel-variabel suatu tipe primitif menjadi tipe primitif yang lain. Casting dapat pula digunakan untuk mengubah objek dengan suatu tipe kelas menjadi objek degan tipe kelas lain, di dalam suatu hirarki pewarisan. Pada bagian sebelumnya , statemenm(new) Mahasiswa ( ) ) ; menugaskan objek new Mahasiswa() kepada suatu parameter bertipe Object. Statement tersebut ekuivalen denganobject o = new Mahasiswa(); // Casting implisitm(o); Statement Object o = new Mahasiswa(), dikenal sebagai casting implisit, merupakan hal yang sah karena suatu instans Mahasiswa secara otomatis adalah suatu instans Object. Seandainya anda ingin menugaskan referensi objek o kepada suatu variabel bertipe Mahasiswa menggunakan statemen berikut ini: Mahasiswa b = o; Pada kasus ini, error kompilasi terjadi. Mengapa statemen Object o = new Mahasiswa() dapat dilakukan sementara Mahasiswa b = o tidak bisa dilakukan ? Alasanya adalah bahwa suatu objek Mahasiswa selalu merupakan suatu instans Object, tetapi suatu instans Object belum tentu merupakan suatu instans Mahasiswa. Meskipun anda dapat melihat bahwa o adalah suatu objek Mahasiswa, kompiler tidak cukup pintar untuk mengetahuinya. Untuk 183 | P a g ePEMROGRAMAN BERORIENTASI OBJEKmemberitahu kompiler bahwa o merupakan suatu objek Mahasiswa , gunakancasting ekspilit. Sintaks yang digunakan sama seperti yang digunakan untukmeng-casting tipe primitif, tipe objek target diapit oleh sepasang kurung danditempatkan sebelum objek yang akan dicast: Mahasiswa b = (Mahasiswa) o; // Casting eksplisitAdalah hal yang selalu memungkinkan untuk melakukan casting terhadapinstans dari suatu subkelas menjadi suatu variabel superkelas (yang dikenaldengan upcasting), karena instans subkelas selalu merupakan instanssuperkelas. Ketika melakukan casting terhadap instans dari suatu superkelasmenjadi suatu variabel subkelasnya (yang dikenal dengan downcasting),casting eksplisit harus digunakan untuk mengaskan tujuan anda kepadakompiler.Agar casting berhasil dilakukan , Anda perlu memastikan bahwa objek yangakan di-cast merupakan suatu instans subkelas. Jika objek superkelas bukanmerupakan suatu instans subkelas., error ClassCastException akan terjadi.Sebagai contoh, jika suatu objek bukan instans dari Mahasiswa, maka objektersebut tidak bisa di-cast menjadi suatu variabel Mahasiswa. Hal ini bisadiselesaikan dengan penggunaan operator instance ofListing Programpublic class DemoCasting { /** Main method */ public static void main(String[] args) { // Menciptakan dan menginisialisasi dua objek Object objek1 = new Lingkaran4(1); Object objek2 = new PersegiPanjang1(1, 1); // Menampilkan lingkaran dan persegi-panjang tampilObjek(objek1); tampilObjek(objek2); } /** Metode untuk menampilkan suatu objek */ public static void tampilObjek(Object objek){ if(objek instanceof Lingkaran4) { System.out.println("Luas lingkaran adalah " +

184 | P a g e



Page 2

PEMROGRAMAN BERORIENTASI OBJEK Membuat Project dengan Jcreator Gambar 21. JCreator Setup WizardKetika pertama kali membuka JCreator maka 35ka nada tampilan seperti ini, klikFinish. Gambar 22. Main Menu JCreatorIni adalah tampilan menu utama pada JCreator Pro, klik File di bagian kiri atas,lalu new, dan kemudian klik Project. 35 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Gambar 23. Project WizardAnda akan diminta untuk memilih Object Template, Jika anda pilih Basic JavaApplication maka akan memberikan project yang instan dengan program HelloWorld, Jika anda pilih Empty Project maka project belum terisi atau kosong.Dan pada tampilan ini anda diminta untuk mengisikan sebuah nama project andapada field name, kemudian klik next. 36 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Gambar 24. Finishing ProjectTunggu proses sampai selesai kemudian klik finish. Gambar 25. JcreatorDan inilah tampilan dari Basic Java Application yang berisi program Hello Word. 37 | P a g ePEMROGRAMAN BERORIENTASI OBJEKc. RangkumanArsitektur teknologi Java dibagi menjadi tiga bagian yaitu (1) Enterprise Java(J2EE) untuk aplikasi berbasis web, aplikasi sistem tersebar dengan beranekaragam klien dengan kompleksitas yang tinggi. Merupakan superset dari StandarJava (2) Standar Java (J2SE), ini adalah yang biasa dikenal sebagai bahasaJava. (3) Micro Java (J2ME) merupakan subset dari J2SE dan salah satuaplikasinya yang banyak dipakai adalah untuk wireless device / mobile device.Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine(JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadiJava byte codes dapat dijalankan pada platform yang berbeda-beda.Langkah pertama dalam pembuatan sebuah program berbasis Java adalahmenuliskan kode program pada text editor. Contoh text editor yang dapatdigunakan antara lain : notepad, vi, emacs dan lain sebagainya. Kode programyang dibuat kemudian tersimpan dalam sebuah berkas berekstensi .java. Setelahmembuat dan menyimpan kode program,kompilasi file yang berisi kode programtersebut dengan menggunakan JavaCompiler. Hasil dari kompilasi berupa berkasbyte code dengan ekstensi .class. Berkas yang mengandung byte code tersebutkemudian akan dikonversikan oleh Java Interpreter menjadi bahasa mesin sesuaidengan jenis dan platform yang digunakan.d. Tugas Tugas 1 Buatlah alur kerja sederhana dari perangkat lunak pemrograman berorientasi obyek.  Mengamati benda dan obyek 1. Buatlah kelompok dengan anggota 3 – 4 orang 2. Amati langkah-langkah kerja untuk membuat sebuah kelas 3. Tuliskan langkah-langkah kerja sederhana perangkat berorientasi obyek 4. Deskripsikan setiap benda tersebut seperti gambar berikut Nama Benda Atribut : 38 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Operasi : 6. Buat laporan dan diskusikan dengan teman sekelompok Bandingkan dan SimpulkanBandingkan alur kerja atau langkah-langkah dari hasil kerja kelompok andadengan kelompok lain. Berdasarkan hasil perbandingan tersebut hal penting apayang harus dirumuskan secara bersamaTugas 2 Buatlah prosedur atau langkah-langkah menyajikan perangkat lunak pemrograman berorientasi obyek. Mengamati Bahasa Pemrograman1. Buatlah kelompok dengan anggota 3 – 4 orang2. Amatilah langkah-langkah menyajikan perangkat lunak pemrograman berorientasi obyek5. Buatlah tabel perbedaan dan persamaan yang anda dapatkan diskusikan dengan teman sekelompokNo. Langkah-langkah menyajikan perangkat lunak pemrograman berorientasi obyek1.2. Bandingkan dan SimpulkanBandingkan hasil tabel Langkah-langkah menyajikan perangkat lunakpemrograman berorientasi obyek dari hasil kerja kelompok anda dengan kelompoklain. Berdasarkan hasil pengamatam tersebut hal penting apa yang harusdirumuskan secara bersama ? 39 | P a g ePEMROGRAMAN BERORIENTASI OBJEKe. Test FormatifDalam test ini setiap anda harus membaca dengan cermat dan teliti setiap butirsoal dibawah ini. Kemudian berdasarkan uraian materi diatas tulislah jawabannyapada lembar jawaban test formatif yang telah disediakan. 1. Arsitektur teknologi Java terbagi menjadi tiga, yaitu Enterprise Java (J2EE), Standar Java (J2SE), dan Micro Java (J2ME). Sebutkan device yang Anda temui yang menggunakan salah satu dari ketiga teknologi Java tersebut! 2. Sebutkan langkah-langkah yang harus Anda lakukan untuk menyajikan perangkat lunak pemrograman Java! 3. Sebutkan karakteristik Java menurut SUN! f. Lembar Jawaban Test Formatif (LJ).LJ- 01 : Device yang Anda temua yang menggunakan salah satu dari ketigaarsitektur teknoloi Java a) Enterprise Java (J2EE)........................................................................................................ .................................................................................................................. ................................................................................................................... ................................................................................................................... b) Standar Java (J2SE) …................................................................................................ ................................................................................................................... ................................................................................................................... ................................................................................................................... c) Micro Java (J2ME)................................................................................................. ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 02 : Langkah-langkah yang Anda lakukan untuk menyajikan perangkat lunakpemrograman berorientasi obyek. ................................................................................................................. 40 | P a g ePEMROGRAMAN BERORIENTASI OBJEK ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... .................................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 03 : Karakteristik Java menurut SUN ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... .................................................................................................................. ................................................................................................................... ................................................................................................................... 41 | P a g ePEMROGRAMAN BERORIENTASI OBJEKg. Lembar Kerja Siswa 42 | P a g ePEMROGRAMAN BERORIENTASI OBJEK3. Kegiatan Belajar 3 : Perangkat Lunak Pemrograman Berorientasi Obyek BAB II ATURAN DAN DASAR PEMROGRAMAN BERORIENTASI OBYEKA. Deskripsi Dalam bab 2 ini akan menjelaskan dan menyajikan konsep pemrograman berorientasi obyek yang terdiri dari 4 kegiatan belajar. Kegiatan belajar 3 akan memahamkan anda tentang paradigma pemrograman berorientasi obyek dan menganalisis perbedaan pemrograman procedural dan pemrograman perorientasi obyek. Kegiatan belajar 4 meliputi penjelasan alur kerja perangkat lunak berorientasi obyek dan melakukan instalasi perangkat lunak. Setiap kegiatan belajar disertai dengan tujuan pembelajaran yang akan dicapai dalam 1 kali tatap muka, uraian materi, tes formatif untuk menguji kompetensi pengetahuan anda, dan tugas atau praktikum (individu dan kelompok) untuk menguji kompetensi keterampilan anda.B. Kegiatan Belajar1. Kegiatan Belajar 3: Dasar dan Aturan Pemrograman Berorientasi Obyek (Java Error, Keyword)a. Tujuan Pembelajaran Setelah mengikuti kegiatan belajar 3 ini siswa diharapkan dapat :1) Mengidentifikasi bagian dasar dari program Java.2) Memahami perbedaan antara syntax error dan runtime error.3) Menganalisis Java literal, keyword, tipe data dasar, dan tipe variabel. 43 | P a g ePEMROGRAMAN BERORIENTASI OBJEKb. Uraian Materi  Package1) Bagan dasar program java Perintah java yang digunakan untuk memberitahukan bahwa suatu class Package adalah anggota dari package, Import sedangkan nama Package dapat berupa susunan direktori tempat Class dimana file class disimpan atau Data nama folder. Methode Program Utama Constructor Blok Statemen Blok Kontrol Gambar 26 .Bagian –bagian pemrograman Java Import Perintah import digunakan untuk memberitahukan kepada program untuk mengacu pada class-class yang terdapat pada package tersebut dan bukan menjalankan class-class tersebut. Dalam program, dapat diimport class-class tertentu saja dan dapat pula mengimport semua class yang terdapat pada package. Class Merupakan bentuk logis yang menjadi landasan bangun seluruh bahasa pemograman berorientasi object. Class mendefinisikan bentuk dan perilaku object. Class merupakan contoh abstrak dari sebuah object yang telah terbentuk dari proses penyederhanaan. Dengan kata lain class merupakan cikal bakal dari object. Kemudian contoh nyata atau perwujudan dari sebuah object dinamakan instance. Data dan Methode Data merupakan identitas yang berupa variabel yang menjelaskan properti dari class. Metoda adalah sekumpulan instruksi untuk menjalankan data yang diberi nama dan dapat dipanggil dari manapun di dalam program dengan menuliskan nama metoda tersebut. Program utama Salah satu metoda yang paling penting di dalam bahasa Java adalah metoda 44 | P a g ePEMROGRAMAN BERORIENTASI OBJEKmain. Metoda main harus dideklarasikan sendiri oleh programmer di dalamsebuah kelas. Kelas yang mempunyai metoda main disebut dengan kelasmain (main class), akan tetapi tidak semua kelas Java harus mempunyaimetoda main. Interpreter Java akan meminta metoda main saat programaplikasi dieksekusi. Baris pertama kode: public class HelloSMK menandakan nama class yaitu Hello. Dalam Java, semua kode seharusnya ditempatkan di dalamGambar 27. Bagian–bagian deklarasi class. Kita melakukannya pemrograman Java dengan menggunakan kata kunci class.Sebagai tambahan, class menggunakan access specifier public, yangmengindikasikan bahwa class kita mempunyai akses bebas ke class yang laindari package yang lain pula (package merupakan kumpulan class-class). Barisberikutnya yaitu yang terdiri atas kurung kurawal {menandakan awal blok. Padakode ini,kita menempatkan kurung kurawal pada baris selanjutnya setelahdeklarasi class, bagaimanapun, kita dapat juga meletakkan kurung kurawal inisetelah baris pertama dari kode yang kita tulis. Jadi, kita dapat menulis kode kitasebagai berikut: public class Hello { atau public class Hello {Tiga baris selanjutnya menandakan adanya komentar Java. Komentar adalahsesuatu yang digunakan untuk mendokumentasikan setiap bagian dari kode yangditulis. Komentar bukan merupakan bagian dari program itu sendiri, tetapidigunakan untuk tujuan dokumentasi. Komentar itu sendiri dapat ditambahkanpada kode yang Anda tulis sebagai petunjuk yang dapat membantu prosespembelajaran pemrograman yang baik. /** * Program Pertama */Komentar dinyatakan dengan tanda “/*” dan “*/”. Segala sesuatu yang ada 45 | P a g ePEMROGRAMAN BERORIENTASI OBJEKdiantara tanda tersebut diabaikan oleh compiler Java, dan mereka hanyadianggap sebagai komentar. Baris selanjutnya, public static void main(String[] args) {atau dapat juga ditulis sebagai berikut, public static void main(String[] args) {Mengindikasikan nama suatu method dalam class Hello yang bertindak sebagaimethod utama. Method utama adalah titik awal dari suatu program Java. Semuaprogram kecuali applet yang ditulis dalam bahasa Java dimulai dengan methodutama. Yakinkan untuk mengikuti kaidah penulisan tanda yang benar. Barisselanjutnya juga merupakan komentar, //Menampilkan kalimat SMK Bisa!!!Sekarang kita mempelajari 2 cara untuk membuat komentar. Cara pertamaadalah dengan menempatkan komentar dalam /* dan */,dan cara yang lain adalahdengan menuliskan tanda//pada awal komentar. Baris selanjutnya, System.out.println("SMK Bisa!!!");menampilkan teks “HelloWorld!” pada layar. Perintah System.out.println(),menampilkan teks yang diapit oleh tanda doublepute (“”) pada layar. Dua baristerakhir yang terdiri atas dua kurung kurawal digunakan untuk menutup methodutama dan masing-masing class secara berurutan. 1. Program Java yang Anda buat harus selalu diakhiri dengan ekstensi file .java. 2. Nama File seharusnya sesuai/sama dengan nama class public nya. Sebagai contoh, jika nama class public Anda adalah HelloSMK, Anda harus menyimpan file tersebut dengan nama HelloSMK.java. 3. Anda harus menulis komentar sebagai penjelasan pada kode yang Anda tulis, yaitu komentar yang berisi keterangan mengenai baris perintah pada class atau apa yang dijalankan oleh method yang Anda tulis tersebut.2) Perbedaan Syntax Error dan Runtime Error Syntax Error Syntax Error biasanya terjadi karena kesalahan penulisan. Mungkin kekurangan sebuah perintah di Java atau lupa untuk menulis tanda titik koma pada akhir pernyataan. Java mencoba untuk megisolasi error tersebut dengan cara menunjukkan baris dari kode dan terlebih dahulu karakter yang salah dalam baris tersebut. Bagaimanapun juga, error belum tentu berada 46 | P a g ePEMROGRAMAN BERORIENTASI OBJEK pada titik yang ditunjuk. Kesalahan umum lainnya adalah dalam kapitalisasi, ejaan, penggunaan dari karakter khusus yang tidak benar, dan penghilangan dari pemberian tanda baca yang sebenarnya. Mari kita mengambil contoh pada program HelloSMK.java, dimana dengan sengaja kita menghilangkan titik koma pada akhir pernyataan dan juga mencoba untuk mengetikkan ejaan yang salah pada sebuah perintah. Lihatlah pesan error yang ditampilkan setelah peng-compile-an program dilanjutkan. Pesan error yang pertama memberitahu bahwa di program dijalankan. Pada error yang pertama memberitahu bahwa di program terdapat error pada baris 6. Hal itu menunjuk pada kata setelah static, dimana seharusnya dieja sebagai static. Pada error yang kedua memberitahukan bahwa pada program tersebut kehilangan titik-koma setelah pernyataan. Runtime Error Sebuah program yang berhasil dikompile belum tentu berhasil dijalankan. Inilah yang dinamakan Run time error, kesalahan ini tidak akan ditampilkan sampai kita menjalankan program tersebut. Hal ini bisa saja terjadi misalnya dikarenakan struktur yang dibuat programmer tidak jelas atau mungkin tidak logis.3) Java literal, keyword, tipe data dasar, dan tipe variabel Java Keywords Kata-kunci (keywords) dari sebuah bahasa pemrograman adalah kata-kata yang didefinisikan secara khusus yang hanya dimengerti oleh compiler bahasa pemrograman tersebut, dan tidak dapat digunakan sebagai identitas variabel. Di bawah ini ditampilkan semua kata-kunci (Java keywords ) :Tabel 1. Java KeywordsAbstract Default If private thisBoolean Do implements protected throwBreak Double import public throwsByte Else instanceof return transientCase Extends int short tryCatch Final interface static voidChar Finaly long strictfp volatile 47 | P a g ePEMROGRAMAN BERORIENTASI OBJEKClass Float native super whileConst For new switchContinue Goto package synchronized assertCatatan: true, false, dan null bukan termasuk kata kunci akan tetapimereka termasuk kata-kata khusus, jadi Anda tidak dapat menggunakanmereka sebagai nama variabel pada program Anda. Java LiteralsLiterals adalah tanda bahwa tidak terjadi perubahan atau konstan. Macam-macam literals dalam Java adalah : Integer Literals, Floating-Point Literals,Boolean Literals, Character Literals dan String Literals.1. Integer Literals Integer literals dibedakan dalam beberapa format yang berbeda: desimal (berbasis 10), heksadesimal (berbasis 16), and oktal (berbasis 8). Dalam penggunaan tipe data integer pada program, kita harus mengikuti aturan penggunaan beberapa notasi khusus.Untuk angka desimal, kita tidak memerlukan notasi khusus. Kita hanya menulis angka desimal seperti apa adanya. untuk angka heksadesimal, hal itu harus ditandai oleh “0x” atau “0X”. untuk oktal, ditandai oleh“0”. Sebagai contoh, mewakili angka 12. Penulisan dalam bentuk desimalnya adalah 12, Sementara dalam heksadesimal, menjadi 0xC, dan dalam oktal, nilai tersebut sama dengan 014. Default tipe data untuk integer literals adalah int. Int adalah signed 32-bit value. Pada kasus-kasus tertentu Anda dapat berharap untuk memaksa integer literal untuk menjadi tipe data long dengan menambahkan karakter “l” or “L”. tipe data long ditandai oleh ditampilkannya data dalam 64-bit.2. Floating-Point Literals Floating point literals mewakili bentuk desimal dengan bagian yang terpisah. Sebagai contoh adalah 3.1415. Floating point literals dapat dinyatakan dalam notasi standard atau scientific. Sebagai contoh, 583.45 dinyatakan dalam notasi standard, Sementara 5.8345e2 dinyatakan dalam notasi scientific. Default Floating point literals mempunyai tipe data double yang dinyatakan dalam 64-bit. Untuk menggunakan ketelitian yang lebih kecil (32-bit) float, hanya dengan menambahkan karakter “f” atau “F”. 48 | P a g ePEMROGRAMAN BERORIENTASI OBJEK3. Boolean Literals Boolean literals hanya memiliki dua nilai, true atau false.4. Character Literals Character Literals diwakili oleh karakter single Unicode. Karakter Unicode adalah 16-bit character set yang menggantikan 8-bit ASCII character set. Unicode memungkinkan pengunaan simbol dan karakter khusus dari bahasa lain. Untuk menggunakan character literals, karakter tersebut di dalam tanda single pute (' ') (single quote delimiters). Sebagai contoh huruf a, diwakili sebagai ‘a’. Untuk menggunakan karakter khusus seperti karakter baris baru, backslash digunakan diikuti dengan karakter kode. Sebagai contoh, ‘\n’ untuk karakter baris baru atau ganti baris, ‘\r’ untuk menyatakan nilai balik (carriage return), ‘\b’ untuk backspace.5. String Literals String literals mewakili beberapa karakter dan dinyatakan dalam tanda double pute (“ ”)( double quotes). Sebagai contoh string literal adalah, “Hello World”.E. Tipe Data PrimitifBahasa pemrograman Java mendefinisikan delapan tipe data primitif.Mereka diantaranya adalah boolean (untuk bentuk logika), char (untukbentuk tekstual), byte, short, int, long (integral), double and float (floatingpoint).1. logika - booleanTipe data boolean diwakili oleh dua pernyataan : true dan false. Sebagaicontoh adalah, boolean result = true; Contoh yang ditunjukkan diatas,mendeklarasikan variabel yang dinamai result sebagai tipe data booleandan memberinya nilai true.2. teksual – charTipe data character (char), diwakili oleh karakter single Unicode. Tipedata ini harus memiliki ciri berada dalam tanda single quotes(’ ’). Sebagaicontoh, ‘a’ //Huruf a karakter khusus seperti ' (single‘\t’ //A tab (double quotes), menggunakan karakterUntuk menampilkanquotes) atau " 49 | P a g ePEMROGRAMAN BERORIENTASI OBJEK escape \. Sebagai contoh, '\'' //untuk single quotes '\"' //untuk double quotes Meskipun String bukan merupakan tipe data primitif (namun merupakan suatu Class), kita akan memperkenalkan mengenai pada bagian ini. String mewakili tipe data yang terdiri atas beberapa karakter. Mereka tidak termasuk tipe data primitif, melainkan suatu class. Mereka memiliki literal yang terdapat diantara tanda double quotes(“”). Sebagai contoh, String message=“Hello world!”3. Integral –byte, short, int & long Tipe data integral dalam Java menggunakan tiga bentuk- yaitu desimal,oktal atau heksa desimal. Contohnya, 2 //nilai desimal 2 077 //angka 0awal mengindikasikan nilai oktal 0xBACC //karakter 0x mengindikasikan nilai heksadesimal Tipe-tipe integral memiliki default tipe data yaitu int. Anda dapat merubahnya ke bentuk long dengan menambahkan huruf l atau L4. Floating Point –float dan Double Tipe Floating point memiliki double sebagai default tipe datanya. Floating- point literal termasuk salah satunya decimal point atau salah satu dari pilihan berikut ini: E or e //(add exponential value) F or f //(float) D or d //(double) Contohnya adalah, 3.14 //nilai floating-point sederhana (a double) 6.02E23 //A nilai floating-point yang besar 2.718F //A nilai float size sederhana 123.4E+306D //A nilai double yang besar dengan nilai redundant D Pada contoh yang ditunjukkan diatas, 23 setelah E pada contoh kedua bernilai positif. Contoh tersebut sama dengan 6.02E+23. Java adalah bahasa pemrograman yang bertipe kuat. Ini maksudnya adalah setiap variabel harus memiliki sebuah tipe yang telah dideklarasikan dan bahasa tersebut memberlakukan pemerikasaan tipe yang kaku. 50 | P a g ePEMROGRAMAN BERORIENTASI OBJEKBahasa Java mempunyai delapan tipe primitif yang ditunjukkan dalam tabel dibawah ini:Tabel 2. Tipe Data Primitif Grup Type Size Min Value Max ValueIntegral Data byte 8 bits -128 128Real short 16 bits -32768 32768Karakter 32 bits -2147483648 2147483648Boolean int 64 bits -9223372036854775808 9223372036854775808 long 32 bits ± 1.40239846E-45 ±3.40282347E+8 float 64 bits ±4.94065645841246544E-324 ±1.79769313486231570E+308 double 16 bits \u0000 \uFFFF char true atau false boolean n/aG. VariabelVariabel adalah item yang digunakan data untuk menyimpan pernyataan objek.Variabel memiliki tipe data dan nama. Tipe data menandakan tipe nilai yangdapat dibentuk oleh variabel itu sendiri. Nama variabel harus mengikuti aturanuntuk identifier.a. Deklarasi dan Inisialisasi Variabel Untuk deklarasi variabel adalah sebagai berikut, <data tipe><name> [=initial value]; Catatan: Nilainya berada diantara <> adalah nilai yang disyaratkan, sementara nilai dalam tanda [] bersifat optional. Berikut ini adalah contoh program yang mendeklarasikan dan menginisialisasi beberapa variabel, Listing Program short x; int umur; float gaji; double data; Inisialisasi variabel dapat dilakukan dengan memberikan nilai pada variabel yang telah dideklarasikan, contoh : Listing Program int x=21; int y; double d = 3.5; y = (int) d; 51 | P a g ePEMROGRAMAN BERORIENTASI OBJEKb. Variabel Reference dan Variabel Primitif Sekarang kita akan membedakan dua tipe variabel yang dimiliki oleh program Java. Ada variabel reference dan variabel primitif .Variabel primitif adalah variabel dengan tipe data primitif. Mereka menyimpan data dalam lokasi memori yang sebenarnya dimana variabel tersebut berada. Variabel Reference adalah variabel yang menyimpan alamat dalam lokasi memori. Yang menunjuk ke lokasi memori dimana data sebenarnya berada. Ketika Anda mendeklarasikan variabel pada class tertentu, Anda sebenarnya mendeklarasikan reference variable dalam bentuk objek dalam classnya tersebut. Sebagai contoh, apabila kita mempunyai dua variabel dengan tipe data int dan String. Listing Program int no = 10; String nama = "SMK "; Dimisalkan ilustrasi yang ditunjukkan di bawah ini adalah memori yang ada pada komputer Anda, dimana Anda memiliki alamat dari setiap sel memorinya, nama variabel dan datanya terbentuk sebagai berikut. Gambar 28. Ilustrasi Memori pada Komputer 52 | P a g ePEMROGRAMAN BERORIENTASI OBJEKc. RangkumanPengembangan berorientasi objek merupakan cara pikir baru tentang perangkatlunak berdasarkan abstraksi yang terdapat dalam dunia nyata. Dalam kontekspengembangan menunjuk pada bagian awal dari siklus hidup pengembangansistem, yaitu survei, analisis, desain, implementasi, dan pemeliharaan sistem.Hal yang lebih penting dalam pengembangan berorientasi objek adalah konsepmengindentifikasi dan mengorganisasi domain aplikasi dibandingkan denganfokus penggunaan bahasa pemrograman, berorientasi objek atau tidak.Object adalah gabungan antara beberapa data dan fungsi yang masing-masingbekerja bersama-sama dan tidak dapat dipisahkan. Gabungan dari data danfungsi tersebut akan membentuk suatu object-object yang aktif. Dari kumpulanbeberapa object yang sama akan membentuk struktur baru yang disebut class.Pemrograman berorientasi objek (Inggris: object-oriented programming disingkatOOP) merupakan paradigma pemrograman yang berorientasikan kepada objek.Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atauobjek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objekdapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.Pemrograman terstruktur adalah suatu proses untuk mengimplementasikanurutan langkah untuk menyelesaikan suatu masalah dalam bentuk program.Selain pengertian diatas Pemrograman Terstruktur adalah suatu aktifitaspemrograman dengan memperhatikan urutan langkah-langkah perintah secarasistematis, logis, dan tersusun berdasarkan algoritma yang sederhana danmudah dipahami. Prinsip dari pemrograman terstruktur adalah Jika suatu prosestelah sampai pada suatu titik / langkah tertentu , maka proses selanjutnya tidakboleh mengeksekusi langkah sebelumnya / kembali lagi ke baris sebelumnya,kecuali pada langkah – langkah untuk proses berulang (Loop).d. Tugas Tugas 1 Buatlah listing program untuk kelas Meja dengan menampilkan karakteristik dari kelas tersebut, serta tunjukkan bagian-bagian listing programnya. 53 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Mengamati benda dan obyek1. Buatlah kelompok dengan anggota 3 – 4 orang2. Amatilah obyek di lingkungan sekitar Anda3. Sebutkan ciri-ciri atau atribut dari obyek tersebut sehingga mudah dikenali.4. Sebutkan fungsi dari obyek tersebut yang merupakan operasi relasi dari ciri- ciri yang sudah teridentifikasi5. Deskripsikan setiap benda tersebut seperti gambar berikut Nama Benda Atribut : Operasi :6. Buat laporan dan diskusikan dengan teman sekelompok Bandingkan dan SimpulkanBandingkan urutan listing program telah anda buat dengan listing programteman anda. Berdasarkan hasil perbandingan tersebut hal penting apa yangharus dirumuskan secara bersama?Tugas 2Buatlah listing program untuk kelas Siswa yang menampilkan method dari Mobiltersebut. Tunjukkan Java literal, keyword, tipe data dasar, dan tipe variabel didalamnya. Mengamati Bahasa Pemrograman1. Buatlah kelompok dengan anggota 3 – 4 orang2. Amatilah obyek (siswa) di sekitar Anda3. Sebutkan vava literal, keyword, tipe data dasar, dan tipe variabel di dalamnya dari obyek tersebut5. Buat laporan dan diskusikan dengan teman sekelompok Bandingkan dan SimpulkanBandingkan urutan listing program yang telah anda buat dengan listing program 54 | P a g ePEMROGRAMAN BERORIENTASI OBJEK teman anda. Berdasarkan hasil perbandingan tersebut, hal penting apa yang harus dirumuskan secara bersama?e. Test FormatifDalam test ini setiap anda harus membaca dengan cermat dan teliti setiap butirsoal dibawah ini. Kemudian berdasarkan uraian materi diatas tulislah jawabannyapada lembar jawaban test formatif yang telah disediakan. 1. Coba amati sebuah obyek di lingkungan sekitar Anda. Selanjutnya tentukan package, import, class, data, dan method-nya. 2. Sebutkan Java literal, keyword, tipe data dasar, dan tipe variabel dari sebuah obyek yang Anda amati.f. Lembar Jawaban Test Formatif (LJ)LJ- 01 :Ilustrasi dalam dunia nyata : a) Package................................................................................................ ................................................................................................................... ................................................................................................................... ................................................................................................................... b) Import …................................................................................................ ................................................................................................................... ................................................................................................................... ................................................................................................................... c) Methode................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... d) Kelas…….............................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... 55 | P a g ePEMROGRAMAN BERORIENTASI OBJEKLJ- 02 : Menentukan java literal, keyword, tipe data dasar, dan tipe variabel 1. jave literal............................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... 2. keyword................................................................................................ .................................................................................................................. ................................................................................................................... ................................................................................................................... 3. tipe dasar ............................................................................................. .................................................................................................................... .................................................................................................................... .................................................................................................................... 4. tipe variabel .......................................................................................... .................................................................................................................... .................................................................................................................... .................................................................................................................... g. Lembar Kerja Siswa 56 | P a g ePEMROGRAMAN BERORIENTASI OBJEK2. Kegiatan Belajar 4 :Dasar dan Aturan Pemrograman Berorientasi Obyek (Operator Logika)a. Tujuan Pembelajaran Setelah mengikuti kegiatan belajar 4 ini siswa diharapkan dapat : 1) Mengidentifikasi operator dalam program Java. 2) Menyajikan dalam perbedaan antara syntax error dan runtime error.b. Uraian Materi1) Operator Dalam Java, ada beberapa tipe operator. Ada operator aritmatika, operator relasi, operator logika, dan operator kondisi. Operator ini mengikuti bermacam-macam prioritas yang pasti sehingga compilernya akan tahu yang mana operatoruntuk dijalankan lebih dulu dalam kasus beberapa operator yang dipakai bersama-sama dalam satu pernyataan. 3. Operator Aritmatika Berikut ini adalah dasar operator aritmatik yang dapat digunakan untuk membuat suatu program Java, Tabel 3. Operator Aritmatika dan Fungsi-FungsinyaOperator Penggunaan Keterangan + * op1+ op2 Menambahkan op1 dengan op2 / op1*op2 % op1/op2 Mengalikan op1 dengan op2 op1%op2 - Membagi op1 dengan op2 op1-op2 Menghitung sisa dari pembagian op1 denganop2 Mengurangkan op2 dari op14. Operator Increment dan Decrement Dari sisi operator dasar aritmatika, Java juga terdiri atas operator unary increment (++) dan operator unary decrement (--).Operator increment dan decrement menambah dan mengurangi nilai yang tersimpan dalam bentuk variabel angka terhadap nilai 1. Sebagai contoh, pernyataan, count = count + 1 count++; 57 | P a g ePEMROGRAMAN BERORIENTASI OBJEKTabel 4. Operator Increment dan DecrementOperator Penggunaan Keterangan Menambahkan nilai 1 pada op;++ op++ mengevaluasi nilai op sebelum diincrementasi/ ditambahkan Menambahkan nilai 1 pada op;++ ++op mengevaluasi nilai op setelah diincrementasi/ ditambahkan Mengurangkan nilai 1 pada op;-- op-- mengevaluasi nilai op sebelum didecrementasi/ dikurangkan Mengurangkan nilai 1 pada op;-- --op mengevaluasi nilai op setelah didecrementasi/ dikurangkanOperator increment dan decrement dapat ditempatkan sebelum atausesudah operand. Ketika digunakan sebelum operand, akanmenyebabkan variabel diincrement atau didecrement dengan nilai1, dankemudian nilai baru digunakan dalam pernyataan dimana dia ditambahkan.Sebagai contoh, Listing Program int i =10; int j = 3; int k = 0; k = ++j + i;Ketika operator increment dan decrement ditempatkan setelah operand, nilaivariabel yang lama akan digunakan lebih dulu dioperasikan lebih duluterhadap pernyataan dimana dia ditambahkan. Sebagai contoh, Listing Program int i = 10, int j = 3; int k = 0; k = j++ + i; 58 | P a g ePEMROGRAMAN BERORIENTASI OBJEK5. Operator Relasi Operator Relasi membandingkan dua nilai dan menentukan keterhubungan diantara nilai- nilai tersebut. Hasil keluarannya berupa nilai boolean yaitu true atau false.Tabel 5. Operator RelasiOperator Penggunaan Keterangan> op1>op2 op1 lebih besar dari op2>= op1>= op2 op1 lebih besar dari atau sama dengan op2< op1<op2 op1 kurang dari op2<= op1<= op2 op1kurang dari atau sama dengan op2== op1== op2 op1 sama dengan op2!= op1!= op2 op1 tidak sama dengan op26. Operator logikaOperator logika memiliki satu atau lebih operand Boolean yang menghasilkannilai boolean. Terdapat enam operator logika yaitu : && (logika AND), & (Booleanlogika AND), || (logika OR), | (Boolean logika inclusive OR), ^ (Boolean logikaexclusive OR), dan ! (logika NOT).Pernyataan dasar untuk operasi logika adalah x1 op x2, dimana x1,x2 dapatmenjadi pernyataan boolean. Variabel atau konstanta, dan op adalah salah satudari operator &&, &, ||, | atau ^. Tabel kebenaran yang akan ditunjukkanselanjutnya, merupakan kesimpulan dari hasil dari setiap operasi untuk semuakombinasi yang mungkin dari x1 dan x2.4.1 (logika AND) dan & (Boolean logika AND)Berikut ini adalah tabel kebenaran untuk && dan &.Tabel 6. Tabel Kebenaran Logika ANDx1 x2 HasilTRUE TRUE TRUETRUE FALSE FALSEFALSE TRUE FALSEFALSE FALSE FALSE 59 | P a g ePEMROGRAMAN BERORIENTASI OBJEKPerbedaan dasar antara operator && dan & adalah bahwa && mensupportsshort-circuit evaluations (atau evaluasi perbagian), sementara operator &tidak. Apa arti dari pernyataan tersebut?Diberikan suatu pernyataan, exp1 && exp2&& akan mengevaluasi pernyataan exp1, dan segera mengembalikan nilaifalse dan menyatakan bahwa exp1 bernilai false. Jika exp1 bernilai false,operator tidak akan pernah mengevaluasi exp2 karena hasil operasi operatorakan menjadi false tanpa memperhatikan nilai dari exp2. Sebaliknya, operator& selalu mengevaluasi ke dua nilai dari exp1 dan exp2 sebelummengembalikan suatu nilai jawaban.4.2. || (logikaOR) dan|(Boolean logika inclusive OR)Berikut ini adalah tabel kebenaran untuk || dan |.Tabel 7. Tabel Kebenaran Logika ORx1 x2 HasilTRUE TRUE TRUETRUE FALSE TRUEFALSE TRUE TRUEFALSE FALSE FALSEPerbedaan dasarantara operator|| dan | adalah bahwa || mendukung short-circuit evaluations (atau proses evaluasi sebagian), sementara | tidak. Apamaksud dari pernyataan tersebut? Diberikan suatu pernyataan, exp1 || exp2|| akan mengevaluasi pernyataan exp1,dan segera mengembalikan nilaitrue dan menyatakan bahwa exp1 bernilaitrue. Jika exp1 bernilai true,operator tidak akan pernah mengevaluasi exp2 karena hasil dari operasioperatorakan bernilai true tanpa memperhatikan nilai dari exp2. Sebaliknya,operator | selalu mengevaluasi ke dua nilai dari exp1 and exp2 sebelummengembalikan suatu jawaban suatu nilai. 60 | P a g ePEMROGRAMAN BERORIENTASI OBJEK4.3. ^ (Boolean logika Exclusive OR)Berikut ini adalah tabel kebenaran untuk^.Tabel 8. Tabel Kebenaran Logika EX-ORx1 x2 HasilTRUE TRUE FALSETRUE FALSE TRUEFALSE TRUE TRUEFALSE FALSE FALSEHasil operasi operator exclusive OR adalah TRUE, jika dan hanya jika satuoperand bernilai TRUE dan yang lain bernilai False. Catatan jika keduaoperand harus selalu dievaluasi untuk menjumlahkan hasil dari suatu exclusiveOR.4.4 ! (logika NOT)Logika NOT digunakan dalam satu argumen, dimana argument tersebut dapatmenjadi suatu pernyataan, variable atau konstanta. Berikut ini adalah tabelkebenaran untuk operator not !Tabel 9. Tabel Kebenaran Logika NOTx1 HasilTRUE FALSEFALSE TRUE1. Operator Kondisi (?:)Operator kondisi ?: adalah operator ternary. Berarti bahwa operator ini membawatiga argumen yang membentuk suatu ekspresi bersyarat. Struktur pernyataanyang menggunakan operator kondisi adalah, exp1?exp2:exp3Dimana nilai exp1 adalah suatu pernyataan Boolean yang memiliki hasil yangsalah satunya harus berupa nilai true atau false.Jika exp1 bernilai true, exp2 merupakan hasil operasi. Jika bernilai false,kemudian exp3 merupakan hasil operasinya. Berikut ini adalah flowchart yangmenggambarkan bagaimana operator ?: bekerja, 61 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Start Tidak nilai = 80 cetak gagal nilai >= 60Ya cetak lulus Stop Gambar 29. Flowchart Operator Kondisi2. Operator PrecedenceOperator precedence didefinisikan sebagai perintah yang dilakukan compilerketika melakukan evaluasi terhadap operator, untuk mengajukan perintah denganhasil yang tidak ambigu/hasil yang jelas. Gambar 30. Operator PresedenceDiberikan pernyataan yang membingungkan, 6%2*5+4/2+88-10 62 | P a g ePEMROGRAMAN BERORIENTASI OBJEKKita dapat menuliskan kembali pernyataan diatas dan menambahkan beberapatanda kurung terhadap operator precedence, ((6%2)*5)+(4/2)+88-10;c. RangkumanAda operator aritmatika, operator relasi, operator logika, dan operator kondisi.Operator ini mengikuti bermacam-macam prioritas, operator aritmatikaumumnya digunakan untuk operasi matematika seperti pembagian, perkalian,dan lain-lain. Operator Increment dan Decrement berfungsi untuk menambahdan mengurangi nilai yang tersimpan, operasi relasi digunakan untukmembandingkan dua nilai untuk menentukan keterhubungan diantara nilai-nilaitersebut. Operator logika memiliki lebih dari satu operand boolean yangmenghasilkan nilai boolean true dan false. Operator kondisi bersifat ternary, jadioperator ini membawa tiga argumen yang membentuk suatu ekspresi bersyarat.Operator Precedence berfungsi sebagai alat evaluasi terhadap operator untukmengajukan perintah dengan hasil yang tidak ambigu atau hasil yang jelas.d. Tugas Tugas 1 Tulislah suatu program yang bisa menentukan nilai paling besar dari tiga bilangan integer. Ketiga integer disimpan dalam variabel angka1 , angka2 , dan angka3. Program bisa menentukan bilangan yang paling besar dari ketiga angka tersebut.  Mengamati Listing Program dan Output Program 1. Menentukan nama Class 2. Menentukan variabel yang digunakan 3. Gambar Class Diagram Nama Class Atribut : Operasi : 63 | P a g ePEMROGRAMAN BERORIENTASI OBJEK 4. Buatlah listing program 5. Compile dan debug program Bandingkan dan SimpulkanBandingkan listing program dan output kelompok Anda dengan Kelompok lain.Berdasarkan hasil perbandingan tersebut hal penting apa yang harus dirumuskansecara bersama?Tugas 2Buatlah program untuk menghitung suatu harga barang yang bernilai Rp.200.000 dengan diskon 15%.  Mengamati Listing Program dan Output Program 1. Menentukan nama Class 2. Menentukan variabel yang digunakan 3. Gambar Class Diagram Nama Class Atribut : Operasi : 4. Buatlah listing program 5. Compile dan debug program  Bandingkan dan Simpulkan Bandingkan listing program dan output kelompok Anda dengan Kelompok lain. Berdasarkan hasil perbandingan tersebut hal penting apa yang harus dirumuskan secara bersama? 64 | P a g ePEMROGRAMAN BERORIENTASI OBJEKe. Test FormatifDalam test ini setiap anda harus membaca dengan cermat dan teliti setiap butirsoal dibawah ini. Kemudian berdasarkan uraian materi diatas tulislah jawabannyapada lembar jawaban test formatif yang telah disediakan. 1. Jelaskan secara singkat apa yang disebut : a. Operasi Aritmatika b. Operator Increment dan Decrement c. Operator Relasi d. Operator Logika 2. Sebutkan minimal 5 operator pada java yang anda ketahui 3. Sebutkan enam operator logika yang kamu ketahui 4. Operator kondisi adalah ternary, apakah yang dimaksud dengan ternary dan beri contohnya.f. Lembar Jawaban Test Formatif (LJ). LJ- 01 :Jelaskan secara singkat apa yang disebut: a) Operator Aritmatika .................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... b) Operator Increment dan Decrement …................................................................................................ ................................................................................................................... ................................................................................................................... ................................................................................................................... c) Operator Logika ................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... d) Kelas …….............................................................................................. ................................................................................................................... 65 | P a g ePEMROGRAMAN BERORIENTASI OBJEKLJ- 02 : Sebutkan minimal 5 operator pada java yang anda ketahui ! ................................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... .................................................................................................................. ...................................................................................................................LJ- 03 : Sebutkan enam operator logika yang kamu ketahui ! ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 04: Operator kondisi adalah ternary, apakah yang dimaksud dengan ternarydan beri contohnya. ! ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... 66 | P a g ePEMROGRAMAN BERORIENTASI OBJEKg. Lembar Kerja Siswa 67 | P a g ePEMROGRAMAN BERORIENTASI OBJEK3. Kegiatan Belajar 5 :Dasar dan Aturan Pemrograman Berorientasi Obyek (Kondisi)a. Tujuan Pembelajaran Setelah mengikuti kegiatan belajar 5 ini siswa diharapkan dapat : 1) Memahami struktur kontrol pemilihan (if, else, switch) 2) Menggunakan struktur kontrol pemilihan (if, else, switch) yang digunakan untuk memilih blok kode yang akan dieksekusib. Uraian MateriStruktur kontrol pemilihan adalah pernyataan dari Java yang mengijinkan useruntuk memilih dan mengeksekusi blok kode spesifik dan mengabaikan blok kodeyang lain. 1) Statement if Pernyataan if akan menentukan sebuah pernyataan (atau blok kode) yang akan eksekusi jika dan hanya jika persyaratan bernilai benar (true). Bentuk dari pernyataan if, Sintaks Perintah If if(boolean_expression) statement;AtauSintaks Perintah Ifif(boolean_expression){ statement1; statement2;}dimana, boolean_expression adalah sebuah penyataan logika (true/false)atau variabel bertipe boolean. 68 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Start Tidak boolean_expr Ya perintah Stop Gambar 31. Flowchart Statement if Petunjuk Penulisan Program: 1. Boolean_expression pada pernyataan if harus merupakan nilai boolean). Hal ini berarti persyaratan harus bernilai true atau false. 2. Masukkan statement didalam blok if. Contohnya, If (boolean_expression){ //statement1; //statement2; }2) Statement if-else Pernyataan if-else digunakan apabila kita ingin mengeksekusi beberapa pernyataan dengan kondisi true dan pernyataan yang lain dengan kondisi false. Bentuk statement if-else, Sintaks Perintah If if(boolean_expression) statement; 69 | P a g ePEMROGRAMAN BERORIENTASI OBJEKBerikut ini contoh code statement if-else, Listing Program Int grade=68; if(grade>60) System.out.println("Congratulations!"); else System.out.println("Sorry you failed"); atau Listing Program intgrade=68; if(grade>60) { System.out.println(“Congratulations!”); System.out.println(“You passed!”); } else { System.out.println("Sorry you failed"); }Start Tidakboolean_exprYaperintah perintah StopGambar 32.Flowchart Statement If-Else 70 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Petunjuk Penulisan Program: Untuk menghindari kebingungan, selalu letakkan sebuah pernyataan atau beberapa pernyataan di dalam blokif – else di dalam tanda kurawal {},3. Statement if-else-if Pernyataan pada bagian kondisi else dari blok if-else dapat menjadi struktur if- else yang lain. Kondisi struktur seperti ini mengijinkan kita untuk membuat seleksi persyaratan yang lebih kompleks. Bentuk statement if-else if. Sintaks perintah If else If if(boolean_expression1) statement1; else if(boolean_expression2) statement2; else statement3;Sebagai catatan : anda dapat memiliki banyak blok else-if sesudahpernyataan if. Blok else bersifat opsional dan dapat dihilangkan. Pada contohyang ditampilkan diatas, jika boolean_expression1 bernilai true, makaprogram akan mengeksekusi statement1 dan melewati pernyataan yang lain.Jika boolean_expression2 bernilai true, maka program akan mengeksekusistatement2 dan melewati statement2.Start Tidak Tidak perintah 3boolean_expr boolean_expr Ya Yaperintah 1 perintah 2 Stop Gambar33. Flowchart Statement If-Else-If 71 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Berikut ini contoh code statement if-else-if Listing Program Int grade=68; if(grade>90) { System.out.println("Very good!"); } Else if(grade>60) { System.out.println("Very good!"); } else{} System.out.println("Sorry you failed");4. Statement switch Cara lain untuk membuat cabang adalah dengan menggunakan kata kunci switch.Switch mengkonstruksikan cabang untuk beberapa kondisi dari nilai. Bentuk statement switch adalah sebagai berikut: Sintaks Perintah Switch switch(switch_expression) { Case case_selector1: statement1; statement2; case case_selector2: statement1; statement2; break; default: } statement1; statement2; break; Switch_expression adalah ekspresi integer atau karakter dan case_selector1, case_selector2 dan seterusnya adalah konstanta unik dari nilai integer atau karakter. Ketika pernyataan switch ditemukan pada potongan kode program, java pertama kali akan memeriksa switch_expression, dan menuju ke case yang akan menyamakan nilai yang dimiliki oleh switch_expression. Selanjutnya 72 | P a g ePEMROGRAMAN BERORIENTASI OBJEK program akan mengeksekusi pernyataan pada dari kode setelah case yang ditemukan sampai menemui pernyataan break, selanjutnya akan mengabaikan pernyataan yang lainnya hingga akhir dari struktur dari pernyataan switch.Jika tidak ditemui case yang cocok, maka program akan mengeksekusi blok default. Sebagai catatan, bahwa bagian blok default adalah opsional. Sebuah pernyataan switch bias jadi tidak memiliki blok kode default.CATATAN: Tidak seperti pada pernyataan if, beberapa pernyataan pada struktur pernyataan switch akan dieksekusi tanpa memerlukan tanda kurung kurawal ({}). Ketika sebuah case pada pernyataan switch menemui ke cocokan, semua pernyataan pada case tersebut akan dieksekusi. Tidak hanya demikian, pernyataan lain yang berada pada case yang sesuai juga akan dieksekusi. Untuk menghindari program mengeksekusi pernyataan pada case berikutnya, kita menggunakan pernyataan break sebagai pernyataan akhir pada setiap blok case. Gambar 34.Flowchart Statement Switch 73 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Petunjuk Penulisan Program: 1. Menentukan penggunaan pernyataan if atau pernyataan switch adalah sebuah keputusan programmer. Programmer dapat menentukan pernyataan yang mana yang akan dipakai berdasarkan kemudahan membaca program dan faktor-faktor yang lain. 2. Pernyataan if dapat digunakan untuk membuat keputusan berdasarkan rentang nilai tertentu atau kondisi tertentu, sedangkan pernyataan switch membuat keputusan hanya berdasarkan nilai unik dari tipe integer atau karakter.c. Rangkuman Pernyataan if digunakan untuk membandingkan suatu permasalahan atau objek. If ada bermacam-macam diantaranya, statement if, statement if-else, statement if-else-if, statement switch. Statement if akan mengeksekusi pernyataan hanya jika if bernilai benar atau true. Statement if else digunakan untuk mengeksekusi dua kondisi benar atau salah, true atau false, statement if- else-if bisa digunakan untuk mengeksekusi sebuah kondisi yang lebih dari dua kondisi, dalam statement ini cara penulisan harus berhati-hati. Statement switch hampir sama dengan if-else-if hanya saja swicth mengkonstruksikan cabang untuk beberapa kondisi nilai. Untuk menghentikan program switch menggunakan perintah break pada case yang sesuai juga akan dieksekusi.d. Tugas Tugas 1 Buatlah suatu program yang berfungsi mengecek suatu nilai. Jika nilai lebih dari 75 cetak “Lulus”, jika nilai kurang dari 75 cetak “Gagal”. Mengamati Listing Program dan Output Program1. Menentukan nama Class2. Menentukan variabel yang digunakan3. Menentukan nama Method4. Gambar Class Diagram Nama Class Method : Operasi : 74 | P a g ePEMROGRAMAN BERORIENTASI OBJEK 5. Buatlah listing program 6. Compile dan debug program Bandingkan dan SimpulkanBandingkan hasil program untuk mengecek nilai yang Anda buat dengan hasilprogram temanmu. Sebutkan kesimpulan yang ada peroleh!Tugas 2Buatlah program pendaftaran siswa baru di sekolah yang memilih jurusan disekolah tersebut. Terdapat 5 jurusan RPL, Animasi, TKJ, Multimedia, Otomotif.Jika pendaftar memilih salah satu jurusan, cetak nama jurusan yang dipilih. Mengamati Listing Program dan Output Program1. Menentukan nama Class2. Menentukan variabel yang digunakan3. Menentukan nama Method4. Gambar Class Diagram Nama Class Method : Operasi :5. Buatlah listing program6. Compile dan debug program 75 | P a g ePEMROGRAMAN BERORIENTASI OBJEKNo Output Program1.2.3.4.5.6.7.8.9.10. Bandingkan dan SimpulkanBandingkan hasil program untuk menampilkan nama jurusan yang dipilih yangAnda buat dengan hasil program temanmu. Sebutkan kesimpulan Anda! 76 | P a g ePEMROGRAMAN BERORIENTASI OBJEKe. Test FormatifDalam test ini setiap anda harus membaca dengan cermat dan teliti setiap butirsoal dibawah ini. Kemudian berdasarkan uraian materi diatas tulislah jawabannyapada lembar jawaban test formatif yang telah disediakan. 1. Apa yang dimaksud dengan : a. Statement if b. Statement if-else c. Statement if-else-if d. Statement switch 2. Apakah perbedaan menggunakan statement if dan statement switch dalam penulisan program yang sama, dan apakah hasilnya berbeda ? 3. Apakah kelebihan menggunakan statement switch dibandingkan dengan menggunakan statementf if ? 4. Amati program berikut, dan tulislah apa outputnya ! Listing Program public class coba{ public static void main (String [] args){ int a=3; switch (a) { case 1: System.out.println("Nilai a=1"); break; case 2: System.out.println("Nilai a=2"); break; case 3: System.out.println("Nilai a=3");break; default: System.out.println("Nilai a=4"); break } } } 77 | P a g ePEMROGRAMAN BERORIENTASI OBJEKf. Lembar Jawaban Test Formatif (LJ)LJ- 01 :Apa yang dimaksud dengan : a) Statement if ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... b) Statement if-else …............................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... c) Statement if-else-if ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... d) Statement switch ……........................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 02 : Apakah perbedaan menggunakan statement if dan statement switchdalam penulisan program yang sama, dan apakah hasilnya berbeda ? ................................................................................................................. ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... .................................................................................................................. ................................................................................................................... ................................................................................................................... 78 | P a g ePEMROGRAMAN BERORIENTASI OBJEKLJ- 03 : Apakah kelebihan menggunakan statement swicth debandingkandengan menggunakan statementf if ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ...................................................................................................................LJ- 04: Ouput program : ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... ................................................................................................................... 79 | P a g ePEMROGRAMAN BERORIENTASI OBJEKg. Lembar Kerja Siswa. 80 | P a g ePEMROGRAMAN BERORIENTASI OBJEK4. Kegiatan Belajar 6 :Dasar dan Aturan Pemrograman Berorientasi Obyek (Perulangan)a. Tujuan Pembelajaran Setelah mengikuti kegiatan belajar 6 ini siswa diharapkan dapat : 1) Memahami struktur kontrol pengulangan (while, do-while, for) 2) Menggunakan struktur kontrol pengulangan (while, do-while, for) untuk menjalankan blok tertentu pada program beberapa kalib. Uraian MateriStruktur kontrol pengulangan adalah berupa pernyataan dari Java yang mengijinkankita untuk mengeksekusi blok code berulang-ulang sesuai dengan jumlah tertentuyang diinginkan. Ada tiga macam jenis dari struktur kontrol pengulangan yaituwhile, do- while, dan for-loops.1. whileloopPernyataan whileloop adalah pernyataan atau blok pernyataan yang diulang-ulangsampai mencapai kondisi yang cocok. Bentuk pernyataan while,while(boolean_expression){ statement1; statement2;}Pernyataan di dalam whileloop akan di eksekusi berulang-ulang selama kondisiboolean_expression bernilai benar (true).Contoh pada kode dibawah ini. Listing Program Int i=4; while(i>0) { System.out.print(i); i--; }Contoh di atas akan mencetak angka 4321 pada layar. Perlu dicatat jikabagian i--; dihilangkan, akan menghasilkan pengulangan yang terus menerus(infiniteloop). Sehingga, ketika menggunakan whileloop atau bentukpengulangan yang lain, pastikan Anda memberikan pernyataan yang membuatpengulangan berhenti pada suatu kondisi.Berikut ini adalah beberapa contoh whileloop, 81 | P a g ePEMROGRAMAN BERORIENTASI OBJEK Listing Program intx=0; while(x<10) { System.out.println(x); x++; } Listing Program //infiniteloop while(true) System.out.println(“hello”); Listing Program //noloops //statementisnotevenexecuted while(false) System.out.println(“hello”);2. do-whileloopDo-while loop mirip dengan while-loop. Pernyataan di dalam do-whileloop akandieksekusi beberapa kali selama kondisi bernilai benar (true). Perbedaanantara while dan do-whileloop adalah dimana pernyataan di dalam do-whileloop akan dieksekusi sedikitnya satu kali. Sintaks do-while loop do{ statement1; statement2; ... }while(boolean_expression); Pernyataan di dalam do-while loop akan dieksekusi pertama kali, dan akan dievaluasi kondisi dari boolean_expression. Jika nilai pada boolean_expression tersebut bernilai true, pernyataan di dalam do-whileloop akan dieksekusi lagi. 82 | P a g ePEMROGRAMAN BERORIENTASI OBJEKBerikut ini beberapa contoh do-while loop: Listing Program intx=0; do { System.out.println(x); x++; }while(x<10);Contoh ini akan memberikan output 0123456789 pada layar. Listing Program //infiniteloop do{ System.out.println(“hello”); } while(true);Contoh di atas akan melakukan pengulangan terus menerus yang menuliskata “hello” pada layar. Listing Program //oneloop //statementisexecutedonce do System.out.println(“hello”); while(false);Contoh di atas akan memberikan output hello pada layar.Panduan pemrograman:1. Kesalahan pemrograman yang biasa terjadi ketika menggunakan do-while loop adalah lupa untuk menulis titik koma(;) setelah ekspresi while. do{...}while(boolean_expression) // salah > tidak ada titik koma (;) 2. Seperti pada while loop, pastikan do-while loop anda berhenti pada suatu kondisi. 83 | P a g ePEMROGRAMAN BERORIENTASI OBJEK3. forloopPernyataan forloop memiliki kondisi hampir mirip seperti struktur pengulangansebelumnya yaitu melakukan pengulangan untuk mengeksekusi kode yang samasebanyak jumlah yang telah ditentukan.Bentuk dari forloop, Sintaks for loop for(InitializationExpression;..LoopCondition;StepExpressio n) { statement1; statement2; ... } Dimana Initialization Expression–inisialisasi dari variable loop. LoopCondition membandingkan variable loop pada nilai batas tertentu. Step Expression- melakukan update pada variable loop. Berikut ini adalah contoh dari forloop, Listing Program inti; for(i=0;i<10;i++) { System.out.print(i); } Pada contoh ini, pernyataan i = 0 merupakan inisialisasi dari variabel. Selanjutnya, kondisi < 10 diperiksa. Jika kondisi bernilai true, pernyataan didalam forloop dieksekusi. Kemudian, ekspresii ++ dieksekusi, lalu akan kembali pada bagian pemeriksaan terhadap kondisii < 10 lagi. Kondisi ini akan dilakukan berulang-ulang sampai mencapai nilai yang salah (false). Contoh tadi, adalah contoh yang sama dari while loop, Listing Program inti=0; while(i<10) { System.out.print(i); i++; }

84 | P a g e