Dasar Pemrograman

131
1.1. Pendahuluan Jika anda mempunyai suatu permasalahan, maka tentunya anda akan berpikir bagaimana menyelesaikan masalah yang anda hadapi. Proses berpikir yang anda lakukan tentunya akan berurut langkah demi langkah sampai pada akhirnya permasalahan anda akan mendapatkan kesimpulan (mendapatkan solusi). Secara tidak langsung setiap langkah yang anda pikirkan haruslah terukur, logis, dan sistimatis sehingga suatu permasalahan dapat diselesaikan. Proses berpikir yang sistematis dan terukur ini disebut dengan algoritma. 1.2. Penyajian 1.2.1. Pengantar ke Algoritma Komputer adalah alat bantu untuk menyelesaikan masalah. Namun masalah yang ingin diselesaikan tidak dapat langsung ‘disodorkan’ begitu saja ke komputer. Sebagai contoh andaikan anda mempunyai data nilai ujian sekumpulan mahasiswa. Anda ingin mengurutkan semua data tersebut dari nilai tertinggi hingga terendah. Misalkan anda ketikkan semua nilai ujian dengan program pengolah 1 ALGORITMA

description

wewr

Transcript of Dasar Pemrograman

Page 1: Dasar Pemrograman

1.1. Pendahuluan

Jika anda mempunyai suatu permasalahan, maka tentunya anda akan

berpikir bagaimana menyelesaikan masalah yang anda hadapi. Proses berpikir

yang anda lakukan tentunya akan berurut langkah demi langkah sampai pada

akhirnya permasalahan anda akan mendapatkan kesimpulan (mendapatkan solusi).

Secara tidak langsung setiap langkah yang anda pikirkan haruslah terukur, logis,

dan sistimatis sehingga suatu permasalahan dapat diselesaikan. Proses berpikir

yang sistematis dan terukur ini disebut dengan algoritma.

1.2. Penyajian

1.2.1. Pengantar ke Algoritma

Komputer adalah alat bantu untuk menyelesaikan masalah. Namun masalah

yang ingin diselesaikan tidak dapat langsung ‘disodorkan’ begitu saja ke

komputer. Sebagai contoh andaikan anda mempunyai data nilai ujian sekumpulan

mahasiswa. Anda ingin mengurutkan semua data tersebut dari nilai tertinggi

hingga terendah. Misalkan anda ketikkan semua nilai ujian dengan program

pengolah kata (word processor) lalu dibawahnya dituliskan perintah kepada

komputer untuk mengurutkannya sebagai berikut:

30,86,45,81,63,72,56

Urutkan dari nilai tertinggi hingga nilai terendah dan anda menunggu hasilnya.

Apakah komputer anda mengerjakan masalah pengurutan tersebut? Tentu tidak,

karena komputer tidak ”mengerti” perintah anda di atas dan tidak ”tahu”

bagaimana cara mengurutkan nilai tersebut?

Agar komputer dapat menyelesaikan masalah anda, maka anda perlu

merumuskan langkah-langkah penyelesaian masalah itu dalam suatu rangkaian

instruksi. Komputerlah yang nanti mengerjakan rangkaian instruksi tersebut,

1

ALGORITMA

Page 2: Dasar Pemrograman

karena komputer dapat mengerjakannya dengan cepat, akurat, dan berulang-uang

tanpa mengenal lelah dan bosan. Sekumpulan instruksi yang merupakan

penyelesaian masalah itu dinamakan dengan program. Program ”dimasukkan”

kedalam komputer, komputer akan mengerjakan instruksi dalam program tersebut,

lalu memberikan hasil atau luaran yang diinginkan.

Misalkan program yang berisi rangkaian instruksi untuk mengurutkan data,

data tersebut anda rumuskan kembali sebagai berikut:

Langkah 1. Cari nilai terbesar diantara N buah data

Langkah 2. Tempatkan nilai terbesar tersebut pada posisi yang tepat

(dengan cara mempertukarkan)

Langkah 3. Ulangi langkah 1 untuk N-1 buah data yang lain.

Nah, sekarang usaha anda sedikit lebih maju. Tetapi komputer tetap belum dapat

melaksanakan program diatas karena bahasa yang anda gunakan untuk menulis

program tidak dapat dipahaminya. Sebagaimana dengan kehidupan manusia,

manusia hanya bisa menerima perintah jika sesuai dengna bahasa yang ia

gunakan. Salah satu bahasa pemrograman adalah bahasa Pascal.selain itu dikenal

pula bahasa selain Pascal seperti Bahasa C dan Fortran.

Urutan langkah-langkah yang sistimetis dan merupakan cara berpikir si

pemrogram dalam menyelesaikan masalah dinamakan algoritma. Contoh

pengurutan data di atas disebut notasi algoritma. Notasi algoritma bukan notasi

bahasa pemograman, karena itu program dalam notaasi algoritma tidak dapat

dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, program dalam

notasi algoritma harus ditranslasikan atau diterjemahkan kedalam notasi bahasa

pemrograman yang dipilih.

Sampai disini, pasti anda sudah mulai memahami tentang algoritma bukan?

Catatan Sejarah

Kalimat “algorithm” diambil dari nama seorang matematikawan yang juga

seorang astronomi berkebangsaan arab yang bernama Abu Ja’far Muhamad Ibnu

Musa Al-Khowarizmi pada abad ke-19. Beliau dikenal sebagai pengarang buku

matematika yang membahas manipulasi angka-angka beserta rumusan-rumusan

aljabarnya.

2

Page 3: Dasar Pemrograman

1.2.2. Defenisi Algoritma

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang

disusun secara sistematis. Dan sebagai pembanding pengertian algoritma menurut

Kamus Besar Bahasa Indonesia (KBBI) terbitan balai pustaka tahun1998 adalah

urutan logis pengambilan putusan untuk pemecahan masalah.

Kata logis merupakan kata kunci dalam sebuah algoritma. Langkah-langkah

didalam algoritma harus logis, berarti hasil dari urutan langkah-langkah tersebut

harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat

memberikan hasil yang salah.

Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-

