Array Multidimensi
Tujuan
- Mahasiswa mampu memahami konsep array multidimensi
- Mahasiswa mampu memberikan contoh penggunaan array multidimensi
- Mahasiswa mampu membuat program menggunakan konsep array multidimensi
Alat dan Bahan
- PC atau Laptop
- JDK
- NetBeans IDE
Uraian Teori
Array adalah sekumpulan tempat penyimpanan data yang bertipe sama dan memiliki index. Array dapat diibaratkan sebagai sekumpulan variabel yang bertipe sama dan bernama sama. Array biasanya digunakan untuk menyimpan deret angka. Kemudian untuk membedakan nilai/isi dari variabel tersebut, digunakan index. Ada dua tipe array:
- Array satu dimensi
- Array multi dimensi
Pada jobsheet praktikum ini hanya akan dibahas array satu dimensi saja. Array multi dimensi akan dibahas di jobsheet selanjutnya.
Array Satu Dimensi
Amati ilustrasi tentang variabel berikut ini.
Ilustrasi diatas adalah variabel bertipe integer yang bernama bilanganBulat dan berisi nilai 17. Satu buah variabel hanya dapat menyimpan satu buah nilai. Sekarang amati ilustrasi tentang array berikut ini:
Ilustrasi diatas adalah array bertipe integer bernama arrayInteger dan memiliki kapasitas 5 buah bilangan integer. Sebuah array dapat menyimpan lebih dari satu nilai (tergantung dari kapasitasnya). Meskipun begitu, nilai-nilai yang disimpan di sebuah array harus bertipe sama. Tiap elemen pada array dinomori dengan index array. Index array selalu dimulai dari 0 (nol).
Cara Mendeklarasikan Array
Secara umum, cara mendeklarasikan array adalah sebagai berikut:
tipe[] namaArray = new tipe[kapasitas];
- Tipe adalah tipe data dari array yang akan dibuat.
- namaArray adalah nama dari array yang akan dibuat.
- Kapasitas adalah banyaknya nilai yang dapat disimpan didalam array yang akan dibuat.
Untuk mengakses (mengisi/membaca) sebuah elemen dari array, kita hanya perlu menuliskan nama array tersebut, kemudian diikuti dengan index yang dituju didalam tanda kurung kotak [ ].
Contoh program berikut ini membuat array bernama bil, bertipe integer, jumlah elemen 4, kemudian mengisinya dengan beberapa nilai, kemudian menampilkan isi elemennya ke layar.
Ada beberapa alternatif cara untuk mendeklarasikan array.
Deklarasi array tanpa mengalokasikan jumlah elemennya:
int[] myArray;
Deklarasi array dengan mengalokasikan 10 elemen:
int[] myArray = new int[10];
Mengubah jumlah elemen array dengan 50:
myArray = new int[50];
Deklarasi array dan mengisinya secara langsung:
int[] myArray = {10, 20, 30, 40}; String[] myArray2 = {"Malang", "Surabaya"};
Mengetahui jumlah elemen array:
myArray.length;
Menggunakan Perulangan Pada Array Satu Dimensi
Untuk mengakses (mengisi/membaca) nilai dari sebuah array, kita dapat menggunakan perulangan.
HasilKita juga bisa menggunakan perulangan untuk menerima input dan menyimpannya kedalam array. Contoh, program yang meminta input sebanyak 5 bilangan kemudian menampilkan kembali 5 bilangan tersebut.
Input Jumlah Elemen Array
Kita juga dapat membuat program yang meminta input berapa banyak jumlah elemen array. Langkahnya secara umum adalah:
- Deklarasikan array tanpa mengalokasikan jumlah elemennya.
- Buat input yang menerima jumlah elemen array kemudian simpan di sebuah variabel.
- Set jumlah elemen array menggunakan variabel yang diinputkan tadi. Coba amati program berikut ini:
Langkah Praktikum
Ikuti langkah-langkah praktikum berikut ini.
Praktikum 1
- Buat class baru dengan nama
MyArray.java
Buat array bertipe integer dengan nama bil dengan kapasitas 4 elemen.
int[] bil = new int[4]
Isi masing-masing elemen array bil tadi dengan angka 5, 12, 7, 20.
bil[0]=5; bil[1]=12; bil[2]=7; bil[3]=20;
- Tampilkan ke layar semua isi elemennya:
System.out.println(bil[0]); System.out.println(bil[1]); System.out.println(bil[2]); System.out.println(bil[3]);
- Cocokkan dan amati hasilnya dengan gambar berikut ini:
Pertanyaan
- Dari percobaan 1 berapakah indeks array terbesar dan terkecil?
- Jika Isi masing-masing elemen array bil diubah dengan angka 5.0, 12867, 7.5, 2000000. Apa yang terjadi? Mengapa bisa demikian?
- Ubah statement pada langkah No 4 menjadi seperti berikut
Apa keluaran dari program? Mengapa bisa demikian?for(int i=0; i<4; i++){ System.out.println(bil[i]); }
Praktikum 2
- Buat file baru beri nama
ArrayInputLoop.java
Import dan deklarasikan Scanner untuk keperluan input.
Scanner sc = new Scanner(System.in)
Buat array bertipe integer dengan nama
nilaiUAS
, dengan kapasitas 6 elemen.int nilaiUAS[] = new int[6]
Menggunakan perulangan, buat input untuk mengisi elemen dari array
nilaiUAS
.for(int i=0; i<6; i++){ System.out.print("Masukan nilai UAS ke-"+i+": "); nilaiUAS[i]=sc.nextInt(); }
- Menggunakan perulangan, tampilkan semua isi elemen dari array
nilaiUAS
.for(int i=0; i<6; i++){ System.out.println("Nilai UAS ke-"+i+" adalah "+nilaiUAS[i]); }
- Cocokkan dan amati hasilnya dengan gambar berikut ini:
Pertanyaan
- Ubah statement pada langkah No 4 menjadi seperti berikut ini :
Jalankan program, Apakah terjadi perubahan? Mengapa demikian?for(int i=0; i<nilaiUAS.length; i++){ System.out.print("Masukan nilai UAS ke-"+i+": "); nilaiUAS[i]=sc.nextInt(); }
- Apa kegunaan dari
nilaiUAS.length
? - Ubah statement pada langkah No 5 menjadi seperti berikut ini, sehingga program hanya menampilkan nilai Mahasiswa
yang lulus saja :
Jalankan program dan Jelaskan alur program!for(int i=0; i<nilaiUAS.length; i++){ if(nilaiUAS[i] > 70){ System.out.println("Mahasiswa ke-"+i+" lulus"); } }
- Modifikasi program agar menampilkan semua mahasiswa, dan ditandai mana yang lulus dan tidak lulus.
Praktikum 3
Pada praktikum ini, akan dilakukan percobaan untuk menjumlahkan Array. Program akan menerima input sebanyak 10 nilai mahasiswa. Kemudian program akan menampilkan nilai rata-rata dari dari 10 Mahasiswa.
- Buat class baru beri nama
rataNilai
. Import dan deklarasikan
Scanner
untuk keperluan input.Scanner sc = new Scanner(System.in)
Buat array nilaiMHS bertipe integer dengan kapasitas 10. Kemudian deklarisakan variable total dan rata seperti gambar berikut ini
int[] nilaiMHS = new int[10]; int total = 0; double rata;
- Menggunakan perulangan, buat input untuk mengisi array
nilaiMHS
for(int i=0; i<nilaiMHS.length; i++){ System.out.print("Masukkan nilai mahasiswa ke-"+(i+1)+": "); nilaiMHS[i]=sc.nextInt(); }
- Menggunakan perulangan untuk menghitung jumlah keseluruhan nilai.
for(int i=0; i<nilaiMHS.length; i++){ total+=nilaiMHS[i]; }
- Kemudian hitung nilai rata-rata dengan cara nilai total dibagi jumlah elemen dari array
nilaiMHS
rata = total/nilaiMHS.length; System.out.println(rata);
- Amati hasilnya
Pertanyaan
- Pada praktikum 4 no 6. Mengapa perhitungan rata berada diluar perulangan?
- Modifikasi program pada praktikum 4 sehingga bisa mengeluarkan output seperti gambar berikut ini
Tugas
Kerjakan tugas sesuai dengan instruksi berikut ini.
- Buatlah program yang terdapat array dengan jumlah elemen 5, buatlah input untuk mengisi elemen array tersebut, kemudian tampilkan isi array tersebut dengan urutan terbalik. Seperti ilustrasi gambar dibawah ini.
- Buatlah program yang menerima input jumlah elemen array, inputkan isi arraynya, kemudian tampilkan mana yang genap dan mana yang ganjil. Contoh hasil program:
- Dengan menggunakan konsep Array, Buatlah program untuk menghitung Nilai IP Semester berdasarkan Matakuliah yang Anda Ambil semester ini. Program meminta pengguna untuk memasukkan jumlah matakuliah yang diambil pada semester ini, selanjutnya program tersebut meminta pengguna untuk memasukkan nama matakuliah, bobot SKS masing-masing matakuliah, dan Nilai dari masing-masing matakuliah. Contoh hasil program: Catatan : konversi nilai yang digunakan sesuai dengan peraturan polinema
- Buatlah program untuk menghapus elemen tertentu pada sebuah Array
(ArrayMax) Buatlah program yang menerima input jumlah elemen array, inputkan isi arraynya, kemudian tampilkan bilangan terbesar dari isi elemen arraynya. Contoh hasil program:
Masukkan isi array: 4 Masukkan array ke-0: 25 Masukkan array ke-1: 10 Masukkan array ke-2: 55 Masukkan array ke-0: 15 Bilangan terbesar: 55
Materi Pengayaan
Pencarian Pada Array
Salah satu hal yang sering dilakukan pada operasi array adalah pencarian atau searching. Pencarian dilakukan untuk menemukan nilai tertentu pada elemen didalam array. Ada banyak algoritma searching, namun yang paling mudah adalah Linear Search.
Misalkan pada sebuah array, kita ingin mencari dimana posisi index dari sebuah array. Pada Linear Search, kita membandingkan “key” atau angka yang ingin kita cari, dengan tiap elemen yang ada didalam array. Amati gambar berikut:
Pada gambar diatas, key atau angka yang ingin kita cari adalah 3. Menggunakan looping kita bandingkan masing-masing elemen dari array. Dan ternyata angka 3 berada di index ke 5. Maka setelah ketemu, looping akan berhenti, dan hasil akhir dari program adalah 5 (index dimana angka 3 berada). Amati contoh program berikut:Sorting
Sorting adalah proses mengurutkan elemen array dari yang terkecil ke besar (ascending) atau sebaliknya (descending). Ada banyak algoritma untuk pengurutan, namun yang paling mudah adalah Bubble Sort.
Didalam Bubble Sort, dilakukan looping dari elemen pertama sampai elemen terakhir dari array. Kemudian tiap elemen dibandingkan dengan elemen berikutnya. Jika elemen tersebut lebih besar dari elemen berikutnya, maka akan ditukar. Amati ilustrasi berikut ini:
Berikut adalah contoh program Bubble Sort:Tugas Pengayaan
Kerjakan tugas sesuai dengan instruksi berikut ini.
- Buatlah program yang menerima input jumlah array, isi array, key yang ingin dicari. Cetak ke layar index posisi
elemen dari key yang ingin dicari. Contoh hasil program:
Masukkan jumlah elemen array: 4 Array ke 0: 5 Array ke 1: 12 Array ke 2: 25 Array ke 3: 10 Masukkan key yang ingin dicari: 12 Key ada di posisi index ke: 1
- Buatlah program yang menerima input jumlah array, isi array, kemudian urutkan array tersebut, kemudian tampilkan ke
layar hasil pengurutannya. Contoh hasil program:
Masukkan jumlah elemen array: 4 Array ke 0: 5 Array ke 1: 12 Array ke 2: