Pernahkah Anda memperhatikan bagaimana sebuah game bermain peran atau yang biasa disebut RPG dirancang? Ketika Anda bermain game seperti Genshin Impact atau Mobile Legends, setiap karakter yang Anda gerakkan pasti memiliki karakteristik dasar yang serupa. Mereka semua bisa berjalan, berlari, memiliki nama, dan memiliki indikator darah atau HP.
Bayangkan jika seorang programmer harus menulis ulang baris kode untuk fungsi berjalan dan indikator darah tersebut pada ratusan karakter secara satu per satu. Proses tersebut tentu akan membuang banyak waktu dan membuat ukuran kode menjadi sangat membengkak. Di sinilah konsep Inheritance atau pewarisan dalam pemrograman berorientasi objek hadir sebagai solusi yang sangat cerdas.
Secara sederhana, Inheritance merupakan sebuah mekanisme yang memungkinkan suatu kelas baru mengadopsi semua sifat, atribut, dan perilaku dari kelas yang sudah ada. Dalam dunia pemrograman, kelas yang menjadi sumber warisan disebut sebagai kelas induk (superclass), sedangkan kelas yang menerima warisan dinamakan kelas anak (subclass). Hubungan ini mirip sekali dengan anak di dunia nyata yang mewarisi ciri fisik dari orang tuanya tanpa harus membuat ciri fisik tersebut dari nol.
Jika kita terapkan pada logika game RPG, kita hanya perlu membuat satu kelas induk umum bernama KarakterGame. Di dalam kelas induk ini, kita masukkan variabel dasar seperti nama dan jumlah darah. Setelah kelas induk selesai dibuat, kita bisa menciptakan kelas anak yang lebih spesifik seperti Penyihir.
Hebatnya, kelas Penyihir ini secara otomatis langsung memiliki atribut nama dan darah berkat kata kunci extends dalam bahasa Java. Selain mewarisi sifat dasar, kelas anak juga bisa memiliki kemampuan uniknya sendiri yang tidak dimiliki oleh kelas lain, misalnya kemampuan untuk merapalkan mantra sihir. Pendekatan ini membuat struktur kode program menjadi jauh lebih rapi, efisien, dan sangat mudah untuk dikembangkan di kemudian hari.
Untuk melihat bagaimana konsep ini bekerja di dunia nyata, Anda bisa langsung menyalin dan menguji kode program Java di bawah ini menggunakan NetBeans. Pastikan Anda membuat nama file yang sama persis dengan nama kelas utamanya agar program bisa berjalan dengan lancar.
class KarakterGame {protected String nama;protected int darah;public KarakterGame(String nama, int darah) {this.nama = nama;this.darah = darah;}public void infoKarakter() {System.out.println("Karakter: " + nama + " | HP: " + darah);}}class Penyihir extends KarakterGame {private int mana;public Penyihir(String nama, int darah, int mana) {super(nama, darah);this.mana = mana;}public void keluarkanMantra() {System.out.println(nama + " mengeluarkan sihir api! "+ "(Mana berkurang, sisa: " + (mana - 10) + ")");}}public class MainGame {public static void main(String[] args) {Penyihir wizardSaya = new Penyihir("Gandalph", 100, 50);wizardSaya.infoKarakter();wizardSaya.keluarkanMantra();}}
Kesimpulannya, konsep pewarisan ini bukan sekadar teori membosankan yang ada di buku kuliah. Ini adalah fondasi penting yang membantu para pengembang aplikasi untuk menulis kode secara efisien tanpa perlu melakukan pengulangan yang tidak perlu. Dengan memahami logika dasar ini, Anda sudah selangkah lebih dekat untuk menguasai arsitektur pemrograman yang lebih kompleks.