langkah tersebut dapat berupa runtunan (sequence), pemilihan (selection, dan

pengulangan (repetition).

1.2.3. Struktur Dasar Algoritma

Seperti telah dikemukakan sebelumnya, algoritma berisi langkah

penyelesaian suatu masalah. Langkah-langkah tersebut berupa dapat berupa

runtunan aksi, pemilihan aksi, dan pengulangan aksi. Ketiga jenis langkah

tersebut membentuk suatu algoritma. Jadi sebuah algoritma dapat dibangun dari

tiga buah struktur dasar, yaitu:

1. Sequence (Runtunan)

Sebuah sequence terdiri dari satu atau lebih intruksi. Tiap intruksi akan

dikerjakan secara berurutan sesuai dengan urutan penulisannya, yakni sebuah

intruksi dilaksanakan setelah intruksi sebelumnya selesai dilaksanakan. Ururtan

intruksi dapat menentukan keadaan akhir algoritma. Perhatikan sequence

(runtunan) intruksi yang dilambangkan dengan A1, A2, A3, A4, dan A5 berikut:

A1A2A3A4A5

Mula-mula pemroses akan melaksanakan intruksi A1. Intruksi A2 dilaksanakan

setelah intruksi A1 selesai. Selanjutnya intruksi A3 dilaksanakan setelah intruksi

3

Page 4: Dasar Pemrograman

A2 selesai. Demikian seterusnya sampai intruksi terakhir A5 dilaksanakan dan

algoritma berhenti.

2. Selection (Pemilihan)

Adakalanya sebuah intruksi dikerjakan jika kondisi tertentu terpenuhi.

Tinjau kembali algoritma pengurutan data. Pencarian data terkecil dilakukan

dengan membanding-bandingkan data. Mula-mula data pertama dianggap sebagai

data terkecil sementara (min). Bandingkan min dengan data ke-2, 3, ...N. selama

proses pembandingan bila data ke-j lebih kecil dari min, maka data ke-j itu

menjadi min yang baru. Langkah terakhir ini kita tulis dalam pernyataan berikut:

Jika data ke-j lebih kecil dari min, maka isikan data ke-j sebagai min yang baru

pernyataan di atas dapat ditulis dalam struktur umum:

if kondisi then aksi

Dalam bahasa Indonesia, if berarti “jika” dan Then berarti “maka”. Kondisi

adalah bernyataan yang bernilai benar atau salah. Aksi hanya dilaksanakan apabila

kondisi bernilai benar. Sebaliknya, apabila kondisi bernilai salah, maka aksi tidak

dilaksanakan.

Dalam kehidupan sehari-hari, kita sering menuliskan pelaksanaan tindakan

bila suatu persyaratan dipenuhi. Misalnya:

if Adi juara kelas then Ayah akan mebelikannya sepeda

if Hari sedang hujan then Ahmad naik pete-pete ke kampus

Dan lain sebagainya.

Struktur pemilihan if-then hanya memberikan satu pilihan aksi bila kondisi

persyaratan dipenuhi (bernilai benar). Bentuk pemilihan yang lebih umum ialah

mmeilih satu dari dua buah aksi bergantung pada nilai kondisinya:

if kondisi then aksi 1

else aksi 2

else artinya “kalau tidak”. Bila kondisi bernilai benar, aksi 1 akan dilaksanakan,

tetapi kalau tidak, aksi 2 yang akan dikerjakan. Misalnya pada pernyataan berikut:

if saya lulus di Politeknik then saya akan kuliah

4

Page 5: Dasar Pemrograman

else saya akan mencari pekerjaan

kelebihan struktur pemilihan (selection) terletak pada kemampuannya yang

memungkinkan pemroses mengikuti jalur aksi yang berbeda berdasarkan kondisi

yang ada. Tanpa struktur pemilihan, kita tidak mungkin menulis algoritma untuk

permasalahan praktis yang demikian kompleks.

3. Repetition (Pengulangan)

Salah satu kelebihan komputer adalah kemampuannya untuk mengerjakan

pekerjaan yang sama berulang kali tanpa mengenal lelah. Ini berbeda dengan

manusia yang cepat lelah bila mengerjakan pekerjaan yang sama berulang-ulang.

Andaikan anda diminta untuk menuliskan kalimat ”saya belajar, maka saya bisa”

sebanyak 500 kali, maka anda mungkin akan menuliskannya sebagai berikut:

Algoritma menulis 500 kalimat

Menuliskan kelimat ”saya belajar, maka saya bisa” sebanyak 500 kali.Deskripsi:1. tulis kalimat ” saya belajar, maka saya bisa”2. tulis kalimat ” saya belajar, maka saya bisa”3. tulis kalimat ” saya belajar, maka saya bisa”4. tulis kalimat ” saya belajar, maka saya bisa”...499. tulis kalimat ” saya belajar, maka saya bisa”500. tulis kalimat ” saya belajar, maka saya bisa”

Tentu saja cara tersebut diatas akan tidak efektif dan membutuhkan banyak waktu

untuk mengerjakannya. Untuk mengatasi hal ini, maka anda dapat menggunakan

struktur pengulangan for-do sehingga algoritma menulis 500 kali kalimat dapat

ditulis:

Algoritma menulis 500 kalimat

Menuliskan kelimat ”saya belajar, maka saya bisa” sebanyak 500 kali.Deskripsi:for J dari 1 sampai 500 do tulis kalimat ” saya belajar, maka saya bisa”

5

Page 6: Dasar Pemrograman

Variabel J adalah pencacah pengulangan yang mencacah pengulangan dari 1

sampai 500. Komputer akan melaksanakan aksi tulis kalimat tersebut sebanyak

500 kali. Struktur pengulangan ini dapat ditulis secara umum sebagai:

for pencacah pengulangan dari 1 sampai N do aksi

yang artinya aksi dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari

1 sampai dengan N

struktur pengulangan yang kedua adalah repeat, yang terdiri atas kata kunci

repeat-until, repeat artinya “ulangi” dan until artinya “sampai” atau “hingga” yang

mempunyai bentuk umum sebagai berikut:

repeat aksi

until kondisi

yang artinya bahwa pengulangan aksi dilakukan hingga kondisi persyaratan

berhenti terpenuhi (bernilai logika salah).

Struktur pengulangan yang ketiga adalah while dengan kata kunci while-do, while

artinya ”selagi” atau ”selama” dan do artinya ”lakukan” yang mempunyai bentuk

umum:

while kondisi do aksi

yang artinya adalah selama kondisi persyaratan pengulangan masih benar, maka

aksi dikerjakan. Perbedaannya dengan repeat-until, jika pada repeat-until kondisi

pengulangan dievaluasi di akhir, maka pada while-do kondisi pengulangan

dievaluasi di awal pengulangan.

1.2.4. Flowchart

Belajar tentang algoritma, maka tidak bisa dilepaskan dari bagan alir atau

yang biasa disebut dengan flowchart. Flowchart merupakan diagram alir dari

suatu algoritma, dengan tujuan mempermudah dalam penulisan program. Setiap

perintah dalam suatu flowchart ditulis dalam kotak-kotak yang berbeda bentuknya

sesuai dengan jenis perintahnya.

6

Page 7: Dasar Pemrograman

Simbol – simbol kotak dan pengertiannya yang seringkali digunakan adalah:

Gambar 1.1 Simbol-simbol yang sering digunakan pada pembuatan flowchart

Untuk menghubungkan setiap simbol digunakan garis dengan tanda panah

kekanan () yang menunjukkan arah aliran dari proses. Sebagai contoh diberikan

suatu kasus untuk menentukan bilangan terbesar dari dua buah bilangan.

Algoritma pemecahannya:

Langkah 1. Masukkan dua buah bilangan A dan B

Langkah 2. Bandingkan nilai bilangan A dan B

Langkah 3. Jika nilai bilangan A lebih besar dari nilai bilangan B, tampilkan nilai

bilangan A

Langkah 4. Jika nilai bilangan A lebih kecil dari nilai bilangan B, tampilkan nilai

bilangan B

Secara Flowchart dapat dilakukan dengan cara:

7

Simbol KeteranganTerminatorSebagai awal atau akhirProsesMenyatakan proses terhadap data

Input/OutputMenerima input atau menampilkan output

Seleksi/PilihanMemilih aliran berdasarkan syarat

Predefined-DataSebagai defenisi awal dari variabel atau data

Predefined-ProsesLambang fungsi atau subprogram

KonektorPenghubung pada halaman yang sama maupun pada halaman yang berbedaPrinterMenulis hasil proses

Page 8: Dasar Pemrograman

Start

Input

A,B

A > B

Cetak A

Cetak B

End

Ya

Tidak

Gambar 1.2 Bagan alir pemilihan bilangan terbesar

Dari contoh diatas diharapkan anda mendapat gambaran dan penjelasan

tentang algoritma dan teknik pembuatannya kedalam bagan alir atau flowchart.

Bagian ini akan menjadi suatu hal yang sangat penting untuk dimengerti dan

dipahami sebagai modal kita untuk memahami lebih lanjut tentang teknik

pemrograman, tentu saja dalam hal ini tidak terikat pada bahasa Pascal saja

melainkan juga berlaku umum untuk semua jenis bahasa pemrograman.

1.3. Penutup

Prinsip algoritma dapat digunakan untuk memecahken suatu permasalahan

secara cepat dan tepat. Suatu permasalahn yang kompleks dapat dipecahkan

dengan membagi permasalahan itu kedalam beberapa bagian kecil atau sederhana

sehingga akan lebih mudah dalam penyelesaiannya. Untuk lebih memahami

tentang algoritma ini dapat dilakukan dengan cara mengerjakan sebanyak

mungkin contoh permasalahan kemudian coba anda pecahkan dengan metode

algoritma.

8

Page 9: Dasar Pemrograman

LATIHAN

1. Buatlah algoritma satu contoh kasus yang sering anda temui dalam kehdupan

sehari-hari?

2. Tiga pasang suami istri yang sedang menempuh perjalanan sampai ke sebuah

sungai. Di situ mereka menemukan sebuah perahu kecil yang hanya bisa

membawa tidak lebih dari dua orang setiap kali menyeberang. Penyeberangan

sungai dirumuitkan oleh kenyataan bahwa para suami sangat pencemburu dan

tidak mau meninggalkan istri-istri mereka jika ada lelaki lain. Tulislah

algoritma untuk menunjukkan bagaimana penyeberangan itu bisa dilakukan.

9

Page 10: Dasar Pemrograman

2.1. Pendahuluan

Mengapa kita perlu mengenal Turbo Pascal? Kita perlu mengenal turbo

pascal karena sebelum kita melangkah lebih jauh belajar tentang turbo pascal

alangkah baiknya jika kita dapat mengenal sejarah dan perkembangan turbo

pascal sehingga kita dapat lebih memahami dan mengerti apa dan bagaimana

tentang bahasa program Turbo Pascal.

Dalam bab ini kita juga akan membahas dan mempelajari tentang struktur

program pascal mulai dari Judul Program sampai kepada Akhir Program.

Sehingga diharapkan kita akan mempunyai gambaran umum tentang

bentuk/struktur penulisan bahasa Pascal.

2.2. Penyajian

2.2.1 Sejarah Turbo Pascal

Bahasa Pascal pertama kali diperkenalkan oleh profesor Niklaus Wirth

dari technical University di Zurich, Switzerland dan Kathleen Jensen yang

merupakan bahasa terstruktur yang dikembangkan dari bahasa ALGOL pada

tahun 1970. perkembangan Pascal hingga kini sebenarnya sudah sangat jauh dari

versi pertama Pascal tersebut, apalagi setelah munculnya standar Pascal pada

tahun 1974 yang kemudian dikembangkan lagi oleh Borland International pada

komputer PC yang beroperasi dibawah sistem operasi DOS. Produk Borland

International tersebut diberi nama Turbo Pascal.

Turbo Pascal telah banyak sekali mengalami perubahan dari versi

pertamanya. Pembaharuan pada sistem memori yang dipakai dan lain-lain

membuat Turbo Pascal menjadi bahasa Pascal yang paling terkenal dan dapat

bersaing dengan bahasa-bahasa lainnya seperti C, Cobol, dan lain-lain.

10

MENGENAL TURBO PASCAL

Page 11: Dasar Pemrograman

Ada banyak versi pada Turbo Pascal. Sebagai contoh Versi 3.0, 4.0, 5.5,

dan terakhir 7.0 yang pada umumnya untuk setiap peningkatan versi terjadi

perubahan-perubahan dan penyempurnaan.

Bahasa Pascal merupakan bahasa tingkat tinggi komputer (High Level

Language) dengan sifatnya yang lebih komunikatif karena struktur perintahnya

menggunakan bahasa manusia seperti DO (lakukan) maka komputer akan

melaksanakan perintah di bawah kata DO sampai ada perintah untuk bersyarat

atau sampai akhir perintah yang ditandai dengan kata END (terakhir).

Perlu diketahui bahwa komputer hanya mengerti atau menggunakan

bahasa mesin (angka biner 0 dan 1 atau heksagonal) saja sehingga diperlukan

penterjemah (interpreter) dari bahasa tingkat tinggi (Pascal) ke bahasa mesin yang

merupakan bahasa tingkat rendah. Penterjemah atau interpreter ini disebut

sebagai compiler.

Dalam setiap program Pascal sudah disertakan compilernya, hal inilah

yang menjadikan bahasa tingkat tinggi salah satunya adalah bahasa Pascal sebagai

salah satu program yang banyak diminati oleh para progammer karena

kemampuan compilernya yaitu sifatnya yang bisa dikompilasi dan dieksekusi oleh

berbagai jenis perangkat keras komputer dan mudahnya pemakai melakukan

komunikasi dengan komputer karena menggunakan bahasa manusia sehingga

penelusuran kesalahan program dapat dilakukan dengan lebih baik.

2.2.2 Level Bahasa Program

Level bahasa program dibedakan menjadi dua kategori, yaitu bahasa tingkat

rendah ( low level language) yang terbagi lagi kedalam dua jenis yaitu bahasa

mesin dan bahasa rakitan (assembly language) dan bahasa tingkat tinggi (high

level language).

Bahasa Mesin

Bahasa mesin komputer sangat terbatas dalam sifat dan penggunaannya.

Bahasa ini bergantung pada jenis piranti komputer. Sifat intruksinya yang peka

pada mesin, memberikan memberikan manfaat yang efisien dalam pemakaian

komputer. Kesulitannya adalah apabila terjadi kesalahan logika, program sangat

11

Page 12: Dasar Pemrograman

sukar ditelusuri disamping itu terbatas sifat adaptasinya jika digunakan untuk

komputer yang tidak sejenis.

Bahasa Rakitan (Assembly Language)

Kode biner dirakit sedemikian rupa agar dapat dibaca oleh pemrogram

dalam melakukan pemeriksaan, kode biner tadi ditulis oleh komputer ke dalam

bentuk yang dinamakan notasi singkat. Sebagai contoh:

MVI A,58H

IN 03

Notasi singkat ini lebih jelas dari kode biner. Umumnya pemrogram akan

menggunakan simbol bahasa rakitan (assembly language) bila merancang suatu

program dalam bahasa mesin. Kode biner, notasi singkat mesin, dan simbol

bahasa rakitan merupakan bahasa-bahasa intruksi mesin.

2.2.3 Menggunakan Unit

Pada Turbo Pascal versi 5.0 untuk menampilkan output di layar maka harus

dipergunakan unit. Untuk memahami apa itu unit dapat digambarkan sebagai

berikut: unit pertama kali harus diandaikan seperti sebuah lemari, dalam hal ini

dapat diambil contoh sebagai sebuah lemari pakaian. Lemari pakaian berisi baju,

celana dan sarung, agar anda bisa mengambil isi dari lemari tersebut, maka anda

harus tahu bahwa anda menyimpannya dalam lemari pakaian. Demikian halnya

dalam program Pascal, setiap anda menginginkan untuk menampilkan hasil

eksekusi program pada layar maka anda harus menyertakan unit crt.

Untuk menggunakan suatu unit, maka anda harus meletakkan suatu anak

kalimat (clause) Uses di awal blok program, diikuti oleh daftar nama unit yang

digunakan. Turbo Pascal menyediakan 7 (tujuh) buah unit standar yang dapat

langsung digunakan, lima diantaranya ialah unit system, crt, printer, dos, dan

graph. Kelima unit tersebut akan mendukung program-program turbo Pascal

anda. Dua buah unit lainnya yaitu turbo3 dan graph3 dirancang untuk membantu

kompatibilitas program dan file data yang dibuat dengan turbo Pascal 3.0.

Contoh:

Bila akan digunakan unit crt, maka dapat dituliskan:

Program Contoh;

12

Page 13: Dasar Pemrograman

Uses Crt;

Bila akan digunakan dua buah unit, maka dapat dituliskan:

Program Contoh;Uses Crt, graph;

2.2.4 Struktur Penulisan Program

Seperti telah disebutkan di atas bahwa bahasa Pascal merupakan bahasa

program yang terstruktur artinya bahwa dalam penulisan program dilakukan

dengan teratur dan tersusun dengan baik dengan mengacu kepada aturan struktur

yang telah ditetapkan. Adapun struktur dari penulisan program Pascal terdiri dari

sebuah judul program (Heading Program) dan suatu blok program (program

block) atau badan program (body program). Blok program dibagi lagi menjadi dua

bagian, yaitu bagian deklarasi (declaration part) dan bagian pernyataan (statement

part). Secara ringkas struktur program Pascal dapat terdiri dari:

1. Judul program

2. Blok program

a. Bagian Deklarasi

- Deklarasi label

- Deklarasi konstanta

- Deklarasi tipe

- Deklarasi variabel

- Deklarasi prosedur

- Deklarasi fungsi

b. Bagian Pernyataan

Dan untuk lebih jelasnya dapat dilihat pada gambar 2.1 di bawah ini.

Gambar 2.1 Struktur program Pascal

13

Judul Program

Bagian Deklarasi……

Bagian Pernyataan…….

Page 14: Dasar Pemrograman

2.2.4.1 Statemen/Pernyataan

Statemen adalah perintah pengerjaan program. Kumpulan dari statemen

mentuk suatu program. Bila suatu program Pascal tidak mengandung statemen

atau disebut dengan statemen kosong (empty statement) maka tidak akan ada yang

dikerjakan oleh program. Statemen terletak dibagian deklarasi statemen dengan

diawali oleh kata cadangan begin dan ditutup dengan kata cadangan end. Masing-

m,asing akhir dari statemen diakhir dengan tanda titik koma. Dalam bahasa pascal

statemen dapat berupa statemen sederhana (simple statement) dan statemen

terstruktur (structured statement).

Statemen sederhana terdiri atas statemen pengerjaan (assignment

statement), statemen prosedur (procedure statement), dan statemen goto.

Sedangkan yang termasuk statemen terstruktur terdiri atas statemen jamak

(compound statement), statemen penyeleksian kondisi (conditional statement),

statemen perulangan (repetitive statement), dan statemen with.

Suatu program Pascal yang peling sederhana adalah program yang hanya

terdiri dari sebuah bagian pernyataan saja. Seperti yang diperlihatkan pada gambar

2.1 bagian pernyataan (statement part) merupakan bagian yang terakhir dari suatu

blok program. Bagian ini diawali dengan kata cadangan (reserved word) Begin

dan diakhiri dengan kata cadangan End.

BeginEnd.

Program 2.1 Program dengan statemen kosong

Program 2.1. diatas menunjukkan suatu tindakan/perintah yang akan

dikerjakan oleh program. Tindakan tersebut tergantung dari instruksi-instruksi

yang diberikan yang disebut dengan pernyataan atau statemen (statement).

Statemen tersebut harus ditulis diantara kata cadangan Begin dan End. Perlu

diingat bahwa akhir penulisan kata cadangan End diakhiri dengan tand titik (.).

Program 2.1. merupakan program dengan statemen kosong (empty statement)

karena tidak mengandung statemen dan bila dieksekusi tidak akan menghasilkan

apa-apa. Dari uraian diatas dapat diketahui bentuk umum dari bagian pernyataan

ini adalah:

14

Page 15: Dasar Pemrograman

Beginstatemen;......

End.

Contoh:

BeginWriteLn(’Saya sedang belajar Pascal’);

End.

Program 2.2 Program Pascal yang sederhana

Bila Program ini dijalankan, maka akan ditampilkan tulisan di layar sebagai

berikut:

Saya sedang belajar Pascal

Statemen WriteLn digunakan untuk menampilkan hasil perbaris.

Contoh:

BeginWrite(’Politeknik);WriteLn(’Saya sedang belajar Pascal’);WriteLn(’Negeri Ujung Pandang’);WriteLn(’--------------------’);

End.

Program 2.3 Program menampilkan hasil perbaris

Bila Program ini dijalankan, maka akan ditampilkan tulisan di layar sebagai

berikut:

PoliteknikSayasedang belajar PascalNegeri Ujung Pandang --------------------

Perhatikan bahwa setiap akhir baris perintah diakhiri dengan titik koma (;)

Penulisan Progam Pascal

Program Pascal tidak mengenal aturan penulisan di kolom tertentu, jadi

boleh ditulis mulai kolom keberapapun. Penulisan statement #masih ingatkan

yang dimaksud dengan statemen?☺ yang menjorok masuk beberapa kolom dan

tidak beraturan tidak mempunyai pengaruh pada proses, penulisan statemen yang

rapi dan teratur hanya dimaksudkan untuk mempermudah pembacaan dan

penelusuran pogram sehingga akan lebih trlihat bagian-bagiannya.

15

Page 16: Dasar Pemrograman

Contoh:

BeginWriteLn(’Saya sedang belajar Pascal’);

End.

Program 2.4 Penulisan program Pascal yang bebas

Penulisan seperti pada program 2.4 pun boleh bahkan dapat juga disambung

dalam satu baris.

Contoh:

Begin WriteLn(’Saya sedang belajar Pascal’);End.

Program 2.5 Penulisan program Pascal yang tidak dianjurkan

2.2.4.2 Judul Program

Judul program dalam bahasa Pascal sifatnya optional artinya bisa digunakan

bisa juga tidak, tetapi sebaiknya judul program tetap disertakan dalam program

untuk memudahkan bagi kita dalam mengenali program yang telah dibuat. Judul

program bila ditulis harus terletak pada awal dari program dan diakhiri dengan

titik koma (;). Tata cara/sintak penulisannya adalah:

PROGRAM _ nama program;

Kata PROGRAM merupakan sintak bahasa yang baku dari bahasa Pascal dan

mutlak harus ditulis seperti adanya, sedangkan kalimat nama program merupakan

indikasi untuk menulis nama program. Jika nama program disebut Latihan, maka

sintak dari judul program adalah:

PROGRAM Latihan;

Jika kita perhatikan contoh pada program 1.1 sampai program 1.3 Judul Program

tidak dituliskan, sehingga kita dapat simpulkan bahwa penggunaan Judul Program

sifatnya sebagai dokumentasi saja dan tidak signifikan terhadap proses program

tetapi meskipun demikian penyertaan Judul Program akan sangat membantu bagi

programmer untuk mengenali program yang telah dibuatnya.

Contoh:

16

Page 17: Dasar Pemrograman

PROGRAM Latihan11;

BeginWriteLn(’Saya sedang belajar Pascal’);

End.

Program 2.6 Program Pascal sederhana dengan judul Prgram

Berikut ini adalah contoh pendeklarasian program yang salah:

PROGRAM 3Coba; (dimulai dengan bilangan)

PROGRAM Segi Tiga (Terdapat spasi)

PROGRAM bil+duo (memakai tanda +)

PROGRAMcoba (Kata program disambung)

PROGRAM Coba1 (tidak memakai ;)

Parameter tentang komunikasi program dengan lingkungan ditulis di dalam

tanda kurung buka dan tanda kurung tutup dan dapat ditulis apapun dengan

dipisahkan oleh tanda koma. Contoh penulisan Judul Program yang benar:

PROGRAM Gaji(input,output);

PROGRAM Laporan(Layar,Printer,Plotter);

2.2.4.3 Deklarasi

Masih ingat dengan struktur penulisan program Pascal? Tentu anda masih

ingat, disana terdapat bagian deklarasi. Bagian deklarasi ini digunakan jika di

dalam program Anda menggunakan pengenal (identifier). Identifier dapat berupa

label, konstanta, tipe, variabel, prosedur dan fungsi.

Untuk lebih jelasnya akan diberikan penjelasan singkat tentang bagian ini.

2.2.4.3.1 Deklarasi Label

Penggunaan deklarasi LABEL atau kata cadangan LABEL dalam program

Pascal yang baku penempatannya adalah pada hierarki tertinggi sebelum kata

tuntunan lainnya. Kata cadangan LABEL digunakan untuk memindahkan proses

eksekusi kepada pernyataan yang khusus ditandai dengan nomor label yang telah

didefinisikan. Penggunaannya bersamaan dengan kata tuntunan goto yang

berfungsi untuk mengarahkan/melompatkan proses eksekusi program yang kita

inginkan.

17

Page 18: Dasar Pemrograman

Mendeklarasikan kata cadangan LABEL diikuti oleh kumpulan identifier label

dengan dipisahkan oleh koma dan diakhiri dengan titik koma.

Contoh:

PROGRAM Contoh_Label(Layar);LABEL

100, selesai;Begin

WriteLn(‘Politeknik Negeri’);Goto 100;WriteLn(’Surabaya’);WriteLn(’Padang’);

100:WriteLn(’Ujung Pandang’);Goto selesai;

selesai:End.Program 2.7 Program dengan deklarasi label

Bila Program ini dijalankan, akan didapatkn hasil:

Politeknik NegeriUjung Pandang

Catatan:

Penggunaan identifier pada deklarasi label dapat ditulis dengan angka maupun

huruf dengan syarat tidak boleh mengandung spasi.

2.2.4.3.2 Deklarasi Konstanta

Bila anda ingin menggunakan identifier konstanta maka harus didefinisikan

terlebih dahulu pada bagian ini. Dalam hal ini konstanta dapat didefinisikan

sebagai suatu nilai yang sifatnya konstan/tetap, sebagai contoh suatu variabel C

diberi nilai dengan 10 (sepuluh) maka selama program berjalan maka nilai C akan

bernilai sama dengan 10 (sepuluh). Untuk mendefinisikan konstanta diawali

dengan kata cadangan CONTS diikuti oleh kumpulan identifier.

PROGRAM Contoh_Konstanta(Layar);CONST

Gaji = 1000000;Pajak = 0.15;NmPerusahaan = ‘CV. BERLIAN’;

BeginWriteLn(‘Jumlah Gaji = ’,Gaji);WriteLn(’Jumlah Pajak = ‘,Pajak’);WriteLn(’Nama Perusahaan = ‘,NmPerusahaan’);

End.Program 2.8 Program dengan deklarasi konstanta

18

Page 19: Dasar Pemrograman

Bila program ini dijalankan akan didapatkan hasil:

Jumlah Gaji = 1000000Jumlah Pajak = 15.0000000000E-2Nama Perusahaan = CV. BERLIAN

Turbo Pascal mempunyai beberapa konstanta yang tidak perlu didefinisikan, dan

dapat dipergunakan langsung, diantaranya:

- False dengan tipe Boolean, bernilai logika salah

- True dengan tipe Boolean, bernilai logika benar

- MaxInt dengan tipe numerik integer, bernilai 32767

- MaxLongInt dengan tipe numerik integer, bernilai 2147483647

Catatan:

Tipe data akan kita pelajari kemudian pada bab-bab selanjutnya.

2.2.4.3.3 Deklarasi Variabel

Jika konstanta berisi identifier berisi data kontanta yang nilainya sudah

ditentukan dan pasti, tidak dapat diubah didalam program maka variabel adalah

identifier yang berisi data yang dapat diubah-ubah nilainya dan sifatnya tidak

tetap didalam program. Jadi dapat dikatakan bahwa variabel mempunyai ciri yang

berkebalikan dengan konstanta. Hampir semua program Pascal yang cukup

panjang pasti menggunakan variabel, untuk mendeklarasikannya digunakan kata

cadangan VAR dan diikuti oleh satu atau lebih identifier yang dipisahkan koma,

diikuti dengan titik dua (:) dan tipe dari datanya serta diakhiri dengan titik

koma (;).

Contoh:

PROGRAM Contoh_Konstanta(Layar);VAR

Gaji : real;Kondisi : String[30];

BeginHari_Kerja := 20;Kondisi := ’Belum Cukup’;Gaji := Hari_Kerja * 25000;WriteLn(‘Jumlah Gaji dalam 1 Bulan = ’,Gaji,’Ribu’);WriteLn(’Keterangan = ‘,Kondisi);

End.Program 2.9 Program dengan deklarasi variabel

19

Page 20: Dasar Pemrograman

Bila program ini dijalankan akan didapatkan hasil:

Jumlah Gaji dalam 1 Bulan = 500000 RibuKeterangan = Belum Cukup

Catatan:

Pada contoh program 2.9 di atas telah dideklarasikan dua jenis variabel dengan

identifier/pengenal masing-masing bernama gaji dan keterangan. Variabel-

variabel ini nantinya akan diisi dengan suatu nilai data sehingga menuntut

penjelasan dari tipe data yang akan dipergunakan #akan dijelaskan kemudian.

2.2.4.3.4 Deklarasi Type

Seperti telah dikemukakan sebelumnya bahwa suatu nilai data yang akan

dipergunakan didalam Pascal harus didefinisikan jenis tipenya terlebih dahulu,

Pascal menyediakan beberapa macam dari tipe data sebagai berikut:

1. Tipe data sederhana (simple-type data), terdiri dari:

a. Tipe data standar (standar data type)

Integer

Real

Char

String

Boolean

b. Tipe data didefinisikan pemakai (user defined data type)

Enumerated atau scala type

Subrange type

2. Tipe data terstruktur (stuctured-type data), terdiri dari:

a. Array

b. Record

c. File

d. set

3. Tipe data penujuk (pointer-type data).

Untuk mendefinisikan tipe dari data yang akan dipergunakan dalam

program maka digunakan kata cadangan TYPE dan diikuti satu atau lebih defenisi

type yang dipisahkan oleh titik koma (;).

Contoh:

20

Page 21: Dasar Pemrograman

PROGRAM Contoh_Konstanta(Layar);TYPE

Pecahan = real;Logika = boolean;Bulat = integer;Huruf = string;

BeginEnd.Program 2.10 Program dengan deklarasi type

Sampai disini apa anda bisa mengenali dan membedakannya dengan deklarasi

variabel? Coba sekali lagi kita perhatikan baik-baik..

2.2.4.3.5 Deklarasi Prosedur

Prosedur merupakan bagian yang terpisah dari program dan dapat dipanggil

atau diaktifkan dimanapun dalam program, biasanya deklarasi prosedur digunakan

jika program dirancang dalam beberapa blok, serperti perancangan program yang

terstruktur, sehingga menjadi subprogram yang berdiri sendiri. Kata cadangan

PROCEDURE digunakan untuk mendeklarasikan prosedur, diikuti oleh identifier

yang merupakan nama dari prosedurnya dan secara optional dapat diikuti lagi oleh

kumpulan parameter yang diakhiri dengan tiitk koma (;).

Sebagai contoh:

PROCEDURE Hitung(X,Y : integer);

Gambar 2.2 Sintak deklarasi prosedur

2.2.4.3.6 Deklarasi Fungsi

Hampir sama dengan deklarasi prosedur, deklarasi fungsi juga merupakan

bagian program yang terpisah tetapi diantara keduanya ada perbedaan. Fungsi

dapat berupa fungsi standar yang telah disediakan oleh Pascal juga dapat dibuat

sendiri oleh pemakai. Kata cadangan FUNCTION mengawali bagian deklarsi

fungsi diiluti oleh identifier yang merupakan nama dari fungsinya dan secara

21

Kata cadangan

Identifier nama prosedur

Kumpulan parameter

Page 22: Dasar Pemrograman

optional dapat diikuti oleh kumpulan parameter, tipe dari fungsinya dan diakhiri

dengan tiitk koma (;). Sebagai contoh:

FUNCTION Pangkat(X,Y : integer) : real;

Gambar 2.3 Sintak deklarasi fungsiCatatan:

Lebih lanjut tentang prosedur dan fungsi akan kita bahas pada bab tersendiri.

2.2.5 Kata–Kata Cadangan (Reversed Word)

Seperti telah dijelaskan sebelumnya bahwa kata cadangan merupakan kata-

kata yang sudah didefinisikan oleh Pascal dan tidak perlu untuk didefinisikan lagi.

Hal ini berakibat bahwa kata cadangan tidak boleh digunakan atau didefinisikan

ulang oleh pemakai sebagai identifier. Tabel di bawah menunjukkan contoh kata-

kata cadangan:

Tabel 2.1 Contoh Kata cadangan (reserved word)

absolute * File mod shr *And For nil string *Array Forward not thenBegin Function of toCase Goto or typeConts implementation * packed unit *Div In procedure untilDo If program uses *Downto inline * record varElse interface * repeat whileEnd interrupt * set withexternal * Label shl * Xor * Keterangan:

Kata-kata cadangan yang diberi tanda * menunjukkan bahwa kata-kata cadangan

yang tidak ada di standar Pacal.

2.2.6 Komentar Program

22

Kata cadangan

Identifier nama prosedur

Kumpulan parameter

Tipe fungsi

Page 23: Dasar Pemrograman

Suaatu program yang baik, maka harus disertakan dokumentasinya,

sehingga program mudah dibacadan dipahami. Teknik semacam ini disebut

dengan komentar program yang tidak akan mempengaruhi proses dari program.

Komentar program dapat diletakkan dimanapun di dalam program. Suatu

komentar program ditulis dengan pembatas { dan } atau pembatas (* dan *).

Contoh:

PROGRAM Contoh_Konstanta(Layar); {Judul Program)TYPE {deklarasi tipe}

Pecahan = real;Logika = boolean;Bulat = integer;Huruf = string;

BeginEnd.Program 2.11 Program dengan komentar program

2.3. Penutup

Penyajian yang diberikan dalam bab 2 ini, diharapkan dapat memberikan

gambaran singkat tentang bahasa dan elemen program Pascal. Tata cara penulisan

program yang baik seyogyanya sudah anda ketahui, sehingga dalam penulisan

program berikutnya anda sudah memiliki pengetahuan tentang cara penulisan

program yang baik, bagaimana mendeklarasikan suatu variabel atau konstanta dan

aturan-aturan penulisan lainnya yang berkaitan dengan struktur program Pascal.

23

Page 24: Dasar Pemrograman

3.1 Pendahuluan

Masih ingat tentang deklarasi variabel? Setiap anda menggunakan

idenfier/pengenal variabel di dalam program maka variabel tersebut harus

dideklarasikan terlebih dahulu. Pada waktu anda mendeklarasikan suatu veriabel,

maka anda harus menentukan tipe dari datanya. Tipe dari data ini menunjukkan

nilai yang dapat digunakan oleh variabel bersangkutan.

3.2 Penyajian

3.2.1 Tipe Data

Tipe data terbagi atas beberapa jenis, yaitu numerik integer, numerik real,

karakter, string, boolean, pointer, dan tipe data ordinal.

3.2.1.1 Numerik Integer

Tipe data ini merupakan nilai bilangan bulat baik dalam bentuk desimal

maupun dalam bentuk hexadesimal, nilai hexadesimal diawali dengan tanda dollar

($). Ada 5 (lima) macam tipe data integer yang masing-masing mempunyai

jangkauan nilai yang berbeda.

Tabel 3.1 Jenis-jenis tipe data numerik integer

Tipe Ukuran Memori (byte) Jangkauan NilaiByte 1 0..255Shortint 1 -128..127Integer 2 -32768..32767Word 2 0..65535Longint 4 -2147483648..2147483647

Misalkan anda akan menggunakan suatu variabel dengan identifier atau dengan

nama Hasil dan nilai yang akan dikandungnya tidak lebih dari 255, maka anda

dapat menggunakan type data byte. Hal ini perlu anda perhatikan mengingat

setiap jenis tipe data mempunyai ukuran memori tersendiri, ingat komputer anda

24

TIPE DATA DAN INPUT-OUTPUT

Page 25: Dasar Pemrograman

mempunyai kapasitas memori yang berbeda. Identifier yang anda gunakan harus

dideklarasikan dengan menyebutkan tipe datanya.

Contoh:

PROGRAM Contoh_Byte;VAR

Hasil : byte;Begin

Hasil := 230;WriteLn(‘Nilai Hasil = ‘,Hasil);

End.Program 3.1 Penggunaan type data byte

Bila program ini dijalankan, akan didapatkan hasil:

Nilai Hasil = 230

Dari contoh diatas, dengan mengacu pada tabel 1.2 dapat disimpulkan bahwa

untuk penggunaan nilai data yang lebih besar dari 255 maka tipe data yang

digunakan adalah tipe data integer.

Dengan mengetahui tipe data yang ada, diharapkan anda tidak akan salah dalam

menentukan jenis dari tipe data yang anda akan gunakan dalam program.

3.2.1.2 Numerik Real

Nilai konstanta numerik real berkisar dari 1E-38 sampai dengan 1E+38

dengan jumlah angka sampai dengan 11 digit. E menunjukkan nilai 10 pangkat

(bilangan pangkat 10), dengan kapasitas ruang memory sebanyak 6 byte.

Contoh:

PROGRAM Contoh_real;VAR

Nilai1 : real;Nilai2 : real;

BeginNilai1 := 12345678901,2345;Nilai2 := 12345;WriteLn(‘Nilai 1 = ‘,Nilai1);WriteLn(‘Nilai 2 = ‘,Nilai2);

End.Program 3.2 Penggunaan type data real

Bila program ini dijalankan, akan didapatkan hasil:

Nilai 1 : 1.2345678901E+10;Nilai 2 : 1.2345E+04;

25

Page 26: Dasar Pemrograman

Catatan:

Tipe data real umumnya digunakan untuk nilai data yang besar dan mengandung

pecahan.

3.2.1.3 Karakter

Untuk mendefinisikan nilai dari tipe data karakter, maka aturan

penulisannya ditulis diantara tanda petik tunggal, seperti ‘A’,’H’,’5’, dan

sebagainya. Penggunaan variabel untuk menyimpan tipe data ini harus

dideklarasikan dengan menggunakan kata cadangan char. #ingat, pada penjelasan

deklarasi variabel bukan?

Contoh:

PROGRAM Contoh_karakter;VAR

IniKarakter : char;Begin

IniKarakter := ’c’;WriteLn(‘Karakter yang dimaksud = ‘,IniKarakter);

End.Program 3.3 Penggunaan type data karakter

Bila program ini dijalankan, akan didapatkan hasil:

Karakter yang dimaksud = C

3.2.1.4 String

Jika tipe data char merupakan suatu nilai karakter tunggal, maka untuk tipe

data string merupakan kumpulan dari beberapa tipe data char atau dengan kata

lain tipe data char merupakan suatu karakter yang terdiri dari kumpulan huruf atau

angka, dan penulisannya terletak diantara tanda petik tunggal. Bila karakter petik

tunggal merupakan bagian dari konstanta string, maka dapat ditulis dengan

menggunakan dua buah petik tunggal berurutan. Kapasitas memorinya adalah

sebesar banyaknya karakter stringnya ditambah dengan 1 byte. Bila panjang suatu

karakter string tidak disebutkan, maka diangggap panjangnya adalah 255 karakter.

Contoh:

PROGRAM Contoh_string;VAR

Nama := string;Kota := string[25];TTL := string[10]

26

Page 27: Dasar Pemrograman

BeginNama := ’Abdul Azis Kahar Muzakkar’;Kota := ’Palopo’;TTL := ’17-07-1967’;WriteLn(Nama,’ ’,Kota,’ ’,TTL);

End.Program 3.4 Penggunaan type data string

Bila program ini dijalankan, akan didapatkan hasil:

Abdul Azis Kahar Muzakkar Palopo 17-07-1967

3.2.1.5 Boolean

Tipe data ini merupakan nilai logika yang mempunyai duah buah nilai

luaran yaitu True (benar) dan False (salah). Anda dapat mendeklarasikan suatu

variabel dengan menggunakan kata cadangan boolean dan mengisi variabel

tersebut dengan nilai data boolean True atau False.

PROGRAM Contoh_boolean;VAR

Logika : boolean;Begin

Logika := FALSE;WriteLn(’Nilai Logika = ’,Logika);

End.Program 3.5 Penggunaan type data boolean

Bila program ini dijalankan, akan didapatkan hasil:

Nilai Logika = FALSE

3.2.1.6 Pointer

Suatu pointer adalah suatu variabel yang berisi alamat (address) dimemori

(RAM) tempat suatu data disimpan, bukannya nilai data itu sendiri. Dengan kata

lain pointer akan menunjukkan letak/posisi dari data di memori.

Contoh:

PROGRAM Contoh_pointer;TYPE

Tipestring = string[40];Pointerstring = ^Tipestring;

VARLetakNama := ^Pointerstring;

BeginLetakNama^ := ’Wawan Indrawan’;WriteLn(LetakNama^);

27

Page 28: Dasar Pemrograman

End.Program 3.6 Penggunaan type data pointer

Pada deklarasi variabel, didekarasikan sebuah pengenal yaitu LetakNama.

Variabel ini adalah variabel pointer yang menunjukkan data di memori sebanyak

40 karakter. Jadi, veriabel LetakNama ini tidak berisi dengan datanya, tetapi berisi

dengan pointer letak dari data di memori. Untuk meletakkan nilai ke memori

yang letaknya ditunjukkan oleh variabel LetakNama dapat dilakukan dengan cara:

LetakNama^ := ’Wawan Indrawan’;

Statemen ini menunjukkan bahwa nilai data dari string ’Wawan Indrawan’ akan

disimpan di buffer yang terletak di alamat memori yang ditunjukkan oleh variabel

LetakNama. Jadi nilai string tersebut bukan disimpan di identifier LetakNama.

Tanda caret (^) adalah operator alamat yang digunakan dalam bahasa Pascal.

Dengan demikian bila dilakukan statemen:

WriteLn(LetakNama^);

Berarti akan ditampilkan isi dari memori di alamat yang ditunjukkan oleh pointer

LetakNama dan akan diddaatkan hasil:

Wawan Indrawan

3.2.1.7 Tipe Data Ordinal

Tipe data ordinal adalah tipa data yang merupakan subset dari tipe data

sederhana (tipe data standar dan tipe data yang didefinisikan sendiri oleh

pemakai). Yang dimaksud dengan tipe data sederhana sebenarnya adalah semua

tipe data sederhana kecuali tipe data numerik real. Jadi yang termasuk tipe data

ordinal adalah:

- Tipe data standar (integer, shortint, longint, byte, word, boolean, dan

char)

- Tipe data yang didefinisikan sendiri oleh pemakai (enumerated type

and subrange type).

3.2.2 TANDA OPERASI

Dalam bahasa Pascal tanda operasi dikategoriksn kedalam 9 (sembilan)

kategori, yaitu:

1. Assignment operator

28

Page 29: Dasar Pemrograman

Assignment operator (operator pengerjaan) menggunakan simbol titik dua

dan diikuti oleh tanda sama dengan (:=).

Contoh:

Z := 12;

2. Binary operator

Binary operator (tanda operasi biner) digunakan untuk mengoperasikan dua

buah operand. Operan dapat berbentuk konstanta atauoun variabel.

Penggunaannya untuk operasi aritmatika yang berhubungan dengan nilai tipe data

integer atau real.

Tabel 3.2 Binary operator

Operator Operasi Tipe Operand Tipe Hasil* Perkalian real, real

integer, integer real, integer

realintegerreal

DIV Pembagian bulat integer, integer integer/ Pembagian real real, real

integer, integer real, integer

realrealreal

MOD Modulus (sisa pembagian) Integer, integer integer+ Pertambahan real, real

integer, integer real, integer

realintegerreal

- Pengurangan real, real integer, integer real, integer

realintegerreal

3. Unary operator

Disebut dengan unary operator karena operator ini hanya menggunakan

sebuah operand saja. Unary operator dapat berupa unary minus (-) dan Unary plus

(+).

4. Bitwise operator

Bitwise operator digunakan untuk operator bit per bit pada niai integer.

Tabel 3.3 Bitwise operator

Operator Operasi Tipe Operand Tipe HasilNOT Bitwise negation Integer IntegerAND Bitwise AND integer, integer IntegerOR Bitwise OR integer, integer IntegerXOR Bitwise XOR integer, integer IntegerShl Shift Left integer, integer Integer

29

Page 30: Dasar Pemrograman

Shr Shift Right integer, integer Integer

Tipe operator NOT, OR, dan AND tidak akan dibahas lebih lanjut #pasti anda

sudah tahu bukan.

Operator XOR

Operator XOR digunakan untuk membandingkan dua buah elemen,

hasilnya hanya akan benar (1) bila salah satunya saja yang benar.

Tabel 3.4. Hubungan operator XOR

A B A XOR B1100

1010

0110

5. Relational operator

Relational operator (operator hubungan) digunakan untuk membandingkan

hubungan antara dua buah operand dan akan didapatkan hasil tipe boolean, true

dan false.

Tabel 3.5 Operator hubungan

Operator Operasi =< >>>=<<=

Sama denganTidak sama denganLebih besar dariLebih besar sama dengan dariLebih kecilLebih kecil sama dengan dari

6. Logical operator

Terdapat 4 (empat) buah operator logika, yaitu NOT, AND, OR, dan XOR.

Bentuk operator ini sama dengan bitwise operator, tetapi penggunannya lain.

Logical operator bekerja dengan nilai-nilai logika, yaitu True dan False.

Contoh:

PROGRAM C_pointer;Begin

WriteLn(not true);WriteLn(not false);WriteLn(true and false);WriteLn(true or false);WriteLn(true xor false);

End.

30

Page 31: Dasar Pemrograman

Program 3.7 Penggunaan operator logika

Bila program ini dijalankan, akan didapatkan hasil:

FALSETRUEFALSETRUETRUE

7. Address operator

Turbo Pascal memberikan duah buah operator khusus yang berhubungan

dengan alamat (address) di memori, yaitu addressof operator (@) dan indirection

operator (^). Operator @ akan menghasilkan alamat dari suatu nilai variabel

sedangkan operator ^ akan memberikan nilai di alamat yang ditunjukkan.

Contoh:

PROGRAM Contoh_addressing;TYPE

Tipestring = string[40];Pointerstring = ^Tipestring;

VARNama := Tipestring;LetakNama := ^Pointerstring;

BeginNama^ := ’Wawan Indrawan’;Letaknama := @Nama;WriteLn(’Nama adalah : ’,Nama);WriteLn(’Nama adalah : ’,LetakNama^);

End.Program 3.8 Penggunaan operator alamat

Bila program ini dijalankan akan didapatkan hasil:

Nama adalah : Wawan IndrawanNama adalah : Wawan Indrawan

Variabel nama diisi dengan nilai string ’Wawan Indrawan’ dan pointer

LetakNama diisi dengan alamat nilai yang dikandung oleh vaiabel Nama. Dengan

demikian kedua statemen yang menggunakan prosedur standar WriteLn tersebut

mempunyai arti dan hasil yang sama. Statemen WriterLn yang pertama akan

menampilkan isi dari variabel Nama, yaitu string ’Wawan Indrawan’ dan statemen

WriterLn yang kedua akan langsung mengambil nilai string ’Wawan Indrawan’

tersebut di memori tempat disimpannya.

31

Page 32: Dasar Pemrograman

8. Set operator

Set operator (operator himpunan) digunakan untuk operasi himpunan

Tabel 3.6 Set operator

Operator Operasi +-*

UnionPerbedaan himpunanPerkalian himpunan

9. String operator

String operator digunakan untuk operasi string. Hanya ada sebuah operator

string yaitu operator + (plus) yang digunakan untuk menggabungkan dua buah

string.

Contoh:

PROGRAM Contoh_string;VAR

Nama1, Nama2, Nama3, Nama4 := string[45];Begin

Nama1 := ’Muhammad’;Nama2 := ’Ilyas’;Nama3 := ’Syarif’;Nama4 := Nama1+Nama2+Nama3;WriteLn(’Hasilnya =’,Nama4);

End.Program 3.9 Penggunaan operator string

3.2.3 INPUT-OUTPUT

Setiap program aplikasi pasti membutuhkan operasi input dan output. Suatu

program aplikasi dikatakan baik jika mempunyai kemampuan untuk menerima

input data user, begitupun sebaliknya suatu program yang tidak dapat

menghasilkan output, maka proses program tersebut akan sia-sia, karena hasilnya

tidak dapat ditampilkan.

3.2.3.1 Input Data

Cara yang paling banya digunakan untuk memasukkan data adalah dengan

cara mengetikkannya lewat keyboard. Trurbo Pascal menyediakan prosedur untuk

maksud tersebut, yaitu dengan menggunakan prosedur standar Read dan ReadLn.

Prosedur standar Read dan ReadLn mempunyai aturan tertentu untuk beberapa

32

Page 33: Dasar Pemrograman

tipe pengenal identifier #coba diingat kembali tentang deklarasi type dan

pengguaaan variabel.

PROGRAM Contoh_input;VAR

Nama : string[25];A : integer;

BeginWrite(’Masukkan Nama Anda : ’);ReadLn(Nama);WriteLn(’Masukkan sembarang bilangan bulat : ’);ReadLn(A);WriteLn(’Nama anda : ‘,Nama);WriteLn(’Angka yang anda Masukkan : ‘,A);

End.Program 3.10 Memasukkan data ke variabel

Prosedur standar ReadLn sedikit berbeda dengan prosedur standar read. Prosedur

standar Readln digunakan untuk memasukkan data perbaris, artinya setelah anda

menekan tombol enter, maka akan ganti baris, sedangkan pada prosedur standar

Read setelah anda menekan tombol enter, maka tidak ganti baris dan masih dalam

baris yang sama.

3.2.3.1.1 Teknik Memasukkan Data Tipe Boolean

Data tipe boolean tidak dapat dimasukkan sebagai data input secara

langsung, #ingat data tipe boolean hanya bernilai logika True dan False. Akan

tetapi hal ini dapat diatasi dengan cara memasukkan data tipe char terlebih

dahulu, kemudian baru dilakukan pengerjaan Boolean.

Contoh:

PROGRAM input_Boolean;VAR

Jawab_C : char;Jawab_B : boolean;

BeginWrite(’Benar atau Salah (T/F)? ’);ReadLn(Jawab_C);Jawab_B := (Jawab_C = ’T’);WriteLn(’Anda Memasukkan : ’,Jawab_B);

End.Program 3.11 Memasukkan data tipe boolean

Bila program ini dijalankan, akan didapatkan hasil:

Benar atau Salah (T/F)? FAnda memasukkan : False

33

Page 34: Dasar Pemrograman

3.2.3.2 Output

Selama anda mulai belajar program bahasa Pascal sebenarnya anda sudah

menggunakan bagaimana cara untuk menampilkan hasil. Prosedur standar yang

dimaksud adalah Write dan WriteLn. Perbedaannya adalah, Prosedur standar

Write menampilkan hasil tanpa ganti baris dan tampilan berikutnya disambung

dalam baris yang sama, sedangkan pada prosedur standar WriteLn menampilkan

tampilan perbaris dan akan berganti baris untuk tampilan berikutnya.

Bentuk tampilan yang akan dihasilkan dapat menurut default yang ada atau dapat

juga diatur dengan format tertentu. Tampilan dapat dihasilkan di layar terminal

monitor maupun di printer.

3.2.3.2.1 Tampilan Default

Tampilan default merupakan tampilan yang mengikuti bentuk pengaturan

default yang sudah ditentukan Pascal.

Default tampilan data tipe integer

Tampilan nilai integer akan ditampilkan dalam bentuk:

ddddd

dan tidak mengandung blank dimuka (leading blank) maupun blank dibelakang

(trailing blank).

Contoh:

PROGRAM tampil(output);VAR

bulat1,bulat2 : integer;Begin

bulat1 := 123;bulat2 := 1234;WriteLn(bulat1,bulat2);

End.Program 3.12 Tampilan default data tipe integer

Bila program ini dijalankan, akan didapatkan hasil:

1231234

Default Tampilan Data Tipe Real

Tampilan nilai real menempati posisi lebar 18 digit dengan menggunakan

bentuk eksponensial. Untuk nilai real positip atau nol akan ditampilkan dalam

bentuk:

34

Page 35: Dasar Pemrograman

bd.dddddddddddEsdd

untuk nilai real negatip akan ditampilkan dengan bentuk:

-d.ddddddddddEsdd

Dengan:

b adalah blank

d adalah digit

s adalah tanda positi ataupun negatif

- adalah tanda negatip

Contoh:

PROGRAM tampilReal(output);VAR

pecahan1 : real;pecahan2 : real;

Beginpecahan1 := 123.45;pecahan2 := -123.45;WriteLn(pecahan1,bulat2);

End.Program 3.13 Tampilan default data tipe real

Bila program ini dijalankan, akan didapatkan hasil:

1.2345000000E+02-1.2345000000E+02

Default Tampilan Data Tipe Char

Sama dengan default tampilan data tipe integer, karakter ditampilkan tanpa

mengandung blank dimuka maupun dibelakang.

Default Tampilan Data Tipe String

Tampilan string ditampilkan sesuai dengan panjang isinya, tanpa

mengandung blank dimuka maupun dibelakang.

Default Tampilan Data Tipe Boolean

Tampilan nilai boolean True atau False ditampilkan sesuai dengan panjang

isinya, tanpa mengandung blank dimuka maupun dibelakang.

3.2.3.2.2 Tampilan Terformat

Walaupun bentuk default dianggap cukup untuk menampilkan bentuk pada

program yang sederhana, tetapi untuk program-program aplikasi dibutuhkan

35

Page 36: Dasar Pemrograman

bentuk format tertentu yang harus diatur kembali. Untuk mengatur format

tampilan dengan prosedur standar Write atau WriteLn dipergunakan parameter-

parameter sebagai berikut.

Parameter CH:N

Digunakan untuk membentuk format tampilan char selebar n karakter

dengan blank dimuka sebanyak n-1.

Contoh:

PROGRAM tampil(output);VAR

kar1, kar2 :char;Begin

kar1 := ‘A’;kar2 := ’B’;WriteLn(kar1:5,kar2:3);

End.Program 3.14 Tampilan terformat data tipe char

Bila program ini dijalankan, akan didapatkan hasil:

aaaaAbbB

Parameter S:N

Parameter ini digunakan untuk membentuk format tampilan string dengan

lebar n karakter.

Contoh:

PROGRAM tampil(output);VAR

kalimat : string[35];Begin

kalimat := ‘Poltek’;WriteLn(’Mahasiswa :’,kalimat:10);

End.Program 3.15 Tampilan terformat data tipe string

Bila program ini dijalankan, akan didapatkan hasil:

Mahasiswa :aaaaPoltek

36

5 karakter

3 karakter

10 karakter

Page 37: Dasar Pemrograman

Parameter I:N

Parameter ini digunakan untuk membentuk format tampilan nilai integer

dengan lebar n digit.

Contoh:

PROGRAM tampil(output);VAR

A : integer;Begin

A := 212;WriteLn(’Jumlah Data :’,A:6);

End.Program 3.16 Tampilan terformat data tipe integer

Bila program ini dijalankan, akan didapatkan hasil:

Mahasiswa :aaa212

Parameter R:N

Parameter ini digunakan untuk membentuk format tampilan nilai real

dengan lebar n digit rata sebelah kanan.

PROGRAM tampil(output);VAR

nilai :real;Begin

nilai := 212.99;WriteLn(‘Nilai Real :’,nilai:12);

End.Program 3.17 Tampilan terformat data tipe real bentuk

eksponenrial

Bila program ini dijalankan, akan didapatkan hasil:

Nilai Real : 2.12990E+02

Parameter R:N:M

Parameter ini digunakan untuk membentuk format tampilan nilai numerik

real dengan lebar n digit rata sebelah kanan, dengan m digit angka dibelakang

koma tidak dalam bentuk eksponensial.

PROGRAM tampil(output);VAR

nilai :real;Begin

37

6 digit

12 digit

Page 38: Dasar Pemrograman

nilai := 212.99;WriteLn(‘Nilai Real :’,nilai:12:3);

End.Program 3.18 Tampilan terformat data tipe real

Bila program ini dijalankan, akan didapatkan hasil:

Nilai Real : 212.990

Parameter B:N

Parameter ini digunakan untuk membentuk format tampilan nilai boolean

True atau False dengan lebar n digit rata sebelah kanan.

3.2.3.2.3 Pengaturan Tampilan di Layar

Pengaturan tampilan di layar terminal dimungkinkan dilakukan dalam

Pascal, sehingga tampilan akan lebih baik. Prosedur standar yang digunakan untuk

melakukan pengaturan tampilan, yaitu:

Prosedur CLRSCR

Prosedur standar ini digunakan untuk membersihkan layar dari tampilan-

tampilan sebelumnya dan meletakkan kursor diposisi ujung kiri atas dari layar.

Prosedur standar ini bila digunakan harus menyebutkan terlebih dahulu unit

standar crt.

Contoh:

PROGRAM tampil(output);

Uses crt;VAR

nilai :real;Begin

Clrscr;nilai := 212.99;WriteLn(‘Nilai Real :’,nilai:12:3);

End.Program 3.19 Penggunaan prosedur standar clrscr

Prosedur GOTOXY

Prosedur standar ini digunakan untuk meletakkan kursor diposisi layar yang

ditunjukkan oleh nilai XPOS dan YPOS. Nilai XPOS menunjukkan posiis sumbu

X (posisi horisontal atau posisi kolom diantara kolom 1 sampai dengan kolom

38

12 digit

3 digit dibelakang titik desimal

Page 39: Dasar Pemrograman

80).Nilai YPOS menunjukkan posisi sumbu Y (posisi vertikal atau posisi baris,

antara baris 1 sampai dengan baris 25). Prosedur standar ini bila digunakan harus

melibatkan uni standar Crt.

Contoh:

PROGRAM tampil(output);

Uses crt;Begin

Clrscr;gotoXY (10,15);WriteLn(‘Politeknik’);

End.Program 3.20 Penggunaan prosedur standar gotoXY

Bila program ini dijalankan, akan didapatkan hasil:

Politeknik

Mewarnai Layar

Dengan menggunakan salah satu fasilitas dari unit crt, anda dapat

mengganti warna layar hasil yang hitam menjadi warna sesuai dengan keinginan

anda. Prosedur yang digunakan adalah textBackGround yang mempunyai tata

penulisan sebagai berikut:

textBackGround(warna);

warna dalam satuan besaran byte yang akan diberikan dengan format sebesar 1

byte. Warna ini dapat juga diberikan dalam format bahasa Inggris. Sebagai contoh

anda ingin menggunakan warna kuning, maka anda dapat menggunakan kata

yellow.

39

Komlom ke-10

Baris ke-15

Page 40: Dasar Pemrograman

Tabel 3.7 Warna

Warna Konstanta NilaiHitamBiruHijauCyanMerahMagentaCoklatCoklat mudaCoklat hitamBiru mudaHijau mudaCyan mudaMerah mudaMagenta mudaKuningPutih

BlackBlueGreenCyanRedMagentaBrownLight grayDark grayLight blueLight greenLight cyanLight redLight magentaYellowWhite

0123456789101112131415

Catatan : efek dari pemberian warna latar dapat berfungsi dengan baik jika anda

menyertakan perintah untuk penghapusan layar

Contoh: yaitu clrscr.

PROGRAM Latihan;Begin

TextBackGround(Yellow);Clrscr;WriteLn(’Saya sedang belajar Pascal’);ReadLn;

End.

Program 3.21 Program pemberian warna layar

Mewarnai Tulisan

Selain mewarnai layar, anda juga dapat mewarnai tulisan dengan

menggunakan perintah Textcolor. Textcolor ini berada pada unti crt, oleh karena

itu uses crt harus disertakan. Format penulisannya:

Textcolor(warna);

Contoh:

40

Page 41: Dasar Pemrograman

PROGRAM Latihan;

Uses Crt;Begin

TextBackGround(Yellow);Clrscr;Textcolor(4);WriteLn(’Saya sedang belajar Pascal’);ReadLn;

End.

Program 3.22 Program pemberian warna tulisan

Prosedure Delay

Prosedur standar ini digunakan untuk menghentikan sejenak proses program

selama nilai dari argumen tempo, yaitu dalam ukuran waktu millisecond (1/1000

detik). Nilai argumen tempo ini harus dalam bentuk numerik integer, dan bila

digunakan harus disertakan unit standar crt.

Contoh:

PROGRAM tampil(output);

Uses crt;Begin

Clrscr;WriteLn(’10 detik lagi anda akan meihat tulisan menarik’);Delay(10000);WriteLn(‘Maaf ternyata tulisan menarik tidak muncul’);

End.Program 3.23 Penggunaan prosedur standar delay

Bila program ini dijalankan, akan didapatkan hasil:

10 detik lagi anda akan meihat tulisan menarik

Setelah 10 detik akan muncul tampilan:

Maaf ternyata tulisan menarik tidak muncul

3.3 Penutup

Setelah mempelajari bahasan pada bab 3 (tiga) ini, diharapkan anda sudah

dapat menyusun suatu program sederhana dengan Pascal. Anda juga dapat

mengolah tampilan luaran di layar.

41

Page 42: Dasar Pemrograman

4.1 Pendahuluan

Hampir tiap program yang kompleks mengandung suatu penyeleksian

kondisi. Dengan menyeleksi suatu kondisi, program dapat menentukan tindakan

apa yang harus dikerjakan, tergantung dari hasil kondisi yang diseleksi tersebut.

Untuk menyeleksi suatu kondisi, di dalam bahasa Pascal dan dipergunakan

statemen if dan statemen case. #Anda dapat membuka kembali bab tentang

algoritma.

4.2 Penyajian

4.2.1 Statemen IF

Struktur dari statemen If dapat berupa If-Then atau If-Then..Else.

merupakan suatu statemen yang digunakan untuk menyeleksi suatu kondisi atau

keadaan dengan ketentuan kondisi tersebut mempunyai logika benar.

4.2.1.1 Struktur If-Then

Dalam bahasa Pascal statemen If dinyatakan dengan sintak:

If (kondisi) then statemen;

Kondisi di dalam tanda kurung merupakan ekspresi logika yang membandingkan

dua variabel atau variabel dengan ekspresi, jika kondisinya terpenuhi pernyataan

yang mengikuti pernyataan if-then akan diproses, dan jika tidak terpenuhi, maka

yang akan diproses adalah statemen berikutnya.

Gambar 4.1 Bagan alir struktur if-then

42

If Kondisi

?

Statemen

YES

NO

PENYELEKSIAN KONDISI

Page 43: Dasar Pemrograman

Contoh:

PROGRAM if_then;

Uses crt;Var

NilaiUjian : real;Ket : string[15];

BeginClrscr;Ket := ’Tidak Lulus’;WriteLn(’Masukkan nilai ujian : ’);ReadLn(NilaiUjian);If NilaiUjian > 60 Then

Ket := ’Lulus’;WriteLn(Ket);

End.Program 4.1 Statemen if-then untuk menyeleksi nilai ujian

Bila program ini dijalankan, maka akan didapatkan hasil:

Masukkan nilai ujian : 75Lulus

Bila digambarkan dalam bagan alir, proses program adalah sebagai berikut:

Gambar 4.2 Bagan alir untuk menyeleksi nilai ujian

Contoh:

43

Begin

Ket := ‘Tidak Lulus’

Write(‘Masukkan Nilai Ujian’)

ReadLn(NilaiUjian)

NilaiUjian >

60

Ket :=’Lulus’

WriteLn(Ket)

END

YA

TIDAK

Page 44: Dasar Pemrograman

PROGRAM if_then;

Uses crt;Label

10;Var

R, T, isi : real;Jawab : char;

BeginClrscr;

10;WriteLn(’Masukkan jari-jari : ’); ReadLn(R);WriteLn(’Masukkan tinggi silinder : ’); ReadLn(T);Isi := Pi*R*R*T;WriteLn;WriteLn(‘Isi Silinder = ‘,Isi:6:2)WriteLn;Write(‘Apakah anda akan menghitung lagi (Y/T)?’)ReadLn(Jawab);If (Jawab = ‘Y’) or (Jawab = ‘y’) Then Goto 10;

End.Program 4.2 Statemen if-then yang diikuti oleh statemen loncatan

goto

Latihan

1. Buatlah bagan alir dari program di atas?

2. Buatlah suatu program untuk menghitung luas lingkaran, volume kubus, dan

luas segitiga (gunakan statemen if then)

4.2.1.2 Struktur If-Then..Else

Struktur if-hen...else (jika-maka...kalau tidak) merupakan pengembangan

dari struktur if-then dengan struktur sebagai berikut:

If (kondisi) then

Statemen1;

Else

Statemen2;

Statemen1 akan dilaksanakan jika kondisi bernilai True (benar), tetapi jika kondisi

bernilai salah maka statemen2 yang akan dilaksanakan. Bila struktur ini

digambarkan dalam bagan alir akan tampak sebagai berikut:

44

Page 45: Dasar Pemrograman

Gambar 4.3 Bagan alir struktur if-then...else

Contoh:

PROGRAM if_then;

Uses crt;Var

NilaiUjian : real;Ket : string[15];

BeginClrscr;WriteLn(’Masukkan nilai ujian : ’);ReadLn(NilaiUjian);If (NilaiUjian > 60) Then

WriteLn(’Lulus’)Else

WriteLn(’Tidak Lulus’);End.Program 4.3 Statemen if-then…else untuk menyeleksi nilai ujian

4.2.1.3 Struktur If-Then Tersarang

Struktur if tersarang (Nested if) merupakan bentuk dari suatu statemen if

berada dalam lingkungan statemen if lainnya.

Gambar 4.4 Struktur If-Then tersarang

45

IF kondisi1 THENBEGIN

END.

IF kondisi2 THEN Statemen1ELSE Statemen2

Page 46: Dasar Pemrograman

Bentuk statemen if tersarang tersebut bila digambarkan dalam bagan alir akan

berupa:

Gambar 4.5 Statemen if-then tersarang dalam bentuk bagan alir

Bentuk lain dari struktur IF bersarang dapat juga berupa:

Gambar 4.6 Bentuk lain struktur if-then tersarangContoh:

Penyelesaian suatu persamaan kuadrat AX2 + BX + C = 0 mempunyai syarat

utama yaitu nilai A tifak boleh sama dengan nol. Nilai diskriminan ditentukan

dengan rumus: D = B2 – 4AC.

Program untuk menyelesaikan akar-akar persamaan kuadrat:

46

IF kondisi1 THENBEGIN

END.

IF kondisi2 THENBEGIN

END

IF kondisi2 THEN Statemen1ELSE Statemen2

Page 47: Dasar Pemrograman

PROGRAM Pers_Kuadrat;

Uses crt;Var

A,B,C,D,X1,X2 : real;Jawab : char;

BeginClrscr;A := 0;While A = 0 DoBegin WriteLn(’Masukkan Nilai A = ’); ReadLn(A); End; {Antisipasi agar nilai A tidak diisi dengan 0};WriteLn(’Masukkan Nilai B = ’); ReadLn(B);WriteLn(’Masukkan Nilai C = ’); ReadLn(C);WriteLn;{Hitung nilai Diskriminan}D = B*B – 4*A*C;(* Seleksi Nilai Diskriminan *)If D = 0 then {Akar Kembar}Begin X1 := -B / 2*A; WriteLn(’Ada 2 akar kembar, yaitu : ’); WriteLn(’X1 dan X2 = ’,X1:5:2);EndElseBegin If D > 0 Then {Dua akar real berlainan} Begin X1 := (-B + sqrt(D))/2*A); X2 := (-B - sqrt(D))/2*A); WriteLn(’Ada 2 akar real berlainan, yaitu : ’); WriteLn(’X1 = ’,X1:5:2); WriteLn(’X2 = ’,X2:5:2); End Else {Dua akar imajiner berlainan} Begin Z1 := (-B / 2*A); X2 := (sqrt(-D))/2*A); WriteLn(’Ada 2 akar imajiner berlainan, yaitu : ’); WriteLn(’X1 = ’,Z1:5:2,’ + ’,Z2:5:2,’i’); WriteLn(’X2 = ’,Z1:5:2,’ - ’,Z2:5:2,’i’); EndEnd;WriteLn;

