Last Updated on February 17, 2024 by APPKEY-YOGI
Java merupakan salah satu bahasa pemrograman yang populer di kalangan developer. Dalam tutorial Java kali ini, kita akan membahas tentang salah satu fitur penting dalam Java, yaitu super keyword. Super keyword memiliki peran yang sangat penting dalam konsep pewarisan dalam pemrograman berorientasi objek (OOP). Mari kita pelajari lebih lanjut tentang super keyword dan bagaimana contoh penggunaannya.
Table of Contents
Apa Itu Super Keyword?
Super keyword dalam Java digunakan untuk merujuk langsung ke konstruktor, metode atau variabel dari kelas induk. Super keyword ini sering digunakan dalam konsep pewarisan untuk mengatasi masalah nama yang sama antara anggota kelas induk dan kelas anak. Dengan menggunakan super keyword, kita dapat dengan jelas membedakan antara anggota kelas induk dan kelas anak yang memiliki nama yang sama.
Fungsi Super Keyword dalam Java
Super keyword dalam Java memiliki beberapa fungsi utama yang sangat berguna dalam pemrograman berorientasi objek (OOP), terutama dalam konsep pewarisan. Berikut dijelaskan lebih lengkap mengenai fungsinya.
Memanggil Konstruktor Kelas Induk
Super keyword dapat digunakan untuk memanggil konstruktor dari kelas induk. Ini sangat berguna ketika kita ingin menginisialisasi objek kelas anak dengan memanfaatkan konstruktor yang sudah ada di kelas induk. Dengan menggunakan super keyword, kita dapat memanggil konstruktor kelas induk baik yang tanpa parameter maupun yang dengan parameter.
Contoh:
class Induk { Induk() { System.out.println("Konstruktor kelas Induk dipanggil"); } } class Anak extends Induk { Anak() { super(); // Memanggil konstruktor kelas Induk System.out.println("Konstruktor kelas Anak dipanggil"); } } public class Main { public static void main(String[] args) { Anak obj = new Anak(); } }
Mengakses Metode Kelas Induk
Super keyword digunakan untuk mengakses metode dari kelas induk yang telah di-override oleh kelas anak. Ini memungkinkan kita untuk memanggil implementasi asli dari metode yang telah di-override di kelas anak. Hal ini sering dilakukan ketika kita ingin menambahkan beberapa fungsionalitas tambahan pada metode yang di-override tanpa menghilangkan fungsionalitas asli dari metode tersebut.
Contoh:
class Induk { void tampilkan() { System.out.println("Metode tampilkan() di kelas Induk"); } } class Anak extends Induk { void tampilkan() { super.tampilkan(); // Memanggil metode tampilkan() dari kelas Induk System.out.println("Metode tampilkan() di kelas Anak"); } } public class Main { public static void main(String[] args) { Anak obj = new Anak(); obj.tampilkan(); } }
Mengakses Variabel Kelas Induk
Super keyword juga dapat digunakan untuk mengakses variabel dari kelas induk. Ini berguna ketika kita memiliki variabel dengan nama yang sama di kelas anak dan kelas induk, dan kita ingin membedakan antara keduanya. Dengan menggunakan super keyword, kita dapat secara eksplisit merujuk ke variabel kelas induk.
Contoh:
class Induk { String nama = "Induk"; } class Anak extends Induk { String nama = "Anak"; void tampilkanNama() { System.out.println("Nama di kelas Anak: " + nama); System.out.println("Nama di kelas Induk: " + super.nama); } } public class Main { public static void main(String[] args) { Anak obj = new Anak(); obj.tampilkanNama(); } }
Dalam contoh di atas, kita menggunakan super keyword untuk merujuk ke variabel nama dari kelas induk untuk membedakannya dari variabel nama di kelas anak.
Contoh Penggunaan dari Super Keyword dalam Java
Berikut adalah contohnya:
class Kendaraan { int kecepatan; Kendaraan(int kecepatan) { this.kecepatan = kecepatan; } void tampilkanKecepatan() { System.out.println("Kecepatan Kendaraan: " + kecepatan + " km/jam"); } } class Mobil extends Kendaraan { String merk; Mobil(int kecepatan, String merk) { super(kecepatan); // Memanggil konstruktor kelas induk (Kendaraan) this.merk = merk; } void tampilkanMerk() { System.out.println("Merk Mobil: " + merk); } void tampilkanKecepatan() { super.tampilkanKecepatan(); // Memanggil metode tampilkanKecepatan() dari kelas induk (Kendaraan) System.out.println("Kecepatan Mobil: " + kecepatan + " km/jam"); } } public class Main { public static void main(String[] args) { Mobil mobilku = new Mobil(150, "Toyota"); mobilku.tampilkanMerk(); mobilku.tampilkanKecepatan(); } }
Dalam contoh di atas, kelas Kendaraan adalah kelas induk yang memiliki variabel kecepatan dan metode tampilkanKecepatan(). Kelas Mobil adalah kelas anak yang mewarisi kelas Kendaraan dan menambahkan variabel merk serta metode tampilkanMerk().
Kita menggunakan super keyword untuk memanggil konstruktor kelas induk Kendaraan dari konstruktor kelas anak Mobil. Selain itu, kita juga menggunakan super keyword untuk memanggil metode tampilkanKecepatan() dari kelas induk dalam implementasi metode yang sama di kelas anak. Ini memungkinkan kita untuk menampilkan kecepatan kendaraan baik dari perspektif kelas induk maupun kelas anak.
Contoh Lain:
class Orang { String nama; int umur; Orang(String nama, int umur) { this.nama = nama; this.umur = umur; } void tampilkanInfo() { System.out.println("Nama: " + nama); System.out.println("Umur: " + umur); } } class Pelajar extends Orang { String sekolah; Pelajar(String nama, int umur, String sekolah) { super(nama, umur); // Memanggil konstruktor kelas induk (Orang) this.sekolah = sekolah; } void tampilkanInfo() { super.tampilkanInfo(); // Memanggil metode tampilkanInfo() dari kelas induk (Orang) System.out.println("Sekolah: " + sekolah); } } public class Main { public static void main(String[] args) { Pelajar pelajar = new Pelajar("Rina", 16, "SMA Negeri 1"); pelajar.tampilkanInfo(); } }
Dalam contoh di atas, kelas Orang adalah kelas induk yang memiliki variabel nama dan umur, serta metode tampilkanInfo() untuk menampilkan informasi tersebut. Kelas Pelajar adalah kelas anak yang mewarisi kelas Orang dan menambahkan variabel sekolah serta menimpa (override) metode tampilkanInfo() untuk menambahkan informasi tentang sekolah.
Kita menggunakan super keyword untuk memanggil konstruktor kelas induk Orang dari konstruktor kelas anak Pelajar. Selain itu, kita juga menggunakan super keyword untuk memanggil metode tampilkanInfo() dari kelas induk dalam implementasi metode yang sama di kelas anak. Ini memungkinkan kita untuk menampilkan informasi orang dan menambahkan informasi tentang sekolah pelajar tersebut.
Kapan Kita Menggunakan Super Keyword Pada Java?
Kita menggunakan super keyword pada Java dalam beberapa situasi berikut:
Memanggil Konstruktor Kelas Induk
Ketika kita ingin memanggil konstruktor dari kelas induk dalam konstruktor kelas anak. Ini biasanya dilakukan untuk menginisialisasi variabel yang diwarisi dari kelas induk.
class Induk { Induk() { System.out.println("Konstruktor kelas Induk"); } } class Anak extends Induk { Anak() { super(); // Memanggil konstruktor kelas Induk System.out.println("Konstruktor kelas Anak"); } }
Mengakses Metode Kelas Induk yang Di-Override
Ketika kita ingin memanggil implementasi asli dari metode kelas induk yang telah di-override oleh kelas anak. Hal ini sering dilakukan ketika kita ingin menambahkan fungsionalitas tambahan pada metode yang di-override.
class Induk { void tampilkan() { System.out.println("Metode tampilkan di kelas Induk"); } } class Anak extends Induk { void tampilkan() { super.tampilkan(); // Memanggil metode tampilkan dari kelas Induk System.out.println("Metode tampilkan di kelas Anak"); } }
Mengakses Variabel Kelas Induk yang Tersamarkan
Ketika kita ingin mengakses variabel dari kelas induk yang memiliki nama yang sama dengan variabel di kelas anak. Dengan menggunakan super keyword, kita dapat membedakan antara variabel kelas induk dan kelas anak.
class Induk { String nama = "Induk"; } class Anak extends Induk { String nama = "Anak"; void tampilkanNama() { System.out.println("Nama di kelas Anak: " + nama); System.out.println("Nama di kelas Induk: " + super.nama); } }
Secara umum, super keyword digunakan untuk mengakses anggota (variabel, metode atau konstruktor) dari kelas induk dalam konteks kelas anak, terutama ketika ada nama yang sama atau ketika kita ingin memanfaatkan fungsionalitas yang sudah ada di kelas induk.
Kesimpulan
Super keyword dalam Java merupakan fitur penting dalam konsep pewarisan pada pemrograman berorientasi objek (OOP). Fungsi utamanya adalah untuk merujuk langsung ke konstruktor, metode, atau variabel dari kelas induk yang sangat berguna untuk mengatasi masalah nama yang sama antara anggota kelas induk dan kelas anak.
Penggunaan super keyword memungkinkan kita untuk memanggil konstruktor kelas induk, mengakses metode yang telah di-override oleh kelas anak, dan mengakses variabel kelas induk yang memiliki nama yang sama dengan variabel di kelas anak. Dengan memahami dan menggunakan super keyword secara efektif, kita dapat memanfaatkan fitur pewarisan untuk membuat kode yang lebih terstruktur, modular dan mudah dipelihara.
Temukan lebih banyak artikel seri belajar Java maupun bahasa pemrograman lainnya hanya di CODEKEY. Klik https://codekey.id/ sekarang juga untuk langsung belajar gratis. Sampai bertemu lagi! Dan tetaplah semangat mengkoding!
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.