You are on page 1of 18

Misalkan anda diminta membuat program untuk menyimpan dan mengolah data nilai ujian

mahasiswa dari suatu kelas yang terdiri dari 30 peserta.

Masalah pertama yang muncul di benak anda adalah bagaimana cara menyimpan nilai dari 30
orang tersebut.

Sebelumnya kita sudah belajar bahwa sebuah variabel dapat digunakan untuk menyimpan
sebuah nilai/data.

Karena ada 30 orang, maka kita dapat membuat 30 variabel double untuk menyimpan nilai
setiap peserta.

double nilai_1, nilai_2, nilai_3, nilai_4, nilai_5, nilai_6,


nilai_7, nilai_8, nilai_9, nilai_10, nilai_11, nilai_12, nilai_13,
nilai_14, nilai_15, nilai_16, nilai_17, nilai_18, nilai_19,
nilai_20, nilai_21, nilai_22, nilai_23, nilai_24, nilai_25,
nilai_26, nilai_27, nilai_28, nilai_29, nilai_30;
Phuihh…… Sungguh melelahkan mengetik hal yang sama berulang-ulang.

Dan penderitaan belum berakhir….


Coba bayangkan saat menulis kode untuk meminta input ke 30 variabel ini,
kemudian mencari rata-rata semua nilai, mencari nilai maksimum, minimum, dan berbagai
operasi lainnya. Dengan cara seperti ini panjang kode program bisa dengan mudah mencapai
ribuan baris.

System.out.print ("Nilai 1: ");


nilai_1 = in.nextInt();
System.out.print ("Nilai 2: ");
nilai_2 = in.nextInt();
System.out.print ("Nilai 3: ");
nilai_3 = in.nextInt();
System.out.print ("Nilai 4: ");
nilai_4 = in.nextInt();
System.out.print ("Nilai 5: ");
nilai_5 = in.nextInt();
...
Masalah yang kita hadapi sebelumnya dapat dengan mudah
diselesaikan dengan menggunakan struktur data Array.

Misalnya untuk menyimpan nilai 30 orang mahasiswa, kita


hanya perlu satu kali mendeklarasikan array yang dapat
menampung 30 elemen berbeda :

double[] nilai;
nilai = new double[30];

Setelah itu, kalau mau mengakses elemen pertama kita


tinggal menulis:

nilai[0]

Dan untuk elemen ke-2, 3, 4, dst:

nilai[1], nilai[2], nilai[3], …


Setiap elemen pada array dapat diakses menggunakan indeks: 0, 1, 2, dst.

Hal ini sangat memudahkan pada saat memproses seluruh elemen satu per satu.
Misalnya saat menerima input, mencari rata-rata nilai, atau output ke layar.

double[] nilai = new double[30];


double jumlah, rata_rata; int i;
Scanner in = new Scanner(System.in);

for (i=0; i<30; i++) {


System.out.print ("Nilai " + (i+1) + " : ");
nilai[i] = in.nextInt(); // minta input nilai
}

jumlah = 0;
for (i=0; i<30; i++) { // Hitung jumlah dari semua nilai
jumlah += nilai[i];
}

rata_rata = jumlah / 30; // Hitung rata-ratanya


System.out.println ("Rata-rata Nilai = " + rata_rata);
Contoh operasi pada elemen array dan perubahaan nilai[0]
keaadan array tersebut di memory :
nilai[1]
15
nilai[2]
nilai[4] = 10 1
nilai[3]
nilai[3] = 5 5
nilai[4]
nilai[7] = 2 10
nilai[5]
nilai[2] = 1 1
nilai[6]
nilai[5] = nilai[2] 35
nilai[7]
nilai[1] = nilai[3] + nilai[4] 2
Nilai[6] = 5*nilai[3] + 10 Keadaan array di memory
Pada saat dideklarasikan, suatu array dapat diisi (diinisialisasi) dengan suatu nilai awal
dengan cara seperti berikut ini:

int[] Data = { 10, 20, 30, 40, 50 };

Artinya sama dengan:

Data[0] = 10;
Data[1] = 20;
Data[2] = 30;
Data[3] = 40;
Data[4] = 50;

Contoh Lain:

untuk menyimpan jumlah hari dari setiap bulan (januari, februari, dst)
byte[] Bulan = { 31,28,31,30,31,30,31,31,30,31,30,31 };

untuk menyimpan huruf vokal


char[] Vokal = { 'a', 'e' ,'i', 'o', 'u' };
Contoh 1:

Kita akan membuat sebuah program untuk mencatat kehadiran siswa dalam suatu kelas.
Program akan meminta input nomor absen siswa-siswa yang hadir dan menyimpan data
kehadiran tersebut dalam sebuah Array.

Setelah itu program akan menampilkan nomor absen siswa yang hadir dan juga yang tidak
hadir secara berurutan.

Absensi Kelas Hogwarts 2007/2008


