
Array Multidimensi
Array multidimensi adalah sekumpulan data dengan tipe yang sama yang memiliki beberapa subskrip. Array multidimensi dalam bahasa pemrograman mirip dengan konsep matriks dalam matematika.
Syntax Pendeklarasian Array
identifier : array[1..3,1..3] of tipe_data;
Keterangan :
- identifier : nama variabel/type dari array
- [1..3,1..3] : panjang array
- tipe_data : tipe data dari array
Contoh Array Multidimensi
program matriks;
var
m : array[1..3,1..3] of integer;
i,j : integer;
begin
writeln('Memasukan Nilai Mariks');
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
write('Baris ke-',i,'. Kolom ke-',j,' : ');
readln(m[i,j]);
end;
end;
writeln();
writeln('Menampilkan Nilai Matriks');
for i:=1 to 3 do
begin
for j:=1 to 3 do
write(m[i,j],' ');
writeln();
end;
readln();
end.
Baris ke-1. Kolom ke-1 : 1
Baris ke-1. Kolom ke-2 : 2
Baris ke-1. Kolom ke-3 : 3
Baris ke-2. Kolom ke-1 : 4
Baris ke-2. Kolom ke-2 : 5
Baris ke-2. Kolom ke-3 : 6
Baris ke-3. Kolom ke-1 : 7
Baris ke-3. Kolom ke-2 : 8
Baris ke-3. Kolom ke-3 : 9
Menampilkan Nilai Matriks
1 2 3
4 5 6
7 8 9
root@USER-PC:~$ |

Pengertian Array / Larik
Array atau Larik adalah sekumpulan nilai dengan tipe data yang sama dan dinyatakan dalam satu identifier yang sama. Sehingga memungkinkan banyak data disimpan dalam satu variabel tanpa harus membuat satu variabel untuk satu nilai. Konsep array pada bahasa pemrograman terinspirasi oleh vektor dan matriks pada matematika. Pengaksesan data pada array tidak sama dengan variabel biasa, data-data pada array ditandai dengan indeks. Indeks ini yang menentukan posisi suatu data pada array.
Array Satu Dimensi
Array satu dimensi adalah array yang hanya memiliki satu indeks. Atau dengan kata lain array jenis ini hanya memiliki satu baris dan n buah kolom. Misalkan array x adalah variabel yang menyimpan 10 data nilai ujian kelas 12, maka pernyataan tersebut dapat diilustrasikan sebagai berikut
x = 87, 90, 78, 98, 70, 83, 85, 80, 91, 75
Syntax Pendeklarasian Array
Pendeklarasian array pada bahasa pemrograman pascal adalah sebagai berikut
var
larik = array[x .. y] of integer;
Keterangan :
- larik : nama array, dapat diubahsuai sesuai keinginan.
- array : mendeklarasikan bahwa variabel yang dibuat adalah array.
- [x..y] : merupakan panjang array, dimana x adalah indeks pertama dan y adalah indeks terakhir. sehingga panjang array larik adalah x s/d y
- integer : adalah tipe data yang digunakan dalam array larik.
Contoh Penggunaan Array
program programLarik;
var
larik : array[1 .. 10] of integer;
i : integer;
begin
writeln('Memasukan Nilai Array 1 sd 10');
for i := 1 to 10 do
begin
write('Array Indeks ke-',i,' : ');
readln(larik[i]);
end;
writeln('Menampilkan Nilai Array 1 sd 10');
for i := 1 to 10 do
writeln('Array Indeks ke-',i,' : ',larik[i]);
readln();
end.
Array Indeks ke-1 : 12
Array Indeks ke-2 : 34
Array Indeks ke-3 : 67
Array Indeks ke-4 : 90
Array Indeks ke-5 : 11
Array Indeks ke-6 : 44
Array Indeks ke-7 : 89
Array Indeks ke-8 : 39
Array Indeks ke-9 : 89
Array Indeks ke-10 : 32
Menampilkan Nilai Array 1 - 10 :
Array Indeks ke-1 : 12
Array Indeks ke-2 : 34
Array Indeks ke-3 : 67
Array Indeks ke-4 : 90
Array Indeks ke-5 : 11
Array Indeks ke-6 : 44
Array Indeks ke-7 : 89
Array Indeks ke-8 : 39
Array Indeks ke-9 : 89
Array Indeks ke-10 : 32
root@USER-PC:~$ |

Fungsi
Pengertian Fungsi
Fungsi merupakan subprogram yang dapat melakukan tugas tertentu. Fungsi dalam bahasa permograman pascal hampir sama dengan prosedur, hanya saja fungsi memiliki nilai balik.
Syntax Fungsi
function nama_fungsi(parameter): return_type;
const
// Konstanta Lokal
var
// Variabel Lokal
begin
// Statement
end;
Contoh Fungsi
program contohFungsi;
function penjumlahan(a, b: integer): integer;
begin
penjumlahan := a + b;
end;
begin
writeln(penjumlahan(46,25));
readln();
end.
root@USER-PC:~$ |
Cangkupan Variabel
Cangkupann variabel (Variable Scope) adalah istilah yang merujuk apakah suatu variabel dapat digunakan atau tidak. Cangupan variabel dibagi menjadi variabel global dan variabel lokal. Variabel global dideklarasikan pada struktur inti, sehingga dapat dipakai dan diubah nilainya oleh main program maupun subprogram. Sedangkan variabel lokal adalah variabel yang dideklarasikan dalam subprogram, sehingga hanya subprogram tersebut yang dapat memakai variabel tersebut.

Ilustrasi tersebut dapat dijabarkan sebagai berikut.
- Seluruh komponen program dapat menggunakan variabel global A, B, C
- Variabel A dalam prosedur alpha menggantikan variabel global A
- Fungsi beta1 dan beta2 dapat menggunakan variabel VCR, Betamax dan cassette
- Beta1 tidak dapat menggunakan variabel FailureToo, dan beta2 tidak dapat menggunakan variabel Failure
- Hanya prosedur alpha yang dapat menggunakan variabel F dan G
- Prosedur beta dapat memanggil prosedur alpha dan beta
- Fungsi beta1 dapat memanggil fungsi beta2 dan beta1

Pengertian Prosedur
Prosedur dalam bahasa pemrograman pascal berperan sebagai subprogram. Keberadaan prosedur sebagai subprogram dapat membantu menghndari redundant (penulisan kode secara berulang-ulang). Dengan adanya prosedur, kita tidak perlu mengetik ulang kode untuk suatu perintah yang sama.
Syntax Prosedur dalam Pascal
procedure nama_prosedur;
const
// Konstanta Lokal
var
// Konstanta Lokal
begin
// Statement
end;
Untuk memanggil prosedur, kita hanya perlu menyebut nama prosedur (dan diikuti parameter jika diminta).
nama_prosedur;
Parameter
Parameter memungkinkan untuk bertukar nilai antara prosedur dan main program. Parameter dapat dibedakan menjadi dua macam.
- Passed by Value
Parameter passed by value merupakan penerimaan searah. Maksudnya si pengirim dan penerima merupakan variabel yang berdiri sendiri, sehingga ketika salah satu mengalami perubahan nilai, maka hal tersebut tidak akan mempengaruhi variabel lain.
Source Codeprogram passedbyref; procedure myprocedure(a:integer); begin a := 46; writeln('Set nilai A = 46'); end; var x:integer=99; begin writeln('Variabel X = ',x); myprocedure(x); writeln('Variabel X = ',x); readln(); end.
Variabel X = 99
Set nilai A = 46
Variabel X = 99
root@USER-PC:~$ |- Passed by Reference
Parameter passed by reference merupakan kebalikan dari parameter passed by value. Jika salah satu variabel mengalami perubahan nilai, maka variabel lain yang terkait juga akan mengalami perubahan nilai yang sama.
Source Codeprogram passedbyref; procedure myprocedure(var a:integer); begin a := 46; writeln('Set nilai A = 46'); end; var x:integer=99; begin writeln('Variabel X = ',x); myprocedure(x); writeln('Variabel X = ',x); readln(); end.
Variabel X = 99
Set nilai A = 46
Variabel X = 46
root@USER-PC:~$ |

Perulangan/Looping
Komputer memiliki kelebihan tidak akan merasa lelah atau bosan karena mengerjakan pekerjaan yang sama secara berulang-ulang. Perulangan adalah instruksi yang diberikan kepada komputer untuk melakukan suatu task secara berulang-ulang berdasarkan parameter tertentu atau sampai suatu kondisi terpenuhi.
Macam-Macam Bentuk Perulangan
For Do
For Do adalah bentuk perulangan yang menggunakan counter sebagai indikator dijalankan atau dihentikannya sebuah perulangan. Perulangan bentuk ini ada yang menaik, artinya counter dimulai dari angka tertentu dan akan bertambah ketika suatu task selesai dijalankan. Ada juga yang menurun, maksudnya setiap suatu perulangan selesai counter akan berkurang satu.
(* Perulangan Menaik *)
for i:=m to n do
statement;
(* Perulangan Menurun *)
for i:=m downto n do
statement;
Contoh Soal
Buatlah perulangan untuk mencetak teks "Lorem ipsum dolor sit amet." sebanyak sepuluh kali.
program lipsum;
var
i:integer;
begin
for i:=1 to 10 do
writeln(i,' : Lorem ipsum dolor sit amet.');
readln();
end.
2 : Lorem ipsum dolor sit amet.
3 : Lorem ipsum dolor sit amet.
4 : Lorem ipsum dolor sit amet.
5 : Lorem ipsum dolor sit amet.
6 : Lorem ipsum dolor sit amet.
7 : Lorem ipsum dolor sit amet.
8 : Lorem ipsum dolor sit amet.
9 : Lorem ipsum dolor sit amet.
10 : Lorem ipsum dolor sit amet.
root@USER-PC:~$ |
While Do
Perulangan bentuk while do akan menjalankan pernyataan selama suatu kondisi bernilai benar. Pengecekan kondisi akan dilakukan pada awal perulangan.
while (kondisi) do
begin
statement;
end;
Contoh Soal
Buatlah perulangan yang menampilkan hasil penjumlahan 1 - 10.
program whileLoop;
var
i,j:integer;
begin
i := 1;
while (i <= 10) do
begin
write(i,' + ',j,' = ');
j := j + i;
write(j);
writeln();
inc(i);
end;
readln();
end.
2 + 1 = 3
3 + 3 = 6
4 + 6 = 10
5 + 10 = 15
6 + 15 = 21
7 + 21 = 28
8 + 28 = 36
9 + 36 = 45
10 + 45 = 55
root@USER-PC:~$ |
Repeat Until
Repeat until adalah bentuk perulangan yang mirip dengan while loop. Hanya saja bentuk ini melakukan pengecekan kondisi pada akhir perulangan, sehingga bentuk ini setidaknya akan melakukan satu kali perulangan.
repeat
statement;
until (kondisi);
Contoh Soal
Buatlah perulangan yang menampilkan bilangan kelipatan dua yang kurang dari 50.
program repeatUntil;
var
i:integer;
begin
i := 2;
repeat
writeln(i);
i := i * 2;
until (i >= 50);
readln();
end.
4
8
16
32
root@USER-PC:~$ |

Pengertian Percabangan
Percabangan dikenal juga sebagai perkondisian atau decision making. Percabangan dilakukan untuk menentukan alur program berdasarkan kondisi/syarat tertentu.
Bentuk-Bentuk Perkondisian
Pengkondisian dalam pascal dapat dilakukan dengan beberapa cara, pada dasarnya perkondisian dibagi menjadi dua bentuk, yakni if
dan switch
. Bentuk if
masih bisa dikembangkan lagi menjadi beberapa bentuk, berikut macam-macam bentuk perkondisian.
If Then
Perkondisian menggunakan if dilakukan dengan menyeleksi suatu kondisi, jika kondisi tersebut bernilai benar, maka statement akan dijalankan. Namun jika kondisi bernilai salah, maka statement akan diabaikan dan program akan menjalankan code selanjutnya.
if (kondisi) then
statement;
Contoh Soal
Buatlah suatu perkondisian dengan ketentuan jika total belanja lebih dari sama dengan 100000 maka akan mendapat cashback 25000.
program programCashback;
var totalHarga:longint;
cashback :longint= 0;
begin
write('Masukan Total Harga : ');
readln(totalHarga);
if (totalHarga >= 100000) then
cashback := 25000;
writeln();
writeln('Total Belanja : ', totalHarga);
writeln('Cash Back : ', cashback);
readln();
end.
Total Belanja : 120000
Cash Back : 25000
root@USER-PC:~$ |
If Then Else
Bentuk perkondisian if else bekerja dengan cara menyeleksi suatu kondisi, jika kondisi benar maka akan dijalankan statement pada blok if, namun jika kondisi tersebut salah, maka program akan menjalankan pernyataan pada blok else.
if (kondisi) then
statement
else
statement;
Contoh Soal
Buatlah perkondisian dengan ketentuan jika nilai mahasiswa lebih dari 65, maka dinyatakan LULUS, namun jika kurang dari sama dengan 65 mahasiswa dinyatakan GAGAL.
program luluskahAku;
var
nilai:integer;
status:string;
begin
write('Masukan Nilai : ');
readln(nilai);
if (nilai > 65) then
status := 'LULUS'
else
status := 'GAGAL';
writeln('Anda Dinyatakan ',status,'! Dengan Nilai = ', nilai);
readln();
end.
Anda Dinyatakan GAGAL! Dengan Nilai = 46
root@USER-PC:~$ |
If Then Else If Then
Perkondisian ini tak ubahnya seperti perkondisian diatas, jika kondisi bernilai benar, maka akan dijalankan statement pada blok if, namun jika salah, program akan melakukan perkondisian lagi. Dalam perkondisan kedua akan diseleksi suatu kondisi, jika bernilai benar, maka pernyataan pada blok if akan dieksekusi begitu seterusnya.
if (kondisi) then
statement1
else if (kondisi) then
statement2
else if (kondisi) then
statement3
else
statement4;
Contoh Soal
Suatu daerah mengalami krisis makanan, pemerintah setempat bermaksud memberi bantuan makanan sesuai dengan usia dengan ketentuan:
- Usia 0 - 5 tahun mendapat jatah susu formula dan biskuit bayi.
- Usia 6 - 14 tahun mendapat susu formula, nasi, sayur dan daging sapi.
- Usia 15 - 50 tahun mendapat susu kedelai, nasi, sayur dan daging ayam.
- Usia > 50 tahun mendapat susu kalsium, nasi, sayur dan daging sapi.
program bantuanMakanan;
var
usia:byte;
bantuan:string;
begin
write('Masukan Usia : ');
readln(usia);
if (usia <= 5) then
bantuan := 'BISKUIT BAYI + SUSU FORMULA'
else if (usia <= 14) then
bantuan := 'NASI, SAYUR, DAGING SAPI + SUSU FORMULA'
else if (usia <= 50) then
bantuan := 'NASI, SAYUR, DAGING AYAM + SUSU KEDELAI'
else
bantuan := 'NASI, SAYUR, DAGING SAPI + SUSU KALSIUM';
writeln();
writeln('Usia Anda = ', usia);
writeln('Anda Berhak Mendpaat Bantuan = ', bantuan);
readln();
end.
Usia Anda = 20
Anda Berhak Mendapat Bantuan = NASI, SAYUR, DAGING AYAM + SUSU KEDELAI
root@USER-PC:~$ |
Jenis perkondisian ini ditujukan untuk banyak kondisi, jika kondisi sudah terlampau banyak, dapat menggunakan alternatif lain, yakni dengan menggunakan bentuk case.
Case
Bentuk percabangan ini kegunaannya sama dengan bentuk if then else if then, yakni digunakan untuk menyeleksi kejadian dengan banyak kondisi. Namun jika dibandingkan, bentuk case memiliki syntax yang lebih sederhana.
case (ekspresi) of
kondisi1 : statement1;
kondisi2 : statement2;
kondisin : statementn;
end;
Contoh Soal
Buatlah soal untuk mengkonversi nilai dalam bentuk angka menjadi bentuk abjad dengan ketentuan
- 0 - 40 = D
- 41 - 60 = C
- 61 - 80 = B
- 81 - 100 = A
program nilaikuApa;
var
nilai:integer;
nilaiCh:char;
begin
write('Masukan Nilai Anda (0-100) : ');
readln(nilai);
case (nilai) of
0..40 : nilaiCh := 'D';
41..60 : nilaiCh := 'C';
61..80 : nilaiCh := 'B';
81..100 : nilaiCh := 'A';
end;
writeln('Nilai Anda Adalah = ', nilaiCh);
readln();
end.
Nilai Anda Adalah = A
root@USER-PC:~$ |
Perkondisian Bersarang
Perkondisian bersarang (nested decison making) dapat dibayangkan sebagai perkondisian yang terletak didalam perkondisian lain. Perkondisan pada bagian dalam dapat berbentuk if then ataupun if then else.
if (kondisi) then
begin
if (kondisi2) then
statement;
end;
Contoh Soal
Buatlah perkondisian bersarang untuk menentukan apakah suatu bilangan termasuk bilangan POSITIF dan atau bilangan GENAP, atau bukan keduanya.
program seleksiBil;
var
bil:integer;
begin
write('Masukan Bilangan : ');
readln(bil);
if (bil > 0) then
begin
writeln('Bilangan POSITIF');
if (bil mod 2 = 0) then
writeln('Bilangan GENAP');
end
else
writeln('Bukan bilangan POSITIF maupun GENAP');
readln();
end.
Bilangan POSITIF
Bilangan GENAP
root@USER-PC:~$ |

Dalam posting sebelumnya telah kita pelajari tentang variabel, input output dan operator pada bahasa pemrograman pascal. Hari ini kita akan belajar menerapkannya pada program penghitung luas bangun datar. Bangun datar yang akan kita hitung luasnya meliputi persegi, persegi panjang, segitiga dan lingkaran.
Program Penghitung Luas Persegi
Luas persegi dapat didapatkan dengan rumus sisi2. Untuk mencarinya kita dimudahkan dengan adanya fungsi kuadrat yang sudah disediakan pascal. Langkah-langkah pembuatannya adalah sebagai berikut.
- Mendefinisikan nama program.
- Mendeklarasikan variabel sisi dan luas dengan tipe data real.
- Memasukan code readln untuk meminta input nilai variabel sisi
- Menghitung luas dengan rumus sisi2.
- Menampilkan hasilnya pada layar.
program luasPersegi;
var
sisi,luas:real;
begin
write('Masukan Panjang Sisi : ');
readln(sisi);
luas := sqr(sisi);
writeln('Luas Persegi Adalah : ',luas:0:2);
readln();
end.

Program Penghitung Luas Persegi Panjang
Menghitung luas bangun datar persegi panjang prinsipnya adalah sama dengan luas persegi. Hanya saja rumus yang kita terapkan menyesuaikan dengan bangun datar tersebut. Langkah-langkah membuat program menghitung luas persegi panjang adalah sebagai berikut.
- Mendefinisikan nama program.
- Mendeklarasikan variabel panjang, lebar dan luas dengan tipe data real.
- Memasukan code readln untuk meminta input nilai variabel panjang dan lebar
- Menghitung luas dengan rumus panjang * lebar
- Menampilkan hasilnya pada layar.
program luasPersegiPanjang;
var
panjang,lebar,luas:real;
begin
write('Masukan Panjang : ');
readln(panjang);
write('Masukan Lebar : ');
readln(lebar);
luas := panjang * lebar;
writeln('Luas Persegi Panjang Adalah : ',luas:0:2);
readln();
end.

Program Penghitung Luas Segitiga
Langkah-langkah menghitung luas segitiga menggunakan pascal adalah sebagai berikut.
- Mendefinisikan nama program.
- Mendeklarasikan variabel alas, tinggi dan luas dengan tipe data real.
- Memasukan code readln untuk meminta input nilai variabel alas dan tinggi
- Menghitung luas dengan rumus alas * tinggi / 2
- Menampilkan hasilnya pada layar.
program luasSegitiga;
var
alas,tinggi,luas:real;
begin
write('Masukan Alas : ');
readln(alas);
write('Masukan Tinggi : ');
readln(tinggi);
luas := alas * tinggi / 2;
writeln('Luas Segitiga Adalah : ',luas:0:2);
readln();
end.

Program Penghitung Luas Lingkaran.
Sama halnya dengan program penghitung bangun datar diatas, pada program penghitung luas lingkaran, kita hanya perlu merubah rumus dan variabel yang diperlukan. Langkah-langkah pembuatannya adalah sebagai berikut.
- Mendefinisikan nama program.
- Mendeklarasikan nilai konstanta pi.
- Mendeklarasikan variabel jari2 dan luas dengan tipe data real.
- Memasukan code readln untuk meminta input nilai variabel jari2.
- Menghitung luas dengan rumus pi * sqr(jari2).
- Menampilkan hasilnya pada layar.
program luasLingkaran;
const
pi = 3.14159265358979323846;
var
jari2,luas:real;
begin
write('Masukan Jari-Jari : ');
readln(jari2);
luas := pi * sqr(jari2);
writeln('Luas Lingkaran Adalah : ',luas:0:2);
readln();
end.


Bahasa pemrograman pascal menyediakan fungsi-fungsi standar aritmatika, misalnya fungsi pembulatan, fungsi pangkat dan lain sebagainya. Sehingga dengan adanya fungsi ini akan lebih memudahkan karena tidak perlu dibuat secara manual. Fungsi-fungsi standar tersebut meliputi
Fungsi | Deskripsi | Operand | Hasil Operand | Contoh |
---|---|---|---|---|
abs | Mencari absolut | Real, Integer | Real, Integer | abs(67) = 67 |
arctan | Mencari invers tangent | Real, Integer | Real | arctan(90) = 1.56 |
cos | Mencari cosines | Real, Integer | Real | cos(90) = -0.45 |
exp | Exponen | Real, Integer | Real | exp(4) = 54.6 |
ln | Natural logarithm | Real, Integer | Real | ln(12) = 2.48 |
round | Membulatkan ke bilangan terdekat | Real | Integer | round(46.12) = 46 |
sin | Mendapatkan sines | Real, Integer | Real | sin(180) = -0.80 |
sqr | Mencari pangkat 2 | Real, Integer | Real, Integer | sqr(5) = 25 |
sqrt | Mencari akar 2 | Real, Integer | Real, Integer | sqrt(25) = 5 | trunc | Membulatkan ke bilangan dibawahnya | Real, Integer | Integer | trunc(25.97) = 25 |
Selain fungsi diatas, bahasa pemrograman pascal juga menyediakan fungsi tambahan untuk tipe data integer dan char. Fungsi-fungsi tersebut ialah
Fungsi | Deskripsi | Operand | Hasil Operand | Contoh |
---|---|---|---|---|
chr | Mengkonversi kode ASCII menjadi karakter | Integer | Char | chr(90) = Z |
ord | Mengkonversi karakter menjadi kode ASCII | Integer, Char | Integer | ord('A') = 65 |
pred | Predecessor | Integer, Char | Integer, Char | ord('X') = W |
succ | Successor | Integer, Char | Integer, Char | succ('9') = 8 |