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.
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 :
class TestPersegiPanjang untuk mendemonstrasikan:
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:
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.
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
class TestPersegiPanjang
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
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