Sharing Knowledge is the Best


Rahasia Dibalik Cara Pembuatan Program Tebak Angka

Ketika masuk perdana sekolah di SMK NN, Jurusan Teknik Komputer dan jaringan, saya tunjukkan ke siswa sebuah program untuk menebak angka. Kegiatan ini saya lakukan untuk memotivasi siswa supaya tertarik dengan belajar  komputer. Seorang siswa saya tunjuk sebagai sukarelawan dan saya suruh memilih dalam hati sebuah angka antara 0 s/d 511. Selanjutnya saya jalankan sebuah program dan siswa tadi menjawab sederetan pertanyaan dalam bentuk Yes or No. Betapa kagetnya si siswa ketika komputer yang saya jalankan mampu menebak angka yang dipilih siswa tadi. Hal yang sama saya lakukan untuk beberapa siswa yang lain.

Kebanyakan siswa mengira bahwa komputer benar-benar mengetahui isi hati dan pikiran mereka, padahal sebetulnya tidak. Dalam hal ini algoritma dan logikalah yang berperan. Melalui serangkaian input dan proses serta perhitungan, komputer akan menghasilkan output berupa yang angka yang dipilih si siswa.

Banyak di antara siswa yang penasaran dengan logika dan algoritma yang saya gunakan untuk membuat program menebak angka tersebut. Dan… sekarang saatnya saya buka rahasianya.

OK.. untuk menyederhanakan permasalahan, saya akan persempit dulu scope bilangannya yaitu antara 0 s/d 7. Oya.. perlu diketahui bahwa permainan tebak angka ini hanya berlaku untuk bilangan antara 0 s/d 2^n-1, dengan n nya bilangan bulat positif. Lho kenapa harus seperti itu? Iya… karena n ini terkait dengan jumlah bit biner suatu bilangan. Misalkan kita pilih jumlah bit biner untuk permainan tebak angka ini adalah 3, maka dengan jumlah bit tersebut akan diperoleh bilangan-bilangan

0 = 000
1 = 001
2 = 010
3 = 011
4 = 100
5 = 101
6 = 110
7 = 111

Dengan demikian, apabila dipilih n = 3, maka permainan tebak angka ini hanya berlaku untuk bilangan 0 s/d 7 (8 bilangan) saja.

OK… setelah diketahui bilangan biner untuk masing-masing bilangan 0 s/d 7, selanjutnya mengelompokkan ke-delapan bilangan tersebut berdasarkan bit-bit yang bernilai 1. Misalkan untuk bilangan yang memiliki bit pertama bernilai 1 adalah 4, 5, 6, dan 7. Sedangkan untuk bit kedua bernilai 1 adalah 2, 3, 6, dan 7. Dan bit ketiga bernilai 1 adalah 1, 3, 5 dan 7.

Selanjutnya, untuk setiap kelompok tersebut ditampilkan bilangan-bilangannya dan diberikan pertanyaan kepada user. Berikut ini bentuk pertanyaannya (untuk kelompok bilangan dengan bit pertama bernilai 1):

Apakah bilangan yang Anda pilih ada diantara angka-angka berikut ini?

4 5 6 7

Ya atau Tidak?

Berikutnya pertanyaan untuk kelompok bit kedua yang bernilai 1.

Apakah bilangan yang Anda pilih ada diantara angka-angka berikut ini?

2 3 6 7

Ya atau Tidak?

Hal yang sama juga berlaku untuk pertanyaan pada kelompok bilangan dengan bit ketiga bernilai 1.

Lantas, bagaimana komputer bisa menebak angka yang dipilih oleh user? Caranya cukup mudah yaitu dengan merangkai nilai setiap bit yang diperoleh pada setiap pertanyaan. Sebagai contoh misalnya untuk pertanyaan pertama user menjawab ‘Ya’, maka bit pertama bernilai 1, pertanyaan kedua user menjawab ‘tidak’ (bit kedua bernilai 0) dan pertanyaan ketiga dijawab ‘Ya’ (bit ketiga bernilai 1), maka bilangan yang dipilih oleh user memiliki bit biner 101, dalam hal ini adalah bilangan 5.

Nah penjelasan di atas dapat digeneralisasi untuk n digit biner. Mau tahu source code program tebak angka versi Pascal? Silakan download source code di bawah ini

http://www.ziddu.com/download/2307535/TEBAK.zip.html

Tag Cloud

%d bloggers like this: