Selasa, 08 November 2011

Praktikum Java Ke 6


     Overloading, OverRiding dan Exception
   
      A.      OVERLOADING
Overloading adalah suatu kemampuan dalam bahasa berorientasi objek untuk menggunakan suatu nama method untuk beberapa method yang memiliki parameter masukan yang berbeda (tipe maupun jumlah parameter). Atau dengan kata lain, dalam satu kelas ada beberapa method yang sama tetapi ada bedanya yaitu dari segi parameternya.
Contoh:
1.       Membuat Program SegiTigaa.Java

class SegiTigaa{  // membuat sebuath class dengan nama Segitiga
public SegiTigaa (double panjang) {  // constructor SegiTiga dengan  satu parameter yaitu  panjang
       System.out.println("\nVariabel = segitiganya sama sisi");  // mencetak kata n yang pertama yaitu :”Variabel = segitiganya sama sisi”
       System.out.println("Panjang = " +panjang); //mencetak Panjang= ditambah nilai parameter panjang 
       keliling(panjang); // method keliling dengan parameter panjang
       }
       public SegiTigaa(double panjang, double sisiMiring){  // constructor SegiTiga  dengan dua parameter yaitu panjang dan sisi miring.
       System.out.println("\n2Variabel = segitiganya sama kaki"); // mencetak n yang kedua yaitu :”Variabel = segitiganya sama kaki”
       System.out.println("Panjang = " +panjang+ " sisi miring = " +sisiMiring); //mencetak Panjang= ditambah nilai parameter panjang dan mencetak sisi miring ditambah nilai parameter sisiMiring.
       keliling(panjang, sisiMiring); //method keliling dengan parameter panjang dan sisiMiring.
       }
       public void keliling(double panjang) { // memanggil method keliling yang menggunakan parameter panjang saja.
                       tampilkanHasil(panjang*3); // method tampilkanHasil dengan nilai parameter panjang dikali 3.
                       }
       public void keliling(double p, double sM) { // memanggil method keliling yang menggunakan parameter panjang dan sisiMiring.
       tampilkanHasil(2*sM+p); // method tampilkanHasil dengan parameter sisiMiring(sM) dikali 2 dan ditambah parameter panjang(p).
       }
       protected void tampilkanHasil(double h) { //memanggil method tampilkanHasil dengan parameter h
       System.out.println("Hasil = " +h);  //mencetak “Hasil=” ditamabah nilai parameter h.
       }
}

  Output: 
Tidak ada karena tidak memiliki fungsi utama/ Jika dijalankan maka mucul tampilan seperti dibawah ini :


             2.       Membuat Program MainSegitiga.java

class MainSegiTiga { // membuat class baru dengan nama MainSegiTiga.
        public static void main(String [] args) { //Fungsi Utama
        new SegiTigaa(7);  // memanggil method SegiTiga yang pertama pada class SegiTiga dan mengirimkan nilai 7 pada parameter panjang.
        new SegiTigaa(4,7); // memanggil method SegiTiga yang kedua  pada class SegiTiga dan mengirimkan nilai 4  pada parameter panjang dan nilai 7 pada parameter sisiMiring.
        }
}
Output:

      




    B.      OVERRIDING
Overriding adalah suatu kemampuan dalam bahasa berorientasi objek untuk mengubah implementasi (menimpa) suatu method yang memiliki oleh kelas super ketika kelas super tersebut diturunkan.
Contoh :
1.       Membuat Program OverRiding.java

class OverRiding{ // membuat class baru dengan nama OverRiding
public void MethodAsli() { // method  MethodAsli
System.out.println("Method milik class OverRiding dijalankan"); // mencetak karakter dalam tanda kutip.
}
public static void main(String[]args) { //Fungsi Utama
OverRiding o = new OverRiding(); //membuat objek baru dengan nama o pada constructor OverRiding.
o.MethodAsli(); // memanggil method MethodAsli.
}
}

Output:






           2.       Membuat Program SubOverRiding.java

class SubOverRiding extends OverRiding { // membuat class baru dengan nama SubOverRiding turunan dari class OverRiding.
public void MethodAsli(){ //method MethodAsli menimpah MethodAsli pada class OverRiding.
System.out.println("Method yang sudah OverRiding dijalankan"); // mencetak karakter dalam tanda Kutip dua pada class subOverRiding.
}
public void MethodAsliSuper(){ // method MethodAsliSuper
System.out.println("Method pemanggil MethodAsli dijalankan"); // mencetak karakter dalam tanda kutip dua.
super.MethodAsli(); //memanggil MethodAsli
}
public static void main(String [] args) { //Fungsi Utama
SubOverRiding SO = new SubOverRiding(); //membuat objek baru dengan nama SO pada constructor SubOverRiding.
SO.MethodAsli(); //memanggil isi dari MethodAsli
SO.MethodAsliSuper(); //memanggil isi dari MethodAsliSuper
}
}

