Monday, 11 January 2016

program pascal

Pemrograman Pascal

BAB I
PENDAHULUAN
Pascal adalah bahasa tingkat tinggi (high level language) yang orientasinya pada segala tujuan, dirancang oleh Profesor Niklaus Wirth dari Technical University of Zurich, Switzerland. Nama Pascal diambil sebagai penghargaan terhadap Blaise Pascal, ahli matematik dan filosofer terkenal abad 17 dari Perancis.


Profesor Niklaus Wirth memperkenalkan kompiler bahasa Pascal pertama kali untuk komputer CDC 6000 (Control Data Corporation) yang dipublikasikan pada tahun 1971 dengan tujuan membantu mengajar program komputer secara sistematis, khususnya untuk memperkenalkan pemrograman terstruktur.

Dalam waktu singkat, Pascal telah menjadi bahasa yang populer di kalangan pelajar universitas dan merupakan bahasa yang diajarkan di beberapa perguruan tinggi. Beberapa profesional komputer juga mulai beralih ke bahasa Pascal.

Standar Pascal adalah bahasa Pascal yang didefinisikan oleh K.Jensen dan Niklaus Wirth. Penerapan nyata dari standar Pascal banyak yang berbeda dengan seperti apa yang telah didefinisikan oleh K. Jensen dan Niklaus Wirth. Standar Pascal di Eropa didefinisiakn oelh ISO (International Standards Organization) dan di Amerika oleh kerjasama antara ANSI (American National Standar Institute) dengan IEEE (Intitute of Electrical and Electronic Engineer).

Beberapa versi dari Pascal yang telah beredar di pasaran, di antaranya UCSD pascal (University of California at San Diego Pascal), MS-Pascal (Microsoft Pascal), Apple Pascal, Turbo Pascal dan lain sebagainya. Sampai saat ini untuk komputer-komputer mikro dan personal, Turbo Pascal merupakan versi bahasa Pascal yang paling populer dan banyak digunakan. Kompiler Turbo Pascal banyak digemari, karena terutama bersifat interaktif, seperti interpreter saja layaknya. 

Selain itu Turbo Pascal mengikuti definisi dari standar Pascal seperti yang didefinisikan oleh K. Jensen dan Niklaus Wirth di Pascal User Manual dan Report. Turbo PASCAL adalah copyright dari Borland Inc. dan dapat digunakan pada sistem operasi PC-DOS, MS-DOS, CPM-86 dan CP/M-80.

prosedur dan fungsi menarik yang bisa anda coba dan terapkan dalam pemograman Pascal, yaitu:
1.  Fungsi-fungsi String
2.  Fungsi-fungsi Date
3.  Fungsi-fungsi Konversi
4.  Program Permainan

BAB II
FUNGSI-FUNGSI STRING
Berikut ini adalah fungsi-fungsi untuk memanipulasi data String. Jalankan aplikasi Pascal anda, ketikkan kode berikut:
a. Lower Case 
Fungsi   ini   akan   mengubah   string   yang   diinputkan   menjadi   Lower   Case   (huruf   kecil).
Ketikkan fungsi berikut ini:
b. Upper Case 
Fungsi   ini   akan   mengubah   string   yang   diinputkan   menjadi   Upper   Case   (huruf   besar).
Ketikkan fungsi berikut ini:
c.  Proper Case 
Fungsi   ini   akan   mengubah   string   yang   diinputkan   menjadi   Proper   Case   (huruf besar untuk huruf awal setiap kata).
Ketikkan fungsi berikut ini:
Untuk mencoba fungsi-fungsi di atas, ketikkan program utama sebagai berikut:
Lihatlah tampilan pada layar monitor Anda!
Baris pertama, tiap kata ditulis dengan huruf kecil, baris ke-2 tiap kata ditulis dengan huruf besar, dan baris ke-3, tiap kata hanya huruf awal saja yang ditulis dengan huruf besar.
BAB III
FUNGSI-FUNGSI DATE
Berikut   ini   adalah   fungsi-fungsi   untuk   memanfaat   sistem date   dari   unit   Dos,   untuk menampilkan   tanggal   atau   hari   sesuai   data  pada   sistem   komputer.   Jalankan   aplikasi Pascal anda, ketikkan kode berikut:
a. Menampilkan Tanggal Sistem 
Fungsi ini akan menampilkan tanggal dari sistem komputer Anda.
b. Menampilkan Nama Hari 
Fungsi ini akan menampilkan tanggal dari sistem komputer Anda.
Untuk mencoba fungsi-fungsi di atas, ketikkan program utama sebagai berikut:
Lihatlah tampilan pada layar monitor Anda! 
BAB IV
FUNGSI-FUNGSI KONVERSI
Berikut ini adalah fungsi-fungsi untuk mengkonversi suatu nilai ke nilai lain. Jalankan aplikasi Pascal Anda, ketikkan kode berikut:
a. Konversi Desimal ke Angka Romawi 
Fungsi ini akan mengkonversi suatu nilai bilangan (decimal) ke angka Romawi. Contoh: 1234 menjadi: MCCXXXIV.
b. Konversi Desimal ke Binear 
Fungsi ini akan mengkonversi suatu nilai bilangan (decimal) ke basis Binear. Contoh: 123 menjadi: 1111011.
c.  Konversi Desimal ke Hexadecimal 
Fungsi   ini   akan   mengkonversi   suatu   nilai   bilangan   (decimal)   ke   basis   Hexadecimal.
Contoh: 123 menjadi: 7B.
d. Konversi Desimal ke Nominal 
Fungsi ini akan mengkonversi suatu nilai bilangan (decimal) ke huruf nominal. Contoh: 123 menjadi: Seratus duapuluh tiga.
Untuk mencoba fungsi-fungsi di atas, ketikkan program utama sebagai berikut:
Tampilan akhir program seperti di bawah ini:
BAB V
PROGRAM PERMAINAN
Berikut ini adalah contoh pembuatan sebuah program permainan, sulap angka. Program ini akan menebak sebuah angka yang dipilih oleh seorang pemain, setelah menempuh beberapa wizard. Jalankan Pascal dan ketikkan kode ini:

