Belajar Java Menciptakan Array Dari Objek-Objek

Seperti halnya pada tipe data primitif, array juga sanggup memegang objek-objek pada Java. Pada pembahasan sebelumnya, anda sudah mengetahui cara untuk menciptakan array dengan elemen dari tipe data primitif.
 anda sudah mengetahui cara untuk menciptakan array dengan elemen dari Belajar Java Membuat Array Dari Objek-objek


Nah, kini untuk menciptakan array dari objek, contohnya dari class PersegiPanjang, anda sanggup melakukannya dengan:


PersegiPanjang myArray = new PersegiPanjang[10];

Pernyataan di atas akan menciptakan array yang sanggup memegang acuan dari sepuluh objek dari class PersegiPanjang. Namun, pernyataan ini tidak menciptakan objek dari class itu sendiri. Objek-objek ini harus dibentuk secara terpisah memakai konstruktor dari class PersegiPanjang.

Array myArray akan mempunyai sepuluh ruang memori dimana sepuluh objek dari class itu akan disimpan. Jika anda mencoba untuk mengakses objek PersegiPanjang sebelum objek-objek itu dibentuk maka runtime error akan terjadi.

NullPointerException juga sanggup terlontar saat dilakukan runtime menyerupai pola di bawah ini:

class PersegiPanjang :
 
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
package com.bahasaJava.arrayObjek;  public class PersegiPanjang {    private double panjang;  private double lebar;    //Getter dan setter method untuk panjang  public double getPanjang() {   return panjang;  }  public void setPanjang(double panjang) {   this.panjang = panjang;  }    //Getter dan setter method untuk lebar  public double getLebar() {   return lebar;  }  public void setLebar(double lebar) {   this.lebar = lebar;  }   } 

class TestPersegiPanjang untuk mendemonstrasikan:

 1  2  3  4  5  6  7  8  9 10 11 12
package com.bahasaJava.arrayObjek;  public class TestPersegiPanjang {    public static void main (String args []){      PersegiPanjang [] myArray = new PersegiPanjang [10];   myArray[0].setPanjang(8.75);     }  } 

Contoh runtime exception yang muncul:

Exception in thread "main" java.lang.NullPointerException at       com.bahasaJava.arrayObjek.TestPersegiPanjang.main(TestPersegiPanjang.java:8)

Kenapa exception itu sanggup muncul? Karena myArray[0] tidak mengarah pada objek PersegiPanjang. Makara objek harus dibentuk dengan memakai konstruktor dari class PersegiPanjang dan referensinya harus ditetapkan pada elemen array dengan pernyataan berikut:

myArray[0] = new PersegiPanjang();

Dalam hal ini misal menjadi:

 1  2  3  4  5  6  7  8  9 10 11 12 13 14
package com.bahasaJava.arrayObjek;  public class TestPersegiPanjang {    public static void main (String args []){      PersegiPanjang [] myArray = new PersegiPanjang [10];   myArray[0] = new PersegiPanjang();   myArray[0].setPanjang(8.75);        }  } 


myArray yaitu variabel acuan dari objek PersegiPanjang. Makara saat anda menciptakan array objek dari class PersegiPanjang tersebut, bersama-sama anda lakukan yaitu membuat array dari variabel acuan objeknya.

Perlu diingat bahwa saat array dari objek-objek tersebut dibuat, memakai operator new, maka setiap elemen dalam array yaitu merupakan variabel acuan objek dengan nilai defaultnya yaitu null.

Cara Menginisialisasi Array Dari Objek Dengan Loop

Kembali lagi loop dipakai untuk menginisialisasi array, biasanya yang dipakai yaitu for loop, menyerupai di bawah ini:

for (int i = 0; i < myArray.length; i++) {
      myArray[i] = new PersegiPanjang();
}




Berikut ini yaitu pola kegiatan sederhana yang menciptakan array objek dari class PersegiPanjang, lalu menampilkan hasil untuk perhitungan luas dan nilai rata-ratanya:

class PersegiPanjang
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
package com.bahasaJava.arrayObjek;  import java.util.Scanner;  public class PersegiPanjang {    private double panjang;  private double lebar;      static Scanner input = new Scanner(System.in);    public PersegiPanjang(double panjang, double lebar){   this.panjang = panjang;   this.lebar = lebar;  }    //Getter dan setter method untuk panjang  public double getPanjang() {   return panjang;  }  public void setPanjang(double panjang) {   this.panjang = panjang;  }    //Getter dan setter method untuk lebar  public double getLebar() {   return lebar;  }  public void setLebar(double lebar) {   this.lebar = lebar;  }    //Membuat array dari objek persegi panjang  public static PersegiPanjang [] buatArrayPersegiPanjang(){      System.out.print("Berapa objek persegi panjang akan di buat? ");   int jumlahObjek = input.nextInt();   System.out.println("***********************************************");      PersegiPanjang arrayPersegiPanjang [] = new PersegiPanjang [jumlahObjek];      for (int i = 0; i < arrayPersegiPanjang.length; i++){        System.out.print("Masukkan nilai panjang untuk "        + "Persegi Panjang ke " + (i + 1) + ": ");    double nilaiPanjang = input.nextDouble();        System.out.print("Masukkan nilai lebar untuk "        + "Persegi Panjang ke " + (i + 1) + ": ");    double nilaiLebar = input.nextDouble();    System.out.println("----------------------------------------------------------");    arrayPersegiPanjang[i] = new PersegiPanjang(nilaiPanjang, nilaiLebar);       }      return arrayPersegiPanjang;  }    //Menampilkan panjang, lebar dan luas untuk setiap objek persegi panjang  public static void printArrayPersegiPanjang(PersegiPanjang arrayPersegiPanjang []){   System.out.printf("%-20s%-15s%-10s\n", "Panjang", "Lebar", "Luas");      for(int i = 0; i < arrayPersegiPanjang.length; i++){    double luas = arrayPersegiPanjang [i].getPanjang() * arrayPersegiPanjang[i].getLebar();    System.out.printf("%-20f%-15f%-10f\n", arrayPersegiPanjang[i].getPanjang(),      arrayPersegiPanjang[i].getLebar(), luas);   }      System.out.println("***********************************************");      System.out.printf("%-20s%-10f\n", "Rata-rata luas persegi panjang yaitu ",        averageLuas(arrayPersegiPanjang));     }    //Menghitung rata-rata luas persegi panjang  public static double averageLuas(PersegiPanjang arrayPersegiPanjang[]){      double jumlahLuas = 0;   for (int i = 0; i < arrayPersegiPanjang.length; i++){    jumlahLuas += (arrayPersegiPanjang[i].getPanjang() *         arrayPersegiPanjang[i].getLebar());   }   return jumlahLuas/arrayPersegiPanjang.length;  }     } 

class TestPersegiPanjang
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22
package com.bahasaJava.arrayObjek;  import java.util.Scanner;  public class TestPersegiPanjang {        public static void main(String args []){      //Mendeklarasikan myArray   PersegiPanjang myArray[];      //Membuat myArray   myArray = PersegiPanjang.buatArrayPersegiPanjang();      //Menampilkan myArray dan rata-rata luas   PersegiPanjang.printArrayPersegiPanjang(myArray);     }  } 


Contoh output:
Berapa objek persegi panjang akan di buat? 3
***********************************************
Masukkan nilai panjang untuk Persegi Panjang ke 1: 42.67
Masukkan nilai lebar untuk Persegi Panjang ke 1: 32.54
----------------------------------------------------------
Masukkan nilai panjang untuk Persegi Panjang ke 2: 12.67
Masukkan nilai lebar untuk Persegi Panjang ke 2: 8.65
----------------------------------------------------------
Masukkan nilai panjang untuk Persegi Panjang ke 3: 34.66
Masukkan nilai lebar untuk Persegi Panjang ke 3: 19.76
----------------------------------------------------------
Panjang                Lebar              Luas     
42.670000           32.540000      1388.481800
12.670000           8.650000        109.595500
34.660000           19.760000      684.881600
***********************************************
Rata-rata luas persegi panjang yaitu 727.652967

Belum ada Komentar untuk "Belajar Java Menciptakan Array Dari Objek-Objek"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel