Minggu, 04 Januari 2015

Algoritma Struktur Data


Selamat Sore Para IT Geek kali ini saya mau mengshare tentang Constructor dalam Java 
berikut adalah Penjelasannya 
List Code
class KotakKecil {
       double panjang;
       double lebar;
       double tinggi;
      
       //mendefinisikan constructor untuk kelas Kotak
       KotakKecil() {
              panjang = 4;
              lebar = 3;
              tinggi = 2;
             
      
       }
      
       double hitungVolume() {
              return (panjang * lebar * tinggi);
             
       }
}
public class Bab8a {

       public static void main(String[] args) {
              KotakKecil k1k2;
              k1 = new KotakKecil();
              k2 = new KotakKecil();
              System.out.println("Volume k1 = " + k1.hitungVolume());
              System.out.println("Volume k2 = " + k2.hitungVolume());
             

       }

}

OutPut
Volume k1 = 24.0
Volume k2 = 24.0

List Code Bab8b
class KotakKecil2 {
       double panjang;
       double lebar;
       double tinggi;
      
       //mendefinisikan constructor untuk kelas kotak
       public KotakKecil2(){
              panjang = 4;
              lebar = 3;
              tinggi = 2;
       }
       //overload constructor
       public KotakKecil2(double p,double l,double t) {
              this.panjang = p;
              this.lebar = l;
              this.tinggi = t;
              }

double hitungVolume() {
       return (panjang * lebar * tinggi);
}

}
public class Bab8b {

       public static void main(String[] args) {
              KotakKecil2 k1k2;
              k1 = new KotakKecil2();
              k2 = new KotakKecil2(5,8,3);
              System.out.println("Volume k1 = " + k1.hitungVolume());
              System.out.println("Volume k2 = " + k1.hitungVolume());

       }

}

Output
Volume k1 = 24.0
Volume k2 = 120.0


List Code Bab8c
class Mhs{
       String nm;
       String n;
       public Mhs(String nama,String npm) {
              this.nm=nama;
              this.n=npm;
             
       }
       public void cetakInfo() {
              System.out.print("Nama Saya: " + nm);
              System.out.print(" dan npm: " + n);
             
             
       }
}

public class Bab8c {

       public static void main(String[] args) {
              Mhs m = new Mhs ("Yahya John""50401912");
              m.cetakInfo();

       }

}

Output
Nama Saya: Yahya John dan npm: 50401912

List Code  Bab9a
public class Bab9a {

       public static void main(String[] args) {
       System.out.println("Sebelum Pembagian");
       System.out.println(5 / 0);
       System.out.println("Setelah Pembagian");
       }

}

Output
Sebelum PembagianException in thread "main"
java.lang.ArithmeticException: / by zero
       at Bab9a.main(Bab9a.java:5)

List Code Bab9B

public class Bab9b {
       public static void main(String[] args) {
       System.out.println("Sebelum Pembagian");
       try {
              System.out.println(5 / 0);
       } catch (Throwable t) {
              System.err.println("Terjadi Pembagian dengan nol");
              System.err.println(t.getMessage());
       }
       System.out.println("Setelah Pembagian");
       }

       }

// Throwable - nama kelas yg digunakan untuk menangani exception.

   Output
Terjadi Pembagian dengan nol
/ by zero
Sebelum Pembagian
Setelah Pembagian

List Code Bab9c
public class Bab9c {

       public static void main(String[] args) {
              double bilangan = 100.0;
              System.out.println("Sebelum pembagian");
              for (int i = 5; i >= 0; i--) {
                     try {
                           System.out.print(bilangan + "/" + i + "=");
                           System.out.println((bilangan / i));
                     } finally {
                           System.out.println("Bagian Finally dijalankan");
                          
                     }
              }
              System.out.println("Selesai");
       }

}

