Anda di halaman 1dari 87

NASKAH TUTORIAL

ALGORITMA DAN PEMROGRAMAN 1

ARMANSYAH

PROGRAM STUDI ILMU KOMPUTER


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SUMATERA UTARA MEDAN
MEDAN
2018

Created by Armansyah, M.Kom Page 1


KATA PENGANTAR

Assalamu’alaikum warahmatullahi wabarakaatuh.


Puji syukur kepada Allah atas limpahan rahmatNya kepada punulis, hingga akhirnya penulis
dapat merampungkan tugas mengembangkan bahan ajar mahasiswa dalam bentuk modul ajar atau
naskah tutorial. Modul ini dirancang untuk membantu mahasiswa dalam memahami konsep dan praktis
algoritma pemrograman komputer secara umum, dan secara khusus pemrograman Pascal dengan
menggunakan IDE Turbo Pascal.
Modul ini disusun dari dasar hingga akhir sesuai dengan silabus yang dirancang untuk
memperkaya referensi mahasiswa dalam memahami konsep dan praktis algortma pemrograman dengan
Pascal. Tentu saja keberadaan modul akan menjadi sangat bermanfaat jika mahasiswa membaca dan
menerapkannya secara mandiri diluar perkuliahan. Harapan penulis dengan dirancangkannya modul ini
adalah tercapainya kompetensi pengetahuan dan praktis pemrograman komputer dengan Pascal oleh
mahasiswa, karenanya praktek mandiri harus lebih diperbanyak untuk memenuhi capaian
pembelajaran.
Penulis juga berterimakasih kepada Dekan Fakultas Sains dan Teknologi UIN Sumatera Utara
Medan, secara khusus ketua Program Studi Ilmu Komputer atas tugas yang diberikan, serta rekan dosen
yang tidak disebutkan satu-persatu,--sehingga penulis bersemangat dalam melakukan tugas penulisan
modul ini. Tentu saja ucapan terimakasih tidak lupa penulis sampaikan kepada istri karena telah begitu
banyak membantu dan menemai malam-malam penulisan modul ini. Kepada seluruh mahasiswa dan
pembaca, terimakasih apresiasinya karena menggunakan modul ini.
Rancangan modul ini mungkin terlalu sederhana dan banyak kekurangan baik dari sisi konten,
struktur penulisan hingga modelnya. Pengembangan dan revisi akan terus diupayakan untuk
meningkatkan kualitas dan mutunya dimasa mendatang. Akhirnya kepada pembaca penulis mohon maaf
atas segala kekurangan, dan kepada Allah penulis mohon ampun. Demikian pengantar ini, penulis
sampaikan alhamdulillahirabbil’alamiin. Wassalamu’alaikum warahmatullahi wabarakaatuh.

Medan, November 2018


Penulis

Created by Armansyah, M.Kom Page 2


DAFTAR ISI

Halaman Judul
Kata Pengantar .......................................................................................................................... 2
Daftar Isi .................................................................................................................................... 3
Modul 1 Algoritma dan Pengenalan Bahasa Pascal ............................................................................ 4
Modul 2 Variabel, Tipedata, Operator ............................................................................................... 13
Modul 3 Struktur Keputusan .............................................................................................................. 24
Modul 4 Perulangan ........................................................................................................................... 38
Modul 5 Array ..................................................................................................................................... 47
Modul 6 Record .................................................................................................................................. 53
Modul 7 Sub Program ......................................................................................................................... 71
Daftar Pustaka

Created by Armansyah, M.Kom Page 3


MODUL 1
ALGORITMA DAN PENGENALAN
BAHASA PEMROGRAMAN PASCAL

1.1 TUJUAN PRAKTIKUM


Setelah membahas modul ini, diharapkan mahasiswa mampu beberapa kompetensi dasar terkait
algoritma dan pemrograman, yang diantaranya :
1) Mampu memahami konsep algoritma dan pemrograman pascal
2) Mahir merancang algoritma dengan flowchart, atau dengan pseudocode
3) Memahami berbagai editor bahasa pascal, dan mahir menggunakannya
4) Mampu menulis program sederhana cetak data teks

1.2 TEORI SINGKAT


1.2.1 Algoritma
Jika kita melihat buku pedoman memasak (buku resep masak), disana akan didapatkan
persyaratan untuk memasak, bahan-bahannya dan metode atau cecara memasaknya. Buku pedoman
memasak itu, merupakan contoh algoritma yang baik. Dalam pemrograman algoritma tidak ubahnya
seperti apa yang disampaikan pada buku resep masak itu. Secara defenisi, algortima dapat diartikan
sebagai urutan prosedur langkah demi langkah untuk memecahkan suatu permasalah secara sistematis
dan logis.
Dalam implementasinya, algoritma dapat diterapkan dalam tiga model yakni dengan, 1) Bahasa
Natural, 2) Flowchart, dan 3) Pseudocode.

a) Bahasa Natural
Bahasa Natural merupakan algoritma yang ditulis dengan menggunakan bahasa sehari-hari yang
secara langsung dapat dipahami oleh manusia. Biasanya algoritma model bahasa natural menggunakan
bahasa Inggris, tetapi penggunaan bahasa ibu diperbolehkan. Kadangkali algoritma bahasa natural
dikombinasikan dengan pseudocode.

b) Flowchart
Flowchart diambil dari kata flow yang berarti aliran, atau mengalir, chart yang artinya diagram,
grafik atau bagan. Dengan kedua kata itu, maka flowchart dapat diartikan sebagai urutas proses

Created by Armansyah, M.Kom Page 4


penyelesaian masalah yang ditampilkan dalam bentuk simbol-simbol grafik. Dimana setiap simbol
mewakili maknanya masing-masing. Simbol - simbol grafik flowchart diantaranya, sebagai berikut :

Tabel 1.0 Simbol-simbol flowchart

Simbol Nama Fungsi


Merepresentasikan proses
Proses internal baik di prosesor
maupun di memory
Merepresentasikan adanya
Input / Output kebutuhan input dan
keluaran data
Digunakan untuk
mengajukan pertanyaan
Decision
yang memiliki jawaban
bertipe boolean
Digunakan untuk
Conector menghubungkan flowchart
pada halaman yang sama.
Digunakan untuk
Predefined Process memanggil instruksi
program
Simbol untuk memulai dan
Terminal mengakhiri flowchart

Menunjukkan aliran data


FLowline data proses data

Simbol untuk mendeklarasi


Preparation atau menginisialisasi
variabel

Selain simbol-simbol yang ditampilkan pada tabel diatas, umumnya masih ada beberapa simbol
lain yang tidak disajikan sini. Namun diatas cukup untuk rancangan flowchart program sederhana. Dalam
penggunaannya, flowchart memiliki aturan standar yang harus diikuti diantaranya :

1) Dimulai dari awal hingga akhir


2) Alur dimulai dari atas ke bawah
3) Setiap simbol saling terhubung dengan simbol panah sebagai alur masuk prosesnya
4) Untuk simbol Decision harus memiliki 2 titik (masuk dan keluar)
5) Simbol awal dan akhir ditandai dengan terminator

Created by Armansyah, M.Kom Page 5


c) Pseudocode
Jika didefenisikan berdasarkan asal katanya, pseudocode diartikan sebagai urutan proses yang
sistematis dan logis untuk memecahkan masalah dengan tiruan (mirip) dengan kode program. Karena
pseudo diartikan dengan tiruan (mirip), sedangkan code (kode program). Meskipun mirip dengan kode
program, pseudocode tidak dapat di eksekusi oleh kompiler apapun, keberadaannya hanya untuk
perencanaan sama seperti algoritma lain (bahasa natural dan flowchart). Secara praktis, tidak ada
aturan khusus yang mengharuskan penulisan struktur algoritma dengan pseudococode seperti pada
aturan dalam perancangan bagan alir (flowchart) program. Namun penulisan pseudocode mengacu
pada beberapa pedoman berikut :
1) Memiliki bagian header (kepala) yang menunjukkan judul program dan berisi deklarasi, dan
komentar.
2) Memiliki badan algoritma yang merupakan inti dari algoritma
3) Memiliki awal dan proses sebagai alir program
4) Deklarasi variabel mengacu pada format berikut :

DEKLARASI
nama_variabel : tipe data
Contoh :
bilangan : integer;

5) Assignment (penugasan) atau saat memberikan value (nilai) pada variabel dan konstanta,
menggunakan format sebagai berikut :

nama_variabel <- nilai

Contoh :

x <- 3;

yang diartikan dengan nilai 3 diberikan kepada variabel x.


6) Menggunakan bahasa inggris
7) Untuk membuat komentar, ditulis dalam kurung kurawal { dan }

Created by Armansyah, M.Kom Page 6


Berdasarkan pedoman algoritma dengan pseudocode dapat dicontohkan seperti pada algoritma
berikut. Umpama sebuah program operasi bilangan dengan variabel x, y, dan variable hasil yang
merupakan variabel penampung hasil. Maka, dengan studi kasus tersebut rancangan algoritma
pseudocode dapat dibentuk seperti berikut :

Program Operasi_bilangan
Deklarasi
x, y : integer
hasil : integer

Algoritma
x  11
y  2
hasil  x + y
write(hasil)
if (x > y) then
write(‘Nilai x lebih besar dari i’)
end if

Mekanisme program diatas menerapkan prinsip inisialisasi nilai langsung melalui variabel, yang
diterapkan pada variabel x dan y. Dalam program, suatu nilai dapat diinisialisasi secara manual. Untuk
melakukan itu, algoritma cukup mendaftarkan variabel inisialiasi ke dalam perintah read. Perhatikan
alternatif algoritma berikut :

Program Operasi_bilangan
Deklarasi
x, y : integer
hasil : integer

Algoritma
Read(x) { user diminta menginput nilai x}
Read(y) { user diminta menginput nilai y}

Created by Armansyah, M.Kom Page 7


hasil  x + y
write(hasil)
if (x > y) then
write(‘Nilai x lebih besar dari i’)
end if

1.2.2 Pengenalan Bahasa Pascal


Pascal merupakan salah satu bahasa pemrograman tingkat tinggii (high level language) yang
dirancang oleh Profesor Niklaus Wirth dari Technical University of Zurich, Switzerland. Nama Pascal
sendiri diambil dari nama seorang ahli matematika berkebangsaan Prancis pada abad ke 17 yaitu Blaise
Pascal. Secara sinstaksis, Pascal cukup sederhana dan mudah dipahami bahkan oleh pemula. Selain itu,
Pascal juga mendukung hampir semua arsitektur mesin komputer dan berbagai platform sistem operasi.

a) Struktur Bahasa Pascal


Struktur program merupakan aturan dasar yang ditetapkan oleh penulis kompiler. Dimana
kompiler program akan mengecek kebenaran kode program, baik secara parser maupun secara
sintaksis. Struktur program ibarat formula (rumus) yang harus diikuti oleh perancang program. Setiap
bahasa pemrograman memiliki struktur yang berbeda, namun memiliki makna, dan fungsi yang sama.
Bahasa pemrograman Pascal memiliki struktur program seperti pada struktur berikut :

program pertama; Judul program


uses crt;
var i : integer; Blok Deklarasi
begin
clrscr;
i:=56;
writeln(i); Badan / inti program

readkey;
end.

1) Judul Program
Judul program merupakan identitas program yang mewakili maksud dan tujuan program. Dalam
struktur program diatas judul program “pertama” dapat diganti dengan kata yang sesuai dengan tujuan

Created by Armansyah, M.Kom Page 8


program dengan mengakhiri tanda titik koma (;). Sementara kata program harus tetap digunakan
sebagai penanda yang digunakan oleh kompiler untuk membaca program saat kompilasi.

2) Deklarasi Program
Blok deklarasi merupakan bagian yang mengenalkan identifier yang digunakan pada program.
Identifier dapat berupa variabel bertipe, variabel konstanta, array, type record, procedure, function dan
lain sebagainya.

3) Badan Program
Badan program merupakan bagian inti dari suatu program, yang dimulai dari kode begin dan
diakhiri dengan kode end. (titik). Pada bagian ini perancang program dapat menuliskan perintah
(instruksi) yang akan dilakukan oleh (aplikasi) komputer sesuai dengan rancangan algoritma. Perintah
program akan dieksekusi selama sintaksi program telah melalui pengujian program (kompilasi),
sedangan pembacaan program mengacu kepada parser (grammer) yang telah dikenali oleh kompiler.
Ada banyak editor yang dapat digunakan untuk menulis Bahasa Pascal, diantaranya, Turbo Pascal,
Free Pascal dan Pascal Windows. Secara praktis dalam modul ini, penulisan program pascal disampaikan
dengan menggunakan Free Pascal yang saat ini masih terus dikembangkan oleh pengembangnya. Free
pascal mudah didapatkan, mahasiswa dapat mengunduhnya secara gratis disitus resmi milik
pengembangnya di alamat url : https://www.freepascal.org/download.var

b) Menggunakan Free Pascal


Pastikan bahwa editor Free Pascal sudah diunduh dan diinstalasi, sehingga penulisan program
pascal sudah dapat dilakukan. Namun sebelum menulis program, ada baiknya pelajari terlebih IDE
(Integrated Development Environment) Free Pascal agar mudah dalam mengoperasikannya. IDE
(Antarmuka) Free Pascal memiliki banyak fasilitas, dari semua fasilitas yang ada, tidak semua akan
digunakan. Diantara fasilitas yang dimaksud seperti menu File, Edit, Search, Run, Compile, dan Windows.

1) Menu File ; Menu ini digunakan untuk membuka program baru, membuka program yang telah
disimpan, menyimpan program baru, dan menyimpan perubahan program, serta berpindah
direktori penyimpanan dan membuka jendela command prompt serta keluar dari program
2) Menu Edit; Menu ini digunakan untuk merevisi kode program seperti pencarian kode,
mengganti kode, mengcopy dan menempelkan kode ke baris tertentu.
3) Menu Run; Menu ini merupakan utama yang akan selalu digunakan manakala akan
menjalankan kode program yang telah ditulis.

Created by Armansyah, M.Kom Page 9


4) Menu Compile; Menu ini juga menu penting, dimana sebelum menggunakan menu Run, menu
Compile selalu digunakan untuk menguji penulisan program. Pada bagian ini, semua kode
akan diperiksa oleh kompiler pascal ketika dikompilasi
5) Menu Window; Menu ini sering digunakan mana kala ingin menutup program. Akan tetapi,
kadangkala pengguna lebih sering mengabaikan menu kita karena ketersediaan shortcut atau
cara pintas.

