Java Programming Part II (Inheritance)

Halo Mas Bro dan Mba Sist yang senantiasa mengikuti atau sekedar mampir untuk lihat-lihat tulisan saya. Melanjutkan tutorial sebelumnya mengenai Java Programming, kali ini saya bakal ngebahas tentang pewarisan atau istilah kerennya inheritance

Salah satu konsep dasar dari pemrograman berbasis objek pada java adalah Inheritance, berikut ini sedikit gambaran tentang inheritance. Pada dasarnya, kita melakukan inheritance(pewarisan) untuk membuat suatu class baru(class turunan/subclass) yang masih memiliki sifat atau spesifikasi dari superclass.
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 parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.

Contoh implementasi inheritance :
     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).


Beberapa aturan tentang pewarisan(inheritance) yang perlu diperhatikan :

  1. Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sub class mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati dengan mudah.
  2. Subclass juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass ini. Misal : class B merupakan subclass dari class A, kita dapat membuat class baru yang diturunkan dari class B sehingga class baru tersebut akan memiliki apa yang dimiliki class A dan class B. 
  3. 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 (kontrol pengaksesan).
  4. Kata kunci super dipakai untuk merujuk pada member dari parent class, sebagaimana kata kunci this yang dipakai untuk merujuk pada member dari class itu sendiri. Adapun format penulisannya adalah sebagai berikut :
super.data_member -> merujuk pada data member pada parent class super.function_member() -> merujuk pada function member pada parent class
super() -> merujuk pada konstruktor pada parent class

Percobaan 1 : Menggunakan kata kunci super
Berikut ini listing penggunaan kata kunci super.

    class Parent {
    public int x = 5;
  }

    class Child extends Parent {
    public int x = 10;
    public void Info(int x) {
    System.out.println("Nilai x sebagai parameter = " + x);
    System.out.println("Data member x di class Child = " + this.x);
    System.out.println("Data member x di class Parent = " +
    super.x);
  }

 }
    public class NilaiX {
    public static void main(String args[]) {
    Child tes = new Child();
    tes.Info(20);
  }
 

}

Ketika program tersebut dijalankan, akan tampak hasil seperti dibawah ini :
Nilai x sebagai parameter = 20
Data member x di class Child = 10
Data member x di class Parent = 5

Percobaan 2 : Kontrol pengaksesan
Buatlah class Pegawai seperti dibawah ini :

    public class Pegawai {
    private String nama;
    public double gaji;
 }
 

Kemudian buatlah class Manajer seperti ini dibawah ini :  
   
   public class Manajer extends Pegawai {
   public String departemen;
   public void IsiData(String n, String d) {
   nama=n;
   departemen=d;
  }
 

}

Sekarang cobalah untuk mengkompilasi class Manajer diatas. Apa yang terjadi?.
Pesan kesalahan akan muncul seperti ini :

    Manajer.java:5: nama has private access in Pegawai
    nama=n;

Ini membuktikan bahwa class Manajer tidak mewarisi data member nama dari parent class-nya (Pegawai).

Sampai jumpa untuk tutorial berikutnya, semoga dapat bermanfaat dan selamat mencoba..



Java Programming Part I

Dikesempatan kali ini saya ingin berbagi sedikit pengetahuan tentang Tutorial Java Pemrograman. Artikel yang saya tulis ini merupakan tugas mata kuliah yang diberikan dosen dimana yang dijelaskan hanya sebatas teori dan sedikit pemahaman, dikarenakan saya masa proses pembelajaran java programming. Jika ada kesempatan dilain waktu dan saya sudah terbiasa dengan java, akan saya tulisakan kembali lanjutan dari Artikel ini.
Oke Langsung saja Java adalah sebuah bahasa pemrograman komputer kompilasi bytecode yang tidak bergantung pada sistem operasi dan termasuk berbasis pada object oriented programming.

Sejarah Singkat Java
  • Java diciptakan setelah C++ oleh Sun Microsystem.
  • Proyek Java dimulai tahun 1991 oleh sejumlah insiyur pada perusahaan Sun Microsystem Inc, dengan ide menggunakan bahasa komputer yang tidak mengacu pada sebuah arsitektur. Proyek ini diberi kode sandi Green.
  • Tahun 1992, proyek Green meluncurkan produk pertama ' *7 '.
  • Tahun 1993 dan separuh th 1994, berganti nama First Person, tetapi bubar.
  • Tahun 1995, dibuatlah browser yang mampu menerjemahkan kodebyte tingkat menengah, dan bahasa Java mulai digunakan secara luas.
Beberapa sifat-sifat / Karakteristik bahasa Java antara lain : 
  • Platform Independence. Dapat dipindah-pindahkan di antara bermacam-macam platform dan SO. Begitu pula sourcecode-nya.
  • Program yang dihasilkan dalam bahasa Java dapat berupa applet (aplikasi kecil yang jalan di atas web browser).
  • Berupa aplikasi mandiri yang dijalankan dengan program Java Interpreter.
  • Setiap program yang ditulis dalam bahasa Java, hasil kompilasinya berupa bytecode, yaitu sekumpulan instruksi yang terlihat seperti kode mesin, tetapi tidak spesifik untuk satu jenis prosessor tertentu.
  • Berbasis Object Oriented Programming.
Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya :
  • java.lang : Peruntukan kelas elemen-elemen dasar.
  • java.io : Peruntukan kelas input dan output, termasuk penggunaan berkas.
  • java.util : Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas penanggalan.
  • java.net : Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP.
  • java.awt : Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)
  • java.applet : Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.
Java dengan bahasa yang lain :
  • Java tidak sama dengan Javascript, salah satu contoh perbedaannya adalah javascript hanya terbatas pada fungsi browser, sedang Java mirip syntax dengan C++. Tetapi syntax Java tidak memerlukan header file, pointer arithmatic, struktur, union, operator overlading, class virtual dan lain-lain. Perancang tidak memperbaiki beberapa kelemahan pada C++, seperti switch statemen. Jika kita mengenal C++ dengan baik, akan lebih memudahkan berpindah ke syntax Java.
  • Jika kita menguasai Visual Basic, kita tidak berpendapat bahwa Java sederhana. Akan ada banyak syntax asing. Yang menarik di Visual Basic adalah lingkungan perancangan visual yang harus diprogram secara manual di Java.
Kelebihan Java :
  • Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebanya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut.
  • OOP (Object Oriented Programming - Pemrogram Berorientasi Objek) yang artinya semua aspek yang terdapat di Java adalah Objek. Java merupakan salah satu bahasa pemrograman berbasis oebjek secara murni. Semua tipe data diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa pemograman termudah, bahkan untuk fungsi fungsi yang advance seperti komunikasi antara komputer sekalipun.
  • Bergaya C++, memiliki sintaks seperti bahasa pemrograman [C++] sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java.
  • Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas).
Kekurangan Java :
  • Masih ada beberapa yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X.
  • Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena koe jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/direverse-engineer.
  • Penggunaan memori yang banyak. Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.
OK.. Sampai disini artikel kali ini, semoga bermanfaat, dan nantikan artikel lanjutan tentang pemrograman java di edisi "Java Programming Part II...