Output
Sebelum pembagian
100.0/5=20.0
Bagian Finally dijalankan
100.0/4=25.0
Bagian Finally dijalankan
100.0/3=33.333333333333336
Bagian Finally dijalankan
100.0/2=50.0
Bagian Finally dijalankan
100.0/1=100.0
Bagian Finally dijalankan
100.0/0=Infinity
Bagian Finally dijalankan
Selesai

List Code Bab9d
public class Bab9d {
       public static void main(String[] args) {
       System.out.println("Sebelum Pembagian");
       try {
              System.out.println(5 / 0);
       } catch (RuntimeException r) {
              System.err.println("Exception");
       } catch (Throwable t) {
              System.err.println("Terjadi Pembagian dengan nol");
              System.err.println(t.getMessage());
              }
              System.out.println("Setelah Pembagian");
       }

}

Output
Sebelum PembagianException

Setelah Pembagian

List Code Bab 9e
public class Bab9e {
       public static void main(String[] args) {
              int[] larik = new int[10];
              try {
                     larik[50] = 77;
                     System.out.println(larik[50]);
              } catch (ArrayIndexOutOfBoundsException a) {
                     a = new ArrayIndexOutOfBoundsException("array harus berkisar antara 0 dan 9");
                     throw (a);
                    
              }

       }

}

Output
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: array harus berkisar antara 0 dan 9
       at Bab9e.main(Bab9e.java:8)

List Code Bab4a
import java.util.Scanner ;
      
public class Bab4a {

       public static void main(String[] args) {
              int grade = 0;
              Scanner in = new Scanner (System.in);
              System.out.println("Masukkan Nilai");
              try{
                    
                     grade = in.nextInt();
              }catch (Exception e) {
                     System.err.println("Pastikan anda memasukkan angka");
                    
              }
              if(grade>=90) {
                     System.out.println("Sempurna");
              }
              else if((grade<90)&&(grade>=80)) {
                     System.out.println("baik");
              }
              else if ((grade<80)&&(grade>=60)) {
                     System.out.println("Belajar dengan giat");
              }

       }

}

Output
Masukkan Nilai
90
Sempurna

Masukkan Nilai
60
Belajar dengan giat

Masukkan Nilai
F
Pastikan anda memasukkan angka