End.Program 4.4 Statemen if tersarang untuk menyelesaikan persamaan

kuadrat

47

Page 48: Dasar Pemrograman

4.2.2 Statemen Case

Gambar 4.7 Diagram sintaks statemen case

4.2.2.1 Struktur Case – Of

Struktur case-of mempunyai suatu ungkapan logika yang disebut dengan

selector dan sejumlah statemen yang diawali dengan suatu label permasalahan

(case Label) yang mempunyai tipe sama dengan selector. Statemen yang

mempunyai case label yang bernilai sama dengan selector akan diproses

sedangkan statemen yang lainnya tidak. Perbedaan dengan stuktur if adalah bila

statemen if menyeleksi suatu kondisi dan terpenuhi, setelah memproses statemen

dalam lingkungan yang terpenuhi tersebut, proses penyeleksian masih dilakukan

terhadap statemen If berikutnya yang lain. Sedangkan pada struktur Case-Of bila

salah satu kondisi terpenuhi (nilai case label sama dengan nilai selector) dan

statemen tersebut telah diproses, selanjutnya statemen-statemen yang lainnya

dalam lingkungan Case tidak akan diseleksi lagi.

Dapat dikatakan bahwa dengan struktur Case dapat menyederhanakan penulisan

If-Then-Else yang bertingkat-tingkat.

PROGRAM case-of;

Uses crt;Var

Nilai : char;

48

Page 49: Dasar Pemrograman

BeginClrscr;Write(’Nilai huruf yang didapat ?);ReadLn(Nilai);

Case Nilai Of’A’: WriteLn(’Sangat Baik’);’B’: WriteLn(’Baik’);’C’: WriteLn(’Cukup’);’D’: WriteLn(’Kurang’);’E’: WriteLn(’Gagal’);

End;End.Program 4.5 Penggunaan struktur Case-Of untuk menyeleksi ujian

4.2.2.2 Struktur Case–Of..Else

Struktur case-Of…Else merupakan pengembangan dari struktur case-of dan

juga merupakan pengembangan dari standar Pascal. Pada struktur case-of bila

tidak ada kondisi yang terpenuhi berarti tidak statemen di dalam lingkungna case-

of yang diproses. Dengan struktur case-of..else, bila tidak ada kondisi yang

terpenuhi maka statemen ynag akan diproses didalam lingkungan case-of adalah

statemen yang ada di bagian else.

PROGRAM case-of..else;

Uses crt;Var

Pilihan : byte;R,L,T,S,Luas : real;

BeginClrscr;gotoXY(10,2);WriteLn(’ ====PILIHAN ====’);gotoXY(10,4);WriteLn(’1. Menghitung Luas Lingkaran’);gotoXY(10,6);WriteLn(’2. Menghitung Luas Segitiga’);gotoXY(10,8);WriteLn(’3. Menghitung Luas Bujur sangkar’);gotXY(10,12);Write(’Pilih Nomor : ’); Readln(Pilihan);

Case Pilihan Of1:Begin Write(’Nilai Jari –jari lingkaran : ’)ReadLn(R); Luas := pi*R*R; WriteLn(’Luas lingkaran = ’,Luas:5:2);End;2:Begin Write(’Panjang sisi alas : ’);ReadLn(L); Write(’Tinggi segi tiga : ’);ReadLn(T); Luas := 0.5 * L * T;

49

Page 50: Dasar Pemrograman

WriteLn(’Luas Segitiga = ’,Luas:6:2);End;3:Begin Write(’Panjang sisi bujur sangkar : ’);ReadLn(S); Luas := S*S; WriteLn(’Luas bujur sangkar = ’,Luas:7:2);End;Else Begin WriteLn(’Pilihan anda salah’); WriteLn(’Anda tadi pilih nomor berapa???..’); End;

End.Program 4.6 Penggunaan struktur Case-Of..else

4.3 Penutup

Pada pembahasan di atas, diberikan beberapa contoh kasus penyelesaian

masalah dengan menggunakan statemen if. Diharapkan anda dapat menentukan

dengan tepat kapan anda memilih untuk menggunakan If atau kapan anda memilih

untuk menggunakan Case.

50

Page 51: Dasar Pemrograman

5.1 Pendahuluan

Salah satu kelebihan komputer dibandingkan dengan manusia adalah

kemampuannya untuk melaksanakan suatu instruksi berulangkali tanpa mengenal

lelah dan bosan.

Struktur pengulangan secara umum terdiri atas dua bagian:

1. Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi untuk

melaksanakan pengulangan. Kondisi ini ada yang dinyatakan secara eksplisit

oleh pemrogram atau dikelola sendiri oleh komputer (implisit);

2. Badan (body) pengulangan, yaitu bagian algoritma yang diulang.

Disamping itu, struktur pengulangan biasanya disertai dengan bagian:

1. Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan

pertama kali.

2. Terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai

dilaksanakan.

Inisialisasi dan terminasi tidak selalu harus ada, namun pada berbagai kasus

inisialisasi umumunya diperlukan.

Struktur pengulangan secara umum:

<inisialisasi>Awal pengulangan Badan pengulanganAkhir pengulangan<terminasi>

Awal dan akhir pengulangan dinyatakan sebagai kata kunci yang bergantung pada

struktur pengulangan yang digunakan.

Dalam bahan ajar ini akan diberikan 3 (tiga) macam notasi struktur pengulangan,

yaitu struktur FOR, struktur WHILE, dan struktur REPEAT.

51

PERULANGAN

Page 52: Dasar Pemrograman

5.2 Penyajian

5.2.1 Struktur FOR

Pengulangan dengan struktur For digunakan untuk mengulang statemen

atau satu blok statemen berulang kali sejumlah yang ditentukan. Jumlah

pengulangan diketahui atau dapat ditentukan sebelum ekesukusi. Untuk mencacah

sudah berapa kali pengulangan dilakukan, kita memerlukan sebuah peubah

(variable) pencacah (counter. Peubah ini nilainya selalu bertambah satu setiap kali

pengulangan dilakukan. Jika cacah pengulangan sudah mencapai jumlah yang

ditentukan maka pengulangan akan berhenti. Pengulangan dengan struktur for

dapat berbentuk pengulangan positip (ascending), pengulangan negatip

(descending), dan pengulangan tersarang.

Pengulangan Positif (Ascending)

Pengulangan positip adalah pengulangan dengan penghitung (counter) dari

kecil ke besar atau dengan kata lain pertambhannya positip. Pengulangan positip

dapat dibentuk dengan menggunakan statemen For-To-Do, dengan bentuk

umumnya:

For variable-kontrol := nilai awal To Nilai Akhir Do Statemen

Variable control, nilai awal, dan nilai akhir harus mempunyai tipe yang sama

yaitu bertipe integer.

Contoh:

PROGRAM For;

Uses crt;Var

i : integer;

BeginClrscr;For i := 1 To 5 Do {Ulangi sampai 5 kali} WriteLn(’Pascal’);

End.Program 5.1 Penggunaan struktur For

Bila program ini dijalankan akan didapatkan hasil:

PascalPascalPascalPascalPascal

52

Page 53: Dasar Pemrograman

Penjelasan:

Statemen dalam perintah writeln akan diulang sebanyak 5 (lima) kali karena

diberikan nilai i awal yang bertipe integer sama dengan 1 dan nilai akhir sama

dengan 5. Jika diberikan nilai akhir sama dengan 100 maka….(tentu saja akan

diberikan kata Pascal sampai dengan 100 kali).

Dengan menggunakan blok statemen, berarti statemen yang diulang dapat lebih

dari sebuah statemen.

Contoh:

PROGRAM For;

Uses crt;Var

i : integer;

BeginClrscr;For i := 1 To 5 Do {Ulangi sampai 5 kali}Begin Write(i); WriteLn(’Pascal’);End;

End.Program 5.2 Penggunaan struktur For dengan blok statemen

Bila program ini dijalankan akan didapatkan hasil:

1 Pascal2 Pascal3 Pascal4 Pascal5 Pascal

Bandingkan program sebelumnya dengan program berikut ini yang tidak

menggunakan blok statemen, sebagai berikut:

PROGRAM For;

Uses crt;Var

i : integer;

BeginClrscr;For i := 1 To 5 Do {Ulangi sampai 5 kali} Write(i); WriteLn(’Pascal’);

End.Program 5.3 Penggunaan struktur For dengan tanpa blok statemen

53

Page 54: Dasar Pemrograman

Bila program ini dijalankan, akan didapatkan hasil:

12345 Pascal

Maka yang akan diulang adalah statemen yang pertama saja, statemen berikutnya

tidak termasuk dalam pengulangan karena tidak dalam bentuk blok statemen.

Contoh:

Program berikut merupakan contoh untuk membuat tabel yang berisi nilai X dari

1 sampai 10 dan nilai-nilai X kuadrat, dan nilai X pangkat 3.

PROGRAM For;

Uses crt;Var

I,X2,X3, : integer;SeperX : real;

BeginClrscr;WriteLn(’----------------------------’);WriteLn(’X X*X X*X*X 1/X’);WriteLn(’----------------------------’);For i := 1 To 10 Do {Ulangi sampai 10 kali}Begin X2 := X*X; X3 := X*X*X; seperX := 1/X; WriteLn(X:3,X2:8,X3:8,SeperX:12:3);End;WriteLn(’-----------------------------’);

End.Program 5.4 Penggunaan struktur For dalam bentuk blok statemen

untuk membuat tabel.

LATIHAN

Dengan menggunakan struktur For, buatlah sebuah program penjumlahan deret

atau angka dari 1 sampai dengan 100?

Pengulangan Negatip (Descending)

Pengulangan negatip adalah pengulangan dengan penghitung (counter) dari

besar ke kecil atau dengan kata lain pertambahannya negatip, dengan bentuk

umumnya:

For variable-kontrol := nilai akhir DownTo Nilai Awal Do Statemen

Dalam statemen ini, nilai akhir harus lebih besar atau sama dengan nilai awal, jika

nilai akhir lebih kecil dari nilai awal, maka badan pengulangan tidak akan

54

Page 55: Dasar Pemrograman

diproses. Pada awalnya, pencacah diinialisasi dengan akhir, nilai pencacah secara

otomatis berkurang satu setiap kali statemen diulangi sampai akhirnya pencacah

sama dengan nilai awal. Jumlah pengulangan yang terjadi adalah nilai akhir-nilai

awal + 1.

Contoh:

PROGRAM For_Desc;

Uses crt;Var

k : integer;Begin

Clrscr;For k := 10 DownTo 0 Do {Ulangi sampai 10 kali}Begin WriteLn(k);End;

End.Program 5.5 Penggunaan struktur For menurun.

Pengulangan Tersarang

Pengulangan tersarang (nested loop) adalah pengulangan yang berada

didlaam pengulangan yang lainnya. Pengulangan yang lebih dalam akan diproses

terlebih dahulu sampai habis, kemudian pengulangan lebih luar baru akan

bertambah, mengerjakan pengulangan yang lebih dalam lagi mulai dari nilai

awalnya dan seterusnya.

Contoh:

PROGRAM Nested For;

Uses crt;Var

i,j : integer;Begin

Clrscr;For i := 1 To 5 DoBegin For j := 1 To 3 Do WriteLn(i:8,j:3); WriteLn; End.

End.Program 5.6 Penggunaan struktur Nested For.

Bila program ini dijalankan, akan didapatkan hasil:

11 12 13

21 22 23

55

Page 56: Dasar Pemrograman

31 32 33

41 42 43

51 52 53

5.2.2 Struktur WHILE

Bentuk umum struktur while adalah:

While Kondisi Do statemen

Struktur ini digunakan untuk melakukan proses pengulangan suatu statemen atau

blok statemen secara terus-menerus selama kondisi logika bernilai True, berarti

jika kondisi bernilai False maka pengulangan akan selesai/berhenti.

Yang harus diperhatikan adalah pengulangan harus berhenti atau kondisi logika

bernilai False. Agar kondisi logika bernilai False, maka didalam badan

pengulangan harus ada intruksi yang mengubah nilai peubah kondisi.

Contoh:

PROGRAM While;

Uses crt;Var

i : integer;

BeginClrscr;i := 0;While i < 5 Do Begin Write(i); WriteLn(’Pascal’); i := i + 1; End;

End.Program 5.7 Penggunaan struktur While

Bila program ini dijalankan, akan didapatkan hasil:

0 Pascal1 Pascal2 Pascal3 Pascal4 Pascal

Contoh:

Misalkan kita ingin menjumlahkan angka dari 1 sampai dengan N buah data. N

dibaca dari input keyboard. Misalnya, N = 5, maka 1+2+3+4+5 = 15.

PROGRAM While;

56

Page 57: Dasar Pemrograman

Uses crt;Var

i,n,jumlah : integer;Begin

Clrscr;jumlah := 0;i := 1;Write(’Masukkan Jumlah Data : ’);ReadLn(n);While i <= n Do Begin jumlah := jumlah + i; i := i + 1; End;Write(’Total hasil penjumlahan dari 1 sampai ’,n’ = ’,jumlah);End.

Program 5.8 Penggunaan struktur While untuk menghitung deret

Contoh:

PROGRAM While;

Uses crt;Var

C,F : real;Lagi : char;

BeginClrscr;Lagi := ’Y’;While Lagi = ’Y’ doBegin Write (’Masukkan Nilai Derajat Celcius = ’); ReadLn(C); F := 5/9*C-32; WriteLn(’Hasil konversi’,C ’Cel ke Fahrenheit = ’,F); WriteLn(’Menghitung Lagi (Y/N)? ’); ReadLn(Lagi);End;

End.Program 5.9 Penggunaan struktur While untuk pengulangan yang

ditanyakan lagi.

While Tersarang

Pengulangan While-do tersarang (nested while) merupakan pengulangan

while-do yang satu did lama pengulangan while-do yang lainnya. Penggunaannya

sama dengan nested for, yaitu program akan mengeksekusi while yang terdalam

kemudian ke while di bagian luarnya. #ingat pada pengulangan pada struktur

while akan berhenti jika kondisi logikanya bernilai False#

57

Page 58: Dasar Pemrograman

5.2.3 Struktur REPEAT

Bentuk umum struktur Repeat adalah:

Repeat StatemenUntil kondisi

Notasi ini mendasarkan pengulangan pada kondisi Boolean, statemen akan

dieksekusi sampai kondisi logika bernilai true. Dengan kata lain jika kondisi

logika masih bernilai False, maka pengulangan masih terus akan dilakukan.

Karena proses pengulangan harus berhenti, maka didalam blok statemen harus ada

aksi/statemen yang mengubah nilai peubah kondisi logika.

Struktur Repeat memiliki makna yang sama dengan While, dan dalam beberapa

permaslahan kedua struktur tersebut komplemen satu sama lain.

Contoh:

PROGRAM Repeat;

Uses crt;Var

i : integer;

BeginClrscr;i := 0;Repeat WriteLn(’Pascal’); i := i + 1;Until i > 5;

End.Program 5.10 Penggunaan struktur Repeat

58

Page 59: Dasar Pemrograman

Contoh:

PROGRAM Repeat;

Uses crt;Var

i,n, : integer;Jumlah : real;

BeginClrscr;jumlah := 0;i := 1;Write(’Masukkan Jumlah Data : ’);ReadLn(n);Repeat jumlah := jumlah + i; i := i + 1;Until i > n;Write(’Total hasil penjumlahan dari 1 sampai ’,n’ = ’,jumlah);End.

Program 5.11 Penggunaan struktur Repeat untuk menghitung deret

5.3 Penutup

Struktur for digunakan untuk melakukan perintah perulangan sesuai dengan

batas perintah yang diberikan. Program akan melakukan perintah perulangan dan

akan berhenti jika kondisi yang dipersyaratkan tidak terpenuhi. Anda diharapkan

dapat membedakan antara penggunaan struktur For dan struktur Case.

59

Page 60: Dasar Pemrograman

6.1 Pendahuluan

Sebuah peubah atau variable hanya menyimpan sebuah nilai dari tipe

tertentu, ia tidak dapat menyimpan beberapa buah nilai yang bertipe sejenis.

Seringkali perlu mengolah sekumpulan data yang dengan tipe yang sama,

misalnya hasil ujian 100 orang mahasiswa. Tabel harga barang di pasar swalayan,

daftar kode wilayah dalam percakapan interlokal, dan sebagainya. Dalam

matematika atatu statistic, kita sering menemukan besaran yang menggunakan

nama peubah berindeks seperti:

- U1, U2, U3, U4, U5, U6, U7, U8

- α1, α2, α3, α4, …

Besaran-besaran tesebut kumpulan nilai kumpulan nilai dengan tipe yang sama.

Nama peubah yang menyatakan kumpulan nilai itu masing-masing u dan α. Nilai

tertentu dalam kumpulan tersebut diacu dengan menggunakan indeksnya,

misalnya U2, U4.

Dalam pemrograman, sekumpulan data yang bertipe sama perlu disimpan

sementara di dalam memori computer untuk sewaktu-waktu dimanipulasi. Bila

kumpulan data disimpan secara beruntun di dalam memori, maka tiap elemen data

dapat diacu dengan menggunakan indeks. Indeks menyatakan posisi data relatif di

dalam kumpulannya. Struktur penyimpanan data seperti ini dinamakan larik

(Array). Sehingga dapat dikatakan bahwa Larik atau Array adalah struktur data

yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen dapat

diakses langsung melalui indeksnya. Indeks larik haruslah tipe data yang

menyatakan keterurutan, misalnya tipe data integer atau karakter.

Sebagai contoh, larik yang bernama A dengan delapan buah elemen dapat

dibayangkan sebagai sekumpulan kotak yang terurut seperti diperlihatkan pada

60

ARRAY/LARIK

Page 61: Dasar Pemrograman

gambar …. Tiap kotak larik tersebut diberi indeks integer 1,2,..,8. Tiap elemen

larik ditulis dengan notasai:

A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8]

Angka didalam angka tanda kurung siku menyatakan indeks larik. Setiap bahasa

pemrograman memiliki cara yang berbeda untuk mendefinisikan indeks lariknya.

Bahasa C memulai indeksnya dari 0 (nol), sedangkan pada Pascal awal indeks

didefiniskan oleh pemrogram, bisa dimulai angka 1, 0, atau bahkan bernilai

negatif.

Gambar 6.1 bentuk logical dari array/larik

Pada gambar 6.1 di atas, setiap elemen larik menyimpan sebuah nilai. Karena

seluruh elemen larik bertipe sama, maka nilai yang disimpan oleh setiap elemen

juga harus bertipe sama.

6.2 Penyajian

6.2.1 Deklarasi Larik

arik bersifat static, artinya jumlah eleemen larik harus sudah diketahui

sebelum program dieksekusi. Jumlah elemen larik tidak dapat diubah, ditambah,

atau dikurangi selama pelaksanaan program. Mendefenisikan larik dalam bagian

deklarasi berarti:

1. Mendefinisikan banyaknya elemen larik, dan

2. Mendefinisikan tipe elemen larik.

Tipe elemen larik dapat berupa tipe sederhana (integer, real, char, Boolean, string)

dan tipe data scalar atau subrange. Cara mendeklarasikan larik yaitu:

VAR Z : array[1..100] of integer;

Keterangan:

61

Page 62: Dasar Pemrograman

Z = Nama larik

[1..100] = Tipe indeks yang menyatakan jumlah elemen

Integer = Tipe data dari larik

Misalnya elemen-elemen dari larik Z adalah:

Z[1] := 5;

Z[2] := 7;

Z[3] := 15;

Z[4] := 27;

Bila nilai elemen ke-3 dari larik Z akan ditampilkan, maka dapat dipergunakan

statemen:

WriteLn(Z[3]);

Contoh:

PROGRAM Larik1;

Uses crt;Var

Kata : array[1..4] of string;i : integer;

BeginClrscr;Kata[1] := ’Politeknik’;Kata[2] := ’Negeri’;Kata[3] := ’Ujung’;Kata[4] := ’Pandang’;WriteLn;For i := 1 To 4 Do

