Tuesday 2 September 2014

0

Pewarisan (Inheritance) Deklarasi Extends dalam Java Netbeans: Kurikulum 2013

PEWARISAN (INHERITANCE)
Author Stella D. J. Shanawi
Pembimbing Dewi Nurdiyah, S. Kom
September, 2nd 2014


Inheritance adalah hubungan antar classs dimana setiap class dapat berbagi method yang ditetapkan ke suatu class (single inheritance) atau ke banyak class lain (multiple inheritance) dengan koding extends.
  • Class yang mewariskan kelas lain disebut superclass
  • Class yang diwarisi kelas lain atau banyak class disebut subclass

Fungsi utama dari pewarisan sendiri ialah memanfaatkan method yang sudah ada untuk menyelesaikan method dalam kelas berbeda yang berkaitan dengan method yang akan diwariskan.


Berikut merupakan contoh pewarisan dari 3 class berbeda.

  • Permasalahan:
  • Buatlah class lingkaran dengan method luas lingkaran.
        luas lingkaran = 3,14 * ruji * ruji 
  • Buatlah class tabung, mewarisi class persegi dengan method volume tabung
        volume tabung (disini tabung beralas dan bertutup lingkaran sehingga tidak perlu memasukkan rumus yang panjang melainkan: volume tabung = luas lingkaran * tinggi 
  • Buatlah class kerucut, mewarisi class persegi dengan method volume kerucut
        volume kerucut langsung saja dengan = 0.3 * volume tabung





PEWARISAN HARUS BERKESINAMBUNGAN ANTAR CLASS.

 PENYELESAIAN
1. Buatlah new project dengan option java project lalu namai sesuai kebutuhan.




Kita namai sesuai kebutuhan semisal sama dengan yang ada pada dialog box diatas.
Kemudian bangunlah sebuah java class dengan jumlah sesuai kebutuhan.




2. Setelah java class telah dibuat, buatlah isi dari class tersebut dengan urutan memasukkan variabel yang berisikan tipe data dan variabelnya. Buat class 'lingkaran' isikan dengan tipe data

public class lingkaran {
 
    Float ruji;
    Float luas_lingkaran;
 
    public void luas_lingkaran(float ruji)
            {
                this.ruji = ruji;
                luas_lingkaran=314/100*ruji*ruji;
                System.out.println("Luas lingkaran = "+luas_lingkaran);
            }
 
}
Float ruji menunjukkan bahwa tipe data yang digunakan adalah float, karena akan diisi dengan bilangan pecahan dideklarasikan menggunakan variabel ruji.
Variabel yang digunakan tulis saja secukupnya sesuai kebutuhan.
Public void menyatakan method atau perintah yang akan dijalankan.
Perintah this.ruji = ruji menyatakan bahwa inputan angka yang merupakan ruji, akan sama dengan inputan angka untuk ruji-ruji yang lain. Sehingga user tidak perlu memasukkan dua kali inputan ruji.







4. Kemudian buatlah class tabung. Disinilah fungsi pewarisan dalam deklarasi extends akan diletakkan.

public class tabung extends lingkaran {        Float tinggi;    Float volume_tabung;            public void volume_tabung(float tinggi)    {      volume_tabung=luas_lingkaran*tinggi;      System.out.println("Volume tabung = "+volume_tabung);    }}
Fungsi extends adalah pendeklarasi pewarisan. Artinya, bahwa class tabung mewarisi class lingkaran.




5. Selanjutnya bangunlah class kerucut.

public class kerucut extends tabung {
 
    Double volume_kerucut;
 
    public void volume_kerucut()
    {
        volume_kerucut=0.3*volume_tabung;
        System.out.println("Volume kerucut ="+volume_kerucut);
    }
 
}
Deklarasi extends menandakan bahwa class kerucut mewarisi class tabung. Perlu diketahui bahwa pewarisan disini adalah pewarisan tipe data, variavbel dan method.





6. Bukalah project utama sebagai kelas utama yaitu BangunInher yang semula sebagai mainclass atau superclass kemudian masukkan koding seperti berikut:


DASAR TEORI
Source: http://angganewbie.blogspot.com/2013/03/program-java-menggunakan-bufferedreader.html dengan ubahan beberapa materi.

Berikut ini adalah langkah-langkah yang diperlukan untuk mendapatkan input dari
keyboard:

1. Tambahkan di bagian paling atas code Anda:

import java.io.*;

2. Tambahkan statement berikut:

BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) );

3. Deklarasikan variabel String temporary untuk mendapatkan input, dan gunakan
fungsi readLine() untuk mendapatkan input dari keyboard. Anda harus
mengetikkannya di dalam blok try-catch:

try{String temp = dataIn.readLine();}catch( IOException e ){System.out.println(“Error in getting input”);}

Berikut ini adalah source code lengkapnya:

import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOException;public class GetInputFromKeyboard{public static void main( String[] args ){BufferedReader dataIn = new BufferedReader(newInputStreamReader( System.in) );String name = "";System.out.print("Please Enter Your Name:");try{name = dataIn.readLine();}catch( IOException e ){System.out.println("Error!");}System.out.println("Hello " + name +"!");}}
Berikutnya akan penjelasan setiap baris dari code tersebut:
Statement,

import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOException;

menjelaskan bahwa kita akan menggunakan class BufferedReader, InputStreamReader danIOException yang berada di java.io package. Java Application Programming Interface (API) berisi ratusan class yang sudah didefinisikan sebelumnya yang dapat digunakan untuk program Anda. Class-class tersebut dikumpulkan di dalam packages.
Packages berisi class yang mempunyai fungsi yang saling berhubungan. Seperti pada contoh di atas, java.io package mengandung class-class yang memungkinkan program untuk melakukan input dan output data. Pernyataan di atas juga dapat ditulis sebagai berikut,

import java.io.*;

yang akan mengeluarkan semua class yang berada dalam package, dan selanjutnya kita bisa menggunakan class-class tersebut dalam program kita.Dua statement selanjutnya,

public class GetInputFromKeyboard{public static void main( String[] args ){

kita sudah mempelajari pada pelajaran sebelumnya. Pernyataan ini mendeklarasikan class bernama GetInputFromKeyboard dan kita mendeklarasikan method main.
Dalam statement,

BufferedReader dataIn = new BufferedReader(newInputStreamReader( System.in) );

kita mendeklarasikan sebuah variabel bernama dataIn dengan tipe classBufferedReader. Jangan mengkhawatirkan tentang maksud dari syntax saat ini. Kita akan menjelaskannya pada akhir pembahasan.
Sekarang, kita akan mendeklarasikan variabel String dengan identifier name,

String name = "";

Pernyataan di atas merupakan tempat untuk menyimpan input dari user. Nama variable diinisialisasi sebagai String kosong "". Sebaiknya kita selalu menginisialisasi sebuah variabel setelah kita mendeklarasikannya.
Baris berikutnya adalah memberikan output sebuah String pada layar yang menanyakan nama user.

System.out.print("Please Enter Your Name:");

Sekarang, blok di bawah ini merupakan try-catch block,

try{name = dataIn.readLine();}catch( IOException e ){System.out.println("Error!");}

Pada baris ini menjelaskan bahwa kemungkinan terjadi error pada pernyataan,

name = dataIn.readLine();
akan ditangkap. Kita akan membahas tentang penanganan exception pada bab selanjutnya dari pembahasan ini, tetapi untuk sekarang, Anda cukup mencatat bahwa Anda perlu menambahkan kode ini untuk menggunakan method readLine() dari BufferedReader untuk mendapatkan input dari user.


7. Masuklah pada public void main sebagai method utama untuk menjalankan subclass yang menggunakan extends.


Berikut merupakan deklarasi kodingnya:
package banguninher;


/**
 *
 * @author user
 */
 

import java.io.BufferedReader; // import class java BufferedReader
import java.io.InputStreamReader; // import class InputStreamReader
import java.io.IOException; // import class IOException
public class BangunInher {
    
/**
     * @param args the command line arguments
     */
        public static void main(String[] args) throws Exception {
             
        BufferedReader input = new BufferedReader(new InputStreamReader (System.in));
     
     
        // ini untuk memanggil lingkaran ke kerucut
     
       System.out.print("Masukkan ruji = ");
        float sisi = Float.parseFloat(input.readLine());
        System.out.print("Masukkan tinggi = ");
        float tinggi = Float.parseFloat(input.readLine());
        kerucut st = new kerucut();
        st.luas_lingkaran(sisi);
        st.volume_tabung(tinggi);
        st.volume_kerucut();
     
        // ini untuk memanggil lingkaran ke bola
        /* System.out.print("Masukkan ruji = ");
        float sisi = Float.parseFloat(input.readLine());
        bola st = new bola();
        st.luas_lingkaran(sisi);
        st.volume_bola();
        */
     
         /* TODO code application logic here */
        // instance kelas keyboard
     
    }


  • Fungsi berfont biru adalah fungsi yang tidak dijalankan pada program karena adanya tanda /* dan diakhiri dengan */
  • Pemanggilan disesuaikan dengan method pada class dengan parameter yang tersedia.
  • Untuk memanggil deklarasi class secara otomatis dapat menggunakan CTRL + Spasi, kemudian akan muncul option dari data yang telah tersedia.

Program selesai dibuat.
Stella D. J. Shanawi, edited on September 3rd 2014 13:56
Credit me on twitter or instagram: @stelldc 

0 comments: