Anda di halaman 1dari 63

Logika Dan Algoritma Dengan Pascal

Modul
KONSEP DASAR
LOGIKA DAN ALGORITMA 1
OBJEKTIF
Mahasiswa dapat mengetahui konsep dasar Algoritma serta penerapannya
pada bidang pemrograman komputer serta keterkaitan antara logika dan
Algoritma itu sendiri.

APAKAH ITU ALGORITMA

D 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 Ja’far 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

A 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 :

1
Logika Dan Algoritma Dengan Pascal

Algoritma adalah urutan logis pengambilan putusan untuk pemecahan


masalah.
BEDA ALGORITMA DAN PROGRAM

P 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


K 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.

2
Logika Dan Algoritma Dengan Pascal

MEKANISME PELAKSANAN ALGORITMA OLEH PEMROSES


K 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

B 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

3
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

A lgoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-


langkah 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)

S 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)
K 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)

S 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

N 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 operasi-
operasi 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

D alam merancang suatu Algoritma, dapat digunakan beberapa alat bantu,


diantaranya adalah decision table, structured chart, structured program flow-
chart 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 pengolahan


aritmatika dan pengolahan data

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

P seudocode banyak digunakan untuk mewakili urutan-urutan proses dari

7
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 78 43 96 67 83 51 74 32

8
Logika Dan Algoritma Dengan Pascal

Buatlah Algoritmanya secara flowchart lalu buat pseudocode-nya dalam


pembuatan rangking nilai tersebut

Modul
BERKENALAN DENGAN
PEMROGRAMAN PASCAL 2
OBJEKTIF
Mahasiswa dapat mengenal bahasa pemrograman Pascal serta mengetahui
bagaimana struktur serta IDE (integrated Development Environment) dari
bahasa pemrograman Pascal.

SEJARAH PERKEMBANGAN PASCAL

P 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

9
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 Fungsi Ekivalen menu


F1 Mengaktifkan jendela pertolongan.
F2 Menyimpan berkas yang ada pada editor. File / Save
F3 Memanggil program kedalam editor. File / Open
F4 Mengeksekusi program sampai posisi kursor. Run / Go to cursor
F5 Memperbesar atau memperkecil jendela yang aktif.
F6 Mengganti jendela yang aktif.
F7 Melacak kedalam subrutin. Run / Trace into
F8 Melompati pemanggil subrutin.
F9 Mengaktifkan perintah ‘Make’. Compile / Make
F10 Berpindah dari menu-menu ke jendela yang aktif.
Alt + F1 Memanggil jendela pertolongan yang terakhir dibaca.
Alt + F3 Menutup jendela aktif.
Alt + F5 Memperlihatkan hasil eksekusi. Debug / user screen
Alt + F6 Mengganti isi jendela yang aktif.
Alt + F9 Mengkompilasi program. Compile
Alt + C Mengaktifkan menu compile.
Alt + D Mengaktifkan menu debug.
Alt + E Mengaktifkan menu editor.
Alt + F Mengakaktifkan menu file.
Alt + H Menampilkan menu Help
Alt + O Mengaktifkan menu option.
Alt + R Mengaktifkan menu run.
Alt + S Mengaktifkan menu Search
Alt + T Mengaktifkan menu Tools
11
Logika Dan Algoritma Dengan Pascal

Alt + W Mengaktifkan menu Window


Alt + X Keluar dari Turbo Pascal dan kembali ke DOS.
Ctrl + F1 Menampilkan menu pertolongan bahasa.
Ctrl + F2 Menghentikan pembetulan. Run / Program reset
Ctrl + F3 Menampilkan isi tumpukan. Debug / Call Stack
Ctrl + F4 Melakukan penghitungan atau mengubah nilai peubah. Debug / Evaluate
Ctrl + F7 Menambahkan ungkapan pada jendela watch. Debug / Add Watch
Debug / Add
Ctrl + F8 Add Breakpoint.
breakpoint
Ctrl + F9 Menjalankan program. Run / Run
Ctrl + F10 Menampilkan versi layar monitor

MENU FILE

D 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

D 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

P 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

D 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
G 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
Make Primary file
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

Modul
STRUKTUR DASAR BAHASA
PEMROGRAMAN PASCAL 3
OBJEKTIF
Mahasiswa dapat mengetahui struktur dasar dari bahasa pemrograman
Pascal, serta teknik penulisan program pada Pascal.

STRUKTUR PROGRAM PASCAL

S 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

S 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

P 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

D 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

B 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.

Modul
ELEMEN-ELEMEN DASAR
PROGRAM PASCAL 4
OBJEKTIF
Mahasiswa dapat mengetahui elemen-elemen dasar program Pascal, tipe
variable, operator serta ekspresi pada Pascal.

PENDAHULUAN

U 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.

20
Logika Dan Algoritma Dengan Pascal

SIMBOL-SIMBOL DASAR

P 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
K ata-kata cadangan (reserved words) adalah kata-kata yang sudah di-
definisikan 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

P 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 Benar
No_Induk Benar
P3K Benar
05Stambuk Salah, karena karakter pertama harus huruf
Harga&Jual Salah, tidak boleh mengandung karakter khusus
Nama Siswa 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

J 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

P 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
K 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

P 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

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

TIPE UKURAN
RANGE FORMAT
DATA (BYTE)
ShortInt -128 . . 127 1 Signed 8-bit
Integer -32768 . . 32767 2 Signed 16-bit
LongInt -2147483648 . . 2147483648 4 Signed 32-bit
Byte 0 . . 255 1 Unsigned 8-bit
Word 0 . . 65535 2 Unsigned 16-bit

BOOLEAN

T 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 Byte-Sized 1(8 bit)
ByteBool Byte-Sized 1(8 bit)
WordBool Word-Sized 2(16 bit)
LongBool LongInt-Sized 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

T ipe data real biasa digunakan untuk merepresentasikan nilai pecahan. Tipe
data real ini juga terbagi menjadi beberapa tipe yang terlihat pada table
dibawah ini :
UKURAN
TIPE DATA RANGE DIGIT
(BYTE)
-39 38
Real ± 2.9x10 . . 1.7x10 6 11 – 12
-45 38
Single ± 1.5x10 . . 3.4x10 4 7–8
-324 308
Double ± 5x10 . . 1.7x10 8 15 – 16
-4932 4932
Extended ± 3.4x10 . . 1.1x10 10 19 – 20
18 18
Comp -9.2x10 . . 9.2x10 8 19 – 20

KARAKTER

T 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

T 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, Jum’at, 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

O perator Penugasan (Assignment operator) dalam bahasa Pascal berupa


tanda titik dua dan sama dengan (“:=”). Contoh :

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. Not Operator boolean negasi


2. And Operator boolean logika And
3. Or Operator boolean logika Or
4. Xor 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

E 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 :
m−h
vt =
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
K onversi persamaan aritmatik dibawah ini kedalam ekspresi Pascal dan
buatlah programnya secara lengkap seperti contoh diatas.
V
1. P =V ×
R

Z + (0.90 × 7 X )
2. P=
N
29
Logika Dan Algoritma Dengan Pascal

1  z 2 + 50 
3. X = × TU +  
2  C +3 

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

Y

Modul
STATEMENT
INPUT DAN OUTPUT 5
OBJEKTIF

30
Logika Dan Algoritma Dengan Pascal

Mahasiswa dapat mengetahui beberapa statemen, procedure serta fungsi pada


Pascal yang digunakan untuk operasi input dan output.

MEMASUKKAN DATA

C 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. Tiap-
tiap data yang dimasukkan harus sesuai dengan tipe variabelnya.

Tipe variabel Keterangan


Char Memasukkan sebuah karakter bila lebih akan
terpotong, yang dianggap hanya yang pertama
String Memasukkan string maksimum sepanjang yang
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

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

M 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

U 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

T 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

W 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 parameter-
parameter 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

B 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

P 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).
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)

P 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.

Modul
PENYELEKSIAN
KONDISI (BRANCHING) 6
38
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

P 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 “IF…THEN ...”

S 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”

D 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 ... ”

S 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 :
−b
x1 = x 2 =
2a
D > 0 terdapat dua akar real berbeda yaitu :
−b+ D −b− D
x1 = x2 =
2a 2a
D < 0 terdapat dua akar imaginair berbeda yaitu :
−b −D −b −D
x1 = + i x2 = − i
2a 2a 2a 2a
Modul
STATEMEN DAN
STRUKTUR PERULANGAN 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

D 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”

S 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 :
K 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”

P 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...”

P 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

Modul
STRUKTUR DATA
ARRAY (LARIK) 8
48
Logika Dan Algoritma Dengan Pascal

OBJEKTIF
Mahasiswa dapat memahami struktur data Array, serta pemanfaatannya
didalam perancangan program yang terstruktur.

STRUKTUR DATA ARRAY

A 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

A rray satu dimensi tidak lain adalah kumpulan elemen–elemen 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] [1] [2] [3] [4] [5] [6] [7] [8] [9]
17 21 33 1 48 0 2 16 72 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

A 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] [7] [8] [9] [10]
[1] 10 2 32 54 84 1 2 65 5 4
[2] 21 45 65 98 23 28 44 99 10 14
[3] 13 95 27 71 73 6 7 88 9 11
[4] 31 33 25 52 55 69 87 73 49 93
[5] 66 22 17 85 29 85 83 30 20 19
[6] 49 36 58 77 48 86 82 3 65 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 12 23 35 [Senin]
21 5 11 44 [Selasa]
32 2 29 8 [Rabu]
20 13 16 6 [Kamis]
14 4 18 25 [Jum’at]
26 9 17 22 [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

A 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

S 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.

Modul
USER DEFINE
9 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

P 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

C 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

B 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