Anda di halaman 1dari 63

Logika Dan Algoritma Dengan Pascal

KONSEP DASAR
LOGIKA DAN ALGORITMA

Modul

OBJEKTIF
Mahasiswa dapat mengetahui konsep dasar Algoritma serta penerapannya
pada bidang pemrograman komputer serta keterkaitan antara logika dan
Algoritma itu sendiri.
APAKAH ITU ALGORITMA
itinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang
aneh. Orang hanya menemukan kata Algorism yang berarti proses
menghitung dengan angka arab. Anda dikatakan Algorist jika anda menghitung
menggunakan Angka Arab. Para ahli bahasa berusaha menemukan asal kata ini
namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika
menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang
terkenal yaitu Abu Jafar Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi
dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul
Kitab Al Jabar Wal-Muqabala yang artinya Buku pemugaran dan pengurangan
(The book of restoration and reduction). Dari judul buku itu kita juga memperoleh
akar kata Aljabar (Algebra).
Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism
sering dikelirukan dengan Arithmetic, sehingga akhiran sm berubah menjadi
thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka
lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan
(komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam
Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma.

DEFINISI ALGORITMA
lgoritma adalah urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis dan logis. Kata Logis merupakan kata kunci dalam
Algoritma. Langkah-langkah dalam Algoritma harus logis dan harus dapat
ditentukan bernilai salah atau benar.
Kamus besar bahasa Indonesia (Balai Pustaka 1988) secara formal
mendefinisikan algoritma sebagai :

Logika Dan Algoritma Dengan Pascal


Algoritma adalah urutan logis pengambilan putusan untuk pemecahan
masalah.
BEDA ALGORITMA DAN PROGRAM
rogram adalah kompulan instruksi komputer, sedangkan metode dan tahapan
sistematis dalam program adalah algoritma. Program ini ditulis dengan
menggunakan bahasa pemrograman. Jadi bisa kita sebut bahwa program adalah
suatu implementasi dari bahasa pemrograman.
Beberapa pakar memberi formula bahwa:

program = struktur data + algoritma


Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada
sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat
akan membuat program menjadi kurang baik, demikian juga sebaliknya. Struktur
data disini bisa berupa list, tree, graph, dsb.
MENILAI SEBUAH ALGORITMA
etika manusia berusaha memecahkan masalah, metode atau teknik yang
digunakan untuk memecahkan masalah itu ada kemungkinan bisa banyak
(tidak hanya satu). Dan kita memilih mana yang terbaik diantara teknik-teknik itu.
Hal ini sama juga dengan algoritma, yang memungkinkan suatu permasalahan
dipecahkan dengan metode dan logika yang berlainan. Lalu bagaimana mengukur
mana algoritma yang terbaik ?

Beberapa persyaratan untuk menjadi algoritma yang baik adalah:


1. Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses
harus berakurasi tinggi dan benar.
2. Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat
mungkin dan frekuensi kalkulasi yang sependek mungkin.
3. Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus
saja, tapi juga untuk kasus lain yang lebih general.
4. Bisa Dikembangkan (expandable). Haruslah sesuatu yang dapat kita
kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
5. Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma
anda. Susah dimengertinya suatu program akan membuat susah di
maintenance (kelola).
6. Portabilitas yang tinggi (Portability). Bisa dengan mudah diimplementasikan di
berbagai platform komputer.

Logika Dan Algoritma Dengan Pascal

MEKANISME PELAKSANAN ALGORITMA OLEH PEMROSES


omputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh
komputer, algoritma hasrus ditulis dalam notasi bahasa pemrograman
sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi
teknis Algoritma yang ditulis dalam bahasa pemrogaman tertentu sehingga dapat
dilaksanakan oleh komputer.

BELAJAR MEMPROGRAM DAN BELAJAR BAHASA PEMROGRAMAN


elajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar
memprogram adalah belajar tentang metodologi pemecahan masalah,
kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan
dipahami. Sedangakan belajar bahasa pemrograman berarti belajar memakai
suatu bahasa aturan-aturan tata bahasanya, instruksi-instruksinya, tata cara
pengoperasian compiler-nya, dan memanfaatkan instruksi-instruksi tersebut untuk
membuat program yang ditulis hanya dalam bahasa itu saja.
Sampai saat ini terdapat puluhan bahasa pemrograman. Yang dapat
dibedakan berdasarkan tujuan dan fungsinya. Diantaranya adalah :

BELAJAR MEMPROGRAM
Belajar memprogram belajar bahasa pemrograman

Logika Dan Algoritma Dengan Pascal


Belajar memprogram
belajar tentang strategi pemecahan masalah,
metodologi dan sistematika pemecahan masalah kemudian menuliskannya
dalam notasi yang disepakati bersama.
Belajar memprogram bersifat pemahaman persoalan, analisis dan sintesis
Belajar memprogram, titik berat designer program
BELAJAR BAHASA PEMROGRAMAN
Belajar bahasa pemrograman belajar memakai suatu bahasa pemrograman,
aturan sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk
setiap bahasa
Belajar bahasa pemrograman , titik berat : coder
PRODUK YANG DIHASILKAN PEMROGRAM :
Program dengan rancangan yang baik (metodologis, sistematis)
Dapat dieksekusi oleh mesin
Berfungsi dengan benar
Sanggup melayani segala kemungkinan masukan
Disertai dokumentasi
Belajar memprogram, titik berat : designer program
STRUKTUR DASAR ALGORITMA
lgoritma berisi langkah-langkah penyelesaian suatu masalah. Langkahlangkah bisa berupa runtunan, pemilihan, dan pengulangan. Ketiga langkah
itulah yang menyusun algoritma. Jadi, sebuah algoritma merupakan kumpulan dari
salah satu atau lebih struktur dasar tersebut.

RUNTUNAN (SEQUENCE)
ebuah runtunan terdiri dari satu atau lebih 'instruksi'. Tiap-tiap instruksi
dilaksanakan secara berurutan sesuai dengan urutan penulisannya. Sebuah
instruksi, baru bisa dilaksanakan setelah instruksi sebelumnya selesai
dilaksanakan. Urutan instruksi menentukan keadaan akhir algoritma. Kalau
urutannya diubah, kemungkinan besar hasil akhirnya akan berubah.

Contoh :
Misalkan Ada dua buah bejana, A dan B. Bejana A berisi larutan kopi, bejana B
berisi larutan susu. Pertukarkan kedua isi bejana itu, sehingga A berisi larutan
susu, dan B berisi larutan kopi.
Kita tanyakan Algoritma!? Jawabannya: ada tiga langkah, yaitu:
1. Tuangkan larutan dari bejana A ke dalam bejana C
2. Tuangkan larutan dari bejana B ke dalam bejana A
4

Logika Dan Algoritma Dengan Pascal


3. Tuangkan larutan dari bejana C ke dalam bejana B. Selesai.....
PEMILIHAN (SELECTION)
adangkala sebuah instruksi dikerjakan setelah 'kondisi' tertentu terpenuhi.
Dalam bahasa pemrograman, ini dikenal dengan "if" dan "then". Kondisi
adalah persyaratan yang dapat dinilai benar atau salah sehingga akan
memunculkan 'aksi' yang berbeda dengan 'kondisi' yang berbeda.

Contoh :
'if' Widi memperoleh juara kelas
'then' ayah akan membelikannya sepeda
'if' Mobilmu rusak
'then' pakai saja motorku
Tampak struktur pemilihan 'if-then' hanya memberikan satu pilihan aksi bila
kondisi dipenuhi atau bernilai benar dan tidak memberikan aksi lain bila kondisi
salah. Bentuk pemilihan yang lebih umum adalah memilih satu dari dua aksi
bergantung pada nilai kondisinya, seperti:
'if' hari hujan
'then' pergilah dengan naik taxi
'else' pergilah dengan naik motor
di sini secara logika jika kondisi 'hari hujan' benar, maka aksi 'pergi naik taxi'
dilakukan. Sebaliknya jika kondisi 'hari hujan' bernilai salah, maka aksi 'pergi naik
motor' akan dilaksanakan.
PENGULANGAN (REPETITION)
alah satu kegunaan pemrograman adalah untuk memudahkan pekerjaan yang
harus dilakukan secara berulang.
Bentuk umum perulangan adalah :

'repeat'
aksi
'until' kondisi
Struktur 'repeat-until' hanya satu diantara beberapa struktur pengulangan yang
ada. Terdapat beberapa struktur pengulangan lain seperti 'while-do', 'for' dan
sebagainya.
5

Logika Dan Algoritma Dengan Pascal

INDEPENDENSI NOTASI ALGORITMA


otasi Algoritma dapat diterjemahkan ke dalam berbagai bahasa
pemrograman. Analoginya sama dengan resep membuat kue. Sebuah resep
dapat ditulis dalam bahasa apapun. Bahasa Jepang, Inggris, Perancis, Indonesia,
dan lain sebagainya. Apapun bahasanya, kue yang dihasilkan tetap sama asalkan
semua aturan pada resep diikuti. Mengapa demikian ? Karena setiap juru masak
(sebagai pemroses) dapat melakukan operasi dasar yang sama, seperti mengocok
telur, menimbang berat gula, dan lain sebagainya.
Demikian juga halnya dengan komputer. Meskipun setiap komputer berbeda
teknologinya, tetapi secara umum semua komputer dapat melakukan operasioperasi dasar dalam pemrograman seperti operasi pembacaan data, operasi
perbandingan, operasi aritmatika, dan sebagainya. Perkembangan teknologi
komputer tidak mengubah operasi-operasi dasar it, yang berubah hanyalah
kecepatan, biaya, atau tingkat ketelitian. Pada sisi lain setiap program dalam
bahasa tingkat tinggi selalu diterjemahkan kedalam bahasa mesin sebelum
akhirnya dikerjakan oleh CPU. Setiap instruksi dalam bahasa mesin menyajikan
operasi dasar yang sesuai, dan menghasilkan efek netto yang sama pada setiap
komputer.

STRUCTURED PROGRAM FLOW-CHART


alam merancang suatu Algoritma, dapat digunakan beberapa alat bantu,
diantaranya adalah decision table, structured chart, structured program flowchart dan pseudocode. Bagan alir program (program flow-chart) adalah suatu
bagan yang menggambarkan arus logika dari data yang akan diproses dalam
suatu program dari awal sampai akhir. Bagan alir terdiri dari simbol-simbol yang
mewakili fungsi-fungsi langkah program dan garis alir (flow lines) menunjukkan
urutan dari simbol-simbol yang akan dikerjakan.
Berikut ini adalah simbol-simbol program flow-chart menurut ANSI (American
National Standard Institute).

Simbol terminal (terminal symbol)


Digunakan untuk menunjukkan awal dan akhir dari
program
Simbol persiapan / inisialisasi (preperation symbol)
Digunakan untuk memberikan nilai awal pada suatu
variable atau counter
6

Logika Dan Algoritma Dengan Pascal


Simbol pengolahan (processing symbol)
Digunakan untuk mewakili proses
aritmatika dan pengolahan data

pengolahan

Simbol input/output (input/output symbol)


Digunakan untuk mewakili proses input dan output
data / informasi.
Simbol keputusan (decision symbol)
Digunakan untuk mewakili operasi perbandingan
logika.
Simbol proses terdefenisi / sub rutin (pre-defined process symbol)
Digunakan untuk proses yang detilnya dijelaskan
terpisah, misalnya dalam bentuk sub-routine.
Simbol penghubung per-halaman (connector symbol)
Digunakan untuk menunjukkan hubungan arus
proses yang terputus masih dalam halaman yang
sama.
Simbol penghubung antar halaman (off page connector symbol)
Digunakan untuk menunjukkan hubungan arus
proses yang terputus pada halaman yang berbeda.

Simbol aliran data / logika (flow lines)


Digunakan untuk memperlihatkan arus proses /
logika dari program.

PSEUDOCODE
seudocode banyak digunakan untuk mewakili urutan-urutan proses dari

Logika Dan Algoritma Dengan Pascal


program. Dari segi leksikal Pseudo berarti imitasi dan code dihubungkan dengan
instruksi yang ditulis dalam bahasa komputer. Pseudocode digunakan untuk
menjembatani jurang antara bahasa sehari-hari programmer dengan bahasa
komputer. Pseudocode merupakan suatu bahasa yang memungkinkan
programmer untuk berfikir terhadap permasalahan yang harus dipecahkan tanpa
harus memikirkan syntax dari bahasa pemrograman yang tertentu. Tidak ada
aturan penulisan syntax di dalam pseudocode.
Pseudocode digunakan untuk menggambarkan urutan logika dari program
tanpa memandang bagaimana bahasa pemrogrammannya. Pseudocode banyak
yang menyebutnya sebagai algoritma. Sebenarnya yang disebut dengan algoritma
adalah suatu perencanaan lagkah-langkah instruksi tertentu untuk pemecahan
suatu masalah. Jadi algoritma tidak saja harus berbentuk pseudocode, tetapi dapat
jug diwujudkan dalam bentuk flow chart.
Contoh :
baca jumlah data
tulis judul tabel
while data belum habis
hitung data yang dibaca
baca data nomer mahasiswa, nama dan nilainya
tulis nomer mahasiswa dan nama
if nilai > 60
tulis lulus
else
tulis tidak lulus
endif
wend
tulis garis penutup table
selesai
catatan : Biasanya kata-kata kunci (keywords) atau kata-kata cadangan (reserved
word) ditulis dengan huruf tebal.
TUGAS :
Permasalahan (kasus)
Anda adalah seorang guru SD yang ingin membuat rangking nilai ujian dari 9
orang murid anda. Nilai ujian murid anda adalah sebagai berikut :
56
8

78

43

96

67

83

51

74

32

Logika Dan Algoritma Dengan Pascal


Buatlah Algoritmanya secara flowchart
pembuatan rangking nilai tersebut

lalu

buat pseudocode-nya

BERKENALAN DENGAN
PEMROGRAMAN PASCAL

dalam

Modul

OBJEKTIF
Mahasiswa dapat mengenal bahasa pemrograman Pascal serta mengetahui
bagaimana struktur serta IDE (integrated Development Environment) dari
bahasa pemrograman Pascal.
SEJARAH PERKEMBANGAN PASCAL
ascal adalah bahasa tingkat tinggi (high level language) yang orientasi nya
pada segala tujuan, dirancang oleh Profesor Niklaus Wirth dari Technical
University di Zurich, Switzerland. Nama Pascal diambil sebagai penghargaan
terhadap Blaise Pascal, ahli matematik dan philosophi terkenal abad 17 dari
Perancis.
Profesor Niklaus Wirth memperkenalkan kompiler bahasa Pascal pertama kali
untuk komputer CDC 6000 (Control Data Corporation) yang dipublikasikan pada
tahun 1971 dengan tujuan untuk membantu mengajar program komputer secara
sistematis, khususnya untuk memperkenalkan pemrograman yang terstruktur
(structured programming). Jadi Pascal adalah bahasa yang ditujukan untuk
membuat program yang terstruktur.
Dalam waktu yang singkat, Pascal telah menjadi bahasa yang populer
dikalangan pelajar universitas dan merupakan bahasa yang diajarkan di beberapa
perguruan tinggi. Beberapa profesional komputer juga mulai beralih ke bahasa
Pascal. Kenyataannya, Pascal merupakan bahasa yang paling cepat populer
dibanding dengan bahasa-bahasa komputer tingkat tinggi yang lainnya.
Standar Pascal adalah bahasa Pascal yang didefmisikan oleh K. Jensen dan
Niklaus Wirth. Penerapan nyata dari standar Pascal banyak yang berbeda seperti

Logika Dan Algoritma Dengan Pascal


apa yang telah didefinisikan oleh. K. Jensen dan Niklaus Wirth. Standar Pascal di
Eropa didefinisikan oleh ISO (International Standards Organization) dan di Amerika
oleh kerjasama antara ANSI (American National Standar Institute) dengan IEEE
(Institute of Electrical and Electronic Engineers).
Beberapa versi dari Pascal telah beredar di pasaran, diantaranya UCSD
Pascal (University of California at San Diego Pascal), MS-Pascal (Microsoft
Pascal), Apple Pascal, TURBO Pascal dan lain sebagainya. Sampai saat ini untuk
komputer-komputer mikro dan personal, TURBO Pascal merupakan versi bahasa
Pascal yang paling populer dan banyak digunakan. Kompiler TURBO Pascall
banyak digemari, karena terutama bersifat interaktif, seperti interpreter saja
layaknya. Selain itu TURBO Pascal mengikuti definisi dari standar Pascal seperti
yang didefinisikan oleh K. Jansen dan Niklaus Wirth di Pascal User Manual dan
Report. TURBO PASCAL adalah copyright oieh BORLAND Inc.
MENGENAL EDITOR (IDE) BAHASA PASCAL (TURBO PASCAL 7.0)
Betuk Ide dari Turbo Pascal 7.0 terlihat seperti gambar dibawah ini :

Turbo Pascal 7.0 memiliki 10 buah menu utama yang terdiri dari : File, Edit,
Search, Run, Compile, Debug, Tools, Options, Window dan Help. Untuk memilih
10

Logika Dan Algoritma Dengan Pascal


salah satu dari menu itu anda bisa menekan tombol Alt + F (untuk memanggil
menu file), atau menekan Alt + [huruf pertama dari menu]. Jika anda ingin kembali
ke menu utama anda bisa saja menekan tombol F10, untuk pindah dari menu satu
ke menu yang lain anda juga bisa menekan panah kanan atau panah kiri pada
keyboard. Contohnya ketika anda berada di menu File maka untuk pindah ke
menu Compile anda cukup menggunakan tombol panah kanan atau panah kiri,
dan anda juga bisa langsung menekan huruf C. Untuk menutup menu anda bisa
menggunakan tombol Esc. Sebetulnya akan lebh mudah jika memanggil sebuah
menu dengan menggunakan hotkey, table dibawah ini adalah hotkey yang
digunakan dalam turbo pascal :
DAFTAR HOTKEY PADA IDE PASCAL
Kunci
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
Alt + F1
Alt + F3
Alt + F5
Alt + F6
Alt + F9
Alt + C
Alt + D
Alt + E
Alt + F
Alt + H
Alt + O
Alt + R
Alt + S
Alt + T

Fungsi
Mengaktifkan jendela pertolongan.
Menyimpan berkas yang ada pada editor.
Memanggil program kedalam editor.
Mengeksekusi program sampai posisi kursor.
Memperbesar atau memperkecil jendela yang aktif.
Mengganti jendela yang aktif.
Melacak kedalam subrutin.
Melompati pemanggil subrutin.
Mengaktifkan perintah Make.
Berpindah dari menu-menu ke jendela yang aktif.
Memanggil jendela pertolongan yang terakhir dibaca.
Menutup jendela aktif.
Memperlihatkan hasil eksekusi.
Mengganti isi jendela yang aktif.
Mengkompilasi program.
Mengaktifkan menu compile.
Mengaktifkan menu debug.
Mengaktifkan menu editor.
Mengakaktifkan menu file.
Menampilkan menu Help
Mengaktifkan menu option.
Mengaktifkan menu run.
Mengaktifkan menu Search
Mengaktifkan menu Tools

Ekivalen menu
File / Save
File / Open
Run / Go to cursor

Run / Trace into


Compile / Make

Debug / user screen


Compile

11

Logika Dan Algoritma Dengan Pascal


Alt + W
Alt + X
Ctrl + F1
Ctrl + F2
Ctrl + F3
Ctrl + F4
Ctrl + F7

Mengaktifkan menu Window


Keluar dari Turbo Pascal dan kembali ke DOS.
Menampilkan menu pertolongan bahasa.
Menghentikan pembetulan.
Menampilkan isi tumpukan.
Melakukan penghitungan atau mengubah nilai peubah.
Menambahkan ungkapan pada jendela watch.

Ctrl + F8

Add Breakpoint.

Ctrl + F9
Ctrl + F10

Menjalankan program.
Menampilkan versi layar monitor

Run / Program reset


Debug / Call Stack
Debug / Evaluate
Debug / Add Watch
Debug / Add
breakpoint
Run / Run

MENU FILE
i menu File terdapat pilihan untuk membuka dan memuat file source pascal
yang telah ada sebelumnya, membuat file source yang baru, shell ke DOS
menyimpan file dan keluar dari IDE Turbo Pascal. Sub menu yang ada pada menu
ini yaitu :
New
Save As
Print
Exit
Open
Save All
Printer setup
Closed file List
Save
Change Dir
DOS shell

MENU EDIT
i menu Edit menyediakan perintah-perintah yang berhubungan dengan
proses editing source Pascal seperti cut, copy dan paste pada jendela editor.
Sub menu yang ada pada menu ini yaitu :
Undo
Cut
Paste
Show Clipboard
Redo
Copy
Clear

MENU SEARCH
ada menu Search menyediakan perintah-perintah untuk mencari teks,
deklarasi prosedur serta lokasi kesalahan pada file source anda. Sub menu
yang ada pada menu ini yaitu
Find
Go to Line
Find Error
Objects
Replace
Number
Find Procedure
Units
Search Again
Show last
Previous
Globals
compiler error
Browser
Symbol

12

Logika Dan Algoritma Dengan Pascal


MENU RUN
i Menu Run menyediakan perintah-perintah dalam menjalankan program,
memulai dan mengakhiri sesi debugging. Sub menu yang ada pada menu ini
yaitu :
Run
Trace Into
Program Reset
Step Over
Go to Cursor
Parameters

MENU COMPILE
unakan perintah-perintah yang ada pada menu ini untuk melakukan proses
kompilasi source program, make atau build program. Sub menu yang ada pada
menu ini yaitu :
Compile
Target
Primary file
Make
Build
Clear primary file
Destination
Information

TUGAS :
1. Jelaskan apa yang dimaksud dengan Bahasa Pemrograman dan Program
2. Jelaskanlah kekurangan serta kelebihan dari Bahasa Pascal.
3. Ketikklah Nim, Nama serta Alamat Anda pada IDE Pascal 7.0, lalu praktikkan
perintah untuk memblok, mengcopy, paste dan cut.

13

Logika Dan Algoritma Dengan Pascal

STRUKTUR DASAR BAHASA


PEMROGRAMAN PASCAL

Modul

OBJEKTIF
Mahasiswa dapat mengetahui struktur dasar dari bahasa pemrograman
Pascal, serta teknik penulisan program pada Pascal.
STRUKTUR PROGRAM PASCAL
truktur dari suatu program Pascal terdiri dari sebuah judul program (program
heading) dan suatu blok program (program block) atau badan program (body
program) Blok program dibagi lagi menjadi dua bagian, yaitu bagian deklarasi
(declaration part) dan bagian pernyataan (statement part). Bagian deklarasi dapat
terdiri dari deklarasi label (labels declaration), defenisi konstanta (constants
definition), defenisi tipe (type definition), deklarasi variabel (variables declaration),
deklarasi prosedur (procedures declaration) dan deklarasi fungsi (function
declaration). Secara ringkas, struktur suatu program Pascal dapat terdiri dari:
1. Judul. program
2. Blok program
Bagian deklarasi
deklarasi label
defenisi konstanta
defenisi tipe
deklarasi variabel

14

Logika Dan Algoritma Dengan Pascal


deklarasi prosedur
deklarasi fungsi
Bagian pernyataan
PROGRAM PASCAL YANG PALING SEDERHANA
uatu program Pascal yang paling sederhana adalah program yang hanya
terdiri dari sebuah bagian pernyataan saja. Bagian pernyataan (statement part)
merupakan bagian yang terakhir dari suatu blok. Bagian ini diawali dengan kata
cadangan (reserved word) BEGIN dan diakhiri dengan kata cadangan END
Jadi suatu program Pascal yang sederhana dapat berbentuk :
Begin
writeln('Hello World')
end.
Bila program ini uijalankan, maka akan ditampilkan tulisan di layar sebagai
berikul:

Saya Pascal
Bagian pernyataan ini menunjukkan suatu tindakan yang akan dikerjakan
komputer. Tindakan yang dilakukan oleh program tergantung dari instruksi-intruksi
yang diberikan. pernyataan atau statemen (statement) merupakan instruksi
program. Pemyataan-pernyataan yang akan diberikan untuk dikerjakai komputer
ditulis diantara kata cadangan BEGIN dan END. Akhir penulisan END diakhiri
dengan titik.
Bentuk umum dari bagian pernyataan ini adalah sebagai berikut:
begin
statemen-1;
...
statement-n;
end.
Contoh :
Begin
writeln('Saya Pascal');
writeln('-----------');
End.
Bila program ini dijalankan, maka akan ditampilkan tulisan di layar sebagai berikut:
Saya Pascal
-----------

15

Logika Dan Algoritma Dengan Pascal


Yang perlu anda perhatikan adalah setiap statemen per barisnya diakhiri dengan
titik koma(;) kecuali statemen yang terakhir boleh diakhiri dengan titik koma
maupun tidak, bebas.
PENULISAN PROGRAM PASCAL
rogram Pascal tidak mengenal aturan penulisan di kolom tertentu, jadi boleh
ditulis mulai kolom berapapun. Penulisan statemen-statemen pada contoh
program yang menjorok masuk beberapa kolom tidak mempunyai pengaruh di
proses, hanya dimaksudkan supaya mempermudah pembacaan program,
sehingga akan lebih terlihat bagian-bagiannya.
Contoh :
begin
writeln ('Saya Pascal');
writeln ('-----------');
end.
Penulisan seperti diataspun boleh bahkan dapat juga disambung dalam satu baris,
sebagai berikut :

begin writeln('Saya Pascal'); writeln('-----------'); end.


Akan tetapi penulisan seperti tersebut tidaklah diajurkan dan sebisanya untuk
dihindari, karena tidak baik untuk dokumentasi program dan sulit membacanya.
JUDUL PROGRAM
i TURBO Pascal, judul program sifatnya adalah optional dan tidak signifikan
di dalam program. Jika ditulis dapat digunakan untuk memberi nama
program dan daftar dari parameter tentang komunikasi program dengan
lingkungannya yang sifatnya sebagai dokumentasi saja. Judul program bila ditulis
harus terletak pada awal dari program dan diakhiri dengan titik koma.
Contoh:
Program Contoh(output);
begin
writeln ('Hello World');
writeln ('-----------');
end.
Jadi judul program sifatnya sebagai dokumentasi saja, tidak signifikan
terhadap proses program. Misalnya program Anda hanya menampilkan hasil saja,
tetapi tidak meminta data input, pada judul program dapat didokumentasikan
dengan ditulis seperti diatas.

16

Logika Dan Algoritma Dengan Pascal


Parameter tentang komunikasi program dengan lingkungan ditulis didalam
tanda kurung buka dan tutup dan dapat ditulis apapun dengan dipisahkan oleh
koma.
Contoh-contoh penulisan judul program yang benar:
program Gaji (input, output);
program Laporan (layar, disk, printer, plotter);

BAGIAN DEKLARASI
agian deklarasi digunakan bila di dalam program Anda menggunakan
identifier. Identifier dapat berupa label, konstanta, tipe, variabel, prosedur dan
fungsi. Kalau suatu program menggunakan identifier, Pascal menuntut supaya
identifier tersebut dikenalkan terlebih dahulu sebelum digunakan, yaitu
dideklarasikan terlebih dahulu pada bagian ini.
1. Deklarasi Label
Kalau program Anda menggunakan statemen GOTO untuk meloncat ke
suatu statemen yang tertentu, maka dibutuhkan suatu label pada statemen
yang dituju dan label tersebut harus dideklarasikan terlebih dahulu pada
bagian deklarasi. Mendeklarasikan label diawali dengan kata cadangan LABEL
diikuti oleh kumpulan identifier label dengan dipisahkan oleh koma dan diakhiri
dengan titik koma.
Program Contoh_Label(Monitor);
label
100, selesai;
Begin
write('Selamat ');
goto 100;
writeln('Kalimat ini diloncati');
writeln('Kalimat ini tidak ditulis');
100:
write('Belajar ');
write('Bahasa ');
goto selesai;
writeln('Kalimat ini juga tidak ditulis');
selesai:
write('Pascal');
readln;
end.
Catatan :

17

Logika Dan Algoritma Dengan Pascal


Standar Pascal hanya mengijinkan label dalam bentuk angka maksimum
panjangnya 4 digit, sedang TURBO Pascal dapat berupa angka maupun
identifier.
2. Deklarasi Konstanta
Bila Anda ingin menggunakan identifier yang berisi nilai-nilai konstanta
maka harus didefinisikan terlebih dahulu pada bagian ini. Definisi konstanta
diawali dengan kata cadangan CONST diikuti oleh kumpulan identifier yang
diberi suatu nilai konstanta.
Program Contoh_Konstanta(Monitor);
Const
Potongan = 0.2;
Gaji = 25000;
Pegawai = 'Syaiful';
Begin
Writeln('Nama Pegawai
= ',Pegawai);
Writeln('Besar Potongan = ',Potongan);
Writeln('Besar Gaji
= ',Gaji);
End.
3. Deklarasi Tipe
Suatu data yang dipergunakan di program Pascal, identifier yang
digunakan untuk data tersebut harus disebutkan tipenya, yaitu dengan cara
men-definisikannya di bagian defmisi ini. Pascal menyediakan beberapa
macam tipe dari data, terdiri dari:
Data tipe sederhana (simple-type data)
Data tipe ini menghubungkan sebuah identifier dengan sebuah data.
Simple-type data dapat digolongkan menjadi tipe data standar (standard
data types) dan tipe data yang didefinisikan oleh pemakai (user-defined
data type). Yang termasuk tipe data standar adalah data dengan tipe
integer, real, char, string dan boolean. Yang termasuk user defined data
type adalah enumerated atau scalar (sejumlah data disebutkan satu per
satu) dan sub-range (range dari data).
Data tipe terstruktur (structured-type data)
Data tipe ini terdiri dari beberapa data item yang dihubungkan satu dengan
lainnya. Masing-masing grup dari data item dihubungkan dengan suatu
identifier tertentu. Ada 4 macam tipe dari data terstruktur, yaitu array,
record, file dan set.
Data tipe penunjuk (pointer-type data)
Data ini digunakan untuk membuat data terstruktur tipe dinamik.

18

Logika Dan Algoritma Dengan Pascal


Untuk mendefinisikan tipe dari data yang akan dipergunakan di dalam
program, kata cadangan TYPE digunakan sebagai judul defenisi tipe dan
diikuti oleh satu atau lebih defenisi tipe yang dipisahkan dengan titik koma.
Contoh mendefinisikan tipe data sederhana :
Program Contoh_Defenisi_Tipe_Data_Standard;
Type
Nomer = Integer;
Lagi = Boolean;
NilaiUjian = Real;
Bagian Defenisi Tipe
NilaiHuruf = Char;
Nama = String[30];
Alamat = String[35];
Begin
. . .
End.
Dari defmisi tipe tersebut, berarti identifier yang akan digunakan di dalam
program adalah :
Nomer dengan tipe integer
Lagi dengan tipe Boolean (logika)
NilaiUjian dengan tipe numerik real
NilaiHuruf dengan tipe char panjang maksimum 1 karakter
Nama dengan tipe string panjang maksimum 30 karakter
Alamat dengan tipe string panjang maksimum 35 karakter
4. Deklarasi Variable
Kalau konstanta merupakan identifier berisi data konstanta yang nilainya
sudah ditentukan dan pasti, tidak dapat dirubah di dalam program, maka
variable adalah identifier yang berisi data yang dapat berubah-ubah nilainya di
program. Setiap variabel di dalam program Pascal harus dideklarasikan
sebelum digunakan. Kata cadangan VAR digunakan untuk sebagai judul di
dalam bagian deklarasi variabel dan diikuti oleh satu atau lebih identifier yang
dipisahkan koma, diikuti dengan titik dua dan tipe dari datanya serta diakhiri
denga koma.
Var
Total, Gaji, Tunjangan : Real;
Menikah : Boolean;
Bagian Deklarasi
Jmlh_Anak : Integer;
Variable
Keterangan : String[25];
begin
Gaji := 25000;
19

Logika Dan Algoritma Dengan Pascal


Menikah := True;
Jmlh_Anak := 3;
Tunjangan := 0.25 * Gaji + Jmlh_Anak * 30000;
Total := Gaji + Tunjangan;
Keterangan := 'Karyawan Teladan';
Writeln(' Gaji Bulanan
= Rp.',Gaji);
Writeln(' Tunjangan
= Rp.',Tunjangan);
Writeln(' Total Gaji
= Rp.',Total);
Writeln(' Sudah Menikah
= ',Menikah);
Writeln(' Jumlah Anak
= ',Jmlh_Anak);
Writeln(' Keterangan
= ',Keterangan);
readln;
End.

ELEMEN-ELEMEN DASAR
PROGRAM PASCAL

Modul

OBJEKTIF
Mahasiswa dapat mengetahui elemen-elemen dasar program Pascal, tipe
variable, operator serta ekspresi pada Pascal.
PENDAHULUAN
ntuk mempelajari suatu bahasa komputer guna dapat membuat program
dengan benar dan dapat mengembangkannya, langkah pertama Anda harus
mengetahui terlebih dahulu struktur dari program yang akan dibuat dengan bahasa
tersebut dan hal ini telah Anda pelajari di bab sebelumnya. Selanjutnya langkah
kedua adalah Anda harus mengetahui terlebih dahulu elemen-elemen yang
membentuk program tersebut.

U
20

Logika Dan Algoritma Dengan Pascal


SIMBOL-SIMBOL DASAR
rogram Pascal dapat dibentuk dari simbol-simbol yang terdiri dari huruf-huruf,
angka-angka dan simbol-simbol khusus.
Huruf-huruf:
A sampai dengan Z, a sampai dengan z dan _ (garis bawah).

Angka-angka:
0123456789 (0 sampai dengan 9).
Simbol-simbol khusus:
+ -*/ = *<>()[].,:;'$
Keterangan :
Huruf besar (upper case) dan huruf kecil (lower case) dianggap sama, tidak
dibedakan.
KATA-KATA CADANGAN
ata-kata cadangan (reserved words) adalah kata-kata yang sudah didefinisikan oleh Pascal yang mempunyai maksud tertentu. Kata-kata
cadangan tidak boleh didefinisikan ulang oleh pemakai, sehingga tidak dapat
dipergunakan sebagai pengenal (identifier).
Kata-kata cadangan yang dipergunakan adalah :
absolute
external
nil
shl
and
file
not
shr
array
forward
overlay
string
begin
for
of
then
case
function
or
type
const
goto
packed
to
div
inline
procedure
until
do
if
program
var
downto
in
record
while
else
label
repeat
with
end
mod
set
xor
Keterangan :
Kata-kata cadangan yang diberi tanda
menunjukkan kata-kata cadangan yang
tidak ada di standard Pascal.

VARIABLE
21

Logika Dan Algoritma Dengan Pascal

emakai dapat mendefinisikan sendiri pengenal untuk pengenal label,


pengenal tipe, pengenal konstanta, pengenal variabel, pengenal prosedur dan
pengenal fungsi. Pengenal yang didefinisikan sendiri ini bebas, tetapi dengan
ketentuan-ketentuan sebagai berikut:
1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa
huruf.
2. Tidak boleh mengandung blank (spasi).
3. Tidak boleh mengandung simbol-simbol khusus, kecuali garis bawah
4. Panjangnya maksimum 127 karakter.
Misalnya :
Nama Langganan
No_Induk
P3K
05Stambuk
Harga&Jual
Nama Siswa

Benar
Benar
Benar
Salah, karena karakter pertama harus huruf
Salah, tidak boleh mengandung karakter khusus
Salah, tidak boleh mengandung spasi (blank)

Bentuk Umum :
Var
NamaVariable1,NamaVariable2, ... ,NamaVariableN:TipeData1;
...
NamaVariableN1,NamaVariableN2,...,NamaVariableNN:TipeDataN
Contoh :
Var
Nilai1, Nilai2, Nilai3 : Integer;
Nim : String[9];
Max : Byte;
KONSTANTA
ika dalam membuat suatu program kita sering menggunakan bilangan
(numerik) maupun kalimat (string) yang sama berkali kali, ada baiknya kita
menjadikan bilangan atau kalimat tersebut menjadi suatu konstanta. Pertimbangan
lain kita memakai konstanta jika dalam suatu program kita merencanakan adanya
pengembangan program kelak dan terdapat bilangan / string yang nilainya
mungkin diupdate maka sebaiknya bilangan/string tersebut juga kita jadikan
sebagai konstanta.

manfaat konstanta
22

Logika Dan Algoritma Dengan Pascal

enggunaan konstanta akan membuat program kita menjadi lebih mudah


dimengerti dan diperbaiki. Dengan menggunakan konstanta, Kita dapat
memberikan nama yang mudah kita ingat dan pahami untuk suatu bilangan
kompleks. Misalnya untuk konstanta aritmatik 3.1415926536 kita akan lebih mudah
menulis Phi daripada secara explicit menyatakan nilainya. Dan bila kita ingin
mengganti nilai Phi tersebut kita cukup mengganti sekali saja yaitu pada bagian
pendeklarasian konstanta.
Deklarasi konstanta
onstanta dideklarasikan pada awal program sebelum blok Begin-End
program utama dituliskan. Untuk mendeklarasikan konstanta harus diawali
dengan reserverd word const.
Bentuk Umum :
Const
NamaKonstanta1 = NilaiKonstanta1;
NamaKonstanta2 = NilaiKonstanta2;

NamaKonstantaN = NilaiKonstantaN;

Contoh :
Const
Phi = 3.1415926536
Panjang = 100
Lebar = 50
Luas = Panjang * Lebar
Judul = Speak Softly Love
Seperti yang kita lihat diatas bahwa pendeklarasian konstanta dapat juga
berupa hasil operasi dari konstanta sebelumnya yaitu constanta Luas
Sesuai dengan namanya konstanta, maka nilai dalam konstanta tersebut akan
selalu konstan (tetap). Kita tidak dapat mengganti nilainya pada runtime program.
Perubahan yang terjadi pada konstanta mensyaratkan peng-compile-an ulang
source program.
TIPE DATA SEDERHANA
ascal telah menyediakan beberapa tipe data sederhana yang sudah siap kita
pakai. Pada saat mendeklarasikan sebuah variable, kita harus pula menentukan
tipe data dari nilai yang dapat ditampung variable tersebut.
Tipe-Tipe data sederhana yang telah disiapkan oleh pascal adalah sbb :
Boolean
23

Logika Dan Algoritma Dengan Pascal

Byte
Char
Integer
Real
String

INTEGER
ipe data integer adalah tipe data yang dapat menampung nilai yang
merupakan bilangan bulat. Tipe data integer terbagi lagi atas :

TIPE
DATA
ShortInt
Integer
LongInt
Byte
Word

RANGE
-128 . . 127
-32768 . . 32767
-2147483648 . . 2147483648
0 . . 255
0 . . 65535

UKURAN
(BYTE)
1
2
4
1
2

FORMAT
Signed 8-bit
Signed 16-bit
Signed 32-bit
Unsigned 8-bit
Unsigned 16-bit

BOOLEAN
ipe data boolean biasa digunakan untuk merepresentasikan logika, tipe data
boolean hanya dapat bernilai True (1) atau False (0). Beberapa macam tipe
data boolean dirangkum pada table dibawah ini :

TIPE DATA

RANGE

UKURAN (BYTE)

Boolean
ByteBool
WordBool
LongBool

Byte-Sized
Byte-Sized
Word-Sized
LongInt-Sized

1(8 bit)
1(8 bit)
2(16 bit)
4(32 bit)

Tipe data ByteBool, WordBool, dan LongBool biasa dipakai dalam pembuatan
program untuk windows (compiler Turbo Pascal For Window atau Borldan Delphi).
Untuk program DOS pada umumnya menggunakan Tipe Boolean.
Dalam suatu ekspresi, operator-operator seperti = , <> , > , < , >= , <= dan ini
akan banyak dipakai untuk menentukan hasil dari suatu tipe data boolean.
REAL / FLOATING POINT
24

Logika Dan Algoritma Dengan Pascal

ipe data real biasa digunakan untuk merepresentasikan nilai pecahan. Tipe
data real ini juga terbagi menjadi beberapa tipe yang terlihat pada table
dibawah ini :
TIPE DATA

RANGE

Real
Single
Double
Extended
Comp

2.9x10 . . 1.7x10
-45
38
1.5x10 . . 3.4x10
-324
308
5x10 . . 1.7x10
-4932
4932
3.4x10
. . 1.1x10
18
18
-9.2x10 . . 9.2x10

-39

38

UKURAN
(BYTE)
6
4
8
10
8

DIGIT
11 12
78
15 16
19 20
19 20

KARAKTER
ipe data karakter hanya dapat menampung satu karakter saja dan
mengalokasikan satu byte memory.

Bentuk Umum :
Var
<NamaVariable> : char;
Contoh :
Var
Kalimat : string;
Nama : string[25];
Alamat : string[30];
STRING
ipe data string adalah merupakan gabungan (array) dari karakter sebanyak
256 (default). Mengenai array akan dijelaskan pada modul berikutnya.

Bentuk Umum
Var
<NamaVariable> : string;
Contoh :
Var
Kalimat : string;
Nama : string[25];
Alamat : string[30];
25

Logika Dan Algoritma Dengan Pascal


Ada baiknya jika kita menentukan berapa banyak karakter dalam tipe string
tersebut dibutuhkan. Hal ini berhubungan dengan jumlah memori yang
dialokasikan. Seperti pada contoh di atas variable nama mengalokasikan tempat
sebanyak 25 karakter, dan itu berarti memory yang dialokasikan sebesar 25 byte.
Akan sia sia jika kita menuliskannya secara default (256 karakter) karena jarang
sekali bahkan mungkin tidak ada seseorang yang memiliki nama dengan panjang
256 karakter.
TIPE DATA ENUMERASI
Adalah tipe data baru yang elemennya kita sebutka satu persatu.
Bentuk Umum
Type
<NamaType> = (elemen1,elemen2, . . . , elemenN);
Contoh :
Type
Hari = (Senin, Selasa, Rabu, Kamis, Jumat, Sabtu);
Var
HariKerja : Hari;
Begin
. . .
for HariKerja := Senin to Sabtu do
. . .
end.
Tanda Operasi (Operator)
Operator di dalam Pascal secara umum dikelompokkan kedalam 6 kategori, yaitu :
1. Operator Penugasan
2. Operator Binary Aritmatika
3. Operator Unary Aritmatika
4. Operator Relasi Perbandingan
5. Operator Boolean (logika)
6. Operator Bitwise
OPERATOR PENUGASAN
perator Penugasan (Assignment operator) dalam bahasa Pascal berupa
tanda titik dua dan sama dengan (:=). Contoh :

O
26

Logika Dan Algoritma Dengan Pascal

nilai := 80;
A := x * y;
Artinya : variable nilai diisi dengan 80 dan variable A diisi dengan hasil perkalian
antara x dan y.
OPERATOR Binary ARITMATIKA
Bahasa Pascal menyediakan enam operator binary aritmatika, yaitu :
1. *
: untuk perkalian
2. /
: untuk pembagian
3. Div
: untuk pembagian bulat
4. Mod
: untuk sisa pembagian (modulus)
5. +
: untuk pertambahan
6. : untuk pengurangan
OPERATOR UNARY ARITMATIKA
Bahasa Pascal menyediakan dua operator unary aritmatika, yaitu :
1. Unary Minus (-)
menunjukkan bilangan negatif baik pada
operand numerik integer maupun numerik real.
2. Unary Positif (+)
menunjukkan bilangan positif baik pada
operand numerik integer maupun numerik real namun bersifat optional,
artinya jika bilangan tidak bertanda - maka akan dianggap bilangan
positif.
OPERATOR RELASI (HUBUNGAN)
Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah
operand (sebuah nilai atau variable). Operator hubungan dalam bahasa Pascal :
1. =
Sama Dengan
2. <>
Tidak Sama Dengan
3. <
Lebih Kecil Dari
4. >
Lebih Besar Dari
5. <=
Lebih Kecil Sama Dengan
6. >=
Lebih Besar Sama Dengan
7. in
Anggota Dari
OPERATOR BOOLEAN (LOGIKA)
Operator Boolean (logika) digunakan untuk membandingkan logika hasil dari
operator-operator hubungan. Operator logika ada empat macam, yaitu :
27

Logika Dan Algoritma Dengan Pascal


1.
2.
3.
4.

Not
And
Or
Xor

Operator boolean negasi


Operator boolean logika And
Operator boolean logika Or
Operator boolean logika Xor

OPERATOR BITWISE
Operator bitwise digunakan untuk memanipulasi bit-bit dari nilai data yang ada di
memori. Operator bitwise dalam bahasa Pascal :
1. not
Bitwise negation
2. and
Bitwise and
3. or
Bitwise or
4. xor
Bitwise xor
5. shl
Pergeseran bit kekiri
6. shr
Pergeseran bit kekanan
EKSPRESI PADA PASCAL
kspresi matematika yang sering kita gunakan tidak dapat secara langsung
kita masukkan kedalam kode Pascal, untuk hal tersebut kita perlu melakukan
konversi dari ekspresi matematika tersebut menjadi suatu ekspresi yang dapat
dikenal oleh Pascal dengan pemakaian operator yang ada padanya.
Misalnya :

vt =

mh
w. g

Untuk mengkonversi persamaan di atas ke dalam sintaks bahasa pemrograman


Pascal perhatikan petunjuk berikut ini :
1. Tentukan variabel bebas dan tidak bebasnya. Dalam contoh diatas variabel
bebas adalah m, h, w dan g, sedangkan variabel tidak bebasnya adalah vt.
Semua variabel bebas menjadi data masukan (input) dan variabel tidak
bebasnya menjadi keluaran (output).
2. Tentukan urutan operasi yang dilakukan oleh rumus tersebut. Dalam contoh di
atas, urutan operasinya adalah :
a. m - h
b. w . g
c. m h
w.g
3. Tegaskan urutan-urutan operasi tersebut dengan menggunakan tanda kurung :
28

Logika Dan Algoritma Dengan Pascal


(m h)
(w x g)
4. Tuliskan ekspresi tersebut ke dalam operator (sintaks) bahasa Pascal :
(m h) / (w * g)
5. Tuliskan programnya secara lengkap, misalnya :
{deklarasi variable}
VAR
vt,m,h,w,g : real;
BEGIN
{inisialisasi variable}
m := 65.2;
h := 15.5;
w := 2.5;
g := 9.8;
{ekspresi vt dalam pascal}
vt := (m-h)/(w*g);
writeln('Nilai vt = ',vt);
readln;
END.

TUGAS
onversi persamaan aritmatik dibawah ini kedalam ekspresi Pascal dan
buatlah programnya secara lengkap seperti contoh diatas.

K
1.

P =V

2.

P=

V
R

Z + (0.90 7 X )
N
29

Logika Dan Algoritma Dengan Pascal

3.

X =

z 2 + 50
1

TU +
2
C +3

3 (T + NI ) T NI
+
X 0.5
Z
4. C =
2
X + 18 X + Z
2
Y

STATEMENT
INPUT DAN OUTPUT
OBJEKTIF
30

Modul

Logika Dan Algoritma Dengan Pascal


Mahasiswa dapat mengetahui beberapa statemen, procedure serta fungsi pada
Pascal yang digunakan untuk operasi input dan output.
MEMASUKKAN DATA
ara yang paling banyak digunakan untuk memasukkan data adalah dengan
cara mengetikkannya lewat keyboard. TURBO Pascal menyediakan prosedur
untuk maksud tersebut, yaitu peosedur READ dan READLN. Prosedur READ dan
READLN mempunyai aturan tertentu untuk beberapa tipe pengenal variabel. Tiaptiap data yang dimasukkan harus sesuai dengan tipe variabelnya.

Tipe variabel
Char

Keterangan
Memasukkan sebuah karakter bila lebih
terpotong, yang dianggap hanya yang pertama

String

Memasukkan
didefenisikan

Integer

Memasukkan data numerik bulat diantara nilai -32767


sampai 32767

Real

Memasukkan data numerik real maksimum 30 digit


dapat tanpa titik desimal

Boolean

Data tipe ini tidak diijinkan

string

maksimum

sepanjang

akan
yang

PROCEDURE READ
Fungsi :
Pada modus berkas (file) akan membaca tiap komponen dari file tersebut
kesuatu variable.
Pada modus text akan membaca satu atau lebih nilai dan menyimpannya
kedalam satu atau lebih variable pula.

Syntax :
Untuk modus file (berkas) :
procedure Read(F , V1 [, V2,...,Vn ] );
Untuk modus text :
procedure Read( [ var F: Text; ] V1 [, V2,...,Vn ] );
PROCEDURE READLN
31

Logika Dan Algoritma Dengan Pascal

emiliki fungsi yang sama seperti pada procedure Read hanya pada Readln
akan memberikan karakter ganti baris (new line).

Syntax :
procedure Readln([ var F: Text; ] V1 [, V2, ...,Vn ]);
Pada waktu memasukkan data, umumnya supaya lebih interaktip, maka dapat
ditampilkan terlebih dahulu penjelasan tentang data yang akan dimasukkan. Untuk
maksud ini sebelum prosedur READ atau READLN dapat digunakan prosedur
WRITE terlebih dahulu untuk menampilkan penjelasan tentang data yang akan
dimasukkan lewat prosedur READ atau READLN.
Contoh Program :
{contoh program pemakaian statement readln dan write.}
Program Readln_Write(input,output);
uses Crt;
var
s : String;
begin
clrscr;
Write(' Ketikkan sembarang kalimat : ');
Readln(s);
Writeln(' Kalimat Anda : ',s);
Writeln(' Tekan <Enter> Untuk keluar ');
Readln;
end.
Program Celcius(input, output );
{ Program ini untuk Mengkonversikan dari derajad celcius
menjadi derajad fahrenheit }
Uses CRT;
Var
C, F : real;
Begin
Clrscr;
Write(' Berapa Celcius
= ');
ReadLn(C) ;
{proses konversi}
F := 1.8 * C + 32;
WriteLn;
32

Logika Dan Algoritma Dengan Pascal


WriteLn(C, ' Celcius adalah ',F,' Fahrenheit');
Readln;
End.
FUNGSI READKEY
Membaca karakter dari keyboard
Syntax :
function ReadKey: Char;
Catatan :
Karakter yang diketikkan tidak akan ditampilkan pada monitor.
Contoh Program
{Contoh program untuk fungsi Readkey.}
Program Kode_ASCII(input,output);
uses Crt;
var
C: Char;
begin
Clrscr;
Writeln('<< Tekan sembarang tombol >>');
C := Readkey;
Writeln(' Anda menekan tombol ', C);
Writeln(' Dimana kode ASCII-nya ', Ord(C), '.');
Readln;
end.
MENAMPILKAN HASIL
ntuk menampilkan hasil dengan bahasa Pascal digunakan prosedur WRITE
atau WRITELN. Perbedaannya adalah, prosedur WRITE menampilkan hasil
tanpa ganti baris dan tampilan berikutnya akan disambung dalam baris yang sama.
Sedang prosedur WRITELN digunakan untuk menampilk tampilan per baris. akan
ganti baris untuk tampilan berikutnya.

Syntax :
procedure Write( [ var F: Text; ] P1 [,P2,...,Pn ] );
procedure Writeln([ var F: Text; ] P1 [, P2, ...,Pn ] );
33

Logika Dan Algoritma Dengan Pascal


Contoh Program ;
{ Contoh program dengan pemanfaatan statement Write }
Program Statement_Write(Output);
Uses CRT;
Var
Kalimat : string[15];
Begin
Clrscr;
Kalimat := 'Belajar Pascal';
Write(' Kalimat : ') ;
Write(Kalimat);
Readln;
End.
{Perbedaan program sebelumnya bila memakai statemen Writeln}
Program Statement_Writeln(Output);
Uses CRT;
Var
Kalimat : string[15];
Begin
Clrscr;
Kalimat := 'Belajar Pascal';
Writeln('Kalimat : ') ;
Writeln(Kalimat);
Readln;
End.
Bentuk tampilan yang akan dihasilkan dapat menurut default yang ada atau
dapat juga diatur dengan format yang tertentu. Tampilan dapat dihasilkan di layar
(monitor) maupun di printer. Tampilan di layar dapat diatur dengan efek-efek
tertentu, demikian juga dengan tampilan di printer.
TAMPILAN SECARA DEFAULT
ampilan default merupakan tampilan yang mengikuti bentuk pengaturan
default yang sudah ditentukan oleh Pascal.

Contoh Program
{ Contoh program dengan bentuk tampilan default }
Program Tampilan_Default(Output);
Uses CRT;
34

Logika Dan Algoritma Dengan Pascal


Var
Bulat1, Bulat2 : integer;
Pecahan1, Pecahan2 : Real;
Huruf1, Huruf2 : Char;
String1, String2 : String[5];
Logika1, Logika2 : Boolean;
Begin
{ inisialisasi tiap variable }
Bulat1 := 123;
Bulat2 := 12345;
Pecahan1 := 123.45;
Pecahan2 := -123.45;
Huruf1 := 'A';
Huruf2 := 'B';
String1 := 'BASIC';
String2 := 'COBOL';
Logika1 := True;
Logika2 := False;
{ Menampilkan data }
Clrscr;
WriteLn(Bulat1, Bulat2);
WriteLn(Pecahan1, Pecahan2);
WriteLn (Huruf1, Huruf2);
WriteLn (String1, String2);
WriteLn(Logika1, Logika2);
Readln;
End.
TAMPILAN TERFORMAT
alaupun bentuk default dianggap cukup untuk menampilkan bentuk pada
program yang sederhana. tetapi untuk program-program aplikasi dibutuhkan
bentuk format tertentu yang harus diatur kembali. Untuk mengatur format tampilan
dengan prosedur WRITE atau WRITELN dapat dipergunakan parameterparameter tertentu. yang menyebutkan panjang dari tampilannya.

Contoh Program
{ Contoh program dengan bentuk tampilan default }
Program Tampilan_Default(Output);
Uses CRT;
Var
Bulat1, Bulat2 : integer;
35

Logika Dan Algoritma Dengan Pascal


Pecahan1, Pecahan2 : Real;
Huruf1, Huruf2 : Char;
String1, String2 : String[5];
Logika1, Logika2 : Boolean;
Begin
{ inisialisasi tiap variable }
Bulat1 := 123;
Bulat2 := 12345;
Pecahan1 := 123.45;
Pecahan2 := -123.45;
Huruf1 := 'A';
Huruf2 := 'B';
String1 := 'BASIC';
String2 := 'COBOL';
Logika1 := True;
Logika2 := False;
{ Menampilkan data }
Clrscr;
WriteLn(Bulat1:6, Bulat2:6);
WriteLn(Pecahan1:8:2, Pecahan2:10:3);
WriteLn(Huruf1:3, Huruf2:5);
WriteLn(String1:7, String2:9);
WriteLn(Logika1:7, Logika2:7);
Readln;
End.

PENGATURAN LETAK DI LAYAR


eberapa prosedur standar disediakan oleh TURBO Pascal untuk meng-atur
tampilan di layar terminal, sehingga tampilan akan lebih baik dan mudah
dibaca hasi outputnya.

PROSEDUR CLRSCR
rosedur ini digunakan untuk membersihkan lavar dari tampilan-tampilan
sebelumnya dan meletakkan cursor di posisi ujung kiri atas dari layar,
tepatnya berada pada koordinat (1,1).

P
36

Logika Dan Algoritma Dengan Pascal

Contoh Program :
{Contoh program dengan pemakaian prosedur CLRSCR.}
Program Hapus_Layar(output);
Uses Crt;
Begin
Clrscr;
Writeln('Hello....');
Writeln('Tekan <ENTER> untuk menghapus layar !...');
Readln;
ClrScr;
Readln;
End.
PROSEDUR GOTOXY (XPOS, YPOS)
rosedur ini digunakan untuk meletakkan cursor di posisi layar yang
ditunjukkan oleh nilai XPOS dan YPOS. Nilai XPOS menunjukkan posisi
sumbu X (posisi horisontal atau posisi kolom diantara kolom 1 sampai dengan
kolom 80). Nilai YPOS menunjukkan posisi sumbu Y (posisi vertikal atau posisi
baris. diantara baris 1 sampai dengan baris 25).

Contoh Program :
{Contoh program dengan pemakaian prosedur GotoXY.}
Program Koordinat(output);
Uses Crt;
Begin
Clrscr;
{meletakkan kursor pada baris ke 12 dan kolom ke 31}
GotoXY(31,12);
Writeln('Pemrograman Pascal');
Readln;
End.
TUGAS :
Buatlah sebuah program yang akan meminta input berupa data pribadi
mahasiswa yang terdiri dari nim, nama, tempat, tanggal lahir, alamat, nomor
telepon dan jenis kelamin. Lalu tampilkan data tersebut secara tabular.
Dengan procedure GotoXY buatlah program yang akan meminta sembarang
kalimat, lalu menampilkan kalimat tersebut tepat ditengah layar monitor,
gunakan fungsi lenght(s:string) untuk menghitung jumlah karakter pada string.
37

Logika Dan Algoritma Dengan Pascal


Buatlah program yang akan melakukan konversi suhu dari Celcius ke Reamur
dan Fahrenheit.
Buatlah sebuah program yang akan menghitung luas serta volume sebuah
balok dimana input adalah panjang, lebar serta tingg.

PENYELEKSIAN
KONDISI (BRANCHING)
38

Modul

Logika Dan Algoritma Dengan Pascal


OBJEKTIF
Mahasiswa dapat mengetahui konsep dasar Algoritma serta penerapannya
pada bidang pemrograman komputer serta keterkaitan antara logika dan
Algoritma itu sendiri.
PENYELEKSIAN KONDISI
enyeleksian kondisi digunakan untuk mengarahkan perjalanan suatu proses.
Penyeleksian kondisi dapat diibaratkan sebagai katup atau kran yang
mengatur jalannya air. Bila katup terbuka maka air akan mengalir dan sebaliknya
bila katup tertutup air tidak akan mengalir atau akan mengalir melalui tempat lain.
Fungsi penyeleksian kondisi penting artinya dalam penyusunan bahasa Pascal,
terutama untuk program yang kompleks.

STRUKTUR KONDISI IFTHEN ...


truktur if dibentuk dari pernyataan if dan sering digunakan untuk menyeleksi
suatu kondisi tunggal. Bila proses yang diseleksi terpenuhi atau bernilai benar,
maka pernyataan yang ada di dalam blok if akan diproses dan dikerjakan. Bentuk
umum struktur kondisi if adalah :
if expr then
statement;

Contoh Program :
{ Program struktur kondisi if tunggal
untuk memeriksa suatu kondisi }
Program Nilai_Mahasiswa(input,output);
Uses CRT;
Var
nilai : real;
Begin
Clrscr;
Write(' Masukan nilai yang didapat = ');
Readln(nilai);
{ penyeleksian nilai }
If nilai > 65 Then
Writeln(' ANDA LULUS !!!! ');
Readln;
End.

39

Logika Dan Algoritma Dengan Pascal


Bila program tersebut dijalankan dan kita memasukan nilai 80, maka perintah
mencetak perkataan LULUS !!!! akan dilaksanakan, namun sebaliknya bila kita
memasukan sebuah nilai yang kurang dari 65 maka program akan berhenti dan
tidak dihasilkan apa-apa.
Contoh Program :
{ Program contoh penerapan struktur kondisi if }
Program Seleksi(input,output);
Uses CRT;
Var
a,b,c,max : integer;
Begin
Clrscr;
Write(' Entry bil 1 : ');Readln(a);
Write(' Entry bil 2 : ');Readln(b);
Write(' Entry bil 3 : ');Readln(c);
{Menentukan bilangan terbesar }
If (a>b) And (a>c) Then
max:=a;
If (b>a) And (b>c) Then
max:=b;
If (c>a) And (c>b) Then
max:=c;
{ Cetak bilangan terbesar }
Writeln(' Bil terbesar = ',max);
{ menentukan apakah bilangan tersebut
positif atau negatif }
If (max>0) Then
Writeln(' Bil tersebut adalah bil positif');
If (max<0) Then
Writeln(' Bil tersebut adalah bil negatif');
Readln;
End.

STRUKTUR KONDISI IF...THEN...ELSE


alam struktur kondisi if...Then...else minimal terdapat dua pernyataan. Jika
kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan
pertama yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah maka
pernyataan yang kedua yang dilaksanakan. Bentuk umumnya adalah sebagai
berikut :
40

Logika Dan Algoritma Dengan Pascal


if expr then
statement
else
statement;
Contoh Program :
{ Program struktur kondisi if ... Then ... Else
untuk memeriksa suatu kondisi }
Program Nilai_Mahasiswa(input,output);
Uses CRT;
Var
nilai : real;
Begin
Clrscr;
Write(' Masukan nilai yang didapat = ');
Readln(nilai);
{ penyeleksian nilai }
If nilai > 65 Then
Writeln(' ANDA LULUS !!!! ')
Else
Writeln(' TIDAK LULUS !!!! ');
Readln;
End.
Bila program tersebut dijalankan dan kita memasukan nilai 80 maka akan
dicetak perkataan LULUS !!! namun bila kita memasukan nilai yang kurang dari
65 maka akan tercetak perkataan TIDAK LULUS !!!. Hal ini berbeda dengan
struktur if dimana program akan berhenti bila kita memasukan nilai kurang dari 65.
STRUKTUR KONDISI CASE ... ELSE ...
truktur kondisi Case...Else... digunakan untuk penyeleksian kondisi dengan
kemungkinan yang terjadi cukup banyak. Struktur ini akan melaksanakan salah
satu dari beberapa pernyataan case tergantung nilai kondisi yang ada.. Jika tidak
ada nilai pada case yang sesuai dengan nilai kondisi, maka proses akan
diteruskan kepada pernyataan yang ada di bawah Else.

Bentuk umum dari struktur kondisi ini adalah :


case expression of
case: statement;
...
41

Logika Dan Algoritma Dengan Pascal


case: statement;
end
Atau :
case expression of
case: statement;
...
case: statement;
else
statement
end
Contoh Program :
{ Contoh program dengan pemakaian statement Case }
Program Seleksi_Case(Input,Output);
Uses CRT;
Var
Ch : Char;
Begin
clrscr;
write(' Ketikkan sembarang key pada keyboard...');
readln(Ch);
write(' Klasifikasi Key yang anda tekan adalah : ');
case Ch of
'A'..'Z', 'a'..'z': WriteLn('Huruf');
'0'..'9':
WriteLn('Digit');
'+', '-', '*', '/': WriteLn('Operator');
else
WriteLn('Special character');
end;
readln;
End.
Bila program dijalankan akan meminta input sembarang karakter yang ditekan
dari keyboard lalu akan menentukan tipe karakter tersebut.
Contoh Program :
Var
hari : integer;
Begin
Clrscr;
Writeln('<< Menentukan nama hari >>');
Writeln('1 = Senin 2 = Selasa 3 = Rabu 4 = Kamis');
Writeln('5 = Jum','''','at 6 = Sabtu 7 = Minggu');
42

Logika Dan Algoritma Dengan Pascal


Writeln;
Write(' Masukan kode hari (1-7) = ');
Readln(hari);
Case hari of
1 : Writeln('-> Hari Senin');
2 : Writeln('-> Hari Selasa');
3 : Writeln('-> Hari Rabu');
4 : Writeln('-> Hari Kamis');
5 : Writeln('-> Hari Jum','''','at');
6 : Writeln('-> Hari Sabtu');
7 : Writeln('-> Hari Minggu');
Else Writeln(' Kode hari yang Anda masukan SALAH ');
End;
Readln;
End.

TUGAS :
1. Buatlah program yang akan mencetak bilangan terbesar dari 5 bilangan yang
diinputkan oleh user.
2
2. Buatlah program untuk menentukan akar-akar persamaan kuadrat ax +bx + c
2
dimana tentukan dahulu determinannya D= b -4ac maka jika :
D = 0 terdapat dua akar kembar yaitu :

x1 = x 2 =

b
2a

D > 0 terdapat dua akar real berbeda yaitu :

x1 =

b+ D
2a

x2 =

b D
2a

D < 0 terdapat dua akar imaginair berbeda yaitu :

x1 =

b
D
+
i
2a
2a

x2 =

b
D

i
2a
2a

STATEMEN DAN
STRUKTUR PERULANGAN

Modul

7
43

Logika Dan Algoritma Dengan Pascal


OBJEKTIF
Mahasiswa mampu menguasai statemen-statemen pada Pascal yang dapat
digunakan dalam struktur perulangan, serta membedakan pada kasus
perulangan yang bagaimana tepatnya suatu statemen perulangan dipakai.

STRUKTUR PERULANGAN

alam bahasa Pascal tersedia beberapa statemen yang digunakan untuk


melakukan proses yang berulang-ulang sebanyak keinginan kita. Misalnya
saja, bila kita ingin menginput dan mencetak bilangan dari 1 sampai 100 bahkan
1000, tentunya kita akan merasa kesulitan. Namun dengan struktur perulangan
proses, kita tidak perlu menuliskan perintah sampai 100 atau 1000 kali, cukup
dengan beberapa perintah saja. Struktur perulangan dalam bahasa Pascal
mempunyai bentuk yang bermacam-macam.

STRUKTUR PERULANGAN FOR


truktur perulangan for biasa digunakan untuk mengulang suatu proses yang
telah diketahui jumlah perulangannya. Dari segi penulisannya, struktur
perulangan for tampaknya lebih efisien karena susunannya lebih simpel dan
sederhana.
Bentuk umum perulangan for adalah sebagai berikut :
for var := Nilai_Awal to Nilai_Akhir do
statement
atau :
for var := Nilai_Awal downto Nilai_Akhir do
statement

Catatan :
ontrol variable harus dalam bentuk ordinal (bilangan bulat). Untuk perulangan
dengan struktur to maka kontrol variable akan ditambahi 1 setiap
perulangan, sedangakan dengan struktur downto kontrol variable akan dikurangi
1 setiap perulangan

Contoh Program :
{ Program perulangan menggunakan statement for }
Uses CRT;
Var
x : integer;
Begin
44

Logika Dan Algoritma Dengan Pascal


Clrscr;
for x := 1 to 10 do
Writeln(x,' BAHASA PASCAL ');
Readln;
End.
Contoh Program :
{ Mencari total dan rata-rata sejumlah bilangan
denga menggunakan statement for }
Uses CRT;
Var
r,x,t : Real;
y,i : Integer;
Begin
Clrscr;
for y:=1 to 3 do
for i:=0 to 2 do
Begin
Write(' Masukkan bilangan ke [',y,'-',i,'] : ');
Readln(x);
t := t + x;
End;
Writeln(' Total = ',t:10:2);
r := t / i;
Writeln(' Rata rata = ',r:10:2);
Readln;
End.
STRUKTUR PERULANGAN WHILE
erulangan WHILE banyak digunakan pada program yang terstruktur.
Perulangan ini banyak digunakan bila jumlah perulangannya belum diketahui.
Proses perulangan akan terus berlanjut selama kondisinya bernilai benar (true)
dan akan berhenti bila kondisinya bernilai salah.

Bentuk Umum Struktur Perulangan While :


while kondisi do
statement
Jika pada awal eksekusi struktur while kondisi sudah bernilai salah (false), maka
statement milik while tidak akan dieksekusi sama sekali.
45

Logika Dan Algoritma Dengan Pascal

Contoh Program :
{ Program perulangan menggunakan statement While }
Uses CRT;
Var
x : integer;
Begin
Clrscr;
{inisialisasi nilai x}
x := 1;
While x <= 10 do
Begin
Writeln(x,' BAHASA PASCAL ');
{incrementasi nilai x}
x := x + 1
{ bisa juga dengan fungsi inc(x) }
End;
Readln;
End.
Contoh Program :
{ Program deret bilangan menggunakan statement While }
Program Deret(input,output);
Uses CRT;
Var
N_Awal,N_Akhir,Beda : integer;
x : integer;
Begin
Clrscr;
{Proses Input Data}
Write(' Input Nilai Awal = ');
Readln(N_Awal);
Write(' Input Nilai Akhir = ');
Readln(N_Akhir);
Write(' Input Beda
= ');
Readln(Beda);
Writeln;
Writeln(' Deret Bilangan : ');
{Proses Perulangan}
x := N_Awal;
While x <= N_Akhir do
46

Logika Dan Algoritma Dengan Pascal


Begin
Write(x:4);
{incrementasi nilai x dengan beda}
x := x + Beda
{ bisa juga dengan fungsi inc(x,Beda) }
End;
Readln;
End.
STRUKTUR PERULANGAN REPEAT...UNTIL...
ada dasarnya struktur perulangan Repeat...Until sama saja dengan struktur
perulangan while, hanya saja pada proses perulangan dengan while, seleksi
berada di while yang letaknya di atas sementara pada perulangan Repeat Until,
seleksi berada di Until yaitu bawah batas perulangan. Jadi dengan menggunakan
struktur Repeat...Until sekurang-kurangnya akan terjadi satu kali perulangan.
Bentuk Umum Struktur Repeat...Until adalah :
repeat
statement;
statement;
...
statement
until Kondisi

Contoh Program :
{ Program perulangan menggunakan statement Repeat-Until }
Uses CRT;
Var
x : integer;
Begin
Clrscr;
{inisialisasi nilai x}
x := 1;
Repeat
Writeln(x,' BAHASA PASCAL ');
{incrementasi nilai x}
x := x + 1;
{ bisa juga dengan fungsi inc(x) }
Until x >10;
Readln;
End.
47

Logika Dan Algoritma Dengan Pascal


Contoh Program :
Var
ch : Char;
I : Integer;
Begin
{ proses input yang tidak boleh spasi kosong }
repeat
Clrscr;
Write(' Tekan sembarang huruf = ');
readln(ch);
until Ch <> ' ';
{ proses input hanya menerima angka antara 0 s/d 9 }
repeat
Clrscr;
Write(' Input sembarang angka = ');
ReadLn(I);
until (I >= 0) and (I <= 9);
End.
TUGAS :
1. Buatlah sebuah program dengan bentuk output seperti dibawah ini
Masukkan Banyak Bilangan = 5 <Enter>
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
2. Secara Matematis pemangkatan adalah proses perkalian bilangan dengan
3
bilangan itu sendiri sebanyak n kali dimana 5 = 5 x 5 x 5. buatlah program
pemangkatan dengan prinsip diatas dengan bentuk output sebagai berikut ;
Masukkan Bilangan
= 5 <Enter>
Pangkat Bilangan
= 2 <Enter>
5 Pangkat 2 adalah 25

STRUKTUR DATA
ARRAY (LARIK)
48

Modul

Logika Dan Algoritma Dengan Pascal

OBJEKTIF
Mahasiswa dapat memahami struktur data Array, serta pemanfaatannya
didalam perancangan program yang terstruktur.
STRUKTUR DATA ARRAY
rray adalah suatu tipe data terstruktur yang terdapat dalam memori yang terdiri
dari sejumlah elemen (tempat) yang mempunyai tipe data yang sama dan
merupakan gabungan dari beberapa variable sejenis serta memiliki jumlah
komponen yang jumlahnya tetap.
Elemen elemen dari array tersusun secara sequential dalam memori
komputer. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun
banyak dimensi.

ARRAY SATU DIMENSI


rray satu dimensi tidak lain adalah kumpulan elemenelemen yang identik
yang tersusun dalam satu baris. Elemen elemen tersebut memiliki tipe data
yang sama, tetapi isi dari elemen tersebut boleh berbeda.
Untuk lebih jelasnya perhatikan gambar berikut :

[0]
17

[1]
21

[2]
33

[3]
1

[4]
48

[5]
0

[6]
2

[7]
16

[8]
72

[9]
9

Bentuk Umum
Type
<NamaArray> = array[IdexArray] of TipeData;
Contoh :
Type
Gaji = array[1..10] of longint;
Logika = array[boolean] of integer;
Pendeklarasian array diawali dengan kata baku type dan diikuti dengan nama
array dan tanda sama dengan (=), lalu kata baku array beserta range index dan
diakhiri dengan kata baku of beserta tipe datanya.
Kita dapat mendeklarasikan sebuah tipe data baru yang terdiri dari elemen
yang kita sebutkan satu persatu untuk kemudian dipakai sebagai index array . Tipe
data tersebut disebut sebagai tipe data enumerasi. Perhatikan contoh dibawah :
49

Logika Dan Algoritma Dengan Pascal


Type
Hari=(Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu);
PendapatanHarian = array[Hari] of real
Selain itu kita juga dapat mendeklarasikan sebuah tipe data berupa subrange
bilangan untuk kemudian dipakai sebagai index dari suatu array seperti berikut.
Type
Tinggi = 145..210;
TinggiManusia = array [tinggi] of byte;
Atau kita juga dapat menggunakan konstanta untuk kemudian dipakai dalam
index array. Untuk menggunakan konstanta perlu diawali dengan kata baku const.
Untuk lebih jelasnya perhatikan contoh berikut.
Const
Min = 1;
Max = 10;
Type
Arr = array[Min .. Max] of byte;
Var
Point : arr;
Contoh Program :
{ Program untuk menginput nilai mahasiswa
ke dalam array satu dimensi }
Program Data_Mahasiswa(Input,Outpu);
Uses CRT;
Type
Nilai_Mhs = array[1..10] of integer;
Var
Index : integer;
Nilai : Nilai_Mhs;
Begin
Clrscr;
{ Proses input nilai mahasiswa }
Writeln('<< Menginput nilai 10 mahasiswa >>');
for index:=1 to 10 do
Begin
Write(' Mahasiswa -> ',index:2,' = ');
Readln(nilai[index]);
End;
50

Logika Dan Algoritma Dengan Pascal


Writeln;
Write(' Tekan Enter untuk melihat nilai mahasiswa... ');
Readln;
{ Proses menampilkan nilai mahasiswa }
CLRSCR;
Writeln('<< Nilai mahasiswa yang telah diinput >>');
for index:=1 to 10 do
Writeln(' Nilai -> ',index:2,' = ',Nilai[index]:5);
Readln;
End.
ARRAY DUA DIMENSI
rray dua dimensi, yang sering digambarkan sebagai sebuah matriks adalah
merupakan perluasan dari sebuah array satu dimensi. Jika pada array satu
dimensi hanya terdiri dari sebuah baris dengan beberapa kolom elemen maka
pada array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen
yang betipe sama sehingga dapat diilustrasikan seperti berikut.

[1]
[2]
[3]
[4]
[5]
[6]

[1]

[2]

[3]

[4]

[5]

[6]

[7]

[8]

[9]

[10]

10
21
13
31
66
49

2
45
95
33
22
36

32
65
27
25
17
58

54
98
71
52
85
77

84
23
73
55
29
48

1
28
6
69
85
86

2
44
7
87
83
82

65
99
88
73
30
3

5
10
9
49
20
65

4
14
11
93
19
14

Bentuk Umum :
Type
<NamaArray> = array[IndexArray1,IndexArray2] of TipeData;
Contoh :
Type
Matriks = array[1..2,1..3] of byte;
Logika = array[1..5,boolean] of integer;
Type
Baris = 1..2;
Kolom = 1..3;
51

Logika Dan Algoritma Dengan Pascal


Ordo = array[Baris,Kolom] of byte;
Var
Matrix : ordo;
Pendeklarasian array dua dimensi hampir sama dengan pendeklarasian arary
satu dimensi, kecuali pada array dua dimensi terdapat dua index array yang
terdapat didalam kurung siku dan masing- masing index boleh berbeda tipe. Untuk
lebih jelasnya perhatikan contoh berikut ini.
Type
Kegiatan = (Main, Belajar, Nonton, Berenang};
Hari = (Senin, Selasa, Rabu, Kamis, Jumat, Sabtu);
AktivitasAnak = array[Hari, Kegiatan] of byte;
Var
A: AktivitasAnak;
Pendeklarasian array AktivitasAnak diatas menggunakan dua buah tipe data
yang masing-masing didefenisikan sendiri yaitu kegiatan dan hari. Jika
digambarkan struktur array Aktivitas anak tersebut akan nampak seperti berikut.
[Main]

[Belajar]

[Nonton]

[Berenang]

10
21
32
20
14
26

12
5
2
13
4
9

23
11
29
16
18
17

35
44
8
6
25
22

[Senin]
[Selasa]
[Rabu]
[Kamis]
[Jumat]
[Sabtu]

Untuk dapat mengakses masing masing elemen dari array AktivitasAnak


diatas kita harus mengetahui posisi baris dan kolom dari elemen elemen yang
ingin diakses tersebut. Sebagai contohnya jika kita ingin mengakses data yang di
higlight pada tabel diatas (5) dapat kita deklarasikan seperti dibawah ini :
A [Selasa, Belajar]
Note : Jika kita terbalik menuliskan baris dan kolom index array maka akan
terjadi error.
Contoh Program :
{ Program menginput nilai(bilangan) ke dalam
52

Logika Dan Algoritma Dengan Pascal


array dimensi dua dan menampilkannya }
Program Matrix(Input,Output);
Uses CRT;
Type
Ordo = array[1..3,1..4] of integer;
Var
Baris, Kolom : Integer;
Matriks : Ordo;
Begin
Clrscr;
{ Menginput elemen array secara Row Major Order }
Writeln('<< Proses memasukkan elemen array >>');
for baris:=1 to 3 do
Begin
for kolom:=1 to 4 do
Begin
Write(' Matriks[',baris,'][',kolom,'] = ');
Readln(matriks[baris][kolom]);
End;
Writeln;
End;
{ Menampilkan elemen Array secara Row Major Order }
Writeln('<< Proses menampilkan isi array >>');
for baris:=1 to 3 do
Begin
for kolom:=1 to 4 do
Begin
Write(matriks[baris][kolom]:5);
End;
Writeln;
End;
Readln;
End.
Contoh Program
{ Program penjumlahan matriks dua dimensi }
Program Penjumlahan_Matrix(Input,Output);
Uses CRT;
Type
53

Logika Dan Algoritma Dengan Pascal


Ordo = array[1..3,1..4] of integer;
Var
A,B,X,Y,C : Ordo;
i,j : Integer;
Begin
Clrscr;
{******* Masukkan matriks A *******}
Writeln('<< Matriks A >>');
for i:=1 to 3 do
Begin
for j:= 1 to 4 do
Begin
Write(' Input data matrik A[',i,'][',j,']= ');
Readln(A[i][j]);
End;
End;
{******** Masukkan matriks B ********}
Writeln('<< Matriks B >>');
for i:=1 to 3 do
Begin
for j:= 1 to 4 do
Begin
Write(' Input data matrik B[',i,'][',j,']= ');
Readln(B[i][j]);
End;
End;
{******** Proses penjumlahan matriks A dan B ********}
for i:=1 to 3 do
Begin
for j:= 1 to 4 do
Begin
X[i][j]:=A[i][j]+B[i][j];
End;
End;
Clrscr;
{******** Cetak isi matriks A ********}
Writeln('<< matrik A >>');
54

Logika Dan Algoritma Dengan Pascal


for i:=1 to 3 do
Begin
for j:=1 to 4 do
Write(A[i][j]:6);
Writeln;
End;
Writeln;
{******** Cetak isi matriks B *******}
Writeln('<< matrik B >>');
for i:=1 to 3 do
Begin
for j:=1 to 4 do
Write(B[i][j]:6);
Writeln;
End;
Writeln;
{** Cetak hasil penjumlahan matriks A dan B **}
Writeln('<< matrik penjumlahan A+B >>');
for i:=1 to 3 do
Begin
for j:=1 to 4 do
Write(X[i][j]:6);
Writeln;
End;
Writeln;
Readln;
End.
ARRAY TIGA DIMENSI
rray tiga dimensi dapat dianalogikan sebagai suatu benda ruang 2 dimensi .
Bentuk Umum :

Type
<NamaArray> = array[IndexArray1,IndexArray2,IndexArray3]of
TipeData;

Contoh :
Type
Kalender = array[Tanggal, Bulan, Tahun] of byte;
Logika = array[1..10,boolean,2..15] of integer;
55

Logika Dan Algoritma Dengan Pascal


Deklarasi pada array tiga dimensi tidak berbeda dengan deklarasi pada array
satu dimensi dan dua dimensi yang telah dijelaskan sebelumnya, kecuali pada
index array.
ARRAY BANYAK DIMENSI
ebenarnya array banyak dimensi ini tidak terlalalu sering dipakai seperti halnya
array satu dimensi, dua dimensi dan tiga dimensi. Namum hal itu bukan berarti
pascal tidak memperbolehkan kita untuk memakainya. Array banyak dimensi ini
pada dasarnya sama dengan array sebelumnya kecuali pada jumlah dimensinya
saja.

Bentuk Umum :
Type
<NamaArray> = array[indexArray1, IndexArray2,...,
IndexArrayN] of Tipe Data;
Contoh :
Type
Waktu = array[Tahun,Bulan,Tanggal,Jam] of integer
Pascal tidak menentukan maksimal banyaknya dimensi suatu array yang dapat
kita buat. Namun pascal membatasi besarnya memori yang dapat dipakai untuk
array yang kita defenisikan tersebut. Besar memori maksimal yang dapat dipakai
untuk tiap array yang kita defenisikan tersebut tidak boleh melebihi atau sama
dengan 64 KB (kilo byte), setara dengan 64x1024byte = 65536 byte.
Contoh Program :
{ Program implementasi matriks multi dimensi }
Uses CRT;
Const
Data_Huruf : array[1..3,1..8,1..8] of byte =
(((1,1,1,1,1,1,1,1),(1,1,1,1,1,1,1,1),
(0,0,0,1,1,0,0,0),(0,0,0,1,1,0,0,0),
(0,0,0,1,1,0,0,0),(0,0,0,1,1,0,0,0),
(0,0,0,1,1,0,0,0),(0,0,1,1,1,1,0,0)),
((0,1,1,1,1,1,1,0),(1,1,1,1,1,1,1,1),
(1,1,0,0,0,0,1,1),(1,1,0,0,0,0,0,0),
(1,1,0,1,1,1,1,1),(1,1,0,0,0,0,1,1),
(1,1,1,1,1,1,1,1),(0,1,1,1,1,1,1,0)),
((1,1,1,1,1,0,0,0),(1,1,1,1,1,1,1,0),
56

Logika Dan Algoritma Dengan Pascal


(1,1,0,0,1,1,1,1),(1,1,0,0,0,0,1,1),
(1,1,0,0,0,0,1,1),(1,1,0,0,1,1,1,1),
(1,1,1,1,1,1,1,0),(1,1,1,1,1,0,0,0)));
Var
i, j, k : Integer;
Begin
Clrscr;
{* Menampilkan Data }
for j:=1 to 8 do
Begin
for i := 1 to 3 do
Begin
for k:=1 to 8 do
Begin
if Data_Huruf[i][j][k] = 1 then
Write(#219)
else
Write(' ');
End;
Write('
');
End;
Writeln;
End;
Readln;
End.
TUGAS :
1. Buatlah program untuk menginput, menghitung serta mencetak perkalian dua
matriks dengan ordo bebas.
2. Buatlah program untuk menghasilkan invers dari suatu matriks dengan ordo
bebas.

USER DEFINE

Modul

57

Logika Dan Algoritma Dengan Pascal

PROCEDURE DAN FUNCTION


OBJEKTIF
Mahasiswa dapat mengetahui salah satu teknik pemrograman terstruktur yaitu
pada pembuatan Sub Program atau penerapan konsep program modular.
Mahasiswa dapat membuat Procedure serta Fungsi sendiri dalam Pascal.
PROSEDUR DAN FUNGSI
rosedur maupun fungsi adalah suatu program terpisah dalam blok sendiri
yang berfungsi sebagai subprogram (program bagian). Prosedur diawali
dengan kata cadangan Procedure sedangkan fungsi diawali dengan kata
cadangan Fungction pada bagian deklarasinya.
Perbedaan paling mendasar antara Procedure dan Fungsi bahwa Pada
Procedure tidak dapat memulangkan nilai kepada bagian program yang
memanggilnya sedangkan pada fungsi dapat memulangkan nilai.
Bentuk Umum Pendeklarasian Procedure :
Procedure Nama_Prosedur;
Begin
Statement;
. . .
Statement;
End;

Atau :
Procedure Nama_Prosedur(Daftar Parameter);
Begin
Statement;
. . .
Statement;
End;
Bentuk Umum Pendeklarasian Fungsi :
Function Nama_Fungsi : Type_Data;
Begin
Statement;
. . .
Statement;
End;
58

Logika Dan Algoritma Dengan Pascal

Atau :
Function Nama_Fungsi(Daftar Parameter): Type_Data;
Begin
Statement;
. . .
Statement;
End;
Contoh Program :
{ Contoh Pemakaian Procedure dan Fungsi }
Uses CRT;
Var
op1,op2 : integer;
Hasil : integer;
{ Prosedur cetak hasil }
Procedure Cetak_hasil(hasil :integer);
Begin
Write(' Hasil Penjumlahan = ',hasil);
End;
{ Fungsi Tambah }
Function Tambah(a: integer; b:integer):integer;
Begin
Tambah := a + b;
End;
{ Program Utama }
Begin
Clrscr;
Write(' Masukkan Operand 1 = ');
Readln(op1);
Write(' Masukkan Operand 2 = ');
Readln(op2);
hasil := Tambah(op1,op2);
Cetak_Hasil(hasil);
Readln;
End.
PARAMETER FORMAL DAN PARAMETER AKTUAL
59

Logika Dan Algoritma Dengan Pascal


1. Parameter Formal adalah variabel yang ada pada daftar parameter dalam
definisi fungsi atau prosedur.
2. Parameter Aktual adalah variabel (parameter) yang dipakai dalam
pemanggilan fungsi atau prosedur
Dalam contoh program pertambahan di atas parameter formal terdapat pada
pendefinisisan fungsi dan Procedure.
Procedure Cetak_hasil(hasil :integer);
Function Tambah(a: integer; b:integer):integer;
Sedangkan parameter aktual terdapat pada pemanggilan fungsi atau procedure
hasil := Tambah(op1,op2);
Cetak_Hasil(hasil);
CARA MELEWATKAN PARAMETER
ara melewatkan suatu parameter dalam Bahasa Pascal ada dua cara yaitu
pemanggilan secara nilai (Call by Value) dan Pemanggilan Secara Referensi
(Call by Reference).

Pemanggilan Secara Nilai (Call By Value)


Call by value akan menyalin nilai dari parameter aktual ke parameter formal.
Yang dikirimkan ke fungsi atau prosedur adalah nilai dari datanya, bukan
alamat memori letak dari datanya.
Fungsi dan prosedur yang menerima kiriman nilai akan menyimpannya di
alamat terpisah dari nilai aslinya yang digunakan oleh bagian program yang
memanggil fungsi atau prosedur.
Perubahan nilai di fungsi atau prosedur (parameter formal) tidak akan merubah
nilai asli di bagian program yang memanggilnya.
Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian
program yang memanggil fungsi atau prosedur ke fungsi atau prosedur yang
dipanggil.
Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya
untuk sebuah variabel, elemen array atau konstanta saja.
Contoh Program :
{ Program pemanggilan prosedur atau fungsi
secara pengiriman nilai (call by value) }
Uses CRT;
Var
a,b : integer;
60

Logika Dan Algoritma Dengan Pascal

{ Deklarasi Procedure Tukar }


Procedure tukar(x:integer;y:integer);
Var
z : integer; { variabel sementara }
Begin
{ tukar nilai x dan y }
z := x;
x := y;
y := z;
Writeln(' Nilai di akhir fungsi tukar() ');
Writeln(' x = ',x,', y = ', y);
End;
{ Program Utama }
Begin
Clrscr;
{ inisialisasi nilai a dan b }
a := 15;
b := 10;
Writeln('<< Nilai sebelum pemanggilan fungsi >>');
Writeln(' a = ',a,' b = ',b);
tukar(a,b); { pemanggilan prosedur tukar()}
Writeln('<< Nilai setelah pemanggilan fungsi >>');
Writeln(' a = ',a,' b = ',b);
Readln;
End.
Pemanggilan Secara Referensi (Call by Reference)
Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat
dari suatu variabel ke dalam fungsi atau prosedur.
Yang dikirimkan ke fungsi atau prosedur adalah alamat letak dari nilai datanya,
bukan nilai datanya.
Fungsi atau prosedur yang menerima kiriman alamat ini akan menggunakan
alamat yang sama untuk mendapatkan nilai datanya.
Perubahan nilai di fungsi atau prosedur akan merubah nilai asli di bagian
program yang memanggil fungsi atau prosedur.
Pengiriman parameter secara referensi adalah pengiriman dua arah, yaitu dari
fungsi atau prosedur pemanggil ke fungsi atau prosedur yang dipanggil dan
juga sebaliknya.
Pengiriman secara acuan tidak dapat dilakukan untuk suatu ungkapan.
61

Logika Dan Algoritma Dengan Pascal


Contoh Program :
{ Program pemanggilan prosedur atau fungsi
secara pengiriman referensi (call by reference) }
Uses CRT;
Var
a,b : integer;
{ Deklarasi Procedure Tukar }
Procedure tukar(var x:integer;var y:integer);
Var
z : integer; { variabel sementara }
Begin
{ tukar nilai x dan y }
z := x;
x := y;
y := z;
Writeln(' Nilai di akhir fungsi tukar() ');
Writeln(' x = ',x,', y = ', y);
End;
{ Program Utama }
Begin
Clrscr;
{ inisialisasi nilai a dan b }
a := 15;
b := 10;
Writeln('<< Nilai sebelum pemanggilan fungsi >>');
Writeln(' a = ',a,' b = ',b);
tukar(a,b); { pemanggilan prosedur tukar()}
Writeln('<< Nilai setelah pemanggilan fungsi >>');
Writeln(' a = ',a,' b = ',b);
Readln;
End.

PENGGOLONGAN VARIABEL
erdasarkan kelas penyimpanannya variable pada Pascal secara umum dapat
dibedakan kedalam dua kelas yaitu :
Variabel lokal
Variabel lokal adalah variabel yang dideklarasikan di dalam fungsi.
62

Logika Dan Algoritma Dengan Pascal


Sifat-sifat variabel lokal :
1. Secara otomatis akan diciptakan ketika fungsi dipanggil dan akan lenyap
ketika proses eksekusi terhadap fungsi berakhir.
2. Hanya dikenal oleh fungsi tempat variabel dideklarasikan
3. Tidak ada inisialisasi secara otomatis (saat variabel diciptakan nilainya
random).
Variabel global (eksternal)
Variabel global (eksternal) adalah variabel yang dideklarasikan di luar fungsi.
Sifat-sifat variabel global :
1. Dikenal (dapat diakses) oleh semua fungsi.
2. Jika tidak diberi nilai awal secara otomatis berisi nilai nol.
TUGAS :
1. Buatlah fungsi untuk menentukan apakah suatu bilangan adalah bilangan
ganjil atau bilangan genap.
2. Buatlah prosedur yang akan meng-input 10 data numerik lalu akan melakukan
pensortiran secara Ascending (dari terkecil ke terbesar).
3. Buatlah suatu fungsi yang akan memulangkan nilai faktorial dari suatu
bilangan.

63

Anda mungkin juga menyukai