WriteLn(’isi larik pada indeks ke ’,i,’ = ’,Kata[i];ReadLn;

End.Program 6.1 Program larik untuk mengetahui posisi elemen larik

Bila program ini dijalankan, maka akan didapatkan hasil:

isi larik pada indeks ke 1 = Politeknikisi larik pada indeks ke 2 = Negeriisi larik pada indeks ke 3 = Ujungisi larik pada indeks ke 4 = Pandang

Contoh:

PROGRAM Larik2;

Uses crt;Var

Batas : real;i,j,Jumlah : integer;Prima : array[1..1000] of char;

Begin

62

Page 63: Dasar Pemrograman

Clrscr;Batas := sqrt(1000);Jumlah := 0;WriteLn(’Bilangan Prima sampai dengan 1000’);WriteLn;For i := 2 To 1000 DoBegin

If Prima <> ’*’ ThenBegin

Write(i);Jumlah := Jumlah + 1;If i < Batas ThenBegin

j := i;While j < 1000 DoBegin

j := j + i;Prima[j] := ’*’;

End;End;

End;End;WriteLn;Write(’Ada sejumlah ’,Jumlah, ’Bilangan Prima’);

End.Program 6.2 Penggunaan Larik untuk mencari bilangan prima

Contoh:

Menghitung nilai rata-rata dari n buah data yang diinputkan.

PROGRAM Larik3;

Uses crt;Const

Data := 5;Type

LarikInt : array[1..Data] of integer;Var

A : LarikInt;i, Jumlah : integer;Rata : real;

BeginClrscr;Jumlah := 0;WriteLn(’ada ’,Data, ’ buah data please input’);{Memasukkan data ke i dan menghitung jumlahnya}For i := 1 To Data DoBegin

Write(’Isikan data ke- ’,i, = ’)Readln(A[i]);Jumlah := Jumlah + A[i];

End;{Menghitung nilai rata-rata}Rata := Jumlah / Data;{Tampilkan hasil}

63

Page 64: Dasar Pemrograman

WriteLn(’Banyaknya data = ’,Data);WriteLn(’Jumlah keselurahan data = ’,Jumlah);WriteLn(’Nilai rata-ratanya = ’,Rata:5:2);ReadLn;

End.Program 6.3 Program larik untuk nilai rata-rata

6.2.2 Larik Dimensi Banyak

Pada pembahasan sebelumnya, yang kita bahas termasuk kedalam larik 1

(satu) dimensi. Larik dapat juga berdimensi lebih dari satu yakni larik berdimensi

2 (dua) atau berdimensi 3 (tiga) bahkan untuk pemrograman dengan Pascal larik

dapat terdiri lebih dari 3 (tiga) dimensi, atau biasa diseut dengan dimensi banyak.

Hal ini memungkinkan tergantung dari kapasitas memori computer (RAM).

Secara prinsip larik berdimensi banyak (lebih dari 2(dua)) penanganannya smaa

dengan larik berdimensi 2 (dua).

Larik dimensi 2 (dua) mewakili suatu bentuk tabel atau matrik, yaitu indeks yang

pertama dapat menunjukkan baris dan indeks yang kedua dapat menunjukkan

kolom. Cara mendeklarasikan larik dimensi 2 (dua) yaitu:

Nama Larik : array[type indeks1,type indeks2] of type larik

Contoh:

PROGRAM Larik4; {Larik dimensi 2}

Uses crt;Var

Matrik : array[1..2,1..3] of integer;i : integer;

BeginClrscr;Matrik[1,1] := 2;Matrik[1,2] := 4;Matrik[2,1] := 5;Matrik[2,2] := 7;{Menampilkan matrik}For i := 1 To 2 DoBegin

For j := 1 To 2 DoWrite(Matrik[i,j]:10);

End;End.Program 6.4 Program larik dimensi 2 untuk menampilkan matrik

2 x 2

64

Page 65: Dasar Pemrograman

Contoh:

PROGRAM Larik5; {Larik dimensi 2 dengan variable input}

Uses crt;Type

Matrik : array[1..3,1..3] of integer;Var

A : Matrik;i,j : integer;

BeginClrscr;For i := 1 to 3 DoBegin

For j := 1 To 3 DoBegin

Write(’Nilai[’,i, ’,j, ’] = ’)ReadLn(A[i,j]);Write(A[i,j]:10);

End;End;

End.Program 6.5 Program larik dimensi 2 untuk menampilkan matrik

2 x 2

Contoh:

PROGRAM Larik6; {Larik dimensi 2 dengan variable input}

Uses crt;Type

Matrik : array[1..3,1..3] of integer;Var

A,B,C : Matrik;i,j,k : integer;

BeginClrscr;{Memasukkan data Matrik A}For i := 1 to 3 DoBegin

For j := 1 To 3 DoBegin

Write(’Nilai[’,i, ’,j, ’] = ’)ReadLn(A[i,j]);Write(A[i,j]:10);

End;End;{Memasukkan data Matrik B}For i := 1 to 3 DoBegin

For j := 1 To 3 DoBegin

Write(’Nilai[’,i, ’,j, ’] = ’)ReadLn(B[i,j]);Write(B[i,j]:10);

End;End;{Mengalikan Matriks A dan B}

65

Page 66: Dasar Pemrograman

For i := 1 to 3 DoBegin

For j := 1 To 3 DoBegin

C[i,j] := 0;For k := 1 To 3 Do

C[i,j] := C[i,j] + A[i,k]*B[k,j];End;

End;{Mencetak Hasil Perkalian Matrik}For i := 1 to 3 DoBegin

For j := 1 To 3 DoWrite(C[i,j]);WriteLn;

End;End.Program 6.6 Program larik dimensi 2 untuk perkalian matrik 3x3

6.3 Penutup

Setelah membaca pembahasan ini, anda telah mengetahui tentang variabel

array yang memiliki perbedaan dengan sistim pendeklarasian variabel yang telah

anda pelajari sebelumnya. Dengan array atau larik anda dapat memesan alokasi

memori pada komputer dengan jumlah yang bisa anda ditentukan sendiri dan

dapat dimanagement atau dimanfaatkan oleh pemrogram.

66

Page 67: Dasar Pemrograman

7.1 Pendahuluan

“Untuk mencapai suatu tujuan besar, maka tujuan tersebut harus dibagi-bagi

menjadi tujuan kecil sampai tujuan yang kecil itu merupakan tujuan yang dapat

dicapai berdasarkan kondisi dan potensi yang dimiliki saat itu” (Al-Khawarizmi).

Ucapan Al-Khawarizmi di atas sangat mengena dalam kegiatan pemrograman,

seringkali dalam membuat suatu program besar seorang pemrogram perlu

memecah program menjadi beberapa subprogram yang lebih kecil. Tiap

subprogram disebut dengan modul yang dapat dirancang oleh pemrogram selain

dari orang yang mengembangkan program utama. Modul yang sudah dibuat dapat

dipasang ke program lain yang membutuhkannya. Teknik pemrograman seperti

ini dinamakan teknik pemrograman modular, dan dalam beberapa bahasa

pemrograman dengan sebutan prosedur atau fungsi.

Kelebihan teknik pemrograman prosedur, karena:

1. untuk aktivitas yang harus dilakukan lebih dari satu kali,

modularisasi/prosedur menghindari penulisan teks program yang sama

secara berulangkali.

2. Kemudahan menulis dan menemukan kesalahan program.

Struktur setiap modul tersebut pada hakikatnya sama dengan struktur program

yang telah kita bahas sebelumnya, yaitu terdapat bagian judul, deklarasi, dan

bagian pernyataan.

Sebelum membahas lebih lanjut tentang prosedur, ada baiknya anda menyimak

penjelasan berikut:

Pernahkah anda mengetahui prosedur keberangkatan ke luar negeri dengan

menggunakan pesawat terbang? Jika anda ingin pergi ke luar negeri, maka

setidaknya ada tiga prosedur yang harus dilalui yakni Prosedur urus paspor,

Prosedur urus visa, dan Prosedur pemberangkatan. Setiap prosedur memiliki

67

PROSEDUR

Page 68: Dasar Pemrograman

intruksi tersendiri dan aksi yang harus anda laksanakan secara beruntun, sehingga

pelaksanaan dari prosedur akan menghasilkan output tersendiri misalnya prosedur

urus paspor akan menghasilkan output sebuah paspor, dan seterusnya.

7.2 Penyajian

7.2.1 Pendefinisian Prosedur

Untuk mendefinisikan suatu prosedur dilakukan dengan cara:

PROCEDURE Judul_Prosedur;

Judul prosedur sebaiknya mempunyai nama yang unik, diawali dengan kata kerja

karena prosedur merupakan suatu aktivitas. Selanjutnya suatu prosedur diikuti

dengan deklarasi yang sifatnya optional tergantung dari kebutuhan pembuat

program dan bagian pernyataan atau baris perintah.

Contoh:

PROGRAM Proc1;

Uses crt;Procedure BuatGaris;Begin

WriteLn(’--------’);End;Begin

Clrscr;BuatGaris;WriteLn(’Pascal’);BuatGaris;

End.Program 7.1 Prosedur untuk membuat garis

Bila program ini dijalankan, akan didapatkan hasil:

--------Pascal--------

7.2.2 Pengiriman parameter secara nilai

Bila parameter dikirim secara nilai (by value) parameter formal di prosedur

akan berisi nilai yang dikirimkan yang kemudian bersifat lokal di prosedur. Bila

nilai parameter formal di prosedur berubah, maka tidak akan mempengaruhi nilai

parameter nyata yang ada di program utama.

Contoh:

68

Page 69: Dasar Pemrograman

PROGRAM Proc2;

Uses crt;Procedure Hitung(A,B : integer);Var

C : integer;Begin

C := A + B;WriteLn(’Nilai C = ’,C);

End;{Program utama}Var

X,Y : integer;Begin

Clrscr;Write(’Nilai X = ’);Readln(X);Write(’Nilai Y = ’);Readln(Y);Hitung(X,Y);ReadLn;

End.Program 7.2 Penggunaan suatu Prosedur (by value)

Bila program ini dijalankan, maka akan didapatkan hasil:

Nilai X = 2Nilai Y = 5Nilai C = 7

Penjelasan:

1. Prosedur dimulai dengan deklarasi prosedur :

Procedure Hitung(A,B : integer);

2. Hubungan antara paremeter formal di prosedur dengan parameter nyata di

modul utama adalah sebagai berikut:

Procedure Hitung(A,B : integer);

Hitung(X,Y);

69

Tipe Parameter

Parameter Formal

Parameter Formal

Parameter Nyata

Parameter Nyata

Page 70: Dasar Pemrograman

Terlihat bahwa nilai-nilai parameter nyata X dan Y di program utama dikirimkan

ke parameter formal A dan B di prosedur. Dengan demikian nilai parameter A dan

B di prosedur akan berisi nilai yang sama dengan parameter X dan Y di badan

program utama.

7.2.3 Pengiriman Parameter secara Acuan

Bila pengiriman parameter secara acuan (by reference), maka perubahan-

perubahan yang terjadi pada parameter formal di prosedur akan mempengaruhi

nilai parameter nyata. Parameter-parameter ini disebut dengan variable parameter

serta dideklarasikan dengna menggunakna kata cadangan var, sebagai berikut:

PROCEDURE Hitung(Var A,B,C : integer);

Contoh:

PROGRAM Proc3;

Uses crt;Procedure Hitung(A,B,C : integer);Begin

C := A + B;End;

{Program utama}Var

X,Y,Z : integer;Begin

Clrscr;X := 2;Y := 3;Hitung(X,Y,Z);Write(’X = ’,X,’ Y = ’,Y,’ Z = ’,Z);ReadLn;

End.Program 7.3 Penggunaan suatu Prosedur (by reference)

Bila program ini dijalankan, akan didapatkan hasil:

X = 2 Y = 3 Z = 5

7.2.4 Parameter Global dan Parameter Lokal

Nama-nama variable, konstanta, dan peubah yang dideklarasikan dalam

bagian deklarasi prosedur hanya dikenal dalam badan prosedur yang

bersangkutan. Nama-nama dalam bagian deklarasi prosedur tersebut bersifat local,

70

Menunjukkan pengiriman parameter secara acuan

Page 71: Dasar Pemrograman

sehingga tidak dapat digunakan dalam badan program utama. Sedangkan nama-

nama yang dideklarasikan di dalam program utama disebut bersifat global. Nama-

nama global dapat dapat digunakan dibagian manapun didalam program, baik di

dalam program utama maupun di dalam prosedur.

Contoh:

PROGRAM Proc4;

Uses crt;

Const

i = 1;Procedure AksesGlobal;Begin

WriteLn(’Nilai i dalam parameter global : ’,i);Readln;

End;Begin

Clrscr;AksesGlobal;

End.Program 7.4 Prosedur untuk membedakan parameter global

Contoh:

PROGRAM Proc5; {melakukan penghitungan rumus matematika dengan prosedur}

Uses crt;

Var

Pilihan : integer;Procedure Luas_Lingkaran;Var

r : integer;Luas1 : real;

BeginWriteln(’Program menghitung Luas Lingkaran’);Write(’Masukkan Jari – Jari = ’);Readln(r);Luas1 := pi*r*r;WriteLn(’Luas lingkaran dengan jari ’,r ’ = ’,Luas:5:2);

End;Procedure Luas_Segitiga;Var

a,t : integer;Luas2 : real;

BeginWriteln(’Program menghitung Luas Segitiga);Write(’Masukkan Alas = ’);Readln(a);Write(’Masukkan Tinggi = ’);Readln(t);Luas := 0.5*a*t;WriteLn(’Luas Segitiga = ’,Luas2:5:2);

71

Page 72: Dasar Pemrograman

End;Procedure Luas_Bujursangkar;Var

s : integer;Luas3 : real;

BeginWriteln(’Program menghitung Luas BUjursangkar’);Write(’Masukkan Sisi = ’);Readln(s);Luas := s*s;WriteLn(’Luas Bujursangkar = ’,Luas3:5:2);

End;

{Program Utama}Begin

Clrscr;WriteLn(’Masukkan Pilihan anda 1-3 ? ’);Write(’---------------------------------’);Write(’1. Menghitung Luas Lingkaran : ’);Write(’2. Menghitung Luas Segitiga : ’);Write(’3. Menghitung Luas Bujursangkar : ’);ReadLn(Pilihan);Case Pilihan Of

1 : Luas_Lingkaran;2 : Luas_Segitiga;3 : Luas_Bujursangkar;

Else WriteLn(’Pilihan anda salah’); End;ReadLn;

End.Program 7.5 Program rumus matematika dengan prosedur

7.2.5 Acuan Forward pada Procedure

Acuan Forward (forward reference) digunakan untuk mendeklarasikan

dimuka judul prosedur terpisah dari bloknya. Judul prosedur yang berisi

parameter terpisah ini merupakan judul yang semestinya dan dideklrasikan dengan

menambahkan kata cadangan forward. Blok prosedur ini letaknya terpisah dari

judulnya, juga diawali dengan judul prosedur, tetapi hanya mencantumkan judul

atau nama prosedurnya saja, tanpa mencantumkan parameter formalnya.

Contoh:

PROGRAM Proc6;

Uses crt;Procedure Pro1(Var i : integer);Forward;Procedure Pro2(Var i : integer);Begin

WriteLn(’Prosedur Pro’,i);Readln;

72

Page 73: Dasar Pemrograman

End;Procedure Pro1;Begin

WriteLn(‘Prosedur Pro’,i);End;Var i : integer;{Program utama}Begin i := 1; Pro1(i); i := 2; Pro2(i);End.

Program 7.6 Prosedur dengan acuan forward

Bila program ini dijalankan, akan didapatkan hasil:

Prosedur Pro1Prosedur Pro2

7.2.6 Prosedur Tersarang/Bertingkat

Prosedur tersarang/bertingkat (nested procedure) adalah prosedur yang

berada didalam prosedur yang lainnya. Gambar di bawah ini merepresentasikan

dari nested procedure.

Gambar 7.1 Prosedur tersarang

73

PROGRAM

BEGIN

END.

PROCEDURE

BEGIN

END;

PROCEDURE

BEGIN

END;

Page 74: Dasar Pemrograman

7.3 Penutup

Prosedur digunakan untuk menyederhanakan penulisan program dan

mencegah penulisan listing program yang sama/berulang pada satu badan

program. Pemanggilan prosedur dilakukan dengan cara mengetikkan nama

prosedur yang telah didefinisikan sebelumnya dan dapat dipanggil berulang kali

tanpa keluar dari badan program.

74

Page 75: Dasar Pemrograman

8.1 Pendahuluan

Seperti halnya dengan prosedur, fungsi juga merupakan modul program

atau subprogram yang mempunyai tujuan yang spesifik.

Fungsi adalah modul program yang memberikan atau mengembalikan (return)

sebuah nilai dari tipe tertentu. Di dalam ilmu matematika, kita mengenal cara

penulisan fungsi seperti: . Pada contoh tersebut, f adalah

nama fungsi, sedangkan x adalah parameter fungsi yang bersangkutan. Nilai yang

diberikan oleh fungsi bergantung pada parameter masukannya. Parameter pada

fungsi merupakan parameter masukan, ini disebabkan karena parameter pada

fungsi merupakan masukan yang digunakan oleh fungsi tersebut untuk

menghasilkan nilai.

8.2 Penyajian

8.2.1 Deklarasi Fungsi

Bentuk umum suatu fungsi:

FUNCTION identifier(daftar parameter) : type

Contoh:

PROGRAM Func1;

Uses crt;Function Hitung(Var A,B :integer) : integer;Begin

Hitung := A + B;End;{Program utama}Var

X,Y,Hasil : integer;Begin

Clrscr;Write(’Nilai X = ’);Readln(X);Write(’Nilai Y = ’);Readln(Y);WriteLn;Hasil := Hitung(X,Y);WriteLn(X, ’+ ’,Y, ’ = ’,Hasil);

75

FUNGSI

Page 76: Dasar Pemrograman

ReadLn;End.Program 8.1 Penggunaan suatu fungsi

Bila program ini dijalankan, akan didapatkan hasil:

Nilai X = 4Nilai Y = 34 + 3 = 7

Perbedaan fungsi dengan prosedur adalah:

1. pada fungsi nilai yang dikirimkan balik terdapat pada nama

fungsinya(kalau pada prosedur, parameter dikirimkan secara acuan). Pada

contoh, nama fungsi tersebut adalah Hitung dan nilai yang diirim balik

berada pada nama fungsi tersebut. Sehingga nama fungsi ini harus

digunakan untuk menampung hasil yang akan dikirimkan dari fungsi,

sebagai berikut:

Hitung := A + B;

2. Sedangkan pada prosedur, nama prosedur tersebut tidak dapat digunakan

langsung, yang dapat langsung digunakan adalah parameternya yang

mengandung nilai balik.(Perhatikan contoh…??)

8.2.2 Parameter dalam Fungsi

Sama dengan prosedur, parameter dalam fungsi dapat dikirimkan secara

nilai (by value) dan secara acuan (by reference). Penulisan judul fungsi yang

menggunakan parameter secara nilai yaitu:

Function Hitung(A,B :integer) : integer;

Contoh:

PROGRAM Func2;

Uses crt;Function Terbesar(X,Y :real) : real;Begin

If X>Y Then Terbesar :=X;Else Terbesar :=Y;

End;{Program utama}Var

N1,N2 : real;Begin

Clrscr;Write(’Nilai 1 = ’);Readln(N1);

76

Page 77: Dasar Pemrograman

Write(’Nilai 2 = ’);Readln(N2);WriteLn;WriteLn(’Nilai Terbesar adalah : ’,Terbesar(N1,N2):9:3);ReadLn;

End.Program 8.2 Fungsi untuk menghasilkan nilai terbesar

Bila program ini dijalankan, akan didapatkan hasil:

Nilai 1 = 4.5Nilai 2 = 3Nilai terbesar adalah : 4.5

Contoh:

PROGRAM Func3;

Uses crt;Function PangkatI(X:real, Y:integer) : real;Var

Pangkat : real;i : integer;

BeginPangkat := 1;For i := 1 To Y Do Pangkat := Pangkat * X;PangkatI := Pangkat;

End;{Program utama}Var

A,B : integer;Begin

Clrscr;Write(’Nilai yang akan dipangkatkan : ’);Readln(A);WriteLn(’Dipangkatkan dengan : ’);Readln(B);WriteLn(A ’,’ Pangkat ’,B,’ adalah ’,PangkatI:5:2); ReadLn;

End.Program 8.3 Fungsi untuk perpangkatan

8.2.3 Acuan Forward pada Fungsi

Sama halnya dengan prosedur, fungsi juga dapat didklarasikan terpisah

dengan bloknya. Deklarasai fungsi yang terpisah dengan blok fungsinya

dipergunakan kata cadangan forward dan blok fungsinya juga dideklarasikan

ulang, tetapi tidak perlu menyebutkan parameternya.

Contoh:

PROGRAM Func4;

Uses crt;Function Fungsi1(x : integer);Forward;

77

Page 78: Dasar Pemrograman

Function Fungsi2(y : integer);Begin

Fungsi2 := Y * 2;End;Function Fungsi1;Begin

Fungsi1 := Fungsi2(x) + 5;End;

{Program utama}Begin WriteLn(Fungsi1(3));End.

Program 8.4 Fungsi dengan acuan forward

Bila program ini dijalanka, maka akan didapatkan hasil:

11

8.2.4 Fungsi Tersarang

Fungsi tersarang (nested function) merupakan fungsi yang letaknya berada

didalam fungsi yang lainnya.

Contoh:

PROGRAM Func5;

Uses crt;Function Fungsi1(x : integer): integer; Function Fungsi2(y : integer): integer; Begin

Fungsi2 := Y * 2; End;Begin

Fungsi1 := Fungsi2(x) + 7;End;

{Program utama}Begin WriteLn(Fungsi1(3));End.Program 8.5 Fungsi tersarang

Bila program ini dijalanka, maka akan didapatkan hasil:

13

8.3 Penutup

Setelah membaca pembahasan ini, anda akan memiliki pengetahuan tentang

bagaimana mendeklarasikan fungsi dan memanggil suatu fungsi. Anda diharapkan

dapat mengidentifikasi suatu permasalahan dan anda dapat menentukan metode

yang paling tepat, apakah anda menggunakan fungsi atau prosedur.

78

Page 79: Dasar Pemrograman

9.1 Pendahuluan

Unit standar Graph menyediakan suatu pustaka lebih dari 50 buah rutin

grafik yang dapat dipergunakan untuk keperluan pembuatan grafik. Untuk dapat

membuat grafik dengan fasilitas ini, maka unit standar Graph harus disebutkan

dalam program. Disamping file TURBO.TPL yang berisi unit standar Graph, satu

atau lebih file dengan extention .BGI yang merupakan grafik driver juga harus

ada. Grafik driver ini menunjukkan graphics adapter yang dipergunakan untuk

monitor Anda.

9.2 Penyajian

9.2.1 Menggunakan Grafik

Untuk mulai menggunakan grafik, maka prosedur standar InitGraph harus

disebutkan terlebih dahulu dengan sintak:

InitGraph(Var Graph Driver, GraaphMode : integer; DriverPath : string);

GraphDriver merupakan driver yang dipergunakan pada komputer anda. Beberapa

kontanta menegenai grafik driver ini telah didefinisikan di unit standar Graph,

yaitu:

Detect = 0;

CGA = 1;

MCGA = 2;

EGA = 3;

EGA64 = 4;

EGAMono = 5;

RESERVED = 6;

HereMono = 7;

ATT400 = 8;

79

GRAFIK

Page 80: Dasar Pemrograman

VGA = 9;

PC3270 = 10;

Kalau anda menggunakan Color Graphic Adapter (CGA) maka grafik driver yang

harus disebutkan adalah CGA atau dengan nilai konstanta 1. tetapi jika anda tidak

mengetahuigrafik adapter yang anda gunakan maka dapat dilakukan pendeteksian

secara otomatis (autodetection) oleh Turbo Pascal yaitu dengan menggunakan

konstanta detect atau dengan nilai 0 (nol).

Contoh:

PROGRAM Grafik1;

Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,’’);

