dasar pemrograman
DESCRIPTION
wewrTRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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…….
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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;
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
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
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
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
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
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
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
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
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))
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
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
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
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
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
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
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
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
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
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
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