Output :


     

      C.      EXCEPTION
Exception merupakan sutu objek error khusus yang dibuat ketika terjadi kesalahan pada suatu program.
           Contoh:
                 1.       Membuat Program TanpaException.java

class TanpaException { // membuat class baru dengan nama TanpaException
public static void main (String [] args){ // Fungsi utama
int Nilai = Integer.parseInt (args[0]);
System.out.println("Nilai yang dimasukkan : " +Nilai); // mencetak karakter dalam tanda kutip dan ditambah nilia parameter Nilai
}
}

 Proses untuk melihat out putnya yaitu sebagai berikut :
1. Klik start ,pilih run ketik cmd untuk membuka command prompt
2. Ketik perintah cd untuk menuju direktori tempat TanpaException.java berada.
3.ketik java TanpaException 50

Output:



          2.       Membuat Program CobaException.java

class CobaException { // membuat class baru dengan nama CobaException
public static void main (String []args){ //Fungsi Utama
int nilai=0;
try{
                int Nilai = Integer.parseInt (args[0]);
System.out.println("Nilai yang dimasukkan : " +Nilai);  //mencetak karakter dalam tanda kutip dua dan ditambah nilai parameter Nilai.
}
catch(Exception e) {
System.out.println("Pasti yang diinput bukan Integer");  // mencetak karakter dalam tanda kutip dua.
}
finally {
System.out.println("Blok finally tetap dilakukan");  //mencetak karakter dalam tanda kutip dua.
}
}
}

Output:


                 3.       Membuat Program PembagianNol.java

class PembagianNol { //membuat class baru dengan nama PembagianNol
public static void main (String [] args) { //Fungsi Utama
System.out.println("Sebelum pembagian");  //mencetak karakter dalam tanda kutip dua.
try {
System.out.println(5/0);
}
catch(Throwable T) {
System.out.println("Terjadi pembagian nol"); //mencetak karakter dalam tanda kutip dua.
}
System.out.println("Sesudah pembagian"); // mencetak karakter dalam tanda kutip dua.
}
}

Output:



                  4.         Membuat Program TesInputData.java

import java.io.*;
class TesInputData { // membuat class baru dengan nama TesInputData
public static void main (String [] args) { //Fungsi Utama
BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));
String Input = " ";
try {
System.out.println("Masukkan data : "); // mencetak karakter dalam tanda kutip dua.
Input = "Salah";
}
finally {
System.out.println("Data yang anda masukkan adalah " +Input); // mencetak karakter dalam tanda kutip dua dan ditambah nilai dari input.
}
}
}

Output:




Selasa, 01 November 2011

PRAKTIKUM JAVA KE 5



ABSTRAK CLASS, INTERFACE, INNER CLASS

A.    ABSTRAK CLASS
Abstrak class adalah suatu kelas yang dinyatakan abstract, umumnya memiliki suatu atau lebih abstract method. Abstrak method adalah suatu method yang memiliki implementasi dan menggunakan modifier abstract. Abstrak class selalu menjadi kelas induk dan minimal harus memiliki satu buah method abstrak.
Deklarasi abstract class pada java:
[modifier] abstract class NamaKelas {
//deklarasi atribut
//defenisi/prototype method
}

Contoh :
      a.       Membuat Program MahlukHidup.java

public abstract class MakhlukHidup{
            protected boolean BisaTerbang = false;
            protected String Nama;
            protected int JlhKaki;

            public MakhlukHidup(String Nama1, int JlhKaki1, boolean BisaTerbang1){
                        this.Nama = Nama1;
                        this.JlhKaki = JlhKaki1;
                        this.BisaTerbang = BisaTerbang1;
            }

            abstract void bernafas();

            public void status(){
                        System.out.println("Nama :" +Nama);
                        System.out.println("Jumlah Kaki :" +JlhKaki);
                        System.out.println("Bisa Terbang :" +BisaTerbang);
            }
}