Menganalisa Program Bab8a
Baris Pertama
class KotakKecil {
Class  merupakan suatu blueprint atau cetakan untuk menciptakan suatu instant dari
object. Class juga merupakan grup suatu object dengan kemiripan attributes/properties,  dan
relasi ke object lain
Baris kedua
double panjang;
double lebar;
double tinggi;

Pendeklarasian tipe  data dimana variable panjang ,  lebar  dan tinggi  mempunyai tipe
data double ( tipedata untuk bilangan desimal).
Baris berikut
KotakKecil() {
panjang = 4;
lebar = 3;
tinggi = 2;

Pendefinisian  Konstruktor  pada kelas KotakKecil ,  Konstructor adalah method khusus
yang didefinisikan di dalam kelas dan akan dipanggil secara otomatis setiap kali terjadi
instansiasi objek, dan  merupakan method yang mengembalikan tipe kelas (dirinya sendiri).
Baris selanjutnya
double hitungVolume() {
              return (panjang * lebar * tinggi);
             
       }
}

Sebuah method yang bernama hitungVolume dan mempunyai tipedata double(tipe data
bilangan desimal) dan mempunyai aksi return (sebuah perintah yang berguna untuk
mengembalikan nilai dalam suatu method) nilai dari variable panjang di kali dengan nilai
variable lebar dan dikali dengan variable tinggi

Baris selanjutnya
public class Bab8a {
menandakan nama  class  yaitu  Bab8a. Dalam  Java,  class  menggunakan  access  specifier  public,
Baris selanjutnya
public static void main(String[] args) {
mengindikasikan nama suatu method dalam  class  Bab8a  yang bertindak sebagai method utama.  Method  utama adalah titik awal dari suatu program  Java.
Baris selanjutnya,
KotakKecil k1k2;
k1 = new KotakKecil();
k2 = new KotakKecil();
Code di atas adalah pembuatan sebuah objek baru bernama  k1 dan k2  untuk menggantikan fungsi Class KotakKecil.
Baris selanjutnya
System.out.println("Volume k1 = " + k1.hitungVolume());
System.out.println("Volume k2 = " + k2.hitungVolume());
                        

       }

}

Pada baris ini akan mencetak karakter yang berada di dalam double quotes(“ ”) dan
method hitungVolume yang berada di dalam Objek k1 dan k2.
Dua baris terakhir yang terdiri atas dua kurung kurawal digunakan untuk menutup
method dan class secara berurutan.


Menganalisis Program Bab8b
Baris pertama
class KotakKecil2 {
Pembuatan Class KotakKecil2 ,  Class merupakan suatu blueprint atau cetakan untuk
menciptakan suatu instant dari object.
Baris selanjutnya
double panjang;
double lebar;
double tinggi;

Pendeklarasian tipe data dimana variable panjang ,  lebar dan tinggi mempunyai tipe
data double ( tipedata untuk bilangan desimal).
Baris selanjutnya,
public KotakKecil2(){
              panjang = 4;
              lebar = 3;
              tinggi = 2;
       }
Pendefinisian Konstruktor pada kelas KotakKecil2  , Konstructor adalah method  khusus
yang didefinisikan di dalam kelas dan akan dipanggil secara otomatis setiap kali terjadi
instansiasi objek, dan merupakan method yang mengembalikan tipe kelas (dirinya sendiri).
Baris selanjutnya
public KotakKecil2(double p,double l,double t) {
              this.panjang = p;
              this.lebar = l;
              this.tinggi = t;
              }

Sebuah  konstruktor  yang bernama KotakKecil2  dan mempunyai  access specifier
public, yang mengindikasikan bahwa  Konstruktor  ini  dapat di  akses bebas   oleh  class yang
lain dari package yang lain pula (package merupakan kumpulan class -class), dan mempunyai parameter p,l dan t dengan tipedata  double(tipe data bilangan  desimal), dan this menyatakan bahwa variable p sama dengan variable panjang,variable l  sama dengan variable lebar, dan variable t sama dengan varialbe tinggi.
Baris selanjutnya,
double hitungVolume() {
       return (panjang * lebar * tinggi);
}

}

Sebuah method yang bernama hitungVolume dan mempunyai tipedata double(tipe data
bilangan desimal) dan mempunyai aksi return (sebuah perintah yang berguna untuk
mengembalikan nilai dalam suatu method) nilai dari variable panjang di kali dengan nilai
variable lebar dan dikali dengan variable tinggi
Baris selanjutnya,
public class Bab8b {

menandakan nama  class  yaitu  Bab8b. Dalam  Java,  class  menggunakan  access
specifier  public,
Baris selanjutnya
public static void main(String[] args) {
mengindikasikan nama suatu method dalam  class  Bab8b  yang bertindak sebagai method utama.  Method  utama adalah titik awal dari suatu program  Java
KotakKecil2 k1k2;
              k1 = new KotakKecil2();
              k2 = new KotakKecil2(5,8,3);
Code di atas adalah pembuatan sebuah objek baru bernama  k1 dan k2  untuk menggantikan fungsi  Class KotakKecil.
Baris selanjutnya
System.out.println("Volume k1 = " + k1.hitungVolume());
              System.out.println("Volume k2 = " + k1.hitungVolume());

       }

}

Pada baris ini akan mencetak karakter yang berada di dalam double quotes(“ ”) dan
method hitungVolume yang berada di dalam Objek k1 dan k2.
Dua baris terakhir yang terdiri atas dua kurung kurawal digunakan untuk menutup method dan class secara berurutan.



Menganalisa Program Bab8c
Baris pertama
class Mhs{
embuatan Class  Mhs  ,  Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instant dari object
String nm;
String n;
Pendeklarasian tipe data dimana variable  nm dan n mempunyai tipe data  String  (
tipedata untuk karakter)
Baris selanjutnya
public Mhs(String nama,String npm) {
              this.nm=nama;
              this.n=npm;
             
       }
Sebuah konstruktor yang bernama Mhs  menggunakan  access specifier    public, yang
mengindikasikan bahwa  method  ini  dapat di  akses bebas    oleh  class yang lain dari
package yang lain pula (package merupakan kumpulan class-class), dan mempunyai parameter nama dan nmp dengan tipedata String(tipe data karakter), dan this menyatan bahwa
variable n sama dengan variable nama ,dan variable npm sama dengan variable npm.
Baris selanjutnya,
public void cetakInfo() {
              System.out.print("Nama Saya: " + nm);
              System.out.print(" dan npm: " + n);
             
             
       }
}

Sebuah method yang bernama cetakInfo dan mempunyai tipe void(tidak mengembalikan
nilai)  dan mempunyai aksi return (sebuah perintah yang berguna untuk  mengembalikan nilai
dalam suatu method)  dan akan mencetak karakter yang berada di dalam double quotes(“ ”)
dan nilai dari variable nm dan n.

Baris selanjutnya
public class Bab8c {
menandakan nama  class  yaitu  Bab8c. Dalam  Java,  class  menggunakan  access
specifier  public
Baris selanjutnya
public static void main(String[] args) {
mengindikasikan nama suatu method dalam  class  Bab8c  yang bertindak sebagai
method utama.  Method  utama  adalah titik awal dari suatu program  Java.
Baris selanjutnya
Mhs m = new Mhs ("Yahya John""50401912");
              m.cetakInfo();

       }

}

Code di atas adalah pembuatan sebuah objek baru bernama  m  untuk menggantikan
fungsi Class Mhs. Tetapi pada Objek m parameter pada Objek tersebut langsung di beri nilai.
Dan baris ini akan mencetak method cetakInfo yang berada di dalam Objek m.
Dua baris terakhir yang terdiri atas dua kurung kurawal digunakan untuk menutup
method dan class secara berurutan.


Menganalisa Program Bab9a
Baris pertama
public class Bab9a {
menandakan nama  class  yaitu  Bab9a. Dalam  Java,  class  menggunakan  access specifier  public
Baris selanjutnya
public static void main(String[] args) {
mengindikasikan nama suatu method dalam  class  Bab9a  yang bertindak  sebagai  method utama.  Method  utama adalah titik awal dari suatu program  Java
Baris selanjutnya
System.out.println("Sebelum Pembagian");
       System.out.println(5 / 0);
       System.out.println("Setelah Pembagian");
       }

}
Pada baris ini pertama akan mencetak karakter yang ada di dalam tanda doublesquotes(“ “), setelah itu mencetak hasil dari 5 / 0 dan disini akan terjadi error di karenakan ada sebuah bilangan yang di bagi 0 sehingga program akan berhenti dan  perintah setelah itu tidak akan di eksekusi.
Dua baris terakhir yang terdiri atas dua kurung kurawal digunakan untuk menutup
method dan class secara berurutan.

Menganalisa Program Bab9b
Baris pertama
public class Bab9b {
menandakan nama  class  yaitu  Bab9b. Dalam  Java,  class  menggunakan  access specifier  public
Baris Selanjutnya
public static void main(String[] args) {
mengindikasikan nama suatu method dalam  class  Bab9b yang bertindak  sebagai method utama.  Method  utama adalah titik awal dari suatu program  Java.
Baris selanjutnya
System.out.println("Sebelum Pembagian");
      
Pada baris ini pertama akan mencetak karakter yang ada di dalam tanda doublesquotes(“ “), yaitu Karakter Sebelum Pembagian.

Baris selanjutnya
try {
System.out.println(5 / 0);
       }

Pada baris ini menyatakan blok yang akan ditangkap jika terjadi exception.
Baris selanjutnya
catch (Throwable t) {
              System.err.println("Terjadi Pembagian dengan nol");
              System.err.println(t.getMessage());
       }
       System.out.println("Setelah Pembagian");
      
Pada baris ini menandakan  blok yang akan dijalankan jika terjadi eksepsi yang lain, sehingga jika terjadi error program tidak akan berhenti melainkan memberi peringatan dan program akan terus berjalan.
}
}

Dua baris terakhir yang terdiri atas dua kurung kurawal digunakan untuk menutup
method dan class secara berurutan.
Menganalisa Bab9c
Baris pertama
public class Bab9c {
menandakan nama  class  yaitu  Bab9c. Dalam  Java,  class  menggunakan  access specifier  public
Baris selanjutnya
public static void main(String[] args) {
mengindikasikan nama suatu method dalam  class  Bab9c  yang bertindak  sebagai method utama.  Method  utama  adalah titik awal dari suatu program  Java.
Baris selanjutnya,
double bilangan = 100.0;

Pada baris ini pemberian tipe data pada varibale bilangan yaitu tipe data double(tipedata
bilangan desimal) dan di beri nilai 100,0.

Baris selanjutnya,
System.out.println("Sebelum pembagian");
Pada baris ini akan mencetak karakter yang berada di dalam tanda doublequote(“ “).
Baris selanjutnya
for (int i = 5; i >= 0; i--) {

pada baris ini kita menggunakan for , pada perintah ini di  inilisasi bahwa  variable  i memiliki tipedata integer dan mempunyai nilai 5 , variable  i  lebih besar atau sama dengan 0 , i dididecrementasi/dikurangkan 1.
Baris selanjutnya
try {
                           System.out.print(bilangan + "/" + i + "=");
                           System.out.println((bilangan / i));
}
Pada baris ini menyatakan blok yang akan ditangkap jika terjadi exception.
Baris selanjutnya,
finally {
                           System.out.println("Bagian Finally dijalankan");
}
Baris selanjutnya
Pada baris ini menandakan blok yang akan di jalankan terakhir kali.
Baris selanjutnya
}
              System.out.println("Selesai");
}
}
Pada baris ini kurung kurawal tutup adalah akhir dari blok for dan akan mencetak
karakter yang ada di dalam tanda doublesquote(“ “) yaitu selesai.
Dua baris terakhir yang terdiri atas dua kurung kurawal digunakan untuk menutup
method dan class secara berurutan.



Menganalisa Program Bab9d
Baris Pertama
public class Bab9d {

menandakan nama  class  yaitu  Bab9d. Dalam  Java,  class  menggunakan  access specifier  public
Baris selanjutnya
public static void main(String[] args) {
mengindikasikan nama suatu method dalam  class  Bab9d  yang bertindak  sebagai method utama.  Method  utama  adalah titik awal dari suatu program  Java.
Baris selanjutnya
System.out.println("Sebelum Pembagian");
Menampilkan karakter yang berada di dalam doublequotes(“”) yaitu karakter Sebelum Pembagian.
Baris selanjutnya
try {
              System.out.println(5 / 0);
       }
Pada baris ini menyatakan blok yang akan ditangkap jika terjadi exception.
Baris selanjutnya
catch (RuntimeException r) {
              System.err.println("Exception");
       }
Pada baris ini menandakan blok yang akan dijalankan jika terjadi eksepsi yang lain,
RuntimeException adalah subclass dari Exception yang di gunakan untuk array tidak valid dan
kesalah aritmatika.
catch (Throwable t) {
              System.err.println("Terjadi Pembagian dengan nol");
              System.err.println(t.getMessage());
              }
Pada baris ini menandakan  blok yang akan dijalankan jika terjadi eksepsi yang lain, sehingga jika terjadi error program tidak akan berhenti melainkan memberi peringatan  sesuai dengan perintah yang kita berikan di dalam tanda doublequote(“  “)    dan program akan terus berjalan.
Baris selanjutnya
System.out.println("Setelah Pembagian");
       }

}
Baris ini akan mencetak karakter yang berada di dalam doublequotes(“ “). Dua baris terakhir yang terdiri atas dua kurung kurawal digunakan untuk menutup method dan class secara berurutan

Menganalisa program Bab9e
Baris pertama
public class Bab9e {

menandakan nama  class  yaitu  Bab9e. Dalam  Java,  class  menggunakan  access
specifier  public,
Baris selanjutnya
public static void main(String[] args) {
mengindikasikan nama suatu method dalam  class  Bab9e  yang bertindak  sebagai method utama.  Method  utama  adalah titik awal dari suatu program  Java.
Baris selanjutnya,
int[] larik = new int[10];
pembentukan sebuah objek bernama larik untuk mengantikan sebuah array yang dapat menyimpan nilai 10 nilai integer yang dapat di akses melalui indeks 0 sampai 9
Baris selanjutnya
try {
                     larik[50] = 77;
                     System.out.println(larik[50]);
Pada baris ini menyatakan blok yang akan ditangkap jika terjadi exception pada sebuah
array.
Baris selanjutnya
catch (ArrayIndexOutOfBoundsException a) {
                     a = new ArrayIndexOutOfBoundsException("array harus berkisar antara 0 dan 9");
                     throw (a);
                    
              }
Pada baris ini akan menangkap kesalahan array yang tidak valid dan pembetukan objek
a yang menggantikan fungsi ArrayIndexOutOfBoundsException sehingga jika terjadi kesalahan
variable a akan di lontarkan.
}

}

Dua baris terakhir yang terdiri atas dua kurung kurawal digunakan untuk menutup method dan class secara berurutan
Menganalisa Bab4a
Baris pertama
import java.util.Scanner ;

Perintah pada baris ini berguna untuk mengambil fungsi scanner pada java .
Baris selanjutnya
public class Bab4a {

menandakan nama  class  yaitu  Bab4a. Dalam  Java, class menggunakan access specifier  public
Baris selanjutnya
int grade = 0;
Pada baris ini pendeklarasian tipe data pada kasus ini variable grade memiliki tipe data int (tipe data untuk bilangan bulat) dan memiliki nilai 0.
Baris berikutnya ,
Scanner in = new Scanner (System.in);
Code di atas adalah pembuatan sebuah objek baru bernama in untuk  menggantikan
fungsi Scanner.
Baris selanjutnya
System.out.println("Masukkan Nilai");
Pada baris ini pertama kita akan menampilkan output Masukan nilai
Baris selanjutnya
try{
                    
                     grade = in.nextInt();
              }
Pada baris ini menyatakan blok yang akan ditangkap jika terjadi exception.
Baris selanjutnya,
catch (Exception e) {
                     System.err.println("Pastikan anda memasukkan angka");
                    
              }
Pada baris ini menandakan  blok yang akan dijalankan jika terjadi eksepsi yang lain,
sehingga jika terjadi error program tidak akan berhenti melainkan memberi peringatan  sesuai
dengan perintah yang kita berikan di dalam tanda doublequote(“  “)    dan program akan terus
berjalan.
Baris selanjutnya,
if(grade>=90) {
                     System.out.println("Sempurna");
              }
Pada baris ini berarti jika nilai pada  variable  grade memiliki nilai lebih besar atau sama
dengan 90 maka tampilan outputnya Sempurna,
Baris selanjutnya,
else if((grade<90)&&(grade>=80)) {
                     System.out.println("baik");
              }
Pada baris ini berarti jika nilai pada  variable  grade memiliki nilai lebih kecil dari 90 dan
lebih besar atau sama dengan 80 maka tampilan outputnya baik.
Baris selanjutnya,
else if ((grade<80)&&(grade>=60)) {
                     System.out.println("Belajar dengan giat");
              }

Pada baris ini berarti jika nilai pada  variable  grade memiliki nilai lebih kecil dari 80 dan
lebih besar atau sama dengan 60 maka tampilan outputnya Belajar dengan giat.
Baris selanjutnya
}

}
Dua baris terakhir yang terdiri atas dua kurung kurawal digunakan untuk menutup
method dan class secara berurutan.

Saran Dan Kritik Saya terima dengan senang hati