+ All Categories
Home > Documents > Agung Zodiac Pascal

Agung Zodiac Pascal

Date post: 07-Jun-2015
Category:
Upload: novian-agung
View: 1,609 times
Download: 0 times
Share this document with a friend
14
Program Zodiac dengan Program Zodiac dengan Pascal Pascal Agung Novian [email protected] [email protected] Membangun program untuk menentukan zodiac memang terlalu lazim dan mudah, di semua jenis bahasa pemogramman. Banyak sekolah- sekolah computer atau kursus-kursur yang mengambil program zodiac sebagai bahan latihan awal. Tapi pembahasan mengenai program zodiac dengan Pascal kali ini mungkin akan lebih spesial. Karena di sini diterapkan trik-trik menarik dan penggunaan prosedur dan fungsi. Desain Program Program untuk menentukan zodiac melatih penggunaan beberapa struktur pengambilan keputusan dalam bahasa pemograman yaitu: struktur IF bersarang (If … Then … Else), dan strukstur seleksi (Case Of). Karena kedua buah struktur ini boleh dikata merupakan ‘jantung’ dari bahasa pemograman. Baiklah, langsung saja kita ke pembahasan. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2006 IlmuKomputer.Com 1 Lisensi Dokumen: Copyright © 2003-2006 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari
Transcript
Page 1: Agung Zodiac Pascal

Program Zodiac dengan PascalProgram Zodiac dengan Pascal

Agung [email protected][email protected]

Membangun program untuk menentukan zodiac memang terlalu lazim dan mudah, di semua jenis bahasa pemogramman. Banyak sekolah-sekolah computer atau kursus-kursur yang mengambil program zodiac sebagai bahan latihan awal. Tapi pembahasan mengenai program zodiac dengan Pascal kali ini mungkin akan lebih spesial. Karena di sini diterapkan trik-trik menarik dan penggunaan prosedur dan fungsi.

Desain Program

Program untuk menentukan zodiac melatih penggunaan beberapa struktur pengambilan keputusan dalam bahasa pemograman yaitu: struktur IF bersarang (If … Then … Else), dan strukstur seleksi (Case Of). Karena kedua buah struktur ini boleh dikata merupakan ‘jantung’ dari bahasa pemograman. Baiklah, langsung saja kita ke pembahasan.

Pada program ini diterapkan beberapa prosedur dan fungsi, diantaranya:

Prosedur

Nama Prosedur KegunaanTulis Menuliskan teks pada posisi tertentu. Prosedur ini juga disertai 3

(tiga) pilihan perataan teks (terhadap layar monitor) yaitu: rata kiri, rata, rata tengah, dan rata kanan.

Window Membuat window (kotak) dengan ukuran tertentu dan pada lokasi tertentu, window ini dilengkapi dengan bingkai dan dapat diarsir (diisi bagian dalamnya), juga dapat ditentukan warna huruf dan warna latarnya.

Keterangan Menentukan nama zodiac berdasarkan nilai yang diterima, kemudian menampilkannya pada layar monitor.

Cek_Zodiak Menentukan id dari zodiac berdasarkan nilai tanggal dan bulan yang Komunitas eLearning IlmuKomputer.ComCopyright © 2003-2006 IlmuKomputer.Com

1

Lisensi Dokumen:Copyright © 2003-2006 IlmuKomputer.ComSeluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

Page 2: Agung Zodiac Pascal

diterima.Input_Tanggal Menerima nilai entri untuk mengisi nilai tanggal dan bulan.

Fungsi

Nama Prosedur KegunaanIntToStr Mengkonversi nilai bertipe LongInt menjadi StringHari_Ini Mencetak nama hari dan bulan menurut data tanggal pada sistem

Baris Kode

PROGRAM ZODIAK;USES CRT, DOS;

TYPE TANGGAL = RECORD DD, MM, YY:INTEGER;END;

VAR I, J, X, Y:INTEGER; TOMBOL, HURUF:CHAR; STANGGAL:STRING; NAMA:STRING; SALAH:INTEGER; MYTANGGAL:TANGGAL; IDX:CHAR; SJK:STRING;

(* FUNGSI UNTUK MENGKONVERSI NILAI LONGINT MENJADI STRING (TEKS)*)

FUNCTION INTTOSTR(I: LONGINT): STRING;VAR S: STRING[11];

BEGIN STR(I, S); INTTOSTR := S;END;

(* FUNGSI UNTUK MENENTUKAN NAMA HARI DAN BULAN MENURUT TANGGAL PADA SISTEM*)

FUNCTION HARI_INI:STRING;CONST DAYS : ARRAY [0..6] OF STRING[9] = ('MINGGU','SENIN','SELASA', 'RABU','KAMIS','JUMAT', 'SABTU');

Komunitas eLearning IlmuKomputer.ComCopyright © 2003-2006 IlmuKomputer.Com

2

Page 3: Agung Zodiac Pascal

MONTHS : ARRAY [1..12] OF STRING [10] = ('JANUARI','PEBRUARI','MARET','APRIL', 'MEI','JUNI','JULI','AGUSTUS','SEPTEMBER', 'OKTOBER','NOPEMBER','DESEMBER');VAR Y, M, D, DOW : Word;

BEGIN GETDATE(Y,M,D,DOW);

HARI_INI := 'HARI INI : ' + DAYS[DOW] + ', ' + INTTOSTR(d) + ' ' + MONTHS[M] + ' ' + INTTOSTR(y);END;

(* PROSEDUR UNTUK MENULISKAN TEKS PADA POSISI TERTENTU*)

PROCEDURE TULIS(KIRI, ATAS, PILIH:INTEGER; TEKS:STRING);VAR PANJANG:INTEGER;

BEGIN PANJANG := LENGTH(TEKS); IF PILIH = 1 THEN GOTOXY(KIRI, ATAS) ELSE IF PILIH = 2 THEN (* AGAR POSISI KURSOR DITENGAH-TENGAH LAYAR *) GOTOXY((80 - PANJANG) DIV 2, ATAS) ELSE IF PILIH = 3 THEN GOTOXY((80 - PANJANG), ATAS); WRITE(TEKS);END;

(* PROSEDUR UNTUK MEMBUAT KOTAK/WINDOW*)PROCEDURE WINDOW(KIRI, ATAS, LEBAR, TINGGI, WARNA1, WARNA2:INTEGER; ARSIR:BYTE);

BEGIN TEXTATTR:=WARNA1; TEXTATTR:=WARNA2;

TULIS(KIRI, ATAS, 1, CHAR(201)); TULIS(KIRI, ATAS+TINGGI, 1, CHAR(200)); TULIS(KIRI+LEBAR, ATAS, 1, CHAR(187)); TULIS(KIRI+LEBAR, ATAS+TINGGI, 1, CHAR(188));

FOR I:= KIRI+1 TO KIRI+LEBAR-1 DO BEGIN TULIS(I, ATAS, 1, 'Í'); TULIS(I, ATAS+TINGGI, 1, 'Í');

Komunitas eLearning IlmuKomputer.ComCopyright © 2003-2006 IlmuKomputer.Com

3

Page 4: Agung Zodiac Pascal

END;

FOR I:= ATAS+1 TO TINGGI+ATAS-1 DO BEGIN TULIS(KIRI, I, 1,CHAR(186)); TULIS(KIRI + LEBAR, I, 1,CHAR(186)); END;

IF ARSIR = 1 THEN BEGIN FOR I:= ATAS + 1 TO TINGGI + ATAS - 1 DO FOR J:= KIRI + 1 TO KIRI + LEBAR - 1 DO TULIS(J, I, 1, CHAR(176)); END ELSE BEGIN FOR I:= ATAS + 1 TO TINGGI + ATAS - 1 DO FOR J:= KIRI + 1 TO KIRI + LEBAR - 1 DO TULIS(J, I, 1, ' '); END;

TEXTATTR:=WARNA2;END;

(* PROSEDUR UNTUK MENENTUKAN NAMA ZODIAK MENURUT NILAI DARI VARIABEL IDX*)

PROCEDURE KETERANGAN;

BEGIN CLRSCR; WINDOW(1,1,79,23,$4A,$5B,0);

IF (SJK) = 'L' THEN TULIS(3,3,1,'MAS ' + NAMA) ELSE TULIS(3,3,1,'MBA ' + NAMA);

TULIS (3,4,1, 'TERNYATA ZODIAK ANDA ADALAH ...');

WINDOW((80-14) dIV 2,6,14,2,$21,$1C,0); WINDOW(2,10,77,13,$21,$1C,0);

TEXTCOLOR(YELLOW); TULIS(3,11,1,'SIFAT :'); TULIS(3,18,1,'CIRI KHAS :');

TEXTCOLOR(GREEN);

CASE IDX OF '1' : BEGIN TULIS(1,7,2,'CAPRICORNUS') {TULIS(3,19,1,'')}

Komunitas eLearning IlmuKomputer.ComCopyright © 2003-2006 IlmuKomputer.Com

4

Page 5: Agung Zodiac Pascal

END; '2': BEGIN TULIS(1,7,2,'AQUARIUS') {TULIS(3,19,1,'')} END; '3' : BEGIN TULIS(1,7,2,'PISCES') {TULIS(3,19,1,'')} END; '4': BEGIN TULIS(1,7,2,'ARIES') {TULIS(3,19,1,'')} END; '5' : BEGIN TULIS(1,7,2,'TAURUS') {TULIS(3,19,1,'')} END; '6': BEGIN TULIS(1,7,2,'GEMINI') {TULIS(3,19,1,'')} END; '7' : BEGIN TULIS(1,7,2,'CANCER') {TULIS(3,19,1,'')} END; '8': BEGIN TULIS(1,7,2,'LEO') {TULIS(3,19,1,'')} END; '9' : BEGIN TULIS(1,7,2,'VIRGO') {TULIS(3,19,1,'')} END; 'A': BEGIN TULIS(1,7,2,'LIBRA') {TULIS(3,19,1,'')} END; 'B' : BEGIN TULIS(1,7,2,'SCORPIO') {TULIS(3,19,1,'')} END; 'C': BEGIN TULIS(1,7,2,'SAGITARIUS') {TULIS(3,19,1,'')} END; END;END;

(* PROSEDUR UNTUK MENENTUKAN IDX BERDASARKAN TANGGAL DAN BULAN YANG DIINPUTKAN*)

PROCEDURE CEK_ZODIAK(TANGGAL, BULAN:WORD);VAR NAMA_ZODIAK:STRING;

Komunitas eLearning IlmuKomputer.ComCopyright © 2003-2006 IlmuKomputer.Com

5

Page 6: Agung Zodiac Pascal

BEGIN CLRSCR;

IF BULAN = 1 THEN BEGIN IF (TANGGAL) >= 23 THEN IDX := '2' ELSE IDX := '1' END ELSE IF BULAN = 2 THEN BEGIN IF (TANGGAL) >= 23 THEN IDX := '3' ELSE IDX := '2' END ELSE IF BULAN = 3 THEN BEGIN IF (TANGGAL) >= 23 THEN IDX := '4' ELSE IDX := '3' END ELSE IF BULAN = 4 THEN BEGIN IF (TANGGAL) >= 23 THEN IDX := '5' ELSE IDX := '4' END

ELSE IF BULAN = 5 THEN BEGIN IF (TANGGAL) >= 23 THEN IDX := '6' ELSE IDX := '5' END ELSE IF BULAN = 6 THEN BEGIN IF (TANGGAL) >= 23 THEN IDX := '7' ELSE IDX := '6' END ELSE IF BULAN = 7 THEN BEGIN IF (TANGGAL) >= 23 THEN IDX := '8' ELSE IDX := '7' END ELSE IF BULAN = 8 THEN

Komunitas eLearning IlmuKomputer.ComCopyright © 2003-2006 IlmuKomputer.Com

6

Page 7: Agung Zodiac Pascal

BEGIN IF (TANGGAL) >= 23 THEN IDX := '9' ELSE IDX := '8' END ELSE IF BULAN = 9 THEN BEGIN IF (TANGGAL) >= 23 THEN IDX := 'A' ELSE IDX := '9' END ELSE IF BULAN = 10 THEN BEGIN IF (TANGGAL) >= 23 THEN IDX := 'B' ELSE IDX := 'A' END ELSE IF BULAN = 11 THEN BEGIN IF (TANGGAL) >= 23 THEN IDX := 'C' ELSE IDX := 'B' END ELSE IF BULAN = 12 THEN BEGIN IF (TANGGAL) >= 23 THEN IDX := '1' ELSE IDX := 'C' END;

KETERANGAN;END;

(* PROSEDUR UNTUK MENGINPUTKAN TANGGAL*)PROCEDURE INPUT_TANGGAL;BEGIN TULIS(39,7,1,' / / '); GOTOXY(39,7); I:=34; J:=7; STANGGAL := ''; HURUF := #0;

WHILE (HURUF <> #13) AND (LENGTH(STANGGAL) < 8) DO BEGIN REPEAT HURUF:=READKEY;

(* PEMBATASAN AGAR TOMBOL KEYBOARD YG BERFUNGSI

Komunitas eLearning IlmuKomputer.ComCopyright © 2003-2006 IlmuKomputer.Com

7

Page 8: Agung Zodiac Pascal

HARUSLAH TOMBOL ANGKA DAN ENTER SAJA *)

UNTIL HURUF IN ['1','2','3','4','5', '6','7','8','9','0',#13]; IF HURUF <> #13 THEN BEGIN STANGGAL := STANGGAL + HURUF; WRITE(HURUF); IF (LENGTH(STANGGAL)=2) OR (LENGTH(STANGGAL)=5) THEN BEGIN STANGGAL := STANGGAL + '/'; WRITE('/'); END; END; END;

TULIS(39,7, 1, STANGGAL);

(* MENGISI NILAI-NILAI VARIABEL (TANGGAL, BULAN DAN TAHUN) BERDASARKAN STRING YANG DIINPUTKAN *)

VAL(COPY(STANGGAL,1,2),MYTANGGAL.DD,SALAH); VAL(COPY(STANGGAL,4,2),MYTANGGAL.MM,SALAH); VAL(COPY(STANGGAL,7,2),MYTANGGAL.YY,SALAH);END;

(* PROGRAM UTAMA *)BEGIN CLRSCR;

(* MEMPERCANTIK TAMPILAN *) WINDOW(1,1,79,23,$4A,$5B,1); WINDOW(20,2,41,3,$1A,15,0);

TULIS(0,3,2,'SELAMAT DATANG'); TULIS(0,4,2,'DI RAMALAN ZODIAK INOCHIS' + CHAR(147) + 'ftware');

WINDOW(18,8,45,4,$3B,$6F,0); TULIS (0, 9, 2, 'DIBUAT OLEH : KI AGUNG NOVIAN'); TULIS (0, 10, 2, 'TEAM PROGRAMMER'); TULIS (0, 11, 2, 'INOCHI COMPUTER CIREBON'); TEXTATTR:=$1F; TULIS (0, 15, 2, HARI_INI);

TEXTATTR:=$8F; TULIS (0, 17, 2, 'INOCHIS' + CHAR(147) + 'ftware'); TULIS (0, 18, 2, 'Jl. P. Drajat Gg. Jepun No. 48 ' + 'Telp. (0231) 210178 Cirebon');

WINDOW(19,21,43,2,$1A,15,0);

Komunitas eLearning IlmuKomputer.ComCopyright © 2003-2006 IlmuKomputer.Com

8

Page 9: Agung Zodiac Pascal

TULIS(0,22,2,'TEKAN SEMBARANG TOMBOL UNTUK MELANJUTKAN'); READKEY;

CLRSCR; WINDOW(1,1,79,23,$1D,$7F,1); WINDOW(15,3,50,8,$2A,$6B,0);

TULIS (20,5,1,'NAMA ANDA : '); GOTOXY(39,5);READLN(NAMA); TULIS (20,7,1,'TANGGAL LAHIR : ');

INPUT_TANGGAL;

TULIS (20,9,1,'J. KELAMIN (L/K) : ');

WHILE (HURUF <> #13) AND (LENGTH(SJK) < 2) DO BEGIN REPEAT HURUF := READKEY; UNTIL HURUF IN ['L', 'l', 'p', 'P', #13]; IF HURUF <> #13 THEN BEGIN SJK := SJK + HURUF; WRITE (HURUF); END; END;

(* PEMANGGILAN PROSEDUR *) CEK_ZODIAK(MYTANGGAL.DD, MYTANGGAL.MM);

READLN;END.

Tampilan (Lay-Out)

Program ini nantinya mempunyai tiga tampilan yaitu: tampilan muka, tampilan input dan tampilan hasil.

Tampilan Muka

Pada tampilan muka dilihatkan keterangan mengenai program.

Komunitas eLearning IlmuKomputer.ComCopyright © 2003-2006 IlmuKomputer.Com

9

Page 10: Agung Zodiac Pascal

Tampilan Input

Tampilan input adalah tampilan permintaan input data yang akan diproses.

Komunitas eLearning IlmuKomputer.ComCopyright © 2003-2006 IlmuKomputer.Com

10

Page 11: Agung Zodiac Pascal

Tampilan Hasil

Pada tampilan hasil dilihatkan hasil proses dari data yang telah diinputkan.

Penutup

Ada bagian-bagian yang belum dilengkapi pada program ini yaitu definisi dari tiap-tiap zodiac. Nah, ini tugas Anda untuk melengkapinya. Anda bias melengkapinya pada bagian struktur prosedur: Keterangan

Komunitas eLearning IlmuKomputer.ComCopyright © 2003-2006 IlmuKomputer.Com

11

Page 12: Agung Zodiac Pascal

Biografi Penulis

Agung Novian. Kelahiran Cirebon, 9 September 1982. Menyelesaikan D1 Manajemen Informatika di CIC Cirebon dan S1 Teknik Informatika di STMIK Tasikmalaya. Pernah menjadi programmer di PT. Mekraindo – Majalengka, pernah mengajar di STM PUI Cirebon, Penulis buku seri pemogramman dengan judul “Ms. Visual Basic 6.0 – Anda Pasti Bisa”, terbitan ANDI Offset Yogyakarta tahun 2004. Sekarang aktif membuat program-program aplikasi berbasis database, menjadi instruktur hardware dan software computer, dan penulis lepas di IlmuKomputer.Com, serta masih menganggur he… he…

Komunitas eLearning IlmuKomputer.ComCopyright © 2003-2006 IlmuKomputer.Com

12


Recommended