Professional Documents
Culture Documents
Aturan Penulisan Kode Program Pascal
Aturan Penulisan Kode Program Pascal
program nama_program;
{ bagian deklarasi }
begin
{ main program }
end.
Perintah Uses
Deklarasi Type
Deklarasi Konstanta(constant)
Deklarasi Variabel(variable)
Deklarasi Fungsi(function)
Deklarasi Prosedur(procedure)
program hello_world;
begin
writeln('Hello World');
writeln('Sedang belajar pascal...');
readln;
end.
Pascal tidak membedakan penggunaan huruf besar atau kecil. Dalam pemrograman, hal ini
dikenal dengan istilah case insensitive. Kita boleh
menulis program, Program, PROGRAM, WRITEln, maupun wrITln. Semuanya
dianggap sama dalam pascal.
Komentar tidak akan diproses oleh Pascal dan berfungsi hanya untuk memberi keterangan
tambahan, terutama jika kode program yang ditulis cukup rumit.
Untuk membuat komentar di dalam kode program pascal, terdapat 2 alternatif pilihan:
Kelompok pertama adalah tipe data standar pascal, atau dikenal juga sebagai tipe data
sederhana. Kelompok ini terdiri dari 4 tipe data: Integer, Real, Character dan Boolean.
Tipe data integer adalah tipe data yang terdiri dari angka bulat (tidak mengandung nilai
pecahan atau nilai desimal). Nilai ini bisa berbentuk angka positif maupun negatif, contohnya
3, 99, 1114, -44, 10000, atau 128730123.
var
a:integer;
Tipe data real adalah tipe data angka yang mengandung nilai pecahan (baik positif maupun
negatif), seperti: 3.14, 99.99, atau 679073.22.
var
a:real;
Tipe data char adalah tipe data yang akan menampung karakter. Karakter ini hanya boleh
terdiri dari 1 digit, seperti ‘a’, ‘A’, ‘x’, atau ‘#’.
var
a:char;
Tipe data boolean adalah tipe data yang hanya bisa diisi dengan 1 diantara 2
nilai: true atau false (benar atau salah). Tipe data boolean biasanya digunakan untuk
percabangan kode program seperti struktur IF atau perulangan (looping).
var
a:boolean;
Kelompok kedua dari tipe data pascal adalah tipe data bentukan (user defined) atau dikenal
juga dengan tipe data non standar. Tipe data bentukan ini terdiri dari 2
tipe: enumerated dan subrange. Kedua tipe data ini harus didefenisikan di dalam
bagian type struktur pascal.
Tipe data enumerated adalah tipe data yang isinya terdiri dari kelompok data yang sudah
ditentukan. Sebagai contoh, kita bisa membuat tipe enumerated warna yang
berisi: merah, kuning, biru dan ungu. Atau tipe nama_hari yang berisi nama-nama hari
seperti senin, selasa, rabu, dst.
type
nama_hari= (senin,selasa,rabu,kamis,jumat,sabtu,minggu);
var
a: nama_hari;
type
satuan= 1..9;
var
a: satuan;
Praktikum PASCAL
1. Program Dasar
Latihan 1
program hello_world;
uses
WinCrt;
begin
Writeln('Hello World');
Writeln('Sedang Belajar Pascal');
Readln;
end.
Latihan 2
program inputoutput;
uses winCrt;
var
nama, nisn : String;
begin
Clrscr;
Writeln('Masukkan nama dan NISN');
Writeln('-------------------------');
Writeln('nama anda : '); Readln(nama);
Writeln('NISN anda : '); Readln(nisn);
Writeln('-------------------------');
writeln('Nama anda : ',nama ,'dan NISN anda : ',nisn);
Readln;
End.
Latihan 3
program biodatasaya;
uses wincrt;
var
nama, nisn, alamat : string;
begin
writeln('BIODATA SAYA');
writeln('------------');
write('Nama : '); readln(nama);
write('NISN : '); readln(nisn);
write('alamat : '); readln(alamat);
writeln('-------------------------');
writeln('Nama anda : ',nama);
writeln('NISN anda : ',nisn);
writeln('Alamat anda : ',alamat);
readln;
End.
Latihan 4
program bilanganinteger1;
uses wincrt;
var
bil : integer;
begin
write('Silakan input bilangan anda : '); read(bil);
writeln('------------------------------');
writeln('Bilangan yg anda input : ',bil);
readln;
end.
Flowchart
Latihan 5
program kalkulator;
uses wincrt;
var
bil1,bil2,a,c,d : integer;
b : real;
Begin
writeln('Program Kalkulator Sederhana');
writeln('----------------------------');
write('Bilangan 1 : '); readln(bil1);
write('Bilangan 2 : '); readln(bil2);
writeln('----------------------------');
a:=bil1*bil2;
b:=bil1/bil2;
c:=bil1+bil2;
d:=bil1-bil2;
writeln('Hasil perkalian : ',a);
writeln('Hasil pembagian : ',b);
writeln('Hasil penjumlahan : ',c);
writeln('Hasil pengurangan : ',d);
end.
5. Program hitung luas dan keliling bangun datar, serta volume bangun ruang
Flowchart : program hitung luas & keliling persegi panjang
Latihan 6
program hitung_luas_keliling_persegipanjang;
uses wincrt;
var
p,l : integer;
luas,kll : integer;
begin
writeln('Program Bantu Hitung Luas & Keliling Persegi Panjang');
writeln('----------------------------------------------------');
write('Panjang : '); read(p);
write('Lebar : '); read(l);
luas:=p*l;
kll:=2*(p+l);
writeln('Luas Persegi Panjang : ',luas);
writeln('Keliling Persegi panjang : ',kll);
end.
Latihan 7
program hitung_volumetabung;
uses wincrt;
var
r, t : integer;
phi, v : real;
begin
writeln('PROGRAM BANTU HITUNG VOLUME TABUNG');
writeln('----------------------------------');
write('Jari-jari : '); readln(r);
write('Tinggi : '); readln(t);
phi:=3.14;
v:=(phi*r*r*t)/3;
writeln('Volume Tabung : ',v:0:2);
end.
6. Logika IF
Pilih chanel TV
program Percabangan1;
uses wincrt;
var
kode : integer;
begin
clrscr;
writeln('Program Percabangan IF/memilih chanel');
writeln('-------------------------------------');
write('silahkan pilih chanel anda [1 s/d 4] : '); readln(kode);
if (kode=1) then
begin
writeln('RCTI');
end;
if (kode=2) then
begin
writeln('ANTV');
end;
if (kode=3) then
begin
writeln('METROTV');
end;
if (kode=4) then
begin
writeln('INDOSIAR');
end;
end.
program Percabangan2;
uses wincrt;
var
kode : string;
begin
clrscr;
writeln('Program Percabangan IF/memilih menu makanan');
writeln('-------------------------------------------');
write('a Mie Bakso');
write('b Mie Ayam');
write('silahkan pilih menu anda [a/b] : '); readln(kode);
if (kode='a') then
begin
writeln('Menu anda : Mie bakso');
writeln('Bonus : Teh Botol Sosro');
end;
if (kode='b') then
begin
writeln('Menu anda : Mie Ayam');
writeln('Bonus : Teh Botol Sisri');
end;
end.
program Percabangan3;
uses wincrt;
var
bil : integer;
begin
clrscr;
writeln('Program Percabangan IF/menentukan bilangan ganjil atau genap');
writeln('------------------------------------------------------------');
writeln('Genap bil mod 2=0');
writeln('Ganjil bil mod 2 <> 0');
write('silahkan input bilangan anda : '); readln(bil);
if (bil mod 2=0) then
begin
writeln(bil, ' : Bilangan Genap');
end;
if (bil mod 2<>0) then
begin
writeln(bil, ' : Bilangan Ganjil');
end;
end.
program Percabangan4;
uses wincrt;
var
bil : integer;
begin
clrscr;
writeln('Program Percabangan IF/konversi Nilai Angka menjadi huruf');
writeln('---------------------------------------------------------');
write('silahkan input nilai anda : '); readln(bil);
if (bil>=85) and (bil<=100) then begin writeln(bil, 'nilai huruf : A'); end
else if (bil>=75) and (bil<85) then begin writeln(bil, 'nilai huruf : B');
end else if (bil>=65) and (bil<75) then begin writeln(bil, 'nilai huruf :
C'); end else if (bil>=50) and (bil<65) then
begin
writeln(bil, 'nilai huruf : D');
end
else if (bil<50) then
begin
writeln(bil, 'nilai huruf : E');
end;
end.
7. Logika FOR
program perulangan1;
uses wincrt;
var
bil,j : integer;
begin
writeln('Program Menampilkan bil 1-10 & Jumlahnya ');
writeln('----------------------------------------');
j:=0;
for bil:=1 to 10 do
begin
writeln(bil);
j:=j+bil;
end;
writeln('Jumlah : ',j);
end.
Menampilkan Tulisan
program perulangan2;
uses wincrt;
var
bil : integer;
begin
writeln('Program Menampilkan Perulangan Tulisan ');
writeln('----------------------------------------');
for bil:=1 to 10 do
begin
writeln('I LOVE U PASCAL');
end;
end.
Program Perkalian
program perulangan3;
uses wincrt;
var
i,bil : integer;
begin
writeln('Program Perkalian ');
writeln('------------------');
write('Input perkalian yang diinginkan : '); read(bil);
for i:=1 to 10 do
begin
writeln(i, ' x ', bil, ' = ',i*bil);
end;
end.
program perulangan4;
uses wincrt;
var
bil : integer;
begin
writeln('Program Hitung Mundur ');
writeln('----------------------');
for bil:=10 downto 1 do
begin
writeln('mundur ke : ',bil);
end;
end.
program perulangan4;
uses wincrt;
var
ayam,bil : integer;
begin
writeln('Program lagu Anak Ayam ');
writeln('-----------------------');
write('Input Jumlah Anak ayam : '); read(ayam);
writeln;
for bil:=ayam downto 1 do
begin
writeln('Anak Ayam turun : ',bil, ' pergi 1, tinggal ', bil-1);
end;
end.
program Irit_Boros;
uses crt;
var
saku, peng, hasil : integer;
begin
write(‘Jumlah uang saku Anda per minggu : ‘); readln(saku);
write(‘Pengeluaran Anda per minggu : ‘); readln(peng);
hasil:=saku-peng;
if hasil>=peng then
writeln(‘sisa uang saku Anda per minggunya adalah : ‘,hasil,’ artinya Anda adalah orang
yang irit’)
else
writeln(‘sisa uang saku Anda per minggunya adalah : ‘,hasil,’ artinya Anda adalah orang
yang boros’);
end.
program hitung_gaji;
uses crt;
var
nama_karyawan:string;
alamat:string;
gaji_pokok,tunjangan,pajak,gaji_bersih:comp;
begin
writeln(‘menghitung gaji bersih karyawan’);
write (‘nama karyawan:’);readln(nama_karyawan);
write (‘alamat:’);readln(alamat);
write (‘gaji pokok:’);readln(gaji_pokok);
tunjangan:=0.15 * gaji_pokok;
pajak:=0.075 * gaji_pokok;
gaji_bersih:=gaji_pokok+tunjangan-pajak;
writeln(nama_karyawan);
writeln(‘gaji pokok Anda adalah’,gaji_pokok);
writeln(‘tunjangan Anda sebesar’,tunjangan);
writeln(‘pajak penghasilan Anda sebesar’,pajak);
writeln(‘maka gaji bersih Anda adalah’,gaji_bersih);
end.
program IfKombinasi;
uses crt;
var
angka1,angka2 : integer;
begin
writeln(‘Masukkan angka pertama: ‘); readln(angka1);
writeln(‘Masukkan angka kedua: ‘); readln(angka2);
if {not} (angka1>3) and {or} (angka2>4) then
begin
writeln(‘Anda memasukkan nilai angka pertama > 3 dan kedua > 4’);
end
end.
program Tebak_Angka;
uses crt;
var
angka,tebakan : integer;
begin
clrscr;
angka:= 2;
writeln(‘Coba tebak angka antara 1 sampai 10’); readln(tebakan);
if angka = tebakan then
writeln(‘Selamat!, tebakan kamu benar.’)
else
writeln(‘Wakwawww, tebakan kamu salah.’)
end.
program JamKeMenit;
uses crt;
var
jam, menit,i,hasil,dtk,hasildtk : integer;
begin
clrscr;
write(‘Masukkan Nilai Jam : ‘); readln(jam);
i:=60;
dtk:=3600;
if jam =1 then
begin
hasil:=jam*i;
hasildtk:=jam*dtk;
writeln(jam, ‘ jam sama dengan ‘,hasil,’ menit dan ‘, hasildtk, ‘ detik’);
end
else
begin
hasil:=jam*60;
hasildtk:=jam*dtk;
writeln(jam,’ jam sama dengan ‘,hasil, ‘ menit dan ‘, hasildtk, ‘ detik’);
end;
end.
Program Kalkulatia;
uses crt;
var angka1,angka2,hasil:real,2;
operasi:char;
begin
clrscr;
writeln(‘KALKULATOR’);
writeln(‘===================’);
write(‘Input Angka Pertama : ‘); readln(angka1);
write(‘Operasi yang dilakukan(+,-,/,*) : ‘); readln(operasi);
write(‘Input Angka Kedua: ‘); readln(angka2);
case operasi of
‘+’: hasil :=angka1+angka2;
‘-‘: hasil :=angka1-angka2;
‘*’: hasil :=angka1*angka2;
‘/’: hasil :=angka1/angka2;
end;
writeln(‘Hasil dari ‘,angka1,’ ‘, operasi,’ ‘, angka2, ‘ = ‘,’ ‘, hasil);
end.
program pangkat_kuadrat;
uses crt;
var
bil : integer;
begin
hasil := b *b;
pangkat2 := hasil;
end;
{bagian prog.utama}
begin
clrscr;
write(‘masukan bilangan bulat : ‘); readln(bil);
write(‘hasil pangkatnya adalah ‘, pangkat2(bil));
readkey;
end.
program Luas_Persegi_Panjang;
uses crt;
var
panjang : real;
lebar : real;
luas : real;
begin
clrscr;
writeln(‘===================================’);
writeln(‘| ‘,’Program untuk Menghitung Luas Persegi Panjang’,’ |’);
WRITELN(”);
writeln(‘| ‘,’Rumus : Panjang x Lebar (p x l)’,’ |’);
writeln(‘===================================’);
writeln(”);
write(‘Nilai Panjang: ‘); readln(panjang);
write(‘Nilai Lebar: ‘); readln(lebar);
Writeln(‘Rumus Luas: Panjang x Lebar (p x l)’);
luas :=panjang*lebar;
writeln(”);
writeln(‘=============================’);
writeln(‘| ‘,’Jadi p x l = ‘,panjang:0:1,’ x ‘,lebar :0:1);
writeln(‘==============================’);
writeln(luas:0:1);
end.
program NeastedIf;
uses crt;
var
A,B,C : integer;
begin
clrscr;
writeln (‘Masukkan tiga angka dengan spasi’); readln(A, B, C);
if A >= B then
begin
if A >= C then
writeln (A, ‘ adalah nilai terbesar’)
else
writeln (C, ‘ adalah nilai terbesar’)
end
else if B >= C then
begin
if B >= C then
writeln (B, ‘ adalah nilai terbesar’)
else
writeln (C, ‘ adalah nilai terbesar’)
end
else if C >= A or B then
writeln(C, ‘ adalah nilai terbesar’);
end.
program data_pegawai;
uses crt;
var
gajipokok, gajibersih, tunjangan1, tunjangan2, tunjangan3, tunjangan4 :real;
status :char;
nama, alamat :string[30];
jumlah :integer;
begin
clrscr;
write(‘Nama : ‘); readln(nama);
write(‘Alamat : ‘); readln(nama);
write(‘Gaji pokok : Rp ‘); readln(gajipokok);
write(‘Status D:menikah, S:belum menikah : ‘); readln(status);
write(‘Jumlah anak : ‘); readln(jumlah);
if (status = ‘D’) then
if(jumlah <= 3) then begin
tunjangan1 :=(5 * gajipokok) / 100;
tunjangan2 :=(2 * gajipokok * jumlah) / 100;
gajibersih := gajipokok + tunjangan1 + tunjangan2;
writeln(‘tunjangan suami/istri : Rp ‘,tunjangan1:0:0);
writeln(‘tunjangan anak : Rp ‘,tunjangan2:0:0);
writeln(‘gaji bersih : Rp ‘,gajibersih:0:0);
end
else
begin
tunjangan1 :=(5 * gajipokok) / 100;
tunjangan2 :=(2 * gajipokok * 3) / 100;
tunjangan3 :=(3 * gajipokok * (jumlah – 3)) / 100;
tunjangan4 :=tunjangan2 + tunjangan3;
gajibersih :=gajipokok + tunjangan1 + tunjangan4;
writeln(‘tunjangan suami/istri : Rp ‘,tunjangan1:0:0);
writeln(‘tunjangan anak : Rp ‘,tunjangan4:0:0);
writeln(‘Gaji bersih : Rp ‘,gajibersih:0:0);
writeln(‘Terima Kasih’);
end
else
writeln(‘gajibersih : Rp ‘,gajipokok:0:0);
readkey;
end.
program GanjilGenap;
uses crt;
var
angka :integer;
begin
clrscr;
writeln(‘Status Bilangan’);
writeln(‘===============’);
write(‘Masukkan Bilangan: ‘); readln(angka);
if angka < 0 then
begin
if angka mod 2 = 0 then
writeln(‘Status Bilangan : GENAP = NEGATIF’)
else
writeln(‘Status Bilangan : GANJIL = NEGATIF’)
end
else
begin
if angka mod 2 = 0 then
writeln(‘Status Bilangan : GENAP = POSITIF’)
else
writeln(‘Status Bilangan : GANJIL = POSITIF’)
end;
end.
program Game_Tebak;
uses crt;
var
pilih : integer;
tebak1, tebak2, tebak3 : string ;
begin
clrscr;
writeln(‘=======================================’);
writeln(‘|’,’ SELAMAT DATANG DI GAME TEBAK ASAL’,’|’);
writeln(‘=======================================’);
writeln(”);
writeln(‘*’,’PILIH KATEGORINYA ‘,’*’);
writeln(‘1. Mudah’);
writeln(‘2. Sedang’);
writeln(‘3. Sulit’);
writeln(‘———————–‘);
writeln(”);
write(‘Mau pilih kategori yang mana nih? 1,2, atau 3 : ‘); readln(pilih);
case pilih of
1:
begin
writeln(‘===========================’);
writeln(‘| ‘,’Kategori Mudah’,’|’);
writeln(‘===========================’);
write(‘Soal Tebak : Siapakah grup band yang ga pernah memihak?’); readln(tebak1);
if tebak1=’netral’ then
writeln(‘Tebakan kamu Bener’)
else
writeln(‘Tebakan kamu Salah, jawabannya adalah Netral’);
end;
2:
begin
writeln(‘===========================’);
writeln(‘| ‘,’Kategori Sedang’,’ |’);
writeln(‘===========================’);
write(‘Soal Tebak : Bidadari-bidadari, kalo tanpa dada jadi apa? ‘); readln(tebak2);
if tebak2=’biri biri’ then
writeln(‘Tebakan kamu Bener. Berarti pikiran kamu ga ngeres’)
else
writeln(‘Tebakan kamu Salah, jawabannya biri biri. Kamu tadi mikir yang nggak-nggak
yah??’);
end;
3:
begin
writeln(‘============================’);
writeln(‘| ‘,’Kategori Sulit’, ‘ |’);
writeln(‘============================’);
write(‘Soal Tebak : Siapakah mantan dari penulis artikel ini? ‘); readln(tebak3);
if tebak3=’MaafKurangBeruntung’ then
writeln(‘Tebakan kamu Bener. Kok kamu tahu sih?’)
else
writeln(‘Tebakan kamu Salah, coba deh tanya pacar kamu. Siapa tau dia mantan si penulis
wkwkwk’);
end;
end;
end.
program menghitung_usia
uses wincrt;
var
nama : string;
umur,TL:integer;
begin
writeln(‘nama kamu siapa?’);readln(nama);
writeln(‘tahun lahir kamu?’);readln(TL);
umur:=2018-TL;
writeln(umur);
readkey;
end.
uses crt;
Var
Berat,harga,hargaperkg:integer;
Kualitas:char;
Begin
Clrscr;
Write(‘ Massukkan Kualitas Buah [A/B/C] : ‘); readln(kualitas);
Write(‘ Berapa Kg yang dibeli? ‘ ); readln(berat);
Case kualitas of
‘A’,’a’: hargaperkg:=1000;
‘B’,’b’: hargaperkg:=750;
‘C’,’c’: hargaperkg:=500;
Else
Begin
Hargaperkg:=0;
Writeln(‘Salah Input’);
End;
End;
Harga:=hargaperkg*berat;
Writeln(‘ Harga per Kg : Rp.’,hargaperkg);
Writeln(‘ Harga Total : Rp.’,harga);
End.
uses crt;
var
alas,tinggi:integer;
procedure hitung_luas(a,t:integer);
var
luas:real;
begin
clrscr;
luas:=a*t/2;
writeln(‘Luas segitiga =’,luas);
end;
begin
writeln(‘Masukkan ukuran alas =’);readln(alas);
writeln(‘Masukkan ukuran tinggi =’);readln(tinggi);
hitung_luas(alas,tinggi);
readln;
end.
uses crt;
var
Tulisan:text;
a,b:byte;
c:byte;
begin
clrscr;
writeln(‘Masukkan angka pertama =’);readln(a);
writeln(‘Masukkan angka kedua =’);readln(b);
c:=a+b;
writeln(‘Jika dijumlahkan, nilainya adalah =’,c);
assign(Tulisan,’hitung.txt’);
rewrite(Tulisan);
write(tulisan,a);
write(Tulisan,’+’);
write(Tulisan,b);
write(Tulisan,’=’);
write(Tulisan,c);
Close(Tulisan);
readln;
end.
uses crt;
var
nilai:byte;
begin
clrscr;
Write(‘masukkan nilai =’);Readln(nilai);
if nilai>0 then
begin
Writeln(‘GRADE = O ‘);
Writeln(‘Besar biaya = Rp.550000’);
end
else
if nilai<=1 then begin Writeln(‘GRADE = E ‘);
Writeln(‘Besar biaya = Rp.450000’);
end else if nilai<=40 then begin Writeln(‘GRADE = D’);
Writeln(‘Besar biaya = Rp.350000’); end else if nilai<=60 then begin Writeln(‘GRADE =
C’);
Writeln(‘Besar biaya = Rp.250000’); end Else if nilai<=70 then begin Writeln(‘GRADE =
B’); Writeln(‘Besar biaya = Rp.150000’); end else begin If nilai >=100 then
Writeln(‘GRADE = A’);
Writeln(‘Besar biaya = Rp.50000’);
end;
readln;
end.
uses crt;
Var
nilai:byte;
A,B,C,D:string;
begin
clrscr;
write (‘masukkan nilai=’);readln(nilai);
if nilai< 69 then
writeln(‘predikat D’);
if nilai<79then
writeln (‘predikat C’);
if nilai<90 then
writeln (‘predikat B’);
if nilai<101 then
writeln(‘predikat A’);
readln;
end.
uses crt;
var Des:integer;
Bin:string;
begin
clrscr;
writeln(‘PROGRAM KONVERSI BILANGAN DESIMAL KE BILANGAN BINER’);
write(‘Masukkan bilangan Desimal=’);
readln(Des);
Bin:=’’;
repeat
begin
{menghitung biner dari hasil bagi}