19 Agustus 2011

Membuat game atau permainan perkalian dengan bahasa pemrograman turbo pascal

Sahabat sekarang akan memberikan informasi sederhana yang mungkin teman-teman sudah banyak yang tahu atau mungkin juga ada yang belum tahu, yaitu membuat game/permainan perkalian sederhana dengan bahasa pemrograman Turbo Pascal. Terilhami dari pengalaman sahabat yang mempunyai adik yang masih duduk di bangku Sekolah Dasar, karena belum begitu lancar menghafalkan perkalian bilangan 1 angka, maka untuk melatihnya sahabat membuatkan game perkalian 1 angka sehingga kita tidak perlu lagi untuk memberikan dia soal karena sudah digantikan oleh aplikasi sederhana hasil Turbo Pascal.

Kalau bisa dibuat untuk perkalian 1 angka, tentu juga bisa dibuat untuk perkalian 2 angka. Agar lebih paham silakan terlebih dahulu donwload program aplikasi game/permainan perkaliannya di sini sebagai salah satu contohnya.

Sebelumnya sahabat ucapkan terima kasih kepada teman semua, karena telah bersedia meluangkan waktu dan pikirannya untuk membaca pembahasan berikut ini.

Baiklah kita mulai pembahasannya... :-) Sekarang kita akan membuat program pascal permainan perkalian 1 angka

Logika program yang akan kita buat kira-kira sebagai berikut: saat program dijalankan maka program akan menampilkan 2 bilangan bulat secara acak, dan kita sebagai user (pengguna program) akan diminta untuk mengetikkan hasil perkalian dari 2 bilangan tersebut, jika hasil perkalian yang kita ketikkan benar, maka program akan menampilkan kembali 2 bilangan bulat secara acak yang akan kita kalikan kembali dan kita kembali mengetikkan hasil perkalian dari 2 bilangan tersebut, dan jika benar lagi maka akan tampil lagi 2 bilangan bulat lain secara acak dan begitu seterusnya.

Dalam turbo pascal, kita menggunakan semacam syarat untuk menampilkan bilangan bulat secara acak, yaitu menggunakan prosedur randomize, sintaks untuk menampilkan bilangan bulat secara acak adalah sebagai berikut:
begin
randomize;
write(random(10));
readln
end.


Jika program tersebut dijalankan maka contoh hasilnya adalah sebagai berikut:
4

Yaitu tampil salah satu bilangan bulat dari 10 bilangan, salah satu bilangan bulat antara 0 sampai dengan 9, bilangan 10 tidak termasuk, karena arti random(10) adalah menampilkan satu bilangan secara acak antara 10 bilangan, tentu pilihan bilangannya adalah antara 0 sampai dengan 9, karena 0 sampai dengan 9 adalah 10 bilangan, pada contoh ini saat dicoba dijalankan muncul bilangan 4, dan kalau kita ingin menampilkan satu bilangan bulat secara acak antara 0 sampai dengan 10, maka cukup mengganti perintah random(10) dengan random(11), karena random(11) berarti menampilkan satu bilangan dari 11 bilangan, karena 0 sampai dengan 10 semuanya adalah 11 bilangan.

Sintaks di atas adalah untuk menampilkan satu bilangan bulat acak, dengan tujuan sama (sama-sama menampilkan satu bilangan bulat acak), sintaks di atas bisa kita ganti dengan sintaks sebagai berikut:
var a:integer;
begin
randomize;
a:=random(10);
write(a);
readln
end.


Jika program dengan sintaks seperti ini dijalankan, maka salah satu contoh hasilnya adalah sebagai berikut:
7

Hasil dari sintaks ini sama dengan sintaks sebelumnya, bedanya adalah sintaks ini menggunakan variabel yaitu a dan sintaks sebelumnya tidak menggunalan variabel.

Karena kita membutuhkan 2 bilangan bulat acak untuk dikalikan, tentu kita harus membuat pendeklarasian 2 variabel sebagai bilangan bulat acak, kita gunakan saja variabel a dan b, sehingga sintaksnya menjadi seperti berikut:
var a,b:integer;
begin
randomize;
a:=random(10);
b:=random(10);
write(a,' dan ',b);
readln
end.


Jika program dengan sintaks seperti ini dijalankan, maka salah satu contoh hasilnya adalah sebagai berikut:
6 dan 9

Kita akan ubah tampilannya supaya berbentuk seperti ini:
6 * 9 =

Kita cukup mengubah sedikit sintaksnya sehingga sintaksnya menjadi seperti berikut:
var a,b:integer;
begin
randomize;
a:=random(10);
b:=random(10);
write(a,' * ',b,' = ');
readln
end.


