0
Membuat permainan dengan Tubo pascal
Posted by jujur
on
12:20 AM
Membuat 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... J. 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,c :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:
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:
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:
randomize;
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 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:
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
|
Tujuan kitaselanjutnya adalah membuat nilai d itu berubah-ubah sesuai dengan jumlahperkalian yang telah kita selesaikan dengan benar. Untuk itu kita cukupmenambahkan d:=d+1 setelah read(c), sehingga sintaks program kita sekarangmenjadi 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 jumlahperkalian yang kita selesaikan. Agar lebih menarik, untuk menampilkan dakan kita tambahkan kalimat disebelumnya, sehingga pada tampilannya nanti akanmuncul “Banyaknya perkalian yang terselesaikan = d”, sehingga sintaksnya
menjadi seperti berikut:
readln
end.
|