PROGRAM SULAPANGKA;
USES CRT;
VAR I, J, K, L: INTEGER;
YT: CHAR;
NILAI:INTEGER;

FUNCTION CSTR(I: INTEGER): STRING;
VAR
S: STRING[11];
BEGIN
STR(I, S);
CSTR := S;
END;

PROCEDURE TULIS(POSISI:INTEGER; TEKS:STRING);
VAR A, B, C: INTEGER;
BEGIN
A := POSISI;
B := POSISI MOD 10;
C := 1;
IF B = 0 THEN
BEGIN B := 10;C := 0; END;
GOTOXY(B * 8 – 5,
(A DIV 10 + C) * 3 + 1);
WRITE(TEKS);
END;
(* Untuk symbol-symbol seperti : ÉÍÍ,
dapat Anda ganti dengan symbol: # atau lainnya *)
PROCEDURE BIKIN_KOTAK(KOLOM, BARIS: INTEGER);
BEGIN
CLRSCR;
FOR I:= 1 TO KOLOM DO
BEGIN
FOR J := 1 TO BARIS DO
BEGIN
GOTOXY (J * 8 – 7, (I * 3));
WRITE(‘ÉÍÍÍÍ»’);
GOTOXY (J * 8 – 7, (I * 3 + 1));
WRITE(‘º      º’);
GOTOXY (J * 8 – 7, (I * 3 + 2));
WRITE(‘ÈÍÍÍͼ’);
END;
END;
END;

PROCEDURE WIZARD7;
BEGIN
CLRSCR;
WRITELN(‘ANGKA YANG ANDA PILIH = ‘, NILAI);
WRITELN;
WRITE(‘INGIN MENGULANG (Y/ESC.)? ‘);READKEY;
YT := READKEY;
END;

PROCEDURE WIZARD6;
BEGIN
BIKIN_KOTAK(2, 10);
FOR I := 1 TO 19 DO
TULIS(I, CSTR(I + 31));
GOTOXY (5, 15);
WRITE(‘APAKAH ANGKA YANG ANDA PILIH’,
‘ ADA PADA DERETAN ANGKA DI ATAS (Y/T) ‘);
REPEAT
YT := READKEY;
UNTIL YT IN ['y', 'Y', 't', 'T', #27];
IF UPCASE(YT) = ‘Y’ THEN
NILAI := NILAI + 32;
WIZARD7;
{===============================}
END;
PROCEDURE WIZARD5;
BEGIN
BIKIN_KOTAK(2, 10);
FOR I := 1 TO 16 DO
TULIS(I, CSTR(I + 15));
FOR J := 17 TO 19 DO
TULIS (J, CSTR(J + 31));
GOTOXY (5, 15);
WRITE(‘APAKAH ANGKA YANG ANDA PILIH’,
‘ ADA PADA DERETAN ANGKA DI ATAS (Y/T) ‘);
REPEAT
YT := READKEY;
UNTIL YT IN ['y', 'Y', 't', 'T', #27];
{===============================}
IF UPCASE(YT) = ‘Y’ THEN
NILAI := NILAI +  16;
WIZARD6;
END;
PROCEDURE WIZARD4;
BEGIN
BIKIN_KOTAK(3, 10);
FOR J := 0 TO 2 DO
FOR I := 1 TO 8 DO
TULIS(J * 8 + I, CSTR(J * 16 + I + 7));
GOTOXY (5, 15);
WRITE(‘APAKAH ANGKA YANG ANDA PILIH’,
‘ ADA PADA DERETAN ANGKA DI ATAS (Y/T) ‘);
REPEAT
YT := READKEY;
UNTIL YT IN ['y', 'Y', 't', 'T', #27];
IF UPCASE(YT) = ‘Y’ THEN
NILAI := NILAI +  8;
WIZARD5;
{===============================}
END;

PROCEDURE WIZARD3;
BEGIN
BIKIN_KOTAK(3, 10);
FOR J := 0 TO 5 DO
FOR I := 1 TO 4 DO
TULIS(J * 4 + I, CSTR(J * 8 + I + 3));
GOTOXY (5, 15);
WRITE(‘APAKAH ANGKA YANG ANDA PILIH’,
‘ ADA PADA DERETAN ANGKA DI ATAS (Y/T) ‘);
REPEAT
YT := READKEY;
UNTIL YT IN ['y', 'Y', 't', 'T'];
IF UPCASE(YT) = ‘Y’ THEN
NILAI := NILAI +  4;
WIZARD4;
{===============================}
END;
PROCEDURE WIZARD2;
BEGIN
BIKIN_KOTAK(3, 10);
J:=0;
FOR J := 0 TO 12 DO
FOR I := 1 TO 2 DO
TULIS(J * 2 + I, CSTR(J * 4 + I + 1));

GOTOXY (5, 15);
WRITE(‘APAKAH ANGKA YANG ANDA PILIH’,
‘ ADA PADA DERETAN ANGKA DI ATAS (Y/T) ‘);
REPEAT
YT := READKEY;
UNTIL YT IN ['y', 'Y', 't', 'T', #27];
IF UPCASE(YT) = ‘Y’ THEN
NILAI := NILAI +  2;
WIZARD3;
{===============================}
END;
PROCEDURE WIZARD1;
BEGIN
BIKIN_KOTAK(3, 10);
L:= 1;
REPEAT
TULIS ((L + 1) DIV 2,CSTR(L));
L:= L + 2;
UNTIL L > 50;
GOTOXY (5, 15);
WRITE(‘APAKAH ANGKA YANG ANDA PILIH’,
‘ ADA PADA DERETAN ANGKA DI ATAS (Y/T) ‘);
REPEAT
YT := READKEY;
UNTIL YT IN ['y', 'Y', 't', 'T', #27];
IF UPCASE(YT) = ‘Y’ THEN
NILAI := 1;
WIZARD2;
{===============================}
END;

PROCEDURE TULIS_NOMOR;
BEGIN
BIKIN_KOTAK(5, 10);
FOR K:= 1 TO 50 DO
TULIS(K, CSTR(K));
GOTOXY(1, 20);
WRITE (‘PILIH SEBUAH ANGKA, ‘,
‘TEKAN: Y, KALO MAU TERUS! ‘);
WRITE (‘TEKAN ESC UNTUK KELUAR ‘);
REPEAT
YT := READKEY;
IF UPCASE(YT) = ‘Y’ THEN
BEGIN
NILAI := 0;
WIZARD1;
END;
UNTIL YT IN ['y', 'Y', 't', 'T', #27];
{===============================}
END;

(* Program Utama *)
BEGIN
CLRSCR;
TEXTATTR := $1F;
REPEAT
TULIS_NOMOR;
UNTIL YT = #27;
END.



Tampilan program adalah sebagai berikut:
Tampilan pertama:
Pada wizard ini pemain diminta memilih sebuah angka, tanpa perlu ditunjuk atau disebutkan, kemudian tekan tombol Y pada keyboard.
Pada   wizard   ini,   pemain   mengamati   angka-angka   yang   ditampilkan,   jika   angka   yang dipilih (pada wizard sebelumnya) ada pada deretan, tekan tombol Y, jika tidak ada tekan tombol T.
Tampilan dan penggunaan wizard-wizard selanjutnya sama seperti wizard di atas.

No comments:

Post a Comment