Anda di halaman 1dari 89

0$7(5,.

.8/,$+
35$.7,.80

Francis Y Rumlawang
Gysber J. Tamaela
Silvert Tahalea
1 PENDAHULUAN

Kompetensi Dasar:
1. Mahasiswa mampu memahami pengertian bahasa pemrograman, algoritma,
flowchart dan pseudocode
2. Mahasiswa dapat membuat algoritma dan flowchart dari sebuah permasalahan
sederhana

S
ekarang ini komputer bukan lagi sebuah barang langka, mahal dan berkesan
eksklusif. Setiap bidang kehidupan manusia sekarang ini memerlukan
bantuan dan campur tangan komputer sebagai alat bantu dalam pemecahan
masalah. Ini disebabkan karena kemampuan manusia itu sendiri terbatas.

Tetapi komputer tidak begitu saja langsung dapat menyelesaikan masalah yang
diberikan. Pemakai komputer (user) itu sendiri yang harus merumuskan langkah-
langkah penyelesaian masalah itu dalam suatu runtunan perintah atau instruksi.
Kemudian instruksi-instruksi itu akan dikerjakan oleh komputer. Kelebihan dari
komputer dibandinglan dengan manusia adalah karena komputer memiliki kecepatan,
keakuratan dan bahkan dapat melakukannya berulang-ulang tanpa lelah. Kumpulan
instruksi itu yang dinamakan program.

I.1. Bahasa Pemrograman


Agar program dapat dimengerti dan dilaksanakan oleh komputer, program tersebut
harus ditulis dalam suatu bahasa yang dimengerti oleh komputer. Seperti dalam
kehidupan sehari-hari, untuk berkomunikasi dengan orang lain, kita harus
menggunakan atau paling tidak menyepakati bahasa apa yang akan kita gunakan. Jika
kita orang Indonesia dan lawan bicara kita juga orang Indonesia, maka bahasa yang
kita gunakan adalah Bahasa Indonesia. Jika lawan bicara kita orang Jepang, kita boleh
menggunakan Bahasa Indonesia atau Bahasa Jepang atau salah satu bahasa yang
disepakati, misalnya Bahasa Inggris.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 1


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Karena komputer adalah mesin, maka program harus ditulis dalam bahasa yang
khusus dibuat untuk berkomunikasi dengan komputer. Bahasa komputer yang
digunakan dalam menulis program dinamakan bahasa pemrograman.
Untuk mendapatkan sebuah program yang terstruktur, efektif dan efisien, maka
diperlukan penekanan pada desain atau perancangan yang mewakili pemecahan
masalah tersebut. Rancangan ini menyajikan cara berpikir pemrogram (programmer)
dalam memecahkan masalah. Rancangan ini berisi urutan langkah-langkah yang
terstruktur untuk pencapaian solusi yang ditulis dalam notasi-notasi deskriptif. Urutan
langkah-langkah yang sistematis ini dinamakan algoritma. Sementara notasi yang
digunakan disebut notasi algoritmik. Notasi ini tidak dapat langsung dikerjakan oleh
komputer, tetapi harus diterjemahkan dalam bahasa pemrograman yang akan dipakai.

Di dunia terdapat beraneka ragam bahasa pemrograman. Karena begitu banyak


jenisnya, bahasa pemrograman tersebut biasanya dikelompokan berdasarkan kriteria
tertentu. Ada yang mengelompokan menjadi 3 level bahasa yaitu: low level (contohnya
Assembly), middle level (contohnya bahasa C), dan high level (contohnya Pascal dan
Basic). Pada umumnya bahasa tingkat tinggi mengambil kata-kata dalam Bahasa
Inggris sehingga mudah dipelajari oleh pemakainya. Semakin tinggi levelnya, maka
semakin dekat pemakaian sintaks-sintaks dalam bahasa pemrograman tersebut ke
bahasa manusia (dalam hal ini bahasa Inggris), dan semakin rendah levelnya, maka
semakin dekat pemakaian sintaks-sintaks ini ke dalam bahasa mesin. Sebagai contoh:
dalam prosesor Intel terdapat perintah 0011 1010 0000 1011. Perintah dalam bahasa
mesin ini sama artinya dengan perintah assembly CMP AL, 0D, yang artinya
bandingkan nilai register AL dan 0D (CMP disini adalah singkatan dari CoMPare).
Dapat dilihat bahwa perintah CMP AL, 0D, jauh lebih mudah dibandingkan 0011 1010
0000 1011.

Di lain pihak jika ditinjau dari urutan langkah penyelesaian masalah, maka bahasa
pemrograman dapat dibagi diantaranya dalam bahasa pemrograman prosedural
(Cobol, Basic, Pascal, Fortran dan C), bahasa pemrograman berorientasi obyek (C++,
Visual Basic, Delphi).

Namun pada dasarnya, bahasa-bahasa pemrograman tersebut mempunyai bagian


yang serupa, dan yang membedakannya hanyalah tata bahasa yang digunakan.
Seperti halnya belajar Bahasa Indonesia, Bahasa Jawa, ataupun bahasa asing.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 2


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Dalam buku ini hanya akan dibahas tentang pemrograman prosedural, khususnya
bahasa Pascal.

Sebelum kita masuk lebih dalam mengenai struktur dari bahasa pemrograman Pascall
ada baiknya kita mempelajari sedikit mengenai Algoritma , Flowchart dan Pseudocode,
dan sejarah singkat Pascal.

I.2. Algoritma
Kata algoritma sendiri menjadi pertentangan diantara para ahli bahasa. Akhirnya para
ahli sejarah matematika menemukan bahwa kata algorithm (algorism) berasal dari
nama penulis buku Kitab al jabar wal-muqabala, Abu Ja’far Muhammad ibnu Musa
al-Khuwarzimi (al-Khuwarsimi dibaca oleh orang Barat menjadi algorism).

Munir (1999) memberikan definisi algoritma sebagai:

Urutan langkah-langkah logis penyelesaian masalah yang


disusun secara sistematis.

Algoritma dapat kita tamukan dalam kehidupan kita sehari-hari, misalnya:

Contoh 1.1:
Langkah – langkah untuk menulis dan mengirimkan surat:
1. Persiapkan kebutuhan: kertas, pena, amplop, perangko dan lem.
2. Mulai menulis
3. Masukkan kertas surat ke dalam amplop
4. Tempel perangko dan tulis nama dan alamat tujuan surat dan pengirim
5. Tutup dan rekatkan amplop
6. Pergi ke kantor pos untuk mengirim surat

Langkah ke-1 sampai ke-6 diatas yang kita sebut algoritma. Jika kita perhatikan, maka
setiap langkah memiliki nilai ketergantungan satu sama lain. Misalnya langkah ke-2
tidak dapat dilakukan tanpa melakukan langkah ke-1. Begitupun langkah ke-3 terhadap
langkah ke-2. Tetapi langkah ke-4 dapat dilakukan tanpa melalui langkah ke-2 dan ke-
3. Artinya dalam membuat urutannya, langkah ke-4 dapat diubah menjadi langkah ke-
2.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 3


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Dalam banyak kasus, algoritma yang kita gunakan kadang kita harus melakukan
langkah-langkah tertentu beberapa kali. Misalnya, setelah menulis surat, kita membaca
lagi, dan jika ada yang kita rasakan kurang, kita bisa memperbaikinya, atau bahkan
membuangnya dan menulis surat yang baru lagi demikian seterusnya sampai isi surat
sesuai dengan yang kita harapkan. Hal ini yang disebut perulangan.

Kasus yang lain, misalnya kita bisa memilih untuk menulis surat dengan menggunakan
kertas surat atau kertas tulis biasa. Kemudian kita juga bisa memilih antara
mengantarkan surat ke Kantor Pos secara langsung atau cukup ke Bis Surat yang
sudah disediakan di jalan. Hal ini yang kita sebut percabangan.

Berikut ini adalah contoh algoritma untuk memecahkan masalah matematika.

Contoh 1.2:
Misalkan akan dihitung luas lingkaran. Rumus dari luas lingkaran adalah:

L = π.r2
dimana: L = Luas lingkaran yang dicari, π = konstanta (3.14) dan r = jari-jari. Masukan
dalam algoritma ini hanya satu yaitu jari-jari (r). Maka algoritma untuk menghitung luas
lingkaran adalah sebagai berikut:
1. Masukkan panjang jari-jari lingkaran (r)
2. Tentukan nilai dari π (π ← 3,14)
3. Hitung luas lingkaran dengan menggunakan rumus L ←πr2
4. Tulis L

Tanda “← “ berarti nilai di sebelah kanan diberikan kepada operan yang disebelah kiri.
Langkah ke-1 dari algoritma di atas meminta pengguna memasukkan nilai dari jari-jari
dan nilainya disimpan dalam variable r. Pada langkah ke-2 nilai 3,14 disimpan dalam
variable π. Langkah ke-3 adalah untuk menghitung luas lingkaran, dan hasilnya
disimpan dalam variable L. Langkah terakhir dipakai untuk menampilkan nilai L.

Dari algoritma dalam Contoh 1.2, adakah langkah yang dapat dipertukarkan (tidak
saling tergantung)?

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 4


Jurusan Matematika Matematika FMIPA UNPATTI 2012
I.3. Flowchart (Diagram Alir)
Untuk memudahkan memahami algoritma, digunakan flowchart (diagram alir) yang
merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar
proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol. Dengan
demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses
digambarkan dengan garis penghubung.

Dalam pembuatan flowchart tidak ada rumus atau patokan yang bersifat mutlak.
Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisa suatu
masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara
satu pemrogram dengan yang lainnya.

Namun secara garis besar setiap pengolahan selalu terdiri dari 3 bagian utama, yaitu:
 Masukan (Input),
 Proses pengolahan dan
 Keluaran (Output)

Masukan Keluaran
(Bahan mentah) Proses (Bahan Jadi)

Gambar 1.1. Hubungan antara input, proses dan output

Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu


masalah:
 START, berisi persiapan peralatan yang diperlukan sebelum menangani
pemecahan persoalan
 READ, berisi instruksi kegiatan untuk membaca data dari suatu peralatan input
 PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai
dengan data yang dibaca
 WRITE, berisi instruksi untuk merekam hasil kegiatan ke peralatan output
 END, mengakhiri kegiatan pengolahan

Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun
ada beberapa anjuran:

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 5


Jurusan Matematika Matematika FMIPA UNPATTI 2012
 Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga
jalannya proses menjadi singkat
 Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah
untuk memperjelas
 Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END

Flowchart selalu digambarkan dengan bentuk simbol-simbol. Simbol-simbol ini dipakai


sebagai alat bantu menggambarkan proses di dalam program. Beberapa simbol yang
sering digunakan dalam pembuatan flowchart adalah seperti tergambar dalam Tabel
1.1.

Tabel 1.1. Simbol-simbol Flowchart

Gambar Nama Simbol Keterangan

Simbol untuk permulaan atau akhir dari suatu


Terminal
program
Simbol untuk kondisi yang akan menghasil-kan
Decision
beberapa kemungkinan jawaban/aksi

Simbol yang menunjukkan ada proses penyeleasaian


Process
masalah

Simbol yang menyatakan proses masukan dan


input-output
keluaran tanpa tergantung dengan jenis peralatannya

Simbol untuk keluar/masuk prosedur atau proses


Connector
dalam lembar/halaman yang sama

Simbol yang menunjukkan arah alir dari


Arrows
program/algoritma

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 6


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Seperti yang telah disebutkan di atas ada kasus perulangan dan percabangan. Untuk
lebih jelasnya dapat dilihat pada Contoh 1.3 dan Contoh 1.4 berikut ini:

Contoh 1.3: Flowchart dari Contoh 1.2

Mulai A

Masukkan Tulis L
jari-jari (r)

Selesai
π ← 3,14

L=π*r*r

Gambar 1.3. Flowchart dari Contoh 1.2

Contoh 1.4: Perulangan (dari Contoh 1.1)

Mulai A

Siapkan alat
tulis menulis Surat sudah Tidak
B
benar?
B
Ya
Menulis surat
Masukkan ke
dalam amplop

Periksa isi
surat
Pergi ke
Kantor Pos

A
Selesai Gambar 1.4.
Flowchart dari Menulis Surat

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 7


Jurusan Matematika Matematika FMIPA UNPATTI 2012
I.4. Pseudocode
Pseudocode adalah penulisan algoritma yang mendekati gaya bahasa dari bahasa
pemrograman tertentu.

Pada Contoh 1.5 dan Contoh 1.6 berikut akan diberikan pseudocode dari algoritma
untuk mencari jenis akar-akar dari sebuah persamaan kuadrat sebagai implementasi
dari percabangan, dan algoritma Euclidian untuk mencari Faktor Persekutuan Terbesar
(FBP) dari 2 buah bilangan, sebagai implementasi perulangan.

Contoh 1.5:
Bentuk umum persamaan kuadrat adalah : Ax2 + Bx + C = 0
Sehingga dapat didefinisikan
Masukan : A,B, dan C (koefisien persamaan)
Keluaran : Jenis akar-akar persamaan, imajiner, real dan sama, real dan
berlainan
Langkah-langkah :
1. Masukkan A, B, C
2. D ← B^2 – 4*A*C
3. Jika D < 0, maka Tulis “Akar-akar Imajiner”, jika tidak
Jika D = 0, maka Tulis “Akar-akar Real dan Sama”, jika tidak
Tulis “Akar-akar Real dan Berlainan” {output}
4. Selesai

Contoh 1.6:
Masukan : 2 buah bilangan bulat positif, m dan n (m ≥ n)
Keluaran : FPB
Langkah-langkah :
1. Masukkan m dan n
2. p ← m mod n
3. Jika p = 0, maka Tulis “FPB dari m dan n adalah n”, lompat ke langkah ke-9
4. Jika tidak, maka
5. m ← n
6. n ← p
7. Ulangi mulai langkah ke-2, sampai p = 0
8. Tulis “FPB dari m dan n adalah n”
9. Selesai

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 8


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Latihan 1

1. Buatlah sebuah algoritma lengkap dengan flowchart-nya tentang permasalahan


dalam kehidupan sehari-hari!

2. Tulislah sebuah algoritma dan buatlah flowchart-nya untuk mencari panjang sisi
miring dari sebuah segiitiga.siku-siku! Input-nya adalah panjang sisi alas dan
tegak, sementara output-nya adalah panjang sisi miring segitiga

3. Tulislah algoritma dan buatlah flowchart-nya untuk meminta masukkan 2


bilangan dari pengguna, kemudian kemudian menampilkan bilangan terbesar
dari kedua bilangan tersebut!

4. Tulislah algoritma, flowchart-nya, dan pseudocode untuk meminta masukkan 3


buah bilangan dari pengguna, kemudian menampilkan bilangan terkecil dari
ketiga bilangan tersebut!

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 9


Jurusan Matematika Matematika FMIPA UNPATTI 2012
2 COMPILER
FREE PASCAL

Kompetensi Dasar:
1. Mahasiswa mengenal Free Pascal.
2. Mahasiswa mengetahui kelebihan dan kekurangan Free Pascal dibandingkan
dengan compiler yang lain.

S
ebelum masuk lebih jauh untuk mengenal tentang struktur bahasa Pascal,
maka bab ini baiknya kita awali dengan penjelasan tentang bahasa Pascal
dan pengenalan compiler Free Pascal.

2.1. Sejarah bahasa Pascal


Bahasa pemrograman Turbo Pascal begitu populer di Indonesia era 80-an disamping
bahasa pemrograman lain seperti C, Cobol, Fortran.
Pascal merupakan bahasa yang full power karena dari situ dapat dipelajari bagaimana
membuat dan memvisualisasikan dalam mode grafik, aplikasi interface dengan sound
card, simulasi database (*.DAT). Sudah banyak buku yang berkaitan dengan Pascal
dilahap untuk dipelajari, pada tiap-tiap buku yang menulis bahasa pemrograman
Pascal selalu pasti nama Niklaus Wirth sering disebut-sebut sebagai pencetus lahirnya
Turbo Pascal.

Niklaus Wirth lahir di Winterthur-Swiss, Februari 1934. Setelah lulus dari Swiss Federal
Institute of Technology jurusan Teknik Elektro tahun 1959, kemudian ia meraih gelar
M.Sc. dari Laval University, Kanada tahun 1960 dan Ph.D. University of California at
Berkeley tahun 1963. Ia menjadi Asisten Profesor Ilmu Pengetahuan Komputer di
Universitas Stanford (1963 - 1967) dan kemudian di Universitas Zurich. Di tahun 1968
ia menjadi seorang Profesor Informatics pada Zurich.
Ketidakpuasan terhadap bahasa pemrograman Algol dan Fortran saat itu disebabkan
kekakuan dan minimnya sintak yang digunakan untuk menemukan kesalahan dan
inkonsistensi analisa algoritma, memicu Niklaus Wirth untuk menciptakan suatu
bahasa pemrograman yang dapat memenuhi kebutuhan dari suatu disain sistem

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 10


Jurusan Matematika Matematika FMIPA UNPATTI 2012
(compiler, sistem operasi, dll.) Sebagai dasar pemikiran, dalam penulisan bahasa
pemrograman dengan memiliki beberapa gaya dalam artian memiliki keluwesan untuk
mendefinisikan dan menginterpretasikan, kerapian dalam artian memiliki pemikiran
yang sistematis, konsistensi dan algoritma yang cermat. Kemudian ia mengembangkan
bahasa Pascal dengan berbasis Algol-W. Dengan struktur dan konsep yang jelas ia
mengharapkan bahasa Pascal dapat dijadikan untuk pengajaran di lingkungan
akademis. Compiler Pascal pertama kali dirancang di Zurich untuk jenis komputer CDC
6000 dan digunakan pada tahun 1970. Kemudian di tahun 1972 bahasa Pascall
digunakan sebagai pelatihan pengantar pemrograman.

2.2. Compiler Free Pascal


Free Pascal merupakan lanjutan atau pengembangan yang dilakukan terhadap
compiler bahasa Pascal sebelumnya, yaitu Turbo Pascal.
Free Pascal adalah compiler untuk bahasa Pascal. Free Pascal ini didistribusikan
secara gratis di bawah lisensi GNU Public. Versi terakhir Free Pascal dapat di
download di: http://www.freepascal.org/. Hingga bulan Juni 2004, versi Free Pascal
yang paling stabil adalah versi 1.0.10. Sedangkan versi 1.9x masih dalam tahap
pengembangan.
Free Pascal tersedia untuk berbagai macam prosesor, yaitu Intel x86, Motorola 680x0
(untuk versi 1.0 saja) dan PowerPC (mulai versi 1.9.2). Selain itu juga mendukung
berbagai sistem operasi, yaitu: Linux, FreeBSD, NetBSD, MacOSX, DOS, Win32,
OS/2, BeOS, SunOS (Solaris), QNX dan Classic Amiga.

Berikut ini adalah keuntungan menggunakan bahasa Pascal dengan menggunakan


compiler Free Pascal:
 Bahasa Pascal adalah bahasa yang sangat mudah dimengerti dan dikelola
dibandingkan dengan bahasa C.
 Bahasa Pascal tidak memerlukan makefiles sehingga dapat menghemat waktu
karena bahasa Pascal tidak mengkompilasi file yang tidak perlu.
 Proses kompilasi yang cepat, bahkan untuk program yang berukuran besar.
 Pada Free Pascal, nama identifier (variabel, type, constanta, dll) tidak harus
berbeda untuk tiap unit.
 Free Pascal mempunyai IDE (editor) yang dapat bekerja pada beberapa
platform sehingga memungkinkan kita untuk mengetik program,
mengkompilasi, serta melakukan debugging.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 11


Jurusan Matematika Matematika FMIPA UNPATTI 2012
 Free Pascal mampu menggabungkan kemampuan bahasa Assembler
kedalam bahasa Pascal.
 Free Pascal mendukung penuh OOP (Objek Oriented Programming)
atau Pemrograman Berorientasi Objek.
 Free Pascal didukung oleh beberapa program database, antara lain
MySQL, PostgreSQL, Interbase, dan ODBC.

Gambar 2.1 Tampilan Awal IDE Free Pascal

2.3. Free Pascal vs Turbo Pascal


Berikut adalah hal-hal yang diizinkan di Turbo Pascal namun tidak berlaku di Free
Pascal, yaitu:
 Duplikasi label untuk case tidak diizinkan. Ini merupakan bug pada Turbo
Pascal, dan Free Pascal masih tetap mempertahankan.
 Parameter list yang dideklarasikan pada function atau procedure sebelumnya,
harus benar-benar persis untuk function atau procedure yang sesungguhnya.
 Variabel Mem, MemW, MemL dan Port tidak berlaku lagi di Free Pascal.
 PROTECTED, PUBLIC, PUBLISHED, TRY, FINALLY, EXCEPT, RAISE
merupakan katakata tercadang (reserved word ).
 Kata tercadang FAR dan NEAR tidak lagi berlaku lagi, karena Free Pascal
adalah compiler 32 bit.
 INTERRUPT hanya berlaku untuk mode DOS.
 File yang dibuka dengan perintah rewrite hanya dapat ditulisi saja, tidak dapat
dibaca. Untuk dapat membaca, maka harus diberikan perintah reset.
Berikut ini adalah beberapa tambahan yang ada pada Free Pascal:

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 12


Jurusan Matematika Matematika FMIPA UNPATTI 2012
 Function dapat mengembalikan tipe kompleks seperti record dan array.
 Function dapat dilakukan dalam function itu sendiri, contoh:
function a : integer;
begin
a := 23;
while a > 7 do
begin
{...}
end;
end;
Contoh di atas dapat dijalankan dalam Turbo Pascal, namun compiler
mengasumsikan bahwa perintah while a > 7 do adalah pemanggilan fungsi
secara rekursif (pada Turbo Pascal). Untuk Free Pascal, pemanggilan rekursif
pada kasus di atas adalah dengan menambahkan () (kurung buka tutup) pada
a.
function a : integer;
begin
a := 23;{Pemanggilan secara rekursif}
while a() > 7 do
begin
{...}
end;
end;
 Pemanggilan exit dapat memberikan nilai, contoh:
function a : integer;
begin
a := 23;
if a > 7 then
begin
exit(a*2);
end;
end;
Pada contoh diatas, pemanggilan exit akan mengakibatkan function
menghasilkan a*2.
 Free Pascal mendukung adanya fungsi yang overloading . Artinya kita bisa
mendefinisikan nama fungsi yang sama dengan parameter yang berbeda,
contoh:
procedure ApaSaja (M : longint);
begin
{...}
end;
procedure ApaSaja (M : real);
begin
{...}
end;
 Mendukung nama file panjang. Mulai Windows 95, nama file dapat sepanjang
255 karakter. Free Pascal dapat mendukung penyimpanan dengan nama file
panjang.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 13


Jurusan Matematika Matematika FMIPA UNPATTI 2012
2.4. Fasilitas Tambahan
Ada beberapa fasilitas tambahan pada Free Pascal, yaitu:
 Tabel ASCII
Tabel ASCII dapat ditampilkan langsung pada IDE Free Pascal dengan cara
pilih menu Tools, Ascii Table.
Untuk menambahkan karakter ASCII pada editor, dapat dilakukan dengan
melakukan double-click atau klik pada karakter dan tekan enter.

Gambar 2.2 Tampilan Tabel ASCII di Free Pascal


 Calculator
Fitur Calculator dapat ditampilkan langsung pada IDE Free Pascal dengan cara
pilih menu Tools, Calculator.

Gambar 2.3 Tampilan Calculator


2.5. Tab Menu Free Pascal
Berikut ini akan dibahas mengenai beberapa tab menu dan kegunaannya.

Gambar 2.4 Tampilan Tab Menu pada Free Pascal

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 14


Jurusan Matematika Matematika FMIPA UNPATTI 2012
2.5.1 FILE

Gambar 2.5 Tampilan Tab Menu File

Pada Tab Menu FILE terdapat beberapa sub menu, antara lain:
 New, untuk membuka editor baru pada IDE Free Pascal.
 New from template, untuk menggunakan template yang sudah tersedia.
 Open, untuk menggunakan file yang pernah dikerjakan sebelumnya.
 Reload
 Save, untuk menyimpan program ke dalam file.
 Save as, untuk menyimpan file yang sama dengan nama yang lain.
 Save all, (sama seperti save).
 Print, untuk mencetak file.
 Print setup, untuk mengatur (setting) printer.
 Change dir, untuk menentukan lokasi (folder) tempat kerja (menyimpan file).
 Command Shell, untuk melakukan perintah dengan DOS.

2.5.2 EDIT

Gambar 2.6 Tampilan menu Edit

Pada Tab Menu EDIT terdapat beberapa sub menu, antara lain:
 Undo, perintah untuk mengembalikan program pada kondisi sebelumnya.
 Redo, perintah untuk mengembalikan program pada kondisi berikutnya (jika
telah di-undo).

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 15


Jurusan Matematika Matematika FMIPA UNPATTI 2012
 Cut, perintah untuk memotong isi program.
 Copy, perintah untuk menyalin isi program.
 Paste, perintah untuk menempel isi program (yang telah di-copy atau di-cut).
 Clear, perintah untuk menghapus isi program yang dipilih.
 Select All, perintah untuk memilih isi program secara keseluruhan.
 Unselect, perintah untuk tidak memilih apapun.
 Show clipboard, perintah untuk memunculkan clipboard.
 Copy to Windows, perintah untuk menyalin isi program agar bisa disalin ke
editor lain di windows.
 Copy from Windows, perintah untuk menyalin isi program dari editor lain
dari windows.

2.5.3 SEARCH

Gambar 2.7 Tampilan Menu Search

Pada Tab Menu SEARCH terdapat beberapa sub menu, antara lain:
 Find, untuk mencari teks yang ada pada editor program.
 Replace, untuk mencari teks yang ada pada editor dan menggantinya dengan
teks yang lain.
 Search again, untuk mencari teks yang ada pada editor (lagi).
 Go to line number, untuk menuju baris tertentu pada editor.
 Find procedure
 Objects
 Modules
 Globals
 Symbols

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 16


Jurusan Matematika Matematika FMIPA UNPATTI 2012
2.5.4 RUN

Gambar 2.7 Tampilan Menu Run


Pada Tab Menu RUN terdapat beberapa sub menu, antara lain:
 Run, untuk menjalankan program yang telah di-compile.
 Step over, untuk mengecek kembali program yg telah dicompile.
 Trace into, bantuan untuk melakukan step over.
 Goto Cursor
 Until Return
 Run directory, untuk menentukan lokasi menjalankan program.
 Parameters
 Program Reset

2.5.5 COMPILE

Gambar 2.8 Tampilan Menu Compile


Pada Tab Menu COMPILE terdapat beberapa sub menu, antara lain:
 Compile, untuk menyusun kode program menjadi program sementara.
 Make, untuk menyusun kode program sementara menjadi program.
 Build, perintah yang dijalankan sebelum make.
 Target, untuk memilih sistem operasi untuk program yang dibuat.
 Primary file, untuk menentukan file primer program.
 Clear primary file, untuk menghapus data tentang file primer.
 Compiler messages, untuk memunculkan pesan dari compiler Free
Pascal.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 17


Jurusan Matematika Matematika FMIPA UNPATTI 2012
2.5.6 DEBUG

Gambar 2.8 Tampilan Menu Debug


Pada Tab Menu DEBUG terdapat beberapa sub menu, antara lain:
 Output, untuk melihat output program.
 User screen, untuk melihat output program.
 Add Watch, untuk memasukkan suatu ekpresi (perintah, variabel, dll) yang
ingin dilihat.
 Watches, untuk menampilkan layar tentang apa yang dilihat.
 Breakpoint
 Breakpoint List
 Evaluate
 Call stack
 Disassemble
 Registers
 Floating Point Unit
 Vector Unit
 GDB window

2.5.7 HELP

Gambar 2.9 Tampilan Menu Help

Menu Help pada Free Pascal merupakan bagian terpisah dari compiler Free
Pascal, sehingga harus di-download secara terpisah. Dokumen tersebut dapat di-
download dari link dibawah ini:
http://www.freepascal.org/down/docs/docs.html

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 18


Jurusan Matematika Matematika FMIPA UNPATTI 2012
3 STRUKTUR
BAHASA PASCAL

Kompetensi Dasar:
1. Mahasiswa mengenal tipe-tipe data, operator, derajat operator dalam bahasa
Pascal
2. Mahasiswa dapat menulis program dengan menggunakan tipe data serta
operator yang tepat.

3.1. Struktur Bahasa Pascal

Bentuk umum Bahasa Pascal adalah sebagai berikut:

PROGRAM nama(file1,file2,file3); Judul/Nama


CONST deklarasikonstanta;
VAR deklarasivariabel;
TYPE deklarasitype;
LABEL deklarasilabel;
Deklarasi
FUNCTION deklarasifungsi;
PROCEDURE deklarasiprosedur;

BEGIN
statement1;
statement2;
statement3;
Pernyataan
...
END.

Struktur bahasa Pascal tersusun atas 3 bagian, yaitu:


1. Judul program (optional, tergantung kebutuhan)
2. Bagian pendeklarasian (optional, tergantung kebutuhan)
Deklarasi: label, konstanta, tipe, variabel, prosedur dan fungsi
3. Bagian pernyataan
3.2. Judul/Nama Program

Judul program bebas ditentukan namanya oleh programmer. Nama program ditulis
setelah kata program dan harus selalu diakhiri dengan tanda titik koma (;). Apabila
judul tersusun lebih dari satu kata yang masing-masing terpisah oleh spasi maka
antar kata tersebut harus dihubungkan dengan garis sambung bawah ( _ ) tanpa
spasi.

Selengkapnya syarat untuk memberikan nama program perlu diperhatikan adalah


sebagai berikut:
 Tidak boleh tedapat spasi
 Tidak boleh terdapat tanda-tanda aritmetika seperti: -,+.*,/,%,dll

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 19


Jurusan Matematika Matematika FMIPA UNPATTI 2012
 Boleh menggunakan tanda hubung ( _ )
 Tidak boleh dimulai denga angka
 Deklarasinya diakhiri dengan tanda ;

Contoh 3.1: program Hitung_Luas;

Tabel 2.1 Contoh nama pengenal

Nama pengenal Keterangan

Hasil Benar
No_Siswa Benar
Bab3 Benar
7_kali Salah karena diawali angka
H&R Salah karena mengandung simbol khusus, &
H R Salah karena mengandung spasi

3.3. Deklarasi
Bagian deklarasi digunakan bila dalam program dipakai pengenal (identifier).
Pengenal dapat berupa label, konstanta, tipe, variabel, prosedur dan fungsi. Apabila
suatu program memakai pengenal, maka Pascal menuntut supaya pengenal
tersebut dideklarasikan atau diperkenalkan dulu kepada Pascal sebelum digunakan.
Sebagai contoh, apabila suatu program hanya akan memakai label dan variabel
maka pendeklarasian juga hanya dibuat untuk label dan variabel saja, sementara
label, konstanta, prosedur dan fungsi tidak perlu dibuat pendeklarasiannya. Jadi
disesuaikan dengan keperluan program.

3.3.1. Deklarasi Label


Apabila program memakai pernyataan Goto untuk melompat ke suatu
pernyataan tertentu maka dibutuhkan suatu label tepat sebelum pernyataan yang
dituju. Label tersebut harus dideklarasikan terlebih dulu agar Pascal mengenali
keberadaan label dalam program. Pendeklarasian label diawali dengan kata Label
dan diikuti kumpulan nama-nama label yang dipakai dalam program dan diakhiri
dengan titik koma. Jumlah label yang dipakai dalam sebuah program dapat lebih
dari satu, tergantung keperluan program. Seperti terlihat pada contoh program
berikut ini:

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 20


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Contoh 3.2:
program Contoh_Label;
Label 100, selesai;
begin
writeln(‘Hallo’);
goto 100;
writeln(‘Apa kabar’);
100 :
writeln(‘Kabar baik ?’);
goto Selesai;
writeln(‘Baik-baik saja’);
Selesai :
readln(‘Sampai jumpa’);
end.

Penjelasan program:
Bila program dieksekusi maka akan diperoleh keluaran sebagai berikut :

OUTPUT
Hallo
Kabar baik ?
Sampai jumpa

Tampak di sana ada pernyataan-pernyataan yang tidak dieksekusi karena


pernyataan goto menyebabkan proses eksekusi melompat ke pernyataan yang
terletak setelah label yang dituju.

3.3.2. Deklarasi Konstanta


Konstanta adalah nilai yang bersifat tetap. Pengenal yang akan menampung
nilai konstanta tersebut harus dideklarasikan terlebih dulu. Pendeklarasian
konstanta diawali dengan kata Const dan diikuti kumpulan nama pengenal
penampung nilai konstanta yang dipakai dalam program dan diakhiri dengan titik
koma seperti dibawah ini.
Contoh 3.3:
const
Persentase = 0.2;
Gaji = 70000;
Phi = 3.14

Namun demikian secara default Pascal juga mempunyai beberapa pengenal


konstanta yang apabila akan dipakai tidak perlu dideklarasikan karena Pascal telah
mengenalnya, antara lain:
1. False dengan tipe boolean, bernilai logika salah
2. True dengan tipe boolean, bernilai logika benar
3. MaxInt bertipe integer dengan nilai 32767
4. MaxLongInt bertipe integer dengan nilai 2147483647
5. Pi bertipe real dengan nilai 3.14xxxxxxx

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 21


Jurusan Matematika Matematika FMIPA UNPATTI 2012
3.3.3. Deklarasi Tipe
Deklarasi type dipergunakan untuk menyusun suatu bentuk tipe data yang baru
sebagai hasil penggabungan dari tipe-tipe yang sudah ada.
Contoh:
TYPE
Data=array[1..100] of byte;
Hari=(Senin, Selasa, Rabu, Kamis, Jumat, Sabtu);
VAR
Nilai:Data;
HariKerja:Senin..Jumat;

3.3.4. Deklarasi Variabel


Deklarasi ini gunanya adalah untuk menyatakan variabel yang digunakan dalam
program. Variabel adalah suatu pengenal (identifier) yang nilainya dapat berubah.
Contoh:
VAR
Data:array[1..100] of byte;
a: string;
i: integer;
x,y: real;

3.3.5. Deklarasi Function


Function adalah bagian dari program yang melakukan tugas tertentu dan
menghasilkan suatu nilai.
Contoh:
function RubahString(S: string): string;
var
I: Integer;
begin
for I := 1 to Length(S) do Deklarasi Function
if (S[I] >= 'a') and (S[I] <= 'z') then
Dec(S[I], 32);
RubahString := S;
end;

begin
writeln(RubahString(‘perubahan string’));
end.

3.3.6. Deklarasi Prosedure


Procedure adalah bagian dari program yang melakukan aksi tertentu, seringkali aksi
tersebut dilakukan berdasarkan parameter.
Contoh:
procedure geser(i: integer);
begin
i:=(((i shl 4)shr 6)shl 2); Deklarasi Procedure
writeln(i);
end;

begin
geser(7);
end.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 22


Jurusan Matematika Matematika FMIPA UNPATTI 2012
3.3.7. Aturan Penulisan
Suatu bahasa pemrograman selalu mempunyai aturan penulisan program. Hal ini
menunjukkan konsistensi kompiler dalam melakukan proses kompilasi. Aturan pada
program Pascal adalah sebagai berikut:
Program pascal dapat ditulis pada kolom berapa saja dan diakhiri pada kolom
berapa saja. Antar statement / perintah dipisahkan dengan tanda (;).
Akhir dari sebuah program Pascal ditandai dengan tanda (.) setelah perintah END.
Semua statement / perintah setelah END. tidak akan dianggap sebagai perintah.
Spasi antar pengenal (identifier) diabaikan. Baris komentar diletakkan di antara
tanda (* dan *) atau { dan }. Baris komentar tidak akan dieksekusi oleh komputer.
Baris komentar biasanya dipergunakan untuk memberikan penjelasan-penjelasan
guna memperjelas pengertian variabel atau tipe atau perintah dalam sebuah
program.

3.3.8. Kesalahan dalam program


Kesalahan yang dapat timbul ketika membuat sebuah program ada 2 macam, yaitu
kesalahan sintaks dan kesalahan logika. Kesalahan sintaks timbul ketika aturan
penulisan dalam Pascal dilanggar sehingga program tidak mau dieksekusi. Dalam
kasus ini Pascal akan memberi informasi jenis kesalahan dan lokasi penyebab
kesalahan sintak yang ditunjukkan oleh letak kursor. Lokasi penyebab kesalahan
sintak adalah diperiksa mulai sekitar kursor ke atas. Oleh sebab itu seusai
menuliskan program, biasakan meng-compile program terlebih dulu sebelum
mengeksekusinya. Betulkan semua kesalahan sintak hingga kotak compile memberi
kode success.
Kesalahan logika timbul ketika program bisa dieksekusi namun masih memberikan
keluaran yang salah. Dalam hal ini Pascal tidak dapat membantu mencari penyebab
kesalahan sehingga programer sendiri yang harus menanggulanginya. Untuk itu
program harus diperiksa per pernyataan. Kesalahan logika berpeluang timbul
terutama untuk program yang tersusun atas banyak prosedur dan fungsi. Oleh
sebab itu biasakan melakukan operasi simpan seusai meng-compile program.
Dengan demikian apabila akibat kesalahan logika sampai menyebabkan komputer
hang atau pun eksekusi terus menerus tidak mau berhenti, programer tidak akan
kehilangan hasil kerjanya ketika dengan terpaksa harus me-restart komputernya.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 23


Jurusan Matematika Matematika FMIPA UNPATTI 2012
3.3.9. Masukan dan keluaran
Seringkali sebuah program memerlukan masukan data untuk proses kerjanya dan
dalam membuat sebuah program, programer selalu diminta untuk menampilkan hasil
kerja programnya. Untuk keperluan tersebut maka dalam bahasa pemrograman Pascal
disediakan pernyataan write dan writeln untuk menuliskan data ke dalam file
ataupun menuliskan hasil eksekusi program pada layar dan pernyataan read dan
readln untuk membaca data dari sebuah file ataupun menerima masukan data dari
pemakai program.

3.3.9.1. Read dan Readln


Pernyataan read dan readln sama dalam guna dan cara pemakaiannya. Untuk
menerima keluaran data maka cara menuliskan pernyataan-nya adalah sebagai
berikut:

readln(usia);
Merupakan nama pengenal variablel
yang akan menampung sementara data
keluaran usia
Perhatikan bahwa nama pengenal variabel harus diletakkan dalam kurung ( ). Aturan
yang sama diterapkan jika akan dipakai pernyataan read. Perbedaan antara
pernyataan read dan readln adalah perilakunya seusai pernyataan tersebut
dijalankan, yaitu untuk pernyataan readln, seusai membaca data maka kursor akan
turun satu spasi ke bawah, sedangkan pernyataan read tidak. Perbedaan ini terutama
harus diperhatikan manakala data masukan dibaca dari sebuah file. Jika data dalam
file tersimpan secara horisontal maka harus dibaca dengan pernyataan read,
sedangkan jika data dalam file tersimpan secara vertikal maka harus dibaca dengan
pernyataan readln. Contoh akan diberikan bersamaan dengan pernyataan write
dan writeln.

Pernyataan readln; akan memberi hasil ekseskusi yang berbeda dengan penjabaran
di atas. Pernyataan readln; akan menahan layar hasil sampai ditekannya tombol
[enter]. Dengan demikian seusai menekan tombol eksekusi anda tidak akan langsung
kembali ke layar listing program akan tetapi bisa langsung melihat hasil eksekusi di
layar hasil dan jika ingin kembali ke layar listing program, cukup dengan menekan
tombol [Enter]. Bila pernyataan ini tidak dipakai maka untuk melihat hasil eksekusi
program, anda harus menekan tombol [Alt] [F5] terlebih dahulu.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 24


Jurusan Matematika Matematika FMIPA UNPATTI 2012
3.3.9.2. Write dan Writeln
Pernyataan write dan writeln sama dalam guna dan cara pemakaiannya. Untuk
menampilkan keluaran maka cara menuliskan pernyataan-nya adalah sebagai berikut :

writeln(total);
Merupakan nama pengenal variabel yang
akan menampilkan data dalam variabel
pengenal total

Perhatikan bahwa nama pengenal variabel penampung hasil perhitungan yang akan
ditampilkan hasilnya di layar harus diletakkan dalam kurung ( ). Selain itu pernyataan
write dan writeln dapat pula dipakai untuk menampilkan tulisan pada layar
dengan cara sebagai berikut :

write(‘Belajar Membuat Program’);


Kalimat yang akan ditampilkan pada
layar diapit di antara 2 tanda petik

Aturan yang sama diterapkan jika akan dipakai pernyataan writeln. Perbedaan
antara pernyataan write dan writeln adalah perilakunya seusai pernyataan
tersebut dijalankan, yaitu untuk pernyataan writeln, seusai menuliskan di layar
maka kursor akan turun satu spasi ke bawah, sedangkan pernyataan write tidak.
Perhatikan posisi kursor di layar jika anda mencobanya di komputer. Perbedaan ini
juga harus diperhatikan manakala pernyataan write ataupun writeln dipakai
untuk menyimpan data ke dalam sebuah file.

Dengan perilaku pernyataan writeln maka khusus jika dituliskan pernyataan


writeln; akan menghasilkan satu spasi kosong.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 25


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Writeln;

Bila dieksekusi maka pada layar akan


terbentuk satu spasi kosong

Contoh 3.5:
PROGRAM

program Contoh_Keluaran;
var
Nama:string;
begin
write(‘Sebutkan namamu ‘);
read(nama);
writeln;
writeln(‘Oo...namamu ‘,nama);
readln;
end.

Penjelasan program:
Bila program dieksekusi maka akan diperoleh tampilan sebagai berikut :

OUTPUT

Sebutkan namamu _

Kursor berkedip-kedip menunggu anda


mengetikkan sebuah nama diikuti
penekanan tombol [Enter]

Masukan data nama yang diketikkan akan ditampung sementara dalam variabel
nama.

write(‘Oo...namamu ‘,nama);

menampilkan tulisan menampilkan isi yang tersimpan


dalam variabel nama

Oleh sebab itu ketika dipanggil variabel nama dalam pernyataan akan tercetak
tulisan dan isi data yang tertampung dalam variabel nama. Perhatikan bahwa
antara tulisan yang akan ditampilkan dan variabel nama cukup dipisah oleh tanda
koma. Kini gantilah setiap write dengan writeln dan read dengan
readln. Amati tampilannya hingga anda cukup mengerti cara kerja pernyataan-
pernyataan ini.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 26


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Sebagai tambahan bahwa ketika hasil keluaran program berupa bilangan maka
bilangan tersebut dapat berupa bilangan bulat ataupun bilangan desimal. Secara
default penampilan untuk tipe data berupa bilangan bulat adalah rata kiri. Tampilan ini
kurang baik karena bila yang ditampilkan lebih dari satu variabel maka hasilnya
bilangan-bilangan tersebut rata kiri dan sambung menyambung sehingga menyulitkan
pembacaannya. Untuk itu perlu diformat sebagai berikut :

write(I:n)

Gantilah n dengan bilangan bulat yang


menyatakan jumlah karakter blank sebagai
Nama pengenal
lebar ruang penulisan
variabel

Secara default ddd untuk data berupa bilangan desimal adalah 18 digit berbentuk
eksponensial.

bd.dddddEsdd
dengan b = blank jika desimal positif dan tanda − jika desimal negatif
d = digit
s = tanda positif atau negatif
E = menyatakan 10 pangkat dengan eksponennya adalah sdd

Ingat bahwa aturan dalam Pascal, tanda koma dalam bilangan desimal harus diganti
titik. Tampilan seperti ini kurang bagus dan memerlukan ruang yang cukup lebar. Akan
sangat baik bila diformat dengan cara sebagai berikut :

write(I:n:m)

Gantilah n dengan bilangan


bulat yang menyatakan jumlah
Nama pengenal angka di belakang koma
variabel
Gantilah n dengan bilangan bulat
yang menyatakan jumlah karakter
blank sebagai lebar ruang penulisan

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 27


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Contoh 3.6:
PROGRAM

program Contoh_Keluaran;
var
I:byte;
K:real;
begin
for I:= 1 to 3 do
begin
write(I:5);
K:=sqrt(I);
writeln(K:6:3);
end;
readln;
end.

Penjelasan program:
Dalam program di atas, variabel K akan menampung hasil akar 2 dari isi data
dalam variabel I. Dengan demikian apabila program ini dieksekusi maka akan
diperoleh keluaran pada layar sebagai berikut :

OUTPUT

1 1
2 1.414
3 1.732

Kini yang perlu anda cari jawabnya adalah dalam penformatan bilangan desimal dapat
diatur jumlah angka di belakang koma. Pertanyaannya: apakah angka terakhir hasil
penformatan anda merupakan hasil pembulatan ataukah bukan hasil pembulatan
mengingat setiap bilangan desimal secara default memiliki panjang 18 digit.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 28


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Latihan 2

1. Tulislah sebuah program untuk menghitung luas dan keliling dari sebuah
persegi panjang, dengan masukan adalah panjang dan lebar dari persegi
panjang tersebut, dan keluarannya berupa luas dan kelilingnya.

2. Tulislah program untuk menghitung persamaan sebagai berikut:


Y = 2,5 x 7 + 4,3 x 5 + 3,5 x 2 + 9,4 , jika diketahui x= 0.145. Gunakanlah deklarasi
yang tepat!

3. Umur Julio adalah 12 tahun, 3 bulan, 15 hari. Bila 1 tahun = 365 hari dan 1
bulan = 30 hari, berapakah umur Julio dalam satuan jam, menit dan detik?
Tulislah programnya!

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 29


Jurusan Matematika Matematika FMIPA UNPATTI 2012
4 TIPE DATA
DAN OPERATOR

Kompetensi Dasar:
1. Mahasiswa mampu memahami tipe-tipe data, operator, derajat operator dalam
bahasa Pascal
2. Mahasiswa dapat menulis program dengan menggunakan tipe data serta operator
yang tepat.

S
alah satu bagian terpenting dalam pemrograman adalah kemampuan
program untuk menangani berbagai macam jenis atau tipe data. Apabila kita
mendeklarasikan variabel, maka kita harus menentukan tipenya. Tipe ini
menentukan nilai yang dapat disimpan variabel tersebut dan operator-operator apa
yang dapat dikenakan padanya. Ada banyak tipe data dalam bahasa pemrograman,
tetapi di sini hanya akan dibahas 3 macam tipe data yaitu:
1. Tipe data sederhana:
a. Standar
i. Integer (Bulat)
ii. Real
iii. Char (Karakter)
iv. Boolean
b. User Define
i. Terbilang
ii. Subjangkauan
2. Tipe data string (kumpulan karakter)
3. Tipe data terstruktur
a. Sets (Himpunan)
b. Array (Larik)
c. Record (Rekaman)

Tipe data-tipe data yang lain yang tidak akan dibahas dalam buku ini adalah: tipe data
pointer, tipe data prosedural dan tipe data objek.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 30


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Uraian dari tipe data integer, real, char, boolean, terbilang, subjangkauan, string dan
himpunan akan dibahas dalam bab ini. Sementara tipe data array dan record akan
dibahas pada Bab 7 dan 8

4.1. Tipe Data Sederhana


4.1.1. Integer
Konstanta tipe integer memiliki ciri-ciri, hanya terdiri dari bilangan, artinya tidak
memiliki angka desimal. Tipe data ini juga dapat menggunakan tanda plus dan minus
pada awal angka.
Operator-operator yang dipakai pada tipe data integer adalah:
+ penjumlahan
- pengurangan
* perkalian
div pembagian
mod modulus (sisa pembagian)

Operator div melakukan operasi pembagian dengan pemenggalan terhadap bagian


pecahan.

Contoh 4.1:
5 div 2 akan memberikan hasil 2
11 div 4 akan memberikan hasil 3

Karena selalu berupa bilangan bulat, maka tipe data integer biasa digunakan
sebagai pencacah (counter).

Ada beberapa macam tipe data integer yang ada pada bahasa Pascal, yang secara
lengkap dapat dilihat pada Tabel 4.1 berikut.
Tabel 4.1. Macam-macam tipe data Integer

Tipe Jangkauan Ukuran(byte)


ShortInt -128 … 127 1
Smallint -32768 … 32767 2
LongInt -2147483648 … 2147483647 4
Integer Masuk dalam smallint, longint,Int64 2,4,8
Byte 0 … 255

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 31


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Word 0 … 65535 2
Cardinal Masuk dalam word, longworg, 2,4,8
qword
Longword 0..4294967295 4
Int64 -9223372036854775808.. 8
9223372036854775807
qword 0..18446744073709551615 8

Jangkauan di sini merupakan batasan, dan jika melebihi batasan yang telah ditetapkan
maka akan terjadi overflow.

Cara mendeklarasikan tipe data integer pada Bahasa Pascal adalah sebagai
berikut:

var
x, y, : integer;
z : word;

4.1.2. Real
Konstanta tipe data real adalah bilangan yang mengijinkan tanda desimal, hingga
bentuknya dapat berupa pecahan. Bilangan real juga dapat dideklarasikan dalam
bentuk eksponensial.

Contoh 4.2:
Bilangan 0.00335 adalah 3.35E-2. Artinya 0,00335 = 3,35 x 10 –2

Operator yang dapat digunakan pada tipe data real ini sama dengan operator yang
digunakan pada tipe data integer. Kecuali pada operator pembagian yang
dinyatakan dengan tanda “/”.
Dalam perhitungan-perhitungan matematis, sains dan rekayasa, dimana membutuhkan
derajat ketelitian yang tinggi, maka banyak dipakai tipe data real. Kesalahan yang
mungkin akan terjadi adalah karena tipe data real memiliki cacah digit yang tetap.
Padahal beberapa bilangan memiliki cacah digit yang tak terhingga.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 32


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Contoh 4.3:
2/3 = 0.666666………
9/11 = 0,818181……..

Macam-macam tipe data real yang terdapat dalam bahasa Pascal dapat dilihat pada
Tabel 4.2.
Tabel 4.2. Macam-macam tipe data Real

Tipe Jangkauan Ukuran


Real 2.9*10-39 … 1.7*1038 6 byte
Single 1.5*10-45 … 3.4*1038 4 byte
-324 308
Double 5.0*10 … 1.7*10 8 byte
Extended 3.4*10-4932 … 1.1*104932 10 byte
63 63
Comp -2* + 1 … 2* – 1 8 byte

Cara mendeklarasikan tipe data real pada bahasa Pascal adalah sebagai berikut:

var
x, y, : real;
z : double;

4.1.3. Char (karakter)


Tipe data char digunakan untuk mendefinisikan tipe data yang nilainya berupa
himpunan karakter yang dikenal komputer (Tabel ASCII-American Standard Code for
Information Interchange). Himpunan-himpunan karakter tersebut adalah:

Huruf capital/besar A, B, C, …, X, Y, Z
Huruf kecil a, b, c, ….., x, y, z
Digit 0, 1, 2, 3, …., 8, 9
Operator aritmetika +, - , *, /
Spasi
Simbol-simbol khusus $, @, [, ], (, ), %

Dalam pemrograman, nilai rinci tipe data char ditulis di antara tanda petik, misalnya
‘C’, ‘9’, ‘,’.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 33


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Pada bahasa Pascal, tipe data char dapat dimanipulasi dengan menggunakan 4 buah
fungsi yang telah terdefinisi, yaitu:
1. Fungsi karakter, chr(I), dimana I adalah bilangan bulat positif. Nilai yang
diperoleh merupakan karakter ASCII yang dinyatakan dengan urutan ke-I.
Contoh: chr(67) adalah ‘C’
2. Fungsi ordinal, ord(X), dimana X adalah data tipe char. Fungsi ini merupakan
kebalikan dari fungsi karakter di atas.
Contoh: ord(‘C’) adalah 67
3. Fungsi predesesor, pred(X), dengan X adalah data tipe char. Nilai pred(X)
adalah karakter yang dalam urutannya mendahului X
Contoh: pred(‘B’) adalah ‘A’
4. Fungsi suksesor, succ(X), dengan X adalah data tipe char. Nilai pred(X)
adalah karakter yang dalam urutannya berada sesudah X
Contoh: succ(‘B’) adalah ‘C’

4.1.4. Boolean
Tipe data Boolean hanya memiliki 2 nilai yaitu true/benar dan false/salah. Operator
yang dipakai pada tipe data ini adalah operator–operator logika seperti and, or dan
not. Tipe data ini sangat penting, terutama untuk suatu pengambilan keputusan dalam
program. bahasa Pascal menyediakan 4 macam tipe Boolean seperti yang tergambar
dalam Tabel 3.3.
Tabel 4.3. Macam-macam tipe data Boolean

Tipe Ukuran
Boolean 1 byte
ByteBool 1 byte
WordBool 2 byte (1 word)
LongBool 4 byte (2 word)

Dari keempat tipe di atas, yang paling sering digunakan adalah tipe Boolean. Tipe
Boolean yang lain seperti ByteBoll, WordBool dan LongBool, hanya disediakan
bahasa Pascal untuk kompatibilitas dengan pemrograman Windows.
Cara mendeklarasikan tipe data boolean pada Bahasa Pascal adalah sebagai
berikut:

var
b1 : boolean;

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 34


Jurusan Matematika Matematika FMIPA UNPATTI 2012
4.1.5. Terbilang (enumerated)
Tipe terbilang memungkinkan user untuk nama pada beberapa nilai tertentu. Sebagai
contoh:

type
TipeHari = (Minggu, Senin, Selasa,
Rabu, Kamis, Jumat, Sabtu);

Contoh di atas memberikan nama Minggu pada 0, Senin pada 1, Selasa pada 2 dan
seterusnya.

Dengan pendeklarasian TipeHari seperti contoh di atas, maka tidak perlu lagi untuk
menggunakan angka 0,1,2,…,6 untuk merepresentasikan hari. Sebagai contoh, jika
kita memiliki variable Hari yang bertipe TipeHari:

var
Hari : TipeHari;

4.1.6. Subjangkauan (subrange)


Tipe subjangkauan memungkinkan user untuk mendeklarasikan tipe yang berada pada
jangkauan tertentu. Pada dasarnya tipe subjangkauan hampir sama dengan tipe
bilangan bulat, yang membedakan keduanya adalah jangkauan dari tipe ini dapat
ditentukan secara bebas.

Pendeklarasian tipe subjangkauan dilakukan dengan menuliskan batas bawah dan


batas atas dari jangkauannya.

type
Bulan : 1..12;

mendeklarasikan tipe Bulan yang memiliki jangkauan 1 sampai dengan 12. Dengan
demikian jika kita memiliki variable bertipe Bulan seperti berikut,

var
Januari: Bulan;

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 35


Jurusan Matematika Matematika FMIPA UNPATTI 2012
4.2. Tipe Data String
Tipe string digunakan untuk menyimpan data yang berupa untaian karakter, seperti
“Pascal’, ‘Algoritma’, dan lain-lain. Untuk mendeklarasikan string, digunakan kunci
string.

Cara mendeklarasikan tipe data string pada bahasa Pascal adalah sebagai berikut:

var
kalimat: string;

Pemberian nilai pada string dilakukan dengan meletakan untaian karakter di antara
tanda petik tunggal seperti di atas.

kalimat:= ‘Matematika’;

Untuk membedakan nilai yang mengandung karakter ‘ pada satu string, maka harus
ditulis karakter “ ”

Sering timbul persoalan dalam menetapkan jenis data yang mempunyai tipe integer
dan string. Seperti misalnya Nomor Induk Mahasiswa (NIM) 1293100015 dapat
diperlakukan sebagai integer jika akan dipakai dalam operasi aritmetika. Tetapi jika
hanya untuk ditampilkan saja, maka dapat digunakan tipe data string.

Fungsi dan prosedur lain yang dapat dikenakan pada tipe data string diantaranya
adalah length, copy, delete.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 36


Jurusan Matematika Matematika FMIPA UNPATTI 2012
4.3. Tipe Data Terstruktur
4.3.1. Himpunan
Tipe himpunan digunakan untuk menyimpan kumpulan nilai (anggota himpunan) yang
bertipe sama.

Cara mendeklarasikan tipe data himpunan pada bahasa Pascal adalah sebagai
berikut:

type
HimpunanKarakter = set of char;

Penjelasan di atas mendeklarasikan tipe HimpunanKarakter sebagai himpunan dari


karakter. Berikut ini adalah contoh variable yang dideklarasikan berdasarkan tipe
tersebut:

var
Vokal: HimpunanKarakter;
Huruf: HimpunanKarakter;

Pemberian nilai pada tipe himpunan dilakukan dengan menuliskan anggota himpunan
dalam kurung siku ([ dan ]).

Vokal:= [‘A’,’I’,’U’,’E’,’O’]
Huruf:= [‘A’..’Z’]

4.4. Operator
Pada dasarnya ada tujuh macam operator pada Bahasa Pascal, yaitu:
1. Operator pemberian nilai
2. Operator aritmetika
3. Operator pemanipulasi bit
4. Operator boolean
5. Operator pembanding
6. Operator himpunan
7. Operator string

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 37


Jurusan Matematika Matematika FMIPA UNPATTI 2012
4.4.1. Operator Pemberian Nilai
Operator ini adalah operator yang paling sering digunakan. Dalam Turbo Pascal,
pemberian nilai mempergunakan tanda “:=”.

A := 5;
phi := 3.14;
x := ‘Matematika’;

4.4.2. Operator Aritmetika


Seperti yang telah dijelaskan pada bagian-bagian sebelumnya, maka operator
aritmetika hanya dikenakan pada operan bertipe real atau integer.

Turbo Pascal mengenal 2 macam operator aritmetika, yaitu operator aritmetika tunggal
dan operator aritmetika biner. Perbedaan keduanya terletak pada jumlah operan. Pada
operator aritmetika tunggal, jumlah operan yang digunakan hanya satu, sementara
pada operator aritmetika biner, jumlah operan yang digunakan lebih dari satu.

Ada 2 macam operator aritemetika tunggal dalam Turbo Pascal seperti terlihat dalam
Tabel 4.4.
Tabel 4.4. Operator aritemetika tunggal

Operator Operasi Tipe Operan Tipe Hasil Contoh

Identitas (tanda hasil Bilangan bulat Bilangan bulat


x:= +y;
+ operasi sama dengan
x:= y;
tanda operan) Bilangan real Bilangan real

Invers(tanda hasil operasi Bilangan bulat Bilangan bulat


_ adalah lawan dari tanda x:= -y;
operan) Bilangan real Bilangan real

Sementara itu ada 6 macam operator aritemetika biner pada Turbo Pascal seperti
terlihat dalam Tabel 4.5.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 38


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Tabel 4.5. Operator aritemetika biner

Operator Operasi Tipe Operan Tipe Hasil Contoh

Bilangan bulat Bilangan bulat


+ Penjumlahan x:= y+z;
Bilangan real Bilangan real

Bilangan bulat Bilangan bulat


_ Pengurangan x:= a–b-c;
Bilangan real Bilangan real

Bilangan bulat Bilangan bulat


* Perkalian x:= 5*9*0.2;
Bilangan real Bilangan real
Bilangan bulat Bilangan real
/ Pembagian x:= a/b;
Bilangan real Bilangan real
div Pembagian bilangan bulat Bilangan bulat Bilangan bulat x:= 10 div 2;

mod Sisa pembagian Bilangan bulat Bilangan bulat x:= 5 mod 3;

4.4.3. Operator Pemanipulasi Bit


Operasi ini hanya dapat dikenakan pada operan bertipe integer dan hasilnya juga
bertipe integer. Ada 6 macam operator pemanipulasi bit seperti tergambar dalam Tabel
4.6.
Tabel 4.6. Operator pemanipulasi bit

Operator Operasi Contoh Hasil

not Invers x:= not 1; 0


and Logika and x:= 1 and 0; 0

or Logika or x:= 1 or 0; 1

xor Logika xor x:= 1 xor 0; 1

shl Penggeseran bit ke kiri x:= y shl 2; Bit variable y digeser ke kiri 2 bit

shr Penggeseran bit ke kanan x:= b shr 5; Bit variable b digeser ke kanan 5 bit

4.4.4. Operator Boolean


Operator ini dikenakan hanya pada operan bertipe boolean. Karena hanya dikenakan
pada operan bertipe boolean, maka tipe hasilnya juga adalah boolean. Ada 4
macam operator boolean seperti terlihat dalam Tabel 4.7. Misalkan nilai dari b:=
true dan c:= false

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 39


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Tabel 4.7. Operator boolean

Operator Operasi Contoh Hasil

not Negasi a:= not b False


and Logika and a:= b and c; False

or Logika or a:= b or c; True

xor Logika xor a:= b xor c; True

4.4.5. Operator Pembanding


Operator ini digunakan untuk membandingan dua operan. Hasil dari operasi ini adalah
data bertipe boolean yang menunjukkan hasil pembandingan bernilai benar atau
salah. Ada 8 macam operator pembanding seperti terlihat pada Tabel 3.8. Pada kolom
tipe operan, adalah jenis operan yang dapat dikenai operator pembanding.
Tabel 4.8. Operator pembanding

Operator Operasi Tipe Operan Contoh Hasil

Sederhana
= Sama dengan Himpunan a:= 5 = 6 a = False
String
Sederhana
<> Tidak sama dengan Himpunan a:= 5 <> 6 a = True
String
Sederhana
< Kurang dari a:= 5 < 6 a = True
String
Sederhana
> Lebih dari a:= 5 > 6 a = False
String
Sederhana
<= Kurang dari atau sama dengan a:= 5 <= 6 a = True
String
Sederhana
>= Lebih dari atau sama dengan a:= 5 >= 6 a = False
String

<= Subset dari Himpunan

>= Superset dari Himpunan

4.4.6. Operator Himpunan


Operator ini hanya dikenakan pada tipe data himpunan. Ada 4 macam operator
himpunan seperti tergambar dalam Tabel 4.9.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 40


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Tabel 3.9. Operator himpunan

Operator Operasi

+ Union

_ Selisih

* Interseksi

in Anggota dari

4.4.7. Operator String


Turbo Pascal hanya mengenal satu macam operator string, yaitu penggabungan.
Operator ini digunakan untuk menggabungkan dua atau lebih operan string menjadi
sebuah string yang lebih panjang. Simbol untuk operator ini sama dengan operator
penjumlahan (+).

s:= ‘Jurusan’ + ‘Matematika’;


hasilnya adalah:
s:= ‘Jurusan Matematika’;

4.4.8. Derajat Operator


Adanya operator-operator seperti yang telah dijelaskan di atas, memunculkan konsep
derajat operator. Keguanaan derajat operator adalah untuk menentukan operasi mana
yang harus dikerjakan terlebih dahulu dan operator mana yang terakhir digunakan.

Contoh 10:

x:= 2 + 3 * 4;

Secara matematis kita dapat katakan bahwa langkah pengerjaannya adalah x:= 2 +
(3*4) = 14, karena perkalian memiliki derajat yang lebih besar dari penjumlahan.
Tetapi komputer tidak dapat melaksanakannya begitu saja. Oleh sebab itu perlu dibuat
sebuah mekanisme dan aturan yang mengatur derajat dari setiap operator. Karena
seperti yang telah dijelaskan di atas, komputer akan mengerjakan instruksi yang

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 41


Jurusan Matematika Matematika FMIPA UNPATTI 2012
diberikan secara beruntun, jika tidak ada aturan tambahan lainnya. Hal ini
menyebabkan hasil dari Contoh 10 bukan 14 melainkan 20.

Gambar 4.1. akan menggambarkan derajat dari operator-operator mulai dari operator
dengan derajat tertinggi

not

* / div mod as and shl shr

+ – or xor

= < > <= Gambar 4.1.


>= in Derajat operator mulai dari
yang tertinggi sampai yang
terendah

4.4.9. Tanda kurung


Ada 3 macam tanda kurung yang biasa dipakai untuk membuat program Pascal, yaitu (
), [ ] dan { }. Masing-masing kurung memiliki fungsi tertentu yang tidak boleh salah
dalam pemakaiannya.

Tabel 4.10. Fungsi tanda kurung dalam Pascal

Tanda Kurung Peruntukan pemakaian


( ) Dipakai dalam operasi matematika
[ ] Dipakai untuk larik saja
{ } Dipakai untuk membingkai komentar program
(* *) Dipakai untuk membingkai komentar program

Apapun yang diapit tanda kurung pembingkai komentar program tidak akan pernah
dieksekusi. Komentar yang ditulis biasanya merupakan catatan programer tentang
pernyataan di samping komentar tersebut.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 42


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Latihan 4

1. Buatlah sebuah algoritma lengkap dengan flowchart-nya untuk


mengkonversikan suhu dari Celcius ke Fahrenheit!

2. Berapakah nilai variable z pada program di bawah ini:


var
x, y, z: byte;

begin
x:= 40;
y:= 30;
z:= x*y;
end.

3. Berapakah nilai variable x, y, dan z pada program berikut:


var
a : string;
b : char;
c : byte;
x : string;
y : integer;
z : string;

begin
a:= ‘12’;
b:= ‘4’;
c:= 48;

x:= a + b;
y:= ord(b) + c;
z:= b + chr(c);
end.

4. Berapakah nilai x, y, dan z pada program berikut ini


var
a, b, c: integer;
x, y, z: integer;
begin
a:= 4;
b:= 7;
c:= 10;

x:= a + b shl 2 * c;
y:= c * b mod a;
z:= b shl a div c;
end.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 43


Jurusan Matematika Matematika FMIPA UNPATTI 2012
5. Berapakah nilai x, y, dan z pada program di bawah ini:
var
a, b, c: integer;
x, y, z: integer;

begin
a:= 3;
b:= 4;
c:= 5;

x:= a and b or c;
y:= a shl (b and c) shr (b or c);
z:= a or (b shr 2) or (c shl 1);
end.

6. Berapakah nilai x, y, dan z pada program di bawah ini:


var
a, b, c, d: boolean;
x, y, z : boolean;

begin
a:= true;
b:= false;
c:= true;
d:= false;

x:= a and b or c xor d;


y:= a and not b or not c;
z:= a xor b xor c xor d;
end.

7. Berapakah nilai C, D, E, x, y, dan z pada program di bawah ini:


var
A, B : set of char;
C, D, E : set of char;
x, y, z : set of char;
Begin
A:= [‘A’, ‘B’, ‘C’, ‘D’, ‘E’];
B:= [‘D’, ‘E’, ‘F’, ‘G’];

C:= A + B;
D:= A – B;
E:= A * B;

x:= ‘G’ in A;
y:= C <= A;
z:= D <= A;
end.

8. Tulislah program untuk menampilkan jumlah hari, jam, menit, dan detik dari
masukkan yang berupa lamanya waktu dalam detik. Sebagai contoh, masukkan
100.000 detik akan menghasilkan: 1hari, 3 jam, 46 menit dan 40 detik.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 44


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Masukan dalam program ini adalah bilangan bulat bertipe longint yang
melambangkan waktu dalam detik.
Keluaran dari program ini adalah banyaknya hari, jam, menit, dan detik dari
waktu tersebut!

9. Tulislah program untuk mengkonversitkan masukan berupa koordinat Polar


(r,α) ke koordinat Cartesian (x,y).
Masukan dalam program ini adalah 2 bilangan real dalam koordinat .Polar,
yaitu r dan alpha.
Keluaran dari program ini adalah 2 bilangan real dalam koordinat .Cartesian,
yaitu x dan y!

10. Tulislah program untuk menghitung ppanjang sisi a dari segitiga ABC apabila
pengguna memasukan nilai b, c, dan α.
Masukan dalam program ini adalah 3 bilangan real, yaitu b, c dan alpha.
Keluaran dari program ini adalah bilangan real yaitu panjang sisi a!

b a

α
A c B

Petunjuk: Gunakan rumus a2 = b2 +c2 – 2.b.c.cos α

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 45


Jurusan Matematika Matematika FMIPA UNPATTI 2012
5 PERCABANGAN

Kompetensi Dasar:
1. Mahasiswa mampu memahami algoritma percabangan dan penulisannya dalam
bahasa Pascal
2. Mahasiswa dapat menulis program yang mengandung permasalahan percabangan.

P
ada bab ini, akan dipelajari salah satu elemen algoritma yang paling
sederhana, yaitu percabangan. Pernyataan percabangan memungkinkan
suatu pernyataan dieksekusi hanya jika suatu kondisi terpenuhi atau tidak
terpenuhi.

Di dalam program, adakalanya suatu aksi hanya dilakukan bila memenuhi persyaratan
atau kondisi tertentu. Jadi dalam memecahkan masalah, kita harus menganalisis
kasus-kasus apa saja yang mungkin ada.

Sebagai contoh, kita ingin menentukan kuadran sebuah titik P(x,y) di dalam bidang
Kartesian seperti gambar di bawah ini.

Kuadran II Kuadran I

0 x

Kuadran III Kuadran IV

Gambar 5.1. Kuadran dalam bidang Kartesian

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 46


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Kasus – kasus yang mungkin untuk titik P(x,y) adalah:

Kasus 1 : x > 0 dan y > 0, maka P(x,y) terletak di Kuadran I


Kasus 2 : x < 0 dan y > 0, maka P(x,y) terletak di Kuadran II
Kasus 3 : x > 0 dan y < 0, maka P(x,y) terletak di Kuadran III
Kasus 4 : x < 0 dan y < 0, maka P(x,y) terletak di Kuadran IV

Selain keempat kasus tersebut di atas, P(x,y) tidak terletak di kuadran manapun, yaitu
jika P(x,y) terletak pada sumbu koordinat).