Banyaknya Siswa : 5

Silahkan masukkan nomor absen siswa yang hadir (akhiri dengan 0)


Nomor Absen : 5
Nomor Absen : 3
Nomor Absen : 2
Nomor Absen : 0

Daftar siswa yang hadir : 2 3 5


Daftar siswa yang absen : 1 4
Contoh 1:

IDE:
Gunakan sebuah array of boolean (false berarti absen, true berarti hadir) dan
indeks dari array tersebut menyatakan nomor absen siswa.

Jika siswa bernomor 2, 3, dan 5 hadir maka keadaan arraynya menjadi :

0 false
1 false
2 true
3 true
4 false
5 true
Contoh 1:
public static void main (String args[]) {
boolean[] Absensi;
int N, i;
Scanner in = new Scanner(System.in);

System.out.println ("Absensi Kelas Hogwarts 2007/2008");


System.out.print ("Banyaknya Siswa : ");
N = in.nextInt();

Absensi = new boolean[N+1];


for (i=1; i<=N; i++) // Inisialisasi Awal
Absensi[i] = false;

System.out.println ("Masukkan nomor siswa hadir (akhiri dengan 0)");

do {
System.out.print ("Nomor Absen : ");
i = in.nextInt();
if (i>=1 && i<=N)
Absensi[i] = true;
} while (i != 0);
Contoh 1:

System.out.println ("Daftar siswa yang hadir : ");


for (i=1; i<=N; i++)
if (Absensi[i] == true) System.out.println (i + " ");

System.out.print ("\nDaftar siswa yang absen : ");


for (i=1; i<=N; i++)
if (Absensi[i] == false) System.out.println (i + " ");

}
Contoh 2:

Buatlah program untuk melakukan polling pendapat dari beberapa orang dan melaporkan
hasil dari polling tersebut.
Berapakah uang saku anda per-minggu :
1.Rp.0
2.Rp.50.000
3.Rp.100.000
4.Rp.200.000
5.>= Rp.500.000

Pilihan Anda (0 untuk keluar) ? 5


Pilihan Anda (0 untuk keluar) ? 3
Pilihan Anda (0 untuk keluar) ? 3
Pilihan Anda (0 untuk keluar) ? 1
Pilihan Anda (0 untuk keluar) ? 0

Hasil Polling:
1 orang memilih pilihan 1
2 orang memilih pilihan 3
1 orang memilih pilihan 5
Contoh 2:

IDE: Gunakan array of int sebagai counter untuk menghitung frekuensi dari setiap pilihan.

Misalnya untuk keadaan array di bawah ini berarti pilihan nomor 1 telah dipilih sebanyak 10
kali, nomor 3 sebanyak 20 kali, dan nomor 5 dipilih 5 kali. Tidak ada orang yang memilih
nomor 2 dan 4.

0 0
1 10
2 0
3 20
4 0
5 5
Contoh 2:
public static void main (String args[]) {

int[] Poll = new int[10]; int N, i;


Scanner in = new Scanner(System.in);

N = 5; // Jumlah Pilihan
for (i=1; i<=N; i++) // Inisialisasi Awal
Poll[i] = 0;

System.out.println ("Berapakah uang saku anda per-minggu :");


System.out.println ("1. Rp.0");
System.out.println ("2. Rp.50.000");
System.out.println ("3. Rp.100.000");
System.out.println ("4. Rp.200.000");
System.out.println ("5. >= Rp.500.000");

do {
System.out.println ("Pilihan Anda (0 untuk keluar) ? ");
i = in.nextInt();
if (i>=1 && i<=N) Poll[i]++;
} while (i != 0);
Contoh 2:

System.out.println ("Hasil Polling : ");

for (i=1; i<=N; i++)


if (Poll[i] > 0)
System.out.println (Poll[i] + " orang memilih pilihan " + i);
}
Contoh 3:

mencari kemunculan suatu bilangan dalam suatu array of int.


Jika ditemukan, akan menampilkan indeks dari bilangan yang dicari, jika tidak ditemukan,
akan menampilkan tidak ditemukan.

// Data[] adalah array


// bil adalah bilangan yang akan dicari

int i;

i = 0;
while (i<Data.length && Data[i]!=bil) {
i++;
}

if (i<Data.length) System.out.println(“Data ditemukan pada index “+i);


else System.out.println(“Data tidak ditemukan.”);
Contoh 5:

Buatlah sebuah fungsi untuk mengkonversi bilangan desimal (basis 10) ke bilangan biner
(basis 2) dan kemudian menampilkan bilangan biner tersebut.

Cara konversi basis 10 ke basis 2 :

1210 = ?2

12 % 2 = 0
12 / 2 =6
6%2 = 0
6/2 =3
3%2 = 1
3/2 =1
1%2 = 1

Baca hasil modulo dari bawah ke atas, jadi :

1210 = 11002

You might also like