Modul Pascal
Modul Pascal
1. Dasar-Dasar Pemrograman
Dalam dunia komputer dikenal beraneka ragam bahasa pemrograman.
Karena begitu banyaknya, maka bahsa-bahasa tersebut dikelompokkan
berdasarkan kriteria tertentu. Ada yang mengelompokkan menurut tingkatan
bahasa, yaitu high level, middle level, dan low level. Ada juga yang
mengelompokkannya menjadi procedural/functioning programming, object
orietend programming, dan sebagainya. Pada dasarnya bahasa-bahasa
pemrograman
tersebut
memiliki
bagian-bagianyang
serupa.
Yang
5. Algoritma
Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan
tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu.
Setiap aksi harus dapat dikerjakan dan mempunyai efek tertentu.
Algoritman
dapat
dituliskan
dengan
banyak
cara,
mulai
dari
(programming).
Orang
yang
menulis
program
disebut
pemrogram
6. PASCAL
Pascal adalah bahasa tingkat tinggi (high level languange) yang
orientasinya pada segala tujuan, dirancang oleh Prof. Niklaus Wirth dari
Technical University di Zurich, Switzerland. Nama Pascal diambil sebagai
penghargaan terhadap Blaise Pascal, ahli matematik dan philosophi terkenal
abad 17 dari Prancis. Prof. Niklaus Wirth memperkenalkan compiler bahasa
Pascal pertama kali untuk komputer CDC 6000 (Control Data Corporation)
yang dipublikasikan pada tahun 1971 dengan tujuan untuk membantu
mengajar
program
komputer
secara
sistematis,
khususnya
untuk
7.2. Pilih File New, kemudian tulis Source Code program Pascal.
Source Code Pascal dapat ditulis pada jendela kerja baru atau text editor
Pascal dengan nama file noname00.
7.3. Compile file dengan (ALT + F9 atau pilih sub menu Compile).
Compile file dijalankan untuk mengecek Source Code apakah sudah
memenuhi aturan penulisan Source Code atau kesalahan syntax.
Sedangkan untuk mengubah Source Code menjadi sebuah program, kita
gunakan build yang terdapat di Compile Build. Setelah Source Code
tercompile, terbentuklah sebuah file dengan ekstensi .exe yang sudah
merupakan sebuah program executable.
7.4. Jalankan program dengan (CRTL + F9 atau pilih sub menu Run).
Setelah kita compile file yang berisi source code, maka sebagai hasil
kompilasi tersebut kita akan mendapatkan suatu file yang bisa dijalankan
PEMBAHASAN
Materi 1
Topik Input dan Output
Setiap program aplikasi pasti membutuhkan operasi input dan output. Pada
umumnya, program-program aplikasi dalam hal input atau proses memasukkan
data secara interaktif dan dapat menghasilkan suatu output, karena suatu program
yang tidak menghasilkan output akan sia-sia, karena hasilnya tidak akan dapat
dinikmati. Berikut ini akan dibahas mengenai cara-cara memasukkan data secara
interaktif dan cara-cara menampilkan output.
Contoh Soal 1
Buat program yang dapat menghitung jarak (s) dari sebuah harga kecepatan (v)
dan waktu (t).
Spesifikasi Program
Input
Proses
menghitung s (jarak, m) = v * t.
Output :
Implementasi Program
Hasil Kompilasi
Contoh Soal 2
Buat program dengan spesifikasi teknis sebagai berikut :
Spesifikasi Program
Input
Proses
Output :
Implementasi Program
Hasil Kompilasi
Contoh Soal 3
Buatlah program yang dapat menghitung nilai Y dari persamaan matematika
berikut :
Spesifikasi Program
Y = 3X4 + 8X3 + 13X3 + 9X + 17
Implementasi Program
Hasil Kompilasi
Tugas 1
Soal 1
Buat program yang dapat menghitung Luas Persegi Panjang (Ls) dari harga
Panjang (P) dan Lebar (L).
Spesifikasi Program
Input
P dan L
Proses
Ls = P * L
Output :
Ls
Soal 2
Buat program yang dapat memberikan informasi tagihan listrik dengan spesifikasi
sebagai berikut :
Spesifikasi Program
Input
Proses
Output :
Tagihan
Soal 3
Buat program yang menghitung Luas Lingkaran (Ls) dan Keliling Lingkaran
(Kll).
Spesifikasi Program
Input
r (jari-jari)
Proses
Dimana hi = 3.14
Ls = phi x r2 dan Kll = phi x D (diameter)
Output :
Ls dan Kll
Soal 4
Buat program dengan ketentuan sebagai berikut :
Spesifikasi Program
Input
Proses
Output :
Total Gaji
Soal 5
Buat Program yang menerima data nilai-nilai siswa-siswi yaitu ujian1, ujian2,
tugas dan uas. Kemudian progam menghitung dan menampilkan nilai akhir
dengan rumus sebagai berikut :
Spesifikasi Program
Nilai Akhir = 20% x Ujian1 + 20% x Ujian2 + 50% x UAS + 10% x Tugas
10
Materi 2
Topik Seleksi Kondisi
Suatu Struktur dasar algoritma yang memiliki satu atau lebih kondisi tertentu
dimana sebuah instruksi dilaksanakan jika sebuah kondisi/persyaratan terpenuhi.
Ada beberapa bentuk struktur dasar pemilihan ini :
2.1. Seleksi If
Statement If berguna untuk memilih salah satu dari 2 atau lebih
kemungkinan yang ada. Bila salah satu keadaan yang dapat dipilih dalam
statement If mengandung lebih dari datu pernyataan, maka pernyataanpernyataan tersebut dimasukkan dalam blok Begin dan End.
Bentuk Umum :
1. If dengan satu statement
If <Kondisi> Then <Statement>;
2. If dengan banyak statement
If <Kondisi> Then
Begin
<Statement 1>;
<Statement 2>;
<Statement n>;
End;
3. If-Then-Else dengan satu statement
If <Kondisi> Then <Statement 1>
Else <Statement 2>;
4. If dengan banyak statement, else dengan satu statement
If <Kondisi> Then
Begin
11
<Statement 1>;
<Statement 2>;
<Statement n>
End
Else <Statement>;
5. If dengan satu statement, else dengan banyak statement
If <Kondisi> Then <Statement 1>
Else
Begin
<Statement 2>;
<Statement 3>;
<Statement n>;
End;
6. If-Then-Else dengan banyak Statement
If <Kondisi> Then
Begin
<Statement 1>;
<Statement 2>;
<Statement n>;
End Else
Begin
<Statement n+1>;
<Statement n+2>;
<Statement n+m>;
End;
12
7. If-Then-Else If
If <Kondisi 1> Then <Statement 1>
Else If <Kondisi> Then <Statement 2>
Contoh Soal 1
Buat program yang dapat menentukan komentar dari nilai angka dimasukkan
Spesifikasi Program
Input
Nilai
Proses
Jika nilai angka lebih dari 75, maka komentarnya adalah LULUS,
tapi jika kurang dari 75, maka komentarnya adalah TIDAK LULUS
Output :
Komentar
Implementasi Program
13
Hasil Kompilasi
Contoh Soal 2
Buat program yang dapat menentukkan bilangan terbesar dari 2 buah bilangan
Spesifikasi Program
Input
a dan b
Proses
Output :
Terbesar
Implementasi Program
Hasil Kompilasi
14
Contoh Soal 3
Buat program yang dapat menentukkan bilangan terbesar dari 3 buah bilangan
Spesifikasi Program
Input
a, b dan c
Proses
Jika a lebih dari b dan a lebih besar dari c maka terbesar adalah a,
begitu pula seterusnya
Output :
Terbesar
Implementasi Program
Hasil Kompilasi
15
Tugas 2. 1
Soal 1
Buat program yang dapat menentukan besar tunjangan yang diberikan kepada
seorang pegawai dengan ketentuan jika anak kurang dari sama dengan 2, maka
tunjangan adalah 20% dari gaji kotor, tapi jika lebih dari 2 maka tunjangan adalah
40% dari gaji kotor. Gaji kotor dimasukkan dengan manual.
Soal 2
Buatlah program dimana inputnya adalah Nilai Angka dan Outputnya adalah Nilai
Huruf dengan menggunakan tabel berikut ini :
Nilai Angka
0 NA < 40
NA = 40 dan NA < 60
NA = 60 dan NA < 70
NA = 70 dan NA < 80
80 NA 100
Nilai Huruf
E
D
C
B
A
Soal 3
16
2. 2 Seleksi Case
Case biasanya digunakan untuk memilih diantara lebih besar dari 2 pilihan.
Case dipakai untuk menggantikan struktur if-else if dimana konsidinya
mengacu pada variabel yang sama.
Bentuk umum :
1. Case dengan satu statement tiap kondisi :
Case <variabel> of
<kondisi 1> : <statement 1>;
<kondisi 2> : <statement 2>;
.....
<kondisi n> : <statement n>;
End;
2. Case dengan banyak statement tiap kondisi :
Case <variabel> of
<kondisi 1> :
Begin
<statement 1>;
<statement 2>;
.....
<statement n>;
End;
<kondisi 2> :
Begin
<statement 1>;
<statement 2>;
.....
<statement n>;
End;
....
<kondisi n> :
Begin
<statement 1>;
17
<statement 2>;
.....
<statement n>;
End;
Contoh Soal 1
Buat program yang dapat menampilkan pilijan dari beberapa n\menu masakan dan
dapat menampilkan menu masakan yang dipilih.
Spesifikasi Program
Input
Proses
Output
Implementasi Program
Hasil Kompilasi
18
Contoh Soal 2
Buatlah program dalam bentuk menu yang mampu menghitung :
a. Luas dan Keliling Bujur Sangkar
b. Luas dan Keliling Persegi Panjang
c. Luas Segitiga
Implementasi Program
Hasil Kompilasi
19
Tugas 2. 2
Soal 1
Buatlah algoritma yang membaca sebuah bilangan bulat yang nilainya terletak
antara 1 sampai 4, lalu mencetak teks angka tersebut. Misalkan bila dibaca angka
1, maka tercetak tulisan satu, bila angka 2, maka tercetak di layar tulisan dua,
demikian seterusnya. Jika angka yang dimasukkan selain 1 sampai 4, tulisan pesan
bahwa angka yang dimasukkan salah.
Soal 2
Menghitung upah mingguan karyawan. Dimana masukkan yang dibaca adalah
nama karyawan, golongan dan jumlah jam kerja. Dan keluaran program ialah
nama karyawan dan upah kerja total. Dengan ketentuan golongan adalah jika a =
upah kerjanya Rp. 4000,-/jam, jika b = upah kerjanya Rp. 5000,-/jam, jika c =
upah kerjanya Rp. 6000,-/jam dan jika d = upah kerjanya Rp. 7000,-/jam. Jam
kerja karyawan adalah 8 jam/hari, upah lembur Rp. 3000,-/jam.
Soal 3
Simulasikan sebuah kalkulator sederhana untuk melakukan operasi aritmetika
sebagai berikut : Tambahan (+), Kurangan (-), Perkalian (x) dan Pembagian (/).
20
Materi 3
Topik Pengulangan
Sebuah / Kelompok instruksi diulang untuk jumlah perulangan tertentu. Baik yang
didefinisikan sebelumnya ataupun tidak.
Struktur perulangan terdiri atas dua bagian :
1. Kondisi pengulangan yaitu ekspresi Boolean yang harus dipenuhi untuk
melaksanakan perulangan.
2. Isi atau badan pengulangan yaitu satu atau lebih pernyataan (aksi) yang akan
diulang.
Perintah atau notasi dalam struktur pengulangan adalah :
1. Pernyataan Fortodo
2. Pernyataan Whiledo
3. Pernyataan RepeatUntil
3. 1. Pernyataan For
Pada perulangan dengan for, inisialisasi awal dan kondisi akhir ditentukan
dengan menggunakan suatu variable kendali yang nilainya dibatasi dalam
suatu range tertentu.
Bentuk Umumnya :
For <variable kendali> := <nilai awal> to <nilai akhir> do
Begin
{Statement}
End;
Atau
For <variable kendali> := <nilai awal> downto <nilai akhir> do
Begin
{Statement}
End;
21
Contoh Soal 1
Buat program yang dapat menampilkan kata Saya Belajar Pascal sebanyak 5
kali.
Spesifikasi Program
Input
Proses
dari nilai awal dan nilai akhir yang telah ditentukan, lakukan
pengulangan
Output :
Implementasi Progam
Hasil Kompilasi
22
Contoh Soal 2
Hasil Kompilasi
Contoh Soal 3
23
Hasil Kompilasi
Contoh Soal 4
Hasil Kompilasi
24
Tugas 3. 1
Soal 1
Soal 2
Soal 3
Soal 4
Soal 5
25
3. 2. Pernyataan While...do
Stantement while...do digunakan untuk melakukan proses pengulangan
suatu statement terus-menurut selama kondisi ungkapan logika pada while
masih bernilai logika benar.
Bentuk Umumnya :
While <Kondisi_pengulangan> do
Begin
{STATEMENT}
End;
Contoh Soal 1
Buat program yang dapat menampilkan hasil dari 0 90 Celcius ke Fahrenheit
Spesifikasi Program
Input
Kondisi pengulangan
Proses
Output :
Implementasi Program
26
Hasil Kompilasi
Contoh Soal 2
Hasil Kompilasi
27
Tugas 3. 2
Soal 1
Buat program yang dapat menentukkan besarnya nilai FPB (Faktor Persekutuan
terBesar) diantara dua bilangan bulat yang berbeda.
Soal 2
Buat program yang dapat menentukkan besarnya nilai KPK (Kelipatan
Persekutuan terKecil) diantara dua bilangan bulat yang berbeda.
28
3. 3. Pernyataan Repeat...Until
Metode pengulangan ini juga melakukan pengulangan berdasarkan
pemeriksaan kondisi pengulangan. Hanya saja atur dari pengulangan ini
adalah sytem seakan-akan memaksa untuk melakukan pengulangan, sampai
diketahui adanya kondisi berhenti.
Bentuk Umumnya :
Repeat
{STATEMENT}
Until <Kondisi Berhenti>
Contoh Soal 1
Buat program yang dapat angka 0, 1, 2, 3, 4 secara berurutan
Spesifikasi Program
Input
Proses
Output :
Implementasi Program
Hasil Kompilasi
29
Contoh Soal 2
Hasil Kompilasi
30
Tugas 3. 3
Soal 1
Soal 2
31
Materi 4
Topik Larik (Array)
Larik ialah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen
yang mempunyai tipe yang sama. Komponen-komponen tersebut sebagai
komponen type, larik mempunyai jumlah komponen yang tetap. Banyaknya
komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di
larik dapat diakses dengan menunjukkan indexnya atau subscript. Larik dapat
bertipe data sederhana seperti byte, word, integer, real, boolean, char, string dan
tipe data skalar atau subrange. Tipe larik mengantikan isi dari larik atau
komponen-komponennya nilai dengan tipe data tersebut.
Contoh Soal 1
Hasil Kompilasi
32
Contoh Soal 2
Program Larik;
Uses WinCrt;
Type
THari = array[1..7] of string[7];
Var
Hari : THari;
N : integer;
Lagi : char;
Begin
{Pengisian larik}
Hari[1] := 'SENIN' ;
Hari[2] := 'SELASA';
Hari[3] := 'RUBU' ;
Hari[4] := 'KAMIS' ;
Hari[5] := 'JUMAT' ;
Hari[6] := 'SABTU' ;
Hari[7] := 'MINGGU';
{Pengunaan}
Lagi := 'Y';
While ((Lagi = 'Y') or (Lagi = 'y')) do
Begin
write('Masukkan nomor hari = ');
readln(N);
writeln('Maka hari ke- ',N,' adalah ',Hari[N]);
write('Mau coba lagi (Y/T) = ');
readln(Lagi);
End;
End.
Hasil Kompilasi
33
Tugas 4.1
Soal 1
Program SoalLarik1;
Uses wincrt;
Type
max = 1..40;
Var
Nama, NBar : array[max] of string[30];
Jum, Kode : array[max] of integer;
Total, Hrg : array[max] of longint;
a, x, i : integer;
y
: longint;
Begin
{Untuk Data Pembeli}
write('Masukkan banyaknya pelanggan yang diinginkan = ');
readln(a);
writeln('Kode barang : ');
writeln('1. Televisi SONY');
writeln('2. Radio PANASONIC');
writeln('3. Kulkas LG');
i := 1;
y := 0;
while i <= a do
Begin
writeln('Data pembeli ke- ',i);
write('Nama pembeli = ');
readln(Nama[i]);
write('Kode barang = ');
readln(Kode[i]);
{Untuk Pemeilihannya}
case Kode[i] of
1:
Begin
NBar[i] := 'Telavisi SONY';
Hrg[i] := 1000000;
end;
2:
Begin
NBar[i] := 'Radio PANASONIC';
Hrg[i] := 500000;
end;
3:
Begin
NBar[i] := 'Kulkas LG';
Hrg[i] := 2000000;
end;
end;
jum[i] := 1;
Total[i] := Hrg[i];
y := y + Total[i];
i := i + 1;
End;
{Data Yang Ditampilkan}
writeln('88888888888888888888888888888888888888888888888888888888888888888888888');
writeln('|No Nama
Nama Barang Harga Satuan Jumlah Total|');
writeln('88888888888888888888888888888888888888888888888888888888888888888888888');
i := 1;
while i <= a do
Begin
Writeln(i,' ',Nama[i],' ',NBar[i],' ',Hrg[i],' ',jum[i],' ',Total[i]);
i := i + 1;
end;
writeln('88888888888888888888888888888888888888888888888888888888888888888888888');
writeln('Yang harus dibayar Rp. ',y);
writeln('##########TERIMA KASIH#########');
end.
34
Soal 2
Program DataSiswa;
Uses WinCrt;
Type
TSiswa = Record
Nama : String[30];
Nil1, Tgs, UAS : Integer;
NA : Real;
NH : Char;
end;
Var
Siswa : Array[1..100] of TSiswa;
Inputan
i, N : Integer;
Begin
write('Jumlah Siswa = ');
readln(N);
writeln('=================');
For i:= 1 to N do
Begin
writeln('Data Siswa Ke- ',i);
write('Nama = ');readln(Siswa[i].Nama);
write('Nilai 1 = ');readln(Siswa[i].Nil1);
write('Nilai Tugas = ');readln(Siswa[i].Tgs);
write('Nilai UAS = ');readln(Siswa[i].UAS);
Hasil Kompilasi
DAFTAR NILAI');
writeln('=======================================================================');
writeln(' No Nama
writeln('
Nilai 1 Tugas
25 %
25 %
50 %
UAS
writeln('=======================================================================');
For i := 1 to N do
writeln(i:2,Siswa[i].Nama:8,Siswa[i].Nil1:10,Siswa[i].Tgs:10,Siswa[i].UAS:10,
Siswa[i].NA:10:2,Siswa[i].NH:15);
writeln('=======================================================================');
End.
Dimana
Jika Nilai Akhir Siswa < 40 Maka Nilai Huruf = 'E'
Jika tidak Nilai Akhir Siswa < 60 Maka Nilai Huruf = 'D'
Jika tidak Nilai Akhir Siswa < 70 Maka Nilai Huruf = 'C'
Jika tidak Nilai Akhir Siswa < 80 Maka Nilai Huruf = 'B'
Jika tidak Nilai Huruf = A
35
Hasil Kompilasi
36
Tugas 4.2
Soal 1
Buatlah Program Menjumlahkan 2 Matrik yang jumlah baris 3 dan kolom 2.
Program Soal;
Uses wincrt;
Var
Matrik1, Matrik2, Hasil : array[1..3,1..2] of Integer;
i, j : integer;
Begin
Clrscr;
Hasil Kompilasi
37
Materi 5
Topik Fungsi dan Prosedur
Fungsi (function) dan prosedur (procedure) akan membantu mewujudkan
pemecehan masalah-masalah yang lebih sederhana tersebut. Pemakaian fungsi dan
prosedur dalam sebuah program akan menjadikan program semakin mudah dibaca
dan lebih mudah diubah atau dimodifikasi.
Contoh Soal 1
38
Hasil Kompilasi
Contoh Soal 2
Hasil Kompilasi
39
Tugas 5.1
Soal 1
Masukkan tiga buah angka dan cari nilai terbesar diantara tiga buah angka
tersebut.
Program cariterbesar3;
Uses WinCrt;
var
angka1, angka2, angka3, terbesar : integer;
function maks(a, b : integer): integer;
Begin
if a > b then
maks := a
else
maks := b;
end;
Begin
write('Angka pertama = ');readln(angka1);
write('Angka kedua = ');readln(angka2);
write('Angka ketiga = ');readln(angka3);
terbesar := maks(angka1, angka2);
terbesar := maks(terbesar, angka3);
write('Angka terbesar = ',terbesar);
End.
Hasil Kompilasi
40
5.2. Prosedur
Prosedur (procedure) adalah serangkaian statemen yang digunakan untuk
memecahkan sebuah masalah. Seperti fungsi, prosedur juga mempunyai
nama dan parameter. Prosedur harus dideklarasikan terlebih dahulu sebelum
dipanggil atau digunakan.
Bentuk Umumnya :
Procedure nama_prosedur(parameter input; var parameter output);
Begin
{statemen-statemen implementasikan prosedur (badan prosedur),
hasil perhitungan yang dilakukan prosedur (jika ada), disimpan
pada parameter output}
End;
Contohnya :
Procedure gaya(m, a : integer; var f : integer);
{m = massa, a = percepatan, menghitung gaya, F = m * a}
Begin
f := m * a;
End;
Contoh Soal 1
Hasil Kompilasi
41
Contoh Soal 2
Hasil Kompilasi
42
Tugas 5.2
Soal 1
Program pertukaran3;
Uses WinCrt;
Var
angka1, angka2, angka3 : integer;
Procedure tukar(var a, b : integer);
{menukar isi a menjadi isi b, dan sebaliknya}
Var
temp : integer;
Begin
temp := a;
a := b;
b:= temp;
End;
{program utama}
Begin
writeln('Sebelum pertukaran');
write('Angka 1 = ');readln(angka1);
write('Angka 2 = ');readln(angka2);
write('Angka 3 = ');readln(angka3);
tukar(angka1, angka2);
tukar(angka1, angka3);
writeln;
writeln('Setelah pertukaran');
writeln('Angka 1 = ',angka1);
writeln('Angka 2 = ',angka2);
write('Angka 3 = ',angka3);
End.
Soal 2
Hitunglah gaya dengan menggunakan rumus :
f (gaya) = m (massa) * a (percepatan)
Program hitung_gaya;
Uses WinCrt;
Var
massa, percepatan, gaya : integer;
Procedure hit_gaya(m, a : integer;
var f : integer);
Begin
f := m * a;
End;
{program utama}
Begin
write('Massa = ');readln(massa);
write('Percepatan = ');readln(percepatan);
hit_gaya(massa, percepatan, gaya);
write('Gaya = ',gaya);
End.
43