Menganalisis kasus dari sebuah masalah berarti menentukan kondisi boolean (true
atau false) dan menentukan aksi yang dilakukan jika kondisi tersebut memenuhi.

Kondisi boolean adalah suatu ekspresi rasional (yaitu ekspresi dengan operator
rasional) yang bernilai true atau false bergantung pada nilai masing-masing seperti
yang terlibat di dalamnya.

Contoh 5.1:

x > y
a ≠ 10
m = n
p ≤ q
a + b > 1
k mod 4 = 0
ketemu = true
not ketemu
(x > 0) and (y < 0)

Penentuan kondisi boolean dan aksi yang dilakukan bergantung pada jumlah kasus
yang terdapat pada permasalahan tersebut. Dalam bahasa Pascal jumlah kasus dalam
permasalahan bisa dipilah menjadi permasalahan satu kasus (menggunakan perintah
if...then), permasalahan dari dua kasus (menggunakan perintah
if...then...else), dan permasalahan lebih dari dua kasus (menggunakan
perintah (if...then...else if).

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 47


Jurusan Matematika Matematika FMIPA UNPATTI 2012
5.1. Pernyataan if … then
Pernyataan if … then adalah pilihan tunggal, yakni jika hanya terdapat satu kasus
yang disediakan.
Bentuk umum dari pernyataan if … then adalah sebagai berikut:

If kondisi then
begin
{pernyataan-pernyataan yang dijalankan
jika kondisi terpenuhi}
end;

Kondisi sendiri merupakan suatu ekspresi bertipe boolean, artinya hanya dapat
bernilai benar (true) atau salah (false).

Contoh 5.2:

if (x > 0) then
writeln (‘x adalah bilangan positif’);

Pada contoh di atas yang merupakan kondisi adalah apa benar nilai x yang
dimasukkan lebih dari nol. Jika kondisinya memenuhi, maka program akan mencetak
di layar ‘x adalah bilangan positif’.

5.2. Pernyataan if … then else


Sebagai contoh dalam kehidupan sehari-hari misalnya kita akan mencetak naskah
atau dokumen pada piranti cetak printer. Hal pertama yang harus dilakukan adalah
mengecek printer sudah menyala (on) atau belum. Jika sudah maka kita langsung
mencetaknya, tetapi jika tidak, maka kita harus menyalakan printer terlebih dahulu.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 48


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Permasalahan ini jika kita gambarkan dalam bentuk diagram alir, maka akan terlihat
sebagai berikut:

Mulai

Printer Tidak Nyalakan


sudah On? Printer

Ya

Cetak Naskah

Gambar 4.2.
Selesai
Flowchart if ...then else

Bentuk umum dari pernyataan if …then else adalah sebagai berikut:

If kondisi then
begin
{pernyataan-pernyataan yang dijalankan
jika kondisi terpenuhi}
end
else
begin
{pernyataan-pernyataan yang dijalankan
jika kondisi TIDAK terpenuhi}
end;

Contoh 5.2:

if (x > 0) then
writeln (‘x adalah bilangan positif’);
else
writeln (‘x adalah bilangan negatif’);

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 49


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Pada contoh di atas, ada aksi yang dilakukan bukan saja ketika kondisi terpenuhi
tetapi juga ketika kondisi tidak terpenuhi. Jika input yang dimasukkan, misalnya
angka ‘3’, maka akan di cek apakah nilai input (x) memenuhi (x > 0) atau tidak.
Karena memenuhi, maka pada layar langsung dicetak ‘x adalah bilangan
positif’, dan program tidak lagi menjalankan perintah else dan seterusnya. Tetapi
jika input yang diberikan, misalnya ‘-10’, maka setelah mengecek kondisi, program
tidak menjalankan perintah writeln(‘x adalah bilangan positif’) tetapi
langsung mengerjakan perintah writeln(‘x adalah bilangan negatif’).

5.3. Pernyataan if … then else if


Dalam kasus-kasus tertentu, mungkin saja kita harus meletakkan pernyataan if lain
setelah else. Kasus ini muncul jika kondisi yang dihadapkan untuk sebuah nilai input
atau nilai hasil proses dalam program adalah lebih dari satu.

Bentuk umum dari pernyataan if … then else if adalah:

If kondisi 1 then
begin
{pernyataan-pernyataan yang dijalankan
jika kondisi 1 terpenuhi}
end
else
If kondisi 2 then
begin
{pernyataan-pernyataan yang dijalankan
jika kondisi 2 terpenuhi}
end
else
begin
{pernyataan-pernyataan yang dijalankan
jika kondisi 1 dan 2 TIDAK terpenuhi}
end;

Contoh 5.3:

if (x > 0) then
writeln (‘x adalah bilangan positif’)
else if (x < 0) then
writeln (‘x adalah bilangan negatif’)
else
writeln (‘x adalah nol’);

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 50


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Pada contoh di atas, mula-mula program akan mengecek nilai x lebih dari 0 atau tidak.
Bila kondisi ini terpenuhi, maka program akan menulis ‘x adalah bilangan
positif’. Sebaliknya jika tidak terpenuhi, maka program akan menjalankan perintah
if yang kedua untuk mengecek apakah nilai x kurang dari 0 atau tidak. Bila kondisi
ini terpenuhi, maka program akan menulis ‘x adalah bilangan negatif’, dan
bila tidak terpenuhi, maka program akan menulis ‘x adalah nol’.

Pernyataan if … then else if masih dapat dikembangkan menjadi lebih banyak


lagi tergantung dari permasalahan/kondisi yang dihadapi. Secara umum bentuk
diagram alir dari pernyataan if … then else if adalah seperti terlihat pada
Gambar 5.3. berikut ini.

Mulai

Ya
? Proses 1

Tidak

Ya
? Proses 2

Tidak

Ya
? Proses n

Tidak

alternatif Lanjutkan

Gambar 5.3. Flowchart if … then else if dengan n kondisi

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 51


Jurusan Matematika Matematika FMIPA UNPATTI 2012
5.4. Pernyataan Case
Pada bahasa Pascal dan juga pada kebanyakan bahasa pemrograman terstrukur
lainnya, pengambilan keputusan untuk sejumlah alternatif jawaban bisa juga
dilaksanakan dengan pernyataan case.
Pernyataan case biasanya digunakan untuk menyederhanakan konstruksi if …
then else if yang terlalu banyak.

Bentuk umum dari pernyataan case adalah sebagai berikut:

case ungkapan of
1: begin
pernyataan ke-1;
end
2: begin
pernyataan ke-2;
end
...
...
...
n: begin
pernyataan ke-n;
end
end

Ungkapan dapat berupa ungkapan sembarang yang memberikan hasil integer,


char, boolean, atau tipe terbilang.

Contoh berikut akan menggambarkan bentuk penyederhanaan penggunaan if …


then else if menjadi bentuk case.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 52


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Contoh 5.4:
Perhatikan bentuk if … then else if berikut:

if (x = 0) then
writeln (‘x bernilai 0’)
else if (x = 1) then
writeln (‘x bernilai 1’)
else if (x = 2) then
writeln (‘x bernilai 2’)
else if (x = 3) then
writeln (‘x bernilai 3’)
else
writeln (‘x bukan bernilai 0,1, 2 atau 3’);

Dalam bentuk pernyataan case akan menjadi:

case x of:
0: writeln (‘x bernilai 0’);
1: writeln (‘x bernilai 1’);
2: writeln (‘x bernilai 2’);
3: writeln (‘x bernilai 3’);
else
writeln (‘x bukan bernilai 0,1, 2 atau 3’);

Dari contoh di atas dapat dilihat bahwa walaupun penggunaan kedua pernyataan akan
memberikan hasil yang sama, namun penggunaan pernyataan case akan membuat
program lebih ringkas dan mudah untuk dimengerti.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 53


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Latihan 5

1. Tulislah program untuk menentukan nilai dan jenis dari akar-akar sebuah
persamaan kuadrat
Ax2 + Bx + C = 0

Dimana masukkannya berupa nilai-nilai koefisien persamaan kuadrat (A,B,C)


dan keluarannya adalah nilai dan jenis akar-akar persamaan (imajiner, real dan
sama, atau real dan berlainan). Petunjuk: Gunakan pernyataan if … then
else if

2. Tulislah program untuk menentukan letak dari sebuah titik koordinat pada
bidang Kartesian. Masukkan dari program ini berupa titik x dan y dan
keluarannya berupa letak titik koordinat tersebut (Kuadran I, II, III, atau IV).
Petunjuk: Gunakan pernyataan if … then else if

3. Tulislah program untuk menentukan nilai huruf/mutu dari hasil ujian mahasiswa
dengan ketentuan:
80 ≤ A ≤ 100
60 ≤ B < 80
40 ≤ C < 60
20 ≤ D < 40
E < 20
Masukkan dari program ini berupa nilai angka/numerik (0 sampai dengan 100)
dari ujian mahasiswa dan keluarannya berupa nilai huruf/mutu (A, B, C, D, atau
E). Petunjuk: Gunakan pernyataan case

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 54


Jurusan Matematika Matematika FMIPA UNPATTI 2012
4. Bagaimanakah keluaran dari program berikut ini:
var
x, y, z : integer;
begin
x:= 5;
y:= 5;
z:= 7;

if (x >= y) and (y > z) then


writeln (‘Kondisi 1 terpenuhi’);
else if (x < y) or (z < y) then
writeln (‘Kondisi 2 terpenuhi’);
else if (y = x) and not (z >= y) then
writeln (‘Kondisi 3 terpenuhi’);
else if not (x <= y) and (y <= z) then
writeln (‘Kondisi 4 terpenuhi’);
end.

5. Buatlah program dengan ciri kerja sebagai berikut:


a. Program menawarkan proses hitung sin, cos, tangen dan cotangen
yang dapat dipilih salah satu
b. Program minta masukan sebuah nilai sudut (dalam satuan derajat) dan
menghitung sesuai proses hitung sudut yang dipilih
c. Program menampilkan hasil hitung sudutnya (dalam satuan derajat)

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 55


Jurusan Matematika Matematika FMIPA UNPATTI 2012
6 PERULANGAN

Kompetensi Dasar:
1. Mahasiswa mampu memahami algoritma perulangan dan penulisannya dalam
bahasa Pascal
2. Mahasiswa dapat menulis program yang mengandung permasalahan perulangan.

Proses berulang adalah suatu proses dimana komputer akan mengeksekusi satu atau
lebih pernyataan sesuai kebutuhan. Dengan kata lain, perulangan memungkinkan kita
untuk menjalankan beberapa pernyataan hanya dengan menuliskan pernyataan
tersebut satu kali saja.

Bahasa Pascal menyediakan 3 pernyataan perulangan yaitu pernyataan for,


repeat ... until dan while ... do. Bahasa Pascal juga menyediakan
pernyataan break dan continue untuk menghentikan proses perulangan di tengah
jalan.

6.1. Pernyataan for


Pernyataan ini adalah pernyataan yang paling sering digunakan. Hal yang
membedakan antara pernyataan for dengan pernyataan while dan repeat …
until adalah bahwa pada pernyataan for, cacah pengerjaan sudah diketahui
dengan pasti., sementara pada dua pernyataan lain tadi, cacah pengerjaannya belum
diketahui.

Bentuk umum dari pernyataan for adalah sebagai berikut:

for pencacah:= nilai_awal to nilai_akhir do


begin
pernyataan-pernyataan yang akan diulang;
end;

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 56


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Selain itu terkadang kita melakukan cacah dalam bentuk mundur (dari besar ke kecil).
Jika kondisinya seperti ini, maka bentuk umum dari penggunaan for dengan cacah
mundur adalah sebagai berikut

for pencacah:= nilai_awal downto nilai_akhir do


begin
pernyataan-pernyataan yang akan diulang;
end.

Sebagai contoh penggunaan for dengan cacah maju. misalkan kita akan meng-input
dan menampilkan output dari 5 buah bilangan, maka penulisan programnya adalah
sebagai berikut.

Contoh 6.1:

PROGRAM

program contoh_for_1;
var
i, nilai : integer;
begin
for i:= 1 to 10 do
begin
writeln (‘Masukkan nilai ke-,’i',:’); readln(nilai);
writeln (‘Nilai ke-,’i',adalah’,nilai);
end;
end.

Penjelasan program:
Misalkan kita 5 nilai yang kita input-kan adalah berturut-turut: 10, 12, 6, 39
dan 50. Maka keluaran dari program di atas adalah:

OUTPUT

Masukkan nilai ke-1: 10


Nilai ke-1 adalah 10
Masukkan nilai ke-2: 12
Nilai ke-2 adalah 12
Masukkan nilai ke-3: 6
Nilai ke-3 adalah 6
Masukkan nilai ke-4: 39
Nilai ke-4 adalah 39
Masukkan nilai ke-5: 50
Nilai ke-5 adalah 50

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 57


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Pencacah i akan mencacah sesuai dengan jumlah nilai yang kita input-
kan. Pernyataan ‘i' pada kedua perintah writeln adalah untuk
memanggil nilai pencacah i sebagai indeks nilai. Pada perintah writeln
yang pertama, komputer akan menunggu sampai kita memasukkan nilai
dan nilai tersebut akan disimpan pada variable nilai. Pada perintah
writeln yang kedua, program hanya akan menampilkan nilai indeks ke-i
yang tadi kita masukkan. Kedua perintah writeln ini akan diulang
sebanyak 5 kali sesuai dengan cacah nilai yang telah kita tentukan.

Kita juga bisa menuliskan pernyataan for di dalam pernyataan for. Konstruksi seperti
ini dinamakan for bersarang (nested for). Untuk lebih jelasnya perhatikan contoh
program di bawah ini.

Contoh 6.2:

PROGRAM

program contoh_for_2;
var
x, y : integer;
begin
for x:= 1 to 3 do
for y:= 1 to 2 do
writeln (x,’’y);
end.

Penjelasan program:
Pada program di atas, cacah ke-1 dari pernyataan for pertama akan
diikuti oleh cacah ke-1 dan ke-2 pada pernyataan for yang kedua. Begitu
seterusnya sampai pada cacah ke-3 dari pernyataan for yang pertama.

OUTPUT

1 1
1 2
2 1
2 2
3 1
3 2

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 58


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Sementara tanda ‘ ’ pada perintah writeln artinya memberikan nilai
spasi antara x dan y.

6.2. Pernyataan repeat … until


Seperti yang telah dijelaskan di atas, pernyataan repeat … until digunakan pada saat
kita tidak dapat menentukan berapa banyak jumlah cacah yang harus dilakukan.

Bentuk umum dari pernyataan repeat … until adalah sebagai berikut:

repeat
pernyataan-pernyataan yang akan diulang;
until kondisi

Dari struktur penulisan di atas, ada 2 hal yang perlu diingat, yaitu :
a) Berapa pun jumlah pernyataan yang dipakai untuk menyusun proses yang akan
diulang-ulang, seluruh pernyataan tersebut tidak perlu dibingkai dalam begin dan
end;.
b) Pemasangan kondisi harus benar dan telah diperhitungkan sebaik mungkin
karena sangat menentukan kebenaran hasil proses perulangan tersebut.

Contoh 6.3:
Bandingkan ketiga program berikut ini

PROGRAM

program A; program B; program C;


uses crt; uses crt; uses crt;
var I: byte; var I: byte; var I: byte;
begin begin begin
I:= 0; I:= 0; I:= 8;
repeat repeat repeat
I:= I + 1; writeln (I:3); I:= I + 1;
writeln (I:3); I:= I + 1; writeln (I:3);
until I > 6; until I > 6; until I > 6;
readln; readln; readln;
end. end. end.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 59


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Penjelasan program:

OUTPUT

Program A Program B Program C


1 2 3 4 5 6 7 0 1 2 3 4 5 6 9

a) Ketiga program di atas memiliki kondisi yang sama, yaitu I > 6. Ini
berarti proses perulangan akan berhenti bila nilai I telah lebih besar
daripada 6.
b) Kini perhatikan listing program dan keluaran antara program A dengan
program B.
Perbedaan antara program A dan program B adalah perbedaan letak
pernyataan I:= I + 1. Sebelum masuk perulangan repeat
..until, variabel I diset bernilai nol maka begitu masuk dalam
perulangan pada program A, nilai variabel I ditambah 1 dulu baru
ditulis sehingga keluaran pertama program A adalah 1. Berbeda
dengan program B, nilai variabel I ditulis terlebih dahulu baru ditambah
1 sehingga keluaran pertama program B adalah 0.
c) Oleh karena kondisi pada perulangan repeat..until terletak di
akhir perulangan maka meski sebelum masuk perulangan variabel I
di-set bernilai 8 yang jelas lebih besar daripada 6 namun proses
perulangan tetap berjalan 1 kali.

Pemakaian perulangan repeat..until memerlukan kecermatan sebaik mungkin


ketika memasang kondisi dan nilai variabel-variabel yang berkaitan dengan
perulangan tersebut karena mempengaruhi kebenaran hasil eksekusinya. Akan lebih
baik jika programer telah mahir membaca program sehingga dapat memprediksi sketsa
programnya terlebih dahulu sebelum menuangkannya ke dalam komputer.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 60


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Contoh 6.4:

PROGRAM

program hitung;
uses crt;
var sum, bil: integer;
begin
clrscr;
sum:= 0;
repeat
write (‘Masukkan sebuah bilangan bulat : ‘);
readln (bil);
sum:= sum + bil;
until bil= 999;
writeln (sum:5);
readln;
end.

Penjelasan program:
Program ini bila dijalankan maka akan selalu minta masukan bilangan
bulat dan setiap kali diberi masukan maka akan dijumlahkan dengan
penjumlahan sebelumnya. Proses minta masukan dan penjumlahan akan
terus berlangsung dan baru berhenti bila program telah diberi masukan
bilangan 999.
Kasus: Bilangan 999 yang berfungsi sebagai penghenti proses
perulangan pada program hitung turut dijumlahkan dengan hasil
penjumlahan sebelumnya. Kini agar bilangan 999 benar-benar hanya
berfungsi sebagai penghenti proses perulangan maka ubahlah sedikit
program hitung sedemikian hingga bilangan 999 tidak turut
dijumlahkan dengan hasil penjumlahan sebelumnya.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 61


Jurusan Matematika Matematika FMIPA UNPATTI 2012
6.3. Pernyataan while … do
Perulangan while ... do dipakai untuk membuat suatu proses berulang secara
terus menerus selama kondisi masih terpenuhi.

Bentuk umum dari pernyataan while ... do adalah sebagai berikut:

while kondisi do
begin
pernyataan-pernyataan yang akan diulang;
end;

Dari struktur penulisan di atas maka ada 2 hal yang perlu diingat, yaitu :
a) Jika jumlah pernyataan penyusun proses yang akan diulang-ulang lebih dari satu
stemen maka pernyataan-pernyataan tersebut wajib dibingkai antara begin dan
end;
b) Perhatikan bahwa letak kondisi ada di awal perulangan (berbeda dengan
perulangan repeat..until). Ini berarti jika pada perulangan pertama akan
dijalankan kondisi sudah tidak terpenuhi maka perulangan while ... do
tersebut tidak akan dijalankan sama sekali.

Contoh program:

PROGRAM

program A; program B; Program C;


uses crt; uses crt; uses crt;
var I: byte; var I: byte; var I: byte;
begin begin begin
I:= 1; I:= 1; I:= 7;
while I <= 6 do while I <=6 do while I <= 6 do
begin begin begin
I:= I + 1; writeln(I:3); writeln (I:3);
Writeln (I:3); I:= I + ; I:= I + 1;
end; end; end;
readln; readln; readln;
end. end. end.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 62


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Penjelasan program:

OUTPUT
Program A Program B Program C
2 3 4 5 6 7 1 2 3 4 5 6

a) Perbedaan keluaran antara program A dan B disebabkan oleh


perbedaan letak pernyataan I:= I + 1;. Oleh karena jumlah
pernyataan penyusun proses perulangan lebih dari satu maka
pernyataan-pernyataan tersebut harus dibingkai dalam begin dan
end;
b) Program C tidak memberikan keluaran sama sekali karena perulangan
while ... do tidak dijalankan. Hal ini disebabkan sebelum masuk
perulangan variabel I telah diset bernilai 7 padahal kondisi yang
mengijinkan terjadinya perulangan jika nilai I <= 6.

6.4. Pernyataan break dan continue


Pada beberapa kasus, kita mungkin ingin menghentikan suatu pengulangan di tengah
jalan. Untuk menghentikan pengulangan, kita dapat menggunakan pernyataan break.
Pernyataan ini dapat digunakan pada pernyataan for, repeat … until ataupun while
… do.

Contoh 6.4:

x:= 0;
while (x >= 0) do
begin
x:= x + 1;
if (x > 100) then
break;
end;

Bila dilihat, kalang di atas tidak akan pernah berhenti karena x selalu ditambah 1
padahal kondisi yang harus dipenuhi adalah (x > 0). Namun bila dijalankan, setelah
nilai x > 100, pengulangan akan berhenti karena adanya pernyataan break.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 63


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Pernyataan continue adalah bentuk pernyataan khusus lain yang digunakan pada
pengulangan. Pernyataan ini digunakan untuk mengembalikan aliran program ke
pengujian kondisi pengulangan. Dengan kata lain, pernyataan-pernyataan di bawah
continue akan diabaikan.