Selanjutnya kita akan membuat pendeklarasian untuk jawaban perkalian yang akan kita ketikkan. Untuk membuatnya kita membutuhkan sebuah variabel baru, kita beri nama saja variabel itu dengan c. c adalah nilai yang akan kita ketikkan saat program dijalankan sehingga sintaks program kita sekarang menjadi seperti berikut:
var a,b:integer;
begin
randomize;
a:=random(10);
b:=random(10);
write(a,' * ',b,' = '); read(c);
readln
end.


Jika program ini kita jalankan, maka akan muncul hasilnya seperti berikut:
6 * 9 =

Saat kita menjalankannya, program tidak akan kembali ke lembaran kerja sebelum kita mengetikkan suatu karakter, silakan coba, itulah kegunaan readln(c), yang meminta pengguna untuk mengetikkan suatu karakter (di sini suatu bilangan) yang mana karakter/bilangan yang kita ketikkan tersebut dideklarasikan sebagai c.

c merupakan hasil dari perkalian a dengan b, kita ingin jika nilai c yang kita ketikkan itu sama dengan nilai dari hasil kali a dengan b, maka akan muncul a dan b lainnya secara acak yang akan kita kalikan lagi, untuk itu kita butuh suatu proses perulangan. Kita akan menggunakan perulangan repeat ... until, yang berarti ulangi suatu bagian sampai suatu kondisi tertentu terpenuhi.

Di dalam program ini, kita akan mengulangi pemunculan bilangan a dan b secara acak sampai nilai c yang kita ketikkan berbeda dengan hasil kali a dengan b, dengan kata lain, jika nilai c yang kita ketikkan sudah tidak sama (berbeda) dengan hasil kali dari a dengan b, maka tidak akan diulang lagi untuk memunculkan bilangan a dan b secara acak, perhatikan penempatan repeat ... until pada sintaksnya:
var a,b,c:integer;
begin
randomize;
repeat
a:=random(10);
b:=random(10);
write(a,' * ',b,' = '); read(c);
until c<>a*b;
readln
end.


Simbol < > (kecil besar) adalah simbol untuk menyatakan ketidaksamaan, jadi c<>a*b artinya c tidak sama dengan a*b.

Sampai di sini saja sebenarnya sudah jadi suatu permainan/game perkalian sederhana, saat kita mengetikkan nilai c yang sama dengan hasil perkalian a dengan b, maka akan muncul lagi nilai a dan b yang baru secara acak untuk dikalikan lagi dan begitu seterusnya sampai nilai c yang kita ketikkan berbeda dengan hasil kali dari a dengan b, dengan kata lain sampai nilai c yang kita ketikkan salah, silakan coba!

Jika program ini kita jalankan, maka contoh hasilnya adalah sebagai berikut:
6 * 9 = 54
5 * 3 = 15
2 * 2 = 4
4 * 0 = 0
8 * 5 = 40
3 * 1 = 3

Selanjutnya kita sekarang akan membuat program sedikit lebih menarik, katakanlah sedikit menghias program, misalnya pada bagian atas program kita tambahkan dengan judul “PROGRAM PASCAL PERMAINAN PERKALIAN”, sehingga sintaksnya menjadi sebagai berikut:
var a,b,c:integer;
begin
writeln('PROGRAM PASCAL PERMAINAN PERKALIAN');
randomize;
repeat
a:=random(10);
b:=random(10);
write(a,' * ',b,' = '); read(c);
until c<>a*b;
readln
end.


Selanjutnya agar lebih menarik kita akan membuat layar bersih kembali setiap kita mulai lagi menjalankan program, cukup menambahkan uses crt dan clrscr, perhatikan penempatanya sintaks berikut:
uses crt;
var a,b,c:integer;
begin
clrscr;
writeln('PROGRAM PASCAL PERMAINAN PERKALIAN');
randomize;
repeat
a:=random(10);
b:=random(10);
write(a,' * ',b,' = '); read(c);
until c<>a*b;
readln
end.


Sekarang coba jalankan program, maka setiap kita akan memulai untuk menjalankan program, maka layar akan kembali bersih.

Pada saat ini, saat program dijalankan, setelah kita mengetikkan bilangan c yang merupakan hasil kali bilangan a dengan b, maka bilangan a dan i>b selanjutnya muncul pada baris selanjutnya, sekarang untuk memperindah tampilan, kita akan buat bilangan bulat acak a dan b itu selalu muncul di baris itu saja.