Output :
Tidak ada karena tidak memiliki fungsi utama/ Jika dijalankan maka mucul tampilan seperti dibawah ini :

 Penjelasan :
 public MakhlukHidup(String Nama1, int JlhKaki1, boolean BisaTerbang1){
    // merupakan method dengan type data string, integer dan boolean
                        this.Nama = Nama1;
                        // mengubah Nama menjadi Nama1
                        this.JlhKaki = JlhKaki1;
                        //  mengubah JlhKaki menjadi JlhKaki1
                        this.BisaTerbang = BisaTerbang1;
                        //  mengubah BisaTerbang menjadi BisaTerbang1

 abstract void bernafas();
   // merupakan method abstrak

public void status(){
  //merupakan method dengan nama status
                        System.out.println("Nama :" +Nama);
                        //memanggil variabel Nama tetapi belum dapat ditampilkan
                        System.out.println("Jumlah Kaki :" +JlhKaki);
                         //memanggil variabel JlhKaki tetapi belum dapat ditampilkan
                        System.out.println("Bisa Terbang :" +BisaTerbang);
                         //memanggil variabel BisaTerbang tetapi belum dapat ditampilkan

      b.      Membuat Program Manusia.java

public class Manusia extends MakhlukHidup {
            Manusia(String Nama){
            // merupakan method dan konstruktor
                        super(Nama,2, false);
                        //untuk memanggil konstruktor kelas induk
            }

            public void bernafas() {
                        System.out.println(Nama+" bernafas dengan menghirup O2");
            }

            public static void main (String [] args) {
                        Manusia m = new Manusia("Sayuti");
                        //memanggil konstruktor manusia
                        m.status();
                        //memanggil method status dan menampilkannya
                        m.bernafas();
                        //memanggil method bernafas dan menampilkannya
            }
}

Output :


      c.       Membuat Program Tumbuhan.java

public class Tumbuhan extends MakhlukHidup {
            Tumbuhan(String Nama){
                        super(Nama,0, false);
            }

            public void bernafas() {
                        System.out.println(Nama+" bernafas dengan menghirup CO2");
            }

            public static void main (String [] args) {
                        Tumbuhan m = new Tumbuhan("Bayam");
                        m.status();
                        m.bernafas();
            }
}

Output :

 
B.     INTERFACE
Interface adalah suatu kelas yang berisi method-method tanpa implementasi, namun tanpa modifier abstract, apabila suatu interface memilki atribut, maka atributnya akan berlaku sebagai konstanta.
Deklarasi interface pada java:
[modifier] Interface NamaInterface{
//deklarasi konstanta
//defenisi method
}

Contoh :
      a.      Membuat Program Pekerjaan.java

interface Pekerjaan {
//pedeklarasian interface
            public void namaPekerjaan();
            public void gaji();
}

Output :
Tidak ada karena tidak memiliki fungsi utama/ Jika dijalankan maka mucul tampilan seperti dibawah ini :



      b.       Membuat Program Ummy.java

public class Ummy extends Manusia implements Pekerjaan {
//mengimplementasikan metho-method Pekerjaan dan merupakan turunan dari kelas induk Manusia
            public Ummy() {
                        super("Ummy");
            }

            public void namaPekerjaan(){
                        System.out.println("Pekerjaan :Sekretaris");
            }

            public void gaji(){
                                    System.out.println("Gaji :Rp. 3.000.000");
                        }

            public static void main(String[] args){
                        Ummy u = new Ummy();
                        //membuat objek baru dengan nama u
                        u.status();
                       //untuk memanggil dan menampilkan method status dari kelas Manusia
                        u.bernafas();
                        u.namaPekerjaan();
                        //untuk memanggil dan menampilkan method namaPekerjaan dari kelas Ummy
                        u.gaji();
            }

}

Output :



C.    INNER CLASS
Inner class adalah kelas yang disisipkan di dalam kelas yang lain. Fungsinya adalah untuk mendukung suatu proses yang akan dijalankan oleh kelas utamanya. Inner class bersifat tersarang terhadap kelas-kelas utamanya.
Contoh :
      a.       Membuat Program JantungManusia.java

class Orang{
            private int jumlKaki = 2;

            public void dengarBunyiJantung(){
                        Jantung j = new Jantung();
                        j.bunyiJantung();
            }

            public void tahanNafas() {
                        System.out.println("Jantung berhenti berdetak!");
            }

            //inner class
            class Jantung{
            //class jantung di dalam class orang
                        public void bunyiJantung() {
                                    System.out.println("deg,,,deg...deg,,,deg...deg,,,");
                        }

                        public void istirahat(){
                                    System.out.println("Silangkan ke "+jumlKaki+" kaki.");
                                    tahanNafas();
                        }
            }
}

class JantungManusia{
//merupakan class baru yang memiliki fungsi utama
            public static void main (String[] args) {
                        Orang o = new Orang();
                        Orang.Jantung p = o.new Jantung();
                        //objek baru yang kelas jantung di dalam kelas orang / karena objek p berada pada objek o
                        o.dengarBunyiJantung();
                        //untuk memanggil dan menampilkan method dengarBunyiJantung dari dari class orang
                        p.istirahat();
                         //untuk memanggil dan menampilkan method istirahat dari dari inner class jantung
            }
}

Output :