Contoh 6.5:

for i:= 0 to 100 do


begin
if ((i mod 3) <> 0) then
continue;
writeln(i);
end;

Program ini akan menuliskan semua bilangan kelipatan 3 yang kurang dari 100.
Mengapa bisa demikian? Karena pada saat nilai pencacah pengulangan tidak habis
dibagi 3, program memanggil pernyataan continue, akibatnya pernyataan
writeln(i) tidak dipanggil.

Pernyataan break dan continue tidak dapat menghentikan atau melanjutkan kalang
paling dalam.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 64


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Latihan 6

1. Bagaimanakah keluaran dari program berikut:


var
i : byte;
begin
i:= 1;
while (i < 100) do
begin
writeln (i);
i:= i + 2;
end;
end.

2. Pada program berikut, berapa kali string ‘Jurusan’ dan ‘Matematika’ muncul di
layar? Jelaskan!
var
x : byte;
begin
for x:= 1 to 10 do;
writeln (‘Jurusan’);
writeln (‘Matematika’);
end.

3. Tulislah sebuah program untuk menghitung nilai rata-rata dari 10 bilangan yang
diinputkan. Masukkan berupa 10 buah bilangan bulat, dan keluarannya berupa
nilai bilangan-bilangan tersebut dan rata-rata nya.

4. Pada Program 1 dan Program 2 berikut ini apakah kedua program tersebut
akan menghasilkan keluaran yang sama? Jika tidak, dimana perbedaannya?

Program 1
repeat
inc(x);
until (x > 10);
writeln(x);

Program 2
while (x <= 10) do
inc(x);
writeln(x);

5. Tulislah program untuk mencari semua nilai x, y, dan z yang memenuhi


persamaan linier berikut:
12 x − 9 y + 8 z = 0
dimana 1 ≤ x, y, z ≤ 100

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 65


Jurusan Matematika Matematika FMIPA UNPATTI 2012
6. Buatlah program untuk menghitung masing-masing perumusan matematika
berikut :
a. Sum = 1+2+3+…+100
1 2 3 100
b. Sum = + + + ... +
4 5 6 103
1 2 3 99
c. Sum = 2
+ 2 + 2 + ... +
2 3 4 100 2

7. Buatlah program untuk menjalankan operasi matematika berikut dan tampilkan


hasilnya:
20
a. Total = ∑ (i × 3)
i =3
5

20
b. Total = ∏ (i + 5)
i =10
5

8. Tulislah program untuk menampilan N segitiga pascal yang pertama. Masukkan


dari program ini adalah bilangan bulat N, dimana 1 < N ≤ 100. Sementara
keluaran dari program ini adalah N Segitiga Pascal pertama seperti di bawah
ini:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
...

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 66


Jurusan Matematika Matematika FMIPA UNPATTI 2012
7 SUBRUTIN

Kompetensi Dasar:
1. Mahasiswa mampu memahami algoritma perulangan dan penulisannya dalam
bahasa Pascal
2. Mahasiswa dapat menulis program yang mengandung permasalahan perulangan.

D
i dalam program, konsep pemrograman modular merupakan konsep yang
bermanfaat dan produktif. Pemrograman modular berkembang sejalan
dengan teknik pemrograman terstruktur.
Program Pascal adalah bahasa pemrograman pioneer dalam hal pemrograman
modular, artinya program dapat terdiri dari beberapa subprogram atau biasa disebut
subrutin yang berupa Prosedur (Procedure) dan Fungsi (Function). Tiap-tiap
subrutin dalam Pascal menjalankan satu atau lebih tugas tertentu. Dalam
memecahkan masalah dengan pemrograman Pascal sebaiknya dibuat terlebih dahulu
langkah-langkah pokoknya dan dari tiap langkah pokok tersebut dijabarkan dalam
langkah yang lebih detail. Begitu seterusnya hingga langkah terakhir yang bisa
diterjemahkan ke dalam perintah-perintah dalam bahasa pascal.

Bentuk umum dari subrutin dalam program adalah sebagai berikut:

program utama;
begin
nama_prosedur#1/nama_fungsi#1;
nama_prosedur#2/nama_fungsi#2;
...
nama_prosedur#n/nama_fungsi#n;
end.

Mengapa kita memerlukan subrutin? Jawabannya sederhana saja, karena dalam


program yang besar, akan lebih baik jika tugas tertentu dilakukan oleh subrutin
tertentu. Dengan demikian program menjadi lebih mudah dibaca.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 67


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Contoh berikut ini akan memberikan gambaran yang lebih jelas tentang manfaat dari
subrutin.

Contoh 7.1:

begin
BacaData;
ProsesData;
TulisHasil;
end;

Dapat dilihat dari contoh di atas, sebuah program yang kompleks dapat lebih mudah
dibaca jika ditata sebagai beberapa subrutin. Hal lain yang bermanfaat adalah jika
terjadi kesalahan di dalam program maka akan lebih mudah pelacakannya. Misalnya
jika terjadi kesalahan dalam proses pembacaan data, maka kita hanya akan
memusatkan perhatian pada subrutin BacaData.

Pada bab ini akan dibahas tentang dua macam subrutin dalam bahasa Pascal yaitu
Prosedur dan Fungsi, dan salah satu bentuk aplikasi dari subrutin yaitu Rekursi.

7.1. Prosedur
7.1.1. Prosedur Sederhana
Prosedur sederhana adalah sebuah subprogram yang tidak mempunyai parameter
masukan maupun parameter keluaran.

Berikut ini adalah bentuk umum dari prosedur sederhana:

procedure A; { nama prosedur adalah A }


var varlok1, varlok2, … : tipevar;
begin
pernyataan-pernyataan;
end;

Pada bentuk di atas, terlihat bahwa dalam prosedur dapat digunakan variable yang
dideklarasikan juga dalam prosedur tersebut, variable-variabel ini disebut variable
lokal.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 68


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Contoh 7.2:

PROGRAM

program hitungan_2_bil;
uses crt;
var bil1,bil2: integer;

procedure jumlahkan;
var hasilJum: integer;
begin
hasilJum := bil1+bil2;
writeln('hasil penjumlahan: ',hasilJum);
end;

begin
clrscr;
writeln('masukan 2 bilangan');
write('bilangan pertama: '); readln(bil1);
write('bilangan kedua : '); readln(bil2);
jumlahkan;
readkey;
end.

Keluaran program:
OUTPUT

masukan 2 bilangan
bilangan pertama: 5
bilangan kedua : 7
hasil penjumlahan: 12

Penjelasan program
Bil1, bil2 adalah variable global, sedangkan hasilJum adalah variable local
untuk prosedur jumlahkan

7.1.2. Prosedur yang menerima masukan


Sebuah prosedur dapat menerima masukan yang digunkan dalam proses sesuai
tugasnya. Prosedur semacam ini dikatakan prosedur yang mempunyai parameter
masukan.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 69


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Berikut ini adalah bentuk umum dari prosedur yang menerima masukan:

procedure B(param1, param2, … : tipeparam);


var varlok1, varlok2, … : tipevar;
begin
pernyataan-pernyataan;
end;

Contoh 7.3:
PROGRAM

Program Perhitungan_4_bil;
uses crt;
var bil1,bil2,bil3,bil4: integer;

Procedure jumlahkan(angka1,angka2: integer);


var hasilJum: integer;
begin
hasilJum := angka1+angka2;
writeln('hasil penjumlahan: ',hasilJum);
end;

begin
clrscr;
writeln('masukan 4 bilangan');
write('bilangan pertama: '); readln(bil1);
write('bilangan kedua : '); readln(bil2);
write('bilangan ketiga : '); readln(bil3);
write('bilangan keempat: '); readln(bil4);
writeln;
writeln('bilangan pertama dan kedua');
jumlahkan(bil1,bil2);
writeln;
writeln('bilangan ketiga dan keempat');
jumlahkan(bil3,bil4);
end.

Keluaran program:
OUTPUT

masukan 4 bilangan
bilangan pertama: 5
bilangan kedua : 8
bilangan ketiga : 2
bilangan keempat: 7

bilangan pertama dan kedua


hasil penjumlahan: 13

bilangan ketiga dan keempat


hasil penjumlahan: 9

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 70


Jurusan Matematika Matematika FMIPA UNPATTI 2012
7.1.3. Prosedur yang menerima masukan dan menghasilkan keluaran
Prosedur yang paling komplek adalah yang menerima masukan dan menghasilkan
keluaran. Prosedur seperti ini disebut prosedur yang mempunyai parameter masukan
dan parameter keluaran.

Bentuk umum dari prosedur yang menerima masukan dan menghasilkan keluaran
adalah sebagai berikut:

procedure C(param1, param2, … : tipeparam;var paramx, paramy, …


: tipeparam);
var varlok1, varlok2, … : tipevar;
begin
pernyataan-pernyataan
end;

Pada skema bentuk umum prosedur di atas didefinisikan dua macam parameter, yaitu:
- parameter nilai (value parameter) : param1, param2
- parameter acuan (reference parameter): paramx, paramy

Contoh 7.4:
PROGRAM

program Perhitungan_4_bil;
uses crt;
var bil1,bil2,bil3,bil4,bil12,bil34,bil1234: integer;

procedure jumlahkan(angka1,angka2: integer; var hasilJum:


integer);
begin
hasilJum := angka1+angka2;
end;

begin
clrscr;
writeln('masukan 4 bilangan');
write('bilangan pertama: '); readln(bil1);
write('bilangan kedua : '); readln(bil2);
write('bilangan ketiga : '); readln(bil3);
write('bilangan keempat: '); readln(bil4);
write('jumlah bilangan pertama dan kedua : ');
jumlahkan(bil1,bil2,bil12); writeln(bil12);
write('jumlah bilangan ketiga dan keempat: ');
jumlahkan(bil3,bil4,bil34); writeln(bil34);
write('jumlah semua bilangan : ');
jumlahkan(bil12,bil34,bil1234); writeln(bil1234);
end.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 71


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Keluaran program:
OUTPUT

masukan 4 bilangan
bilangan pertama: 5
bilangan kedua : 8
bilangan ketiga : 2
bilangan keempat: 7
jumlah bilangan pertama dan kedua : 13
jumlah bilangan ketiga dan keempat: 9
jumlah semua bilangan : 22

Penjelasan program:
Perhatikan contoh di atas, lihat parameter angka1, angka2, hasilJum
di dalam pendeklarasian prosedur jumlahkan yang sesuai dengan
parameter bil1, bil2, bil12 pada pemakaian prosedur di dalam
tubuh program.
Dalam hal ini dapat didefinisikan dua macam parameter, yaitu:
- parameter formal, di dalam deklarasi prosedur: angka1,
angka2, hasilJum
- parameter aktual, pada pemanggilan prosedur: bil1, bil2,
bil12

7.2. Fungsi
Fungsi adalah subrutin yang menerima masukan dan mempunyai keluaran secara
langsung.

Bentuk umum dari sebuah fungsi adalah sebagai berikut:

function A : tipeparam;
begin
pernyataan-pernyataan;
end;

Sebagaimana dalam prosedur, fungsi juga dapat diberikan parameter. Cara


mendeklarasikan fungsi dengan parameter juga tidak jauh berbeda dengan
pendeklarasian parameter pada prosedur.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 72


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Bentuk umum dari fungsi yang diberi parameter adalah sebagai berikut:

function B(param1, param2, … : tipeparam): tipeparam;


begin
pernyataan-pernyataan;
end;

Perbedaan utama antara prosedur dan fungsi adalah dalam menghasilkan keluaran.
Walaupun prosedur bisa menghasilkan nilai keluaran, tetapi nilai tersebut tidak dapat
diambil secara langsung, melainkan harus diambil melalui parameter referensi.
Sedangkan keluaran dari fungsi dapat diambil langsung dari fungsi tersebut.

Pemilihan bentuk subrutin yang berupa prosedur atau fungsi lebih bersifat seni dalam
pemrograman karena secara teknis dua bentuk subprogram tersebut dapat
menghasilkan bentuk yang sama.

Contoh 7.5:
PROGRAM

program perhitungan_4_bil;
uses crt;
var bil1,bil2,bil3,bil4,bil12,bil34,bil1234: integer;

function jumlah(angka1,angka2: integer): integer;


begin
jumlah := angka1+angka2;
end;

begin
clrscr;
writeln('masukan 4 bilangan');
write('bilangan pertama: '); readln(bil1);
write('bilangan kedua : '); readln(bil2);
write('bilangan ketiga : '); readln(bil3);
write('bilangan keempat: '); readln(bil4);
write('jumlah bilangan pertama dan kedua : ');
bil12:=jumlah(bil1,bil2); writeln(bil12);
write('jumlah bilangan ketiga dan keempat: ');
writeln(jumlah(bil3,bil4));
write('jumlah semua bilangan : ');
bil1234:=jumlah(bil12,jumlah(bil3,bil4)); writeln(bil1234);
write('jumlah semua bilangan : ');
writeln(jumlah(jumlah(bil1,bil2),jumlah(bil3,bil4)));
end.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 73


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Keluaran program:
OUTPUT

masukan 4 bilangan
bilangan pertama: 5
bilangan kedua : 8
bilangan ketiga : 2
bilangan keempat: 7
jumlah bilangan pertama dan kedua : 13
jumlah bilangan ketiga dan keempat: 9
jumlah semua bilangan : 22
jumlah semua bilangan : 22

7.3. Rekursi
Dalam Pascal, ada satu kelebihan dalam cara pemanggilan subprogram. Pascal
mengijinkan pemanggilan suatu subprogram dari dalam subprogram itu sendiri. Tidak
semua bahasa pemrograman mengijinkan cara pemanggilan subprogram seperti itu
karena akan banyak memakan memori. Untuk lebih jelasnya perhatikan potongan
program di bawah ini :

procedure Z;
begin
pernyataan-pernyataan;
Z;
end;

Pada baris terakhir prosedur z di atas, terdapat pemanggilan kembali terhadap


prosedur z, sehingga prosedur di atas tidak akan pernah selesai dijalankan sebab
begitu sampai pada baris terakhir dari prosedur, program akan kembali lagi ke awal
prosedur. Yang terjadi adalah semacam perulangan tanpa perintah perulangan Pascal,
dan perulangan dengan cara ini disebut dengan rekursi. Rekursi berlaku terhadap
semua subrutin dalam Pascal, yaitu prosedur dan fungsi. Dengan adanya rekursi ini,
banyak algoritma komputer menjadi lebih mudah dibuat programnya.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 74


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Contoh 7.6:
PROGRAM

program CetakTerbalik;
uses crt;
const enter=#13;

procedure BacaHuruf;
var ch: char;
begin
ch:=ReadKey;
if ch <> enter then BacaHuruf; {rekursif}
write(ch);
end;

begin
clrscr;
writeln('Ketikkan kalimat diakhiri tombol <Enter> ');
writeln('-----------------------------------------');
BacaHuruf;
end.

Keluaran program:
Sebagai contoh, kalimat yang diketikan adalah ’komputer’

OUTPUT

Ketikkan kalimat diakhiri tombol <Enter>


-----------------------------------------
retupmok

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 75


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Contoh 7.7:

PROGRAM

program Cari_nilai_faktorial;
uses crt;
var bil1,hasil: byte;

function faktorial(N: byte): byte;


begin
if N > 1 then
faktorial:=faktorial(N-1)*N {rekursif}
else
faktorial:=1 {jalan keluar dari fungsi ini}
end;

begin
clrscr;
write('masukkan bilangan yang akan dicari nilai faktorialnya:');
readln(bil1);
hasil:=faktorial(bil1);
writeln('nilai faktorial dari ',bil1,' adalah ',hasil);
end.

Keluaran program:

OUTPUT

masukkan bilangan yang akan dicari nilai faktorialnya: 5


nilai faktorial dari 5 adalah 120

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 76


Jurusan Matematika Matematika FMIPA UNPATTI 2012
8 TIPE DATA
LARIK DAN REKAMAN

Kompetensi Dasar:
1. Mahasiswa mengenal tipe data larik (array)
2. Mahasiswa dapat menggunakan tipe data larik (array) sesuai keperluan programnya
3. Mahasiswa mengenal tipe data rekaman (record)
4. Mahasiswa dapat menggunakan tipe data rekaman (record) sesuai keperluan
programnya.
5. Mahasiswa dapat menggunakan tipe data larik dan rekaman dalam subrutin

P
ada Bab 4 telah dibahas beberapa tipe data dalam bahasa Pascal. Pada
bab ini akan dibahas 2 buah tipe data yang lain yang masuk dalam tipe
data terstruktur yaitu larik dan rekaman.

8.1. Larik
Larik adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang
mempunyai tipe sama. Komponen-komponen tersebut disebut sebagai komponen
type, larik mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen
dalam larik ditunjukkan oleh suatu indeks, dimana tiap komponen di larik dapat diakses
dengan menunjukkan nilai indeksnya atau subscript. Larik dapat bertipe data
sederhana seperti byte,word,integer,real,bolean,char,string dan
tipe data subrange. Tipe larik mengartikan isi dari larik atau komponen-komponenya
mempunyai nilai dengan tipe data tersebut.

Bentuk umum dari deklarasi larik adalah sebagai berikut:

var
nama_larik: array[batas_bawah .. batas_atas] of tipe_larik;

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 77


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Misalnya kita ingin membuat 8 buah variable bertipe LongInt. Tanpa menggunakan
tipe data larik, kita akan mendeklarasikan seperti berikut:

var
a1,a2,a3,a4,a5,a6,a7,a8 : longint;

Namun dengan menggunakan larik, maka bentuk deklarasinya akan menjadi lebih
sederhana yaitu

var
a: array[1..8] of longint;

Dengan bentuk deklarasi seperti di atas, seolah-olah kita memiliki 8 buah variable,
yaitu: a[1],a[2],a[3],a[4],a[5],a[6],a[7], dan a[8]. Keuntungannya
dengan menggunakan tipe data larik adalah kita dapat menghemat penggunaan ruang
(space) dalam memory.

Contoh 8.1:

Var
Untai : array[1..50] of Integer;

Pada contoh larik dengan nama Untai telah dideklarasikan dengan tipe
integer, dengan jumlah elemen maksimum 50 elemen, nilai dari elemen
array tersebut diatas harus bertipe integer.

Cara pengaksesan variable dengan tipe larik adalah dengan menyebutkan nama
variable dan indeksnya. Format pemanggilan tipe data larik adalah sebagai berikut:

nama_larik[indeks_larik]:= nilai;

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 78


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Contoh 8.2:

Bilangan[1]:=3;

Contoh lain untuk pendeklarasian larik adalah sebagai berikut:

Contoh 8.3:
PROGRAM

program contoh_larik;
uses crt;
const N=10;
type larik1 = array[1..N] of integer;
var bil : larik1;
indeks : integer;
begin
writeln('masukkan sepuluh bilangan bulat.');
for indeks := 1 to 10 do
begin
readln(bil[indeks]); { loop untuk memasukkan elemen array }
end;
writeln('Isi dari array ini adalah'); { tampilkan setiap
elemen }
for indeks := 1 to 10 do
begin
writeln('bil[', indeks:2,'] adalah ',bil[indeks] );
end
end.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 79


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Penjelasan program:
Misalkan sepuluh bilangan yang akan kita inputkan berturut-turut adalah: 5, 4, 12,
9, 1, 56, 49, 30, 22, 90. Maka keluaran dari diatas adalah :

OUTPUT

Masukkan sepuluh bilangan bulat


5
4
12
9
1
56
49
30
22
90
Isi dari array ini adalah
bil[ 1] adalah 5
bil[ 2] adalah 4
bil[ 3] adalah 12
bil[ 4] adalah 9
bil[ 5] adalah 1
bil[ 6] adalah 56
bil[ 7] adalah 49
bil[ 8] adalah 30
bil[ 9] adalah 22
bil[10] adalah 90

Pada contoh di atas batas atas dari larik ditetapkan dengan deklarasi konstanta
N=10. Sehingga dalam pendeklarasian variable larik1 cukup dengan
array[1..N]of integer. Ini berarti semua variable mulai dari
larik1[1],larik1[2],…,larik1[N] memiliki tipe data integer.

8.1.1. Larik dimensi banyak


Di dalam pascal Larik dapat berdimensi lebih dari satu yang disebut dengan larik
dimensi banyak (multidimensional array), disini akan dibahas larik 2 dimensi saja. Larik
2 dimensi dapat mewakili suatu bentuk tabel atau matriks, yaitu indeks pertama
menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 80


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Bentuk umum dari deklarasi larik 2 dimensi adalah sebagai berikut:

var
nama_larik: array[bb1 .. ba1, bb2 .. ba2] of tipe_larik;

dimana:
 bb1 : batas bawah 1
 bb2 : batas bawah 2
 ba1 : batas atas 1
 ba2 : batas atas 2

Contoh 8.4:

Var
A : array[1..2,1..2] of Integer;

Maka variable A pada contoh diatas dapat berupa sebuah matriks berindeks 2
dimensi, dengan komponen-komponen A[1,1],A[1,2],A[2,1] dan
A[2,2].

Sementara cara pengaksesan variable dengan tipe larik 2 dimensi adalah dengan
menyebutkan nama variable beserta kedua indeksnya. Format pemanggilan tipe data
larik adalah sebagai berikut:

nama_larik[indeks1,indeks2]:= nilai;

8.1.2. Larik sebagai parameter


Larik dapat digunakan sebagai parameter yang dikirimkan baik secara nilai (by value)
atau secara acuan (by reference) ke prosedur atau ke fungsi. Prosedur yang
menggunakan parameter berupa larik harus dideklarasikan di dalam judul prosedur
yang menyebutkan parameternya bertipe larik.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 81


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Contoh 8.5:
PROGRAM

program Operasi_Matrik;
uses crt;
const baris=3;
kolom=5;
type matrik= array[ 1..baris,1..kolom] of integer;
var A,B, AplusB: matrik;

procedure inputMatrik(var X:matrik);


var i,j: integer;
begin
for i:=1 to baris do
for j:=1 to kolom do
begin
write('masukan elemen baris ',i,' kolom ',j,' : ');
readln(X[i,j]);
end;
end;

procedure tampilMatrik(X:matrik);
var i,j: integer;
begin
for i:=1 to baris do
begin
for j:=1 to kolom do
write(X[i,j],' ');
writeln;
end;
end;

procedure tambahMatrik(X,Y:matrik; var Z:matrik);


var i,j: integer;
begin
for i:=1 to baris do
for j:=1 to kolom do
Z[i,j]:=X[i,j]+Y[i,j];
end;

begin
clrscr;
writeln('isikan elemen matrik A: '); inputMatrik(A);
writeln;
writeln('cetak matrik A: '); tampilMatrik(A);
writeln; writeln('tekan enter untuk melanjutkan'); readln;
clrscr;
writeln('isikan elemen matrik B: '); inputMatrik(B);
writeln;
writeln('cetak matrik B: '); tampilMatrik(B);
writeln; writeln('tekan enter untuk melanjutkan'); readln;
clrscr;
writeln('matrik A: '); tampilMatrik(A); writeln;
writeln('matrik B: '); tampilMatrik(B); writeln;
writeln('matrik A+B: '); tambahMatrik(A,B,AplusB);
tampilMatrik(AplusB);
end.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 82


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Penjelasan program:
Program di atas adalah untuk menghitung penjumlahan dua buah matriks
berukuran 3 x 5. Terdapat 3 buah prosedur yaitu masing-masing prosedur
inputMatriks, tampilMatriks dan tambahMatriks. Penggunaan
prosedur inputMatriks di sini adalah untuk menghemat penulisan program
karena matriks yang diinputkan lebih dari 1 matriks. Prosedur tampilMatriks
tidak harus ada karena hanya untuk kebutuhan tampilan saja. Sementara prosedur
tambahMatriks adalah sesuai namanya, yaitu untuk operasi penjumlahan 2
buah matriks. Pada prosedur tambahMatriks hasil penjumlahan dari 2 buah
matriks adalah penjumlahan elemen-elemen yang sama dari kedua matriks. Jadi
jika A[1,1] harus dijumlahkan dengan B[1,1], begitu seterusnya.

8.2. Rekaman
Rekaman adalah tipe data kompleks yang elemen-elemennya boleh mempunyai tipe
data yang berbeda. Rekaman lebih kompleks daripada larik karena rekaman
merupakan kumpulan beberapa variabel dengan tipe data yang berbeda. Berbeda
dengan larik yang tiap elemennya ditandai dengan nomer indeks maka rekaman
ditandai dengan nama variabel anggotanya. Cara mengakses elemen dari rekaman
dilakukan dengan menyebutkan nama variabel anggota setelah menyebutkan nama
rekaman yang akan diakses. Di antara nama rekaman dan nama variabel anggota
dipisahkan tanda titik (.).

Bentuk umum deklarasi rekaman adalah sebagai berikut :

var
nama_rekaman1 : record
var_rekaman11 : type_var_rekaman11;
var_rekaman12 : type_var_rekaman12;
end;
nama_rekaman2 : record
var_rekaman21 : type_var_rekaman21;
var_rekaman22 : type_var_rekaman22;
end;

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 83


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Sementara format pemberian nilai atapun cara pengaksesan rekaman adalah sebagai
berikut:

nama_rekaman.var_rekaman:= nilai;

Contoh 8.6:

var
TMataKuliah: record
NamaMK : string;
KodeMK : string;
Semester : byte;
end;
TMahasiswa : record
Nama : string;
NIM : string;
Nilai : real;
end;

Maksud dari pendeklarasian di atas adalah sebagai berikut : TMataKuliah


berupa rekaman dengan 3 elemen yaitu NamaMK, KodeMK dan Semester.
Sementara TMahasiswa berupa rekaman dengan 3 elemen yaitu, Nama, NIM
dan Nilai.

Untuk mengakses elemen dari variable-variabel TMataKuliah dan


TMahasiswa adalah sebagai berikut:

TMataKuliah.NamaMK:= ‘Bahasa Pemrograman’;


TMahasiswa.Nilai:= 85.7;

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 84


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Contoh 8.7:
PROGRAM
program Buku_telpon;
uses crt;
type notelpmu= record
nama: string[12];
alamat: string[25];
notelp: string[12]
end;
daftelp= array[1..4] of notelpmu;
var bukutelp: daftelp;
i,indeks: integer;

procedure catatelp(var A:notelpmu);


begin
write('Nama : '); readln(A.nama);
write('Alamat : '); readln(A.alamat);
write('No Telp : '); readln(A.notelp);
end;

begin
clrscr;
for i:=1 to 4 do
begin
writeln('masukkan pada daftar no. ',i);
catatelp(bukutelp[i]); writeln
end;
clrscr;
writeln('Daftar No Telp: ');
for i:=1 to 4 do
writeln(i,'. ',bukutelp[i].nama);
writeln;
repeat
write('Telp yang dicari pada daftar no.: '); readln(indeks);
with bukutelp[indeks] do
begin
writeln('Nama : ',nama);
writeln('Alamat : ',alamat);
writeln('No Telp : ',notelp);
end;
writeln;
until (indeks=0)
end.

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 85


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Keluaran program

OUTPUT

masukkan pada daftar no. 1


Nama : Tomy
Alamat : Kutoarjo
No Telp : 641203

masukkan pada daftar no. 2


Nama : Diana
Alamat : Surabaya
No Telp : 7133456

masukkan pada daftar no. 3


Nama : Adib
Alamat : Yogya
No Telp : 519486

masukkan pada daftar no. 4


Nama : Fakhri
Alamat : Solo
No Telp : 855964

Kemudian tampilan layar dihapus


OUTPUT

Daftar No Telp:
1. Tomy
2. Diana
3. Adib
4. Fakhri

Telp yang dicari pada daftar no.: 3


Nama : Adib
Alamat : Yogya
No Telp : 519486

Telp yang dicari pada daftar no.: 1


Nama : Tomy
Alamat : Kutoarjo
No Telp : 641203

Telp yang dicari pada daftar no.: 0

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 86


Jurusan Matematika Matematika FMIPA UNPATTI 2012
Latihan 7

1. Buatlah sebuah program tanpa prosedur untuk perkalian matriks!

2. Buatlah program dengan prosedur untuk perkalian matriks!

3. Buatlah rekaman yang menyimpan nilai seorang mahasiswa dengan elemen


nama, nim, nilai fisika dasar, kimia dasar, biologi dasar dan matematika dasar!

PEMROGRAMAN dengan FREEPASCAL – FYR-GJT-ST 87


Jurusan Matematika Matematika FMIPA UNPATTI 2012





0DWHULPDWHUL\DQJWHUVDMLGDODP%XNXDGDODK
‰ 3HQJDQWDU%DKDVD3HPURJUDPDQ
‰ 3HQJHQDODQ )UHH3DVFDO
‰ 6WUXNWXU%DKDVD3DVFDO
‰ 7LSH'DWDGDQ2SHUDWRU
‰ 3HUFDEDQJDQGDQ3HUXODQJDQ
‰ 6XEUXWLQ
‰ 7LSH'DWD/DULNGDQ5HNDPDQ
%XNX LQL GLWXMXNNDQ SHODWLKDQ PDKDVLVZD SHQHULPD EHDVLVZD
ELGLNPLVLGLOLQJNXQJDQ8QLYHUVLWDV3DWWLPXUD

Anda mungkin juga menyukai