Anda di halaman 1dari 26

BAB 1

LANDASAN TEORI

Sejarah Pascal
Pascal merupakan pengembangan dari bahasa ALGOL 60, bahasa pemrograman untuk sains
komputasi. Tahun 1960, beberapa ahli computer bekerja untuk mengembangkan bahasa ALGOL, salah
satunya Dr. Niklaus Wirth dari Swiss Federal Institute of Technology (ETH-Zurich), yang merupakan
anggota grup yang membuat ALGOL. Tahun 1971, dia menerbitkan suatu spesifikasi untuk highly
structured language (bahasa tinggi yang terstruktur) yang menyerupai ALGOL. Dia menamainya dengan
PASCAL (dari nama Blaise Pascal, ahli matematika & philosopi terkenal abad 17 dari Perancis). Pascal
bersifat dara oriented, yaitu programmer diberi keleluasaan untuk mendefenisikan data sendiri. Pascal juga
merupakan teaching language (banyak dipakai untuk pengajaran tentang konsep pemrograman).
Kelebihan yang lain adalah penulisan kode Pascal yang luwes, tidak seperti misalnya FORTRAN, yang
memerlukan programmer untuk menulis kode dengan format tertentu.
Dasar Program Pascal
Struktur program Pascal terdiri dari tiga bagian, yaitu:

Judul Program. Judul ini sifatnya adalah optional dan tidak signifikan.

Bagian Deklarasi. Bagian ini digunakan bila program akan untuk mendefinisikan berbagai
macam identifier, seperti label, konstanta, tipe, variabel, prosedur dan fungsi.

Bagian Deskripsi. bagian ini digunakan untuk meletakkan seluruh instruksi program. Instruksiinstruksi yang akan diberikan untuk dikerjakan ditulis di antara Begin dan End". Penulisan
End diakhiri dengan tanda baca titik (.). Yang perlu diperhatikan bahwa setiap instruksi
diakhiri dengan tanda baca titik koma (;).

Unsur-Unsur Pemograman
a. Mendapatkan data dengan membaca data dari default input (keyboard, file atau sumber data
lainnya).
b. Menyimpan data ke dalam memori dengan struktur data yang sesuai.
c. Memproses data dengan instruksi yang tepat.
d. Menyajikan atau mengirimkan hasil olahan data ke default output (monitor, file atau tujuan
lainnya).
Nama yang dipergunakan dalam program Pascal disebut dengan pengenal atau identifier. Identifier
digunakan untuk nama : program, sub-program (procedure dan function), nama : variable, constant, type,
label.
Nama-nama ini digunakan untuk pemakaian dan pemanggilan dalam program. Ketentuan penulisan
identifier :
a. Nama identifier harus dimulai dengan karakter huruf alphabet : a sampai z atau karakter _
(underscore = garis bawah).
b. Karakter berikutnya boleh karakter numeric (0 9) atau kombinasi alphanumeric (hurufnumerik).
c. Panjang nama, pada berbagai versi Pascal umumnya antara 32 63
d. Tidak boleh menggunakan karakter istimewa : + - = * & ^ % $ # @ ! ~ . , : ; [ ] { }
Contoh penulisan yang benar : NamaMahasiswa, Gaji_Karyawan,PX4,dll
Contoh penulisan yang salah : 3X, A&B, C Z dll.

Berikut adalah tabel type data dalam pascal:


a. INTEGER

b. REAL

c. OPERATOR

Variabel adalahIdentifier yang berisi data yang dapat berubah-ubah nilainya di dalam program.
Deklarasi variable adalah:
a. Memberikan nama variable sebagai identitas pengenal
b. Menentukan tipe data variable
Contoh deklarasi variable : varX : integer; R : real; C : char; T : Boolean;
Konstanta adalah identifier yang berisi data yang nilainya tidak berubah didalam program.
Deklarasi konstanta adalah :
a. Memberikan nama konstanta sebagai identitas pengenal
b. Menentukan nilai konstanta
Contoh deklarasi konstanta : conts MaxSize=100{integer}
ExitC=Q; {char}
Reserved Word atau kata-kata cadangan pada Pascal adalah kata-kata yang sudah didefenisikan oleh
Pascal yang mempunyai maksud tertentu. Suatu Unit adalah kumpulan dari konstanta, tipe-tipe data,
variable, prosedur dan fungsi-fungsi. Unit standar pada Pascal yang bisa langsung digunakan adalah
System, Crt, Printer Dos dan Graph. Untuk menggunakan suatu unit, maka kita harus meletekkan clausa
atau anak kalimat Uses di awal blok program, diikuti oleh daftar nama unit yang digunakan. Pada materi
ini yang akan dibahas adalah unit Crt. Unit ini digunakan untuk memanipulasi layar teks (windowing,
peletakan cursor dilayar, color pada teks, kode extended keyboard dan lain sebagainya).
2

Tipe Data dan Operator


Tipe data menunjukkan suatu nilai yang dapat digunakan oleh suatu variable yang
bersangkutan.
Tipe Data dalam Pascal
1. Tipe Data Sederhana, terdiri dari :
a.
Tipe data standar :
Integer : merupakan tipe data berupa bilangan bulat
Real : merupakan jenis bilangan pecahan
Char : merupakan karakter yang ditulis dengan tanda petik tunggal.
Ex: A,a,5, dll/
String : merupakan urutan-urutan dari karakter yang terletak di antara tanda petik tunggal.
Boolean : merupakan tipe data logika, yang berisi dua kemungkinan nilai : TRUE atau
FALSE.
b.
Tipe data yang didefenisikan sebagai pemakai.
2. Tipe Data Terstruktur terdiri dari :
a. Array
b. Record
c. File
d. Set
3. Tipe Data Pointer Operator
a. Assignment operator (operator pengerjaan) menggunakan symbol titik dua diikuti oleh tanda
sama dengan (:=). Contoh A:=B;
b. Binary operator digunakan untuk mengoperasikan dua buah operand yang berbentuk konstanta
ataupun variable. Operator ini digunakan untuk operasi arithmatika yang berhubungan dengan
tipe data integer dan real. Operasi yang dilakukan adalah : pertambahan (+), pengurangan (-),
perkalian (*), pembagian bulat (DIV), pembagian real (/) dan modulus atau sisa pembagian
(MOD).
c. Unary operator, operator ini menggunakan sebuah operand saja dapat berupa unary minus dan
unary plus. Contoh : +2.5,a+(+) dll.
Bitwise operator digunakan untuk operasi bit per bit pada nilai integer. Operator yang digunakan
(NOT,AND,OR,XOR,Shl,Shr.
Beberapa Statemen Turbo Pascal
Statemen adalah perintah untuk pengerjaan program pascal. Statemen terletak di bagian deklarasi
statemen dengan diawali oleh kata cadangan BEGIN dan diakhiri dengan kata cadangan END. Akhir dari
setiap statemen diakhiri dengan titik koma [;].
Statemen- statemen dalam bahasa Pascal terdiri dari pernyataan yang berupa fungsi dan prosedur yang
telah disediakan sebagai perintah standar Turbo Pascal.
1. Statemen-statemen yang digunakan untuk input / output
#Read/Readln [prosedur]
Perintah ini digunakan untuk memasukkan [input] data lewat keyboard ke dalam suatu variabel.
Sintaks : Read/Readln(x); (ingat, selalu diakhiri dengan titik koma [;])
Keterangan : x = variabel
Read = pada statemen ini posisi kursor tidak pindah ke baris selanjutnya
Readln = pada statemen ini posisi kursor akan pindah ke baris selanjutnya setelah di input
#Write/Writeln [prosedur]
Digunakan untuk menampilkan isi dari suatu nilai variabel di layar
Sintaks : Write/Writeln(x);
Keterangan : x = variabel
Write/Writeln = statemen ini digunakan untuk pengaturan letak layar.
Contoh sederhana dalam penggunaan perintal write writeln:
2. Statemen-statemen yang digunakan untuk letak layar
#ClrScr [prosedur]
3

Perintah ini digunakan untuk membersihkan layar.


Sintaks : ClrScr; [Clear sreen]

BAB 2
ANALISA KEPUTUSAN
(IF THEN ELSE)
Instruksi (kalimat) kondisional adalah instruksi yang dilakukan berdasarkan kondisi boolean
tertentu. Instruksi ini adalah instruksi yang sangat penting, yang memungkinkan komputer untuk bisa
berpikir dengan mengambil aksi berdasarkan kondisi boolean tertentu.
Bentuk sederhana statement IF, yaitu:
If condition Then
Statement 1;
Else
Statement 2;
Dimana condition adalah sesuatu yang bernilai True atau False, dan statement adalah
perintah yang akan dijalankan.
IF Sederhana
Bentuk paling sederhana dari pernyataan kondisional dalam setiap bahasa adalah if - then. Contoh:
if (a>b) then writeln(A lebih besar dari B);
bagian setelah if disebut dengan bagian kondisi dan bagian setelah then adalah bagian aksi. Jika aksi
lebih dari satu instruksi maka bisa dikelompokkan dalam blok begin end. Seperti ini:
if (a>b) then
begin
writeln(Kesimpulan:);
writeln(A lebih besar dari B);
end;
IF dengan ELSE
Selain if - then, ada bentuk kondisional lain yaitu if - then - else. Kita bisa mengubah instruksi
semacam ini:
if (a>b) then writeln(A lebih besar dari B);
if (a<=b) then writeln(A kurang dari atau sama dengan B);
menjadi:
if (a>b) then writeln(A lebih besar dari B) else (A kurang dari atau sama dengan B);
Bagian else akan dieksekusi jika bagian kondisi tidak dipenuhi, atau dengan kata lain, bagian else
dieksekusi jika kondisi yang terjadi adalah komplemen dari kondisi di bagian if.
Contoh sederhana dalam penggunaan perintah IF dan ELSE:
program latihan_3;
uses wincrt;
var
nim,n1,n2,rata2_nilai:real;
jk:string;
begin
write('nim:');
readln(nim);
write('nilai 1:');
readln(n1);
write('nilai 2:');
readln(n2);
5

write('jenis kelamin:');
readln(jk);
rata2_nilai:=(n1+n2)*0.5;
writeln('rata2 nilai',rata2_nilai:4:2);
if jk='w' then
begin
if(rata2_nilai>=60)then
begin
write('selamat anda lulus');
end
else
begin
write('maaf anda gagal');
end
end
else
begin
if (rata2_nilai>=75)then
begin
write('selamat anda lulus');
end
else
begin
write('yahh anda gagal');
end
end
end.
IF untuk banyak kondisi
Instruksi if boleh digabung dengan banyak instruksi if menangani kondisi yang kompleks (banyak
kondisi dan banyak aksi), seperti ini:
if (kondisi_1) then
begin
aksi1;
end
else if (kondisi_2) then
begin
aksi2;
end else (* kondisi 1 dan 2 tidak dipenuhi*)
begin
aksi_n;
end.
Sebagai contoh:
program isi_nilai;
uses wincrt;
var
nama,nh:string;
nim,mid,uas,tugas,na:real;
begin
write('nama:');
readln(nama);
write('nim:');
readln(nim);
write('nilai mid:');
readln(mid);
write('nilai uas:');
readln(uas);
write('nilai tugas:');
readln(tugas);
na:=(0.4*mid)+(0.5*uas)+(0.1*tugas);
writeln('nilai akhir',na:6:2);
6

if(na<=100)and(na>=80) then
begin
write('nilai huruf:=A');
end
else
if(na<=79)and(na>=60) then
begin
write('nilai huruf:=B');
end
else
if(na<=59)and(na>=40) then
begin
write('nilai huruf:=C');
end
else
if(na<=39)and(na>=20) then
begin
write('nilai huruf:=D');
end
else
write('nilai huruf:=E');
end.
Case untuk banyak aksi
Selain IF, ada bentuk analisa kasus yang digunakan untuk menangani banyak kondisi yang ada
dalam bentuk (a adalah suatu ekspresi yang menghasilkan tipe enumerasi, dan k1 .. kn adalah
konstanta):
if (a = k1 ) then
begin
aksi1;
end else if (a = k2) then
begin
aksi2;
end else if (a=k3) then
begin
aksi3;
end else
begin
Aksi_n;
end;
Bentuk ini adalah bentuk case of, seperti ini:
Case variabel Of
Range1 : Statement1;
Range2 : Statement2;
Range3 : Statement3;

Else StatementN;
End;
Sebagai contoh seperti di bawah ini:
program latihan_4;
uses wincrt;
var
data:char;
begin
write('masukkan data:');
readln(data);
case data of
'a'..'z':writeln('adalah huruf kecil');
'A'..'Z':writeln('adalah huruf besar');
7

'0'..'9':writeln('adalah angka');
end
end.
Hal yang perlu diperhatikan dalam analisa kasus dengan case adalah bahwa ekspresi yang bisa
ditangani dalam case hanya yang nilainya bisa dienumerasi, yaitu integer (dan tipe range), boolean,
dan tipe enum.

BAB 3
PENGULANGAN ATAU LOOPING
Pengulangan adalah suatu cara untuk mengulangi eksekusi blok instruksi sampai suatu kondisi
tertentu dipenuhi.
Bentuk Pengulangan FOR
Bentuk pengulangan ini adalah yang paling sederhana, jika kita ingin melakukan aksi sebanyak N
kali, maka kita bisa (dan sebaiknya) menggunakan bentuk pengulangan ini. Pengulangan dilakukan
mulai dari suatu indeks awal, sampai dengan indeks akhir, misalnya:
for i:=1 to 5 do writeln('Hello');
akan mencetak 5 kali kata hello. Indeks loop (dalam kasus ini i) berguna karena dapat diakses di
dalam loop, seperti ini:
for i:=1 to 5 do writeln(i);
yang akan mencetak angka 1 sampai dengan 5.
Bentuk loop ini sangat sederhana, karena kita bisa memastikan bahwa loop pasti akan berhenti, yaitu
ketika nilai indeks sudah sama dengan nilai akhirnya.
Perhatian: Anda disarankan untuk TIDAK mengubah INDEKS LOOP dalam program, seperti ini:
for i:=1 to 5 do i:=i+2;
Karena hasilnya mungkin tidak dapat diprediksi
Contoh sederhana dalam penggunaan for :
program latihan_500;
uses wincrt;
var
i,j:char;
begin
write('cetak huruf sampai:');
readln(j);
for i:='a' to j do
begin
write(' ',i);
end
end.

Bentuk Pengulangan WHILE - DO


Terkadang jumlah pengulangan yang akan dilakukan belum diketahui di awal sehingga kita tidak
bisa menggunakan bentuk perulangan for. Bentuk loop ini adalah
while (kondisi) do
begin
aksi;
end;
Aksi dalam while akan dilakukan selama kondisi memiliki nilai true, dan aksi mungkin tidak
dilakukan sama sekali jika di awal loop kondisi sudah bernilai false. Hal yang perlu diperhatikan
dalam loop ini adalah kepastian bahwa loop akan berhenti (bahwa suatu saat kondisi akan bernilai
false).
Contoh sederhana dalam penggunaan perintah while-do:
program konversi;
uses wincrt;
9

var
c,f:real;
i:integer;
begin
writeln('
Program Konversi ');
writeln('...............................');
writeln(' Celcius
Fahrenheit');
writeln('...............................');
while i<=10 do
{for i:=1 to 5 do}
begin
c:=c + 0.25;
f:=1.8*c + 32;
writeln(i,'.',' ', c:5:2,f:18:2);
i:=i+1;
end
end.
Bentuk Pengulangan REPEAT - UNTIL
Bentuk pengulangan while do mungkin tidak pernah mengeksekusi instruksi di dalam loop satu kali
pun jika kondisi sudah tidak terpenuhi. Jika diinginkan agar minimal sebuah aksi dieksekusi sekali,
maka gunakan bentuk perulangan repeat until
.
repeat
aksi;
until kondisi;
Aksi akan diulangi sampai kondisi bernilai true.
bentuk ini sama saja dengan:
aksi;
while (not kondisi) do
begin
aksi;
end;
sebagai contoh:
program latihan_10;
uses wincrt;
var
i,j:integer;
lagi:char;
begin
lagi:='y';
{while lagi='y' do}
repeat
begin
clrscr;
write('data yg dimasukkan=');
read(i);
while j<i do
begin
j:=j+1;
write(j);
end;
write(' ','maen lagi g? Y/T= ');
readln(lagi);
j:=0;
end;
until lagi='y'
10

end.
Karena loop repeat bisa dikonversi ke bentuk while, maka hal yang perlu diperhatikan sama yaitu
bahwa loop pasti akan berhenti.
NESTED LOOP (Loop Bersarang)
Nested loop adalah loop y ang memiliki loop di dalam bagian aksinya. Nested loop dapat dibuat
dengan aneka bentuk loop yang sudah ada. Jadi kita bisa membuat loop for di dalam loop for, atau loop
while dalam repeat until. Jumlah loop di dalam loop bisa sangat banyak (hanya dibatasi oleh
kemampuan kompilator dalam menangani loop bersarang). Nested loop for dapat memakai indeks loop di
luarnya sebagai batas. Potongan program ini (dengan i
dan j adalah integer):
for i:=1 to 5 do
begin
for j:=1 to i do
begin
writeln(*);
end;
end;
Akan mencetak:
*
**
***
****
*****
Invarian Loop
Invarian Loop adalah kondisi dalam loop yang selalu benar sepanjang loop tersebut berjalan.
Contohnya dalam loop ini:
var i, jumlah :integer
begin
i:=0;
jumlah:=0;
while (i<5) do
begin
jumlah:=jumlah + i;
i:=i+1;
end;
end.
Dalam loop ini invarian loop adalah jumlah akan selalu ditambahkan dengan nilai i saat ini, dan nilai
i akan selalu bertambah dengan satu dari nilai pada loop berikutnya, sehingga loop dijamin akan
berhenti.
Invarian loop untuk loop sederhana mudah diperiksa, namun di dalam loop mungkin ada analisa
kasus yang akan mempersulit pemeriksaan apakah loop sudah benar.

11

BAB 4
PROSEDUR
Di saat program kita sudah menjadi besar kita akan mengalami kesulitan dalam mengatur kode
program, jika semua kode tersebut disatukan. Untuk mengatasi hal tersebut, kita bisa menggunakan
subprogram untuk membuat program kita terbagi menjadi beberapa bagian yang masing-masing lebih
kecil dan lebih mudah dikelola.
Pemecahan program menjadi subprogram yang lebih kecil juga akan mempermudah kita jika ingin
membuat program yang serupa, kita hanya perlu menyalin, atau memakai subprogram yang sudah
ada di dalam program kita yang baru.
Dalam setiap bahasa pemrograman prosedural umumnya dikenal prosedur dan fungsi, dua buah
bentuk subprogram yang umum. Fungsi adalah subprogram yang memetakan suatu nilai dari suatu
domain ke domain lain, sedangkan prosedur adalah suatu subprogram yang melakukan aksi tertentu.
Prosedur
Prosedur memungkinkan kita membagi program dengan mengelompokkan aksi menjadi bagianbagian yang jelas terpisah, prosedur juga memungkinkan kita memisahkan bagian program yang
sering diulang sehingga tidak perlu ditulis ulang di setiap waktu.
Bentuk penulisan PROCEDURE sederhana:
Procedure namaprocedure (deklarasi parameter);
Deklarasi variabel local
begin
:
{ commands }
:
:
end;
Contoh penggunaan prosedur sederhana:
program grafik;
uses wincrt;
var
a,b,c:integer;
procedure bintang (n:integer);
var
i:integer;
begin
for i:=1 to n do
write('*');
writeln;
end;
begin
write('data ke-1:');read(a);
write('data ke-2:');read(b);
write('data ke-2:');read(c);
writeln;
writeln;
write(a,'=');bintang(a);
write(b,'=');bintang(b);
write(c,'=');bintang(c);
end.
Contoh lain
program kata_kutu;
uses wincrt;
12

var
c:real;
procedure tambah(a:integer;b:real);
begin
c:=a+b;
writeln('isi c=',c:5:1);
end;
procedure kali (a:integer;b:real);
begin
c:=a*b;
writeln('isi c=',c:5:1);
tambah(1,9);
end;
begin
kali(5,10);
tambah(1,10);
kali(10,15);
tambah(25,1);
end.
Perhatikan bahwa pemanggilan prosedur dilakukan dengan menggunakan nama prosedur, seperti
ini:
kali;
tambah;
dll

13

BAB 5
FUNCTION(FUNGSI)
Sama seperti definisi dalam matematika, fungsi dalam pemrograman juga berarti pemetaan suatu
nilai dari suatu domain ke domain yang lain. Pascal sudah menyediakan aneka fungsi standar, seperti
fungsi trigonometri, fungsi kuadrat, dan lain-lain.
Dalam implementasinya fungsi hampir sama persis dengan prosedur (boleh memiliki variabel ,
parameter, dan lain-lain) dengan satu perbedaan yaitu fungsi dapat dan harus mengembalikan nilai.
Penulisan sebuah fungsi. Yaitu:
function namafunction (deklarasi parameter) : returntype;
Deklarasi variabel local
begin
:
{ commands }
:
namafunction := return value;
end;
Contoh sebuah fungsi adalah:
Function kuadrat(x: integer):int;
begin
kuadrat:= x * x;
end;
Perhatikan bahwa pada instruksi:
kuadrat:= x * x;
Ruas kiri adalah nama fungsi itu sendiri, di sini nilai kembalian dari fungsi diberikan. Untuk
memanggil fungsi ini:
var hasil:integer;
begin
hasil:= kuadrat(5);
end.
Variabel hasil akan memiliki nilai 25

14

BAB 6
KONSTANTA
Konstanta adalah suatu nilai yang tidak berubah. Contohnya pi (p), adalah konstanta yang
digunakan
sebagai perbandingan keliling lingkaran terhadap diameternya, dan e adalah konstanta bilangan
euler. Dalam Pascal dan dalam semua bahasa prosedural lain sebuah nama boleh diberi nilai yang
tidak akan diubah di dalam program, nama ini disebut sebagai konstanta. Kata kunci yang dipakai
dalam Pascal adalah const.
Layaknya pelajaran fisika atau matematika yaiyu terdapat konstanta seperti PI:3,14 atau
sebagainya pengertian konstanta di pascal hampir sama dengan konstanta di dunia matematika
maupun fisika, yaitu besaran-besaran yang memiliki ketetapan-ketetapan tertentu. Tetapi
pemakaian konstanta di pascal programmer bebas membuat konstanta sesuai dengan kebutuhan
programnya.
Sebagai contoh penggunaan konstanta pada pascal, seperti berikut:
Uses crt;
Const
{deklarasi konstanta}
PPN = 0.1;
{PPN 10%}
Var
Penjualan, SetelahPPN : Real;
Begin
Write('Nilai penjualan :') Readln(Penjualan);
SetelahPPN = NilaiPenjualan * (1+PPN);
Writeln('Nilai penjualan setelah PPN adalah ', SetelahPPN:10:2);
End.
Konstanta sebagai pemberi nilai awal dan akhir
di bawah ini sedikit contoh penggunaan konstanta yang saya himpun dari materi perkuliahan:
const
havetry=10;
s: array[0..18] of string=
('hello', 'mouse', 'hacher', 'programmer', 'killer', 'teacher', 'splotchier',
'butcher', 'computer', 'pascal', 'house', 'poor', 'children', 'museum',
'security', 'spillway', 'stupidity', 'corrigenda', 'freebooter');
Dan contoh lain:
Uses crt;
Const
{deklarasi konstanta}
Gaji : Real = 500000;
Var
Omzet : Real;
Begin
Write('Omzet penjualan :') Readln(Omzet);
If Omzet >= 10000000 Then
Gaji := Gaji + 10000;
Writeln('Gaji yang diterima ', Gaji:10:2);
End.

15

BAB 7
TIPE BENTUKAN
(RECORD & ARRAY)
1. RECORD
Suatu tipe bisa disusun dari beberapa tipe, misalnya tipe mahasiswa bisa disusun dari tipe string
untuk nama, tipe real untuk nilai, dan tipe integer untuk nomor urutnya.
Contoh Deklarasi tipe komposisi/record dalam Pascal adalah:
type mahasiswa = record
nama:string;
urut: integer;
nilai:real;
end;
var mhs: mahasiswa;
Cara mengakses elemen tipe adalah dengan titik, misalnya:
writeln(mhs.nama);
Atau dengan blok with :
with mhs do
begin
writeln(nama);
end;
Jika bagian dari tipe bentukan merupakan tipe dasar yang bisa langsung dibaca atau tulis maka
elemen tersebut bisa langsung dibaca atau ditulis, namun bagian tipe yang tidak bisa dibaca dan
ditulis langsung tetap harus diperlakukan khusus.
2. ARRAY
a. ARRAY 2 dimensi
Jenis variabel yang telah diberikan hanya bisa digunakan untuk menyimpan sebuah nilai saja. Dalam
banyak kasus kita perlu menyimpan banyak nilai yang serupa untuk diproses, misalnya data nilai
mahasiswa dalam suatu kelas untuk dihitung rata-ratanya.Tabel adalah tipe data yang dapat menampung
sejumlah data dengan tipe sejenis, jumlah data yang dapat disimpan dibatasi oleh kemampuan kompilator
dan komputer.
contoh Deklarasi tabel integer yang terdiri dari 100 elemen adalah:
var
tabint : array [1..100] of integer;
Dengan deklarasi semacam itu sebuah tabel yang terdiri dari 100 elemen integer dibentuk, dan dapat
diakses melalui indeksnya (antara 1 sampai 100, inklusif). Untuk mengakses elemen tabel ke-n
gunakan sintaks: tabint[n].
Tabel dapat diproses menggunakan loop (biasanya loop for, karena indeks tabel sudah jelas), contoh
berikut akan menjumlahkan seluruh elemen tabel integer yang dideklarasikan di atas (jumlah dan i
bertipe integer):
jumlah:=0;
for i:=1 to 100 do jumlah:=jumlah+tabint[i];
writeln('Jumlah elemen tabel adalah:', jumlah);
b. ARRAY 3 dimensi
Terkadang kita perlu memiliki tabel dengan dimensi lebih dari satu. Matriks merupakan salah satu
contoh tabel dengan banyak dimensi (tabel multi dimensi). Tabel multi dimensi dipandang oleh
semua bahasa yang mengenal tipe data tabel satu dimensi, karena tabel dua dimensi bisa dipandang
sebagai tabel dari tabel.
Contoh Dalam Pascal, tipe tabel multi dimensi dapat dideklarasikan seperti ini:
16

var
matriks : array [1..4, 1..4] of integer;
Pengaksesan elemen tabel dilakukan mirip seperti pengakse san tabel satu dimensi:
matriks[baris, kolom]:=nilai;
Pemrosesan tabel multi dimensi umumnya dilakukan dengan nested loop. Hal yang perlu
diperhatikan dalam pemrosesan tabel dengan loop adalah bahwa indeks tabel tidak boleh lebih dari
yang sudah dideklarasikan.

17

BAB 8
EDITING LAYAR PASCAL
no
1

Nama fungsi
CLRSCR

kegunaan
Membersihkan
layar.
Memberi
warna pada
layar.

keterangan
-

2.

TextColor(nomor warna);
Dan
Textattr := nomor warna;

3.

TextColor(4 + 128);
Writeln('Merah dan
berkedip-kedip');
Dan
TextColor(Red + Blink);
Writeln('Merah dan
berkedip-kedip');

Member efek
teks berkedip
pada layar.

4.

TextBackground(nomor
warna);

Warn yang
berlaku hanya
0 s/d 7

5.

GotoXY(20,13);
Writeln('Tulisan ini
dicetak mulai kolom 20,
di baris 13);

6.

TextMode(CO40);
Dan
TextMode(CO80);

Member
warna latar
belakang
(background)
pada layar.
Mencetak
tulisan yang
diinginkan
yang terdapat
dalam kolom
dan baris
tersebut.
Mengatur
mode layar

7.

Window(x1, y1, x2, y2);

8.

Sound(500);

membatasi
dari
pencetakan
dilayar
berdasarkan
koordinat kiri
atas dan
koordinat
kanan bawah
untuk

0 (black),
1 (blue),
2 (green),
3 (cyan),
4 (red),
5 (magenta),
6 (brown),
7 (lightgray),
8 (darkgray),
9 ( lightblue),
10(lightgreen),
11 (lightcyan),
12 (lightred),
13(lightmagenta)
, 14 (yellow),
15 (White).
-

18

9.

No sound

membunyikan
speaker
komputer
dengan
frekuensi
tertentu
Menonaktifka
n perintah
sound. / sound
mati

19

BAB 9
FLOWCHART
Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-urutan
prosedur dari suatu program. Flowchart menolong analis dan programmer untuk
memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong
dalam menganalisis alternatif-alternatif lain dalam pengoperasian.
Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah
yang perlu dipelajari dan dievaluasi lebih lanjut.
PEDOMAN-PEDOMAN DALAM MEMBUAT FLOWCHART
Bila seorang analis dan programmer akan membuat flowchart, ada beberapa petunjuk
yang harus diperhatikan, seperti :
1. Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan.
2. Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini
harus dapat dimengerti oleh pembacanya.
3. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
4. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata
kerja, misalkan MENGHITUNG PAJAK PENJUALAN.
5. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
6. Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan
hati-hati. Percabangan-percabangan yang memotong aktivitas yang sedang
digambarkan tidak perlu digambarkan pada flowchart yang sama. Simbol konektor
harus digunakan dan percabangannya diletakan pada halaman yang terpisah atau
hilangkan seluruhnya bila percabangannya tidak berkaitan dengan sistem.
7. Gunakan simbol-simbol flowchart yang standar.
SIMBOL-SIMBOL FLOWCHART
Simbol-simbol flowchart yang biasanya dipakai adalah simbol-simbol flowchart standar
yang dikeluarkan oleh ANSI dan ISO.
Simbol-simbol ini dapat dilihat pada Gambar 6. Simbol Flowchart Standar berikut ini:

20

Symbol
Input/ output

Arti
Merepresentasikan Input data
atau
Output data yang diproses atau
Informasi.

Proses

Mempresentasikan operasi

Penghubung

Keluar ke atau masuk dari bagian


lain flowchart khususnya
halaman
yang sama

Ank panah

Merepresentasikan alur kerja

Penjelasan

Decision/ keputusan

Keputusan dalam program

Predefined Process

Rincian operasi berada di tempat


lain

Preparation

Pemberian harga awal

Terminal point

Awal / akhir flowchart

21
Punched card

Input / outuput yang


menggunakan kartu berlubang

KUMPULAN STATEMENT-STATEMENT PASCAL


Sebagai pedoman dalam menunjang pembelajaran dan penguasaan bahasa pemrograman pascal
kami sertakan beberapa statement-statement yang kami himpun sendiri dari materi perkuliahan kami:
program isi_nilai;
uses wincrt;
var
nama,nh:string;
nim,mid,uas,tugas,na:real;
begin
write('nama:');
readln(nama);
write('nim:');
readln(nim);
write('nilai mid:');
readln(mid);
write('nilai uas:');
readln(uas);
write('nilai tugas:');
readln(tugas);
na:=(0.4*mid)+(0.5*uas)+(0.1*tugas);
writeln('nilai akhir',na:6:2);
if(na<=100)and(na>=80) then
begin
write('nilai huruf:=A');
end
else
if(na<=79)and(na>=60) then
begin
write('nilai huruf:=B');
end
else
if(na<=59)and(na>=40) then
begin
write('nilai huruf:=C');
end
else
if(na<=39)and(na>=20) then
begin
write('nilai huruf:=D');
end
else
write('nilai huruf:=E');
end.

program isi_data;
uses wincrt;
var
nama,alamat,gender: string;
usia,kode_pos: integer;
begin
write('isikan nama:');
readln(nama);
write('alamat:');
readln(alamat);
write('usia:');
readln(usia);
write('kode_pos:');
readln(kode_pos);
write('gender:');
read(gender);
if gender='l' then
begin
write('pria');
end
else
begin
write('wanita');
end
end.

program latihan_3;
uses wincrt;
var
nim,n1,n2,rata2_nilai:real;
jk:string;
begin
write('nim:');
readln(nim);
write('nilai 1:');
readln(n1);
write('nilai 2:');

program latihan;
uses wincrt;
var
p,l,kl,ls:integer;
begin
write('panjang=');
read(p);
write('lebar=');
read(l);
ls:=p*l;
kl:=2*p+2*l;
22

readln(n2);
write('jenis kelamin:');
readln(jk);
rata2_nilai:=(n1+n2)*0.5;
writeln('rata2 nilai',rata2_nilai:4:2);
if jk='w' then
begin
if(rata2_nilai>=60)then
begin
write('selamat anda lulus');
end
else
begin
write('maaf anda gagal');
end
end
else
begin
if (rata2_nilai>=75)then
begin
write('selamat anda lulus');
end
else
begin
write('yahh anda gagal');
end
end
end.
program data;
uses wincrt;
var
a,b,c:integer;

writeln('luas=',ls);
write('keliling=');
writeln(kl);
end.

procedure an(a:integer);
begin
writeln('isi a=',a);
end;

procedure tambah(a:integer;b:real);
begin
c:=a+b;
writeln('isi c=',c:5:1);
end;

begin
an(5);
writeln('mitk');
an(10);
writeln('ista');
an(100);
writeln('yogya');
an(1000);
end.

program pengulangan;
uses wincrt;
var
a,b,c:integer;

program kata_kutu;
uses wincrt;
var
c:real;

procedure kali (a:integer;b:real);


begin
c:=a*b;
writeln('isi c=',c:5:1);
tambah(1,9);
end;
begin
kali(5,10);
tambah(1,10);
kali(10,15);
tambah(25,1);
end.
program latihan_500;
uses wincrt;
var
i,j:char;
23

procedure garis;
begin
writeln('---------');
writeln('+++++++++');
end;
begin
garis;
writeln('MTK');
garis;
writeln('isian');
garis;
writeln('jawaban');
garis;
end.
program latihan_5000;
uses wincrt;
var
i,j:integer;
begin
for i:=1 to 10 do
begin
j:=j+i;
writeln('data ke-',i,'=',j);
end
end.

program latihan_500;
uses wincrt;
var
i,j:integer;
begin
write('cetak angka sampai:');
readln(j);
for i:=5 downto 1 do
begin
write(i);
end
end.

begin
write('cetak huruf sampai:');
readln(j);
for i:='a' to j do
begin
write(' ',i);
end
end.

program latihan_4;
uses wincrt;
var
data:char;
begin
write('masukkan data:');
readln(data);
case data of
'a'..'z':writeln('adalah huruf kecil');
'A'..'Z':writeln('adalah huruf besar');
'0'..'9':writeln('adalah angka');
end
end.
program konversi;
uses wincrt;
var
c,f:real;
i:integer;
begin
writeln('
Program Konversi ');
writeln('...............................');
writeln(' Celcius
Fahrenheit');
writeln('...............................');
while i<=10 do
{for i:=1 to 5 do}
begin
c:=c + 0.25;

program konversi;
uses wincrt;

f:=1.8*c + 32;
writeln(i,'.',' ', c:5:2,f:18:2);
i:=i+1;
end
end.
program grafik;
uses wincrt;
var
a,b,c:integer;
24

var
c,f:real;
i:integer;
begin
writeln('
Program Konversi ');
writeln('...............................');
writeln(' Celcius
Fahrenheit');
writeln('...............................');
for i:=1 to 5 do
begin
c:=c + 0.25;
f:=1.8*c + 32;
writeln(i,'.',' ', c:5:2,f:18:2);
end
end.

procedure bintang (n:integer);


var
i:integer;
begin
for i:=1 to n do
write('*');
writeln;
end;
begin
write('data ke-1:');read(a);
write('data ke-2:');read(b);
write('data ke-2:');read(c);
writeln;
writeln;
write(a,'=');bintang(a);
write(b,'=');bintang(b);
write(c,'=');bintang(c);
end.

program latihan_10;
uses wincrt;
var
i,j:integer;
lagi:char;
begin
lagi:='y';
{while lagi='y' do}
repeat
begin
clrscr;
write('data yg dimasukkan=');
read(i);
while j<i do
begin
j:=j+1;
write(j);
end;
write(' ','maen lagi g? Y/T= ');
readln(lagi);
j:=0;
end;
until lagi='y'
end.

25

DAFTAR PUSTAKA
http://www.scribd.com

26

Anda mungkin juga menyukai