CloseGraph;

End.

Program 9.1 Penggunakan Grafik

Penjelasan:

Pada sintak contoh program diatas, digunakan Driver grafik dengan nilai

konstantan Detect berarti komputer akan secara otomatis mendeteksi jenis driver

grafik yang digunakan. Driver Path menunjukkan direktori letak dari file grafik

direktori di hardisk. Bila file grafik driver terletak dicurrent directory, maka

DriverPath dapat ditulis dengan nilai kosong (’’). Kalau file grafik driver terletak

didirectory yang lain , maka directory letak grafik driver harus disebutkan.

Contoh:

PROGRAM Grafik2;

Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

80

Page 81: Dasar Pemrograman

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,’C:\ANDA’);

CloseGraph;

End.

Program 9.2 Penggunakan Grafik

9.2.2 Berpindah dari Mode Grafik ke Mode Teks

Dari keadaan mode grafik bila akan berpindah ke mode teks, maka dapat

dilakukan dengan prosedur standar RestoreCrtMode dan untuk kembali ke

keadaan mode grafik, dapat dilakukan dengan prosedur standar SetGraphMode.

Contoh:

PROGRAM Grafik3;

Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,’C:\ANDA’);

{Menampilkan grafik}

{Kembali ke mode teks}

RestoreCrtMode;

...

...

{Kembali lagi ke Mode Grafik}

SetGraphMode(Modegrafik);

CloseGraph;

End.Program 9.3 Beralih dari mode grafik ke mode teks

81

Page 82: Dasar Pemrograman

9.2.3 Sistem Koordinat

Pada mode grafik, ujung kiri atas dari layar adalah koordinat (0.0). nilai dari

x atau kolom bergerak ke arah kanan dan nilai dari y bergerak kearah bawah.

Jumlah kolom dan baris tergantung dari mode grafik yang dipergunakan untuk

tiap-tiap grafik adapter.

Gambar 9.1 Sistem koordinat

Contoh:

PROGRAM Grafik4;

Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,’’);

Line(0,0,GetMaxX,GetMaxY);

Writeln(‘Nilai Maksimum X = ‘,GetmaxX);

Writeln(‘Nilai Maksimum Y = ‘,GetmaxY);

CloseGraph;

End.

Program 9.4 Sistem koordinat di mode grafik

9.2.4 Membuat Garis

Untuk membuat garis dari koordinat (x1,y1) sampai dengan koordinat

(x2,y2) dapat dilakukan dengan menggunakan prosedur Line dengan sintak:

Line(x1,y1,x2,y2 : integer);

82

(0,0)

y

x (GetMaxX,0)

(GetMaxX,GetMaxY))

(0,GetMaxY))

Page 83: Dasar Pemrograman

Untuk membuat garis dari posisi yang terakhir kali sampai dikoordinat tertentu

dapat dipergunakan prosedur stándar LineTo dengan sintak:

LineTo(x,y : integer);

Untuk menuju ke suatu titik tertentu tanpa menggambarnya dapat dipergunakan

prosedur stándar MoveTo dengan sintak:

MoveTo(x,y : integer);

Sedangkan untuk menambah garis secara relatip dari titik terakhir kali dapat

dilakukan dengan menggunakan prosedur standar LineRel dengan sintak:

LineRel(x,y : integer);

Contoh:

PROGRAM Grafik5;

Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,’’);

Line(70,50,100,20);

Line(70,60,100,30);

CloseGraph;

End.

Program 9.5 Menggambar garis

Bila program diatas dijalankan, maka akan didapatkan hasil:

Contoh:

PROGRAM Grafik6;

Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,’’);

MoveTo(160,150);

LineTo(160,150);

83

Page 84: Dasar Pemrograman

LineTo(130,80);

MoveTo(160,50);

LineTo(190,80);

CloseGraph;

End.

Program 9.6 Menggambar bentuk panah dengan perintah garis

9.2.5 Membuat Kotak

Untuk membuat suatu gambar kotak digunakan prosedur Rectangle dengan

sintak:

Rectangle(x1,y1,x2,y2 : integer);

Contoh:

PROGRAM Grafik7; {membuat kotak}

Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,’’);

Setcolor(1);

Rectangle(10,65,85,125);

CloseGraph;

End.

Program 9.7 Menggambar bentuk kotak

9.2.6 Membuat Lingkaran

Untuk membuat suatu bentuk lingkaran dapat digunakan prosedur standar

Circle dengan sintak:

Circle(x,y : integer; radius : word);

X,y adalah titik pusat lingkaran dan radius adalah jari-jari lingkarannya.

Contoh:

PROGRAM Grafik8; {Membuat lingkaran}

Uses Graph;

84

Page 85: Dasar Pemrograman

Var

DriverGrafik, ModeGrafik : integer;

r : word; { Jari-Jari Lingkaran }

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,’’);

For r := 1 To 20 Do

Circle(150,100,r*2);

CloseGraph;

End.

Program 9.8 Menggambar bentuk lingkaran

9.2.7 Mengecat Obyek

Untuk mengecet suatu obyek gambar dengan warna atau suatu pattern

tertentu dapat digunakan prosedur standar Floodfill dengan sintak

FloodFill(x,y :integer; Border : Word);

X dan Y dan titik koordinat sembarang yang berada di dalam area obyek. Bila x

dan y berada diluar obyek area gambar, maka yang akan dicat dengan warna atau

pattern adalah daerah luar gambarnya. Border adalah warna tepi dari obyek

gambar.

Contoh:

PROGRAM Grafik9; {membuat kotak dan mengecatnya}

Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,’’);

Setcolor(1);

Rectangle(10,65,85,125);

FloodFill(15,70,1);

CloseGraph;

End.

85

Page 86: Dasar Pemrograman

Program 9.9 Menggambar bentuk kotak dan mengecatnya

Untuk pengecatan dengan arsir pada obyek digunakan prosedur standar

SetFillStyle atau SetFillPattern dengan sintak:

SetFillSyle(Pattern : word; Color : word);

Beberapa konstanta telah didefinisikan untuk pattern pengarsiran yaitu mulai dari

nilai 1 sampai dengan 12.

Contoh:

PROGRAM Grafik10; {membuat kotak dengan memberinya style}

Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,’’);

Setcolor(1);

SetFillStyle(4,1);

Rectangle(10,65,85,125);

CloseGraph;

End.

Program 9.10 Menggambar bentuk kotak

9.2.8 Membuat Tulisan

Turbo Pascal menyediakan 2 (dua) buah prosedur standar yang khusus

digunakan untuk menampilkan text atau tulisan di mode grafik dengan suatu font

yang tertentu, yaitu prosedur standar OutText dan OutTextXY.

Prosedur standar OutText untuk menampilkan tulisan mulai pada posisi koordinat

yang terakhir dengan sintak:

OutText(Textstring : string);

Contoh:

PROGRAM Grafik11; {membuat text di mode grafik}

Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

86

Page 87: Dasar Pemrograman

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,’’);

MoveTo(10,5); Outtext(‘Tulisan ini di Mode Grafik’);

MoveTo(10,15); Outtext(‘Tulisan ini di Mode Grafik’);

CloseGraph;

End.

Program 9.11 Menampilkan tulisan di mode Grafik dengan OutText

Prosedur standar OutTextXY digunakan untuk menampilkan text di posisi

koordinat tertentu dengan sintak:

OutTextXY(10,5, ’Tulisan ini di Mode Grafik’);

Contoh:

PROGRAM Grafik12; {membuat text di mode grafik}

Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,’’);

OuttextXY(10,5, ‘Tulisan ini di Mode Grafik’);

OuttextXY(10,25, ‘Tulisan ini di Mode Grafik’);

CloseGraph;

End.

Program 9.12 Menampilkan tulisan di mode Grafik dengan OutTextXY

Kelebihan lain dari penggunaan prosedur standar OutText adalah dapat

dipergunakannya beberapa bentuk huruf atau font, arah dari tulisan dapat diatur

(vertikal, horisontal), serta besarnya tulisan juga dapat ditentukan. Prosedur

standar yang digunakan yaitu SetTextStyle dengan sintak:

SetTextStyle(Font,Direction :word; charsize :word);

Font merupakan bentuk huruf yang diinginkan dan beberapa konstanta telah

didefinisakn untuk ini, yaitu:

87

Page 88: Dasar Pemrograman

DefaultFont = 0; {8x8 bit mapped, bentuk huruf normal}

TripleFont = 1; {”Stroked” fonts}

SmallFont = 2; {bentuk huruf kecil}

SansSerifFont = 3; {bentuk huruf SansSerif}

GothicFont = 4; {bentuk huruf Gothic}

Selain DefaultFont, font yang lainnya tersimpan di disk dengan nama file

ber-extention .CHR dan file bersangkutan harus ada jika font bersangkutan

digunakan. Pada sintak, Direction adalah arah dari tulisan yang akan ditampilkan,

ke arah horisontal (dari kiri ke kanan) ataukah ke arah vertikal (dari bawah ke

atas). Dua buah konstanta telah didefinisikan untuk ini, yaitu:

HorizDir = 0; {arah horisontal, kiri ke kanan}

VertDir = 1; { arah vertikal, bawah ke atas}

Pada sintak, CharSize merupakan ukuran dari huruf yang akan ditampilkan,

bernilai 1 untuk ukuran normal. Pada DefaultFont, ukuran normal menempati 8x8

pixel, bernilai 2 untuk ukuran 2 kali normal, yaitu 16x16 pixel dan seterusnya

sampai dengan maksimum 10 kali lebih besar dari normal. Lebih besar dari 10

dianggap ukuran 10 kali normal.

Contoh:

PROGRAM Grafik13; {membuat text di mode grafik}

Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,’’);

SetTextJustify(RightText,BottomText);

SetTextStyle(DefaultFont,HorizDir,1);

OuttextXY(10,5, ‘Politeknik – Default Font’);

SetTextStyle(1,0,3);

OuttextXY(10,15, ‘Politeknik – TriplexFont’);

SetTextStyle(2,1,4);

OuttextXY(5,30, ‘Politeknik – Small Font’);

End.

88

Page 89: Dasar Pemrograman

Program 9.13 Pengaturan format tulisan

9.3 Penutup

Setelah mempelajarari bahasan ini, diharapkan anda sudah mengenal

tentang penggunaan grafik pada Pascal dan dapat membuat pemrograman grafik

sederhana sehingga tampilan program yang anda buat bisa tervisualisasi sebagai

gambaran dari ide anda. Selain itu anda sudah mengetahui antara bekerja di mode

grafik dan bekerja di mode text.

89

Page 90: Dasar Pemrograman

10.1 Pendahuluan

Secara harfiah kata-kata “interfacing” adalah suatu perlakuan atau usaha

untuk menghubungkan antar muka antara dua buah sistem, yang sistem ini dapat

berupa sistem integrasi dari sebuah IC peripheral, atau sistem integrasi dari suatu

sistem minimum mikroprosesor.

Pengertian Interfacing secara lebih umum, biasanya selalu dihubungkan

dengan pengertian perlakuan “interfacing” antara suatu sistem rangkaian berbasis

mikroprosesor dengan suatu sistem rangkaian luar. Rangkaian luar ini dapat

berupa rangkaian switch, relay, lampu, rangkaian keyboard, rangkaian monitor

(misalnya CRT Monitor), rangkaian atau unit printer, rangkaian komunikasi

serial, piranti ukur elektronik, instrumen dan lain-lain.

10.2 Penyajian

Tersedia 2 (dua) jenis komunikasi data pada komputer, yaitu paralel dan

serial. Penggunaannya tergantung pada kebutuhan transfer data. Jika anda

menginginkan transfer data yang cepat maka sebaiknya anda gunakan komunikasi

serial, sedangkan jika anda menginginkan transfer data dengan jarak yang relatif

jauh maka anda dapat memilih komunikasi paralel.

10.2.1 Komunikasi Paralel Port

Pada turbo Pascal jika anda akan mengakses paralel port maka dapat

digunakan perintah:

[$378];

Perintah mengandung arti bahwa anda akan mengaktifkan alamat 378 Heksa

(tanda $ = heksadesimal) yang berarti alamat port paralel. Selanjutnya anda dapat

mengaktifkan 8 bit dengan prinsip bilangan biner.

Perhatikan gambar di bawah ini:

90

INTERFACE

Page 91: Dasar Pemrograman

Gambar 10.1 Susunan lampu 8 Bit

Jika anda akan mengaktifkan lampu pada bit ke 1 maka anda tinggal menuliskan

perintah $1 atau dengan bilangan desimal 1 (tanpa tanda dolar), berarti jika anda

akan mengaktifkan lampu ke 3 dan 4 dibutuhkan perintah $C atau 12 desimal.

Contoh:

PROGRAM Interf1; {Koneksi ke paralel port}

Uses crt;

Begin

Clrscr;

// Alamat $378 adalah alamat untuk mengakses port paralel

Port[$378] = $01; // Led 1

Port[$378] = $02; // Led 2

Port[$378] = $04; // Led 3

Port[$378] = $08; // Led 4

Port[$378] = $10; // Led 5

Port[$378] = $20; // Led 6

Port[$378] = $40; // Led 7

Port[$378] = $80; // Led 8

End.

Program 10.1 Koneksi ke paralel port

Contoh:

PROGRAM Interf2; {Koneksi ke paralel port}

Uses crt;

Var

i : integer;

Begin

Clrscr;

Port[$378] = 1;

Delay(500);

91

Page 92: Dasar Pemrograman

for i = 1 To 7 Do

{

i = i * 2;

Port[$378] = i;

Delay(500);

}

End.

Program 10.1 Koneksi ke paralel port dengan loop for

..

ss

10.3 Penutup

Diakhir pembahasan ini, anda diharapkan dapat memanfaatkan komunikasi

secara paralel dengan menggunakan kabel DB25 (datasheet dari DB25 dapat anda

cari sendiri), bagaimana cara untuk mengakses port komputer dan

menghubungkannya dengan perangkat keras (contoh ini menggunakan lampu

LED).

92

Page 93: Dasar Pemrograman

DAFTAR PUSTAKA

Agoes Soehianie, Belajar dengan Cepat dan Mudah Turbo Pascal, PT. Elex Media

Komputindo Kelompok Gramedia, Jakarta, 1990

Amrinsyah Nasution, Hasan Iskandar, Turbo Pascal, xxx, Bandung, 1989

Anthony Pranat, Algoritma dan Pemrograman J & J Learning, Yogyakarta, 2001

Jogiyanto H.M, Turbo Pascal Teori dan Aplikasi, Andi Yogyakarta, Yogyakarta

1988

Syarif Ilyas, Komputer turbo pascal, makassar, 2006

Rinaldi Munir, Algoritma dan Pemrograman dalam Bahasa Pascal dan C Edisi

Kedua, Informatika Bandung, Bandung, 2002

93