OOP Praktis – Constructor (Java)
- OOP Praktis – Class dan Object (Java)
- OOP Praktis – Constructor (Java)
- OOP Praktis – Instance Method (Java)
- OOP Praktis – Encapsulation (Java)
- OOP Praktis – Inheritance (Java)
Setelah membuat class sederhana dalam bahasa pemrograman Java, pembahasan selanjutnya adalah melengkapi class dengan constructor.
Constructor, adalah mekanisme yang disediakan pada class untuk membuat object baru dari class tersebut. Dengan menyediakan constructor kita dapat memberikan syarat untuk pembuatan class yang nantinya dapat digunakan untuk melakukan inisialisasi nilai tertentu pada fields kelas bersangkutan. Proses ini sejatinya mirip dengan memberikan argumen pada sebuah method.
Perhatikan contoh berikut ini, dimana class Buku dari contoh sebelumnya dilengkapi dengan sebuah constructor.
Sebelum penambahan constructor
public class Buku { String judul; int tahunTerbit; String pengarang; }
Setelah penambahan constructor
public class Buku { String judul; int tahunTerbit; String pengarang; public Buku(String judul, int tahunTerbit, String pengarang) { this.judul = judul; this.tahunTerbit = tahunTerbit; this.pengarang = pengarang; } }
Tambahan constructor ada pada baris 6 s.d 10.
Perhatikan baris ke-6. Constructor sebuah class dibuat menggunakan nama class bersangkutan (pada contoh di atas Buku), kemudian parameter yang dibutuhkan oleh constructor tersebut (pada contoh: judul, tahunTerbit, pengarang). Perhatikan bahwa cara ini serupa dengan saat kita mendeklarasikan parameter pada sebuah method.
Selanjutnya perhatikan baris 7 s.d 9. Masing-masing baris ini berisi pemberian nilai (assignment) pada setiap field milik object yang dibuat dari class bersangkutan.
Ambil contoh baris 8 this.tahunTerbit = tahunTerbit
. Ekspresi this merujuk pada instance (object dari class bersangkutan), sehingga this.tahunTerbit pada sebelum tanda “=” merujuk pada field tahunTerbit pada baris ke-3, sedangkan tahunTerbit setelah tanda “=” merujuk pada nilai argumen yang dikirim ke constructor.
Membuat object menggunakan constructor
Agar menjadi lebih jelas, perhatikan perbedaan kode pada method main sebelum dan setelah penambahan constructor pada class Buku.
Sebelum penambahan constructor
public static void main(String[] args) { Buku lp = new Buku(); lp.judul = "Laskar Pelangi"; lp.pengarang = "Andrea Hirata"; lp.tahunTerbit = 2005; System.out.println(lp.judul +" ditulis oleh "+lp.pengarang +" pada tahun "+ lp.tahunTerbit); }
Setelah penambahan constructor
public static void main(String[] args) { Buku lp = new Buku("Laskar Pelangi",2005,"Andrea Hirata"); System.out.println(lp.judul +" ditulis oleh "+lp.pengarang +" pada tahun "+ lp.tahunTerbit); }
Perhatikan bahwa baris 3,4, dan 5 pada kode sebelum penambahan constructor sudah tidak diperlukan lagi, karena nilai-nilai untuk fields buku bersangkutan sudah dikirim melalui parameter pada constructor. Dari contoh ini terlihat bahwa dengan adanya constructor instansiasi object dan pemberian nilai pada fields yang dimiliki object tersebut menjadi lebih sederhana.