05 July 2013

BELAJAR JAVA 30 : Hitung Frequency

      Untuk tutorial kali ni kita akan buat satu program yang akan kira berapa kali dadu dapat nombor antara 1 sampai 6. Program kita nanti akan baling dadu sebanyak 1000 kali, kemudian dia akan kira nombor 1 dapat berapa kali, nombor 2 dapat berapa, bla bla bla... sampai nombor 6.

Ini source code untuk program yang dah siap:

import java.util.Random;
public class Home {
         public static void main(String[] args){                                                                                                                                                                                                                                     Random dadu =new Random();                                                                                            int[] freq = new int[7];                                                                                                                                                                                                                                                      for (int i = 0; i < freq.length; i++) {                                                                                                    ++ freq[1 + dadu.nextInt(6)];                                                                                    }
                  System.out.println("Nombor \t Frekuensi");                                                                                                                                                                                                                     for (int i = 0; i < freq.length; i++) {                                                                                                     System.out.println(i + "\t" + freq[i]);
                  }                                                                                                                          }}
Mula-mula kita tengok code yang ni:

Random dadu = new Random();
int[] freq = new int[7];


Program ni akan main dengan dadu, jadi kita akan guna class Random.

Lepas tu, kita buat array nama freq untuk simpan frekuensi untuk setiap nombor antara 1 sampai 6.

Ok, sekarang kenapa kita buat panjang array kita 7?

Ini sebab ingat tak yang komputer ni suka mula kira dengan 0. Kita nak guna dadu, mana ada dadu pakai nombor 0 kan...

Bila kita buat array panjangnya 7 bermaksud kita ada array dengan indeks 0 sampai 6, dan kita hanya akan guna indeks 1 sampai 6 sebab ya la kan... dadu.

Sekarang kita tengok bahagian yang paling penting:

for (int i = 0; i < 1000; i++) {
     ++freq[1 + dadu.nextInt(6)];
}
Kat sini kita guna for loop untuk program baling dadu sebanyak 1000 kali.

dadu.nextInt(6) akan menghasilkan nombor rawak dalam lingkungan 0 sampai 5, jadi kita tambah satu, 1 + dadu.nextInt(6) untuk dapat nombor 1 sampai 6 sebab ya la... dadu.

Nombor rawak ni kita akan letak sebagai indeks untuk array freq yang akan kita increment-kan.

Jadi, nanti bila run, bila dapat nombor 3, freq[3] akan tambah satu... bila dapat nombor 6, freq[6] akan tambah satu... dan seterusnya sampai 1000 kali.

Kat sini mungkin keliru sikit, takpe nanti bila run program tu baru kita boleh nampak.

Sekarang kita tengok yang ni:

System.out.println("Nombor\tFrekuensi");

for (int i = 1; i < freq.length; i++) {
     System.out.println(i + "\t" + freq[i]);
}
Code yang ni untuk kita buat table macam yang kita buat kat tutorial yang lepas.
Kepala table kita bubuh Nombor untuk nombor dadu, dan Frekuensi untuk berapa kali nombor tu kena.

Kita guna for loop macam sebelum ni untuk menghasilkan table.

Loop ni akan bermula dari 1 sebab ya la kan... dadu.

Jadi, bila kita run kemungkinan akan dapat:

NomborFrekuensi
1168
2161
3162
4169
5165
6175

Kat sini barulah jelas kita nampak dadu tu kena nombor 1 sebanyak 168 kali, nombor 2 kena 161 kali, dan seterusnya.

Jadi, itu saja untuk tutorial ni. Sekian.

Soalan?? Komen di bawah ataupun :