Sekarang pada baris pertama ada judul program, dan baris kedua ada space, kita akan meletakkan bilangan bulat acak a dan b itu selalu pada baris ketiga dan dan kolom pertama, baris merupakan koordinat y, dan kolom merupakan koordinat x, sehingga di sini kita menggunakan semacam prosedur gotoxy(m,n) yang diiringi dengan fungsi clreol, m merupakan angka untuk koordinat x(kolom) dan n merupakan angka untuk koordinat y(baris). Karena kita ingin meletakkan bilangan bulat acak a dan b pada baris ketiga dan kolom pertama maka kita akan pakai perintah gotoxy(1,3), sehingga sintaksnya menjadi sebagai berikut:
uses crt;
var a,b,c:integer;
begin
clrscr;
writeln('PROGRAM PASCAL PERMAINAN PERKALIAN');
randomize;
repeat
a:=random(10);
b:=random(10);
gotoxy(1,3); clreol;
write(a,' * ',b,' = '); read(c);
until c<>a*b;
readln
end.


Sekarang jika program dijalankan, bilangan bulat acak a dan b selalu muncul pada baris ketiga dan dimulai pada kolom pertama, sehingga tampilan program menjadi sedikit lebih menarik.

Selanjutnya kita akan membuat suatu perhitungan dari jumlah perkalian yang dapat diselesaikan dengan benar yang dapat kita anggap sebagai suatu nilai. Maksudnya begini, kita akan menampilkan suatu bilangan, yang mana bilangan tersebut selalu berubah-ubah sesuai dengan jumlah perkalian yang dapat diselesaikan dengan benar. Untuk menampilkan bilangan ini kita akan menggunakan suatu variabel baru, kita gunakan saja variabel d, mula-mula kita akan mendefinisikan bahwa nilai d = 0, karena mula-mula tentu belum ada perkalian yang diselesaikan, untuk lebih menarik, kita tampilkan saja d pada baris kelima, sehingga sintaks kita sekarang menjadi seperti berikut:
uses crt;
var a,b,c,d:integer;
begin
clrscr;
writeln('PROGRAM PASCAL PERMAINAN PERKALIAN');
d:=0;
randomize;
repeat
gotoxy(1,5); clreol; write(d);
a:=random(10);
b:=random(10);
gotoxy(1,3); clreol;
write(a,' * ',b,' = '); read(c);
until c<>a*b;
readln
end.


Sekarang coba jalankan program, akan tampak pada baris kelima bilangan nol yang merupakan nilai dari d.

Tujuan kita selanjutnya adalah membuat nilai d itu berubah-ubah sesuai dengan jumlah perkalian yang telah kita selesaikan dengan benar. Untuk itu kita cukup menambahkan d:=d+1 setelah read(c), sehingga sintaks program kita sekarang menjadi seperti berikut ini:
uses crt;
var a,b,c,d:integer;
begin
clrscr;
writeln('PROGRAM PASCAL PERMAINAN PERKALIAN');
d:=0;
randomize;
repeat
gotoxy(1,5); clreol; write(d);
a:=random(10);
b:=random(10);
gotoxy(1,3); clreol;
write(a,' * ',b,' = '); read(c);
d:=d+1;
until c<>a*b;
readln
end.


Sekarang coba jalankan program, maka bilangan d akan berubah-ubah sesuai dengan jumlah perkalian yang kita selesaikan. Agar lebih menarik, untuk menampilkan d akan kita tambahkan kalimat disebelumnya, sehingga pada tampilannya nanti akan muncul “Banyaknya perkalian yang terselesaikan = d”, sehingga sintaksnya menjadi seperti berikut:
uses crt;
var a,b,c,d:integer;
begin
clrscr;
writeln('PROGRAM PASCAL PERMAINAN PERKALIAN');
d:=0;
randomize;
repeat
gotoxy(1,5); clreol; write('Banyak perkalian yang terselesaikan = ',d);
a:=random(10);
b:=random(10);
gotoxy(1,3); clreol;
write(a,' * ',b,' = '); read(c);
until c<>a*b;
readln
end.


Sekarang kita sudah bisa membuat permainan perkalian 1 angka, ingin perkalian 2 angka cukup mengganti random(10) dengan random(100) untuk a dan b. Dan juga kalau sudah bisa buat permainan perkalian, tentu bisa membuat permainan matematika untuk pembagian, penjumlahan dan pengurangan, atau mungkin kombinasi di antara semuanya.

Mudah-mudahan tulisan sederhana ini dapat membantu teman semua untuk lebih mengenal bahasa pemrograman Turbo Pascal, permainan perkalian 2 angka ini juga bisa lho untuk asah otak buat kita semua. Bagi teman yang ingin mendownload file microsoft word (file .doc) dari postingan ini silakan download di sini

ingin dapat update dari artikel menarik turbo pascal lainnya? silakan Join Group facebook sahabat-informasi.com dan Like Fanpage sahabat informasi dengan dengan account facebook kamu,

Oke teman, sahabat pamit dulu ya, sahabat tutup dengan do’a selamat, Assalamu ‘alaikum Warahmatullahi Wabarakatuh.

Baca juga:

0 komentar: