Modul+Tik+Turbo+Pascal

77
PENDAHULUAN 1.1 Elemen-elemen TP a. Simbol-simbol dasar TP dibentuk dari huruf(a, b, c, d, e, f, g, h, I, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z), angka(1, 2, 3, 4, 5, 6, 7, 8, 9, 0), dan karakter(~ ! @ # $ % ^ & * ( ) _ - + = ) b. Kata-kata cadangan TP memberikan kata cadangan yang lebih banyak lagi, diantaranya: absolute, and, array, begin, case, const, div, do, downto, else dan yang lainya. c. Tipe data TP memberikan kemudahan dalam operasi matematika dan lebih banyak memory untuk mengaakses tipe-tpe data, seperti: Tipe byte ukuran memorinya 1 byte dan jangkauan data 0 s.d 255. Tipe longint ukuran memorinya 4 byte dan jangkauan data –2147483648 s.d 2147483647. d. Pengenal program dapat dibuat sendiri Pengenal program dapat dibuat sendiri untuk judul program, prosedur dan fungsi, seperti program latihan, prosedur hitung, function kali. e. Karakter kontrol TP menyediakan karakter- karakter spesial untuk digunakan dimana diformat dalam bahasa aschi, seperti #7 untuk bel, #65 karakter A. Selain itu bisa menggunakan kontrol(^), contoh: ^G untuk bel, ^M untuk enter. f. Operator hitungan/operasi TP mengenal beberapa operator untuk membantu hitungan atau operasi dalam program diantaranya, assignment operator (:=), binary operator (mod, div, -,+,*,^), unary operator(+ dan -), bitwisw operator(not, and, or, xor), relation operator(=,<>,>,> =, < =), logical operator (not, and, or), address operator(@ dan ^), set operator(+, -, *), string operator(+) 1.2 Komenter program TP menyediakan komentar untuk program dengan cara memberikan tanda { } dimana kalau ada tanda ini maka komputer tidak akan menjalankannya atau dilewat. Komenter biasanya digunakan bila dalam tubuh program terdapat kondisi tertentu. Kondisi ini seperti program harus loncat (goto), program masuk suatu kondisi jika maka (If … than … else … ) Untuk interaksi standar TP menyediakan: Writeln( ‘ ……… ‘); berfungsi untuk menuliskan data-data atau komentar sedangkan write(‘………’); berfungsi untuk menanyakan data dan pengguna memasukan data dari kayborad. Baca dulu saya Halaman 1

Transcript of Modul+Tik+Turbo+Pascal

Page 1: Modul+Tik+Turbo+Pascal

PENDAHULUAN

1.1 Elemen-elemen TP

a. Simbol-simbol dasar

TP dibentuk dari huruf(a, b, c, d, e, f,

g, h, I, j, k, l, m, n, o, p, q, r, s, t, u,

v, w, x, y, z), angka(1, 2, 3, 4, 5, 6,

7, 8, 9, 0), dan karakter(~ ! @ # $

% ^ & * ( ) _ - + = )

b. Kata-kata cadangan

TP memberikan kata cadangan yang

lebih banyak lagi, diantaranya:

absolute, and, array, begin, case,

const, div, do, downto, else dan

yang lainya.

c. Tipe data

TP memberikan kemudahan dalam

operasi matematika dan lebih

banyak memory untuk mengaakses

tipe-tpe data, seperti:

Tipe byte ukuran memorinya 1 byte

dan jangkauan data 0 s.d 255. Tipe

longint ukuran memorinya 4 byte

dan jangkauan data –2147483648

s.d 2147483647.

d. Pengenal program dapat dibuat

sendiri

Pengenal program dapat dibuat

sendiri untuk judul program,

prosedur dan fungsi, seperti

program latihan, prosedur hitung,

function kali.

e. Karakter kontrol

TP menyediakan karakter-karakter

spesial untuk digunakan dimana

diformat dalam bahasa aschi,

seperti #7 untuk bel, #65 karakter

A. Selain itu bisa menggunakan

kontrol(^), contoh: ^G untuk bel,

^M untuk enter.

f. Operator hitungan/operasi

TP mengenal beberapa operator

untuk membantu hitungan atau

operasi dalam program

diantaranya, assignment operator

(:=), binary operator (mod, div, -,

+,*,^), unary operator(+ dan -),

bitwisw operator(not, and, or, xor),

relation operator(=,<>,>,> =, <

=), logical operator (not, and, or),

address operator(@ dan ^), set

operator(+, -, *), string operator(+)

1.2 Komenter program

TP menyediakan komentar untuk

program dengan cara memberikan

tanda { } dimana kalau ada tanda ini

maka komputer tidak akan

menjalankannya atau dilewat.

Komenter biasanya digunakan bila

dalam tubuh program terdapat kondisi

tertentu. Kondisi ini seperti program

harus loncat (goto), program masuk

suatu kondisi jika maka (If … than …

else … )

Untuk interaksi standar TP

menyediakan:

Writeln( ‘ ……… ‘); berfungsi untuk

menuliskan data-data atau komentar

sedangkan write(‘………’); berfungsi

untuk menanyakan data dan pengguna

memasukan data dari kayborad.

Baca dulu sayaPERIKSA LISTRING PROGRAM DENGAN

CARA KLIK F9

BILA PROSES COMPILE BERHASIL MAKA

KLIK CTRL - F9

SELAMAT MENCOBA DAN BERKREASI

KALAU PRAKTEK DIKERJAKAN DI

SEKOLAH PADA SAAT JAM MASUK

KALAU TUGAS DIKERJAKAN DILUAR JAM

MASUK DAN DISIMPAN DALAM DISKET

SETIAP TUGAS DIKUMPULKAN MINGGU

BERIKUTNYA

BILA TIDAK MENGUMPULKAN TUGAS

SISWA DILARANG MENGIKUTI

PELAJARAN

SELANJUTNYA

Halaman 1

Page 2: Modul+Tik+Turbo+Pascal

PRAKTEK KE -1

LATIHAN WRITELN(‘ … … … ‘);

NAMA FILE : LAT1.PAS

PROGRAM PR1;

USES CRT;

BEGIN

CLRSCR;

WRITELN(‘Kata disiplin diserap dari bahasa barat yang bermuasal dari bahasa latin’); WRITELN(‘disciplin yang berarti “siasat,tata tertib,ketaatan,ajaran,pengajaran”.kata’); WRITELN(‘kerja disciplinare berarti “mendidik,menggembleng, mengajar”.Dengan’); WRITELN(‘demikian, kata disiplin dapat diartikan “tindakan atau prilaku sesuai dengan’); WRITELN(‘ajaran-ajaran yang telah diperoleh seseorang,baik yang berupa undang ’);WRITELN(‘undang, peraturan, sopan santun, adat istiadat, dan sebagainya”. ’);WRITELN(‘Dalam kehidupan pribadi disiplin berarti peraturan yang dibuat untuk diri’);WRITELN(‘sendiri,yang tidak boleh bertentangan dengan peraturan umum. Bangun dan’);WRITELN(‘melakukan sesuatu tepat pada waktunya, hadir dalam suatu acara pada’); WRITELN(‘waktu yang ditetapkan, atau melakukan tugas dan kewajiban dengan tepat’); WRITELN(‘dan tertib hanya bisa tercapai kalau ada disiplin pribadi. ’);REPEAT UNTIL KEYPRESSED;END.

NAMA FILE : LAT2.PASPROGRAM FISIKA;USES CRT;BEGINCLRSCR;WRITELN(‘Dalam skala nasional, kita berbicara mengenai disiplin nasional, yaitu’); WRITELN(‘bagaimana tiap orang melaksanakan peran mereka masing-masing secara’); WRITELN(‘teratur

sesuai dengan pranata yang ada. Pranata dalam masyarakat bangsa’); WRITELN(‘biasanya berupa peraturan, adapt kebiasaan, pedoman pergaulan social, ’); WRITELN(‘sopan santun, dan sebagainya. Semua pranata itu harus melembaga dalam’); WRITELN(‘diri tiap warga masyarakat bukan hanya berada di atas kertas. Peraturan baru’); WRITELN(‘merupakan barang mati. Peraturan – peraturan ini harus ditanamkan secara’);WRITELN(‘bersinambungan pada tiap anggota masyrakat sehingga dia benar-benar’); WRITELN(‘hidup dalam diri tiap orang. ’); WRITELN(‘Menanamkan peraturan secara berkesinambungan dapat dilakukan nelalui’); WRITELN(‘pendidikan, baik pendidikan formal (di sekolah ), maupun pendidikan’); WRITELN(‘nonformal (dalam kursus –kursus dan latihan –latihan ), atau melalui’); WRITELN(‘tindakan –tindakan incidental. Tindakan –tindakan incidental juga’); WRITELN(‘hendaknya sering dilaksanakan, bila tidak, sesudah tindakan incidental itu’); WRITELN(‘berlalu anggota masyarakat yang biasanya tidak disiplin, akan kembali’); WRITELN(‘kepada kebiasaan semula . ’);

NAMA FILE : LAT3.PASPROGRAM SAYA;USES CRT;BEGINWRITELN(‘ SAYA SISWA KELAS III DI SEBUAH SMA NEGERI‘);WRITELN(‘ SAYA SEORANG SISWA YANG RAJIN BELAJAR‘);WRITELN(‘ SAYA KALAU DIBERI PR, TUGAS ATAU APAPUN YANG‘);WRITELN(‘ BERHUBUNGAN DENGAN SEKOLAH PASTI AKAN DI‘);WRITELN(‘ KERJAKAN DENGAN SERIUS DAN TEPAT WAKTU‘);WRITELN(‘ TETAPI SAYA HERAN SEMENJAK ADA EBTANAS KEMUDIAN‘);WRITELN(‘ DISUSUL UAN, KOK RASANYA SEPERTI DIPERMAINKAN‘);WRITELN(‘ DARI SD KE SMP, NILAI EBTANAS/UAN DIPERHITUNGKAN‘);WRITELN(‘ DARI SMP KE SMA NILAI EBTANAS/UAN DIPERHITUNGKAN‘);WRITELN(‘ TETAPI NILAI UAN DARI SMA KE PTN ATAU PTS DI ACUHKAN‘);WRITELN(‘ JADI APA GUNANYA EBTANAS/UAN UNTUK SMA‘);WRITELN(‘ BUANG WAKTU, TENAGA, DAN DANA‘);REPEAT UNTIL KEYPRESSED;END.

TUGAS 1Buatlah programnyaBUKU SUMBER FISIKA KLS 2 UNTUK SMU KELAS 2

NOABSEN MATERI HALAMAN1/11/21/31 KEDUDUKAN PADA BIDANG1

Halaman 2

Page 3: Modul+Tik+Turbo+Pascal

2/12/22/32 PERPINDAHAN PADA BIDANG 23/13/23/33 KECEPATAN RATA-RATA

34/14/24/34 KECEPATAN SESAAT

45/15/25/35 PERCEPATAN RATA-RATA

56/16/26/36 MEMADU DUA PERPINDAHAN 57/17/27/37 PERPADUAN DUA GLB

68/18/28/38 GERAK PARABOLA

109/19/29/39 GERAK MELINGKAR BERATURAN 1310/20/30/40 GAYA SENTRIPETAL

14

PRAKTEK KE – 2LATIHAN WRITE(‘ … ‘);READLN(…);

NAMA FILE : LAT4.PASPROGRAM HITUNGAN;USES CRT;CONSTA = 2; B = 4; C = 6;VARX, TAM,BAG,KUR,KAL : REAL;BEGINCLRSCR;WRITELN(‘HITUNGAN’);WRITELN(‘TIGA ANGKA’);WRITELN(‘A=2 B=4 C=6’);WRITELN(‘BILANGAN BARU’);WRITE(‘ANGKA:‘);READLN(X);TAM := (A+X)+(B+X)+(C+X);BAG := (A/X)+(B/X)+(C/X);KAL := (A*X)+(B*X)+(C*X);WRITELN(‘HASIL1= ‘,TAM);WRITELN(‘HASIL2= ‘,BAG);WRITELN(‘HASIL3= ‘,KAL);REPEAT UNTIL KEYPRESSED;END.

NAMA FILE : LAT5.PASPROGRAM BIDANG;USES CRT;VARP,T,L,R,S,A,LS,LL,LEP,LBS : REAL;BEGINCLRSCR;WRITELN(‘ LUAS BIDANG’);WRITE(‘PANJANG:‘);READLN(P);WRITE(‘ LEBAR:‘);READLN(L);WRITE(‘TINGGI:‘);READLN(T);WRITE(‘JARI2:‘);READLN(R);WRITE(‘SISI:‘);READLN(S);WRITE(‘ALAS:‘);READLN(A);LL := 3.14*R*R;LEP := P*L;LS := 0.5*A*T;LBS := S*S;WRITELN(‘LUAS LINGKARAN = ‘, LL ,’M2’);WRITELN(‘ LUAS SEGITIGA = ‘, LS ,’M2’);WRITELN(‘ LUAS 4PERSEGI PANJANG = ‘, LEP ,’M2’);

WRITELN(‘ LUAS BUJUR SANGKAR = ‘, LBS ,’M2’);REPEAT UNTIL KEYPRESSED;END.

NAMA FILE : LAT6.PASPROGRAM NILAI;USES CRT;VARPELAJARAN,NAMA : STRING;N1,N2,N3, RATA : REAL;BEGINCLRSCR;WRITELN(‘PROGRAM MENGHITUNG NILAI RATA-RATA ULANGAN’);WRITE(‘NAMA SISWA :‘); READLN(PELAJARAN);WRITE(‘NILAI KE-1 : ‘);READLN(N1);WRITE(‘NILAI KE-2 : ‘);READLN(N2);’WRITE(‘NILAI KE-3 : ‘);READLN(N3);RATA := (N1+N2+N3)/3;WRITELN(‘NAMA SISWA : ‘,NAMA);WRITELN(‘PELAJARAN : ‘,PELAJARAN);WRITELN(‘ NILAI KE 1, 2, 3 : ‘,N1,N2,N3);WRITELN(‘RATA-RATA : ‘,RATA);REPEAT UNTIL KEYPRESSED;END.

TUGAS 2Buatlah programnyaBUKU SUMBER FISIKA KLS 2 UNTUK SMU KELAS 2NOABSEN CONTOH HALAMAN1/11/21/31 KEDUDUKAN PADA BIDANG 12/12/22/32 PERPINDAHAN PADA BIDANG 23/13/23/33 KECEPATAN RATA-RATA

34/14/24/34 KECEPATAN SESAAT

45/15/25/35 PERCEPATAN RATA-RATA

56/16/26/36 MEMADU DUA PERPINDAHAN 57/17/27/37 PERPADUAN DUA GLB

68/18/28/38 GERAK PARABOLA

109/19/29/39 GERAK MELINGKAR BERATURAN 1310/20/30/40 GAYA SENTRIPETAL

14

PRAKTEK KE- 3NAMA FILE : LAT7.PASPROGRAM BAYAR;USES CRT;CONSTDI1= -1000; DI2 =-1100;DI3=-1200;DI4=1400;VARNB1,NB2,NB3,NB4 : STRING;HB1,HB2,HB3,HB4,JB1.JB2.JB3.JB4,BY1,BY2,BY3,BY4,UM,UK,TOTAL : REAL;

Halaman 3

Page 4: Modul+Tik+Turbo+Pascal

BEGINCLRSCR;WRITELN(‘MENGHITUNG PEMBAYARAN’);WRITE(‘NAMA BARANG KE-1 : ‘);READLN(NB1);WRITE(‘HARGA BARANG KE-1 : ‘);READLN(HB1);WRITE(‘JUMLAH BARANG KE-1 : ‘);READLN(JB1);WRITE(‘NAMA BARANG KE-2 : ‘);READLN(NB2);WRITE(‘HARGA BARANG KE-2 : ‘);READLN(HB2);WRITE(‘JUMLAH BARANG KE-2 : ‘);READLN(JB2);WRITE(‘NAMA BARANG KE-3 : ‘);READLN(NB3);WRITE(‘HARGA BARANG KE-3 : ‘);READLN(HB3);WRITE(‘JUMLAH BARANG KE-3 : ‘);READLN(JB3);WRITE(‘NAMA BARANG KE-4 : ‘);READLN(NB4);WRITE(‘HARGA BARANG KE-4 : ‘);READLN(HB4);WRITE(‘JUMLAH BARANG KE-4 : ‘);READLN(JB4);WRITE(‘UANG MUKA = ‘);READLN(UM);

BY1 := HB1*JB1-JB1*DI1;BY2 := HB2*JB2-JB2*DI2;BY3 := HB3*JB3-JB3*DI3;BY4 := HB4*JB4-JB4*DI4;TOTAL := BY1+BY2+BY3+BY4;UK := UM-TOTAL;WRITELN(‘TOKO SAGALA AYA’);WRITELN(‘NOTA BAYAR : KONTAN’);WRITELN(‘--------------------------------‘);WRITELN(‘NAMA BARANG KE-1 :,NB1);WRITELN(‘HARGA:,HB1);WRITELN(‘JUMLAH:,JB1);WRITELN(‘BAYAR :,BY1);WRITELN(‘NAMA BARANG KE-2 :,NB2);WRITELN(‘HARGA:,HB2);WRITELN(‘JUMLAH :,JB2);WRITELN(‘BAYAR :,BY2);WRITELN(‘NAMA BARANG KE-3 :,NB3);WRITELN(‘HARGA:,HB3);WRITELN(‘JUMLAH :,JB3);WRITELN(‘BAYAR :,BY3);WRITELN(‘NAMA BARANG KE-4 :,NB4);WRITELN(‘HARGA :,HB4);WRITELN(‘JUMLAH :,JB4);WRITELN(‘BAYAR :,BY4);WRITELN(‘ TUNAI,UM);WRITELN(‘KONTAN’,TOTAL);WRITELN(‘KEMBALI’,UK);REPEAT UNTIL KEYPRESSED;END.

PROGRAM PERSAMAAN;USES CRT;VARA,B,C,Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9,Y10,Y11,Y12,Y13,Y14,Y15,Y16 : REAL;BEGINCLRSCR;WRITE(‘A= ‘);READLN(A);WRITE(‘B= ‘);READLN(B);WRITE(‘C= ‘);READLN(C);

Y1:=(A+B)+C;Y2:=(A+B)/C;Y3:=(A+B)*C;Y4:=(A+B)-C;Y5:=(A/B)+C;Y6:=(A/B)/C;Y7:=(A/B)*C;Y8:=(A/B)-C;Y9:=(A*B)+C;Y10:=(A*B)/C;Y11:=(A*B)*C;Y12:=(A*B)-C;Y13:=(A-B)+C;Y14:=(A-B)/C;Y15:=(A-B)*C;Y16:=(A-B)-C;WRITELN(Y1:2);WRITELN(Y2:2);WRITELN(Y3:2);WRITELN(Y4:2);WRITELN(Y5:2);WRITELN(Y6:2);WRITELN(Y7:2);WRITELN(Y8:2);WRITELN(Y9:2);WRITELN(Y10:2);WRITELN(Y11:2);WRITELN(Y12:2);WRITELN(Y13:2);WRITELN(Y14:2);WRITELN(Y15:2);WRITELN(Y16:2);

PROGRAM LAT;USES CRT;VARSUDUT,SINUS,COSINUS,TANGEN,SECAN,COSECAN,COTANGEN:REAL;BEGINCLRSCR;WRITE(SUDUT = ‘);READLN(SUDUT);SINUS:= SIN(SUDUT/57.3);COSINUS:=COS(SUDUT/57.3);TANGEN:=SINUS/COSINUS;SECAN:=1/COSINUS;COSECAN:=1/SINUS;COTANGEN:=1/TANGEN;WRITELN(SUDUT,SINUS:2);WRITELN(SUDUT,COSINUS:2);WRITELN(SUDUT,TANGEN:2);WRITELN(SUDUT,SECAN:2);WRITELN(SUDUT,COSECAN:2);WRITELN(SUDUT,COTANGEN:2);WRITELN(SUDUT,SINUS+SINUS);WRITELN(SUDUT,SINUS+COSINUS);WRITELN(SUDUT,SINUS+TANGEN);WRITELN(SUDUT,SINUS+SECAN);WRITELN(SUDUT,SINUS+COSECAN);WRITELN(SUDUT,SINUS+COTANGEN);WRITELN(SUDUT,COSINUS+SINUS);WRITELN(SUDUT,COSINUS+COSINUS);WRITELN(SUDUT,COSINUS+TANGEN);WRITELN(SUDUT,COSINUS+SECAN);WRITELN(SUDUT,COSINUS+COSECAN);WRITELN(SUDUT,COSINUS+COTANGEN);

TUGAS 3BUATLAH PROGRAMNYADalam ilmu fisika terdapat materi gerak beraturan.

Halaman 4

Page 5: Modul+Tik+Turbo+Pascal

Benda bergerak dengan persamaan gerak pada sumbu x yaitu rx = 2 t, pda sumbu y yaitu ry = 4 t, dan pada sumbu x yaitu rz = 6 t. dimana t dalam detik. Benda tersebut bererak menuju titik A dan B dalam waktu 2 dan 5 detik.Jika massa benda 2 kg. Tentukan:

a. jarak tempuh titik A (rxa, rxb, rya, ryb, rza, rzb) pada waktu 2 detik

b. jarak tempuh titik B (rxa, rxb, rya, ryb, rza, rzb) pada waktu 5 detik

c. kecepatan benda di titik A (vxa, vxb, vya, vyb, vza,vzb)catatan: v = r / t

d. kecepatan benda di titik B (vxa, vxb, vya, vyb, vza,vzb)catatan: v = r / t

e. percepatan benda di titik A (axa, axb, aya, ayb, aza,azb)catatan: a = v / t

f. percepatan benda di titik B (axa, axb, aya, ayb, aza,azb)catatan: a = v / t

g. gaya benda pada titik A (Fxa, Fxb, Fya, Fyb, Fza, Fzb)catatan: F = m a

h. gaya benda pada titik B (Fxa, Fxb, Fya, Fyb, Fza, Fzb)catatan: F = m a

i. Energi kinetic pada titik A ( Exa, Exb, Eya, Eyb, Eza, Ezb)Catatan: E = m v v / 2

j. Energi kinetic pada titik B ( Exa, Exb, Eya, Eyb, Eza, Ezb)Catatan: E = m v v / 2

PRAKTEK KE-4LATIHAN GOTOXY(X,Y);PROGRAM GTXY;USES CRT;CONSTH1=100;H2=200;H3=300;H4=400;H5=500;J1=1;J2=2;J3=3;J4=4;J5=5;

VARB1,B2,B3,B4,B5 : REAL;BEGINCLRSCR;B1:=H1*J1;B2:=H2*J2;B3:=H3*J3;B4:=H4*J4;B5:=H5*J5;GOTOXY(2,2);WRITELN('NO');GOTOXY(12,2);WRITELN('BARANG');GOTOXY(22,2);WRITELN('HARGA');GOTOXY(32,2);WRITELN('JUMLAH');GOTOXY(42,2);WRITELN('BAYAR');GOTOXY(2,3);WRITELN('1');GOTOXY(2,4);WRITELN('2');GOTOXY(2,5);WRITELN('3');

GOTOXY(2,6);WRITELN('4');GOTOXY(2,7);WRITELN('5');GOTOXY(12,3);WRITELN('A');GOTOXY(12,4);WRITELN('B');GOTOXY(12,5);WRITELN('C');GOTOXY(12,6);WRITELN('D');GOTOXY(12,7);WRITELN('E');GOTOXY(22,3);WRITELN(H1);GOTOXY(22,4);WRITELN(H2);GOTOXY(22,5);WRITELN(H3);GOTOXY(22,6);WRITELN(H4);GOTOXY(22,7);WRITELN(H5);GOTOXY(32,3);WRITELN(J1);GOTOXY(32,4);WRITELN(J2);GOTOXY(32,5);WRITELN(J3);GOTOXY(32,6);WRITELN(J4);GOTOXY(32,7);WRITELN(J5);GOTOXY(32,8);WRITELN('TOTAL');GOTOXY(42,3);WRITELN(B1:2);GOTOXY(42,4);WRITELN(B2:2);GOTOXY(42,5);WRITELN(B3:2);GOTOXY(42,6);WRITELN(B4:2);GOTOXY(42,7);WRITELN(B5:2);GOTOXY(42,8);WRITELN((B1+B2+B3+B4+B5):2);

REPEAT UNTIL KEYPRESSED;END.

PROGRAM GTXY2;PROGRAM GTXY;USES CRT;VARNB1,NB2,NB3,NB4,NB5 : STRING;H1,H2,H3,H4,H5,J1,J2,J3,J4,J5,B1,B2,B3,B4,B5 : REAL;BEGINCLRSCR;WRITE('NAMA BARANG KE1 = ');READLN(NB1);WRITE('NAMA BARANG KE2 = ');READLN(NB2);WRITE('NAMA BARANG KE3 = ');READLN(NB3);WRITE('NAMA BARANG KE4 = ');READLN(NB4);WRITE('NAMA BARANG KE5 = ');READLN(NB5);WRITE('JUMLAH BARANG KE1 = ');READLN(J1);WRITE('JUMLAH BARANG KE2 = ');READLN(J2);WRITE('JUMLAH BARANG KE3 = ');READLN(J3);WRITE('JUMLAH BARANG KE4 = ');READLN(J4);WRITE('JUMLAH BARANG KE5 = ');READLN(J5);WRITE('HARGA BARANG KE1 = ');READLN(H1);WRITE('HARGA BARANG KE2 = ');READLN(H2);WRITE('HARGA BARANG KE3 = ');READLN(H3);WRITE('HARGA BARANG KE4 = ');READLN(H4);WRITE('HARGA BARANG KE5 = ');READLN(H5);CLRSCR;B1:=H1*J1;

Halaman 5

Page 6: Modul+Tik+Turbo+Pascal

B2:=H2*J2;B3:=H3*J3;B4:=H4*J4;B5:=H5*J5;GOTOXY(2,2);WRITELN('NO');GOTOXY(12,2);WRITELN('BARANG');GOTOXY(22,2);WRITELN('HARGA');GOTOXY(32,2);WRITELN('JUMLAH');GOTOXY(42,2);WRITELN('BAYAR');GOTOXY(2,3);WRITELN('1');GOTOXY(2,4);WRITELN('2');GOTOXY(2,5);WRITELN('3');GOTOXY(2,6);WRITELN('4');GOTOXY(2,7);WRITELN('5');GOTOXY(12,3);WRITELN('A');GOTOXY(12,4);WRITELN('B');GOTOXY(12,5);WRITELN('C');GOTOXY(12,6);WRITELN('D');GOTOXY(12,7);WRITELN('E');GOTOXY(22,3);WRITELN(H1:8:2);GOTOXY(22,4);WRITELN(H2:8:2);GOTOXY(22,5);WRITELN(H3:8:2);GOTOXY(22,6);WRITELN(H4:8:2);GOTOXY(22,7);WRITELN(H5:8:2);GOTOXY(32,3);WRITELN(J1:8:2);GOTOXY(32,4);WRITELN(J2:8:2);GOTOXY(32,5);WRITELN(J3:8:2);GOTOXY(32,6);WRITELN(J4:8:2);GOTOXY(32,7);WRITELN(J5:8:2);GOTOXY(32,8);WRITELN('TOTAL');GOTOXY(42,3);WRITELN(B1:8:2);GOTOXY(42,4);WRITELN(B2:8:2);GOTOXY(42,5);WRITELN(B3:8:2);GOTOXY(42,6);WRITELN(B4:8:2);GOTOXY(42,7);WRITELN(B5:8:2);GOTOXY(42,8);WRITELN((B1+B2+B3+B4+B5):8:2);REPEAT UNTIL KEYPRESSED;END.

PROGRAM LETAK1;USES WINCRT;CONSTP1=100;P2=200;P3=300;P4=400;P5=500;P6=600;P7=700;P8=800;P9=900;P10=1000;L1=1;L2=2;L3=3;L4=4;L5=5;L6=6;L7=7;L8=8;L9=9;L10=10;VARLU1,LU2,LU3,LU4,LU5,LU6,LU7,LU8,LU9,LU10 : REAL;BEGINCLRSCR;GOTOXY(2,2);WRITELN('MENEMPATKAN HURUP');GOTOXY(2,4);WRITELN('NO');GOTOXY(12,4);WRITELN('PANJANG');GOTOXY(22,4);WRITELN('LEBAR');GOTOXY(32,4);WRITELN('LUAS');GOTOXY(2,5);WRITELN('1');GOTOXY(2,6);WRITELN('2');GOTOXY(2,7);WRITELN('3');GOTOXY(2,8);WRITELN('4');GOTOXY(2,9);WRITELN('5');GOTOXY(2,10);WRITELN('6');GOTOXY(2,11);WRITELN('7');GOTOXY(2,12);WRITELN('8');GOTOXY(2,13);WRITELN('9');GOTOXY(2,14);WRITELN('10');

GOTOXY(12,5);WRITELN('100');GOTOXY(12,6);WRITELN('200');GOTOXY(12,7);WRITELN('300');GOTOXY(12,8);WRITELN('400');GOTOXY(12,9);WRITELN('500');GOTOXY(12,10);WRITELN('600');GOTOXY(12,11);WRITELN('700');GOTOXY(12,12);WRITELN('800');GOTOXY(12,13);WRITELN('900');GOTOXY(12,14);WRITELN('1000');GOTOXY(22,5);WRITELN('1');GOTOXY(22,6);WRITELN('2');GOTOXY(22,7);WRITELN('3');GOTOXY(22,8);WRITELN('4');GOTOXY(22,9);WRITELN('5');GOTOXY(22,10);WRITELN('6');GOTOXY(22,11);WRITELN('7');GOTOXY(22,12);WRITELN('8');GOTOXY(22,13);WRITELN('9');GOTOXY(22,14);WRITELN('10');LU1:=P1*L1;LU2:=P2*L2;LU3:=P3*L3;LU4:=P4*L4;LU5:=P5*L5;LU6:=P6*L6;LU7:=P7*L7;LU8:=P8*L8;LU9:=P9*L9;LU10:=P10*L10;GOTOXY(32,5);WRITELN(LU1:5:0);GOTOXY(32,6);WRITELN(LU2:5:0);GOTOXY(32,7);WRITELN(LU3:5:0);GOTOXY(32,8);WRITELN(LU4:5:0);GOTOXY(32,9);WRITELN(LU5:5:0);GOTOXY(32,10);WRITELN(LU6:5:0);GOTOXY(32,11);WRITELN(LU7:5:0);GOTOXY(32,12);WRITELN(LU8:5:0);GOTOXY(32,13);WRITELN(LU9:5:0);GOTOXY(32,14);WRITELN(LU10:5:0);REPEAT UNTIL KEYPRESSED;END.

NAMA FILE : LAT18.PAS{PROGRAM MENGHITUNG GAJI}PROGRAM GAJI;USES CRT;CONSTK1='A'; GAP1=1000000;K2='B'; GAP2=5000000;K3='C'; GAP3=9000000;K4='A'; GAP4=2000000;K5='A'; GAP5=1000000;K6='A'; GAP6=1000000;K7='B'; GAP7=6000000;K8='B'; GAP8=5000000;K9='A'; GAP9=1000000;K10='C'; GAP10=9000000;GOL1=1; GOL2=2;GOL3=3;GOL4=2;GOL5=1;GOL6=1;GOL7=3;GOL8=2;GOL9=1;GOL10=3;JJ1=1;JJ2=5;JJ3=8;

Halaman 6

Page 7: Modul+Tik+Turbo+Pascal

JJ4=14;JJ5=3;JJ6=6;JJ7=9;JJ8=10;JJ9=20;JJ10=24;S1=1;S2=1;S3=1;S4=0;S5=1;S6=0;S7=0;S8=0;S9=1;S10=0;A1=2;A2=3;A3=1;A4=0;A5=3;A6=0;A7=0;A8=0;A9=3;A10=0;J1='P';J2='Q';J3='R';J4='P';J5='P';J6='P';J7='Q';J8='Q';J9='P';J10='R';N01=1; NAMA1=('AA');KE=('A');NO2=2; NAMA2=('BB'); KF=('B');NO3=3; NAMA3=('CC'); KG=('C');NO4=4; NAMA4=('DD');NO5=5; NAMA5=('EE');NO6=6; NAMA6=('FF');NO7=7; NAMA7=('GG');NO8=8; NAMA8=('HH');NO9=9; NAMA9=('II');NO10=10; NAMA10=('JJ');

VARNO,NAMA,KODE,JAB,GAP,GOL,JUMJAM,STATUS,ANAK,TUNIS,TUNAK,PTKPS,PTKPI,PTKPA,PTKP,PKP,GABER:REAL;BEGINCLRSCR;GOTOXY(2,2);WRITELN('NO');GOTOXY(5,2);WRITELN('NAMA');

GOTOXY(10,2);WRITELN('KOD');GOTOXY(14,2);WRITELN('JAB');GOTOXY(18,2);WRITELN('GAP');GOTOXY(22,2);WRITELN('GOL');GOTOXY(26,2);WRITELN('JUM');GOTOXY(30,2);WRITELN('STAT');GOTOXY(35,2);WRITELN('ANAK');GOTOXY(2,3);WRITELN('1');GOTOXY(2,4);WRITELN('2');GOTOXY(2,5);WRITELN('3');GOTOXY(2,6);WRITELN('4');GOTOXY(2,7);WRITELN('5');GOTOXY(2,8);WRITELN('6');GOTOXY(2,9);WRITELN('7');GOTOXY(2,10);WRITELN('8');GOTOXY(2,11);WRITELN('9');GOTOXY(2,12);WRITELN('10');GOTOXY(5,3);WRITELN('AA');GOTOXY(5,4);WRITELN('BB');GOTOXY(5,5);WRITELN('CC');GOTOXY(5,6);WRITELN('DD');GOTOXY(5,7);WRITELN('EE');GOTOXY(5,8);WRITELN('FF');GOTOXY(5,9);WRITELN('GG');GOTOXY(5,10);WRITELN('HH');GOTOXY(5,11);WRITELN('II');GOTOXY(5,12);WRITELN('JJ');GOTOXY(10,3);WRITELN('A');GOTOXY(10,4);WRITELN('B');GOTOXY(10,5);WRITELN('C');GOTOXY(10,6);WRITELN('A');GOTOXY(10,7);WRITELN('A');GOTOXY(10,8);WRITELN('A');GOTOXY(10,9);WRITELN('B');GOTOXY(10,10);WRITELN('B');GOTOXY(10,11);WRITELN('A');GOTOXY(10,12);WRITELN('C');GOTOXY(22,3);WRITELN('1');GOTOXY(22,4);WRITELN('2');GOTOXY(22,5);WRITELN('3');GOTOXY(22,6);WRITELN('2');GOTOXY(22,7);WRITELN('1');GOTOXY(22,8);WRITELN('1');GOTOXY(22,9);WRITELN('3');GOTOXY(22,10);WRITELN('2');GOTOXY(22,11);WRITELN('1');GOTOXY(22,12);WRITELN('3');GOTOXY(26,3);WRITELN('1');GOTOXY(26,4);WRITELN('5');GOTOXY(26,5);WRITELN('8');GOTOXY(26,6);WRITELN('14');GOTOXY(26,7);WRITELN('3');GOTOXY(26,8);WRITELN('6');GOTOXY(26,9);WRITELN('9');GOTOXY(26,10);WRITELN('10');GOTOXY(26,11);WRITELN('20');GOTOXY(26,12);WRITELN('24');GOTOXY(30,3);WRITELN('1');GOTOXY(30,4);WRITELN('1');GOTOXY(30,5);WRITELN('1');GOTOXY(30,6);WRITELN('0');GOTOXY(30,7);WRITELN('1');GOTOXY(30,8);WRITELN('0');GOTOXY(30,9);WRITELN('0');GOTOXY(30,10);WRITELN('0');GOTOXY(30,11);WRITELN('1');GOTOXY(30,12);WRITELN('0');GOTOXY(35,3);WRITELN('2');GOTOXY(35,4);WRITELN('3');GOTOXY(35,5);WRITELN('1');GOTOXY(35,6);WRITELN('0');

Halaman 7

Page 8: Modul+Tik+Turbo+Pascal

GOTOXY(35,7);WRITELN('3');GOTOXY(35,8);WRITELN('0');GOTOXY(35,9);WRITELN('0');GOTOXY(35,10);WRITELN('0');GOTOXY(35,11);WRITELN('3');GOTOXY(35,12);WRITELN('0');IF K1='A' THEN GOTOXY(14,3);WRITELN('P');IF K2='B' THEN GOTOXY(14,4);WRITELN('Q');IF K3='C' THEN GOTOXY(14,5);WRITELN('R');IF K4='A' THEN GOTOXY(14,6);WRITELN('P');IF K5='A' THEN GOTOXY(14,7);WRITELN('P');IF K6='A' THEN GOTOXY(14,8);WRITELN('P');IF K7='B' THEN GOTOXY(14,9);WRITELN('Q');IF K8='B' THEN GOTOXY(14,10);WRITELN('Q');IF K9='A' THEN GOTOXY(14,11);WRITELN('P');IF K10='C' THEN GOTOXY(14,12);WRITELN('R');IF (J1='P') AND (GOL1=1) THEN GOTOXY(18,3);WRITELN(GAP1);IF (J2='Q') AND (GOL2=2) THEN GOTOXY(18,4);WRITELN(GAP2);IF (J3='R') AND (GOL3=3) THEN GOTOXY(18,5);WRITELN(GAP3);IF (J4='P') AND (GOL4=2) THEN GOTOXY(18,6);WRITELN(GAP4);IF (J5='P') AND (GOL5=1) THEN GOTOXY(18,7);WRITELN(GAP5);IF (J6='P') AND (GOL6=1) THEN GOTOXY(18,8);WRITELN(GAP6);IF (J7='Q') AND (GOL7=3) THEN GOTOXY(18,9);WRITELN(GAP7);IF (J8='Q') AND (GOL8=2) THEN GOTOXY(18,10);WRITELN(GAP8);IF (J9='P') AND (GOL9=1) THEN GOTOXY(18,11);WRITELN(GAP9);IF (J10='R') AND(GOL10=3) THEN GOTOXY(18,12);WRITELN(GAP10);READLN;CLRSCR;GOTOXY(2,2);WRITELN('TUNI');GOTOXY(7,2);WRITELN('TUNA');GOTOXY(12,2);WRITELN('PTKPS');GOTOXY(18,2);WRITELN('PTKPI');GOTOXY(26,2);WRITELN('PTKPA');GOTOXY(34,2);WRITELN('PTKP');GOTOXY(40,2);WRITELN('PKP');GOTOXY(47,2);WRITELN('GABER');IF S1=1 THEN GOTOXY(2,3);WRITELN(50*GAP1/100);IF S2=1 THEN GOTOXY(2,4);WRITELN(50*GAP2/100);IF S3=1 THEN GOTOXY(2,5);WRITELN(50*GAP3/100);IF S4=0 THEN GOTOXY(2,6);WRITELN(0);IF S5=1 THEN GOTOXY(2,7);WRITELN(50*GAP5/100);IF S6=0 THEN GOTOXY(2,8);WRITELN(0);IF S7=0 THEN GOTOXY(2,9);WRITELN(0);

IF S8=0 THEN GOTOXY(2,10);WRITELN(0);IF S9=1 THEN GOTOXY(2,11);WRITELN(50*GAP9/100);IF S10=0 THEN GOTOXY(2,12);WRITELN(0);IF A1=2 THEN GOTOXY(7,3);WRITELN(25*GAP1*A1/100);IF A2=3 THEN GOTOXY(7,4);WRITELN(25*GAP2*A2/100);IF A3=1 THEN GOTOXY(7,5);WRITELN(25*GAP3*A3/100);IF A4=0 THEN GOTOXY(7,6);WRITELN(0);IF A5=3 THEN GOTOXY(7,7);WRITELN(25*GAP5*A5/100);IF A6=0 THEN GOTOXY(7,8);WRITELN(0);IF A7=0 THEN GOTOXY(7,9);WRITELN(0);IF A8=0 THEN GOTOXY(7,10);WRITELN(0);IF A9=3 THEN GOTOXY(7,11);WRITELN(25*GAP9*A9/100);IF A10=0 THEN GOTOXY(7,12);WRITELN(0);GOTOXY(12,3);WRITELN(GAP1*JJ1/50);GOTOXY(12,4);WRITELN(GAP2*JJ2/50);GOTOXY(12,5);WRITELN(GAP3*JJ3/50);GOTOXY(12,6);WRITELN(GAP4*JJ4/50);GOTOXY(12,7);WRITELN(GAP5*JJ5/50);GOTOXY(12,8);WRITELN(GAP6*JJ6/50);GOTOXY(12,9);WRITELN(GAP7*JJ7/50);GOTOXY(12,10);WRITELN(GAP8*JJ8/50);GOTOXY(12,10);WRITELN(GAP9*JJ9/50);GOTOXY(12,11);WRITELN(GAP10*JJ10/50);GOTOXY(18,3);WRITELN(GAP1*JJ1/100);GOTOXY(18,4);WRITELN(GAP2*JJ2/100);GOTOXY(18,5);WRITELN(GAP3*JJ3/100);GOTOXY(18,6);WRITELN(GAP4*JJ4/100);GOTOXY(18,7);WRITELN(GAP5*JJ5/100);GOTOXY(18,8);WRITELN(GAP6*JJ6/100);GOTOXY(18,9);WRITELN(GAP7*JJ7/100);GOTOXY(18,10);WRITELN(GAP8*JJ8/100);GOTOXY(18,11);WRITELN(GAP9*JJ9/100);GOTOXY(18,12);WRITELN(GAP10*JJ10/100);GOTOXY(26,3);WRITELN(GAP1*JJ1/150);GOTOXY(26,4);WRITELN(GAP2*JJ2/150);GOTOXY(26,5);WRITELN(GAP3*JJ3/150);GOTOXY(26,6);WRITELN(GAP4*JJ4/150);GOTOXY(26,7);WRITELN(GAP5*JJ5/150);GOTOXY(26,8);WRITELN(GAP6*JJ6/150);GOTOXY(26,9);WRITELN(GAP7*JJ7/150);GOTOXY(26,10);WRITELN(GAP8*JJ8/150);GOTOXY(26,11);WRITELN(GAP9*JJ9/150);GOTOXY(26,12);WRITELN(GAP10*JJ10/150);GOTOXY(34,3);WRITELN((GAP1*JJ1/50)+(GAP1*JJ1/100)+(GAP1*JJ1/150));

Halaman 8

Page 9: Modul+Tik+Turbo+Pascal

GOTOXY(34,4);WRITELN((GAP2*JJ2/50)+(GAP2*JJ2/100)+(GAP2*JJ2/150));GOTOXY(34,5);WRITELN((GAP3*JJ3/50)+(GAP3*JJ3/100)+(GAP3*JJ3/150));GOTOXY(34,6);WRITELN((GAP4*JJ4/50)+(GAP4*JJ4/100)+(GAP4*JJ4/150));GOTOXY(34,7);WRITELN((GAP5*JJ5/50)+(GAP5*JJ5/100)+(GAP5*JJ5/150));GOTOXY(34,8);WRITELn((GAP6*JJ6/50)+(GAP6*JJ6/100)+(GAP6*JJ6/150));GOTOXY(34,9);WRITELN((GAP7*JJ7/50)+(GAP7*JJ7/100)+(GAP7*JJ7/150));GOTOXY(34,10);WRITELN((GAP8*JJ8/50)+(GAP8*JJ8/100)+(GAP8*JJ8/150));GOTOXY(34,11);WRITELN((GAP9*JJ9/50)+(GAP9*JJ9/100)+(GAP9*JJ9/150));GOTOXY(34,12);WRITELN((GAP10*JJ10/50)+(GAP10*JJ10/100)+(GAP10*JJ10/150));GOTOXY(40,3);WRITELN((GAP1*JJ1)-(GAP1*JJ1/50)+(GAP1*JJ1/100)+(GAP1*JJ1/150));GOTOXY(40,4);WRITELN((GAP2*JJ2)-(GAP2*JJ2/50)+(GAP2*JJ2/100)+(GAP2*JJ2/150));GOTOXY(40,5);WRITELN((GAP3*JJ3)-(GAP3*JJ3/50)+(GAP3*JJ3/100)+(GAP3*JJ3/150));GOTOXY(40,6);WRITELN((GAP4*JJ4)-(GAP4*JJ4/50)+(GAP4*JJ4/100)+(GAP4*JJ4/150));GOTOXY(40,7);WRITELN((GAP5*JJ5)-(GAP5*JJ5/50)+(GAP5*JJ5/100)+(GAP5*JJ5/150));GOTOXY(40,8);WRITELN((GAP6*JJ6)-(GAP6*JJ6/50)+(GAP6*JJ6/100)+(GAP6*JJ6/150));GOTOXY(40,9);WRITELN((GAP7*JJ7)-(GAP7*JJ7/50)+(GAP7*JJ7/100)+(GAP7*JJ7/150));GOTOXY(40,10);WRITELN((GAP8*JJ8)-(GAP8*JJ8/50)+(GAP8*JJ8/100)+(GAP8*JJ8/150));GOTOXY(40,11);WRITELN((GAP9*JJ9)-(GAP9*JJ9/50)+(GAP9*JJ9/100)+(GAP9*JJ9/150));GOTOXY(40,12);WRITELN((GAP10*JJ10)-(GAP10*JJ10/50)+(GAP10*JJ10/100)+(GAP10*JJ10/150));GOTOXY(47,3);WRITELN((GAP1*JJ1/50)+(GAP1*JJ1/100)+(GAP1*JJ1/150)+(50*GAP1/100)+(25*GAP1*A1/100));GOTOXY(47,4);WRITELN((GAP2*JJ2/50)+(GAP2*JJ2/100)+(GAP2*JJ2/150)+(50*GAP2/100)+(25*GAP2*A2/100));GOTOXY(47,5);WRITELN((GAP3*JJ3/50)+(GAP3*JJ3/100)+(GAP3*JJ3/150)+(50*GAP3/100)+(25*GAP3*A3/100));GOTOXY(47,6);WRITELN((GAP4*JJ4/50)+(GAP4*JJ4/100)+(GAP4*JJ4/150)+(0)+(0));GOTOXY(47,7);WRITELN((GAP5*JJ5/50)+(GAP5*JJ5/100)+(GAP5*JJ5/150)+(50*GAP5/100)+(25*GAP5*A5/100));GOTOXY(47,8);WRITELN((GAP6*JJ6/50)+(GAP6*JJ6/100)+(GAP6*JJ6/150)+(0)+(0));

GOTOXY(47,9);WRITELN((GAP7*JJ7/50)+(GAP7*JJ7/100)+(GAP7*JJ7/150)+(0)+(0));GOTOXY(47,10);WRITELN((GAP8*JJ8/50)+(GAP8*JJ8/100)+(GAP8*JJ8/150)+(0)+(0));GOTOXY(47,11);WRITELN((GAP9*JJ9/50)+(GAP9*JJ9/100)+(GAP9*JJ9/150)+(50*GAP9/100)+(25*GAP9*A9/100));GOTOXY(47,12);WRITELN((GAP10*JJ10/50)+(GAP10*JJ10/100)+(GAP10*JJ10/150)+(0)+(0));READLN;END.

NAMA FILE : LAT19B.PAS{program statistic}PROGRAM STATISTIK;USESCRT;CONSTX1=10;X2=20;X3=21;X4=31;X5=32;X6=42;X7=43;X8=53;X9=54;X10=64;X11=3;X12=2;X13=8;X14=5;X15=3;VARX16,X17,X18,X19,X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30,X31,X32,X33,X34,X35,X36,X37,X38,X39,X40,X41,X42,X43,X44,X45,X46,rata,b,f1,f2,b1,b2,n,me,xo:real;p:INTEGER;BEGINCLRSCR;X16:=(X1+X2)/2;X17:=(X3+X4)/2;X18:=(X5+X6)/2;X19:=(X7+X8)/2;X20:=(X9+X10)/2;X21:=-2;X22:=-1;X23:=0;X24:=1;X25:=2;x26:=x21*x21;X27:=X22*X22;X28:=X23*X23;X29:=X24*X24;X30:=X25*X25;X31:=X11*X21;X32:=X12*X22;X33:=X13*X23;X34:=X14*X24;X35:=X15*X25;X36:=X31*X31;X37:=X32*X32;X38:=X33*X33;

Halaman 9

Page 10: Modul+Tik+Turbo+Pascal

X39:=X34*X34;X20:=X34*X35;X41:=X11+X12+X13+X14+X15;X42:=X16+X17+X18+X19+X20;X43:=X21+X22+X23+X24+X25;X44:=X26+X27+X28+X29+X30;X45:=X31+X32+X33+X34+X35;X46:=X36+X37+X38+X39+X40;xo:=X18;b:=x4+x5/2;p:=10;n:=x42;f1:=x11+x12;f2:=x13;b1:=x13-x12;b2:=x13-x14;rata:=((xo+p)*(x45/x41));me:=b+p*((1/2*n)-f1)/f2;xo:=b+p*(b1/(b2+b1));gotoxy (2,2);writeln ('interval');gotoxy (12,2);writeln ('f');gotoxy (22,2);writeln ('x');gotoxy (32,2);writeln ('ci');gotoxy (42,2);writeln ('ci2');gotoxy (52,2);writeln ('fici');gotoxy (62,2);writeln ('fici2');gotoxy (2,3);writeln (x1,'-',x2);gotoxy (2,4);writeln (x3,'-',x4);gotoxy (2,5);writeln (x5,'-',x6);gotoxy (2,6);writeln (x7,'-',x8);gotoxy (2,7);writeln (x9,'-',x10);gotoxy (12,3);writeln (x11:0);gotoxy (12,4);writeln (x12:0);gotoxy (12,5);writeln (x13:0);gotoxy (12,6);writeln (x14:0);gotoxy (12,7);writeln (x15:0);gotoxy (22,3);writeln (x16:5:0);gotoxy (22,4);writeln (x17:5:0);gotoxy (22,5);writeln (x18:5:0);gotoxy (22,6);writeln (x19:5:0);gotoxy (22,7);writeln (x20:5:0);gotoxy (32,3);writeln (x21:5:0);gotoxy (32,4);writeln (x22:5:0);gotoxy (32,5);writeln (x23:5:0);gotoxy (32,6);writeln (x24:5:0);gotoxy (32,7);writeln (x25:5:0);gotoxy (42,3);writeln (x26:5:0);gotoxy (42,4);writeln (x27:5:0);gotoxy (42,5);writeln (x28:5:0);gotoxy (42,6);writeln (x29:5:0);gotoxy (42,7);writeln (x30:5:0);gotoxy (52,3);writeln (x31:5:0);gotoxy (52,4);writeln (x32:5:0);gotoxy (52,5);writeln (x33:5:0);gotoxy (52,6);writeln (x34:5:0);gotoxy (52,7);writeln (x35:5:0);gotoxy (62,3);writeln (x36:5:0);gotoxy (62,4);writeln (x37:5:0);gotoxy (62,5);writeln (x38:5:0);gotoxy (62,6);writeln (x39:5:0);gotoxy (62,7);writeln (x40:5:0);gotoxy (2,8);writeln ('jumlah');gotoxy (12,8);writeln (x41:5:0);gotoxy (22,8);writeln (x42:5:0);gotoxy (32,8);writeln (x43:5:0);gotoxy (42,8);writeln (x44:5:0);gotoxy (2,12);writeln ('rata=');gotoxy (2,13);writeln ('me=');gotoxy (2,14);writeln ('mo=');gotoxy (12,12);writeln (rata:5:0);gotoxy (12,13);writeln (me:5:0);

gotoxy (12,14);writeln (Mo:5:0);repeat until keypressed;end.

TUGAS 4BUATLAH PROGRAMNYA DARI TABEL BERIKUT:

SOAL 1

NO NAMA N1 N2 JUMLAH RATA21 A 2 4 2 B 4 53 C 8 6 4 D 4 3 5 E 3 7 6 F 5 8 7 G 8 3 8 H 4 5 9 I 7 9 10 J 6 3 JUMLAH = N1 + N2RATA2 = JUMLAH/2

SOAL 2DARI TABEL BERIKUT:NO X Y X2 Y2 XY1 N N+102 N+11345678910JUMLAHN = 10TENTUKAN NILAI A, B, C, D, E, F DENGAN RUMUSAN:A = N [JUMXY]B = [JUM X] [JUM Y]C = N [JUM X2] – [JUM X]2

D = N [JUM Y2] – [JUM Y]2

E = [ C D ]F = [ A – B ] / SQRT [ E ]

SOAL 3NO INTERVAL

N1 N2 FI XI CI FICI FICI2

1 N N+10 3 32 N+11 4 23 3 14 10 XO 05 2 -16 6 -27 2 -38 8 -49 7 -510 2 -6JUMLAHN = 10

DARI TABEL DIATAS TENTUKAN RATA2NYA(X)XI = [ N1 + N2 ] / 2P = 10X = XO + P [ JUM FICI2 / JUM FI]

Halaman 10

Page 11: Modul+Tik+Turbo+Pascal

PRAKTEK KE-5PROGRAM MENGULANGDAN SUATU KONDISIFOR… TO … DO …

PROGRAM ULANG1;USES CRT;VARI: INTEGER;BEGINCLRSCR;GOTOXY(2,2);WRITELN('NILAI A');GOTOXY(12,2);WRITELN('NILAI B');GOTOXY(22,2);WRITELN('NILAI A+B');FOR I := 1 TO 10 DOBEGINGOTOXY(2,2+I);WRITE(2*I);GOTOXY(12,2+I);WRITE(2+2*I);GOTOXY(22,2+I);WRITE(2+I+2*I+2);END;READLN;END.

PROGRAM ULANG1;USES CRT;VARI: INTEGER;N1,N2,JUMLAH : REAL;NAMA:STRING;

BEGINCLRSCR;FOR I := 1 TO 3 DOBEGIN

GOTOXY(2,2);WRITELN('NAMA');GOTOXY(2,4);WRITELN('NILAI 1');GOTOXY(2,6);WRITELN('NILAI 2');GOTOXY(12,2);READLN(NAMA);GOTOXY(12,4);READLN(N1);GOTOXY(12,6);READLN(N2);CLRSCR;JUMLAH:=N1+N2;GOTOXY(2,10);WRITELN(N1,N2,JUMLAH);END;READLN;END.

NAMA FILE : LAT11.PASPROGRAM FORTODO;USES CRT;VARX : INTEGER;CEL,FAH : REAL;BEGINCLRSCR;WRITELN(‘CELCIUS

FAHRENHEIT ’);CEL := 0;FOR X := 1 TO 100 DO BEGINFAH := 1.8*CEL+32;WRITE(CEL:8:2,FAH:14:2);CEL := CEL+0.5;END;REPEAT UNTIL KEYPRESSED;END.

PROGRAM ULANG2;

USES CRT;VARI : INTEGER;BEGINCLRSCR;GOTOXY(2,2);WRITELN('NO');GOTOXY(12,2);WRITELN('A');GOTOXY(22,2);WRITELN('B');GOTOXY(32,2);WRITELN('A+B');

FOR I:= 1 TO 10 DOBEGINGOTOXY(2,2+I);WRITE(I);GOTOXY(12,2+I);WRITE(2*I);GOTOXY(22,2+I);WRITE(3*I);GOTOXY(32,2+I);WRITE(2*I+3*I);END;READLN;END.

TUGAS 5BUATLAH PROGRAMNYA DARI TABEL BERIKUT:

NO A B C A+B+C A+(B/C)1 5 6 72 7 9 103 9 12 134 11 15 165 13 18 196 15 21 227 17 24 258 19 27 289 21 30 3110 23 33 34

PRAKTEK KE-6PROGRAM MENGULANGDAN SUATU KONDISIWHILE …..

PROGRAM ULANG1;USES CRT;VARI: INTEGER;BEGINCLRSCR;GOTOXY(2,2);WRITELN('NILAI A');GOTOXY(12,2);WRITELN('NILAI B');GOTOXY(22,2);WRITELN('NILAI A+B');

I:=0;WHILE I < 20 DOBEGINI := I + 1;GOTOXY(2,2+I);WRITE(2*I);GOTOXY(12,2+I);WRITE(2+2*I);GOTOXY(22,2+I);WRITE(2+I+2*I+2);END;READLN;END.

NAMA FILE : LAT12.PASPROGRAM WHILEDO;USES CRT;VARN,TOTAL,RATA-RATA : REAL;X,I : INTEGER;BEGIN

Halaman 11

Page 12: Modul+Tik+Turbo+Pascal

CLRSCR;WRITE(‘BANYAK DATA : ‘);READLN(N);I := 0;TOTAL := 0;WHILE I < N DOBEGINI := I +1;WRITE(‘NILAI DATA KE ‘,I,’ ? ’ );READLN(N);TOTAL := TOTAL + N;END;RATARATA := TOTAL/N;WRITELN;WRITELN(‘TOTAL NILAI : ‘,TOTAL:8:2);WRITELN(‘JUMLAH DATA : ‘,N:3);WRITELN(‘RATA-RATA : ‘,RATARATA:8:2);REPEAT UNTIL KEYPRESSED;END.

NAMA FILE : LAT13.PASPROGRAM ULANGBERTANYA;USES CRT;VARX : INTEGER;CEL,FAH : REAL;LAGI : CHAR;BEGINCLRSCR;LAGI := ‘Y’;WHILE LAGI = ‘Y’ DOBEGINCLRSCR;WRITE(‘DERAJAT=‘);READLN(CEL);FAH := 1.8*CEL+32;WRITELN(‘ FAHRENHEIT :’,FAH:8:2);WRITE(‘ULANG LAGI (Y/T) ? ‘);READLN(LAGI);END;REPEAT UNTIL KEYPRESSED;END.

TUGAS KE 6BUATLAH PROGRAMNYA MENGGUNAKAN WHILE .. DO:

1. Menghitung luas lingkaran, segitiga, empat persegi panjang

2. Menghitung persamaan Y=(A+B)+C

PRAKTEK KE-7LATIHAN IF … THEN … ELSENAMA FILE : LAT15.PASPROGRAM IF_THEN;USES CRT;VARPIL:STRING[1];R,L,T,Y:REAL;BEGINCLRSCR;GOTOXY(10,2);WRITELN('PILIHAN');GOTOXY(10,6);WRITELN('A,Y1');GOTOXY(10,7);WRITELN('B,Y2');GOTOXY(10,8);WRITELN('C,Y3');GOTOXY(10,9);WRITELN('D,Y4');GOTOXY(10,10);WRITELN('E,Y5');GOTOXY(10,11);WRITELN('F,Y6');GOTOXY(10,12);WRITELN('G,Y7');GOTOXY(10,13);WRITELN('H,Y8');GOTOXY(10,14);WRITELN('I,Y9');

GOTOXY(10,15);WRITELN('J,Y10');GOTOXY(10,16);WRITELN('K,Y11');GOTOXY(10,17);WRITELN('L,Y12');GOTOXY(10,18);WRITELN('M,Y13');GOTOXY(10,19);WRITELN('N,Y14');GOTOXY(10,20);WRITELN('O,Y14');GOTOXY(10,21);WRITELN('P,Y16');

WHILE(PIL<'A')OR(PIL>'Q')DOBEGINGOTOXY(10,23);WRITE('PILIH ANDA?');READLN(PIL);END;

CLRSCR;IF PIL='A' THENBEGINWRITE('A');READLN(R);WRITE('b');READLN(L);WRITE('C');READLN(T);Y:=(R+L)+T;WRITELN('Y1',Y:20:1);END;

IF PIL='B' THENBEGINWRITE('A');READLN(L);WRITE('b');READLN(T);WRITE('C');READLN(R);Y:=(L+T)-R;WRITELN('Y2',Y:9:2);END;

IF PIL='C' THENBEGINWRITE('A');READLN(R);WRITE('b');READLN(L);WRITE('C');READLN(T);Y:=(R+L)/T;WRITELN('Y3',Y:9:2);END;

IF PIL='D' THENBEGINWRITE('A');READLN(R);WRITE('b');READLN(L);WRITE('C');READLN(T);Y:=(R+L)*T;WRITELN('Y4',Y:9:2);END;

IF PIL='E' THENBEGINWRITE('A');READLN(R);WRITE('b');READLN(L);WRITE('C');READLN(T);Y:=(R-L)+T;WRITELN('Y5',Y:9:2);END;

IF PIL='F' THENBEGINWRITE('A');READLN(R);WRITE('b');READLN(L);WRITE('C');READLN(T);Y:=(R-L)-T;WRITELN('Y6',Y:9:2);

END;

Halaman 12

Page 13: Modul+Tik+Turbo+Pascal

IF PIL='G' THENBEGINWRITE('A');READLN(R);WRITE('b');READLN(L);WRITE('C');READLN(T);Y:=(R-L)/T;WRITELN('Y7',Y:9:2);

END;

IF PIL='H' THENBEGINWRITE('A');READLN(R);WRITE('B');READLN(L);WRITE('C');READLN(T);Y:=(R-L)*T;WRITELN('Y8',Y:9:2);

END;

IF PIL='I' THENBEGINWRITE('A');READLN(R);WRITE('b');READLN(L);WRITE('C');READLN(T);Y:=(R/L)+T;WRITELN('Y9',Y:20:1);END;

IF PIL='J' THENBEGINWRITE('A');READLN(R);WRITE('b');READLN(L);WRITE('C');READLN(T);Y:=(R/L)-T;WRITELN('Y10',Y:20:2);

END;

IF PIL='K' THENBEGINWRITE('A');READLN(R);WRITE('b');READLN(L);WRITE('C');READLN(T);Y:=(R/L)/T;WRITELN('Y11',Y:20:2);END;

IF PIL='L' THENBEGINWRITE('A');READLN(R);WRITE('b');READLN(L);WRITE('C');READLN(T);Y:=(R/L)*T;WRITELN('Y12',Y:20:2);END;

IF PIL='M' THENBEGINWRITE('A');READLN(R);WRITE('b');READLN(L);WRITE('C');READLN(T);Y:=(R*L)+T;WRITELN('Y13',Y:20:2);END;

IF PIL='N' THENBEGINWRITE('A');READLN(R);WRITE('b');READLN(L);WRITE('C');READLN(T);

Y:=(R*L)-T;WRITELN('Y14',Y:20:2);

END;IF PIL='O' THENBEGINWRITE('A');READLN(R);WRITE('b');READLN(L);WRITE('C');READLN(T);Y:=(R*L)/T;WRITELN('Y15',Y:20:2);

END;IF PIL='P' THENBEGINWRITE('A');READLN(R);WRITE('B');READLN(L);WRITE('C');READLN(T);Y:=(R*L)*T;WRITELN('Y16',Y:9:2);END;END.

NAMA FILE : LAT16.PASPROGRAM IF_THEN_ELSE;USES CRT;VARA,B,C,D,Z1,Z2,X1,X2 : REAL;LAGI : CHAR;BEGINLAGI := ‘Y’WHILE (LAGI=’Y’) OR (LAGI=’y’);BEGINA := 0;WHILE A = 0 DOBEGINWRITE(‘NILAI A ? ‘);READLN(A);END;WRITE(‘NILAI B ? ‘);READLN(B);WRITE(‘NILAI C ? ‘);READLN( C );D := B*B – 4*A*C;IF D = 0 THENBEGINX1 := -B/(2*A);WRITELN(‘ADA 2 AKAR KEMBAR, YAITU :’);WRITELN(‘X1 = X2 : ‘,X1:9:2);ENDELSEBEGINIF D > 0 THENBEGINX1 := (-B+SQRT(D))/(2*A);X2 := (-B-SQRT(D))/(2*A);WRITELN(‘ADA 2 AKAR BERLAINAN, YAITU’);WRITE(‘X1 = ‘,X1:9:2);WRITE(‘X2 = ‘,X2:9:2);ENDELSEBEGINZ1 := -B/(2*A);Z2 := SQRT(-D)/(2*A);WRITELN(ADA 2 AKAR IMAJINER, YAITU’);WRITELN(‘X1 = ’, Z1:9:2 ,’ + ’, Z2:9:2, ‘I’);WRITELN(‘X2 = ’, Z1:9:2 ,’ - ’, Z2:9:2, ‘I’);END;END;

Halaman 13

Page 14: Modul+Tik+Turbo+Pascal

WRITE(LAGI (Y/T) ? ‘); READLN(LAGI);END;END.

TUGAS KE – 7BUATLAH PROGRAMNYA:

1. MENU UNTUK MENGHITUNGA. V = S / TB. A = S / T TC. F = M S / T TD. E = M V V / 2

2. MENU UNTUK MENGHITUNGA. LUAS LINGKARANB. LUAS 4PERSEGIPANJANGC. LUAS SEGITIGA

PRAKTEK KE-8LATIHAN CASE … OF …

NAMA FILE : LAT17.PASPROGRAM CASEOF;USES CRT;VAR PIL:BYTE; A,B,C,Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9,Y10,Y11,Y12,Y13,Y14,Y15,Y16:REAL;BEGIN CLRSCR; GOTOXY(10,2);WRITELN('MENU'); GOTOXY(10,3);WRITELN('============='); GOTOXY(10,4);WRITELN('1.Y1=(A+B)+C'); GOTOXY(10,5);WRITELN('2.Y2=(A+B)-C'); GOTOXY(10,6);WRITELN('3.Y3=(A+B)/C'); GOTOXY(10,7);WRITELN('4.Y4=(A+B)*C'); GOTOXY(10,8);WRITELN('5.Y5=(A-B)+C'); GOTOXY(10,9);WRITELN('6.Y6=(A-B)-C'); GOTOXY(10,10);WRITELN('7.Y7=(A-B)/C'); GOTOXY(10,11);WRITELN('8.Y8=(A-B)*C'); GOTOXY(10,12);WRITELN('9.Y9=(A/B)+C'); GOTOXY(10,13);WRITELN('10.Y10=(A/B)-C'); GOTOXY(10,14);WRITELN('11.Y11=(A/B)/C'); GOTOXY(10,15);WRITELN('12.Y12=(A/B)*C'); GOTOXY(10,16);WRITELN('13.Y13=(A*B)+C'); GOTOXY(10,17);WRITELN('14.Y14=(A*B)-C'); GOTOXY(10,18);WRITELN('15.Y15=(A*B)/C'); GOTOXY(10,19);WRITELN('16.Y16=(A*B)*C'); GOTOXY(10,20);WRITE('NOMOR PILIHAN?');READLN(PIL); CLRSCR;

CASE PIL OF 1: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y1:=(A+B)+C; WRITELN('Y1:=(A+B)+C;',Y1:9:2); END; 2: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y2:=(A+B)-C; WRITELN('Y2:=(A+B)-C;',Y2:9:2); END; 3: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y3:=(A+B)/C; WRITELN('Y3:=(A+B)/C;',Y3:9:2); END; 4: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y4:=(A+B)*C; WRITELN('Y4:=(A+B)*C;',Y4:9:2); END; 5: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y5:=(A-B)+C; WRITELN('Y5:=(A-B)+C;',Y5:9:2); END; 6: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y6:=(A-B)-C; WRITELN('Y6:=(A-B)-C;',Y6:9:2); END; 7: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y7:=(A-B)/C; WRITELN('Y7:=(A-B)/C;',Y7:9:2); END; 8: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y8:=(A-B)*C; WRITELN('Y8:=(A-B)*C;',Y8:9:2); END; 9: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y9:=(A/B)+C;

Halaman 14

Page 15: Modul+Tik+Turbo+Pascal

WRITELN('Y9:=(A/B)+C;',Y9:9:2); END; 10: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y10:=(A/B)-C; WRITELN('Y10:=(A/B)-C;',Y10:9:2); END; 11: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y11:=(A/B)/C; WRITELN('Y11:=(A/B)/C;',Y11:9:2); END; 12: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y12:=(A/B)*C; WRITELN('Y12:=(A/B)*C;',Y12:9:2); END; 13: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y13:=(A*B)+C; WRITELN('Y13:=(A*B)+C;',Y13:9:2); END; 14: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y14:=(A*B)-C; WRITELN('Y14:=(A*B)-C;',Y14:9:2); END; 15: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y15:=(A*B)/C; WRITELN('Y15:=(A*B)/C;',Y15:9:2); END; 16: BEGIN WRITE('A=');READLN(A); WRITE('B=');READLN(B); WRITE('C=');READLN(C); Y15:=(A*B)*C; WRITELN('Y15:=(A*B)*C;',Y15:9:2); END; ELSE BEGIN END; END;

END.

TUGAS KE 8BUATLAH PROGRAMNYA:

1.MENU UNTUK MENGHITUNGD. V = S / TE. A = S / T TF. F = M S / T TG. E = M V V / 2

2.MENU UNTUK MENGHITUNGH. LUAS LINGKARANI. LUAS 4PERSEGIPANJANGJ. LUAS SEGITIGA

PRAKTEK KE-9LATIHAN PROCEDURE …

NAMA FILE : LAT22.PASPROGRAM prosedur;USES CRT;VARPIL:BYTE;A,B,C,Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9:REAL;PROCEDURE S;BEGINWRITE('A');READLN(A);WRITE('B');READLN(B);WRITE('C');READLN(C);Y1:=(A+B)+C;WRITELN('Y1:=(A+B)+C',Y1:9:2);END;PROCEDURE O;BEGINWRITE('A');READLN(A);WRITE('B');READLN(B);WRITE('C');READLN(C);Y2:=(A+B)-C;WRITELN('Y2:=(A+B)-C',Y2:9:2);END;PROCEDURE L;BEGINWRITE('A');READLN(A);WRITE('B');READLN(B);WRITE('C');READLN(C);Y3:=(A+B)/C; WRITELN('Y3:=(A+B)/C',Y3:9:2);END;PROCEDURE E;BEGINWRITE('A');READLN(A);WRITE('B');READLN(B);WRITE('C');READLN(C);Y4:=(A+B)*C;WRITELN('Y4:=(A+B)*C',Y4:9:2);END;PROCEDURE H;BEGINWRITE('A');READLN(A);WRITE('B');READLN(B);WRITE('C');READLN(C);Y5:=(A-B)+C;WRITELN('Y5:=(A-B)+C',Y5:9:2);END;PROCEDURE U;BEGINWRITE('A');READLN(A);WRITE('B');READLN(B);

Halaman 15

Page 16: Modul+Tik+Turbo+Pascal

WRITE('C');READLN(C);Y6:=(A-B)-C;WRITELN('Y6:=(A-B)-C',Y6:9:2);END;PROCEDURE D;BEGINWRITE('A');READLN(A);WRITE('B');READLN(B);WRITE('C');READLN(C);Y7:=(A-B)/C;WRITELN('Y7:=(A-B)/C',Y7:9:2);END;PROCEDURE I;BEGINWRITE('A');READLN(A);WRITE('B');READLN(B);WRITE('C');READLN(C);Y8:=(A-B)*C;WRITELN('Y8:=(A-B)*C',Y8:9:2);END;PROCEDURE N;BEGINWRITE('A');READLN(A);WRITE('B');READLN(B);WRITE('C');READLN(C);Y9:=(A/B)+C;WRITELN('Y9:=(A*B)+C',Y9:9:2);END;BEGINCLRSCR;GOTOXY(10,2);WRITELN('MENU');GOTOXY(10,3);WRITELN('===================');GOTOXY(10,4);WRITELN('1.Y1=(A+B)+C');GOTOXY(10,5);WRITELN('2.Y2=(A+B)-C');GOTOXY(10,6);WRITELN('3.Y3=(A+B)/C');GOTOXY(10,7);WRITELN('4.Y4=(A+B)*C');GOTOXY(10,8);WRITELN('5.Y5=(A-B)+C');GOTOXY(10,9);WRITELN('6.Y6=(A-B)-C');GOTOXY(10,10);WRITELN('7.Y7=(A-B)/C');GOTOXY(10,11);WRITELN('8.Y8=(A-B)*C');GOTOXY(10,12);WRITELN('9.Y9=(A*B)+C');GOTOXY(10,13);WRITELN('Pilihan Anda?');READLN(PIL);CLRSCR;CASE PIL OF1:BEGINS;END;2:BEGINO;END;3:BEGINL;END;4:BEGINE;END;

5:BEGINH;END;6:BEGINU;END;7:BEGIND;END;8:BEGINI;END;

9:BEGINN;END;ELSEBEGINEND;END;END.

NAMA FILE : LAT23.PASPROGRAM PROCEDURE_KE3;USES CRT;VARPIL : BYTE;R,L,T,LUAS : REAL;PROCEDURE LUAS_LINGKARAN;BEGINWRITE(‘JARI-JARI : ‘);READLN( R );LUAS := PI*R*R;WRITELN(‘LUAS LINGKARAN : ‘,LUAS:9:2);END;PROCEDURE LUAS_SEGITIGA;BEGINWRITE(‘PANJANG ALAS : ‘);READLN( L );WRITE(‘TINGGI : ‘);READLN( T );LUAS := 0.5*L*T;WRITELN(‘LUAS SEGITIGA : ‘,LUAS:9:2);END;PROCEDURE LUAS_4_PERSEGIPANJANG;BEGINWRITE(‘PANJANG : ‘);READLN( T );WRITE(‘LEBAR : ‘);READLN( L );LUAS := T*L;WRITELN(‘LUAS 4 PERSEGI PANJANG : ‘,LUAS:9:2);END;BEGINCLRSCR;GOTOXY(10,2);WRITELN(‘MENU ‘);GOTOXY(10,4);WRITELN(‘=================== ‘);GOTOXY(10,6);WRITELN(‘1. MENGHITUNG LUAS LINGKARAN‘);GOTOXY(10,8);WRITELN(‘2. MENGHITUNG LUAS SEGITIGA‘);GOTOXY(10,10);WRITELN(‘3. MENGHITUNG LUAS 4 PERSEGIPANJANG‘);GOTOXY(10,12);WRITE(‘NOMOR PILIHAN ?‘);READLN(PIL);CLRSCR;

Halaman 16

Page 17: Modul+Tik+Turbo+Pascal

CASE PIL OF1:BEGINLUAS_LINGKARAN;END;2:BEGINLUAS_SEGITIGA;END;3:BEGINLUAS_4_PERSEGIPANJANG;END;ELSEBEGINWRITELN(‘NOMOR PILIHAN HANYA 1, 2, 3’);WRITELN(‘JANGAN NGAWUR AAAAAAAAH’);END;END;END.

TUGAS KE 9BUATLAH PROGRAMNYA GABUNGAN MENU DAN PROSEDUR

1. MENU:A. A= X/YB. B=X*YC. C=X-YD. D=X+Y

2. MENU:A. V = S /TB. A = S / T TC. F = M S / T TD. E = M V V / 2

PRAKTEK KE 10LATIHAN FUNCTION …

NAMA FILE : LAT24.PASPROGRAM FUNCTION_KE1;USES CRTVARNILAI1,NILAI2 : REAL;FUNCTION TERBESAR(X,Y : REAL): REAL;BEGINIF X > Y THEN TERBESAR := XELSETERBESAR := Y;END;BEGINCLRSCR;WRITE(‘NILAI PERTAMA : ‘);READLN(NILAI1);WRITE(‘NILAI KEDUA : ‘);READLN(NILAI2);WRITELN(‘NILAI TERBESAR ADALAH : ‘,TERBESAR(NILAI1,NILAI2):9;3);REPEAT UNTIL KEYPRESSED;END.

NAMA FILE : LAT25.PASPROGRAM FUNCTION_KE2;USES CRT;VAR

X,Y,Z : INTEGER;FUNCTION JUMLAH(A,B,C : REAL);REAL;BEGINJUMLAH := A+B;C := A*B;END;BEGINCLRSCR;WRITE(‘NILAI KE 1 : ‘);READLN(X);WRITE(‘NILAI KE 2 : ‘);READLN(Y);WRITELN(X, ’ + ’ , Y, ’ = ’ , JUMLAH(X,Y,C));WRITELN(X, ’ * ’ ,Y, ’ = ’ , C);END.

NAMA FILE : LAT26.PASPROGRAM FUNCTION_KE3;VARA,B : REAL;FUNCTION PANGKAT(X , N : REAL);REAL;BEGINPANGKAT := EXP(LN(X)*N);END;BEGINWRITE(‘NILAI AKAN DIPANGKATKAN : ‘);READLN(A);WRITE(‘DIPANGKATKAN DENGAN : ‘);READLN(B);WRITELN(A:9:3, ’ PANGKAT ’ ,B:9:3, ’ ADALAH ’, PANGKAT(A,B):9:3);REPEAT UNTIL KEYPRESSED;END.

NAMA FILE : LAT27.PASPROGRAM FUNGSI_MAT;USES CRTVARX,Y,X,P : REAL;FUNCTION MUTLAK(X : REAL): REAL;BEGINIF X < 0 THEN X := -X; ABS := X;END;FUNCTION EKPONEN(A: REAL);REAL;BEGINEKPONEN:= EXP(X);END;

FUNTION LON(A:REAL):REAL;BEGINLON := LN(X);END;

FUNCTION LOGARITMA(A:REAL):REAL;BEGINLOGARITMA := LN(X)/LN(10);END;BEGINCLRSCR;WRITE(‘BILANGAN YANG DIMUTLAKAN : ‘);READLN(X);WRITE(‘BILANGAN YANG DIEXPONENSIALKAN : ‘);READLN(Y);WRITE(‘BILANGAN YANG DILOGARITMA NATURALKAN : ‘);READLN(Z);WRITE(‘BILANGAN YANG DILOGARITMAKAN : ‘);READLN(P);WRITELN(‘NILIA MUTLAK’,X,’ADALAH:’,MUTLAK(X);WRITELN(‘NILIA EKPONENSIAL’,Y,’ADALAH:’,EKPONEN(X);

Halaman 17

Page 18: Modul+Tik+Turbo+Pascal

WRITELN(‘NILIA LN’,Z,’ADALAH:’,LON(Z);WRITELN(‘NILIA LOGARITMA’,P,’ADALAH:’,LOGARITMA(P);REPEAT UNTIL KEYPRESSED;END.

PROGRAM TRIGONOMETRI;VARX : REAL;

FUNCTION F_SINUS(A: REAL);BEGINF_SINUS := SIN(X/57.3);END;FUNCTION F_COSINUS(A: REAL);BEGINF_COSINUS := COS(X/57.3);END;

FUNCTION F_COSECAN(A: REAL);BEGINF_COSECAN := 1/COS(X/57.3);END;FUNCTION F_SECAN(A: REAL);BEGINF_SECAN := 1/SIN(X/57.3);END;BEGINCLRSCR;WRITE(‘SUDUT : ‘);READLN(X);WRITELN(‘SINUS : ‘,X,’ADALAH :’,F_SINUS(X):9:2);WRITELN(‘COSINUS : ‘,X,’ADALAH :’,F_COSINUS(X):9:2);WRITELN(‘COSECAN : ‘,X,’ADALAH :’,F_COSECAN(X):9:2);WRITELN(‘SECA : ‘,X,’ADALAH :’,F_SECAN(X):9:2);REPEAT UNTILKEYPRESSED;END.

TUGAS KE 10BUATLAH PROGRAM MENGGUNAKAN FUNCTION:Y1 = ( A + B ) + CY2 = ( A / B ) + CY3 = ( A - B ) + CY4 = ( A * B ) + CY5 = ( A + B ) + CY6 = ( A + B ) / CY7 = ( A + B ) - CY8 = ( A + B ) * C

PRAKTEK KE 11OPERASI STRING

NAMA FILE : LAT28.PASPROGRAM JUM_KAR;USES CRT;CONSTJENIS = ‘BAHASA’;NAMA = ‘TURBO PASCAL’;VARSIFAT : STRING[10];KALIMAT : STRING[80];

BEGINCLRSCR;SIFAT := ‘TERSTRUKTUR’;KALIMAT := JENIS+’ ‘ +NAMA+’ ‘ + ‘MERUPAKAN’+JENIS+’ ‘ +SIFAT;WRITELN(KALIMAT);END.

NAMA FILE : LAT29.PASPROGRAMHAPUS_KAR;USES CRT;VARBAHASA : STRING[12];URUTAN,POSISI : INTEGER;BEGINBAHASA := ‘TURBO PASCAL’;FOR URUTAN := 1 TO 12 DOBEGINPOSISI := 14 – URUTAN;DELETE(BAHASA,POSISI,1);WRITE(BAHASA);END;REPEAT UNTIL KEYPRESSED;END.

NAMA FILE : LAT30.PASPROGRAM INSET_KAR;USES CRT;VARNAMA : STRING[13];BEGINCLRSCR;NAMA := ‘TURBOPASCAL’;WRITELN(NAMA);INSERT(‘=’,NAMA,6);WRITELN(NAMA);REPEAT UNTIL KEYPRESSED;END.

NAMA FILE : LAT31.PASPROGRAM STR;USES CRT;VARNILAI1,NILAI2 : INTEGER;X1,X2 : STRING[5];BEGINCLRSCR;NILAI1 := 1234;NILAI2 := 56789;WRITELN(NILAI1,NILAI2);STR(NILAI1:4,X1);STR(NILAI2:4,X2);WRITELN(X1+X2);REPEAT UNTIL KEYPRESSED;END.

PROGRAM DEMO_HURUF;USES CRT,DOS;VARNAMA : STRING[50];HURUF :STRING;BUFLEN,I,J,PANJANG,TENGAH : INTEGER;BEGINCLRSCR;BUFLEN := 50;WRITE('NAMA ANDA ? ');READLN(NAMA);PANJANG := LENGTH(NAMA);TENGAH := 40-PANJANG DIV 2;CLRSCR;

Halaman 18

Page 19: Modul+Tik+Turbo+Pascal

FOR I := 1 TO PANJANG DOBEGINHURUF := COPY(NAMA,I,1);FOR J := 80 DOWNTO TENGAH + I DOBEGINGOTOXY(J,10);WRITELN(HURUF,' ');DELAY(600);END;END;REPEAT UNTIL KEYPRESSED;END.

NAMA FILE : LAT33.PASPROGRAM IO;USES CRT;VARN, I, FAKTORIAL : INTEGER;HIO : INTEGER;BEGINCLRSCR;REPEAT{$I-}WRITE(‘BERAPA FAKTORIAL : ‘);READLN(N);{$I+}HIO := IORESULT;IF HIO <> 0 THENWRITELN(‘DATA YANG DIMASUKAN SALAH,ULANGI’);UNTIL HIO = 0;FAKTORIAL := 1;FOR I := 2 TO N DO FAKTORIAL := FAKTORIAL*1;WRITELN;WRITE(N,’FAKTORIAL = ‘,FAKTORIAL);END.

NAMA FILE : LAT34.PASPROGRAM MENUNGGU;USES CRT;PROCEDURE T_ENTER;BEGINWRITELN(‘TEKAN SEMBARANG TOMBOL’);READLN;END;PROCEDURE T_SEMBARANG;BEGINWHILE NOT KEYPRESSED DOWRITELN(‘TEKAN SEMBARANG TOMBOL’);END.BEGINCLRSCR;T_ENTER;T_SEMBARANG;END.

TUGAS KE 11BUATLAH PROGRAMNYA:

1. LIHAT CONTOH LAT29.PAS RUBAHLAH KATA TURBO PASCAL MENJADI NAMA ANDA

2. LIHAT CONTOH LAT30.PAS GUNAKAN TITIK DAN NAMA ANDA

PRAKTEK KE 12LARIK

Larik atau record bertugas menangani data-data dalam satu klas yang sama.Contoh dalam satu kelas anda terdapat nama siswa, jenis kelamin, nilai, hobi dan sebagainya.Larik atau record harus dikenalkan terlebih dahulu kepada computer oleh anda dengan cara:

VarX : array[1..100] of byte;

Keterangan:X : nama larik1..100 : tipe indekByte : tipe dari larik

Deklarasi array:X[1] := 1;X[2] := 2;X[3] := 3;X[4] := 4;

NAMA FILE : LAT35.PAS{menentukan bilangan prima sampai dengan 1000}

Program larik1;uses wincrt;VarBatas:real;I,j,jumlah:word;Prima:array[1..1000] of char;beginbatas := sqrt(1000);jumlah := 0;writeln('Bilangan prima s.d 1000');writeln;for i := 2 to 1000 dobeginif prima[i] <> '*' thenbeginwrite(i:5);jumlah:=jumlah+1;if i < batas thenbeginj := i;while j < 1000 dobeginj:=j+i;prima[j] := '*';end;end;end;end;writeln;writeln('ada = ',jumlah);end.

NAMA FILE : LAT36.PASPROGRAM LARIK2;program larik2;uses wincrt;vari,n : byte;total,rata,sigma,sd : real;x : array[byte] of real;

Halaman 19

Page 20: Modul+Tik+Turbo+Pascal

beginclrscr;write('jumlah data(mak 255) ? ');readln(n);writeln;

total := 0;for i := 1 to n dobeginwrite('nilai ke',i,'?');readln(x[i]);total := total + x[i];end;

rata := total/n;sigma := 0;for i := 1 to n dosigma := sigma +sqr(x[i]-rata);sd := sqrt (sigma/n);writeln;writeln('jumlah data : ',n:7);writeln('total : ',total:7:2);writeln('rata-rata :',rata:7:2);writeln('standar deviasi :',sd:7:2);

end.

Nama file lat37.pasPROGRAM LARIK3;USES WINCRT;CONSTNILAIHURUF : ARRAY[1..5] OF CHAR = ('A','B','C','D','E');JAWABSOAL:ARRAY[1..10] OF BYTE=(1,2,3,4,5,6,7,8,9,10);NILAIJAWAB:ARRAY[1..2] OF BYTE=(0,1);

VARI : WORD;JUMLAHNILAI : INTEGER;JAWAB:CHAR;

BEGINCLRSCR;WRITELN('SOAL KE - 1');WRITELN('SEBUAH BENDA MELAKUKAN GERAK GLB DENGAN KECEPATAN 10 M/S ');WRITELN('DALAM WAKTU 10 DETIK. TENTUKAN JARAK YANG DITEMPUH ? ');WRITELN('A. 1 M B. 10 M C. 100 M D. 0.1 M E. 0.01 M ');WRITELN(' ');WRITE('JAWABAN ? ');READLN(JAWAB);

IF UPCASE(JAWAB) = NILAIHURUF[1] THENBEGINJAWABSOAL[1]:=NILAIJAWAB[1];END;

IF UPCASE(JAWAB) = NILAIHURUF[2] THENBEGINJAWABSOAL[1]:=NILAIJAWAB[1];END;

IF UPCASE(JAWAB) = NILAIHURUF[3] THENBEGINJAWABSOAL[1]:=NILAIJAWAB[2];END;

IF UPCASE(JAWAB) = NILAIHURUF[4] THENBEGINJAWABSOAL[1]:=NILAIJAWAB[1];END;

IF UPCASE(JAWAB) = NILAIHURUF[5] THENBEGINJAWABSOAL[1]:=NILAIJAWAB[1];END;

JUMLAHNILAI:=JAWABSOAL[1];

WRITELN(' HASIL PERIKSA ');WRITELN(JUMLAHNILAI);END.

Nama file lat38.pasPROGRAM LARIK4;USES WINCRT;TYPE X = STRING[7];CONSTFAKTORBIN : ARRAY[1..12] OF BYTE = (0,3,3,6,1,4,6,2,5,0,3,5);HARI : ARRAY[0..8] OF X = (‘MINGGU’,’SENIN’,’SELASA’,’RABU’,’KAMIS’,’JUMAT’,’SABTU’);VARI : WORD;NAMA : STRING[255];J1,J2,J3,J4 : INTEGER;TANGGAL,BULAN,TAHUN : INTEGER;BEGINCLRSCR;WRITE(‘TANGGAL ? ‘);READLN(TANGGAL);WRITE(‘BULAN1..12 ? ‘);READLN(BULAN);WRITE(‘TAHUN ? ‘);READLN(TAHUN);IF TAHUN > 1900 THENTAHUN := TAHUN – 1900;J1 := TRUNC(TAHUN*365.25);J2 := J1+FAKTORBLN(BULAN);IF (TAHUN/4=INT(TAHUN/4)) AND (BULAN < 3) THEN J2 := J2-1;J3 := J2+TANGGAL;J4 := TRUNC(FRAC(J3/7)*0);WRITELN;WRITELN(‘HARI ITU :’,HARI[J4]);END.

TUGAS KE 12BUATLAH PROGRAMNYAY1 = ( A + B ) + CY2 = ( A / B ) + CY3 = ( A * B ) + CY4 = ( A - B ) + C

PRAKTEK KE 13LARIK DIMENSI DUA

Penulisan larik dimensi banyak yang dibolehkan:

Halaman 20

Page 21: Modul+Tik+Turbo+Pascal

Cara1:VarTable : arra[1..3] of array[1..2] of byte;

Atau

TypeX = array[1..3,1..2] of byte;Table : x;

Atau

TypeBaris = 1..3;X = array[baris,1..2] of byte;VarTable : x;

Atau

TypeBaris = 1..3;Kolom = 1..2;X = array[baris,kolom] of byte;VarTable : x;

Atau

TypeBaris = 1..3;Kolom=1..2;X = array[baris] of array[kolom] of byte;VarTable : x;

Atau

TypeKarikkolom = array[1..2] of byte;X = array[1..3] of larik kolom;VarTable : x;

Atau

TypeLarikkolom=array[1..2] of byte;VarTable : array[1..3] of larikkolom;

Atau

TypeBaris=1..3;Kolom=1..2;Larikkolom = array[kolom] of byte;VarTable : array[baris] of larikkolom;

Atau

ConstAwal =1;Jumlahbaris=3;Jumlahkolom = 2;TypeX = array[awal..jumlahbaris,awal..jumlahkolom] of byte;

VarTable : x;

Nama file lat39.pas{matrik [baris,kolom]}Program matrik1;Uses wincrt;VarTable : arra[1..3,1..2] of byte;I,j : byte;BaginClrscr;Table[1,1] := 1;Table[1,2] := 2;Table[2,1] := 3;Table[2,2] := 4;Table[3,1] := 5;Table[3,2] := 6;For i: 1 to 3 doBeginFor j:= 1 to 2 doWrite(table[I,j]:10);Writeln;End;End.

Nama file lat40.pas{perkalian matrik}Program matrik2;Uses wincrt;TypeLarik = array[1..25,1..25] of real;VarI,J,J : byte;M,N,L : byte;A,B,C : larik;BeginClrscr;Write(‘baris matrik pertama ?’);readln(M);Write(‘kolom matrik pertama/baris matrik kedua ?’);readln(N);Write(‘kolom matrik kedua ? ‘);readln(L);Writeln;Writeln(‘’Matrik yang pertama:’);For I := 1 to M doBeginFor j:= 1 to N doBeginWrite(‘nilai[‘,I,’,’,j,’] ? ‘);readln(a[I,j]);End;Writeln;End;

Writeln(‘matrik yang kedua’);For i:= 1 to n doBeginFor j:= 1 to L doBeginWrite(‘nilai[‘,I,’,’,j,’]?’);readln(b[I,j]);End;Writeln;End;

For i:= 1 to n doBeginFor j:= 1 to n doBeginC[I,j] := 0;

Halaman 21

Page 22: Modul+Tik+Turbo+Pascal

For k := 1 to L doC[I,j] := c[I,j] + a[I,k]*b[k,j];End;Clrscr;Writeln(‘hasil dari perkalian matrik’);Writeln;For i:= 1 to n doBeginFor j:= 1 to L do write(c[I,j]:9:2);Writeln;End;End.

Nama file lat41.pasProgram larik5;Uses wincrt;TypeTipelarik = word;Larik = array[1..8] of tipelarik;Peocedure carianu(x:larik; cari:tipelarik; bawah,atas:word; var urutketemu:word);VarTengeh : word;BeginIf bawah > atas thenUrut urutketemu := 0ElseBeginTengah := (bawah +atas) div 2;If cari = x[tengah] thenUrutketemu := tengahElseIf cari < x[tengah] thenCarianu(x,cari,bawah,tengah-1,urutketemu)ElseCarianu(x,cari,tengah+1,atas,urutketemu);End;End;TypeStringnama = string[20];ConstNomormhs : larik(1,2,3,4,5,6,7,8);Namamhs:array[1..8] of stringnama=(‘A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’);VarCari : word;Ketemu : word;Lagi : char;BeginLagi := ‘Y’;While upcase(lagi)=’Y’ doBeginClrscr;]write(nomor siswa ?’);readln(cari);Writeln;Carianu(nomormhs,cari,1,8,ketemu);If ketemu = 0 thenWriteln(‘tidak ditemukan’)ElseBeginWriteln(‘nomor siswa :’,nomormhs[ketemu]);Writeln(‘nama siswa :’,namamhs[ketemu]);End;Writeln;Write(‘Cari lagi(y/t) ? ‘); readln(lagi);

End;End.

Nama file lat42.pasProgram larik6;Uses wincrt;TypeTipelarik = string[20];Larikurut = array[1..1000] of tipelarik;Procedure qsort(var x : larikurut; bawah,atas : word);VarI,j : word;Sementara : tipelarik;BeginWhile atas > bawah doBeginI := bawah;J := atas;Sementara := x[bawah];While i< j doBeginWhile x[j] > sementara doJ := j-1;X[i] := x[j];While (i<j) and (x[i] <= sementara) do I := I + 1;X[j] := x[i];End;

X[i] := sementara;Qsort(x,bawah,i-1);Bawah := I + 1;End;End;

VarNama : larikurut;N,I : word;BeginWrite(‘jumlah data : ‘);readln(n);Writeln(‘Masukan datanya’);For I := 1 to n doBeginWrite(‘Data ke-’,I,’?’);readln(nama[i]);End;Qsort(nama,1,n);Writeln;Writeln(‘data sudah di urut’);For I := 1 to n doWrite(nama[i]);End.

TUGAS KE 13BUATLAH PROGRAMNYA UNTUK PENJUMLAHAN, PENGURANGAN, PEMBAGIAN, PERKALIAN DARI MATRIK BERIKUT:

1. A+B DAN A + C DAN B + C2. A X B DAN A X B DAN B X C3. A – B DAN A – C DAN B – C4. A / B DAN A / B DAN B / C

A

Halaman 22

45 5

Page 23: Modul+Tik+Turbo+Pascal

B

C

PRAKTEK KE 14RECORDRecord hampIr sama dengan larik

Nama file lat43.pasProgram record1;Uses crt;TypeHasil = recordJari : real;Keliling : real;Luas : real;End;VarLingkaran : hasil;BeginWrite(‘jari-jari : ‘ );readln(lingkaran.jari);Lingkaran.keliling:=2*3.14*lingkaran.jari;Lingkaran.luas := 3.14*sqr(lingkaran.jari);Writeln(‘keliling lingkaran : ‘,lingkaran.keliling:7:2);Writeln(‘luas lingkaran :’,lingkaran.luas:7:2);End.

Nama file lat44.pasProgram record2;Uses wincrt;TypeDatabrg = recordNamabrg : string[15];Unitbrg : array[1..3] of byte;End;VarJumlahbrg,I,j : byte;Totalunit,total1,total2,total3,totaltotal : word;Barang : array[1..50] of barang;BeginWrite(‘Jumlah barang : ‘ );readln(jumlahbrg);For I := 1 to jumlahbrg doBeginWriteln;Writeln(‘Barang ke ‘,i:2);With barang[i] doBeginWrite(‘nama barang ? ‘);readln(namabrg);For j := 1 to 3 doBeginWrite(‘Unit ke’,j:2,’?’);readln(unitbrg[j]);End;End;End;Writeln;Writeln(‘======================================’);

Writeln(‘Unit’);Writeln(‘==================================== ‘);Writeln(‘nama barang u1 u2 u3 total ‘);Writeln(; ----------------------------------- ‘);Total1 := 0; total2 := 0;Total3 := 0; total4 := 0;For I := 1 to jumlahbrg doBeginWith barang[i] doBeginTotalunit := unitbrg[1]+unitbrg[2]+unitbrg[3];Total1 := total1 + unitbrg[1];Total2 := total2 + unitbrg[2];Total3 := total3 + unitbrg[3];Totaltotal := totaltotal + totalunit;Write(namabrg:15);Writeln(unitbrg[1]:7,Unitbrg[2]:10,Unitbrg[3]:10,Totalunit:10);End;End;Writeln;

Writeln(‘total :’,total1:10,Total2:10,total3:10,Totaltotal:10);End.Nama file lat45.pasProgram record4;Uses wincrt;TypePkar = ^ckar;Ckar= recordKode : string[5];Nama : string[25];Gaji : real;End;VarDatkar1,datkar2,Datkar3,datkar4,Datkar5 : pkar;BeginWriteln(‘masukan 5 buah data karyawan :’);Writeln(‘Karyawan ke-1’);New(datkar1);With datkar1^ doBeginWrite(Kode karyawan ? ‘);readln(kode);

Write(Nama karyawan ? ‘);readln(nama);

Write(Gaji karyawan ? ‘);readln(gaji);

End;

Writeln(‘Karyawan ke-2’);New(datkar2);With datkar2^ doBeginWrite(Kode karyawan ? ‘);readln(kode);

Write(Nama karyawan ? ‘);readln(nama);

Write(Gaji karyawan ? ‘);readln(gaji);

Halaman 23

45 5

45 5

Page 24: Modul+Tik+Turbo+Pascal

End;

Writeln(‘Karyawan ke-3’);New(datkar3);With datkar3^ doBeginWrite(Kode karyawan ? ‘);readln(kode);

Write(Nama karyawan ? ‘);readln(nama);

Write(Gaji karyawan ? ‘);readln(gaji);

End;Writeln(‘Karyawan ke-4’);New(datkar4);With datkar4^ doBeginWrite(Kode karyawan ? ‘);readln(kode);

Write(Nama karyawan ? ‘);readln(nama);

Write(Gaji karyawan ? ‘);readln(gaji);

End;Writeln(‘Karyawan ke-5’);New(datkar5);With datkar5^ doBeginWrite(Kode karyawan ? ‘);readln(kode);

Write(Nama karyawan ? ‘);readln(nama);

Write(Gaji karyawan ? ‘);readln(gaji);

End;Writeln(‘Data karyawan’);Writeln(‘Kode Nama Gaji’);Writeln;With datkar1^ do writeln(kode:5,nama:25,gaji:12:2);With datkar2^ do writeln(kode:5,nama:25,gaji:12:2);With datkar3^ do writeln(kode:5,nama:25,gaji:12:2);With datkar4^ do writeln(kode:5,nama:25,gaji:12:2);With datkar5^ do writeln(kode:5,nama:25,gaji:12:2);End.

Nama file lat46.pasProgram record5;Uses wincrt;TypePenunjuk = ^recnama;Recnama = recordNama : string[15];Sebelum,sesudah : integer;End;VarDatanama : array[1..1000] of penunjuk;Awal,akhir,I,j,m : integer;Procedure masuk;BeginFor I := 1 to n doBeginNew(datanama[i]);

Write(‘nama ke’,i:5,’?’);Readln(datanama[i]^.nama);End;End;Procedure urutkan;VarX : integer;BeginAwal := 1;Akhir := 1;Datanama[1]^.sebelum := 0;Datanama[1]^.sesudah := 0;For I := 2 to n doBeginIf datanama[i]^.nama >= datanama[akhir]^.nama thenBeginDatanama[i]^.sebelum:=akhir;Datanama[akhir]^.sesudah:= I;Akhir := I;Datanama[akhir]^.sesudah:=0;EndElseBeginJ := datanama[akhir]^.sebelum;While (datanama[i]^.nama <= datanama[j].nama) and (j>0) do j := datanama[j]^.sebelum;If j = 0 thenBeginDatanama[awal]^.sebelum := I;Datanama[i]^.sesudah := awal;Awal := I;Datanama[awal]^.sebelum := 0;EndElseBeginX := datanama[j]^.sesudah;Datanama[j]^.sesudah := I;Datanama[x]^.sebelum := I;Datanama[i]^.sebelum := j;Datanama[i]^.sesudah := x;End;End;End;End;Procedure tanpilkan;VarPosisi : integer;BeginPosisi := awal;While posisi > 0 doBeginWrite(datanama[posisi]^.nama);Posisi := datanama[posisi]^.sesudah;End;End;BeginWrite(‘jumlah data ?’);readln(n);Writeln;Masuk;Urutkan;Writeln(‘data setelah diurutkan’);Tampilkan;End.

TUGAS KE 14BUATLAH PROGRAMNYA:Y1 = ( A + B ) + CY2 = ( A + B ) / C

Halaman 24

Page 25: Modul+Tik+Turbo+Pascal

Y3 = ( A + B ) X CY4 = ( A X B ) + CY5 = ( A - B ) + CY6 = ( A / B ) + C

GRAFIKTEORI SINGKAT

INITGRAPHFungsi : Menyiapkan sistem grafikSintak : Initgraph(dg,mg,drive);Dg : driver grafik (CGA, VGA, )Mg : mode grafik (0,1,2,3,4)

DETECTGRAPHFungsi : Menentukan sendiri driver grafikSintak : detectgraph( Var graphdriver,graphmode : integer);

GRAPHRESULTFungsi : Menghasilkan kode kesalahan untuk status grafikSintak : graphresult;

GRAPHERRORMSGFungsi : Menggasilkan pesan kesalahan dalam bentuk stringSintak : grapherrormsg(kodeerror : integer);

SETGRAPHMODEFungsi : Mengubah system mode grafik dan menghapus layarSintak : setgraphmode(mode : integer);

GETGRAPHMODEFungsi : Memperoleh status mode grafik yang berlakuSintak : getgraphmode;

RESTORECRTMODEFungsi : Mengubah mode grafik menjadi mode karakterSintak : restorecrtmode;

GRAPHDEFAULTSFungsi : Merubah kondisi grafik kembali kesemulaSintak : graphdefaults;

CLEARDEVICEFungsi : Membersihkan momeri grafikSintak : cleardevice;

GETDRIVERNAMEFungsi : menghasilkan string yang menunjukan nama penggerak grafikSintak : getdrivername;

GETMAXMODEFungsi : menghasilkan nomor maksimum mode penggerak grafik

Sintak : getmaxmode;

GETMODENAMEFungsi : menghasilkan string yang menunjukan nama mode grafik dari suatu penggerak yang aktifSintak : getmodename;

GETMODERANGEFungsi : menghasilkan nomor mode terendah dan tertinggi yang ada pada penggerak grafik tertentuSintak : getmoderange(graphdriver : integer, var lomode,himode : integer);

GETMAXXFungsi : menghasilkan nilai nomor kolom koordinat x paling kanan dari penggerak grafikSintak : getmaxx;

GETMAXYFungsi : menghasilkan nilai nomor baris koordinat y paling kanan dari penggerak grafikSintak : getmaxy;

GETMAXCOLORFungsi : menghasilkan nilai warna maksimum dari penggerak grafikSintak : getmaxcolor;

CLOSEGRAPHFungsi : menutup penggerak grafikSintak : closegraph;

PUTPIXELFungsi : menggambar sebuah titik pada koordinat tertentuSintak : putpixel(x,y : integer; warna : word); GETPIXELFungsi : memperoleh nilai titik pada koordinat tertentuSintak : getpixel(x,y : integer);

LINEFungsi : menggambar garis dari satu titik (x1,y1) ke titik (x2,y2) Sintak : line(x1,y1,x2,y2);

SETLINESTYLEFungsi : mengatur corak dan ketebalan garisSintak : setlinestyle(corak, pola, tebal : word);

SETCOLORFungsi : memberi warna penggambaran dengan pelete yang berlakuSintak : setcolor(warna : word);

GETCOLOR

Halaman 25

Page 26: Modul+Tik+Turbo+Pascal

Fungsi : menghasilkan nilai warna yang dilewatkan oleh prosedur setcolorSintak : getcolor;

SETWRITEMODEFungsi : mengatur cara penggambaran grafikSintak : setwritemode(writemode” integer);

LINETOFungsi : menggambar garis dari titik sedang aktif ke titik (x,y) Sintak : lineto(x,y : integer);

MOVETOFungsi : memindahkan titik aktif ke titik lain (x,y)Sintak : moveto(x,y : integer);

MOVERELFungsi : memindahkan titik aktif ke titik lain yang berjarak relative terhadap titik aktifSintak : moverel(dx,dy : integer);

GETXFungsi : mendapatkan nilai titik x dari titik aktif Sintak : getx;

GETYFungsi : Mendapatkan nilai titik y dari titik aktif Sintak : gety;

GETLINESETTINGSFungsi : mendapatkan corak, pola, dan ketebalan garis yang diatur oleh setlinestyleSintak : getlinesettings(var infogaris : linesettingstype);

LINERELFungsi : menggambar garis pada posisi yang berjarak relative dari titik yang aktif Sintak : linerel(dx,dy : integer);

GETFILLPATERNFungsi : menghasilkan data-data pola dan warna isian yang berlaku yang diatur oleh setfillpaternSintak : getfillpatern(var fillpatern : fillpaterntype);

SETFILLSTYLEFungsi : memilih pola dan warna isian yang disediakanSintak : setfillstyle(pola : word; warna : word);Pola:0: emptyfill1:solidfill2:linefill3:ltslashfill4:slashfill5:bkslashfill

6:ltbkslashfill7:hatchfill8:xhatchfill9:interleavefill10:widedotfill11:closedotfill12:usefill

FLOODFILLFungsi : mengecat daerah tertutup dengan corak dan warna isian yang sudah ditentukanSintak : floodfill(x,y : integer; border : word);

SETFILLPATTERNFungsi : memilih pola pengisian buatan sendiriSintak : setfillpattern(pola : fillpatterntype; warna : word); GETFILLSETINGSFungsi : menghasilkan data-data pola dan warna isian yang berlaku yang diatur oleh setfillstyleSintak :getfillsetings(var fillinfo : fillsettingstype);

RECTANGLEFungsi : menggambar kotak dengan corak dan warna yang aktifSintak : rectangle(x1,y1,x2,y2)

BARFungsi : membuat balok dengan corak dan isian yang telah tersediaSintak : bar(x1,y1,x2,y2 : integer);

BAR3DFungsi : menggambar balok tiga dimensi dengan pola dan isian yang berlaku Sintak : bar(x1,y1,x2,y2 : integer; depth : word; top : Boolean);

FILLPOLYFungsi : menggambar sekaligus mengisi polygonSintak : fillpoints(numpoints : word; var polypoints);

GETARCCOORDSFungsi : menghasilkan koordinat akibat perintah arcSintak : getarccoords(var arccoord : arccoordstype);

ELLIPSEFungsi : menggambar bentuk elips Sintak : ellipse(x,y : integer; awal, akhir : word; jarix, jariy : word);

DRAWPOLYFungsi : menggambar bentuk sigibanyak dengan garis dan warna yang berlaku saat ituSintak : drawpoly(numpoints : word; var polypoints);

Halaman 26

Page 27: Modul+Tik+Turbo+Pascal

CIRCLEFungsi : menmggambar lingkaran dengan jari-jari tertentu dengan pusat berada di x,y Sintak : circle(x,y : integer,jari : word);

FILLELLIPSEFungsi : menggambar ellipse dengan corak dan warna isian tertentuSintak : fillellipse(x,y : integer; jarix, jariy : word);

SECTORFungsi : menggambar dan mengisi temberengSintak : sector(x,y : integer; awal, akhir, jarix, jariy : word);

SETTEXTSTYLEFungsi : mengatur pemilihan hurufSintak : settextstyle(font, arah, ukuran : word);

SETTEXTJUSTIFYFungsi : mengatur penempatan hurufSintak : settextjustify(horiz, vert : word);

OUTTEXTFungsi : menempatkan huruf pada titik defaultSintak : outtext(tek : string);

OUTTEXTXYFungsi : menempatkan huruf pada titik x,y Sintak : outtextxy(x,y : integer; teks : string);

TEXTHEIGHTFungsi : memperoleh ukuran tinggi hurufSintak : textheight(teks : string);

TEXTWIDTHFungsi : memperoleh ukuran lebar hurufSintak : textwidth(tek : string);

GETASPECTRATIOFungsi : menghasilkan nilai-nilai untuk menentukan harga aspek rasioSintak : getaspectratio(aspx, aspy : word);

SETASPECTRATIOFungsi : mengubah aspect ratio defaultSintak : setaspectratio*aspx, aspy : word);

PIESLICEFungsi : menggambar sekaligus mengisi suatu irisan pie

Sintak : pieslice(x,y : integer; awal, akhir ,jari: word);

SETUSERCHARSIZEFungsi : mengubah tinggi dan lebar hurufSintak : setusercharsize(kalix, bagix, kaliy, bagiy : word);

GETTEXTSETTINGSFungsi : memperoleh nilai font, arah, ukuran, dan pointer huruf yang di atur oleh settextstyle san settextjustifySintak : gettextsetting(var infoteks : textsettingstype);

SETVIEWPORTFungsi : mengatur letak viewport dan mengatur sifatnyaSintak : setviewport(x1,y1,x2,y2 : integer; clip : Boolean);

CLEARVIEWPORTFungsi : membersihkan viewportSintak : clearviewport;

GETVIEWSETTINGSFungsi : mendapatkan nilai koordinat dan status dari viewport yang aktifSintak : getviewsettings(var viewport : viewporttype);

SETBKCOLORFungsi : mengubah warna latar belakangSintak : setbkcolor(warna : word);

GETBKCOLORFungsi : menghasilkan nilai warna latar belakang yang berlaku saat ituSintak : getbkcolor;

SETALLPALETTEFungsi : mengubah semua warna paletteSintak : setallpalette(var palette);

REGISTERBGIFONTFungsi : mendaftarkan font kedalam memoriSintak : registerbgifont(font : pointer);

REGISTERBGIDRIVERFungsi : mendaftarkan penggerak bgi kedalam memorySintak : registerbgidriver

INSTALLUSERFONTFungsi : menginstal huruf baruSintak : installuserfont(namafilefont : string);

GETIMAGE

Halaman 27

Page 28: Modul+Tik+Turbo+Pascal

Fungsi : merekam gambar pada suatu daerah memory buffersSintak : getimage(x1,y1,x2,y2 : integer; var petabit);

IMAGESIZEFungsi : menghasilkan jumlah byte dari suatu gambar pada posisi segiempatSintak : imagesize(x1,y1,x2,y2 : integer);

PUTIMAGEFungsi : meletakan gambar ke layarSintak : putimage(x,y : integer; var petabit; penggambaran);Penggambaran terdiri dari:0:copyput1:xorpout2:orput3:andput4:notput

ARCFungsi : menggambar lingkaran terpotongSintak : arc(x,y : integer; awal, akhir, jari : word);

PRAKTEK KE 15MEMBUAT TITIK

Program bintangku;Use crt,graph;VarDg,mg,I,maxx,maxy : integer;Warna : word;BeginDg := detect;Initgraph(dg,mg,’ ’);If graphresult <> grok then halt(1);Maxx := getmaxx;Maxy := getmaxy;Warna := getmaxcolor;For I := 1 to 2000 doPutpixel(random(maxx)+1,random(maxy)+1,random(warna)+1);Repeat until keypressed;Closegraph;End.

Program kelip;Uses crt,graph;ConstMaxtitik=2000;VarDg,mg,maxcolor,x,yMaxx,maxy,I : integer;Warna : word;Titik : array[1..maxtitik] of pointtype;BeginDg := detect;Initgraph(dg,mg,’ ‘ );If graphresult <> grok then halt(1);Maxx := getmaxx;Maxy := getmaxy;Maxcolor := getmaxcolor;

For I := 1 to maxtitik doBeginWith titik[i] do BeginX := random(maxx)+1;y := random(maxy)+1;end;end;while not keypressed dobeginfor I := 1 to maxtitik dobeginwith titik[i] doputpixel(x,y,random(maxcolor)+1);end;for I := 1 to maxtitik dobeginwith titik[i] doputpixel(x,y,0);end;end;closegraph;end.

TUGAS KE 15BUATLAH PROGRAM BERIKUT:GRAFIK FUNGSI TRIGONOMETRIA. SINUSB. COSINUSC. TANGEND. SECANE. COSECANF. COTANGENG. Y = 2X + XH. Y = 2X2 + XI. Y = 2X + SIN X

PRAKTEK KE 16MEMBUAT GARIS

Program garis;Use crt,graph;VarDg,mg,I,maxx,maxyX,x1,y1,x2,y2 : integer;Warna : word;BeginDg := detect;Initgraph(dg,mg,’ ’);If graphresult <> grok then halt(1);Maxx := getmaxx;Maxy := getmaxy;Warna := getmaxcolor;For I := 1 to 2000 doPutpixel(random(maxx)+1,random(maxy)+1,random(maxcolor)+1);Setwritemode(xorput);Setcolor(3);Y1 := 0;Y2 := maxy;For I := 1 to 2 doBeginFor x := 0 to maxx doBeginX1 := maxx-x;X2 := x;Line(x1,y1,x2,y2);End;Repeat until keypressed;

Halaman 28

Page 29: Modul+Tik+Turbo+Pascal

End;Closegraph;End.

Program gariske;Use crt,graph;VarDg,mg,I,maxx,maxy,acaky,yawal,x : integer;Warna : word;BeginDg := detect;Initgraph(dg,mg,’ ’);If graphresult <> grok then halt(1);Maxx := getmaxx;Maxy := getmaxy;Yawal := maxy div 2;X := 0;Acaky := yawal;Moveto(x,yawal);For I := 0 to maxx div 2 doBeginAcaky := random(maxy)+1;Inc(x,2);Lineto(x,acaky);End;Repeat until keypressed;Closegraph;End.

Program bendera;Use crt,graph;VarDg,mg,I,maxx,maxy,X,y,setmaxy : integer;Warna : word;BeginDg := detect;Initgraph(dg,mg,’ ’);If graphresult <> grok then halt(1);Maxx := getmaxx;Maxy := getmaxy;Setmaxy := maxy div 2;Setcolor(1);Settextjustify(centertext,centertext);Settextstyle(triplexfont,horizdir,5);Outtextxy(maxx div 2,setmaxy – 5,’Benderaku’);Setwritemode(xorput);Setlinestyle(solidln,0,normwidth);For I := 1 to 2 doFor x := 0 to maxx doBeginMoveto(x,setmaxy);Setcolor(3);Linerel(0,50);Moveto(x,setmaxy – 1);Setcolor(2);Linerel(0,-50);End;Repeat until keypressed;Closegraph;End.

PROGRAM GARIS;Use crt,graph;VarDg,mg,maxx : integer;Coraklama : linesettingstype;

Procedure tunggu;VarCh : char;BeginRepeat until keypressed;Ch := readkey;End;BeginDg := detect;Initgraph(dg,mg,’ ’);If graphresult <> grok then halt(1);Maxx := getmaxx;Setlinestyle(dashedln,0,thickwidth);Line(0,1,maxx,1);Getlinesettings(coraklama);Tunggu;Setlinestyle(userbitln,$CCCC,normwidth);Line(0,7,maxx,7);Tunggu;With coraklama doSetlinestyle(linestyle,pattern,thickness);Line(0,12,maxx,12);Tunggu;Closegraph;End.

TUGAS KE 16

GAMBAR 1

GAMBAR 2

PRAKTEK KE 17MEMBUAT KOTAK

Program Kotak;Use crt,graph;

Halaman 29

Page 30: Modul+Tik+Turbo+Pascal

VarSetmaxx,setmaxy,Dg,mg,I,maxcolor : integer;Warna : word;BeginDg := detect;Initgraph(dg,mg,’ ’);If graphresult <> grok then halt(1);setMaxx := getmaxx div 2;setMaxy := getmaxy div 2;maxcolor := getmaxcolor;for I := 0 to (setmaxy div 4) dobeginsetcolor(random(maxcolor)+1);rectangle(setmaxx-i*6,setmaxy-i*4,setmaxx+i*6,setmaxy+i*4);end;repeat until keypressed;closegraph;end.

Program pilgaya;Use crt,graph;ConstPanahup = #72;Pahandn = #80’Esc = #27;Null = #00;VarMaxx,maxy,maxcolor,Lebartext,tinggitext,pilih,x,y : integer;Ch,keluar : char;Simpanexit : pointer;{$F+}Procedure keluarprog;BeginExitproc := simpanexit;Closegraph;End;{$F-}

Procedure blok(xx,yy,panjx,panjy : integer);VarTy,tx : integer;BeginSetcolor(maxcolor);Setwritemode(xorput);Setlinestyle(solidln,0,normwidth);For ty := yy to (ty+panjy+1) doLine(xx-1,ty,xx+panjx-1,ty);Setwritemode(copyput);End;Procedure init;VarDg,mg : integer;Procedure tulis(kar : string);BeginOuttextxy(x,y,kar);Inc(y,textheight(‘H’)+4);End;BeginDg := detect;Initgraph(dg,mg,’ ‘ );If graphresult <> grok thenHalt(1);Maxx := getmaxx;Maxy := getmaxy;Maxcolor := getmaxcolor;

X := 1; y := 1;Settextstyle(smallfont,horizdir,5);Tulis(‘emptyfill’);Tulis(‘solidfill’);Tulis(‘linefill’);Tulis(‘ltslashfill’);Tulis(‘slashfill’);Tulis(‘bkslashfill’);Tulis(‘ltbkslashfill’);Tulis(‘hatchfill’);Tulis(‘xhatchfill’);Tulis(‘interleavefill’);Tulis(‘widedotfill’);Lebartek:= textwidth(‘interleavefill’);Tinggitek := textheight(‘H’);Settextjustify(centertext,bottomtext);Settextstyle(smallfont,horizdir,4);Setcolor(1);Outtextxy(maxx div 2,maxy-textheight(‘H’),’Gerakan Anak Panah Kanan, kiri, Atas, Bawah, dan Esc ‘);X := 1; y := 1;End;Procedure demofill(pola:word; var keluar : char);BeginIf keluar = panahup thenBeginDec(y,tinggitek+4);If y <= 1 thenBeginInc(y,tinggitek+4);If y >= ((tinggitek+4)*pilih+4) then y := 1;End;Blok(x,y,lebartek,tinggitek+1);Setfillstyle(pola,2);Rectangle(lebartek+2,0,maxx, (maxy div 2 + 44));Floodfill(lebartek+3,1,maxcolor);Ch := redkey;If ch = null then ch := readkey;Keluar := ch;Blok(x,y,lebartek,tinggitek+1);End;BeginSimpanexit := exitproc;Exitproc := @keluarprog;Init;Pilih := 0;Keluar := #32;While keluar <> esc doBeginCase pilih of00:demofill(emptyfill,keluar);01:demofill(solidfill,keluar);02:demofill(linefill,keluar);03:demofill(ltslashfill,keluar);04:demofill(slashfill,keluar);05:demofill(bkslashfill,keluar);06:demofill(ltbkslashfill,keluar);07:demofill(hatchfill,keluar);08:demofill(xhatchfill,keluar);09:demofill(interleavefill,keluar);10:demofill(widedotfill,keluar);11:demofill(closedotfill,keluar);End;If keluar = panahdn thenIf pilih = 11 then pilih = 0

Halaman 30

Page 31: Modul+Tik+Turbo+Pascal

ElseInc(pilih);If keluar = panahup thenIf pilih = 0 then pilih := 11ElseDec(pilih);End;End.

Program pilpaterngaya;Use crt,graph;ConstPanahup = #72;Pahandn = #80’Esc = #27;Null = #00;Keloktipisver: fillpattentype($11,$22,$44,$88,$88,$44,$22,$11);Keloktebalver: fillpattentype($33,$66,$cc,$cc,$cc,$cc,$66,$33);Keloktipishor: fillpattentype($18,$24,$42,$81,$18,$24,$42,$81);Keloktebalhor: fillpattentype($18,$7e,$c3,$81,$18,$7b,$c3,$81);inisialy: fillpattentype($cc,$cc,$cc,$fc,$30,$30,$30,$00);tipistebalver: fillpattentype($ba,$ba,$ba,$ba,$ba,$ba,$ba,$ba);tipistipisver: fillpattentype($aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa);lekuk: fillpattentype($c3,$66,$24,$18,$c3,$66,$24,$18);tipistebalhor: fillpattentype($FF,$00,$FF,$FF,$FF,$00,$FF,$00);tipistipishorr: fillpattentype($FF,$00,$FF,$00,$FF,$00,$FF,$00);ulat: fillpattentype($FE,$82,$BA,$8A,$FA,$02,$FE,$00);hati: fillpattentype($6c,$fe,$fe,$fe,$7c,$38,$10,$00);

VarMaxx,maxy,maxcolor,Lebartext,tinggitext,pilih,x,y : integer;Ch,keluar : char;Key : boolean;

Procedure blok(xx,yy,panjx,panjy : integer);VarTy,tx : integer;BeginSetcolor(maxcolor);Setwritemode(xorput);Setlinestyle(solidln,0,normwidth);For ty := yy to (yy+panjy+1) doLine(xx-1,ty,xx+panjx-1,ty);Setwritemode(copyput);End;Procedure init;VarDg,mg : integer;Procedure tulis(kar : string);Begin

Outtextxy(x,y,kar);Inc(y,textheight(‘H’)+4);End;BeginDg := detect;Initgraph(dg,mg,’ ‘ );If graphresult <> grok thenHalt(1);Maxx := getmaxx;Maxy := getmaxy;Maxcolor := getmaxcolor;X := 1; y := 1;Settextstyle(smallfont,horizdir,5);Setcolor(1);Tulis(‘keloktipisver’);Tulis(‘keloktebalver’);Tulis(‘keloktipishor’);Tulis(‘keloktebalhor’);Tulis(‘inisialy’);Tulis(‘tipistebalver’);Tulis(‘tipistipisver’);Tulis(‘lukuk’);Tulis(‘tipistebalhor’);Tulis(‘tipistipishor’);Tulis(‘ulat’);Tulis(‘hati);

Lebartek:= textwidth(‘keloktipisver’);Tinggitek := textheight(‘H’);Settextjustify(centertext,bottomtext);Setcolor(1);Settextstyle(smallfont,horizdir,4);Outtextxy(maxx div 2,maxy-(3*tinggitek),’fill buatan sendiri‘);X := 1; y := 1;Setcolor(3);Settextstyle(smallfont,horizdir,4);Outtextxy(maxx div 2,maxy,’Gunakan anak panahESC=keluar‘);X := 1; y := 1;End;Procedure demofill(pola:fillpatterntype; var keluar : char);BeginIf keluar = panahup thenBeginDec(y,tinggitek+4);If y <= 1 thenBeginY := 0;Inc(y,tinggitek+4*pilih+1);End;End;If keluar = panahdn thenBeginInc(y,tinggitek+4);If y >= ((tinggitek+4)*pilih+4) then y := 1;End;Blok(x,y,lebartek,tinggitek+1);Setfillstyle(pola,2);bar(lebartek+2,0,maxx-10, (maxy div 2 + 44));ch := readkey;if ch = null then ch := readkey;keluar := ch;blok(x,y,lebartek,tinggitek+1);

Halaman 31

Page 32: Modul+Tik+Turbo+Pascal

end;BeginInit;Pilih := 0;Keluar := #32;While keluar <> esc doBeginCase pilih of00:demofill(keloktipisver,keluar);01:demofill(keloktebalver,keluar);02:demofill(keloktipishor,keluar);03:demofill(keloktebalhor,keluar);04:demofill(inisialy,keluar);05:demofill(tipistebalver,keluar);06:demofill(tipistipisver,keluar);07:demofill(lekuk,keluar);08:demofill(tipistebalhor,keluar);09:demofill(tipistipishor,keluar);10:demofill(ulat,keluar);11:demofill(hati,keluar);End;If keluar = panahdn thenIf pilih = 11 then pilih = 0ElseInc(pilih);If keluar = panahup thenIf pilih = 0 then pilih := 11ElseDec(pilih);End;Closegraph;End.

Program batang;Uses crt,graph;VarDg,mg : integer;Procedure buatbar(x,y,panjx : integer; fill,warna : word);BeginSetfillstyle(fillwarna);Bar(x,y,x+panjx,y+panjy);Procedure init;BeginDg := detect;Initgraph(dg,mg,’ ‘ );If graphresult <> grok then halt(1);Setcolor(1);Rectangle(0,0,getmaxx,getmaxy);Settextjustify(centertext,toptext);Settextstyle(smallfont,horizdir,5);Outtextxy(getmaxx div 2,1,’Pengeluaran Bulan’);Outtextxy(getmaxx div 2,textheight(‘H’)+1,’Agustus’);Setcolor(3);Line(109,50,109,150);Line(109,150,209,150);Settextjustify(centertext,toptext);Settextstyle(smallfont,horizdir,5);Setcolor(1);Buatbar(100,160,10,10,slashfill,1);Outtextxy(115,160,’Mejeng’);Setcolor(2);Buatbar(100,175,10,10,slashfill,1);Outtextxy(115,175,’Nonton’);Setcolor(3);Buatbar(200,160,10,10,slashfill,1);Outtextxy(215,160,’Main’);Setcolor(1);Buatbar(200,175,10,10,slashfill,1);

Outtextxy(215,175,’Shoping’);End;BeginInit;Buatbar(112,100,10,49,slashfill,1);Buatbar(126,80,10,69,slashfill,1);Buatbar(140,110,10,39,slashfill,1);Buatbar(154,90,10,59,slashfill,1);Repeat until keypressed;Closegraph;End.

Program bar3dimensi;Use crt,graph;VarMaxx,maxy : integer;Procedure init;VarDg,mg : integer;BeginDg := detect;Initgraph(dg,mg,’ ‘ );If graphresult <> grok then halt(1);Maxx := getmaxx:Maxy := getmaxy;End;Procedure gambar3d;ConstJmlbalok = 5;Data = array[1..jmlbalok,0..1] of byte = ((37,55),(43,25),(32,5),(35,10),(18,55));VarX1,y1,x2,y2,y3,depth : integer;Item : byte;BeginRectangle(0,0,maxx,maxy);Settextstyle(smallfont,horizdir,5);Settextjustify(centertext,toptext);Outtextxy(maxx div 2,1,’Demo Bar3D’);X1 := 10;Depth := 9;For item := 1 to jmlbalok do beginY1 := maxy + 50;Y2 := y1+data[item,0];Y3 := y2-data[item,1];Inc(x1,45);X2 := x1 + 30;Setcolor(3);Setfillstyle(slashfill,3);Bar3d(x1,y1,x2,y2,depth,topoff);Setcolor(1);Setfillstyle(xhatchfill,1);Bar3d(x1,y2,x2,y3,depth,topon);End;End;BeginInit;Gambar3d;Repeat until keypressed;Closegraph;End.

TUGAS KE 17DARI TABEL BERIKUTBUATLAH GRAFIK HISTOGRAMNYANAMA TINGGI BERATA 176 76B 150 50C 165 65

Halaman 32

Page 33: Modul+Tik+Turbo+Pascal

D 155 55E 178 78

PRAKTEK KE 18MENGGAMBAR SEGIBANYAK

Program segibanyak;Uses crt,graph; constsegitiga : array[1..4] of pointtype=((x:100;y:60),(x:50;y:140),(x:150;y:140),(x:100;y:60));segienam:array[1..14] of word = (249,90,259,80,269,90,269,110,259,120,240,110,249,90)’vardg,mg : integer;begindg := detect;initgraph(dg,mg, ‘ ‘ );settextstyle(smallfont,horizdir,5);settextjustify(centertext,toptext);outtextxy(getmaxx div 2, 1, ‘Demo draw poly ‘);rectangle(30,50,getmaxx-30,150);setcolor(1);drawpoly(sizeof(segitiga) div sizeof(pointtype),segitiga);setcolor(2);drawpoly(7,segienam);repeat until keypressed;end.

Program demofillpoly;Uses crt,graph;ConstSegitiga: array[1..4] of pointtype=(( x : 100; y:60), (x:50; ,y:140), (x:150; ,y:140), (x:100;,y:60));

DuaSegitiga: array[1..5] of pointtype=(( x : 200; y:60), (x:270; ,y:60), (x:200; , y:140), (x:270;, y:140), (x:200;, y:60));

VarDg,mg : integer;BeginDg := detect;Initgraph(dg,mg,’ ‘ );If graphresult <> grok then halt(1);Settextstyle(smallfont,horizdir,5);Settextjusfify(centertext,toptext);Outtextxy(getmaxx div 2,1,’Demo fillpoly’);Rectangle(30,50,getmaxx-30,150); Setcolor(1);Setfillstyle(hatchfill,2);Fillpoly(sizeof(segitiga) div sizeof(pointtype),segitiga);Setcolor(2);Setfillstyle(xhatchfill,1);Fillpoly(sizeof(duasegitiga) div sizeof(pointtype),duasegitiga);Repeat until keypressed;

Closegraph;End.

TUGAS KE 18BUATLAH PROGRAMNYA TABUNG DENGAN ALAS BENTUK SEGI EMPAT DAN SEGI LIMA

PRAKTEK KE 19MENGGAMBAR LINGKARAN

Program lingkaran;Uses crt,graph;ConstMaxkoor = 100;Maxjari = 20;VarDg,mg,x,y,maxx,maxy,Xl,yl,I : integer;Color,maxwarna : word;Koordinat : array[1..maxkoor] of pointtype;Jejari : array[1..maxkoor] of word;Ch : char;BeginDg := detect;Initgraph(dg,mg, ‘ ‘ );If graphresult <> grok then halt(1);Maxx := getmaxx;Maxy := getmaxy;Maxwarna := getmaxcolor;For I := 1 to maxkoor doBeginY := random(maxx)+1;X := random(maxy)+1;End;Jejari[i] := random(maxjari);While not keypressed doBeginI := 0;While (not keypressed) and (I <maxkoor) doBeginInc(i);Color := random(maxwarna)+1;Setcolor(color);With koordinat[i] do circle(x,y,jejari[i]);End;Setcolor(0);I := 0;While (not keypressed ) and ( I < maxkoor) doBeginInc(i);With koordinat[i] do circle(x,y,jejari[i]);End;End;Closegraph;End.

Program lingkaranpotong;Uses crt,graph;ConstJari = 50;VarDg, mg, dataarc : arccoordstype;BeginDg := detect;

Halaman 33

Page 34: Modul+Tik+Turbo+Pascal

Initgraph(dg,mg,’ ‘ );If graphresult <> grok then halt(1);Setcolor(3);Arc(159,99,45,315,jari);Getarccoords(dataarc);With dataarc doBeginLine(xstart,ystart,x,y);Line(xend,yend,x,y);End;Setcolor(2);Circle(154,80,3);Repeat until keypressed;Closegraph;End.

Contoh program:Program lonjong;Uses crt,graph;VarDg,mg : integer;

BeginDg := detect;Initgraph(dg,mg, ‘ ‘ );

If graphresult <> grok then halt(1);I := 4;For k := 1 to 20 doBeginSetcolor(1);Ellipse(79,99,0,360,i,70-i);Setcolor(2);Ellipse(239,99,0,360,i,70-i);Inc(i,4);End;Repeat until keypressed;Closegraph;End.

Program lingdarielip;Uses crt,graph;VarDg,mg,sisix,sisiy : integer;Aspx,aspy : word;Ch : char;Procedure gambarelip;BeginGetaspectratio(aspx,aspy);Sisiy := 30;Sisix := round((aspy/aspx)*sisiy);Setfillstyle(slashfill,2);Setcolor(3);Fillellipse(getmaxx div 2,getmaxy div 2,sisix,sisiy);End;BeginDg := detect;Initgraph(dg,mg, ‘ ‘);If graphresult <> grok then halt(1);Gambarelip;Repeat until keypressed;Ch := readkey;Setgraphmode(cgac0);Gambarelip;Repeat until keypressed;Closegraph;End.

Program demokegiatan;Uses crt,graph;ConstItem = 5;Kegiatan : array[1..item] of string = (‘Belajar : ‘ ,‘Nonton TV : ‘,‘Tidur : ‘,‘Olah Raga : ‘,‘Belajar : ‘);VarDg, mg, maxx, maxy, Maxcolor : integer;I, bagian, sdtawal, sdtakhir : word;jmldata : real;data : array [1..item] of real;

procedure init;begindg := detect;initgraph(dg,mg,’ ‘);if graphresult <> grok then halt(1);maxx := getmaxx;maxy := getmaxy;rectangle(0,0,maxx,maxy);end;

function inputdata(prompt : string);real;vardata : real;masukanbenar : boolean;posx,posy : byte;beginrepeatposx := wherex;posy := wherey;{$I-}Masukanbenar:=ioresult and (data >= 0 ) and (data+jml(data<=24);If not masukanbenar thenBeginGotoxy(posx,posy);Clreol;End;Until masukanbenar;Inputdata := data;End;Procedure masukandata;BeginWriteln(‘Kegiatan hari ini’);Writeln;Jmldata := 0;For I := 1 to item doBeginData[i] := inputdata(kegiatan[i]);Jmldata := jmldata+data[i];End;End;Procedure gambarpie;BeginSdtawal := 0;For I := 1 to item doBeginBagian := trunc(360*(data[i]/jmldata));If I = item thenSdtakhir := 360 ElseSdtakhir := sdtawal+bagian;

Halaman 34

Page 35: Modul+Tik+Turbo+Pascal

If data[i] <> 0 thenBeginSetfillstyle(i+1,random(maxcolor)+1);Pieslice(maxx div 2, maxy div 2,sdtawal,sdtakhir,100);Sdtawal := sdtakhir;End;End;End;BeginMasukandata;Init;Gambarpie;Repeat until keypressed;Closegraph;End.

TUGAS KE 19BUATLAH PROGRAMNYA1. GAMBAR LINGKARAN BANYAK

DARI JARI-JARI KECIL KE BESAR2. GAMBAR LINGKARAN BANYAK

DARI JARI-JARI BESAR KE KECIL3. GAMBAR LINGKARAN BANYAK

DARI JARI-JARI KECIL KECIL KE BANYAK KEMUDIAN MENGHILANG

PRAKTEK KE 20MEMBUAT TULISAN

Program Aturhuruf;Uses crt,graph;VarDg,mg,x,y : integer;Procedure cetak(x,y : integer; tek: string);VarPanjtek,count,lebarkar : integer;Huruf : string;BeginPanjtek := length(tek);For count := 1 to panjtek doBeginHuruf := copy(tek,count,1);Lebarkar := textwidth(huruf);Outtextxy(x,y,huruf);Inc(x,lebarkar);Delay(20);End;End;BeginDg := detect;Initgraph(dg,mg,’ ‘ );If graphresult <> grok then halt(1);Directvideo := false;X := 0;Y := 0;Settextstyle(defaultfont,horizdir,1);Settextjustify(lefttext,toptext);Cetak(x,y,’1. Menggunakan tek grafik turbo pascal’);Inc(y,textheight(‘H’)+2);

Cetak(x,y,’1. Menggunakan tek grafik turbo pascal’);Inc(y,textheight(‘H’)+2);

Cetak(x,y,’sangatlah mudah’);Inc(y,textheight(‘H’)+2);

Cetak(x,y,’2. Anda bisa memilih huruf yang’);Inc(y,textheight(‘H’)+2);

Cetak(x,y,’disediakan oleh pascal’);Inc(y,textheight(‘H’)+2);Settextstyle(triplexfont,horizdir,3);Settextjustify(lefttext,bottomtext);Inc(y,textheight(‘H’)+6);Cetak(x,y,’Contohnya triplek font, ’);Inc(x,textwidth(‘ triplex, ’)+1);Settextstyle(sansseriffont,horizdir,1);Cetak(x,y,’San Serif Font, ’);Inc(x,textwidth(‘sansserif, ’)+1);Settextstyle(gothicfont,horizdir,1);Cetak(x,y,’Gothic font, ’);Inc(x,textwidth(‘gothic, ’)+1);

Settextstyle(smallfont,horizdir,4);Cetak(x,y,’small font ’);Repeat until keypressed;Closegraph;End.

Program demoview;Uses crt,graph;VarViewinfo : viewporttype;Xx1,yy1,xx2,yy2,dg,mg : integer;Clipp : boolean;Ch : char;Procedure gambarview(tek : string);VarSepx,sepy : integer;BeginSetviewport(xx1,yy1,xx2,yy2,clipp);Clearviewport;Rectangle(0,0,(xx2-xx1),(yy2-yy1));Settextjustify(centertext,centertext);Sepx := (xx2 - xx1) div 2;Sepy := (yy2 – yy1) div 2;Outtextxy(sepx,sepy,tek);Circle(sepx,sepy,60);Repeat until keypressed;Ch := readkey;End;BeginDg := detect;Initgraph(dg,mg,’ ‘ );If graphresult <> grok then halt(1);Xx1 := 9Yy1 := 49;Xx2 := 109;Yy2 := 159;Clipp := clipon;Setcolor(2);Gambarview(‘View 1’);Getviewsettings(viewinfo);Xx1 := 89;Yy1 := 39;Xx2 := 189;Yy2 := 139;Clipp := clipoff;Setcolor(3);Gambarview(‘View 2’);With wiewinfo do

Halaman 35

Page 36: Modul+Tik+Turbo+Pascal

BeginXx1 := x1Yy1 := y1;Xx2 := x2;Yy2 := y2;Clipp := clip;Setcolor(2);Gambarview(‘View 1’);End;Closegraph;End.

PRAKTEK KE 21MEMBUAT UNIT

UNIT HELP1;INTERFACEUSES CRT,DOS,GRAPH;

CONST { THE FIVE FONT AVAILABLE } FONTS :ARRAY[0..4] OF STRING[13] = ('DEFAULTFONT', 'TRIPLEXFONT', 'SMALLFONT', 'SANSSERIFFONT', 'GOTHICFONT');

{ THE FIVE PREDEFINED LINE STYLES SUPPORTED } LINESTYLES : ARRAY[0..4] OF STRING[9] = ('SOLIDLN', 'DOTTEDLN', 'CENTERLN', 'DASHEDLN', 'USERBITLN');

{ THE TWELVE PREDEFINED FILL STYLES SUPPORTED } FILLSTYLES : ARRAY[0..11] OF STRING[14] = ('EMPTYFILL', 'SOLIDFILL', 'LINEFILL', 'LTSLASHFILL', 'SLASHFILL', 'BKSLASHFILL', 'LTBKSLASHFILL', 'HATCHFILL', 'XHATCHFILL', 'INTERLEAVEFILL', 'WIDEDOTFILL', 'CLOSEDOTFILL');

{ THE TWO TEXT DIRECTIONS AVAILABLE } TEXTDIRECT : ARRAY[0..1] OF STRING[8] = ('HORIZDIR', 'VERTDIR');

{ THE HORIZONTAL TEXT JUSTIFICATIONS AVAILABLE } HORIZJUST : ARRAY[0..2] OF STRING[10] = ('LEFTTEXT', 'CENTERTEXT', 'RIGHTTEXT');

{ THE VERTICAL TEXT JUSTIFICATIONS AVAILABLE } VERTJUST : ARRAY[0..2] OF STRING[10] = ('BOTTOMTEXT', 'CENTERTEXT', 'TOPTEXT');

VAR GRAPHDRIVER : INTEGER; { THE GRAPHICS DEVICE DRIVER } GRAPHMODE : INTEGER; { THE GRAPHICS MODE VALUE } MAXX, MAXY : WORD; { THE MAXIMUM RESOLUTION OF THE SCREEN }

ERRORCODE : INTEGER; { REPORTS ANY GRAPHICS ERRORS } MAXCOLOR : WORD; { THE MAXIMUM COLOR VALUE AVAILABLE } OLDEXITPROC : POINTER; { SAVES EXIT PROCEDURE ADDRESS }PROCEDURE INITIALIZE;FUNCTION INT2STR(L : LONGINT) : STRING ;FUNCTION RANDCOLOR : WORD;PROCEDURE DEFAULTCOLORS;PROCEDURE DRAWBORDER;PROCEDURE FULLPORT;PROCEDURE MAINWINDOW(HEADER : STRING );PROCEDURE STATUSLINE(MSG :STRING );PROCEDURE WAITTOGO;PROCEDURE GETDRIVERANDMODE(VAR DRIVESTR, MODESTR : STRING );PROCEDURE REPORTSTATUS;IMPLEMENTATION

{$F+}PROCEDURE MYEXITPROC;BEGIN EXITPROC := OLDEXITPROC; { RESTORE EXIT PROCEDURE ADDRESS } CLOSEGRAPH; { SHUT DOWN THE GRAPHICS SYSTEM }END; { MYEXITPROC }{$F-}

PROCEDURE INITIALIZE;{ INITIALIZE GRAPHICS AND REPORT ANY ERRORS THAT MAY OCCUR }VAR INGRAPHICSMODE : BOOLEAN; { FLAGS INITIALIZATION OF GRAPHICS MODE } PATHTODRIVER : STRING; { STORES THE DOS PATH TO *.BGI & *.CHR }BEGIN { WHEN USING CRT AND GRAPHICS, TURN OFF CRT'S MEMORY-MAPPED WRITES } DIRECTVIDEO := FALSE; OLDEXITPROC := EXITPROC; { SAVE PREVIOUS EXIT PROC } EXITPROC := @MYEXITPROC; PATHTODRIVER := ''; { INSERT OUR EXIT PROC IN CHAIN } REPEAT

{$IFDEF USE8514} { CHECK FOR USE8514 $DEFINE } GRAPHDRIVER := IBM8514; GRAPHMODE := IBM8514HI;{$ELSE} GRAPHDRIVER := DETECT; { USE AUTODETECTION }{$ENDIF}

INITGRAPH (GRAPHDRIVER, GRAPHMODE, PATHTODRIVER); ERRORCODE := GRAPHRESULT; { PRESERVE ERROR RETURN }

Halaman 36

Page 37: Modul+Tik+Turbo+Pascal

IF ERRORCODE <> GROK THEN { ERROR? } BEGIN WRITELN('GRAPHICS ERROR: ', GRAPHERRORMSG(ERRORCODE)); IF ERRORCODE = GRFILENOTFOUND THEN { CAN'T FIND DRIVER FILE } BEGIN WRITELN ('ENTER FULL PATH TO BGI DRIVER OR TYPE <CTRL-BREAK> TO QUIT:'); READLN (PATHTODRIVER); WRITELN; END ELSE HALT(1) { SOME OTHER ERROR: TERMINATE } END; UNTIL ERRORCODE = GROK; RANDOMIZE; { INIT RANDOM NUMBER GENERATOR } MAXCOLOR := GETMAXCOLOR; { GET THE MAXIMUM ALLOWABLE DRAWING COLOR } MAXX := GETMAXX; { GET SCREEN RESOLUTION VALUES } MAXY := GETMAXY;END; { INITIALIZE }

FUNCTION INT2STR (L : LONGINT) : STRING;{ CONVERTS AN INTEGER TO A STRING FOR USE WITH OUTTEXT, OUTTEXTXY }VAR S : STRING;BEGIN STR(L, S); INT2STR := S;END; { INT2STR }FUNCTION RANDCOLOR : WORD;{ RETURN A RANDOM NON-ZERO COLOR VALUE THAT SI WITHIN THE LEGAL COLOR RANGE FOR THE SELECTED DEVICE DRIVER AND GRAPHICS MODE. MAXCOLOR IS SET TO GET MAXCOLOR BY INITIALIZE }BEGIN RANDCOLOR := RANDOM(MAXCOLOR)+1;END; { RANDCOLOR }PROCEDURE DEFAULTCOLORS;{ SELECT THE MAXIMUM COOR IN THE PALETTE FOR HE DRAWING COLOR }BEGIN SETCOLOR(MAXCOLOR);END; { DEFAULTCOLORS }PROCEDURE DRAWBORDER;{ DRAW A BORDER AROUND THE CURRENT VIEW PORT }VAR VIEWPORT : VIEWPORTTYPE;BEGIN DEFAULTCOLORS; SETLINESTYLE(SOLIDLN, 0, NORMWIDTH); GETVIEWSETTINGS (VIEWPORT); WITH VIEWPORT DO RECTANGLE(0, 0, X2-X1, Y2-Y1); END; { DRAWBORDER }

PROCEDURE FULLPORT;{ SET THE VIEW PORT TO THE ENTIRE SCREEN }BEGIN SETVIEWPORT(0, 0, MAXX, MAXY, CLIPON);END; { FULLPORT }PROCEDURE MAINWINDOW (HEADER : STRING );{ MAKE A DEFAULT WINDOW AND VIEW PORT FOR DEMOS }BEGIN DEFAULTCOLORS; { RESET THE COLOR } CLEARDEVICE; { CLEAR THE SCREEN } SETTEXTSTYLE(DEFAULTFONT, HORIZDIR, 1); { DEFAULT TEXT FONT } SETTEXTJUSTIFY (CENTERTEXT, TOPTEXT); { LEFT JUSTIFY TEXT } FULLPORT; { FULL SCREEN VIEW PORT } OUTTEXTXY(MAXX DIV 2, 2, HEADER); { DRAW THE HEADER } { DRAW MAIN WINDOW } SETVIEWPORT (0, TEXTHEIGHT('M')+4, MAXX-1, MAXY-(TEXTHEIGHT('M')+4), CLIPON); DRAWBORDER; { MOVE THE EDGES IN1 PIXEL ON ALL SIDES SO BORDER ISN'T IN THE VIEW PORT } SETVIEWPORT(1, TEXTHEIGHT('M')+5, MAXX-1, MAXY-(TEXTHEIGHT('M')+5), CLIPON);END; { MAINWINDOW }PROCEDURE STATUSLINE (MSG : STRING);{ DISPLAY A STATUS LINE AT THE BOTTOM OF THE SCREEN }BEGIN FULLPORT; DEFAULTCOLORS; SETTEXTSTYLE (DEFAULTFONT, HORIZDIR, 1); SETTEXTJUSTIFY (CENTERTEXT, TOPTEXT); SETLINESTYLE (SOLIDLN, 0, NORMWIDTH); SETFILLSTYLE (EMPTYFILL, 0); BAR (0, MAXY-(TEXTHEIGHT('M')+4), MAXX, MAXY); { ERASE OLD STATUS LINE } RECTANGLE (0, MAXY-(TEXTHEIGHT('M')+4), MAXX, MAXY); OUTTEXTXY (MAXX DIV 2, MAXY-(TEXTHEIGHT('M')+2), MSG); { GO BACK THE MAIN WINDOW } SETVIEWPORT(1, TEXTHEIGHT('M')+5, MAXX-1, MAXY-(TEXTHEIGHT('M')+5), CLIPON);END; { STATUSLINE }PROCEDURE WAITTOGO;{ WAIT FOR THE USER TO ABORT THE PROGRAM OR CONTINUE }CONST ESC = #27;VAR CH : CHAR;BEGIN

Halaman 37

Page 38: Modul+Tik+Turbo+Pascal

STATUSLINE('ESC ABORTS OR PRESS A KEY...'); REPEAT UNTIL KEYPRESSED; CH := READKEY; IF CH = #0 THEN CH := READKEY; { TRAP FUNCTION KEYS } IF CH = ESC THEN HALT(0) { TERMINATE PROGRAM } ELSE CLEARDEVICE; { CLEAR SCREEN, GO ON WITH DEMO }END; { WAITTOGO }

PROCEDURE GETDRIVERANDMODE (VAR DRIVESTR, MODESTR : STRING);{ RETURN STRINGS DESCRIBING THE CURRENT DEVICE DRIVER AND GRAPHICS MODE FOR DISPLAY OF STATUS REPORT }BEGIN DRIVESTR := GETDRIVERNAME; MODESTR := GETMODENAME (GETGRAPHMODE);END; { GETDRIVERANDMODE }PROCEDURE REPORTSTATUS;{ DISPLAY THE STATUS OF ALL QUERY FUNCTIONS AFTER INITGRAPH }CONST X = 10;VAR VIEWINFO : VIEWPORTTYPE; { PARAMETERS FOR INQUIRY PROCEDURES } LINEINFO : LINESETTINGSTYPE; FILLINFO : FILLSETTINGSTYPE; TEXTINFO : TEXTSETTINGSTYPE; PALETTE : PALETTETYPE; DRIVERSTR : STRING; { DRIVER AND MODE STRINGS } MODESTR : STRING; Y : WORD;PROCEDURE WRITEOUT (S : STRING);{ WRITE OUT A STRING AND INCREMENT TO NEXT LINE }BEGIN OUTTEXTXY(X, Y, S); INC(Y, TEXTHEIGHT('M')+2);END; { WRITEOUT }BEGIN { REPORT STATUS } GETDRIVERANDMODE(DRIVERSTR, MODESTR); { GET CURRENT SETTINGS } GETVIEWSETTINGS(VIEWINFO); GETLINESETTINGS(LINEINFO); GETFILLSETTINGS(FILLINFO); GETTEXTSETTINGS(TEXTINFO); GETPALETTE(PALETTE); Y := 4; MAINWINDOW('STATUS REPORT AFTER INITGRAPH'); SETTEXTJUSTIFY(LEFTTEXT, TOPTEXT); WRITEOUT('GRAPHICS DEVICE : '+DRIVERSTR); WRITEOUT('GRAPHICS MODE : '+MODESTR); WRITEOUT('SCREEN RESOLUTION : (0, 0, '+INT2STR(GETMAXX)+', '+INT2STR(GETMAXY)+')'); WITH VIEWINFO DO

BEGIN WRITEOUT('CURRENT VIEW PORT : ('+INT2STR(X1)+', '+INT2STR(Y1)+', '+INT2STR(X2)+', '+INT2STR(Y2)+')'); IF CLIPON THEN WRITEOUT('CLIPPING : ON') ELSE WRITEOUT('CLIPPING : OFF'); END; WRITEOUT('CURRENT POSITION : ('+INT2STR(GETX)+', '+INT2STR(GETY)+')'); WRITEOUT('PALETTE ENTRIES : '+INT2STR(PALETTE.SIZE)); WRITEOUT('GETMAXCOLOR : '+INT2STR(GETMAXCOLOR)); WRITEOUT('CURRENT COLOR : '+INT2STR(GETCOLOR)); WITH LINEINFO DO BEGIN WRITEOUT('LINE STYLE : '+LINESTYLES[LINESTYLE]); WRITEOUT('LINE THICKNESS : '+INT2STR(THICKNESS)); END; WITH FILLINFO DO BEGIN WRITEOUT('CURRENT FILL STYLE : '+FILLSTYLES[PATTERN]); WRITEOUT('CURRENT FILL COLOR : '+INT2STR(COLOR)); END; WITH TEXTINFO DO BEGIN WRITEOUT('CURRENT FONT : '+FONTS[FONT]); WRITEOUT('TEXT DIRECTION : '+TEXTDIRECT[DIRECTION]); WRITEOUT('CHARACTER SIZE : '+INT2STR(CHARSIZE)); WRITEOUT('HORIZONTAL JUSTIFY : '+HORIZJUST[HORIZ]); WRITEOUT('VERTICAL JUSTIFY : '+VERTJUST[VERT]); END; WAITTOGO;END; { REPORTSTATUS }END.

UNIT GRAFIK;INTERFACEUSESCRT,GRAPH;VAR GRAPHDRIVER : INTEGER; { THE GRAPHICS DEVICE DRIVER } GRAPHMODE : INTEGER; { THE GRAPHICS MODE VALUE } MAXX,MAXY : WORD; { THE MAXIMUM RESOLUTION OF THE SCREEN } ERRORCODE : INTEGER; { REPORTS ANY GRAPHICS ERRORS } MAXCOLOR : WORD; { THE MAXIMUM COLOR VALUE AVAILABLE } OLDEXITPROC : POINTER; { SAVES EXIT PROCEDURE ADDRESS }PROCEDURE BUKA;

Halaman 38

Page 39: Modul+Tik+Turbo+Pascal

PROCEDURE BIDANG_GAMBAR (VAR X_MIN,Y_MIN,X_MAX,Y_MAX:REAL);PROCEDURE KERANGKA;PROCEDURE TRANSFORMASI (X_MIN,Y_MIN,X_MAX,Y_MAX, X_GAMBAR,Y_GAMBAR:REAL; VAR X_LAYAR,Y_LAYAR:REAL);PROCEDURE SUMBU_KOORDINAT (X_MIN,Y_MIN,X_MAX,Y_MAX:REAL);PROCEDURE SKALA (X_MIN,Y_MIN,X_MAX,Y_MAX:REAL);PROCEDURE TULIS_PESAN;PROCEDURE HAPUS_PESAN;PROCEDURE TUTUP;IMPLEMENTATION{$F+}PROCEDURE MYEXITPROC;BEGIN EXITPROC := OLDEXITPROC; { RESTORE EXIT PROCEDURE ADDRESS } CLOSEGRAPH; { SHUT DOWN THE GRAPHICSSYSTEM }END; { MYEXITPROC }{$F-}PROCEDURE BUKA;{ INITIALIZE GRAPHICS AND REPORT ANY ERRORS THAT MY OCCUR }XVAR INGRAPHICSMODE : BOOLEAN; { FLAGS INITIALIZATION OF GRAPHICS MODE } PATHTODRIVER : STRING; { STORES THE DOS PATH TO *.BGI & *.CHR }BEGIN { WHEN USING CRT AND GRAPHICS, TURN OFF CRT'S MEMORY-MAPPED WRITES } DIRECTVIDEO := FALSE; OLDEXITPROC := EXITPROC; { SAVE PREVIOUS EXIT PROC } EXITPROC := @MYEXITPROC; { INSERT OUR EXIT PROC IN CHAIN } PATHTODRIVER := ''; REPEAT{$IFDEF USE8514} { CHECK FOR USE8514 $DEFINE } GRAPHDRIVER := IBM8514; GRAPHMODE := IBM8514HI;{$ELSE} GRAPHDRIVER := DETECT; { USE OUTODETECTION }{$ENDIF} INITGRAPH (GRAPHDRIVER, GRAPHMODE, PATHTODRIVER); ERRORCODE := GRAPHRESULT; { PRESERVE ERROR RETURN } IF ERRORCODE <> GROK THEN { ERROR? } BEGIN WRITELN ('GRAPHICS ERROR: ', GRAPHERRORMSG (ERRORCODE)); IF ERRORCODE = GRFILENOTFOUND THEN { CAN'T FIND DRIVER FILE } BEGIN WRITELN ('ENTER FULL PATH TO BGI DRIVER OR TYPE <CTRL-BREAK> TO QUIT:'); READLN (PATHTODRIVER); WRITELN; END

ELSE HALT(1); { SOME OTHER ERROR: TERMINATE } END; UNTIL ERRORCODE = GROK; RANDOMIZE; { INIT RANDOM NUMBER GENERATOR } MAXCOLOR := GETMAXCOLOR; { GET THE MAXIMUM ALLOWABLE DRAWING COLOR } MAXX := GETMAXX; { GET SCREEN RESOLUTION VALUES } MAXY := GETMAXY;END; { INITIALIZE }PROCEDURE BIDANG_GAMBAR (VAR X_MIN,Y_MIN,X_MAX,Y_MAX:REAL);BEGINWRITELN; WRITELN;WRITELN ('BIDANG GAMBAR:');WRITE ('TITIK X MINIMUM : ');READLN (X_MIN);WRITE ('TITIK Y MINIMUM : ');READLN (Y_MIN);WRITE ('TITIK X MAXSIMUM : ');READLN (X_MAX);WRITE ('TITIK Y MAXSIMUM : ');READLN (Y_MAX);END;PROCEDURE KERANGKA;BEGINRECTANGLE (0,0,3*GETMAXX DIV 4,9*GETMAXY DIV 10);RECTANGLE (3*GETMAXX DIV 4,0,GETMAXX,9*GETMAXY DIV 10);RECTANGLE (0,9*GETMAXY DIV 10,GETMAXX,GETMAXY);SETFILLSTYLE (1,BLUE);FLOODFILL (1,1,WHITE);SETFILLSTYLE (1,LIGHTBLUE);FLOODFILL (GETMAXX-1,1,WHITE);SETFILLSTYLE (1,CYAN);FLOODFILL (1,GETMAXY-1,WHITE);SETTEXTSTYLE (SMALLFONT,HORIZDIR,5);SETTEXTJUSTIFY (CENTERTEXT, CENTERTEXT);OUTTEXTXY (7*GETMAXX DIV 8,GETMAXY DIV 10,'D A T A:');END;PROCEDURE TRNSFORMASI (X_MIN,Y_MIN,X_MAX,Y_MAX, X_GAMBAR,Y_GAMBAR:REAL; VAR X_LAYAR,Y_LAYAR:REAL);VARXMIN,XMAX,YMIN,YMAX :INTEGER;BEGINXMIN := GETMAXX DIV 10;XMAX := 3*GETMAXX DIV 4;YMIN := 0;YMAX := 8*GETMAXY DIV 10;X_LAYAR := (XMIN*X_MAX-XMAX*X_MIN)/(X_MAX-X_MIN)+ X_GAMBAR*(XMAX-XMIN)/(X_MAX-X_MIN);Y_LAYAR := (YMAX*Y_MAX-YMIN*Y_MIN)/(Y_MAX-Y_MIN)-Y_GAMBAR*(YMAX-YMIN)/(Y_MAX-Y_MIN);END;PROCEDURE SUMBU_KOORDINAT (X_MIN,Y_MIN,X_MAX,Y_MAX:REAL);

Halaman 39

Page 40: Modul+Tik+Turbo+Pascal

VARX1,Y1,X2,Y2 :REAL;BEGINTRANSFORMASI (X_MIN,Y_MIN,X_MAX,Y_MAX,X_MIN,0,X1,Y1);TRANSFORMASI (X_MIN,Y_MIN,X_MAX,Y_MAX,X_MAX,0,X2,Y2);LINE(TRUNC(X1),TRUNC(Y1),TRUNC(X2),TRUNC(Y2));TRANSFORMASI (X_MIN,Y_MIN,X_MAX,Y_MAX,0,Y_MIN,X1,Y1);TRANSFORMASI (X_MIN,Y_MIN,X_MAX,Y_MAX,0,Y_MAX,X2,Y2);LINE(TRUNC(X1),TRUNC(Y1),TRUNC(X2),TRUNC(Y2));END;PROCEDURE SKALA (X_MIN,Y_MIN,X_MAX,Y_MAX:REAL);VARDEL,DEL_1,X1,Y1,X2,Y2 :REAL;N : INTEGER;DTX: STRING [5];BEGINTRANSFORMASI (X_MIN,Y_MIN,X_MAX,Y_MAX,X_MIN,Y_MIN,X1,Y1);TRANSFORMASI (X_MIN,Y_MIN,X_MAX,Y_MAX,X_MIN,Y_MAX,X2,Y2);LINE(TRUNC(X1),TRUNC(Y1),TRUNC(X2),TRUNC(Y2));SETTEXTSTYLE (SMALLFONT,HORIZDIR,5);SETTEXTJUSTIFY (CENTERTEXT,CENTERTEXT);DEL := (Y_MAX-Y_MIN)/5;DEL_1 := (Y2-Y1)/5;FOR N := 1 TO 6 DOBEGINIF N = 6 THEN OUTTEXTXY (GETMAXX DIV 20, TRUNC(Y1+DEL_1*4.75),'Y')ELSEBEGINSTR (Y_MIN+DEL*(N-1):5:2,DTX);OUTTEXTXY (GETMAXX DIV 20,TRUNC(Y1+DEL_1*(N-1)),DTX);IF N <> 1 THENOUTTEXTXY (GETMAXX DIV 10,TRUNC(Y1+DEL_1*(N-1)),'-');END;END;TRANSFORMASI (X_MIN,Y_MIN,X_MAX,Y_MAX,X_MAX,Y_MIN,X2,Y2);LINE(TRUNC(X1),TRUNC(Y1),TRUNC(X2),TRUNC(Y2));

DEL := (X_MAX-X_MIN) / 5;DEL_1 := (X2-X1) / 5;FOR N := 1 TO 6 DOBEGINIF N = 6 THENOUTTEXTXY (TRUNC (X1+DEL_1*4.75),17*GETMAXY DIV 20,'X')ELSE

BEGINSTR (X_MIN+DEL* (N-1):5:2,DTX);OUTTEXTXY (TRUNC (X1+DEL_1*(N-1)),17*GETMAXY DIV 20,DTX);IF N <> 1 THENOUTTEXTXY (TRUNC (X1+DEL_1*(N-1)),8*GETMAXY DIV 10,'I');END;END;END;

PROCEDURE TULIS_PESAN;BEGINSETCOLOR (CYAN);SETTEXTJUSTIFY (CENTERTEXT,CENTERTEXT);OUTTEXTXY (GETMAXX DIV 2,19*GETMAXY DIV 20,'TEKAN <ENTER>');REPEAT UNTIL READKEY = #13;END;

PROCEDURE HAPUS_PESAN;BEGINSETCOLOR (CYAN);SETTEXTJUSTIFY (CENTERTEXT,CENTERTEXT);OUTTEXTXY (GETMAXX DIV 2,19*GETMAXY DIV 20,'TEKAN <ENTER>');SETCOLOR (WHITE);END;PROCEDURE TUTUP;BEGINSETCOLOR (CYAN);SETTEXTSTYLE (SMALLFONT,HORIZDIR,5);SETTEXTJUSTIFY (CENTERTEXT,RIGHTTEXT);OUTTEXTXY (GETMAXX DIV 2,19*GETMAXY DIV 20,'TEKAN <ESC>');REPEAT UNTIL READKEY = #27;CLOSEGRAPH;END;END.

PRAKTEK KE 22PROGRAM DEMO1;USES CRT, DOS, GRAPH,HELP1;

PROCEDURE FILLELLIPSEPLAY;CONST MAXFILLSTYLES = 12;VAR MAXRADIUS : WORD; FILLCOLOR : INTEGER;BEGIN MAINWINDOW ('FILLELLIPSE DEMONSTRASION'); STATUSLINE ('ESC ABORTS OR PRESS A KEY'); MAXRADIUS := MAXY DIV 10; SETLINESTYLE(SOLIDLN, 0, NORMWIDTH); REPEAT FILLCOLOR := RANDCOLOR; SETCOLOR(FILLCOLOR); SETFILLSTYLE(RANDOM(MAXFILLSTYLES), FILLCOLOR);

Halaman 40

Page 41: Modul+Tik+Turbo+Pascal

FILLELLIPSE(RANDOM(MAXX), RANDOM(MAXY), RANDOM(MAXRADIUS), RANDOM(MAXRADIUS)); UNTIL KEYPRESSED; WAITTOGO;END;BEGIN INITIALIZE; FILLELLIPSEPLAY; CLOSEGRAPH;END.

PROGRAM DEMO2;USES CRT, DOS, GRAPH,HELP1;

PROCEDURE SECTORPLAY;CONST MAXFILLSTYLES = 12;VAR MAXRADIUS : WORD; FILLCOLOR : INTEGER; ENDANGLE : INTEGER;BEGIN MAINWINDOW('SECTOR DEMONSTRASION'); STATUSLINE('ESC ABORTS OR PRESS A KEY'); MAXRADIUS := MAXY DIV 10; SETLINESTYLE(SOLIDLN, 0, NORMWIDTH); REPEAT FILLCOLOR := RANDCOLOR; SETCOLOR(FILLCOLOR); SETFILLSTYLE(RANDOM(MAXFILLSTYLES), FILLCOLOR); ENDANGLE := RANDOM(360); SECTOR(RANDOM(MAXX), RANDOM(MAXY), RANDOM(ENDANGLE), ENDANGLE, RANDOM(MAXRADIUS), RANDOM(MAXRADIUS)); UNTIL KEYPRESSED; WAITTOGO;END;

BEGIN INITIALIZE; SECTORPLAY; CLOSEGRAPH;END.

PROGRAM DEMO3;USES CRT, DOS, GRAPH,HELP1;

PROCEDURE WRITEMODEPLAY;CONST DELAYVALUE = 50;VAR VIEWINFO : VIEWPORTTYPE; COLOR : WORD; LEFT, TOP : INTEGER; RIGHT, BOTTOM : INTEGER; STEP : INTEGER;BEGIN

MAINWINDOW('SETWRITEMODE DEMONSTRASION'); STATUSLINE('ESC ABORTS OR PRESS A KEY'); GETVIEWSETTINGS(VIEWINFO); LEFT := 0; TOP := 0; WITH VIEWINFO DO BEGIN RIGHT := X2-X1; BOTTOM := Y2-Y1; END; STEP := BOTTOM DIV 50; SETCOLOR(GETMAXCOLOR); LINE(LEFT, TOP, RIGHT, BOTTOM); LINE(LEFT, BOTTOM, RIGHT, TOP); SETWRITEMODE(XORPUT); REPEAT LINE(LEFT, TOP, RIGHT, BOTTOM); LINE(LEFT, BOTTOM, RIGHT, TOP); RECTANGLE(LEFT, TOP, RIGHT, BOTTOM); DELAY(DELAYVALUE); LINE(LEFT, TOP, RIGHT, BOTTOM); LINE(LEFT, BOTTOM, RIGHT, TOP); RECTANGLE(LEFT, TOP, RIGHT, BOTTOM); IF (LEFT+STEP < RIGHT) AND (TOP+STEP < BOTTOM) THEN BEGIN INC (LEFT, STEP); INC (TOP, STEP); DEC (RIGHT, STEP); DEC (BOTTOM, STEP); END ELSE BEGIN COLOR := RANDCOLOR; SETCOLOR(COLOR); LEFT := 0; TOP := 0; WITH VIEWINFO DO BEGIN RIGHT := X2-X1; BOTTOM := Y2-Y1; END; END; UNTIL KEYPRESSED; SETWRITEMODE(COPYPUT); WAITTOGO; END; BEGIN INITIALIZE; WRITEMODEPLAY; CLOSEGRAPH; END.

PROGRAM BGIDEMO4;USES CRT, DOS, GRAPH,HELP1;PROCEDURE DEMO;VAR VIEWINFO : VIEWPORTTYPE; CENTERX : INTEGER; CENTERY : INTEGER; RADIUS : WORD; XASP, YASP : WORD; I : INTEGER; RADIUSSTEP : WORD;BEGIN

Halaman 41

Page 42: Modul+Tik+Turbo+Pascal

MAINWINDOW('SETASPECTRATIO DEMONSTRATION'); GETVIEWSETTINGS(VIEWINFO); WITH VIEWINFO DO BEGIN CENTERX := (X2-X1); CENTERY := (Y2-Y1); RADIUS := 3*((Y2-Y1) DIV 5); END; RADIUSSTEP := (RADIUS DIV 30); CIRCLE(CENTERX, CENTERY, RADIUS); GETASPECTRATIO(XASP, YASP); FOR I := 1 TO 30 DO BEGIN SETASPECTRATIO(XASP, YASP+(I*GETMAXX)); CIRCLE(CENTERX, CENTERY, RADIUS);DELAY(2000); DEC(RADIUS, RADIUSSTEP); END; INC(RADIUS, RADIUSSTEP*30); FOR I := 1TO 30 DO BEGIN SETASPECTRATIO(XASP+(I*GETMAXX), YASP); IF RADIUS > RADIUSSTEP THEN DEC(RADIUS, RADIUSSTEP); CIRCLE(CENTERX, CENTERY, RADIUS); END; SETASPECTRATIO(XASP, YASP); WAITTOGO;END;BEGIN INITIALIZE; DEMO; CLOSEGRAPH;END.

PROGRAM DEMO5;USES CRT, DOS, GRAPH,HELP1;

PROCEDURE DEMO;VAR SIZE : WORD; W, H, X, Y : WORD; VIEWINFO : VIEWPORTTYPE;BEGIN MAINWINDOW('SETTEXTJUSTIFY / SETUSERCHARSIZE DEMO'); GETVIEWSETTINGS(VIEWINFO); WITH VIEWINFO DO BEGIN SETTEXTSTYLE(TRIPLEXFONT, VERTDIR, 4); Y := (Y2-Y1) - 2; SETTEXTJUSTIFY(CENTERTEXT, BOTTOMTEXT); OUTTEXTXY(2*TEXTWIDTH('M'), Y, 'VERTICAL'); SETTEXTSTYLE(TRIPLEXFONT, HORIZDIR, 4); SETTEXTJUSTIFY(LEFTTEXT, TOPTEXT); OUTTEXTXY(2*TEXTWIDTH('M'), 2, 'HORIZONTAL'); SETTEXTJUSTIFY(CENTERTEXT, CENTERTEXT); X := (X2-X1)DIV 2; Y := TEXTHEIGHT('H');

FOR SIZE := 1 TO 4 DO; BEGIN SETTEXTSTYLE(TRIPLEXFONT, HORIZDIR, SIZE); H := TEXTHEIGHT('M'); W := TEXTWIDTH('M'); INC(Y, H); OUTTEXTXY(X, Y, 'SIZE '+INT2STR(SIZE)); END; INC(Y, H DIV 2); SETTEXTJUSTIFY(CENTERTEXT, TOPTEXT); SETUSERCHARSIZE(5, 6, 3, 2); SETTEXTSTYLE(TRIPLEXFONT, HORIZDIR, USERCHARSIZE); OUTTEXTXY((X2-X1) DIV 2, Y, ' USERDEFINED SIZE!'); END; WAITTOGO;END;BEGIN INITIALIZE; DEMO;END.

PROGRAM DEMO6;USES CRT, DOS, GRAPH,HELP1;

PROCEDURE DEMO;CONST CGASIZES : ARRAY[0..4] OF WORD = (1, 3, 7, 3, 3); NORMSIZE : ARRAY[0..4] OF WORD = (1, 4, 7, 4, 4);VAR FONT : WORD; VIEWINFO : VIEWPORTTYPE; CH : CHAR;BEGIN FOR FONT := 0 TO 4 DO BEGIN MAINWINDOW(FONTS[FONT]+' CHARACTER SET'); GETVIEWSETTINGS(VIEWINFO); WITH VIEWINFO DO BEGIN SETTEXTJUSTIFY(LEFTTEXT, TOPTEXT); MOVETO(2, 3); IF FONT = DEFAULTFONT THEN BEGIN SETTEXTSTYLE(FONT, HORIZDIR, 1); CH := #0; REPEAT OUTTEXT(CH); IF (GETX + TEXTWIDTH('M')) > (X2-X1) THEN MOVETO (2, GETY + TEXTHEIGHT('M')+3); CH := SUCC(CH); UNTIL (CH >= #255); END ELSE BEGIN IF MAXY < 200 THEN SETTEXTSTYLE(FONT, HORIZDIR, CGASIZES[FONT]); CH := '!';

Halaman 42

Page 43: Modul+Tik+Turbo+Pascal

REPEAT OUTTEXT(CH); IF (GETX + TEXTWIDTH('M')) > (X2-X1) THEN MOVETO(2, GETY + TEXTHEIGHT('M')+3); CH := SUCC(CH); UNTIL (ORD(CH) = ORD('~')+ 1); END; END; WAITTOGO; END;END;BEGIN INITIALIZE; DEMO;END.

PROGRAM DEMO7;USES CRT, DOS, GRAPH,HELP1;PROCEDURE DEMO;CONST MAXPOINTS = 15;VAR POINTS : ARRAY[0..MAXPOINTS] OF POINTTYPE; VIEWINFO : VIEWPORTTYPE; I, J : INTEGER; CENTERX : INTEGER; CENTERY : INTEGER; RADIUS : WORD; STEPANGLE : WORD; XASP, YASP : WORD; RADIANS : REAL;

FUNCTION ADJASP(VALUE : INTEGER) : INTEGER;BEGIN ADJASP := (LONGINT(VALUE) * XASP) DIV YASP;END;

BEGIN MAINWINDOW('MOVETO, LINETO DEMONSTRASION'); GETASPECTRATIO(XASP, YASP); GETVIEWSETTINGS (VIEWINFO); WITH VIEWINFO DO BEGIN CENTERX := (X2-X1) DIV 2; CENTERY := (Y2-Y1) DIV 2; RADIUS := CENTERY; WHILE (CENTERY+ADJASP(RADIUS)) < (Y2-Y1)-20 DO INC(RADIUS); END; STEPANGLE := 360 DIV MAXPOINTS; FOR I := 0 TO MAXPOINTS - 1 DO BEGIN RADIANS := (STEPANGLE * I) * PI / 180; POINTS[I].X := CENTERX + ROUND(COS(RADIANS) * RADIUS); POINTS[I].Y := CENTERY - ADJASP(ROUND(SIN(RADIANS) * RADIUS)); END; CIRCLE(CENTERX, CENTERY, RADIUS); FOR I := 0 TO MAXPOINTS - 1 DO BEGIN

FOR J := I TO MAXPOINTS - 1 DO BEGIN MOVETO(POINTS[I].X, POINTS[I].Y); LINETO(POINTS[J].X, POINTS[J].Y); END; END; WAITTOGO;END;BEGIN INITIALIZE;DEMO;END.

PROGRAM DEMO8;USES CRT, DOS, GRAPH,HELP1;PROCEDURE DEMO;CONST MAXPOINTS = 12;VAR POLY : ARRAY[1..MAXPOINTS] OF POINTTYPE; CURRPORT : VIEWPORTTYPE;

PROCEDURE DRAWTESSERACT;CONST CHECKERBOARD : FILLPATTERNTYPE = (0, $10, $28, $44, $28, $10, 0, 0);VAR X, Y, W, H : INTEGER;

BEGIN GETVIEWSETTINGS(CURRPORT); WITH CURRPORT DO BEGIN W := (X2-X1) DIV 9; H := (Y2-Y1) DIV 8; X := ((X2-X1) DIV 2) - ROUND(2.5 * W); Y := ((Y2-Y1) DIV 2) - (3 * H); POLY[1].X := 0; POLY[1].Y := 0; POLY[2].X := X2-X1; POLY[2].Y := 0; POLY[3].X := X2-X1; POLY[3].Y := Y2-Y1; POLY[4].X := 0; POLY[4].Y := Y2-Y1; POLY[5].X := 0; POLY[5].Y := 0; MOVETO(X, Y); MOVEREL(0, H); POLY[6].X := GETX; POLY[6].Y := GETY; MOVEREL(W, -H); POLY[7].X := GETX; POLY[7].Y := GETY; MOVEREL(4*W, 0); POLY[8].X := GETX; POLY[8].Y := GETY; MOVEREL(0, 5*H); POLY[9].X := GETX; POLY[9].Y := GETY; MOVEREL(-W, H); POLY[10].X := GETX; POLY[10].Y := GETY; MOVEREL(-4*W, 0); POLY[11].X := GETX; POLY[11].Y := GETY; MOVEREL(0, -5*H); POLY[12].X := GETX; POLY[12].Y := GETY; SETFILLPATTERN(CHECKERBOARD, MAXCOLOR); FILLPOLY(12, POLY); MOVEREL(W, -H); LINEREL(0, 5*H); LINEREL(2*W, 0); LINEREL(0, -3*H); LINEREL(W, -H); LINEREL(0, 5*H); MOVEREL(0, -5*H); LINEREL(-2*W, 0); LINEREL(0, 3*H); LINEREL(-W, H);

Halaman 43

Page 44: Modul+Tik+Turbo+Pascal

MOVEREL(W, -H); LINEREL(W, 0); MOVEREL(0, -2*H); LINEREL(-W, 0); FLOODFILL((X2-X1) DIV 2, (Y2-Y1) DIV 2, MAXCOLOR); END;END;BEGIN MAINWINDOW('LINEREL / MOVEREL DEMONTRASION'); GETVIEWSETTINGS(CURRPORT); WITH CURRPORT DO SETVIEWPORT(X1-1, Y1-1, X2+1, Y2+1, CLIPON); DRAWTESSERACT; WAITTOGO;END;BEGIN INITIALIZE; DEMO;END.

PROGRAM DEMO9;USES CRT, DOS, GRAPH,HELP1;PROCEDURE DEMO;VAR VIEWINFO : VIEWPORTTYPE; CENTERX : INTEGER; CENTERY : INTEGER; RADIUS : WORD; XASP, YASP : WORD; X, Y : INTEGER;

FUNCTION ADJASP(VALUE : INTEGER) : INTEGER ;BEGIN ADJASP := (LONGINT(VALUE) * XASP) DIV YASP;END;

PROCEDURE GETTEXTCOORDS(ANGLEINDEGREES, RADIUS : WORD; VAR X, Y : INTEGER);VAR RADIANS : REAL;BEGIN RADIANS := ANGLEINDEGREES * PI / 180; X := ROUND(COS(RADIANS) * RADIUS); Y := ROUND(SIN(RADIANS) * RADIUS);END;

BEGIN MAINWINDOW('PIESLICE / GETASPECTRATIO DEMONSTRASION'); GETASPECTRATIO(XASP, YASP); GETVIEWSETTINGS(VIEWINFO); WITH VIEWINFO DO BEGIN CENTERX := (X2-X1) DIV 2; CENTERY := ((Y2-Y1) DIV 2) + 20; RADIUS := (Y2-Y1) DIV 3; WHILE ADJASP(RADIUS) < ROUND((Y2-Y1) / 3.6) DO INC(RADIUS); END; SETTEXTSTYLE(TRIPLEXFONT, HORIZDIR, 4);

SETTEXTJUSTIFY(CENTERTEXT, TOPTEXT); OUTTEXTXY(CENTERX, 0, ' THIS IS A PIE CHART!');

SETTEXTSTYLE(TRIPLEXFONT, HORIZDIR, 3);

SETFILLSTYLE(SOLIDFILL, RANDCOLOR); PIESLICE(CENTERX+10, CENTERY-ADJASP(10), 0, 90, RADIUS); GETTEXTCOORDS(45, RADIUS, X, Y); SETTEXTJUSTIFY(LEFTTEXT, BOTTOMTEXT); OUTTEXTXY(CENTERX+10+X+TEXTWIDTH('H'), CENTERY-ADJASP(10+Y), '25 %');

SETFILLSTYLE(HATCHFILL, RANDCOLOR); PIESLICE(CENTERX, CENTERY, 225, 360, RADIUS); GETTEXTCOORDS(293, RADIUS, X, Y); SETTEXTJUSTIFY(LEFTTEXT, TOPTEXT); OUTTEXTXY(CENTERX+X+TEXTWIDTH('H'), CENTERY-ADJASP(Y), '37.5 %');

SETFILLSTYLE(INTERLEAVEFILL, RANDCOLOR); PIESLICE(CENTERX-10, CENTERY,135, 225, RADIUS); GETTEXTCOORDS(180, RADIUS, X, Y); SETTEXTJUSTIFY(RIGHTTEXT, CENTERTEXT); OUTTEXTXY(CENTERX-10+X-TEXTWIDTH('H'), CENTERY-ADJASP(Y), '25 %'); SETFILLSTYLE(WIDEDOTFILL, RANDCOLOR); PIESLICE(CENTERX, CENTERY, 90, 135, RADIUS); GETTEXTCOORDS(112, RADIUS, X, Y); SETTEXTJUSTIFY(RIGHTTEXT, BOTTOMTEXT); OUTTEXTXY(CENTERX+X-TEXTWIDTH('H'), CENTERY-ADJASP(Y), '12.5 %'); WAITTOGO;END;BEGIN INITIALIZE; DEMO;END.

PROGRAM DEMO10;USES CRT, DOS, GRAPH,HELP1;PROCEDURE DEMO;CONST NUMBARS = 7; BARHEIGHT : ARRAY[1..NUMBARS] OF BYTE = (1, 3, 2, 5, 4, 2, 1); YTICKS = 5;VAR VIEWINFO : VIEWPORTTYPE; H : WORD; XSTEP : REAL; YSTEP : REAL; I, J : INTEGER; DEPTH : WORD;

Halaman 44

Page 45: Modul+Tik+Turbo+Pascal

COLOR : WORD;BEGIN MAINWINDOW('BAR3D / RECTANGLE DEMONSTRATION'); H := 3*TEXTHEIGHT('M'); GETVIEWSETTINGS(VIEWINFO); SETTEXTJUSTIFY(CENTERTEXT, TOPTEXT); SETTEXTSTYLE(TRIPLEXFONT, HORIZDIR, 4); OUTTEXTXY(MAXX DIV 2, 6, 'THESE ARE 3D BARS !'); SETTEXTSTYLE(DEFAULTFONT, HORIZDIR, 1); WITH VIEWINFO DO SETVIEWPORT(X1+50, Y1+40, X2-50, Y2-10, CLIPON); GETVIEWSETTINGS(VIEWINFO); WITH VIEWINFO DO BEGIN LINE(H, H, H, (Y2-Y1)-H); LINE(H, (Y2-Y1)-H, (X2-X1)-H, (Y2-Y1)-H); YSTEP := ((Y2-Y1)-(2*H)) / YTICKS; XSTEP := ((X2-X1)-(2*H)) / NUMBARS; J := (Y2-Y1)-H; SETTEXTJUSTIFY(CENTERTEXT, CENTERTEXT);

FOR I := 0 TO YTICKS DO BEGIN LINE(H DIV 2, J, H, J); OUTTEXTXY(0, J, INT2STR(I)); J := ROUND(J-YSTEP); END;

DEPTH := TRUNC(0.25 * XSTEP);

SETTEXTJUSTIFY(CENTERTEXT, TOPTEXT); J := H; FOR I := 1 TO SUCC(NUMBARS) DO BEGIN SETCOLOR(MAXCOLOR); LINE(J, (Y2-Y1)-H, J, (Y2-Y1-3)-(H DIV 2)); OUTTEXTXY(J, (Y2-Y1)-(H DIV 2), INT2STR(I-1)); IF I <> SUCC(NUMBARS) THEN BEGIN COLOR := RANDCOLOR; SETFILLSTYLE(I, COLOR); SETCOLOR(COLOR); BAR3D(J, ROUND((Y2-Y1-H)-(BARHEIGHT[I] * YSTEP)), ROUND(J+XSTEP-DEPTH), ROUND((Y2-Y1)-H-1), DEPTH, TOPON); J := ROUND(J+XSTEP); END; END;

END; WAITTOGO; END; BEGIN INITIALIZE; DEMO; END.

PROGRAM BGIDEMO11;USES CRT, DOS, GRAPH,HELP1;

PROCEDURE DEMO;CONST NUMBARS = 5; BARHEIGHT : ARRAY[1..NUMBARS] OF BYTE = (1, 3, 5, 2, 4); STYLES : ARRAY[1..NUMBARS] OF BYTE = (1, 3, 10, 5, 9);VAR VIEWINFO : VIEWPORTTYPE; BARNUM : WORD; H : WORD; XSTEP : REAL; YSTEP : REAL; I, J : INTEGER; COLOR : WORD;BEGIN MAINWINDOW('BAR / RECTANGLE DEMONSTRASION'); H := 3*TEXTHEIGHT('M'); GETVIEWSETTINGS(VIEWINFO); SETTEXTJUSTIFY(CENTERTEXT, TOPTEXT); SETTEXTSTYLE(TRIPLEXFONT, HORIZDIR, 4); OUTTEXTXY(MAXX DIV 2, 6, 'THESE ARE 2D BARS !'); SETTEXTSTYLE(DEFAULTFONT, HORIZDIR, 1); WITH VIEWINFO DO SETVIEWPORT(X1+50, Y1+30, X2-50, Y2-10, CLIPON); GETVIEWSETTINGS(VIEWINFO); WITH VIEWINFO DO BEGIN LINE(H, H, H, (Y2-Y1)-H); LINE(H, (Y2-Y1)-H, (X2-X1)-H, (Y2-Y1)-H); YSTEP := ((Y2-Y1)-(2*H)) / NUMBARS; XSTEP := ((X2-X1)-(2*H)) / NUMBARS; J := (Y2-Y1)-H; SETTEXTJUSTIFY(CENTERTEXT, CENTERTEXT); FOR I := 0 TO NUMBARS DO BEGIN LINE(H DIV 2, J, H, J); OUTTEXTXY(0, J, INT2STR(I)); J := ROUND(J-YSTEP); END; J := H; SETTEXTJUSTIFY(CENTERTEXT, TOPTEXT); FOR I := 1 TO SUCC(NUMBARS) DO BEGIN SETCOLOR(MAXCOLOR); LINE(J, (Y2-Y1)-H, J, (Y2-Y1-3)-(H DIV 2)); OUTTEXTXY(J, (Y2-Y1)-(H DIV 2), INT2STR(I)); IF I <> SUCC(NUMBARS) THEN BEGIN COLOR := RANDCOLOR; SETFILLSTYLE(STYLES[I], COLOR); SETCOLOR(COLOR);

Halaman 45

Page 46: Modul+Tik+Turbo+Pascal

BAR(J, ROUND((Y2-Y1-H)-(BARHEIGHT[I] * YSTEP)), ROUND(J+XSTEP), (Y2-Y1)-H-1); RECTANGLE(J, ROUND((Y2-Y1-H)-(BARHEIGHT[I] * YSTEP)), ROUND(J+XSTEP), (Y2-Y1)-H-1); END; J := ROUND(J+XSTEP); END; END; WAITTOGO; END; BEGIN INITIALIZE; DEMO; CLOSEGRAPH; END.

PROGRAM BGIDEMO12;USES CRT, DOS, GRAPH,HELP1;

PROCEDURE DEMO;CONST NUMBARS = 5; BARHEIGHT : ARRAY[1..NUMBARS] OF BYTE = (1, 3, 5, 2, 4); STYLES : ARRAY[1..NUMBARS] OF BYTE = (1, 3, 10, 5, 9);VAR VIEWINFO : VIEWPORTTYPE; BARNUM : WORD; H : WORD; XSTEP : REAL; YSTEP : REAL; I, J : INTEGER; COLOR : WORD;BEGIN MAINWINDOW('BAR / RECTANGLE DEMONSTRASION'); H := 3*TEXTHEIGHT('M'); GETVIEWSETTINGS(VIEWINFO); SETTEXTJUSTIFY(CENTERTEXT, TOPTEXT); SETTEXTSTYLE(TRIPLEXFONT, HORIZDIR, 4); OUTTEXTXY(MAXX DIV 2, 6, 'THESE ARE 2D BARS !'); SETTEXTSTYLE(DEFAULTFONT, HORIZDIR, 1); WITH VIEWINFO DO SETVIEWPORT(X1+50, Y1+30, X2-50, Y2-10, CLIPON); GETVIEWSETTINGS(VIEWINFO); WITH VIEWINFO DO BEGIN LINE(H, H, H, (Y2-Y1)-H); LINE(H, (Y2-Y1)-H, (X2-X1)-H, (Y2-Y1)-H); YSTEP := ((Y2-Y1)-(2*H)) / NUMBARS; XSTEP := ((X2-X1)-(2*H)) / NUMBARS; J := (Y2-Y1)-H; SETTEXTJUSTIFY(CENTERTEXT, CENTERTEXT);

FOR I := 0 TO NUMBARS DO BEGIN LINE(H DIV 2, J, H, J);

OUTTEXTXY(0, J, INT2STR(I)); J := ROUND(J-YSTEP); END;

J := H; SETTEXTJUSTIFY(CENTERTEXT, TOPTEXT); FOR I := 1 TO SUCC(NUMBARS) DO BEGIN SETCOLOR(MAXCOLOR); LINE(J, (Y2-Y1)-H, J, (Y2-Y1-3)-(H DIV 2)); OUTTEXTXY(J, (Y2-Y1)-(H DIV 2), INT2STR(I)); IF I <> SUCC(NUMBARS) THEN BEGIN COLOR := RANDCOLOR; SETFILLSTYLE(STYLES[I], COLOR); SETCOLOR(COLOR); BAR(J, ROUND((Y2-Y1-H)-(BARHEIGHT[I] * YSTEP)), ROUND(J+XSTEP), (Y2-Y1)-H-1); RECTANGLE(J, ROUND((Y2-Y1-H)-(BARHEIGHT[I] * YSTEP)), ROUND(J+XSTEP), (Y2-Y1)-H-1); END; J := ROUND(J+XSTEP); END; END; WAITTOGO; END; BEGIN INITIALIZE; DEMO; CLOSEGRAPH; END.

PROGRAM DEMO13;USES CRT, DOS, GRAPH,HELP1;

PROCEDURE DEMO;VAR MAXRADIUS : WORD;BEGIN MAINWINDOW('CIRCLE DEMONSTRASION'); STATUSLINE('ESC ABORTS OR PRESS A KEY'); MAXRADIUS := MAXY DIV 10; SETLINESTYLE(SOLIDLN, 0, NORMWIDTH); REPEAT SETCOLOR(RANDCOLOR); CIRCLE(RANDOM(MAXX), RANDOM(MAXY), RANDOM(MAXRADIUS)); UNTIL KEYPRESSED; WAITTOGO;END;BEGIN INITIALIZE; DEMO; CLOSEGRAPH;END.

PROGRAM DEMO14;USES CRT, DOS, GRAPH,HELP1;PROCEDURE DEMO;

Halaman 46

Page 47: Modul+Tik+Turbo+Pascal

VAR MAXWIDTH : INTEGER; MAXHEIGHT : INTEGER; VIEWINFO : VIEWPORTTYPE; COLOR : WORD;BEGIN MAINWINDOW('RANDOM BARS'); STATUSLINE('ESC ABORTS OR PRESS A KEY'); GETVIEWSETTINGS(VIEWINFO); WITH VIEWINFO DO BEGIN MAXWIDTH := X2-X1; MAXHEIGHT := Y2-Y1; END; REPEAT COLOR := RANDCOLOR; SETCOLOR(COLOR);SETFILLSTYLE(RANDOM(CLOSEDOTFILL)+1, COLOR); BAR3D(RANDOM(MAXWIDTH), RANDOM(MAXHEIGHT), RANDOM(MAXWIDTH), RANDOM(MAXHEIGHT), 0, TOPOFF); UNTIL KEYPRESSED; WAITTOGO;END;BEGIN INITIALIZE; DEMO; CLOSEGRAPH;END.

PROGRAM BGIDEMO15;USES CRT, DOS, GRAPH,HELP1;PROCEDURE DEMO;VAR MAXRADIUS : WORD; ENDANGLE : WORD; ARCINFO : ARCCOORDSTYPE;BEGIN MAINWINDOW('ARC / GETARCCOORDS DEMONSTRASION'); STATUSLINE('ESC ABORTS OR PRESS A KEY'); MAXRADIUS := MAXY DIV 10; REPEAT SETCOLOR(RANDCOLOR); ENDANGLE := RANDOM(360); SETLINESTYLE(SOLIDLN, 0, NORMWIDTH); ARC(RANDOM(MAXX), RANDOM(MAXY), RANDOM(ENDANGLE), ENDANGLE, RANDOM(MAXRADIUS)); GETARCCOORDS(ARCINFO); WITH ARCINFO DO BEGIN LINE(X, Y, XSTART, YSTART); LINE(X, Y, XEND, YEND); END; UNTIL KEYPRESSED; WAITTOGO;END;BEGIN INITIALIZE; DEMO; CLOSEGRAPH;END.

PROGRAM ANIMASI;USES GRAPH,CRT,DOS,HELP1;

procedure demo;{ Demonstrate the PutPixel and GetPixel commands }const Seed = 1962; { A seed for the random number generator } NumPts = 2000; { The number of pixels plotted } Esc = #27;var I : word; X, Y, Color : word; XMax, YMax : integer; ViewInfo : ViewPortType;begin MainWindow('PutPixel / GetPixel demonstration'); StatusLine('Esc aborts or press a key...');

GetViewSettings(ViewInfo); with ViewInfo do begin XMax := (x2-x1-1); YMax := (y2-y1-1); end;

while not KeyPressed do begin { Plot random pixels } RandSeed := Seed; I := 0; while (not KeyPressed) and (I < NumPts) do begin Inc(I); PutPixel(Random(XMax)+1, Random(YMax)+1, RandColor); end;

{ Erase pixels } RandSeed := Seed; I := 0; while (not KeyPressed) and (I < NumPts) do begin Inc(I); X := Random(XMax)+1; Y := Random(YMax)+1; Color := GetPixel(X, Y); if Color = RandColor then PutPixel(X, Y, 0); end; end; WaitToGo;end; { PutPixelPlay }begin initialize; demo; closegraph;end.

program bgidemo;uses crt, dos, graph,help1;

Halaman 47

Page 48: Modul+Tik+Turbo+Pascal

procedure demo;{ Demonstrate the GetImage and PutImage commands }const r = 20; StartX = 100; StartY = 50;

var CurPort : ViewPortType;procedure MoveSaucer(var X, Y : integer; Width, Height : integer);var Step : integer;begin Step := Random(2*r); if Odd(Step) then Step := -Step; X := X + Step; Step := Random(r); if Odd(Step) then Step := -Step; Y := Y + Step; { Make saucer bounce off viewport walls } with CurPort do begin if (x1 + X + Width - 1 > x2) then X := x2-x1 - Width + 1 else if (X < 0) then X := 0; if (y1 + Y + Height - 1 > y2) then Y := y2-y1 - Height + 1 else if (Y < 0) then Y := 0; end;end; { MoveSaucer }var Pausetime : word; Saucer : pointer; X, Y : integer; ulx, uly : word; lrx, lry : word; Size : word; I : word;begin ClearDevice; FullPort;

{ PaintScreen } ClearDevice; MainWindow('GetImage / PutImage Demonstration'); StatusLine('Esc aborts or press a key...'); GetViewSettings(CurPort);

{ DrawSaucer } Ellipse(StartX, StartY, 0, 360, r, (r div 3)+2); Ellipse(StartX, StartY-4, 190, 357, r, r div 3); Line(StartX+7, StartY-6, StartX+10, StartY-12); Circle(StartX+10, StartY-12, 2); Line(StartX-7, StartY-6, StartX-10, StartY-12); Circle(StartX-10, StartY-12, 2); SetFillStyle(SolidFill, MaxColor);

FloodFill(StartX+1, StartY+4, GetColor);

{ ReadSaucerImage } ulx := StartX-(r+1); uly := StartY-14; lrx := StartX+(r+1); lry := StartY+(r div 3)+3;

Size := ImageSize(ulx, uly, lrx, lry); GetMem(Saucer, Size); GetImage(ulx, uly, lrx, lry, Saucer^); PutImage(ulx, uly, Saucer^, XORput); { erase image }

{ Plot some "stars" } for I := 1 to 1000 do PutPixel(Random(MaxX), Random(MaxY), RandColor); X := MaxX div 2; Y := MaxY div 2; PauseTime := 70;

{ Move the saucer around } repeat PutImage(X, Y, Saucer^, XORput); { draw image } Delay(PauseTime); PutImage(X, Y, Saucer^, XORput); { erase image } MoveSaucer(X, Y, lrx - ulx + 1, lry - uly + 1); { width/height } until KeyPressed; FreeMem(Saucer, size); WaitToGo;end; { PutImagePlay }begin initialize; demo; closegraph;end.

program BGIdemo;uses crt, dos, graph, help1;

procedure demo;{ Draw random polygons with random fill styles on the screen }const MaxPts = 5;type PolygonType = array[1..MaxPts] of PointType;var Poly : PolygonType; I, Color : word;begin MainWindow('FillPoly demonstration'); StatusLine('Esc aborts or press a key...'); repeat Color := RandColor; SetFillStyle(Random(11)+1, Color); SetColor(Color); for I := 1 to MaxPts do with Poly[I] do begin X := Random(MaxX); Y := Random(MaxY);

Halaman 48

Page 49: Modul+Tik+Turbo+Pascal

end; FillPoly(MaxPts, Poly); until KeyPressed; WaitToGo;end; { PolyPlay }begin initialize; demo; closegraph;end.

program BGIdemo;uses crt, dos, graph,help1;procedure demo;{ Display all of the predefined fill styles available }var Style : word; Width : word; Height : word; X, Y : word; I, J : word; ViewInfo : ViewPortType;

procedure DrawBox(X, Y : word);begin SetFillStyle(Style, MaxColor); with ViewInfo do Bar(X, Y, X+Width, Y+Height); Rectangle(X, Y, X+Width, Y+Height); OutTextXY(X+(Width div 2), Y+Height+4, Int2Str(Style)); Inc(Style);end; { DrawBox }begin MainWindow('Pre-defined fill styles'); GetViewSettings(ViewInfo); with ViewInfo do begin Width := 2 * ((x2+1) div 13); Height := 2 * ((y2-10) div 10); end; X := Width div 2; Y := Height div 2; Style := 0; for J := 1 to 3 do begin for I := 1 to 4 do begin DrawBox(X, Y); Inc(X, (Width div 2) * 3); end; X := Width div 2; Inc(Y, (Height div 2) * 3); end; SetTextJustify(LeftText, TopText); WaitToGo;end; { FillStylePlay }begin initialize; demo; closegraph;end.

program BGIdemo;uses crt, dos, graph,help1;

procedure demo;{ Display some user defined fill patterns }const Patterns : array[0..11] of FillPatternType = ( ($AA, $55, $AA, $55, $AA, $55, $AA, $55), ($33, $33, $CC, $CC, $33, $33, $CC, $CC), ($F0, $F0, $F0, $F0, $F, $F, $F, $F), (0, $10, $28, $44, $28, $10, 0, 0), (0, $70, $20, $27, $25, $27, $4, $4), (0, 0, 0, $18, $18, 0, 0, 0), (0, 0, $3C, $3C, $3C, $3C, 0, 0), (0, $7E, $7E, $7E, $7E, $7E, $7E, 0), (0, 0, $22, $8, 0, $22, $1C, 0), ($FF, $7E, $3C, $18, $18, $3C, $7E, $FF), (0, $10, $10, $7C, $10, $10, 0, 0), (0, $42, $24, $18, $18, $24, $42, 0));var Style : word; Width : word; Height : word; X, Y : word; I, J : word; ViewInfo : ViewPortType;

procedure DrawBox(X, Y : word);begin SetFillPattern(Patterns[Style], MaxColor); with ViewInfo do Bar(X, Y, X+Width, Y+Height); Rectangle(X, Y, X+Width, Y+Height); Inc(Style);end; { DrawBox }

begin MainWindow('User defined fill styles'); GetViewSettings(ViewInfo); with ViewInfo do begin Width := 2 * ((x2+1) div 13); Height := 2 * ((y2-10) div 10); end; X := Width div 2; Y := Height div 2; Style := 0; for J := 1 to 3 do begin for I := 1 to 4 do begin DrawBox(X, Y); Inc(X, (Width div 2) * 3); end; X := Width div 2; Inc(Y, (Height div 2) * 3); end; SetTextJustify(LeftText, TopText); WaitToGo;end; { FillPatternPlay }begin initialize; demo; closegraph;end.

program BGIdemo;uses

Halaman 49

Page 50: Modul+Tik+Turbo+Pascal

crt, dos, graph,help1;procedure demo;{ Display all of the colors available for the current driver and mode }var Color : word; Width : word; Height : word; X, Y : word; I, J : word; ViewInfo : ViewPortType;procedure DrawBox(X, Y : word);begin SetFillStyle(SolidFill, Color); SetColor(Color); with ViewInfo do Bar(X, Y, X+Width, Y+Height); Rectangle(X, Y, X+Width, Y+Height); Color := GetColor; if Color = 0 then begin SetColor(MaxColor); Rectangle(X, Y, X+Width, Y+Height); end; OutTextXY(X+(Width div 2), Y+Height+4, Int2Str(Color)); Color := Succ(Color) mod (MaxColor + 1);end; { DrawBox }begin MainWindow('Color demonstration'); Color := 1; GetViewSettings(ViewInfo); with ViewInfo do begin Width := 2 * ((x2+1) div 16); Height := 2 * ((y2-10) div 10); end; X := Width div 2; Y := Height div 2; for J := 1 to 3 do begin for I := 1 to 5 do begin DrawBox(X, Y); Inc(X, (Width div 2) * 3); end; X := Width div 2; Inc(Y, (Height div 2) * 3); end; WaitToGo;end; { ColorPlay }begin initialize; demo; closegraph;end.

program BGIdemo;uses crt, dos, help1,graph;procedure demo;{ Demonstrate the use of the SetPalette command }const XBars = 15; YBars = 10;var I, J : word; X, Y : word;

Color : word; ViewInfo : ViewPortType; Width : word; Height : word; OldPal : PaletteType;begin GetPalette(OldPal); MainWindow('Palette demonstration'); StatusLine('Press any key...'); GetViewSettings(ViewInfo); with ViewInfo do begin Width := (x2-x1) div XBars; Height := (y2-y1) div YBars; end; X := 0; Y := 0; Color := 0; for J := 1 to YBars do begin for I := 1 to XBars do begin SetFillStyle(SolidFill, Color); Bar(X, Y, X+Width, Y+Height); Inc(X, Width+1); Inc(Color); Color := Color mod (MaxColor+1); end; X := 0; Inc(Y, Height+1); end; repeat SetPalette(Random(GetMaxColor + 1), Random(65)); until KeyPressed; SetAllPalette(OldPal); WaitToGo;end; { PalettePlay }begin initialize; demo; closegraph;end.

program BGIdemo;uses crt, dos, help1,graph;

procedure demo;{ Demonstrate the use of RestoreCrtMode and SetGraphMode }var ViewInfo : ViewPortType; Ch : char;begin MainWindow('SetGraphMode / RestoreCrtMode demo'); GetViewSettings(ViewInfo); SetTextJustify(CenterText, CenterText); with ViewInfo do begin OutTextXY((x2-x1) div 2, (y2-y1) div 2, 'Now you are in graphics mode'); StatusLine('Press any key for text mode...'); repeat until KeyPressed; Ch := ReadKey; if ch = #0 then ch := readkey; { trap function keys }

Halaman 50

Page 51: Modul+Tik+Turbo+Pascal

RestoreCrtmode; Writeln('Now you are in text mode.'); Write('Press any key to go back to graphics...'); repeat until KeyPressed; Ch := ReadKey; if ch = #0 then ch := readkey; { trap function keys } SetGraphMode(GetGraphMode); MainWindow('SetGraphMode / RestoreCrtMode demo'); SetTextJustify(CenterText, CenterText); OutTextXY((x2-x1) div 2, (y2-y1) div 2, 'Back in graphics mode...'); end; WaitToGo;end; { CrtModePlay }begin initialize; demo; closegraph;end.

program BGIdemo;uses crt, dos, help1,graph;procedure demo;{ Demonstrate the predefined line styles available }var Style : word; Step : word; X, Y : word; ViewInfo : ViewPortType;

begin ClearDevice; DefaultColors; MainWindow('Pre-defined line styles'); GetViewSettings(ViewInfo); with ViewInfo do begin X := 35; Y := 10; Step := (x2-x1) div 11; SetTextJustify(LeftText, TopText); OutTextXY(X, Y, 'NormWidth'); SetTextJustify(CenterText, TopText); for Style := 0 to 3 do begin SetLineStyle(Style, 0, NormWidth); Line(X, Y+20, X, Y2-40); OutTextXY(X, Y2-30, Int2Str(Style)); Inc(X, Step); end; Inc(X, 2*Step); SetTextJustify(LeftText, TopText); OutTextXY(X, Y, 'ThickWidth'); SetTextJustify(CenterText, TopText); for Style := 0 to 3 do begin SetLineStyle(Style, 0, ThickWidth); Line(X, Y+20, X, Y2-40); OutTextXY(X, Y2-30, Int2Str(Style)); Inc(X, Step); end; end; SetTextJustify(LeftText, TopText); WaitToGo;end; { LineStylePlay }

begin initialize; demo; closegraph;end.

program grafik_cosinus;uses graph,grafik,crt;constdelx = 0.01;varxx,x,y,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax := a+5;YMIN:=-ymax;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);x:=xmin;repeatbeginxx := x/57.3;y :=a*cos(n*xx);if (y<=ymax) and (y>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y,xl,yl);putpixel(trUnc(xl),trunc(yl),YELLOW);end;x:=(x+delx);end;until (x>=xmax);tutup;end.

program grafik_cosinus;uses graph,grafik,crt;constdelx = 0.01;varxx,x,y,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax := a+5;YMIN:=-ymax;

Halaman 51

Page 52: Modul+Tik+Turbo+Pascal

buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);x:=xmin;repeatbeginxx := x/57.3;y :=a*cos(n*xx);if (y<=ymax) and (y>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y,xl,yl);putpixel(trUnc(xl),trunc(yl),YELLOW);end;x:=(x+delx);end;until (x>=xmax);tutup;end.

program grafik_tangen;uses graph,grafik,crt;constdelx = 0.01;varxx,x,y,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax :=10*a;YMIN:=-ymax;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);x:=xmin;repeatbeginxx := x/57.3;if cos(n*xx) <> 0 theny :=a*sin(n*xx)/cos(n*xx);if (y <=ymax) and (y>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y,xl,yl);putpixel(trUnc(xl),trunc(yl),YELLOW);

end;x:=(x+delx);end;until (x>=xmax);tutup;end.

program grafik_cotangen;uses graph,grafik,crt;constdelx = 0.01;varxx,x,y,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax :=10*a;YMIN:=-ymax;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);x:=xmin;repeatbeginxx := x/57.3;if cos(n*xx) <> 0 theny :=a*cos(n*xx)/sin(n*xx);if (y <=ymax) and (y>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y,xl,yl);putpixel(trUnc(xl),trunc(yl),YELLOW);end;x:=(x+delx);end;until (x>=xmax);tutup;end.

Grafik fungsi secantprogram grafik_secan;uses graph,grafik,crt;constdelx = 0.01;varxx,x,y,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);

Halaman 52

Page 53: Modul+Tik+Turbo+Pascal

write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax :=10*a;YMIN:=-ymax;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);x:=xmin;repeatbeginxx := x/57.3;if cos(n*xx) <> 0 theny :=a/cos(n*xx);if (y <=ymax) and (y>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y,xl,yl);putpixel(trUnc(xl),trunc(yl),YELLOW);end;x:=(x+delx);end;until (x>=xmax);tutup;end.

program grafik_cosecan;uses graph,grafik,crt;constdelx = 0.01;varxx,x,y,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax :=10*a;YMIN:=-ymax;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);x:=xmin;repeatbegin

xx := x/57.3;if cos(n*xx) <> 0 theny :=a/sin(n*xx);if (y <=ymax) and (y>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y,xl,yl);putpixel(trUnc(xl),trunc(yl),YELLOW);end;x:=(x+delx);end;until (x>=xmax);tutup;end.

{$N+,E+}Program persamaan_kuadrat;usescrt,graph,grafik;constdelx=0.001;vara,b,c,d,x,y,x1,x2,xl,yl,px,py,xmin,xmax,ymin,ymax : real;dtx : string[5];beginclrscr;Writeln('Parameter Fungsi ( nilai A,B,C ) ');write('Nilai a ? ');readln(a);write('Nilai b ? ');readln(b);write('Nilai c ? ');readln(c);d:=b*b-4*a*c;px:=-b/(2*a);py:=-d/(4*a);

if d > 0 thenbeginx1 := (-b+sqrt(d))/(2*a);x2 := (-b-sqrt(d))/(2*a);if x1 < x2 thenbeginxmin := x1-abs(px);xmax := x2 + abs(px);endelsebeginxmin := x1 + abs(px);xmax := x2 - abs(px);end;endelsebeginxmin := px-5*abs(px);xmax := px+5*abs(px);end;if a>0 thenbeginif py > 0 thenbeginymin := py - 2*abs(py);ymax := py + 3*abs(py);endelsebeginymin := py - abs(py);ymax := py + 3*abs(py);end;endelse

Halaman 53

Page 54: Modul+Tik+Turbo+Pascal

beginif py < 0 thenbeginymax := py +2*abs(py);ymin := py-3*abs(py);endelsebeginymax := py +abs(py);ymin := py-3*abs(py);end;end;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(centertext,centertext);outtextxy(7*getmaxx div 8,getmaxy div 6,'Y = ax2 + bx + c ');

settextjustify(lefttext,centertext);

str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 6+3*getmaxy div 25,'a='+dtx);str(b:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 6+4*getmaxy div 25,'b='+dtx);str(c:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 6+5*getmaxy div 25,'a='+dtx);x := xmin;repeatbeginy := a*x*x+b*x+c;if (y<=ymax) and (y>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y,xl,yl);putpixel(trunc(xl),trunc(yl),yellow);DELAY(100);end;x:= x+delx;end;until x >= xmax;tulis_pesan;settextjustify(lefttext,centertext);str(d:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 6+7*getmaxy div 25,'d='+dtx);repeat until readkey=#13;if d>0 thenbeginstr((-b+sqrt(d))/(2*a):5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 6+9*getmaxy div 25,'x1='+dtx);str((-b-sqrt(d))/(2*a):5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 6+9*getmaxy div 25,'x2='+dtx);endelsebeginouttextxy(3*getmaxx div 4,getmaxy div 6+8*getmaxy div 25,'Bilangan Imajiner');outtextxy(3*getmaxx div 4,getmaxy div 6+9*getmaxy div 25,'----------');end;hapus_pesan;

tutup;end.

{$N+,E+}program integral;usescrt,graph,grafik;constdelx = 0.001;varx,y,a,b,c,d,x1,y1,x2,y2,luas,xmin,ymin,xmax,ymax : real;i,n : integer;dtx : string[5];beginclrscr;write('Jumlah pita ? ');readln(n);write('Nilai A ? ');readln(a);write('Nilai B ? ');readln(b);write('Nilai C ? ');readln(c);xmin := -1;ymin := -1;xmax := 3;ymax := 4;

buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(centertext,centertext);outtextxy(7*getmaxx div 8,getmaxy div 6, 'Y = ax2 + bx +c ');

settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 6+3*getmaxy div 25, 'a='+dtx);

str(b:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 6+4*getmaxy div 25, 'b='+dtx);

str(c:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 6+5*getmaxy div 25, 'c='+dtx);

x := xmin;repeatbeginy := a*x*x+b*x+c;if (y<=ymax) and (y >= ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y,x1,y1);putpixel(trunc(x1),trunc(y1),yellow);end;

x := x+delx;end;until x >= xmax;

tulis_pesan;hapus_pesan;settextjustify(lefttext,centertext);

str(n:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 6+7*getmaxy div 25, 'pita='+dtx);

Halaman 54

Page 55: Modul+Tik+Turbo+Pascal

outtextxy(3*getmaxx div 4,getmaxy div 6+8*getmaxy div 25, 'x1=0');outtextxy(3*getmaxx div 4,getmaxy div 6+9*getmaxy div 25, 'x2=0');

d := 2/n;i := 0;x := -d/2;luas := 0;repeati := i + 1;x := x + d;y := a*x*x+b*x+c;transformasi(xmin,ymin,xmax,ymax,x-d/2,y,x1,y1);transformasi(xmin,ymin,xmax,ymax,x+d/2,0,x2,y2);rectangle(trunc(x1),trunc(y1),trunc(x2),trunc(y2));

if i mod 2 = 1 then setfillstyle(3,red)elsesetfillstyle(6,red);floodfill(trunc(x1+1),trunc(y1+1),white);luas := luas+y*d;until x > 2-d;str(luas:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 6+11*getmaxy div 25, 'Luas='+dtx);hapus_pesan;tutup;end.

Grafik Sinus+Cosinusprogram grafik_sinus_cosinus;uses graph,grafik,crt;constdelx = 0.01;varxx,x,y1,y2,y12,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax := a+5;YMIN:=-ymax;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);x:=xmin;repeatbeginxx := x/57.3;y1 := a*sin(n*xx);

y2 := a*cos(n*xx);y12 :=a*sin(n*xx)+a*cos(n*xx);if (y1<=ymax) and (y1>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y1,xl,yl);putpixel(trUnc(xl),trunc(yl),2);end;if (y2<=ymax) and (y2>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y2,xl,yl);putpixel(trUnc(xl),trunc(yl),3);end;if (y12<=ymax) and (y12>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y12,xl,yl);putpixel(trUnc(xl),trunc(yl),4);end;x:=(x+delx);end;until (x>=xmax);tutup;end.

Grafik Sinus+Tangenprogram grafik_sinus_tangen;uses graph,grafik,crt;constdelx = 0.01;varxx,x,y1,y2,y12,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax := a+5;YMIN:=-ymax;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);x:=xmin;repeatbeginxx := x/57.3;y1 := a*sin(n*xx);y2 := a*sin(n*xx)/cos(n*xx);y12:=y1+y2;

if (y1<=ymax) and (y1>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y1,xl,yl);putpixel(trUnc(xl),trunc(yl),2);

Halaman 55

Page 56: Modul+Tik+Turbo+Pascal

end;

if (y2<=ymax) and (y2>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y2,xl,yl);putpixel(trUnc(xl),trunc(yl),3);end;

if (y12<=ymax) and (y12>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y12,xl,yl);putpixel(trUnc(xl),trunc(yl),4);end;

x:=(x+delx);end;until (x>=xmax);tutup;end.

program grafik_sinus_tangen;uses graph,grafik,crt;constdelx = 0.01;varxx,x,y1,y2,y12,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax := a+5;YMIN:=-ymax;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);x:=xmin;repeatbeginxx := x/57.3;y1 := a*sin(n*xx);y2 := a*cos(n*xx)/sin(n*xx);y12:=y1+y2;if (y1<=ymax) and (y1>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y1,xl,yl);putpixel(trUnc(xl),trunc(yl),2);end;if (y2<=ymax) and (y2>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y2,xl,yl);putpixel(trUnc(xl),trunc(yl),3);

end;if (y12<=ymax) and (y12>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y12,xl,yl);putpixel(trUnc(xl),trunc(yl),4);end;x:=(x+delx);end;until (x>=xmax);tutup;end.

program grafik_cosinus;uses graph,grafik,crt;constdelx = 0.01;varxx,x,y1,y2,y12,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax := a+5;YMIN:=-ymax;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);x:=xmin;repeatbeginxx := x/57.3;y1 := a*cos(n*xx);y2 := a/cos(n*xx);y12 := y1+y2;

if (y1<=ymax) and (y1>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y1,xl,yl);putpixel(trUnc(xl),trunc(yl),2);end;

if (y2<=ymax) and (y2>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y2,xl,yl);putpixel(trUnc(xl),trunc(yl),3);end;

if (y12<=ymax) and (y12>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y12,xl,yl);putpixel(trUnc(xl),trunc(yl),4);

Halaman 56

Page 57: Modul+Tik+Turbo+Pascal

end;

x:=(x+delx);end;until (x>=xmax);tutup;end.

Grafik Sinus+cosecantprogram grafik_sinus_tangen;uses graph,grafik,crt;constdelx = 0.01;varxx,x,y1,y2,y12,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax := a+5;YMIN:=-ymax;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);x:=xmin;repeatbeginxx := x/57.3;y1 := a*sin(n*xx);y2 := a/sin(n*xx);y12:=y1+y2;if (y1<=ymax) and (y1>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y1,xl,yl);putpixel(trUnc(xl),trunc(yl),2);end;if (y2<=ymax) and (y2>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y2,xl,yl);putpixel(trUnc(xl),trunc(yl),3);end;if (y12<=ymax) and (y12>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y12,xl,yl);putpixel(trUnc(xl),trunc(yl),4);end;x:=(x+delx);end;until (x>=xmax);tutup;end.

program grafik_cosinus;uses graph,grafik,crt;constdelx = 0.01;varxx,x,y1,y2,y12,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax := a+5;YMIN:=-ymax;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);x:=xmin;repeatbeginxx := x/57.3;y1 := a*cos(n*xx);y2 := a*sin(n*xx)/cos(n*xx);y12 := y1+y2;if (y1<=ymax) and (y1>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y1,xl,yl);putpixel(trUnc(xl),trunc(yl),2);end;

if (y2<=ymax) and (y2>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y2,xl,yl);putpixel(trUnc(xl),trunc(yl),3);end;

if (y12<=ymax) and (y12>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y12,xl,yl);putpixel(trUnc(xl),trunc(yl),4);end;

x:=(x+delx);end;until (x>=xmax);tutup;end.

program grafik_cosinus;uses graph,grafik,crt;constdelx = 0.01;var

Halaman 57

Page 58: Modul+Tik+Turbo+Pascal

xx,x,y1,y2,y12,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax := a+5;YMIN:=-ymax;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);tulis_pesan;hapus_pesan;x:=xmin;repeatbeginxx := x/57.3;y1 := a*cos(n*xx);y2 := a*cos(n*xx)/sin(n*xx);y12 := y1+y2;

if (y1<=ymax) and (y1>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y1,xl,yl);putpixel(trUnc(xl),trunc(yl),2);end;

if (y2<=ymax) and (y2>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y2,xl,yl);putpixel(trUnc(xl),trunc(yl),3);end;if (y12<=ymax) and (y12>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y12,xl,yl);putpixel(trUnc(xl),trunc(yl),4);end;x:=(x+delx);end;until (x>=xmax);tutup;end.program grafik_cosinus;uses graph,grafik,crt;constdelx = 0.01;varxx,x,y1,y2,y12,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);

write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax := a+5;YMIN:=-ymax;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);x:=xmin;repeatbeginxx := x/57.3;y1 := a*cos(n*xx);y2 := a/cos(n*xx);y12 := y1+y2;if (y1<=ymax) and (y1>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y1,xl,yl);putpixel(trUnc(xl),trunc(yl),2);end;if (y2<=ymax) and (y2>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y2,xl,yl);putpixel(trUnc(xl),trunc(yl),3);end;if (y12<=ymax) and (y12>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y12,xl,yl);putpixel(trUnc(xl),trunc(yl),4);end;

x:=(x+delx);end;until (x>=xmax);tutup;end.

Grafik cosinus + cosecantprogram grafik_cosinus;uses graph,grafik,crt;constdelx = 0.01;varxx,x,y1,y2,y12,a,n,xl,yl,xmin,ymin,xmax,ymax : real;dtx : string;beginclrscr;writeln('paramater fungsi ?');write('Amplitudo ? ');readln(a);write('Frekuensi ? ');readln(n);xmin:=-50;xmax:=360;ymax := a+5;YMIN:=-ymax;buka;kerangka;

Halaman 58

Page 59: Modul+Tik+Turbo+Pascal

sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(a:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+0*getmaxy div 30,'Amp :'+dtx);str(n:5:2,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+1*getmaxy div 30,'Fre :'+dtx);x:=xmin;repeatbeginxx := x/57.3;y1 := a*cos(n*xx);y2 := a/sin(n*xx);y12 := y1+y2;

if (y1<=ymax) and (y1>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y1,xl,yl);putpixel(trUnc(xl),trunc(yl),2);end;

if (y2<=ymax) and (y2>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y2,xl,yl);putpixel(trUnc(xl),trunc(yl),3);end;

if (y12<=ymax) and (y12>=ymin) thenbegintransformasi(xmin,ymin,xmax,ymax,x,y12,xl,yl);putpixel(trUnc(xl),trunc(yl),4);end;

x:=(x+delx);end;until (x>=xmax);tutup;end.

Grafik Interferensi ke-1 antara 2 gelombangprogram interferensi;uses crt,graph,grafik;constdelx = 0.02;varxmin,ymin,xmax,ymax,ax,ay,d,delta,lamda,x,xx,y,yy : real;i,m,n : integer;dtx : string[5];beginclrscr;writeln('Panjang gelombang[4000-8000] ? ');m:=length('Panjang gelombang[4000-8000] ? ');repeatgotoxy(m,wherey - 1);clreol;readln(lamda);until (lamda>=4000) and (lamda<=8000);

writeln('Jarak celah [lebih besar panjang gelombang]? ');repeatgotoxy(m, wherey - 1);clreol;readln(d);until (d>lamda);writeln('Jumlah celah[lebih besar 2] ? ');repeatgotoxy(m, wherey - 1);clreol;readln(n);until (n >= 2);xmin := 0;ymin := 0;xmax := 60;ymax := sqr(n)+5;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(n:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+0*getmaxy div 30,'Jml celah:'+dtx);str(d:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+1*getmaxy div 30,'Jrk celah:'+dtx);str(lamda:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+2*getmaxy div 30,'Pnj.gel:'+dtx);xx := xmin;repeatdelta := 2*pi*d*sin(xx/57.3)/lamda;ax:=0;ay:=0;for i:=1 to n dobeginax:=ax+cos(i*delta);ay:=ay+sin(i*delta);end;yy:=sqr(ax)+sqr(ay);transformasi(xmin,ymin,xmax,ymax,xx,yy,x,y);putpixel(trunc(x),trunc(y),white);xx := xx + delx;until xx >= xmax;tutup;end.

program interferensi;uses crt,graph,grafik;constdelx = 0.02;varxmin,ymin,xmax,ymax,ax,ay,d,gamma,lamda,x,xx,y,yy : real;i,m,n : integer;dtx : string[5];beginclrscr;writeln('Panjang gelombang[4000-8000] ? ');m:=length('Panjang gelombang[4000-8000] ? ');repeatgotoxy(m,wherey - 1);clreol;readln(lamda);

Halaman 59

Page 60: Modul+Tik+Turbo+Pascal

until (lamda>=4000) and (lamda<=8000);

writeln('Jarak celah [lebih besar panjang gelombang]? ');repeatgotoxy(m,wherey - 1);clreol;readln(d);until (d>lamda);

writeln('Jumlah celah[lebih besar 2] ? ');repeatgotoxy(m,wherey - 1);clreol;readln(n);until (n >= 2);

xmin := 0;ymin := 0;xmax := 60;ymax := sqr(n)+5;

buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);

str(n:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+0*getmaxy div 30,'Jml celah:'+dtx);

str(d:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+1*getmaxy div 30,'Jrk celah:'+dtx);

str(lamda:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+2*getmaxy div 30,'Pnj.gel:'+dtx);

xx := xmin;repeatgamma := 2*pi*d*sin(xx/57.3)/lamda;if gamma <> 0 thenbeginyy:=sqr(sin(n*gamma)/sin(gamma));transformasi(xmin,ymin,xmax,ymax,xx,yy,x,y);putpixel(trunc(x),trunc(y),white);end;xx := xx + delx;until xx >= xmax;tutup;end.

Grafik Difraksi gelombangprogram difraksi;uses crt,graph,grafik;constdelx = 0.02;varxmin,ymin,xmax,ymax,ax,ay,d,beta,lamda,x,xx,y,yy : real;i,m : integer;dtx : string[5];beginclrscr;

writeln('Panjang gelombang[4000-8000] ? ');m:=length('Panjang gelombang[4000-8000] ? ');repeatgotoxy(m,wherey - 1);clreol;readln(lamda);until (lamda>=4000) and (lamda<=8000);writeln('Lebar celah [lebih besar panjang gelombang]? ');repeatgotoxy(m,wherey - 1);clreol;readln(d);until (d>lamda);xmin := -60;ymin := 0;xmax := 60;ymax := 1.3;buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(d:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+1*getmaxy div 30,'Lbr.celah:'+dtx);str(lamda:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+2*getmaxy div 30,'Pnj.gel:'+dtx);xx := xmin;repeatbeta := pi*d*sin(xx/57.3)/lamda;if beta <> 0 thenbeginyy:=sqr(sin(beta)/beta);transformasi(xmin,ymin,xmax,ymax,xx,yy,x,y);putpixel(trunc(x),trunc(y),white);end;xx := xx + delx;until xx >= xmax;tutup;end.

program difraksi_interferensi;uses crt,graph,grafik;constdelx = 0.02;varxmin,ymin,xmax,ymax,ax,ay,b,d,beta,gamma,lamda,x,xx,y,yy : real;i,m,n : integer;dtx : string[5];beginclrscr;writeln('Panjang gelombang[4000-8000] ? ');m:=length('Panjang gelombang[4000-8000] ? ');repeatgotoxy(m,wherey - 1);clreol;readln(lamda);until (lamda>=4000) and (lamda<=8000);

Halaman 60

Page 61: Modul+Tik+Turbo+Pascal

writeln('Jumlah celah[lebih besar 2] ? ');repeatgotoxy(m,wherey - 1);clreol;readln(n);until (n >= 2);writeln('Lebar celah [lebih besar panjang gelombang]? ');repeatgotoxy(m,wherey - 1);clreol;readln(b);until (b>lamda);writeln('Jarak celah[lebih besar lebar celah] ? ');repeatgotoxy(m,wherey - 1);clreol;readln(d);until (d >= b);xmin := -80;ymin := 0;xmax := 80;ymax := sqr(n)+5;

buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);

str(n:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+0*getmaxy div 30,'Jml.cel:'+dtx);

str(d:5:2,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+1*getmaxy div 30,'Jrk.cel:'+dtx);

str(lamda:5:2,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+2*getmaxy div 30,'Pnj.gel:'+dtx);

str(b:5:2,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+3*getmaxy div 30,'Leb.cel:'+dtx);

xx := xmin;repeatbeta := pi*b*sin(xx/57.3)/lamda;if beta <> 0 then yy := sqr(n)else yy:=sqr(n*sin(beta)/beta);transformasi(xmin,ymin,xmax,ymax,xx,yy,x,y);putpixel(trunc(x),trunc(y),yellow);

gamma := pi*d*sin(xx/57.3)/lamda;if gamma = 0 then yy := yyelseyy := yy*sqr(sin(n*gamma)/(n*sin(gamma)));transformasi(xmin,ymin,xmax,ymax,xx,yy,x,y);putpixel(trunc(x),trunc(y),white);

xx := xx + delx;until xx >= xmax;tutup;end.

Grafik Dopplerprogram doppler;uses crt,graph,grafik;constdelx = 0.001;xmin = 0;ymin = 0;xmax = 10;ymax = 10;

varx,y,x1,y1 : real;v,vs,i,j : integer;dtx : string[5];beginclrscr;writeln('Kecepatan [5 - 10] ? ');writeln;write('Kecepatan sumber ? ');readln(vs);write('Kecepatan mutlak ? ');readln(v);

buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);str(vs:5,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4,'Kec.Sum:'+dtx);str(v:5,dtx);outtextxy(3*getmaxx div 4,getmaxy div 4+getmaxy div 30,'Kec.mut:'+dtx);

x := xmax/2;for i := 1 to 15 dobeginfor j := i downto 0 dobegintransformasi(xmin,ymin,xmax,ymax,x,ymax/2,x1,y1);delay(2000);setcolor(black);circle(trunc(x1)+(j-i)*vs,trunc(y1),(i-j)*v);setcolor(white);circle(trunc(x1)+j*vs,trunc(y1),(i-j)*v);

end;end;tutup;end.

Grafik Lisajousprogram lisajous;uses crt,graph,grafik;constdelx = 0.01;varxmin,ymin,xmax,ymax,t,x1,y1,x,y,a,b,omegax,omegay,pix,piy : real;dtx : string[5];beginclrscr;

writeln('Parameter gelombang 1');write('Amplitudo ? ');readln(a);write('Frekuensi ? ');readln(omegax);write('Sudut Fasa? ');readln(pix);

Halaman 61

Page 62: Modul+Tik+Turbo+Pascal

writeln('Parameter gelombang 2');write('Amplitudo ? ');readln(b);write('Frekuensi ? ');readln(omegay);write('Sudut Fasa? ');readln(piy);

xmin := -(a+b+10);ymin := xmin;xmax := -xmin;ymax := xmax;

buka;kerangka;sumbu_koordinat(xmin,ymin,xmax,ymax);skala(xmin,ymin,xmax,ymax);

settextstyle(smallfont,horizdir,5);settextjustify(lefttext,centertext);

str(a:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+0*getmaxy div 30,'Amp 1:'+dtx);

str(omegax:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+1*getmaxy div 30,'Fre 1:'+dtx);

str(pix:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+2*getmaxy div 30,'Fas l:'+dtx);

str(b:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+3*getmaxy div 30,'Amp 2:'+dtx);

str(omegay:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+4*getmaxy div 30,'Fre 2:'+dtx);

str(piy:5,dtx);outtextxy(3*getmaxx div 4, getmaxy div 4+5*getmaxy div 30,'Fas 2:'+dtx);

settextjustify(centertext,centertext);outtextxy(getmaxx div 2, 19*getmaxy div 20,'Tekan Enter');

pix := pix/57.3;piy := piy/57.3;

t := 0;repeatbeginx := a*sin(omegax*t+pix);y := b*sin(omegay*t+piy);

transformasi(xmin,ymin,xmax,ymax,x,y,x1,y1);putpixel(trunc(x1),trunc(y1),white);

t := t+delx;end;until keypressed;setcolor(black);outtextxy(getmaxx div 2, 19*getmaxy div 20,'Tekan Enter');setcolor(white);tutup;end.

Halaman 62