Fasilitas menu yang dimaksud diatas dapat diamati pada gambar antarmuka Free Pascal berikut :

c) Menulis Program
Menulis program adalah merancang program dengan mengacu kepada struktur bahasa program
yang telah dijelaskan diawal. Untuk menulis program dengan Free Pascal, silahkan ikuti langkah-langkah
praktikum berikut ini.
1) Buka porgram baru, Klik menu File - New
2) Untuk menghindari kehilangan program, simpan file terlebih dahulu, klik File - Save As..
3) Ganti noname01.pas menjadi program1.pas, tekan enter untuk mengakhiri
4) Selanjutnya ketik program berikut, sembari mengamati kode program dengan benar
1. program pertama;
2.
3. uses crt;
4.

Created by Armansyah, M.Kom Page 10


5. begin
6. clrscr;
7. writeln('Selamat belajar pascal');
8.
9. readkey;
10. end.

5) Jika sudah yakin, kompilasilah program, tekan menu Compile (Alt + F9), enter
6) Jika kompilasi error, perhatikan pesan kesalahan, dan perbaiki kode yang ditunjuk.
7) Jika kompilasi sukses, lanjutkan dengan menjalankan program, klik menu Run - lalu pilih
kembali Run (Ctrl + F9)
8) Jika program berhasil, tulislah keluaran program pada kota berikut, lalu beri penjelasan. Ada
baiknya, eksplorasi program untuk memantapkan pemahaman dasar pascal

1.3 LATIHAN
Untuk memenuhi kompetensi materi perkuliahan, tulislah program berikut dengan mengikuti
panduan program berikut :
1) Buka program baru, dan beri nama file latihan1.pas
2) Tulis program berikut hingga selesai

1. program latihan1;
2.
3. uses crt;
4.
5. var
6. x, y : integer;
7. hasil : integer;
8.
9. begin
10. clrscr;
11. x:=11;
12. y:=2;
13. hasil := x + y;
14. writeln('Hasil penjumlahan x + y adalah ', hasil);
15.
16. readln;
17. end.

Created by Armansyah, M.Kom Page 11


3) Kompilasi program untuk melihat kebenaran sintaksis program
4) Jalankan program yang baru saja di publikasikan
5) Selanjutnya, tulis keluaran program pada kotak yang tersedia berikut ini

Created by Armansyah, M.Kom Page 12


MODUL 2
VARIABEL, TIPEDATA, DAN OPERATOR

2.1 TUJUAN PRAKTIKUM


Setelah mambahas dan mempraktikkan modul tentang variabel, tipedata dan operator ini
diharapkan mahasiswa dapat menguasai beberapa kompetensi pengetahuan dan praktis yang
diantaranya :
1) Memahami konsep variabel, tipedata dan operator pascal
2) Mampu mengidentifikasi dan menggunakan variabel dan tipedata dalam suatu program
sederhana
3) Mampu mengidentifikasi dan menggunakan operator dalam suatu program sederhana

2.2 TEORI SINGKAT


2.2.1 Variabel
Variabel merupakan wadah atau tempat penyimpanan data yang sifatnya berubah-ubah. Secara
umum penggunaan variabel program mengacu pada standar penulisan berikut :
1. Variabel ditulis dengan huruf kapital saja, atau huruf akik (huruf kecil) saja,
2. Jika terdiri dari dua suku kata atau lebih, pisahkan dengan tanda garis bawah (_), dan tidak
dibenarkan menggunakan spasi
3. Tidak membenarkan awalan dalam bentuk angka
4. Tidak membenarkan penggunaan variabel dari keyword yang dimiliki oleh Pascal, seperti
Program, Begin, If, Case, dan lain sebagainya
5. Panjang karakter sebaiknya tidak melebihi 15 karakter meskipun dapat melebihi nilai itu

Jika dilihat dari ketentuan diatas maka penulisan variabel pada bahasa PASCAL yang absah
(dibenarkan) adalah sebagai berikut :

Tabel 2.1 Deklarasi Variabel Yang Absah

NAMA VARIABEL KEABASAHAN


Segi_tiga Benar
Segitiga Benar

Created by Armansyah, M.Kom Page 13


Segi_3 Benar
Segi tiga Salah
3segi Salah
SEGITIGA Benar
Segitiga Benar
Kode932 Benar
$kode, atau %kode Salah

Penulisan variabel pada program PASCAL mengacu pada standar format yang dimilikinya.
Adapun penulisan variabel pada PASCAL selalu diikuti oleh jenis tipedata yang sesuai dengan maksud
penggunaan variabel tersebut. Adapun penulisan (deklarasi) variabel yang dimaksud, mengacu pada
bentuk umum (struktur penulisan variabel) sebagai berikut :

nama_variabel : tipe_data;

sementara untuk deklarasi variabel konstanta dapat mengikuti struktur berikut :

const variabel_konstan = nilai;

Contoh deklarasi variabel :

var
bilangan : integer;
nama : string ;
lebar : real;

Contoh untuk deklarasi variabel konstanta

const berat = 8.9;

2.2.2 Keywords
Keywords merupakan daftar kata-kata kunci yang dimiliki oleh PASCAL. Keywords tidak dapat
digunakan secara bebas sebagai variabel dan nama fungsi atau prosedur karena penggunaanya sudah

Created by Armansyah, M.Kom Page 14


didaftarkan pada library dan dikenali oleh compiler sebagai keywords. Ada beberapa keyword yang
dimiliki oleh PASCAL, yang diantaranya dituliskan dalam tabel berikut :

Tabel 2.2 Keywords Pascal

boolean break Byte continue div do


double else And begin mod while
longint for not Continue and or
end then false true single if

2.2.3 Tipe Data


Tipe data merupakan set (rentang) nilai yang memiliki karakteristik serupa. Tipedata memiliki
kemampuan dan kekurangan yang berbeda untuk menangani data. Tipe data dalam pemrograman,
adalah klasifikasi yang menentukan jenis nilai variabel apa dan jenis operasi matematis, relasional atau
logis yang dapat diterapkan tanpa menyebabkan kesalahan. Secara umum tipedata PASCAL terdiri dari
tipedata bilangan, tipedata teks dan tipedata logika serta tipedata bentukan berupa struktur data array,
record, set, file, dan lain sebagainya. Adapun tipedata bilangan dibagi dalam tipedata bilangan bulat dan
tipedata bilangan pecahan. Secara lengkap tipedata bilangan bulat dalam PASCAL dapat dilihat pada
tabel dibawah berikut ini :

Tabel 2.3 Tipedata Bilangan Bulat

Tipedata Jangkauan Ukuran (byte)


shortint -128 sampai 127 1 byte
Byte 0 sampai 255 1 byte
Integer -32768 sampai 32767 2 byte
word 0 sampai 65535 2 bit
longint -2147483647 sampai 2147483647 4 byte

Tipedata bilangan bulat yang terdapat pada tabel diatas, dapat digunakan mengacu kepada
struktur penulisan (deklarasi) variabel yang telah diuraikan diatas seperti contoh berikut ini :

var
bilangan : integer;
begin
bilangan := 45 + 3;
writeln(bilangan);
end.

Created by Armansyah, M.Kom Page 15


Hasil dari program tersebut setelah dipanggil dengan format cetak writeln() adalah 48.
Selain tipedata bulat yang telah diuraikan pada tabel diatas, kini kita memiliki daftar tipedata bilangan
pecahan, yang secara rinci dapat diamati pada tabel 2.2 berikut ini :

Tabel 2.4 Tipedata Bilangan Bulat

Tipedata Jangkauan Presisi Ukuran (Byte)


Single 0.71e-45 sampai 3.4e+38 7 digit 4 byte
Real 2.94e-39 sampai 1.7e+38 11 digit 6 byte
Double 4.94e-324 sampai 1.79e+308 15 digit 8 byte
Extended 3.3e-4932 sampai 1.18e+4932 19 digit 10 byte
Comp 9.2e+18 Hanya billangan bulat 8 byte

Untuk menggunakan tipedata bilangan pecahan didalam program (pascal) sama seperti
penggunaan tipedata bilangan bulat. Dimana tipedata dapat dituliskan (dikenalkan / deklarasikan)
terlebihdahulu seperti pada contoh berikut :

var
bilangan : real;
begin
bilangan := 45 + 3;
writeln(bilangan);
end.

Potongan program diatas jika dieksekusi akan menghasilkan nilai 4.8000000000000000E+001.


Hal ini karena tipedata untuk bilangan pecahan hanya mengenal data yang memiliki bilangan berkoma.
Nilai seperti itu sulit dipahami oleh orang awam, tetapi nilai tersebut dapat disederhana dengan
menambahkan format variabel:digit:koma;. Dimana program tersebut menggunakan variabel bilangan,
sehingga kita dapat menuliskannya dengan bilangan:4:2; Dimana 4 adalah seluruh digit termasuk
bilangan koma, dengan 2 adalah banyaknya digit dibelakang koma. Maka dengan formulasi itu, hasil
eksekusi program akan menghasilkan nilai bilangan menjadi 48.00.
Untuk variabel dengan tipedata konstanta sedikit berbeda dengan penulisan variabel yang
bertipedata umum. Pada variabel konstanta didalm pascal tidak perlu menyebutkan jenis tipedatanya.
Cukup memberikan nilai langsung dalam penulisan variabelnya. Misal phi yang memiliki nilai tetap 3.14,
deklarasi variabel phi dapat ditulis seperti potongan program berikut :

Created by Armansyah, M.Kom Page 16


const
phi = 3.14;
begin
writeln(‘Nilai phi adalah : ‘,phi:4:2);
end.

Jika potongan program diatas dieksekusi maka akan menghasilkan nilai phi = 3.14. Variabel
const secara default akan menyesuaikan diri pada nilai ekspresi yang diberikan. Jika variabel konstanta
diberikan nilai berbentuk teks, maka hasilnya tentu akan tetap sesuai dengan nilai yang diberikan pada
saat pendeklarasian variabel konstanta.
Selain kedua jenis tipe data bilangan (bulat dan pecahan) diatas didukung pula dengan tipe data
teks dan logika. Dimana tipedata teks terbagi dalam tipedata char yang digunakan untuk variabel
dengan nilai karakter tunggal dan string digunakan untuk variabel dengan nilai karakter majemuk. Nilai
tipedata char dapat berupa huruf, simbol, dan angka yang diapit oleh tanda petik tunggal seperti ‘A’,
‘@’, ‘1’ dan lain sebagainya. Sedangkan nilai string dapat berupa teks, simbol, dan bilangan yang
dikombinasikan. Misal ‘kelas3’, ‘em@il’, dan lain sebagainya yang juga diapit oleh tanda petik tunggal.
Satu tipedata lagi yang umum digunakan yaitu tipedata logika boolean yang hanya memiliki nilai
benar true dan nilai salah false. Prinsip tipedata ini digunakan untuk mengoperasikan nilai-nilai pada
operasi-operasi logika. Lebih lanjut kita akan bahas setelah mengkaji materi tentang operator logika.
Pada prinsipnya baik tipedata bilangan bulat dan pecahan, tipedata char, string dan boolean sama
penulisan dan pendeklarasiannya didalam program. Akan lebih mudah jika mengamati baik-baik struktur
penulisan variabel-tipedata yang telah disajikan pada pembahana tentang variabel.

2.2.4 Operator Pascal

Dalam matematika dan kadang-kadang dalam pemrograman komputer, operator adalah


karakter yang mewakili suatu tindakan, seperti misalnya x (kali) adalah operator aritmatika yang
mewakili perkalian. Dalam pemrograman komputer, salah satu set operator yang paling dikenal adalah
operator boolean yang digunakan untuk bekerja dengan nilai benar / salah. Didalam pascal terdapat
beberapa jenis operator, yakni perator arimatika, opertor relasional, operator logika, operator
penugasan dan lain sebagainya.

a) Operator Arimatika

Created by Armansyah, M.Kom Page 17


Merupakan operator yang digunakan untuk melakukan operasi matematis. Operator ini dapat
digunakan untuk mengoperasikan variabel dengan tipedata bilangan bulat dan pecahan. Namun
diantara operator yang tersedia, tidak semua dapat digunakan diantara keduanya. Perhatikan
penjelasan pada tabel berikut :

Tabel 2.5 Operator Aritmatika

Simbol Operasi Digunakan pada tipedata Contoh


+ Penjumlahan Bulat dan Pecahan 3+2=5
- Pengurangan Bulat dan Pecahan 3-2 =1
* Perkalian Bulat dan Pecahan 3*2 =6
/ Pembagian Pecahan saja 3 / 2 = 1.5
Div Pembagian Bulat saja 3 div 2 = 1
Mod Sisa bagi Bulat saja 3 mod 2 = 1
10 mod 5 = 0

b) Operator Relasional
Operator Relasional merupakan operator yang digunakan untuk membandingkan nilai dua variabel.
Operator ini umumnya digunakan pada struktur percabangan untuk menentukan pilihan mana yang
akan dieksekusi. Secara umum operator relasional dapat dilihat pada tabel dibawah ini :

Tabel 2.6 Operator Relasional

Operator Deskripsi Contoh Hasil Operasi


= Sama dengan (A =B) boolean
<> Tidak sama dengan (A<> B) boolean
> Lebih besar dari (A> B) boolean
< Lebih keci dari (A <B) boolean
>= Lebih besar dari atau sama dengan (A>= B) boolean
<= Lebih kecil dari atau sama dengan (A <= B) boolean

c) Operator Logika

Operator logika merupakan operator yang memiliki hasil keluaran bernilai benar (true) atau salah
(false). Umpama variabel A bernilai true dan B bernilai false, maka perhatikanlah penjelasan dari
penggunaan operator logika berikut terhadap variabel A dan B pada tabel berikut ini :

Created by Armansyah, M.Kom Page 18


Tabel 2.7 Operator Logika

Operator Deskripsi Contoh


and Bernilai benar jika kedua operan bernilai (A and B) Salah
benar
or Bernilai benar jika satu operan bernilai (A or B) Benar
benar
not Bernilai benar jika operan salah, dan (A not B) Benar
sebaliknya

d) Operator Bitwise
Operator jenis ini mirip dengan operator logika, hanya saja penggunaan ini lebih spesifik untuk
menangani data dengan nilai bilangan biner 1 dan 0. Adapun operator jenis ini diantaranya, and, or, xor,
not, left shift, dan right shift. Untuk lebih jelasnya perhatikan contoh penggunaanya misal A dan B
adalah bilangan biner, maka operator ini akan bekerja seperti tabel dibawah ini :

Tabel 2.8 Contoh Operasi Bitwise

A B A&B A|B A^B ~A ~B


0 0 0 0 0 1 1
0 1 0 1 1 1 0
1 1 1 1 0 0 0
1 0 0 1 1 0 1

Implementasi operator bitwise yang ditunjukkan pada tabel diatas mengacu pada penjelasan
tabel operatoberikut :

Tabel 2.9 Operator Bitwise Pascal

Operator Deskripsi
and Bernilai 1 jika kedua operan bernilai 1
or Bernilai 1 jika satu saja operan bernilai 1
xor Bernilai 1 jika kedua operan berbeda, dan sebaliknya akan
bernilai o jika kedua operan bernilai sama
not Bernilai 1 jika 0, dan sebaliknya bernilai 0 jika 1
shl Nilai operan kiri dipindahkan ke kiri oleh jumlah bit yang
ditentukan oleh operan kanan.
shr Nilai operan kiri dipindahkan ke kanan dengan jumlah bit

Created by Armansyah, M.Kom Page 19


yang ditentukan oleh operan kanan.
<< Nilai operan kiri dipindahkan ke kiri oleh jumlah bit yang
ditentukan oleh operan kanan.
>> Nilai operan kiri dipindahkan ke kanan dengan jumlah bit
yang ditentukan oleh operan kanan.

e) Operator Penugasan
Operator ini digunakan untuk menugaskan operator memberikan nilai kepada suatu variabel.
Operator penugasan pada pascal adalah := (yang diambil dari simbol titikdua dan samadengan). Untuk
menerapkan operator ini menggunakan format variabel := ekspresi; Ekspresi merupakan nilai yang
diberikan kepada variabel. Misal bilangan : = 45; artinya operator := memberikan nilai 45 kepada
variabel bilangan.

2.5 Prioritas Operator


Prioritas operator merupakan prioritas yang berikan operator mana yang harus dijalankan oleh
komputer. Prioritas operator ini memengaruhi suatu nilai variabel dievalusikan mengingat setiap
operator memiliki prioritas yang lebih tinggi daripada operator lainnya. Seperti operator perkalian yang
memiliki prioritas yang lebih tinggi daripada operator penjumlahan (penambahan). Misal variabel x di
operasikan dengan formulasi x = 7 + 3 * 2. Operasi ini akan menghasilan nilai x = 13, bukan 20. Karena
operator perkalian lebih tinggi daripada penjumlahan maka komputer akan menghitung x = 3 * 2
terlebih dahulu kemudia hasilnya akan ditambahkan dengan 7 sehingga hasilnya sama 13.

2.2.6 Fungsi Matematika


Ada kalanya kita akan menemukan suatu formulasi yang panjang, formulasi itu mungkin dapat
diterapkan dengan menggunakan fungsi matematika. Diantara beberapa fungsi matematika yang
disedikan oleh pascal adalah fungsi konversi seperti round dan trunc, fungsi trigonometri: arctan, cos,
sin, dan fungsi variasi seperti abs, exp, ln, sqr, sqrt, dan banyak lagi fungsi-fungsi tersedia tinggal
mengeksplorasinya saja dengan menggunakan format penulisan :

fungsimatematika(ekspresi);

Contoh sqr(5);

Created by Armansyah, M.Kom Page 20


Ini akan menghasilkan nilai 25. Karena fungsi sqr berarti kuadrat dari 5. Misal ekspresi
ditentukan dalam bentuk variabel bertipedata integer (bulat) ataupun real (pecahan), maka variabel
tersebut jika diterapkan dalam fungsi sqr, jika variabelnya adalah x = 5, maka cukup ditulis dengan
sqr(x).

2.2.7 Kegiatan Praktikum


Setelah mempelajari teoritis tentang variabel, tipedata dan operator, maka kini akan kita coba
untuk menerapkannya dalam program pascal. Silahkan ikuti langkah-langkah praktikumnya dengan
memperhatikan sintaksisnya.

1) Latihan Pertama
(a) Studi Kasus
Buatlah program untuk menampilkan nilai ekponen, misal variabel a dan b diberi nilai masing-
masing 2 dan 10, maka berapakah hasilnya jika a dipangkatkan dengan b ?
(b) Penyelesaian Program
1) Jalankan program FreePascal
2) Bukalah program baru, klik File - New
3) Simpan file, klik File - Save As .. ketik nama file latihan11.pas, lalu OK (enter)
4) Ketik kode program berikut sampai selesai, lalu simpan kembali dengan File - Save atau
tekan F2

5) Kompilasi program untuk melihat apakah program sudah benar, klik menu Compile -
Compile (Alt + F9)

Created by Armansyah, M.Kom Page 21


6) Jalankan program jika sukses, klik menu Run - Run (Ctrl + F9), jika berhasil maka program
akan menampilkan hasil seperti berikut :

2) Latihan Kedua
(a) Studi Kasus
Buatlah program untuk menampilkan nama kamu dengan menggunakan metode input.
(b) Penyelesaian Program
1) Buka file baru, klik File - New
2) Simpan program, klik File - Save As.. lalu ketik file dengan nama latihan12.pas
3) Ketik program berikut hingga selesai

4) Simpan program, klik File - Save (F2)


5) Kompilasi program, klik Compile - Compile (Alt + F9)
6) Jalankan program, Run - Run, jika berhasil akan menampilkan program seperti berikut

Created by Armansyah, M.Kom Page 22


3) Latihan Ketiga
(a) Studi Kasus
Buatlah program untuk membandingkan nilai dari dua variabel bilangan bulat. Misal A dan B
adalah bilangan bulat yang diinput, maka tapilkan kesimpulan program !
(b) Penyelesaian Program
1) Buka file baru, klik File - New
2) Simpan program, klik File - Save As.. lalu ketik file dengan nama latihan13.pas
3) Ketik program berikut hingga selesai

4) Simpan program, klik File - Save (F2)


5) Kompilasi program, klik Compile - Compile (Alt + F9)
6) Jalankan program, klik Run - Run, jika berhasil akan menampilkan program seperti berikut

4) Latihan Keempat
(a) Studi Kasus
Buatlah program untuk mengkonversi suhu derajat celsius ke derajat fahreinheit. Jika misal
suhu berada pada derajat 28 OC maka berapakah derajat fahreinheitnya ?

Created by Armansyah, M.Kom Page 23


(b) Penyelesaian Program
1) Buka file baru, klik File - New
2) Simpan program, klik File - Save As.. lalu ketik file dengan nama latihan14.pas
3) Ketik program berikut hingga selesai

4) Simpan program, klik File - Save (F2)


5) Kompilasi program, klik Compile - Compile (Alt + F9)
6) Jalankan program, klik Run - Run, jika berhasil akan menampilkan program seperti berikut

5) Latihan Kelima
(a) Studi Kasus
Buatlah program untuk mengkonversi suhu derajat celsius ke derajat fahreinheit. Jika misal
suhu berada pada derajat 28 OC maka berapakah derajat fahreinheitnya ?
(b) Penyelesaian Program
1) Buka file baru, klik File - New
2) Simpan program, klik File - Save As.. lalu ketik file dengan nama latihan15.pas

Created by Armansyah, M.Kom Page 24


3) Ketik program berikut hingga selesai

4) Simpan program, klik File - Save (F2)


5) Kompilasi program, klik Compile - Compile (Alt + F9)
6) Jalankan program, klik Run - Run, jika berhasil akan menampilkan program seperti berikut

Created by Armansyah, M.Kom Page 25


MODUL 3
STRUKTUR KEPUTUSAN

3.1 TUJUAN PRAKTIKUM


Setelah mengikuti praktikum pada modul 3 ini, mahasiswa diharapkan mampu dalam beberapa
kompetensi pokok diantaranya :
1. Mampu menjelaskan konsep dasar struktur keputusan
2. Mampu mengidentifikasi penggunaan struktur keputusan pada suatu permasalahan program
berdasarkan kasus ketersediaan datanya
3. Mampu menggunakan struktur keputusan dengan Struktur If
4. Mampu menggunakan struktur keputusan dengan Struktur Case..Of

3.2 TEORI SINGKAT


Struktur keputusan, atau yang umum disebut dengan seleksi atau pemilihan, atau ada juga yang
menyebut dengan istilah percabangan, merupakan struktur dimana penyeleksian satu ekspresi atau
perintah (statement) berdasarkan kondisi tertentu. Artinya suatu ekspresi hanya akan dijalankan jika
memenuhi syarat pada pengujian kondisi. Secara umum struktur ini dibagi dalam dua model, If
Statement dan switch statement. Struktur keputusan secara umum mengikuti prinsip kerja yang
digambarkan seperti gambar berikut :

Created by Armansyah, M.Kom Page 26


Flowchart tersebut memiliki arti, jika kondisi nilai variabel memenuhi pengujian, maka proses dijalankan,
tetapi sebaliknya jika tidak benar maka statemen proses diabaikan dan pengujian berhenti atau melaju
ke proses lainnya.

3.2.1 IF - then Statement


Merupakan struktur pilihan yang terdiri dari ekspresi boolean yang diikuti oleh satu atau lebih
statement. Ekspresi boolean selalu bernilai benar atau salah sebagai syarat terpilihnya suatu keputusan
yang akan diambil. Statement yang dipilih harus memenuhi persyaratan yang ditentukan berdasarkan
kebutuhan. Sruktur keputusan untuk model ini menggunakan struktur dasar sebagai berikut :

If kondisi then
statement;

Struktur dasar keputusan diatas dapat diartikan dengan melihat bagan alur berikut ini :

Dimana jika nilai suatu variabel memenuhi syarat pada kondisi maka statement akan dikerjakan
dan jika tidak memenuhi syarat, maka statement akan diabaikan. Dengan kata lain, struktur If - then
Statement merupakan struktur dengan opsi tunggal. Sehingga jika kondisi variabel tidak terpenuhi pada
nilai benar, maka statement diabaikan.

3.2.2 If-then-else statement


Jika dilihat dari struktur dasarnya, struktur keputusan If-then-else statement ini merupakan
struktur dengan dua pilihan yang menanti untuk dijalankan. Statement akan dijalankan berdasarkan
kondisinya. Perhatikan struktur dasar keputusan If-then-else statement berikut ini :

Created by Armansyah, M.Kom Page 27


If kondisi then
statement_1
else
Statement_n;

Statement_1 dijalankan hanya jika kondisi pada kondisi bernilai benar, sebaliknya statemen
tidak akan dijalankan jika kondisi pada kondisi bernilai salah. Struktur dasar If-then-else statement
diatas, dapat diamati melalui bagan alur berikut :

3.2.3 The ELSE-IF Ladders


Struktur keputusan ini merupakan pengembangan dari struktur If-then-else statement. Dalam
beberapa referensi struktur ini disebut juga dengan nama if mejemuk. Dimana ada banyak opsi dengan
syarat kondisi yang berbeda. Setiap opsi statement yang akan dijalankan bergantung kepada syarat
kondisinya masing-masing. Untuk lebih mudah memahaminya, perhatikan bagan alur berikut :

Mengacu kepada bagan alir diatas, struktur keputusan Else if ladder dapat dituliskan seperti
pada struktur dasar berikut :

Created by Armansyah, M.Kom Page 28


IF kondisi-1 THEN
statement-1
ELSE IF kondisi-2 THEN
statement-2
ELSE IF kondisi-3 THEN
statement-3
...
ELSE
statement-n;

Struktur keputusan else if ladder diatas, dapat diartikan seperti berikut :


1. Jika kondisi-1 bernilai benar, maka statement1 yang akan dikerjakan, tetapi jika tidak memenuhi
syarat kebenaran, statemen dibawah kondisi_1 diabaikan, dan pengujian akan menuju ke else if
kondisi-2
2. Jika kondisi-2 bernilai benar, maka statement2 yang akan dijalankan, tetapi jika kondisi-2
bernilai salah, maka statemen_2 diabaikan dan pengujian akan ke kondisi-3.
3. Jika kondisi-3 bernilai benar, maka statement3 yang akan dijalankan, tetapi jika kondisi-3
bernilai salah statemen_3 diabaikan, maka statemen4 yang akan dikerjakan dan pengujian akan
berhenti.

3.2.4 Nested If
Ada kalanya struktur keputusan mengandung struktur keputusan lain didalamnya. Kasus seperti
ini disebut dengan nested if. Dimana ada struktur if dalam struktur if. Ini disebut juga dengan struktur if
bersarang, dimana struktur if di dalamnya merupakan anak dari struktur if yang berada pada posisi
paling luar. Struktur dasar struktur if bersarang dapat melihat struktur keputusan berikut :

IF condition-1 THEN
IF condition-2 THEN
...
IF condition–n THEN
statement–n1
ELSE
statement–n2;
...
ELSE
statement–2
ELSE
statement–1;

Created by Armansyah, M.Kom Page 29


3.2.5 Case..Of
Struktur ini merupakan struktur keputusan dengan banyak opsi, dimana keputusan untuk
menjalankan ekspresi perintah didasarkan pada syarat pada kondisi tertentu. Struktur ini hampir sama
dengan struktur Else If Ladder. Hanya saja else if ladder memiliki batasan opsi yang dapat ditangani.
Struktur dasar penulisan dengan Case..of mengacu pada bagan alur else if ladder diatas. Sehingga,
sturktur penulisannya dapat melihat struktur berikut :

CASE variabel OF
nilai-1: Statemen-1;
nilai-2: Statemen-2;
nilai-3: Statemen-3;
...
END;

Mekanisme kerja struktur diatas dapat dilihat pada uraian berikut :


1. Jika case nilai_1 bernilai benar, maka statemen_1 yang akan dikerjakan, tetapi jika tidak sesuai
syarat maka statemen_1 diabaikan dan pengujian akan menuju ke case nilai_2.
2. Jika case nilai_2 bernilai benar, maka statemen_2 yang akan dijalankan, tetapi jika case nilai_2
tidak sesuai, maka statement_2 diabaikan dan pengujian akan ke case nilai_3.
3. Jika case nilai_3 bernilai benar, maka statement pada statemen_3 yang akan dijalankan, tetapi
jika kondisi nilai_3 salah, maka statemen_3 diabaik, dan statemen_n yang akan di ambil, dan
begitu seterusnya.

Struktur Case..of diatas dapat juga ditulis dengan menggunakan struktur program seperti berikut :

Created by Armansyah, M.Kom Page 30


CASE variabel OF
nilai-1: Statemen-1;
nilai-2: Statemen-2;
nilai-3: Statemen-3;
else
statemen-n;
END;

3.2.6 Operator
Ada kalanya struktur pemilihan membutuhkan beberapa operator yang diantaranya untuk
membantu keakuratan hasil eksekusi. Ini biasa terjadi pada kasus-kasus yang melibatkan operasi
perbandingan. Misal suatu nilai variabel memiliki interval dari 50 hingga 100, tentu jika hanya
menggunakan operator >=50, ini bisa bernilai benar jika yang dihasilkan tidak lebih besar dari 100. Pola
yang demikian akan menghitung nilai diatas 100, artinya nilai 101 akan diperhitungkan bahkan lebih dari
itu. Disinilah dibutuhkan operator lain yang bertugas membatasi rentang nilai.
Ada beberapa operator yang umum digunakan dalam struktur pemilihan, seringkali operator-
operator ini digunakan sekaligus secara bersamaan. Adapun operator yang sering digunakan dalam
struktur ini adalah :

1) Operator Relational
Operator ini berfungsi untuk menentukan nilai perbandingan antara dua nilai dari variabel yang
sama. Adapun operator ini diuraikan pada tabel berikut :

Tabel 3.1 Implementasi Operator Relasi

Operator Deskripsi Contoh Hasil Operasi


= Sama dengan (A ==B) boolean
<> Tidak sama dengan (A != B) boolean
> Lebih besar dari (A> B) boolean
< Lebih keci dari (A <B) boolean
>= Lebih besar dari atau sama dengan (A>= B) boolean
<= Lebih kecil dari atau sama dengan (A <= B) boolean

Created by Armansyah, M.Kom Page 31


2) Operator Logika
Dalam implementasinya pada struktur keputusan, operator logika digunakan untuk membantu
keakuratan hasil keputusan program. Operator ini berlaku untuk data bertipe bilangan maupun
bertipe teks. Adapun operator logika yang umum digunakan pada struktur keputusan, diuraikan
pada tabel berikut ini :

Tabel 3.2 Implementasi Operator Logika


Operator Deskripsi Contoh
And Bernilai benar jika kedua operan bernilai benar (A and B), Salah
Or Bernilai benar jika satu operan bernilai benar (A or B), Benar
Not Bernilai benar jika operan salah, dan sebaliknya not (A and B), Benar

3.3 KEGIATAN PRAKTIKUM


Setelah membaca teori singkat tentang berbagai struktur keputusan diatas, mari kita terapkan
dalam latihan-latihan berikut ini :

1) Latihan 3.1
Misal diketahui n adalah bilangan bulat 10, tampilkanlah statemen ‘n adalah 10’ jika n=10. Untuk
menjawab permasalahan tersebut ke dalam program pascal, lakukan tahap-tahap berikut :
a) Buka program FreePascal, simpan file dengan nama latihan31.pas
b) Selanjutnya tulis kode program berikut

1. PROGRAM SatuPilihan;
2. USES CRT;
3. VAR
4. n : byte;
5.
6. BEGIN
7. CLRSCR;
8. n:=10;
9. IF n=10 THEN
10. WRITE(' n adalah 10');
11. READKEY;
12. END.

c) Simpan perubahan program, selanjutnya kompilasilah program, klik Compile - Compile (Alt + F9)

Created by Armansyah, M.Kom Page 32


d) Jika berhasil lanjutkan dengan menjalankannya, klik Run - Run (Ctrl+F9), hasil program akan
terlihat seperti pada keluaran program berikut :

2) Latihan 3.2
Diketahui n dan m adalah bilangan pecahan, inputlah n dan m, dan k adalah n dikali m, jika k lebih
besar dari 99, maka k adalah bilangan ratuan, dan jika k < 100, berarti k adalah bilangan satuan.
Untuk menyelesaikan permasalahan program diatas, ikuti langkah-langkah program berikut :

a) Buat program baru dan beri nama file latihan32.pas


b) Tulis kode program berikut

1. PROGRAM duaSeleksi;
2. USES CRT;
3. VAR
4. n, m, k : real;
5.
6. BEGIN
7. CLRSCR;
8. WRITELN(' Input n dan m < 10');
9. WRITELN(' ------------------');
10. WRITE(' Masukkan n : '); READLN(n);
11. WRITE(' Masukkan m : '); READLN(m);
12. k:=n * m;
13. IF k<99 THEN
14. WRITELN(' k adalah bilangan Puluhan')
15. ELSE
16. WRITELN(' k adalah bilangan Ratusan');
17.
18. WRITELN(' Karena k adalah ..', k:0:2);
19.
20. READKEY;
21. END.

c) Kompilasilah program, klik Compile - Compile (Alt + F9)


d) Jika berhasil jalankan program, klik Run - Run (Ctrl + F9), jika berhasil keluaran program akan
seperti pada keluaran program berikut

Created by Armansyah, M.Kom Page 33


3) Latihan 3.3
Diketahui n dan m adalah bilangan pecahan, inputlah n dan m, dan k adalah n dikali m, jika k <=9,
maka k adalah bilangan Satuan, dan jika k<99 maka k adalah Puluhan, jika k <=999 maka k adalah
Ratusan, dan jika k<=9999 maka k adalah Ribuah, sementara untuk hasil k >=10000, maka k bilangan
tidak terdefenisi. Untuk menyelesaikan permasalahan program diatas, ikuti langkah-langkah program
berikut :
a) Buka program baru dan simpan dengan nama latihan32.pas
b) Tulis kode program berikut

1. PROGRAM BanyakPilihan;
2. USES CRT;
3. VAR
4. n, m, k : real;
5.
6. BEGIN
7. CLRSCR;
8. WRITELN(' Input n dan m ... ');
9. WRITELN(' -----------------');
10. WRITE(' Masukkan n : '); READLN(n);
11. WRITE(' Masukkan m : '); READLN(m);
12. k:=n * m;
13. IF k<=9 THEN
14. WRITELN(' k adalah bilangan Satuan')
15. ELSE IF k<=99 THEN
16. WRITELN(' k adalah bilangan Puluhan')
17. ELSE IF k<=999 THEN
18. WRITELN(' k adalah bilangan Ratusan')
19. ELSE IF k<=9999 THEN
20. WRITELN(' k adalah bilangan Ribuan')
21. ELSE
22. WRITELN(' Maaf, nilai tidak terdefenisikan program');
23.
24. WRITELN(' Karena k adalah ..', k:0:2);
25.
26. READKEY;
27. END.

Created by Armansyah, M.Kom Page 34


c) Simpanlah perubahan program (F2)
d) Lalu kompilasi dan jalankan program, jika berhasil maka keluaran program akan seperti berikut

4) Latihan 3.4
Buatlah program untuk menentukan nilai dengan ketentuan yang tercantum pada tabel :

Nilai Bobot Keterangan


80 - 100 A Sangat Memuaskan
70 - 79 B Memuaskan
60 - 69 C Cukup Memuaskan
50 - 59 D Kurang Memuaskan
0 - 49 E Tidak baik

Untuk menyelesaikan permasalahan program diatas, ikuti langkah-langkah berikut :


a) Buka program baru dan simpan dengan nama latihan34.pas
b) Lalu tilis kembali program berikut
1. PROGRAM BanyakPilihanIf;
2. USES CRT;
3. VAR
4. nilai_tugas, nilai_uts,
5. nilai_uas, nilai_rerata : REAL;
6. bobot : CHAR;
7. keterangan: STRING;
8.
9. BEGIN
10. CLRSCR;
11. WRITE(' Input nilai Tugas : '); READLN(nilai_tugas);
12. WRITE(' Input nilai Uts : '); READLN(nilai_uts);
13. WRITE(' Input nilai Uas : '); READLN(nilai_uas);
14. nilai_rerata :=(nilai_tugas+nilai_uts+nilai_uas)/3;
15. IF (nilai_rerata>=80.00) and (nilai_rerata<=100.00) THEN
16. BEGIN
17. bobot:='A';
18. keterangan:='Sangat Memuaskan';
19. END
20. ELSE IF (nilai_rerata>=70.00) and (nilai_rerata<=79.99) THEN

Created by Armansyah, M.Kom Page 35


21. BEGIN
22. bobot:='B';
23. keterangan:='Memuaskan';
24. END
25. ELSE IF (nilai_rerata>=60.00) and (nilai_rerata<=69.99) THEN
26. BEGIN
27. bobot:='C';
28. keterangan:='Cukup Memuaskan';
29. END
30. ELSE IF (nilai_rerata>=50.00) and (nilai_rerata<=59.99) THEN
31. BEGIN
32. bobot:='D';
33. keterangan:='Kurang Memuaskan';
34. END
35. ELSE IF (nilai_rerata>=0.00) and (nilai_rerata<=49.99) THEN
36. BEGIN
37. bobot:='E';
38. keterangan:='Tidak Baik';
39. END
40. ELSE
41. BEGIN
42. WRITELN(' Maaf, nilai tidak valid');
43. END;
44.
45. WRITELN(' Nilai Rerata : ',nilai_rerata:0:2);
46. WRITELN(' Bobot : ',bobot);
47. WRITELN(' Keterangan : ',keterangan);
48. READKEY;
49. END.

5) Latihan 3.5
Buatlah program kalkulator dengan menggunakan Case..Of, dengan ketentuan :
- Jika di tekan simbol +, operasi penjumlahan,
- Jika - pengurangan,
- Jika * perkalian,
- Jika / pembagian pecahan,
Untuk menyelesaikan permasalahan diatas ikuti langkah program berikut ini :
1) Buat program baru, simpan dengan nama latihan35.pas
2) Ketik program berikut hingga selesai

1. PROGRAM BanyakPilihan;
2. USES CRT;
3. VAR
4. bilangan1 : REAL;
5. bilangan2 : REAL;

Created by Armansyah, M.Kom Page 36


6. hasil : REAL;
7. operatr : CHAR;
8. BEGIN
9. CLRSCR;
10. WRITE('Masukkan operator [+, -, *, /] : ');
11. READLN(operatr);
12. WRITE(' Masukkan 2 bilangan : ');
13. READLN(bilangan1,bilangan2);
14.
15. CASE operatr OF
16. '+' :
17. BEGIN
18. hasil:=bilangan1 + bilangan2;
19. WRITELN( bilangan1:0:2,' + ', bilangan2:0:2,' = ', hasil:0:2);
20. END;
21. '-' :
22. BEGIN
23. hasil:=bilangan1 - bilangan2;
24. WRITELN( bilangan1:0:2, ' - ', bilangan2:0:2, ' = ', hasil:0:2);
25. END;
26. '*' :
27. BEGIN
28. hasil:=bilangan1 * bilangan2;
29. WRITELN( bilangan1:0:2, ' * ', bilangan2:0:2, ' = ', hasil:0:2);
30. END;
31. '/' :
32. BEGIN
33. hasil:=bilangan1 / bilangan2;
34. WRITELN( bilangan1:0:2, ' / ', bilangan2:0:2, ' = ', hasil:0:2);
35. END;
36. ELSE
37. WRITELN(' Maaf, Kode yang ditekan salah.');
38. END;
39. READKEY;
40. END.

3) Simpan perubahan program (F2)


4) Kompilasi program untuk melihat kebenaran sintaksisnya, Compile - Compile (Alt + F9)
5) Jalankan program, Run - Run (Ctrl + F9)

Created by Armansyah, M.Kom Page 37


MODUL 4
PERULANGAN

4.1 TUJUAN PRAKTIKUM


Setelah mengikuti praktikum pada modul ini, mahasiswa diharapkan mampu dalam beberapa
kompetensi pokok diantaranya :
1. Mampu menjelaskan konsep dasar perulangan dan model-modelnya dalam bahasa Pascal
2. Mampumengidentifikasi penggunakan perulangan dalam studi kasus pemrograman
3. Mampu menggunakan perulangan model for, while, dan do..while dalam permasalah program
dengan bahasa Pascal
4.2 TEORI SINGKAT
Dalam pemrograman perulangan selalu dijumpai terutama pada aplikasi-aplikasi game. Perulangan
merupakan struktur algoritma dimana program dalam melakukan iterasi terhadap suatu ekspresi /
statemennya mengacu pada kondisi tertentu. Dalam implementasinya perulangan menerapkan prinsip
struktur keputusan, dimana perulangan hanya akan dilakukan jika memenuhi syarat yang ditentukan.
Perulangan dalam bahasa Pascal dibagi dalam beberapa model yaitu perulangan for, while dan
repeat..until.

A. Perulangan FOR
Perulangan model ini merupakan perulangan dengan jumlah iterasi yang sudah tetap berapa kali
iterasi akan dilakukan. Struktur dasar perulanga For mengacu pada struktur berikut :

Ascending
FOR variabel : nilaiawal TO nilaiakhir DO
statement;

Descending
FOR variabel : nilaiawal DOWNTO nilaiakhir DO
statement;

Created by Armansyah, M.Kom Page 38


Perulangan FOR Ascending merupakan perulangan meningkat dari kecil ke nilai tinggi, sehingga
nilai awal dimulai dari terkecil menuju ke nilai terbesar. Sebaliknya untuk perulangan For Descending,
perulangan menurun dengan awal dimulai dari terbesar menuju ke nilai terkecil, sehingga untuk For
Descending digunakan kata kunci downto (menurun ke..).

B. Perulangan While
Perulangan while merupakan struktur algoritma dimana perulangan akan terus dijalankan
selaman kondisi bernilai benar. Perulangan yang dimaksud disini bisa saja berupa perulangan terhadap
proses menghitung, mencetak (menampilkan) atau justeru melakukan iterasi lain didalam perulangan
tersebut. Kondisi nilai benar dan salah adalah kondisi yang menjadi syarat bagi variabel yang menjadi
kontrol keputusan. Struktur perulangan while mengacu pada struktur berikut ini :

WHILE kondisi DO
Statemen;

C. Repeat..Until
Perulangan ini merupakan perulangan yang hampir sama dengan perulangan while. Akan tetapi,
pada perulanga repeat...until ini ekspresi akan dilakukan minimal satu kali. Jika kondisi benar maka
ekspresi selanjutnya akan dilakukan, kemudian melakukan pengujian untuk membuat keputusan apakah
perulangan dilakukan kembali atau tidak. Untuk menggunakan perulangan ini mengikuti struktur dasar
sebagai berikut :

repeat
statemen-1;
...
...
Until kondisi;

Created by Armansyah, M.Kom Page 39


D. Perulangan Nested
Selain ketiga model perulangan diatas perulangan bersarang atau yang disebut dengan nested
looping juga sering digunakan dalam pemrograman. Perulangan bersarang dapat terjadi pada for, while
maupun repeat..until. Misal perulangan ini diterapkan pada perulangan for, maka bentuk umum yang
dapat digunakan adalah seperti struktur berikut ini :

for variable1:=nilaiawal to [downto] nilaiakhir do


begin
for variable2:=nilaiawal to [downto] nilaiakhir do
begin
statement(s);
end;
end;

4.3 KEGIATAN PRAKTIKUM


Selanjutnya mari kita terapkan struktur perulangan berikut, semakin sering latihan ini diterapkan
maka semakin baik. Ikutilah langkah-langkah praktikum ini dengan baik agar program yang ditulis tidak
menemukan banyak kendala (kesalahan kompilasi).

I. Latihan 4.1
Buatlah program perulangan untuk mencetak bilangan bulat 1 sampai 10 dengan menggunakan
perulangan for
1) Jalankan FreePascal dan simpan program dengan nama latih41.pas
2) Tulis program berikut sampai selesai

1. PROGRAM ULANGAN;
2. USES CRT;
3. VAR
4. n : INTEGER;
5.
6. BEGIN
7. CLRSCR;
8. WRITE('Masukkan n = 1 : '); READLN(n);
9. FOR n:=1 TO 10 DO

Created by Armansyah, M.Kom Page 40


10. WRITE(n, ' ');
11.READKEY;
12.END.

3) Simpan perubahan program, Klik File - Save (F2)


4) Kompilasi program, Klik Compile - Compile (Alt + F9)
5) Jalankan program, Klik Run - Run (Ctrl + F9), jika berhasil maka keluaran program akan seperti
gambar berikut ini

II. Latihan 4.2


Permasalahan program yang diterapkan pada latihan 4.1 dapat juga kita terapkan dengan cara yang
berbeda menggunakan perulangan while dan repeat..until. Untuk mengujinya, ikuti langkah-
langkah program berikut :
1) Buka program baru, klik File - New
2) Simpan dahulu untuk menghindari kegagalan program, klik File - Save As .. dan ganti dengan
nama latihan42.pas
3) Tulis program berikut, dan perhatikan sintaks dengan baik

1. PROGRAM ULANGAN;
2. USES CRT;
3. VAR
4. n : INTEGER;
5.
6. BEGIN
7. CLRSCR;
8. WRITE('Masukkan n = 1 : '); READLN(n);
9. REPEAT
10. BEGIN
11. WRITE(n, ' ');
12. n:=n+1;
13. END;
14. UNTIL n=11;
15. READKEY;
16. END.

Created by Armansyah, M.Kom Page 41


4) Simpan perubahan program, Klik File - Save (F2)
5) Kompilasi dan jalankan program, jika berhasil keluaran akan seperti pada gambar berikut

III. Latihan 4.3


Sementara untuk model perulangan while..do permasalah program diatas bisa ditulis seperti
berikut :
1) Buka program baru, dan simpan dengan nama latih43.pas
2) Tulis program berikut, perhatikan kode program dengan teliti

1. PROGRAM ULANGAN;
2. USES CRT;
3. VAR
4. n : INTEGER;
5.
6. BEGIN
7. CLRSCR;
8. WRITE('Masukkan n = 1 : '); READLN(n);
9. WHILE n<11 DO
10. BEGIN
11. WRITE(n, ' ');
12. n:=n+1;
13. END;
14. READKEY;
15. END.

3) Simpan perubahan program, File - Save (F2)


4) Kompilasi dan jalankan program, jika berhasil maka keluaran akan seperti pada latihan 4.1 dan
4.2

Latihan 4.1, 4.2 dan 4.3 dapat kita kembangkan seperti misalnya pada program berikut :

1. PROGRAM ULANGAN;
2. USES CRT;
3. VAR
4. n : INTEGER;
5.

Created by Armansyah, M.Kom Page 42


6. BEGIN
7. CLRSCR;
8. WRITE('Masukkan n = 1 : '); READLN(n);
9. WHILE n<20 DO
10. BEGIN
11. WRITE(n, ' ');
12. n:=n+2;
13. END;
14. READKEY;
15. END.

Jika program dijalankan maka keluaran program akan seperti pada gambar berikut :

IV. Latihan 4.4


Setelah mencoba latihan 4.1 sampai latihan 4.3 diatas, kita bisa mengembangkannya dengan
contoh yang lebih kompleks lagi, contohnya untuk menghitung bilangan faktorial. Ikutilah langkah-
langkah praktikum berikut :
1) Buka program baru, simpan dengan nama latih44.pas
2) Ketik program berikut, perhatikan sintaks dengan teliti

1. PROGRAM FAKTORIALWHILE;
2. USES CRT;
3. VAR
4. n : INTEGER;
5. faktorial : longint;
6. BEGIN
7. CLRSCR;
8. faktorial := 1;
9. WRITE(' Masukkan n = 1 : '); READLN(n);
10. WHILE n>0 DO
11. BEGIN
12. WRITELN(' Faktorial adalah = ',faktorial);
13. faktorial := faktorial * n;
14. n:=n-1;
15. END;
16. READKEY;

Created by Armansyah, M.Kom Page 43


17. END.

3) Simpan perubahan program, kompilasi dan jalankan program, jika berhasil maka keluaran
program faktorial akan seperti pada gambar berikut :

V. Latihan 4.5
Untuk perulangan bersarang (nested loop), seperti yang dijelaskan diawal, dapat diterapkan
terhadap semua model perulangan. Kali ini akan kita coba menerapkannya dalam program
mencetak bilangan berbentuk segitiga. Lakukan langkah-langkah berikut :
1) Buka program, dan simpan dengan nama latihan45.pas
2) Ketik program berikut dengan teliti

1. PROGRAM NESTEDFOR;
2. USES CRT;
3. VAR
4. a, b: BYTE;
5. BEGIN
6. CLRSCR;
7. FOR a:=1 TO 10 DO
8. BEGIN
9. FOR b:=1 TO a DO
10. BEGIN
11. WRITE(b,' ');
12. END;
13. WRITELN;
14. END;
15. READKEY;
16. END.

3) Simpan perubahan program, klik File - Save (F2)


4) Kompilasi dan jalankan program, jika berhasil akan tampil keluaran seperti gambar berikut

Created by Armansyah, M.Kom Page 44


4.4 TUGAS MANDIRI

Untuk meningkatkan kompetensi pemrograman Pascal, terutama untuk struktur keputusan dan
perulangan, kerjakanlah permasalahan berikut dengan baik.
1) Diketahui suatu bilangan pecahan lebih besar dari 0.0, buatlah program penjumlahan dengan
perulangan untuk menghitung bilangan tersebut, jika hasil penjumlahan bernilai awal 0, maka
berapakah hasilnya jika diinputkan bilangan 5. Eksekusi program mengacu pada narasi program
berikut :
a. Input bilangan
b. Hitung hasil
c. Tampil hasil
2) Perbaikilah program berikut, hasil program adalah suatu pilihan untuk melakukan perhitungan
dengan beberapa operasi hitung. Lakukan langkah-langkah praktikum dengan baik :

1. PROGRAM KombinasiSistemKontrol
2. USER CRT
3. VAR
4. pilihan = REAL;
5. a, b, c = INTEGER;
6.
7. BEGIN
8. CLRSCR;
9. pilihan:= 0;
10. WHILE pilihan != 4 DO
11. BEGIN
12. WRITELN(' 1. Tekan 1 untuk penjumlahan';
13. WRITELN(' 2. Tekan 2 untuk pengurangan');
14. WRITELN(' 3. Tekan 3 untuk perkalian');
15. WRITE(' Masukkan pilihan kamu: ');
16. READLN(a);

Created by Armansyah, M.Kom Page 45


17. CASE pilihan OF
18. 1:
19. BEGIN
20. WRITE('Masukkan 2 bilangan : ');
21. READLN(a,b);
22. c:=a+b;
23. WRITELN('Hasilnya .. ',c);
24. WRITELN;
25. END;
26. 2: BEGIN
27. WRITE(“Masukkan 2 bilangan: ');
28. READLN(a,b);
29. c:=a-b;
30. WRITELN('Hasilnya .. ',c);
31. WRITELN;
32. END;
33. 3: BEGIN
34. WRITE('Masukkan 2 bilangan: “);
35. READLN(a,b);
36. c:=a x b;
37. WRITELN('Hasilnya .. ',c);
38. WRITELN;
39. END;
40. ELSE
41. WRITELN('Kamu salah menekan kuncinya);
42. WRITELN(' Program dihentikan');
43. END;
44. END;
45. READKEY;
46. END.

Keluaran program akan menunjukkan hasil seperti pada gambar berikut :

Created by Armansyah, M.Kom Page 46


MODUL 5
ARRAY

5.1 TUJUAN PRAKTIKUM


Setelah mengikuti praktikum pada modul ini, mahasiswa diharapkan mampu dalam beberapa
kompetensi pokok diantaranya :
1. Mampu menjelaskan konsep dasar struktur data array
2. Mampu menjelaskan struktur array dalam algoritma maupun program Pascal
3. Mampu menggunakan array multidimensi, minimal array berdimensi dua
4. Mampu mengidentifikasi penggunaan array dalam studi kasus pemrograman untuk
menyelesaikan permasalahan program

5.2 TEORI SINGKAT


Array merupakan sekumpulan elemen data yang memiliki tipedata dan nama variabel yang sama.
Misal, beberapa data yang nilainya Aisyah, Faisal, Abdullah, Hasan,dan Fadhilah, kelima data tersebut
tentunya disimpan didalam variabel. Variabel yang tepat untuk kelima data tersebut adalah data_nama.
Dalam hal ini variabel disebut dengan array. Dimana kelima data tersebut memiliki nama variabel yang
sama. Kelima data tersebut diakses oleh bilangan positif yang selalu diawali dengan nilai terkecil sebagai
elemen pertama. Bilangan positif disini dikenal dengan istilah indeks atau subscript. Perhatikan gambar
:

Elemen

Nama_array Elemen

Dari gambar diatas dapat diamati, kelima data tersebut tersusun secara berdekatan. Karakteristik ini
merupakan identifikasi array. VariabelIndeks array selalu bertipe bilangan bulat (integer), dan pada
pemrograman C indeks pertama diawali dengan nilai 0 (nol). Sehingga jika mengacu struktur array,
gambar tersebut menjelaskan bahwa sebagai berikut :
1. data_nama sebagai array (nama array)
2. Aisyah, Faisal, Abdullah, Hasan, dan Fadhilah adalah elemen data array
3. 0, 1, 2, 3, 4, merupakan indeks array yang berfungsi untuk mengakses setiap elemen.

A. Pendeklarasian Array
Untuk menggunakan Array dalam bahasa C dapat menggunakan struktur sebagai berikut :

Created by Armansyah, M.Kom Page 47


nama_array : array[index_awal..index_akhir] of tipedata;

contoh bilangan : array[0..4] of integer;


huruf : array[0..4] of char;

pendeklarasian array dapat juga langsung menginisialisasikan nilai array tersebut bersamaan
dengan pendeklarasian seperti misalnya :

bilangan : array[0..6] of integer = (2, 19, 100, 0, 19);


huruf : array[0..4] of char = (‘M’,’E’,’D’,’A’,’N’);

Contoh diatas memiliki arti seperti berikut :

bilangan[0]=2;
bilangan[1]=19;
bilangan[2]=100;
bilangan[3]=0;
bilangan[4]=19;

sehingga jika mengacu pada data array diatas, untuk mengakses elemen nilai 100, maka dapat dipanggil
dengan struktur bilangan[2];. Indeks 0, 1, 2, 3, 4 diwakili oleh sebuah variabel bertipe bilangan bulat.
Umpama variabel diberikan dengan nama i, maka untuk mengakses kelima elemen tersebut dipanggil
dengan struktur bilangan [i];

B. Array Dua Dimensi


Array dua dimensi merupakan array multidimensi yang merepresentasikan sebuah matriks atau
tabel. Array multidimensi terdiri dari indeks yang mewakili baris, dan indeks yang mewakili kolom.
Indeks yang sebelah kiri adalah ukuran banyaknya baris dalam array sedangkan indeks sebelah kanan
merupakan ukuran banyaknya kolom dalam array. Sementara untuk array dimensi tiga atau lebih, indeks
selanjutnya adalah indeks yang merepresentasikan kolom dan baris dimensi kebelakang atau yang
lainnya. Array dua dimensi menggunakan struktur berikut :

nama_array : array[index_baris, index_kolom] of tipedata;

untuk array tiga dimensi atau multi dimensi yang lain, dapat menggunakan struktur berikut :

nama_array : array[baris, kolom, kolom_n] of tipedata;

Created by Armansyah, M.Kom Page 48


1.3 KEGIATAN PRAKTIKUM
Setelah membaca teori singkat diatas berikut akan diberikan contoh array untuk memudahkan
dalam memahami penggunaan struktur array sebagai berikut.

Contoh (1)
1. Jalankan program editor Free Pascal
2. Bukan program baru, klik File – New
3. Simpan program, klik menu File – Save As..
4. Tulis program berikut

Contoh program 6.0 Arr1.pas


1. program Arr1;
2.
3. uses crt;
4. var
5. i: integer;
6.
7. ArrBilangan: array[0..3] of integer;
8.
9. begin
10. clrscr();
11. for i:=0 to 3 do
12. begin
13. ArrBilangan[i] := i + 50;
14. end;
15.
16. for i:=0 to 3 do
17. begin
18. writeln('Elemen ke ',i,' = ', ArrBilangan[i]);
19. end;
20.
21. readkey;
22. end.

5. Simpan perubahan program, klik File – Save [F2)


6. Jalankan program, jika tuliskan informasi keluarannya pada kotak berikut

Created by Armansyah, M.Kom Page 49


Contoh (2)
1. Jalankan program editor Free Pascal
2. Bukan program baru, klik File – New
3. Simpan program, klik menu File – Save As..
4. Tulis program berikut

Contoh program 6.1 Arr61.pas


1. program Arr2;
2. uses crt;
3. var
4. i,j : integer;
5.
6. huruf: array[0..2,0..4] of char;
7. begin
8. clrscr;
9. for i:=0 to 2 do
10. begin
11. for j:=0 to 4 do
12. begin
13. write('Huruf ke ',i,' ',j ,' = ');
14. readln(huruf[i,j]);
15. end;
16. end;
17. writeln;
18.
19. for i:=0 to 2 do
20. begin
21. for j:=0 to 4 do
22. begin
23. write(huruf[i,j],' ');
24. end;
25. writeln;
26. end;
27. readkey;
28. end.

5. Simpan perubahan program, klik File – Save [F2)


6. Jalankan program, selanjutnya tulis keluaran program pada kotan dibawah ini

Created by Armansyah, M.Kom Page 50


6.5 LATIHAN
Kerjakanlah latihan-latihan berikut untuk meningkatkan kemampuan pemrograman, terutama
dalam penggunaan struktur array dalam bahasa C. Ikuti langkah-langkah yang diberikan untuk
memudahkan praktikum.

Latihan (1)
1. Buka program baru, File – New
2. Simpan program, File – Save As..dengan nama arr61.pas
3. Tulis program di editor Free Pascal,

Latihan Program 6.1 arr61.pas


1. program Arr61;
2. uses crt;
3.
4. var
5. rerata : integer;
6. jumlah : integer;
7. i : integer;
8.
9. number : array[0..4] of integer;
10. begin
11. jumlah:=0;
12. clrscr;
13. for i:=0 to 5 do
14. begin
15. write('Masukkan bilangan ',i+1,' = ');
16. readln(number[i]);
17. end;
18. writeln;
19. for i:=0 to 5 do
20. begin
21. jumlah := jumlah+number[i];
22. rerata := jumlah div 5;
23. writeln('Rerata dari nilai yang di input adalah : ', rerata);
24. end;
25. readkey;
26. end.

4. Simpan perubahan terlebih dahulu, File – Save (F2)


5. Kompilasi program, Compile – Compile – OK
6. Jalankan program, Run – Run
7. Tulis hasil program pada kotak dibawah, dan tambahkan sedikit kesimpulan

Created by Armansyah, M.Kom Page 51


MODUL 6
RECORD

6.1 Pengertian Record

Jika dikonotasikan dengan sekumpulan data, Record sebenarnya adalah sebuah database (basis
data), dimana elemen-elemen datanya saling terkait. Elemen-elemen ini, jika terkoneksi satu sama lain,
membentuk sekumpulan data yang disebut dengan tabel. Tetapi, defenisi record disini sangat sempit,
sehingga belum bisa dikatakan sebagai sebuah basis data.
Sementara, basis data merupakan sekumpulan tabel-tabel yang saling terkait hingga dengan
keterkaitan tabel-tabel tersebut menghasilkan sebuah informasi. Sebagai ilustrasi berikut ini saya
berikan sebuah contoh.

#Ilustrasi 1
Umpama beberapa elemen data, kita ambil misalnya : budi, Ilmu Komputer, ilkom3, III. Jika
keempat elemen data tersebut disimpan didalam kotak data yang sesuai, misalnya nama, jurusan, kelas,
dan semester, maka jika dirangkai ke dalam tabel, elemen data tersebut bisa berbentuk seperti tabel
berikut :

Nama Jurusan Kelas Sementer


Budi Ilmu Komputer Ilkom3 I
dst..
dst..

Nah, element data : Budi, Ilmu Komputer, Ilkom3, dan I itulah yang disebut dengan record atau
rekaman data. Atau data yang tersimpan di dalam record. Di dalam sebuah basis data terdapat dua
unsur record dan field. Dimana record menginterpretasikan suatu baris, sementara field,
menginterpretasikan suatu kolom. Dan di dalam record elemen-elemen yang berfungsi sebagai
penampung data disebut juga dengan field.
Pada ilustrasi diatas, dapat disimpulkan bahwa field atau kolom-kolom yang terdiri dari nama,
jurusan, kelas dan semeter, yang merekam atau merecord elemen data budi, ilmu komputer, ilkom3,
dan I.
Sehingga, jika keempat elemen data tersebut dikatakan sebagai record atau rekaman data yang
berada di dalam sebuah tabel dengan kolom-kolom yang berbeda, maka dapat di tarik suatu kesimpulan
bahwa record merupakan sekumpulan elemen data yang saling terkait satu sama lain dalam sebuah
tabel dengan tipe data berbeda. Perbedaan tipe data pada tabel diatas dapat digambar seperti pada
informasi field atau kolom sebagai berikut :

Created by Armansyah, M.Kom Page 52


Di dalam record, tipe data untuk masing-masing field tidak harus sama. Tipe data boleh berbeda
bergantung kepada kebutuhan dan kesesuaian datanya. Misal, suatu data bernilai bilangan, tentu tipe
data tidak dapat menggunakan string, char ataupun boolean, tetapi dapat menggunakan tipe bilangan
byte, integer, atau juga real ataupun double bergantung kepada bentuk bilangannya.

6.2 Pendeklarasian Record

Sebelum menggunakan record, record harus dideklarasikan terlebih dahulu di awal program.
Pendeklarasian record dapat dilakukan dengan beberapa model. Berikut ini akan diuraikan model yang
umum digunakan. Yaitu sebagai berikut :

#Pendeklarasian Record Dengan Type

Keterangan :
 Type ; merupakan pernyataan bahwa record dibangun berdasarkan type
 Nama_record; Jika dikonotasikan sebagai tabel, nama_record ini menyatakan suatu nama
dari suatu tabel
 Record ; merupakan struktur record, dimana nama_record merupakan suatu struktur record

Created by Armansyah, M.Kom Page 53


 Field1, hingga fieldn ; merupakan nama field atau kolom yang berada dalam record atau
tabel
 End; merupakan penutup dari struktur record
 Tipedata ; merupakan ukuran atau batasan data yang dapat ditampung oleh suatu field atau
kolom. Dengan kata lain, ukuran merupakan banyak karakter atau digit yang dapat di terima
oleh field
 variabel_record; merupakan variabel yang digunakan untuk menangani field-field (kolom)
yang berada di dalam record untuk melakukan pemanggilan field di dalam (kode) program

#contoh

#Pendeklarasian Record Langsung Sebagai Variabel

#contoh

Created by Armansyah, M.Kom Page 54


Antara model pendeklarasian record menggunakan type maupun langsung pada pendeklarasian
variabel, sama-sama sah. Boleh menggunakan model manapun bergantung kepada perancang program
(programmer)-nya. Tidak ada perbedaan mencolok dari keduanya. Programmer bebas menggunakan
model manapun sesuai kebutuhan dan kemampuan programmer tersebut.

6.3 Pengaksesan Record

Pengaksesan record pada program pascal tidak terlalu sulit. Pada dasarnya pengaksesannya
memiliki aturan atau struktur seperti pada bentuk struktur-struktur lain di dalam bahasa pascal seperti
function, procedure, array dan struktur-struktur lainnya. Sebelum saya sampaikan aturan dasar
pengaksesan record tersebut, ada baiknya saya sampaikan dahulu apa yang dimaksud dengan
pengaksesan tersebut.
Jika dilihat dari pendeklarasian record, terdapat komponen nama_record yang bertugas sebagai
record-nya (perhatikan kembali deklarasi record diatas), dimana didalam record tersebut terdapat
kolom-kolom (field) dengan tipe data yang berbeda. Untuk mengaktifkan field tersebut, maka record
harus mengakses field-field tersebut dengan cara mengaitkannya dengan bantuan operator titik (.).
Adapun pengaksesan kolom-kolom (field) terhadap record mengunakan struktur sebagai berikut :

#simulasi pengaksesan record


Sebelum kita masuk kepada contoh program, berikut ini akan saya sajikan simulasi cara
mengakses field terhadap record. Perhatikan contoh daftar pendeklarasian berikut :

Created by Armansyah, M.Kom Page 55


Dari contoh deklarasi record diatas, telah diketahui bahwa “mahasiswa” merupakan nama dari
suatu record, dengan kolom-kolom (field)-nya antara lain : nama, jurusan, kelas, dan semester. Jika
record mahasiswa mengakses kolom-kolom yang ada, maka jika struktur pengaksesannya adalah
nama_record.nama_field, maka record diatas dapat diimplementasikan dengan bentuk sebagai berikut
:

Setelah melakukan simulasi cara mengakses field didalam record, kali ini mari kita coba terapkan
struktur record ke dalam bahasa pascal. Pada kali ini saya menggunakan contoh deklarasi yang telah
saya uraikan diatas.

#Studikasus
 Buatlah program pendataan mahasiswa (sederhana) menggunakan struktur record
untuk menampilkan data berupa nama, jurusan, kelas dan semester

#penyelesaian dengan bahasa pascal

Created by Armansyah, M.Kom Page 56


Perhatikan kode program yang berada di dalam readln(mahasiswa.nama). Di dalam perintah
tersebut terdapat kode mahasiswa.nama dimana kode tersebut adalah kode perintah untuk mengakses
field nama didalam record mahasiswa.
Mahasiswa pada record tersebut menginterpretasikan sebuah kontainer, sebuah tabel yang
didalamnya terdapat kolom-kolom yang terikat pada badan tabel. Seperti itulah gambaran dari suatu
record. Karenanya, maka antara nama record dengan field harus dikaitkan dengan menggunakan
operator seperti yang telah dijelaskan pada sub mater pengaksesan record. Jika program tersebut di
eksekusi, maka program tersebut akan menghasilkan keluaran seperti pada gambar berikut :

#Tampilan awal program

Created by Armansyah, M.Kom Page 57


Pada gambar tersebut diatas, program meminta user menginput nama mahasiswa, selanjutnya
program akan menampilkan kotak masukan selanjutnya hingga proses input selesai. Seletelah proses
input selesai dilakukan, maka seluruh data yang di input akan ditampilkan. Hasil keseluruhan program
dapat dilihat pada keluaran program berikut ini :

#Tampilan akhir program setelah di tampilkan

6.4 Stement With

Dalam bahasa pascal, penggunaan record dapat lebih disederhanakan dengan memanfaatkan
statemenwith. Dengan statement with pengaksesan field oleh record tidak perlu dilakukan, cukup
dengan menyertakan nama record dengan statement with di awal. Adapun tatacara penggunaan
statement with akan ditunjukkan pada struktur with sebagai berikut :

Keterangan :

Created by Armansyah, M.Kom Page 58


 With ; merupakan struktur pascal yang digunakan untuk mengaitkan antara nama
record dengan field
 Nama_record ; merupakan nama record yang digunakan
 Do ; merupakan perintah yang berfungsi untuk mengeksekusi atau memproses
pernyataan yang berada di dalam perintah begin dan end; jika nama_record benar, dan
sudah dideklarasikan
 Statemen-1 sampai statemen-n ; merupakan pernyataan-pernyataan yang akan di
proses oleh program jika nama_record diantara statemen with dan do telah dikenali
atau telah dideklarasikan
 Begin ; merupakan pernyataan bahwa statemen with dimulai
 End ; merupakan penutup statment with

#Simulasi record dengan statemen with .. do


Umpama suatu record telah di deklarasikan dengan nama record dan field-fieldnya seperti
berikut :

Dari deklarai record diatas, sudah jelas bahwa nama recordnya adalah mahasiswa,
dengan fieldnya, masing-masing : nama, jurusan, kelas, dan semester. Jika record ini diterapkan dengan
menggunakan statement with .. do, maka akan tampil seperti berikut :

Keterangan :
 Pernyataan diantara begin dan end yaitu writeln(nama) (dan seterusnya); dapat diganti
dengan kode program yang sesuai dengan kebutuhan. Misalnya programmernya ini
membaca record dan field, maka perintahnya diganti dengan readln(nama)

Created by Armansyah, M.Kom Page 59


 Dengan kata lain, pada record dengan statement with ini, tidak perlu menyebutkan
mengaitkan antara nama record mahasiswa dengan field nama seperti
mahasiswa.nama. Cukup nama fieldnya saja yang dituliskan sebagai pengait antara
tabel dengan field.

#Studi Kasus
 Buatlah program pendataan mahasiswa (sederhana) menggunakan struktur record
dengan statemen with..do untuk menampilkan data berupa nama, jurusan, kelas dan
semester

Created by Armansyah, M.Kom Page 60


#Penyelesaian dengan bahasa pascal

Perhatikan baik-baik pada kode program tersebut. Pada contoh program di atas pengaksesan
field oleh menggunakan statement with .. do. Terlihat perbedaan yang sangat jelas antara contoh
program pertama dengan contoh program kedua yang menggunakan statement with. Dimana
perbedaan yang jelas terdapat pada kode pengakasesan fieldnya. Pada record dengan statement with
pengaksesan field sama seperti pemanggilan variabel pada umumnya. Jika contoh program diatas di
running makan akan menampilkan kotak masukan seperti berikut :

Created by Armansyah, M.Kom Page 61


#Tampilan Awal program

Sama seperti contoh program diawal, pada tampilan ini program meminta user untuk
menginput data berdasarkan kotak masukannya hingga selesai. Jika input telah diselesaikan maka
program akan menampilkan keluaran seperti berikut :

#Tampilan akhir program setelah di tampilkan

Dari keluaran program pertama dan kedua baik dengan metode pengait menggunakan operator
titik (.), maupun menggunakan pengait dengan statement with..do, hasil yang didapatkan sama-sama
berjalan dengan baik. Dengan demikian perancang program (programmer) dapat menggunakan metode
manapun bergantung kepada kebutuhan dan kemampuan programmer.

6.5 Record dan Array

Pada contoh record di atas, program hanya mampu menyimpan sebaris data record. Untuk
dapat menyimpan data dengan banyak record, maka dibutuhkan array. Dalam prinsip perekaman
(record) dengan menggunakan array, pengkodean program membutuhkan struktur perulangan. Pada
umumnya para perancang program lebih sering menggunakan model perulangan for. Mengingat model

Created by Armansyah, M.Kom Page 62


perulangan ini sangat mudah diterapkan. Begitupun, setiap perancang dapat memilih model perulangan
lain berdasarkan kebutuhan dan kemampuannya.
Seperti yang telah dibahas pada modul sebelumnya, penerapan Array juga menggunakan
struktur perulangan. Dengan kata lain, bahwa keterkaitan antara Array dengan perulangan sangat erat,
tidak dapat dipisahkan. Sebab, dalam array perulangan dibutuhkan untuk mengendalikan pengindeksan
data. Karenanya, dalam record-array ini pun harus menggunakan perulangan. Dimana penyertaan
perulangan disini bertujuan untuk mengendalikan rekaman data array teurut didalam sekumpulan
record.

6.5.1 Deklarasi Record-Array

Pendeklarasian Record-array dilakukan diawal program, dengan komposisi kolom-kolom (field)


dideklarasikan terlebih dahulu sebagai record. Sementara record digunakan sebagai tipe data arraynya.
Pada record-array ini pula, nama array bertindak sebagai record, yang kemudian pada
pengaksesan recordnya disebutkan sebagai record (yang dikatikan dengan field-nya). Perhatikan
penerapannya pada contoh deklarasi record-array di bawah struktur deklarasi record-array pada gambar
berikut :

#contoh

Created by Armansyah, M.Kom Page 63


Perhatikan pada contoh deklarasi record-array diatas, disana terlihat record dideklarasikan
dengan type, dengan nama recordnya “datamhs.” Sesuai dengan strukturnya, nama record kemudian
dijadikan sebagai tipe data oleh array. Maka jika pada contoh diatas diterapkan, record datamhs
bertindak sebagai tipe data arraynya. Sementara itu, nama_array yang bernama “mahasiswa”, pada
pengaksesan record, bertugas sebagai pengganti record. Untuk lebih jelasnya perhatikan baik-baik
struktur dan contohnya penerapannya di atas. Terlihat pada deklarasi variabel (var) nama array adalah
mahasiswa. Namun pada pengaksesannya, mahasiswa ini disebutkan untuk mengaitkan antara record
dengan field. Kenapa demikian? Karena datamhs sudah digantikan oleh mahasiswa, seperti penjelasan
pada paragraf sebelumnya. Prinsip seperti inilah yang menjadi dasar bagi para programmer pascal
menyebutkan Record-array dengan istilah record didalam array.

6.5.2 Pengaksesan Record-Array

Dalam pengaksesan record-array, secara struktur hampir sama dengan pengaksesan record
tanpa array. Hanya saja, pada record-array, pengaksesan record harus disertai oleh variabel yang
bertugas mengendalikan indeks arraynya.
Adapun variabel ini bertipe bilangan bulat positif, apakah byte, integer, long integer, maupun
jenis tipe data lainnnya namun harus bertipe bilangan bulat positif. Pemilihan tipe data untuk variabel
indeks ini juga tidak mutlak. Perancang program dapat memilih sesuai kebutuhan. Adapun pengaksesan
record dengan array dapat dilihat seperti pada struktur berikut ini :

#Pengaksesan dengan opertator (.)

#Simulasi Pengaksesan Record-Array


Umpama record-array telah di deklarasikan seperti pada contoh berikut ini :

Created by Armansyah, M.Kom Page 64


Maka jika diterapkan dalam record-array pengaksesan kolom-kolom (field) terhadap recordnya
adalah seperti berikut :

Dari contoh pengaksesan record-array tersebut diatas, terlihat untuk masing-masing field
dikaitkan dengan array yang tugasnya menjadi record. Sementara itu, dalam penerapannya, terdapat
variabel “i” yang dikurung dengan tanda kurung siku, variabel inilah yang dalam array bertindak sebagai
pengendali indeks.
Pengaksesan dengan cara lain dapat juga diterapkan jika penerapan record menggunakan
statement with..do. Untuk record-array yang menggunakan statement with..do, pengaksesan recordnya
menggunakan strukter sebagai berikut :

#Pengaksesan dengan statement with..do


Pengaksesan record-array dengan statement with..do dapat dilakukan seperti pada gambar
berikut :

Created by Armansyah, M.Kom Page 65


Perhatikan pada perintah nama_array[variabel_indeks], pada pengaksesan dengan operator titik
(.) pengait yang disebutkan adalah nama_record-nya, namun pada model ini menggunakan nama_array.
Kenapa demikian? Karena tugas record sudah dilimpahkan (digantikan) oleh array. Sementara, record
bertugas sebagai tipedata arraynya. Dengan struktur tersebut, serta dengan menggunakan contoh
deklarasi record-array yang sama diatas, maka pengaksesan record-array dapat diterapkan seperti pada
gambar berikut :

Setelah kita membahas konseptualnya, mari kita terapkan di dalam program dengan
menggunakan bahasa pascal.

#Studikasus
 Buatlah program pendataan mahasiswa (sederhana) menggunakan struktur record
untuk menampilkan data berupa nama, jurusan, kelas dan semester

#penyelesaian dengan bahasa pascal

Created by Armansyah, M.Kom Page 66


Created by Armansyah, M.Kom Page 67
Contoh program tersebut menggunakan record-array dengan statment with..do. Dari program
tersebut array ditempatkan sebagai record dengan nama mahasiswa, sementara record bernama
datamhs bertugas sebagai tipe data array. Jika di running program tersebut menampilkan keluaran
sebagai berikut :

Pada tampilan awal program diatas, program meminta user untuk menginput data sebagai data
yang ditetapkan pada perulangan. Pada perulangan terdapa data sebagai 2, yaitu 1-2. Sehingga, user
hanya dapat menginput data sebanyak 2 data record saja. Setelah proses input selesai, seperti pada
contoh gambar berikut :

Created by Armansyah, M.Kom Page 68


Selanjutnya program akan mencetak hasilnya seperti pada gambar berikut :

6.6 Latihan

Untuk meningkatkan kemampuan mahasiswa, berikut ini diberikan latihan untuk dikerjakan
sebagai sarana praktikum terkait dengan materi Record.
1) Rancanglah program untuk menghitung nilai hasil dari UTS dan UAS serta menampilkan
Nilai Huruf sesuai dengan kriterianya. Adapun ketentuannya sebagai berikut :
- Nilai akhir didapat dengan formulasi 60% dari nilai UAS ditambah dengan 40% dari
nilai UTS
- Ketentuan Nilai huruf adalah :
o Jika nilai akhir >= 80, maka nilai huruf adalah ‘A’
o Jika nilai akhir >= 70, maka nilai huruf adalah ‘B’
o Jika nilai akhir >= 60, maka nilai huruf adalah ‘C’
o Jika nilai akhir >= 50, maka nilai huruf adalah ‘D’
o Jika nilai akhir <=49, maka nilai huruf adalah ‘E’
- Tampilan program berbentuk tabel seperti pada contoh pada pembahasan modul
Record

Created by Armansyah, M.Kom Page 69


MODUL 7
SUB PROGRAM

7.1 Pengertian Sub Program

Sub Program merupakan bagian program kecil yang terpisah dari program utama (main program). Sub
program ini dapat dipanggil seperti pemanggilan variabel biasa, baik pemanggilan itu dilakukan di dalam
sub program tersebut, maupun di luar sub program atau di dalam program utama.
Penggunaan sub program dimaksudkan untuk mempermudah dan menyederhanakan kode
program. Karena tidak menutup kemungkinan, pada program komplek (program skala besar), akan
dijumpai pembuatan kode program yang berulang-ulang. Pengulangan kode program pada program
skala besar ini, dapat disederhanakan dengan hanya membuat satu blok program saja. Lalu blok
program tersebut dapat di panggil di dalam maupun di luar sub program sesering mungkin sesuai
kebutuhan. Perhatikan contoh berikut :

Gambar 8.1 Contoh program prosedur

Jika kode program di atas dieksekusi, hasilnya adalah seperti gambar berikut :

Created by Armansyah, M.Kom Page 70


Gambar 8.2 Keluarn Program
Perhatikan baik-baik pada kode program di atas, pada bagian blok program utama terdapat
pengenal (identifier) bernama garis.Garis diambil dari sub program procedure yang berada di atas blok
program utama. Perhatikan juga blok program procedure garis ;. Disana terdapat perintah untuk
menampilkan sebuah keluaran dalam bentuk garis (‘---------‘);.
Jika diperhatikan lagi, kode program yang berisi garis hanya sekali penulisan, namun setelah
program di jalankan, monitor menampilkan dua garis. Hal ini terlihat pada blok program utama, dimana
pada bagian tersebut terdapat dua pengenal garis sebagai bagian dari pemanggilan procedure.
Dengan demikian, simpulan sementara pada bagian ini adalah, bahwa sub program benar-benar
dapat menyederhanakan kode program. Secara detil sub program dapat memberi keuntungan pada sisi
programmer yang diantaranya :
1. Mempermudah programmer dalam koreksi kesalahan pada saat kompilasi, karena program
telah dibagi-bagi dalam sub-sub program, dan pemecahan masalah terhadap kesalahan
program lebih mudah di temukan
2. Menyederhanakan kode program, dimana kode program menjadi sedikit ringkas karena
tidak perlu menuliskan kode program secara berulang-ulang

Pada bahasa Pascal sub program dibagi dalam dua tipe, yaitu :
1. Prosedur [Procedure]
2. Fungsi [Function]

Untuk melihat penggunaan dari proceduresilahkan perhatikan pada potongan kode program di
atas. Kode program diatas mewakili satu contoh program menggunakan procedure, dengan nama
prosedurnya adalah procedure garis;

7.2 Prosedur [Procedure]

Prosedur merupakan sub program yang terpisah dari blok program utama yang memiliki nilai
keluaran atau pun tidak. Prosedur terdiri dari prosedur standar, dan prosedur buatan. Pada pascal,
prosedur standar seperti clrscr, gotoxy, dan lain sebagainya dapat digunakan oleh perancang program
sesuai dengan kebutuhan.
Sementara prosedur buatan harus dideklarasikan terlebih dahulu. Pendeklarasian prosedur dapat
menyertakan idenfier maupun tidak, bergantung kepada maksud dari pembentukan prodesur tersebut.
Secara umum prosedur pada Pascal dideklarasikan seperti berikut :

Created by Armansyah, M.Kom Page 71


Dimana :
 Procedure ; merupakan indentifier dalam pascal yang menyatakan bagian dari (struktur)
prosedur.
 Nama ; merupakan identifier buatan yang menjadi nama atau judul dari prosedur tersebut.
Pembuatan nama prosedur bersifat bebas namun umumnya mewakili dari tujuan dari tugas
prosedur. Aturan penulisan nama prosedur juga bebas namun tidak membenarkan spasi.
 Argument (s) ; merupakan parameter yang nantinya mengaitkan antara prosedur dengan blok
yang memanggil prosedur. Fungsi parameter hampir sama dengan variabel. Namun dalam hal
ini, variabel di sebut dengan nama parameter. Peletakan parameter harus disertai dengan
tipedata.
 Local Declarations ; merupakan deklarasi lokal yang mengacu pada deklarasi label, variabel,
konstan, fungsi dan prosedur, yang hanya dapat digunakan pada tubuh prosedur itu sendiri.
 Procedure body ; merupakan tubuh prosedur dimana pada bagian ini pernyataan-pertanyaan
ditulis untuk menentukan apa yang harus di kerjakan oleh prosedur. Setiap pernyataan selalu
diawali oleh pengenal begin dan diakhiri oleh end; [titik koma].

Studi kasus :
 Buatlah program untuk menentukan akar pangkat dari suatu fungsi

Gambar 8.3 Contoh Program Prosedur 2


Jika kode program tersebut dijalankan, akan menampilkan hasil sebagai berikut :

Created by Armansyah, M.Kom Page 72


Gambar 8.4 Hasil Keluar Program Prosedur

7.3 Varial Global dan Lokal Dalam Prosedur

Di dalam prosedur, terdapat dua jenis variabel, yaitu variabel global dan variabel lokal. Variabel
global adalah variabel yang berada di luar tubuh prosedur. Umumnya dideklarasikan di bagian tubuh
program utama. Variabel global sifatnya terbuka, sehingga dapat digunakan di blok program manapun,
baik diblok prosedur maupun di dalam blok program utama.
Berbeda dari variabel global, variabel lokal bersifat tertutup. variabel ini hanya dapat digunakan
didalam prosedur itu sendiri. Berikut ini, perhatikanlah contoh program prosedur berikut :

Studi Kasus
 Buatlah program untuk menghitung luas persegi panjang. Pada studi kasus berikut ini,
perhatikanlah penjelasan pada bagian komentar didalam kurung kurawal pada kode program. {
... }

Gamber 8.5 Variabel Lokal can Global


Pada potongan kode program diatas terlihan keterangan yang mana variabel global, dan mana
variabel lokal. Perhatikan kembali pada blok procedure, nama prosedur adalah HitungLP. Pada bagian

Created by Armansyah, M.Kom Page 73


blok prosedur itu berisikan pernyataan proses menghitung luas persegi panjang yang disikan dengan
formulasi :

LuasLP:=panjang * lebar;

Selanjutnya hasil keluaran akan ditampilkan pada baris perintah dibawahnya, yaitu

writeln(‘Luas Persegi Panjang adalah : ‘, LuasLP:4:2);

kode perintah diatas tidak akan ditampilkan selama prosedur tidak di panggil pada blok program utama.
Maka, untuk menampilkan hasil keluaran, pada blok program utama prosedur harus dipanggil untuk
dapat mengeksekusi perintah yang dituliskan pada blok prosedur. Adapaun proses pemanggilan
prosedur terlihat pada bagian :

HitungLP(L, p, lb);

Jika di eksekusi, program tersebut akan menampilkan keluaran sebagai berikut :

Gambar 8.6 Hasil keluar program luas persegi panjang

7.4 Fungsi [Function]

Antara fungsi dan prosedur pada dasarnya memiliki persamaan. Yakni subprogram yang terpisah
dari blok program utama. Dimana tubuh fungsi melakukan tugas tertentu yang dapat dipanggil melalui
blok program utama. Persamaan mendasar antara prosedur dan fungsi juga terlihat dari strukturnya.
Namun yang menjadi pembeda diantara keduanya adalah, fungsi memiliki nilai balik dari fungsi,
sementara prosedur tidak. Secara umum struktur fungsi dapat dilihat seperti berikut di bawah ini :

Created by Armansyah, M.Kom Page 74


Dimana :
 Function ; merupakan identifier yang menyatakan bahwa kode tersebut adalah sebuah blok
program fungsi
 Nama ; nama merupakan pengenal untuk fungsi tersebut. Nama sebuah fungsi umumnya
mewakili dari tujuan fungsi. Penamaan fungsi harus valid, tidak boleh menggunakan spasi atau
simbol-simbol lain kecuali garibawah (underscore) untuk nama fungsi yang terdiri dari lebih dari
satu suku kata
 Arguments ; merupakan variabel fungsi, yang umumnya disebut dengan parameter. Variabel
fungsi bisa lebih dari satu, sesuai dengan kebutuhan. Untuk masing-masing variabel harus
disertai tipedata yang sesuai.
 Function_tipe ; merupakan tipedata nilai balik dari fungsi. Typedata nilai balik fungsi ditentukan
oleh programmer berdasarkan kebutuhan. Contoh:
function maks(bil1, bil2: integer): integer;
 Local Declaration ; merupakan bagian deklarasi untuk label, konstan, variabel, fungsi dan
prosedur. Setiap fungsi, tidak harus memiliki deklarasi lokal. Jika variabel didalam argument
fungsi sudah cukup, maka pendeklarasian lokal tidak perlu dicantumkan.
 Statements ; merupakan pernyataan pernyataan yang akan dikerjakan oleh fungsi. Pernyataan
ditulis didalam tubuh fungsi (function body), dan didalam tubuh fungsi boleh menyertakan
ekspresi-ekspresi, semisal menginisialisasi nilai pada variebel yang digunakan fungsi.

Studi Kasus :
 Buatlah program untuk menghitung luas segitiga sama sisi dengan mengunakan fungsi.

Created by Armansyah, M.Kom Page 75


Gambar 8.7 Program Fungsi

Jika kode program tersebut dijalankan, maka monitor akan menampilkan keluaran sebagai
berikut :

Gambar 8.8 Keluaran Program

7.5 Paramter Dalam Prosedur dan Fungsi

Secara sederhana parameter dapat disamakan juga dengan variabel. Hanya saja istilah parameter
digunakan untuk mendefenisikan fungsi variabel tersebut. Jika dilihat dari cara kerjanya, parameter ini
dinamakan berdasarkan dimana dia letakkan. Ada dua jenis parameter, yaitu parameter formal dan
parameter aktual.
 Parameter formal

Created by Armansyah, M.Kom Page 76


Merupakan variabel yang dideklarasikan didalam prosedur atau fungsi. Umumnya parameter ini
disertakan atau dituliskan pada saat pendeklarasian prosedur atau fungsi. Sehingga parameter
formal merupakan pengenal dari variebel fungsi yang digunakan
 Parameter aktual
Sesuai dengan namanya “aktual” variabel ini berfungsi untuk pengakses atau mengerjakan tugas
prosedur atau fungsi pada saat pemanggilan prosedur-fungsi. Variabel ini bisa saja berada di
dalam tubuh prosedur-fungsi tersebut, bisa juga berada di tubuh program utama.

Perhatikan kode program berikut :

Gambar 8.9 Parameter Prosedur- Fungsi

Pada potongan program tersebut terlihat bahwa, parameter formal ditunjukkan pada
pendeklarasian fungsi, yaitu r, dan l. Sementara pada tubuh program utama, terdapat variabel jejari,
dan luas, dimana kedua variabel ini bersifat global dan bertindak sebagai parameter aktual.

Kode program tersebut diatas, jika dijalankan akan menampilkan keluaran sebagai berikut :

Gambar 8.10 Keluar Program luas Lingkaran

Created by Armansyah, M.Kom Page 77


7.6 Pengiriman Parameter

Pada bahasa Pascal, pengiriman parameter dapat menggunakan tiga model, yakni pemanggilan
parameter :
 By Value
 By Reference
 Combination (Campuran)

Namun pada kesempatan ini, implementasi akan dicontohkan berdasarkan By Value (dengan
nilai) dan By References (dengan referensi). Pengiriman parameter dapat dilakukan meskipun nama
variabel berbeda, tetapi tipe data diantara parameter di dalam prosedur-fungsi harus sama.

7.6.1 Pengiriman Parameter By Value

Pengiriman parameter dengan nilai ini merupakan metode dimana nilai yang dimiliki oleh
pamater di tubuh prosedur-fungsi dikirim ke variabel global di tubuh program utama. Lebih lanjut
penjelasan pengiriman parameter dengan nilai dapat dilihat pada contoh program berikut :

Studi Kasus
 Buatlah program dengan prosedur untuk menentukan luar permukaan bola dengan metode
pengiriman parameter dengan nilai (By Value)

Created by Armansyah, M.Kom Page 78


Gambar 8.11 Parameter By Value

Pada program tersebut, prosedur yang digunakan adalah procedure luasbola. Diman parameternya
adalah r dengan tipedata real. Parameter ini disebut dengan parameter formal. Nilai paramter ini pada
awalnya bernilai nol atau kosong, namun ketika program dijalankan, lalu diinput, maka nilai ini akan
bernilai tertentu sesuai masukan yang diberikan oleh user melalui keyboard. Parameter r ini menjadi
bernilai karena mendapat kiriman dari variabel jejari.
Selanjutnya setelah parameter r, menjadi bernilai maka variabel luas akan menghitung nilai
yang dimiliki oleh r. Setelah variabel luas telah mendapatkan hasil perhitungan, nilai luas akan dibawa
oleh prosedur luasbola untuk ditampilkan berdasarkan pemanggilan prosedur di tubuh program utama
yaitu luasbola(jejari);

Dengan formulasi luas permukaan bola yang

Maka jika program tersebut diatas dijalankan, akan menampilkan keluaran sebagai berikut :

Gambar 8.12 Keluar Program parameter by value

8.6.2 Pengiriman Parameter By Reference

Created by Armansyah, M.Kom Page 79


Pemanggilan parameter berdasarkan referensi merupakan pemanggilan berdasarkan alamat
suatu variabel didalam prosedur atau fungsi. Cara ini dapat digunakan untuk mengubah isi suatu
variabel diluar prosedur-fungsi dengan melakukan pengubahan nilai di dalam prosedur-fungsi.

Studi Kasus
 Buatlah program menghitung luas permukaan bola, dengan menggunakan prosedur dengan
metode pengiriman parameter berdasarkan Reference

Gambar 8.13 Kode Program parameter By Reference

Jika dilihat dari kode program diatas, dan dengan membandingkan dengan metode pemanggilan
berdasarkan nilai, perbedaan terlihat pada beberapa hal, diantarang :

Created by Armansyah, M.Kom Page 80


 Seluruh variabel yang dibutuhkan dideklarasikan baik di tubuh program utama (yang bersifat
global) maupun pada pendeklarasian prosedur
 Variabel global yang dalam hal ini berdasarkan program diatas adalah variabel luas tetap
digunakan
 Pada pemanggilan prosedur, variabel global digunakan, turut disertakan didalam pemanggilan
prosedur yaitu luasbola(jejari, luas), dimana kedua parameter tersesbut digunakan untuk
melayani parameter r dan l pada pendeklarasia prosedur.

Program tersebut jika di eksekusi akan menampilkan keluaran sebagai berikut :

Gambar 8.14 Keluar Program parameter By Reference

Setelah membahas berbagai subtopik mengenai prosedur dan fungsi serta metodenya, seorang
programmer diharapkan untuk tidak bingung harus menggunakan prosedur ataupun fungsi.
Programmer bebas menggunakan konseptual apa saja dan dengan metode apa saja sesuai dengan
kemampuannya.
Prosedur dan fungsi ditawarkan dalam pemrograman hanya sebagai alternatif untuk
memecahkan masalah program yang komplek skala besar dimana dalam program tersebut diharuskan
untuk membuat perencanaan secara sederhana untuk meminimalisir permasalah program yang
dihadapi.
Namun, suka atau tidak suka, penggunakan konsep prosedur dan fungsi akan tetap akan
ditemukan di disiplin ilmu pemrograman apapun, dan tentu penggunaan konsep ini sangat membantu.
Hanya saja, konsep prosedur dan fungsi akan berbeda istilah pada pemrograman lainnya.

8.6.3 Fungsi Dengan Parameter By Reference

Berikut ini akan saya contohkan program menggunakan fungsi dengan studi kasus yang sama,
yaitu program menghitung luas permukaan bola dengan menggunakan metode pengiriman parameter
berdasarkan referensi (By Reference).

Studi Kasus
 Program menghitung luas permukaan bola menggunakan fungsi dengan parameter by
reference

Created by Armansyah, M.Kom Page 81


Gambar 8.15 Program Fungsi dengan parameter by reference

Perhatikan baik-baik pada kode program di atas, secara sintaksis tidak terdapat perbedaan yang
jauh. Perbedaan hanya terdapat pada struktur fungsinya, yaitu dengan penambahan nilai balik pada
fungsi, yaitu dengan typedata nilai baliknya adalah byte.

Gambar 8.16 Keluaran Program fungsi by reference

7.7 Rekursi

Rekursif berarti bahwa suatu proses bisa memanggil dirinya sendiri. Menurut definisi dalam
Microsoft Bookshelf, Rekursif adalah kemampuan suatu rutin untuk memanggil dirinya sendiri. Dalam

Created by Armansyah, M.Kom Page 82


Rekursif sebenarnya terkandung pengertian prosedur dan fungsi. Perbedaannya adalah bahwa rekursif
bisa memanggil ke dirinya sendiri, tetapi prosedur dan fungsi harus dipanggil lewat pemanggil prosedur
dan fungsi. Rekursif merupakan teknik pemrograman yang penting dan beberapa bahasa pemrograman
mendukung keberadaan proses rekursif ini. Dalam prosedur dan fungsi, pemanggilan ke dirinya sendiri
bisa berarti proses berulang yang tidak bisa diketahui kapan akan berakhir.
Contoh paling sederhana dari proses rekursif ini adalah proses menghitung nilai factorial dari
suatu bilangan bulat positif dan mencari deret Fibbonacci dari suatu bilangan bulat.

1. Nilai factorial secara rekursif dapat ditulis sebagai

0!=1
N ! = N x (N-1) !

Jika diterapkan dalam pemrograman dapat ditulis sebagai


Faktorial(0) = 1 (1)
Faktorial(N) = N*Faktorial(N-1) (2)

Persamaan (2) di atas adalah contoh hubungan rekurens (recurrence relation), yang berarti
bahwa nilai suatu fungsi dengan argumen tertentu bisa dihitung dari fungsi yang sama dengan argumen
yang lebih kecil. Persamaan (1) tidak bersifat rekursif, disebut nilai awal atau basis. Setiap fungsi rekursif
paling sedikit mempunyai satu nilai awal, jika tidak fungsi tersebut tidak bisa dihitung secara eksplisit.

2. Bilangan Fibbonacci didefinisikan sebagai berikut

1 1 2 3 5 8 13 21 34 55 89 …
dari barisan tersebut dapat dilihat bahwa bilangan ke-N (N>2) dalam barisan dapat dicari dari dua
bilangan sebelumnya yang terdekat dengan bilangan N, yaitu bilangan ke-(N-1) dan bilangan ke-(N-
2), sehingga dapat dirumuskan sebagai

Fibbonacci(1) = 1 (1)
Fibbonacci(2) = 1 (2)
Fibbonacci(N) = Fibbonacci(N-1) + Fibbonacci(N-2) (3)

Dengan persamaan (1) dan (2) adalah basis dan persamaan (3) adalah rekurensnya.
Dalam beberapa situasi, pemecahan secara rekursif maupun secara iteratif mempunyai
keuntungan dan kekurangan yang bisa saling diperbandingkan. Adalah cukup sulit untuk menentukan
mana yang paling sederhana, paling jelas, paling efisien dan paling mudah dibanding yang lain. Boleh
dikatakan pemilihan cara iterative maupun rekursif merupakan kesenangan seorang programmer dan
tergantung konteks permasalahan yang akan dipecahkan sesuai dengan kesanggupan yang
bersangkutan.
Perhatikanlah contoh Algoritma berikut :

#Contoh 1

Created by Armansyah, M.Kom Page 83


#Contoh 2

3. Kelebihan dan Kekurangan Rekursif

Penggunaan rekursif dapat membantu programmer seperti :


 Secara sintaksis, program lebih singkat
 Lebih mudah diterapkan dalam algoritma factorial
 Lebih efisien secara pengkodean

Namun diantara kelebihan diatas, penggunaan rekursif juga memiliki kekurangan diantaranya :
 Program akan memakai memori lebih besar karena program melakukan proses
perulangan yang tidak tertentu jumlahnya
 Terkait dengan perulangan tersebut, rekursif justeru sering tidak berhenti (bergantung
kepada perancangan algoritmanya)

Created by Armansyah, M.Kom Page 84


#Inplementasi Rekursi dalam pascal

Created by Armansyah, M.Kom Page 85


#Keluaran

7.8 Latihan / Tugas

Untuk mencapai target perkuliahan, kerjakanlah latihan berikut dengan baik, eksplorasilah
berbagai sumber, baik modul, internet, buku, atau turorial untuk menyelesaikan latihan berikut. Latihan
berikut akan diuji secara mandiri dikelas untuk melihat kesiapan mahasiswa. Berikut latihannya :
1. Sebuah perpustakaan sebuah masjid menyewakan 3 golongan buku, yaitu A, B, dan C.
Harga sewa per 7 hari adalah :
Golongan Harga Sewa per 7 Hari
A Rp. 400,-
B Rp. 600,-
C Rp. 800,-

Jika peminjaman lebih dari 7 hari, setiap harinya akan didenda sebesar Rp. 200,-. Buatlah
program untuk menghitung pembayaran sewa dengan dengan acuan sebagai berikut :
 Masukan : Golongan Buku, Lama sewa
 Keluaran : Biaya yang harus dibayar
 Petunjuk : Buatlah 3 prosedur (atau boleh fungsi)
1. Prosedur/fungsi untuk menghitung harga sewa
2. Prosedur/fungsi untuk menghitung Denda
3. Prosedur / fungsi untuk menghitung Pembayaran

2. Buatlah program (boleh prosedur atau fungsi) untuk menentukan nilai terkecil. Dengan
ketentuan :
 Input : beberapa nilai puluhan,
 Keluaran : nilai terkecil

Created by Armansyah, M.Kom Page 86


3. Buatlah program menggunakan fungsi untuk menentukan total gaji karyawan, dengan
ketentuan sebagai berikut :
 Input : gaji pokok
 Keluaran : total gaji
 Petunjuk : buatlah fungsi :
 Menghitung tunjangan jikan tunjangan adalah adalah 10% dari gapok
 Menghitung total gaji

Created by Armansyah, M.Kom Page 87

Anda mungkin juga menyukai