I.
SEJARAH PERKEMBANGAN KOMPUTER
Sejarah perkembangan komputer
bermula dengan berkembangnya ilmu matematika. Dimulai dengan penggunaan
jari-jemari manusia, kemudian tercipta alat Abacus
(Gambar 1.1) yang dapat melakukan
operasi hitung sederhana.
Pada tahun 1617, John Napier
telah mengemukakan logaritma dan alat ini disebut tulang Napier yang dapat
melakukan berbagai macam perhitungan angka-angka. Kemudian Blaise Pascal dalam
usia 19 tahun menciptakan mesin hitung mekanikal pertama pada tahun 1642 yang
beroperasi dengan cara menggerakkan gear pada roda dan kemudian telah
dikembangkan oleh William Leibnitz (Gambar
1.2). Mesin tersebut digunakan
untuk membantu ayahnya dalam perhitungan pajak yang tersusun atas 50 roda gigi
(gear).
Gambar 1.2. Susunan Roda Gigi
Pada tahun 1816 pula Charles Babbage
telah membina the difference engine
yang telah dapat menyelesaikan masalah perhitungan matematik seperti logaritma
secara mekanikal dengan tepat sampai dengan dua puluh digit (Gambar 1.3).
Gambar 1.3. The difference engine
Mesin ini juga telah
menggunakan semacam "card" sebagai input, untuk menyimpan
"file-file" data melakukan perhitungan secara otomatis dan seterusnya
mengeluarkan output dalam bentuk cetakan pada kertas. "card" tersebut
pertama kali telah digunakan sebagai alat input dalam industri tekstil pada
mesin tenun otomatis ciptaan Joseph Jecquard pada tahun 1801. Ciptaannya ini
dikenal dengan The
Analytical Engine (Gambar 1.4).
Gambar 1.4. The Analytical Engine
Pada tahun 1887 Herman Hoolerith telah mempopularkan
penggunaan "card" (Gambar 1.5)
sebagai alat input data yang telah banyak digunakan penduduk Amerika. Card ini
dikenal dengan sebutan ”Punch Card”
(Kartu Plong).
Gambar 1.5 Card
Howard Aiken memperkenalkan
penggunaan mesin elektromekanika (Gambar
1.6). yang disebut "Mark 1" pada tahun 1937, elektronik dan
mekanikal. Mesin ini dapat menyelesaikan masalah fungsi-fungsi trigonometri di
samping perhitungan-perhitungan yang telah dilakukan mesin-mesin sebelum ini.
Gambar 1.6 Mark
1
A. Komputer Generasi Pertama 1940 - 1959
- ENIAC (Electronic Numerical Integrator and Calculator)
Komputer ENIAC (Gambar 1.7) ini diciptakan oleh Dr John Mauchly dan
Presper Eckert pada tahun 1946
Gambar 1.7 ENIAC
- EDVAC (Electronic Discrete Variable Automatic Computer)
Penggunaan tube vacuum juga telah dikurangi di
dalam EDVAC (Gambar 1.8), di mana proses
perhitungan telah menjadi lebih cepat dibandingkan ENIAC
Gambar 1.8 EDVAC
- EDSAC (Electronic Delay Storage Automatic Calculator)
EDSAC (Gambar 1.9) telah memperkenalkan penggunaan raksa
(merkuri) dalam tube untuk menyimpan memori.
Gambar 1.9 EDSAC
- UNIVAC I (Universal Automatic Calculator)
Pada tahun 1951 Dr Mauchly dan
Eckert menciptakan UNIVAC I (Gambar
1.10), komputer pertama yang digunakan untuk memproses data perniagaan.
Gambar 1.10 UNIVAC I
B. Komputer Generasi Ke Dua ( 1959 - 1964 )
Komputer-komputer generasi
kedua telah menggunakan transistor dan diode untuk menggantikan saluran-saluran
vakum dan menjadikan ukuran komputer lebih kecil dan lebih murah (Gambar
1.11). Cara baru
menyimpan memori juga diperkenalkan melalui teknologi magnetik. Keupayaan
pemprosesan dan ukuran memori utama komputer juga bertambah dan manjadikannya
lebih efisien.
Gambar 1.11 Transistor
Kemunculan FORTRAN dan COBOL
menandakan permulaan bahasa tingkat tinggi untuk menggantikan bahasa pengantar
dalam mesin yang lebih sukar. Compiler Pertama Fortran (1954) dikembangkan oleh
IBM yang dipimpin John W. Backus. Bahasa Fortran (Gambar 1.12 dan Gambar 1.12) digunakan oleh ilmuwan untuk mengerjakan kalkulasi numerik yang tujuannya
untuk mempercepat men-generate kode-kode.
Gambar 1.12
Contoh Kode Program Fortran
Gambar 1.13
Contoh Kode Program Fortran
Minikomputer juga telah diperkenalkan
yaitu yang kedua terbesar di dalam generasi komputer. Versinya yang
pertama ialah DEC PDP 8 (Gambar 1.14) yang
diciptakan pada tahun 1964 yang berguna untuk memproses data-data.
Gambar 1.14 DEC PDP 8
C. Komputer Generasi Ke Tiga (1964 - awal 80-an)
Chip mulai menggantikan
transistor sebagai bahan logis komputer. Chip terdiri dari ribuan transistor
akhirnya berhasil digabung dalam satu bentuk yang sangat kecil. Secuil silicium
yag mempunyai ukuran beberapa milimeter berhasil diciptakan yang kemudian dikenal
dengan nama Intergrated Circuit Chip (Gambar
1.15). IBM S-360 (Gambar 1.16) merupakan komputer pertama yang
menggunakan IC dan diperkenalkan pada tahun 1964.
Gambar 1.15 IC – Chip
Gambar 1.16 IBM S-360
E. Komputer Generasi Ke Empat (awal 80-an)
Microprocessor merupakan ciri
khas komputer generasi ke-empat yang merupakan pemadatan ribuan IC kedalam
sebuah Chip. Karena bentuk yang semakin kecil dan kemampuan yang semakin
meningkat meningkat dan harga yang ditawarkan juga semakin murah.
Microprocessor (Gambar 1.17) merupakan
awal kelahiran komputer personal. Pada tahun 1971, Intel Corp kemudian
mengembangkan microprocessor pertama serie 4004. Pemrosesan dapat dilakukan dengan lebih tepat,
sampai jutaan bit per detik. Memori utama komputer menjadi lebih besar sehingga
menyebabkan memori sekunder kurang penting. Teknologi chip yang maju ini telah
mewujudkan satu lagi kelas komputer yang disebut Supercomputer.
Gambar 1.17 Mikroprosesor
Contoh generasi ini adalah
Apple I Computer (Gambar 1.18) yang dikembangkan oleh Steve Wozniak dan Steve Jobs dengan cara memasukkan
microprocessor pada circuit board komputer. Disamping itu, kemudian muncul TRS Model 80 dengan
processor jenis Motorola 68000 dan Zilog Z-80 menggunakan 64Kb RAM standard.
Gambar 1.18 Apple I Computer
Komputer Apple II-e (Gambar 1.19) yang menggunakan processor jenis 6502R
serta Ram sebesar 64 Kb seperti halnya pada gambar disebelah, juga merupakan
salah satu komputer PC sangat popular pada masa itu. Operating Sistem yang
digunakan adalah: CP/M 8 Bit. Komputer ini sangat populer pada awal tahun
80-an.
Gambar 1.19 Apple II-e
IBM mulai mengeluarkan
Personal Computer (Gambar 1.20) pada
sekitar tahun 1981 seperti yang nampak pada gambar, dengan menggunakan
Operating System MS-DOS 16 Bit. Dikarenakan harga yang ditawarkan tidak jauh
berbeda dengan komputer lainnya, disamping teknologinya jauh lebih baik serta
nama besar dari IBM sendiri, maka dalam waktu yang sangat singkat komputer ini
menjadi sangat popular.
Gambar 1.20 Personal Computer
F. Komputer Generasi Ke Lima (masa depan)
Generasi kelima dalam sejarah
evolusi komputer merupakan komputer impian masa depan dan diperkirakan
mempunyai lebih banyak unit pemprosesan yang berfungsi bersamaan untuk menyelesaikan
lebih daripada satu tugas dalam satu masa. Komputer ini juga mempunyai ingatan
yang amat besar sehingga memungkinkan penyelesaian lebih dari satu tugas
dalam waktu bersamaan. Unit pemprosesan pusat juga dapat berfungsi sebagai otak
manusia. Komputer ini juga mempunyai kepandaian tersendiri, merespon keadaan
sekeliling melalui penglihatan yang bijak dalam mengambil sesuatu keputusan
bebas dari pemikiran manusia yang disebut sebagai artificial intelligence.
Pada generasi ini ditandai dengan munculnya:
LSI (Large Scale Integration) dapat dilihat pada Gambar 1.21 yang merupakan pemadatan ribuan
microprocessor kedalam sebuah microprocesor. Selain itu, juga ditandai dengan
munculnya microprocessor dan semi conductor. Perusahaan-perusahaan yang membuat
micro-processor diantaranya adalah: Intel Corporation, Motorola, Zilog dan
lainnya lagi. Dipasaran bisa kita lihat adanya microprocessor dari Intel dengan
model 4004, 8088, 80286, 80386, 80486, dan Pentium.
Gambar 1.21 Mikroprocessor Intel
Pentium-4
(Gambar 1.22) merupakan produksi terbaru
dari Intel Corporation yang diharapkan dapat menutupi segala kelemahan yang ada
pada produk sebelumnya, disamping itu, kemampuan dan kecepatan yang dimiliki
Pentium-4 juga bertambah menjadi 2 Ghz. Gambar-gambar yang ditampilkan menjadi lebih halus dan lebih tajam,
disamping itu kecepatan memproses, mengirim ataupun menerima gambar juga
menjadi semakin cepat.
Gambar 1.22 Pentium 4
Pentium-4
diproduksi dengan menggunakan teknologi 0.18 mikron. Dengan bentuk yang semakin
kecil mengakibatkan daya, arus dan tegangan panas yang dikeluarkan juga semakin
kecil. Dengan processor (Gambar 1.23) yang
lebih cepat dingin, dapat dihasilkan kecepatan MHz yang lebih tinggi. Kecepatan
yang dimiliki adalah 20 kali lebih cepat dari generasi Pentium – 3.
Gambar 1.23 Processor Pentium 4
II. SEJARAH PERKEMBANGAN BAHASA PEMROGRAMAN
Sejarah pemrograman modern dan bahasa pemrograman
mulai berkembang
sejak 1940-an, yaitu sekitar 68 tahun yang lalu. Pada tahun 1922. Charles
Babbage. Ketika belajar di Universitas Cambridge Inggris,
Charles melihat pada saat itu terdapat berbagai macam tabel perhitungan seperti tabel yang terkait dengan astronomi, kelautan,
navigasi dan sebagainya. Meskipun tabel-tabel perhitungan
ini tersedia, namun yang terjadi adalah banyak sekali
kejadian musibah seperti kapal tenggelam, kecelakaan dan kapal
hilang. Dalam hal ini, Charles Babbage mengira bahwa musibah ini disebabkan oleh faktor kesalahan manusia yaitu keterbatasan kemampuan
dalam mengimplementasikan tabel perhitungan yang ada. Hal
inilah yang memicunya untuk memikirkan bagaimana cara
mengelola data-data yang ada dalam tabel perhitungan
tersebut supaya mudah digunakan yaitu
menggunakan sebuah ‘mesin’ dinamakan ‘Difference Engine’.
Sejak pertama komputer difference engine diciptakan oleh
Charles Babbage pada tahun 1822, komputer membutuhkan sejumlah instruksi untuk
melakukan suatu tugas tertentu. Instruksi-instruksi ini dikenal sebagai bahasa
pemrograman. Bahasa komputer mulanya terdiri dari sejumlah langkah pengkabelan
untuk membuat suatu program; hal ini dapat dipahami sebagai suatu rangkaian
pengetikan kedalam komputer dan kemudian dijalankan.
Awalnya, difference engine-nya
Charles Babbage hanya dibuat untuk menjalankan tugas dengan menggunakan
perpindahan gigi roda untuk menjalankan fungsi kalkukasi. Jadi, bentuk awal
dari bahasa komputer adalah berupa gerakan secara mekanik, selanjutnya gerakan
mekanik tersebut digantikan dengan sinyal listrik ketika pemerintah AS
mengembangkan ENIAC pada tahun 1942, tetapi masih banyak mengadopsi prinsip-prinsip
dasar dari Babbage’s engine yang mana diprogram dengan mengeset switch dan
perkabelan pada seluruh sistem pada setiap “program” maupun kalkulasi. Tentu
saja ini merupakan pekerjaan yang membosankan.
Pada 1945, John Von Neumann
yang bekerja pada Institute for Advanced Study mengemukakan dua konsep yang
secara langsung mempengaruhi masa depan dari bahasa pemrograman komputer. Yang
pertama dikenal sebagai “shared-program technique”. Pada teknik ini dinyatakan
bahwa hardware komputer haruslah sederhana dan tidak perlu dilakukan
pengkabelan dengan menggunakan tangan untuk setiap program. Sebagai gantinya,
instruksi-instruksi yang lebih kompleks harus digunakan untuk mengendalikan
perangkat keras yang lebih sederhana, hal ini memungkinkan komputer diprogram ulang
dengan cepat.
Konsep yang kedua yang juga sangat penting untuk
pengembangan bahasa pemrograman. Von Neumann menyebutnya sebagai “conditional
control transfer”. Ide ini berkembang menjadi bentuk subrutin, atau blok kode
yang kecil yang dapat panggil berdasarkan aturan tertentu, dari pada suatu
himpunan tunggal urutan kronologis yang harus dijalankan oleh komputer. Bagian
kedua dari ide tersebut menyatakan bahwa kode komputer harus dapat bercabang
berdasarkan pernyataan logika seperti IF (ekspresi) THEN, dan perulangan
seperti FOR statement. “Conditional control transfer” mengembangkan ide adanya
“libraries,” yang mana merupakan blok kode yang dapat digunakan berulang kali.
Pada 1949, setelah beberapa
tahun Von Neumann bekerja, bahasa Short Code dilahirkan, yang merupakan bahasa
komputer yang pertama untuk peralatan elektronik yang membutuhkan programmer
untuk mengubah perintah kedalam 0 dan 1 dengan tangan.
Pada 1957, bahasa khusus yang
pertama muncul dalam bentuk FORTRAN yang merupakan singkatan dari sistem
FORmula TRANslating. Bahasa ini dirancang pada IBM untuk perhitungan
scientific. Komponen-komponennya sangat sederhana, dan menyediakan bagi
programmer akses tingkat rendah kedalam komputer. Sampai saat ini, bahasa ini
terbatas pada hanya terdiri dari perintah IF, DO, dan GOTO, tetapi pada waktu
itu, perintah-perintah ini merupakan lompatan besar kearah depan. Type data
dasar yang digunakan sampai sekarang ini dimulai dari FORTRAN, hal ini meliputi
variabel logika (TRUE atau FALSE), dan bilangan integer, real, serta
double-precision.
FORTRAN sangat baik dalam menangani angka-angka,
tetapi tidak terlalu baik untuk menangani proses input dan output, yang mana
merupakan hal yang penting pada komputasi bisnis. Komputasi bisnis mulai
tinggal landas pada 1959, dengan dikembangkannya COBOL, yang dirancang dari
awal sebagai bahasa untuk para pebisnis. Type data yang ada hanya berupa number
dan text string. Hal tersebut juga memungkinkan pengelompokan menjadi array dan
record, sehingga data di telusuri dan diorganisasikan dengan lebih baik.
Sesuatu hal yang menarik untuk dicatat bahwa suatu program COBOL dibuat
menyerupai suatu essay, dengan empat atau lima bagian utama yang membentuk
keseluruhan yang tertata dengan baik. Perintah-perintah COBOL sangat menyerupai
tata bahasa English, sehingga membuatnya agak mudah dipelajari. Semua ciri-ciri
ini dikembangkan agar mudah dipelajari dan mudah diterapkan pada dunia bisnis.
Pada 1958, John McCarthy di MIT membuat bahasa
LISt Processing (atau LISP), yang dirancang untuk riset Artificial Intelligence
(AI). Karena dirancang untuk fungsi spesialisasi yang tinggi, maka tata cara
penulisannya jaring kelihatan sebelum ataupun sesudahnya. Sesuatu perbedaan
yang paling nyata dari bahasa ini dengan bahasa lain adalah dasar dan type satu-satunya
adalah list, yang ditandai dengan suatu urutan item yang dicakup dengan tanda
kurung. Program LISP sendirinya dibuat sebagai suatu himpunan dari list,
sehingga LISP memiliki kemampuan yang khusus untuk memodifikasi dirinya, dan
juga dapat berkembang sendiri. Tata cara penulisan LISP dikenal sebagai “Cambridge
Polish,” sebagaimana sangat berbeda dari logika Boolean :
x V y – Cambridge Polish, what was used to describe the LISP program
OR(x,y) – parenthesized prefix notation, what was used in the LISP
program
x OR y – standard Boolean logic
LISP masih digunakan sampai sekarang karena
spesialiasi yang tinggi dari sifat abstraknya.
Bahasa Algol dibuat oleh suatu komite untuk
pemakaian scientific pada tahun 1958. Kontribusi utamanya adalah merupakan akar
dari tiga bahasa selanjutnya yaitu Pascal, C, C++, dan Java. Dia juga merupakan bahasa pertama dengan suatu tata bahasa formal,
yang dikenal sebagai Backus-Naar Form atau BNF (McGraw-Hill Encyclopedia of
Science and Technology, 454). Pada Algol telah diterapkan konsep-konsep baru, seperti rekursif pada
function, bahasa berikutnya Algol 68, menjadi bahasa yang membosankan dan sulit
digunakan. Hal ini mengarah kepada adopsi terhadap bahasa yang lebih kecil dan
kompak seperti Pascal.
Pascal dimulai pada tahun 1968
oleh Niklaus Wirth di Technical University, Zurich – Swiss. Nama PASCAL diambil
dari nama seorang ahli matematika bangsa Perancis, yaitu BLEISE PASCAL yang
telah berjasa menemukan alat hitung mekanis pertama didunia pada abad ke-17. Tujuan
pengembangannya adalah untuk kebutuhan pengajaran. Pada awalnya bahasa ini
dikembangkan bukan dengan harapan adopsi pemakaian secara luas. Prinsipnya mereka mengembangkannya untuk
alat pengajaran pemrograman yang baik seperti kemampuan debug dan perbaikan
sistem dan dukungan kepada mikroprosesor komputer yang digunakan pada institusi
pendidikan.
Pascal dirancang dengan
pendekatan yang sangat teratur (terstruktur), dia mengkombinasikan kemampuan
yang terbaik dari bahasa-bahasa saat itu, COBOL, FORTRAN, dan ALGOL. Dalam
pengerjaannya banyak perintah-perintah yang tidak teratur dan aneh dihilangkan,
sehingga sangat menarik bagi pemakai. Kombinasi dari kemampuan input/output dan
kemampuan matematika yang solid, membuatnya menjadi bahasa yang sukses besar.
Pascal juga mengembangkan tipe data “pointer”, suatu fasilitas yang sangat
bermanfaat pada bahasa yang mengimplementasikannya. Dia juga menambahkan
perintah CASE, yang mana memperbolehkan perintah bercabang seperti suatu pohon
pada suatu aturan:
CASE expression OF
possible-expression-value-1:
statements to execute…
possible-expression-value-2:
statements to execute…
END
Kelemahan Pascal adalah tidak dapat mengimplementasikan suatu array
dinamis, atau kelompok dari variabel-variabel yang mana sangat dibutuhkan sehingga
posisi Pascal digeser dengan kemunculan bahasa C.
Bahasa C dikembangkan pada
tahun 1972 oleh Dennis Richie ketika sedang bekerja pada Bell Labs di New
Jersey. Transisi pemakaian dari bahasa umum yang pertama ke bahasa umum sampai
hari ini yaitu transisi antara Pascal dan C, C merupakan perkembangan dari B
dan BCPL, tetapi agak menyerupai Pascal. Semua
fasilitas di Pascal, termasuk perintah CASE tersedia di C.
III. KONSEP DASAR PROGRAM PASCAL
Program dalam bahasa
pemrograman Pascal cukup banyak variannya seperti Delfi, yang merupakan visual
pascal. Pascal memiliki beberapa versi yang beredar di pasaran seperti UCSD
Pascal, Ms-Pascal, Apple Paskal, Free Pascal, Turbo Packal, dan sebagainya. Pascal
adalah salah satu bahasa pemrograman yang sering dijadikan rujukan sebagai
media untuk mempelajari bahasa pemrograman. Pascal merupakan sebuah program
tingkat tinggi (high level language)
yang orientasnya pada segala tujuan dirancang oleh Profesor Niklaus Wirth dari
Technical University of Zurich, Switzerland. Nama Pascal diambil sebagai
penghargaan terhadap Blaise Pascal, ahli matematik dan filosofer terkenal abad
17 dari Perancis.
Profesor Niklaus Wirth
memperkenalkan kompiler bahasa Pascal pertama kali untuk komputer CDC 6000 (Control Data Corporation) yang
dipublikasikan pada tahun 1971 dengan tujuan membantu mengajar program komputer
secara sistematis, khususnya untuk memperkenalkan pemrograman terstruktur.
Dalam waktu singkat, Pascal telah menjadi bahasa yang populer di kalangan pelajar
universitas dan merupakan bahasa yang diajarkan di beberapa perguruan tinggi.
Beberapa profesional komputer juga mulai beralih ke bahasa Pascal.
Kenyataannya, Pascal merupakan bahasa yang paling cepat populer dibandingkan
dengan bahasa-bahasa komputer tingkat tinggi yang lainnya. Bahasa pemrograman
Pascal Mempunyai beberapa kelebihan seperti:
1. Tipe Data Standar, tipe-tipe data standar
yang telah tersedia padaØ kebanyakan bahasa pemrograman. Pascal memiliki
tipe data standar: boolean, integer, real, char, string,
2. User defined Data Types, programmer dapat
membuat tipe data lain yang diturunkan dari tipe data standar.
3. Strongly-typed, programmer harus
menentukan tipe data dari suatuØ variabel, dan variabel tersebut tidak dapat
dipergunakan untuk menyimpan tipe data selain dari format yang ditentukan.
4. Terstruktur, memiliki sintaks yang
memungkinkan penulisan programØ dipecah menjadi fungsi-fungsi kecil (procedure
dan function) yang dapat dipergunakan berulang-ulang.
5. Sederhana dan Ekspresif, memiliki struktur
yang sederhana dan sangatØ mendekati bahasa manusia (bahasa Inggris)
sehingga mudah dipelajari dan dipahami.
Standar Pascal adalah bahasa
Pascal yang didefinisikan oleh K.Jensen dan Niklaus Wirth. Penerapan nyata dari
standar Pascal banyak yang berbeda dengan seperti apa yang telah didefinisikan
oleh K. Jensen dan Niklaus Wirth. Standar Pascal di
Eropa didefinisiakn oelh ISO (International
Standards Organization) dan di Amerika oleh kerjasama antara ANSI (American National Standar Institute)
dengan IEEE (Intitute of Electrical and
Electronic Engineer).
Bahasa PASCAL juga merupakan
bahasa yang digunakan sebagai standar bahasa pemrograman bagi tim nasional
Olimpiade Komputer Indonesia (TOKI). Selain itu, Bahasa PASCAL masih digunakan
dalam IOI (International Olympiad in
Informatics).
Terdapat beberapa versi dari
pascal yang telah berada di pasaran dan sampai saat ini untuk komputer-komputer
micro personal Turbo Pascal merupakan yang paling populer dan banyak digunakan.
Turbo Pascal banyak di gemari karena bersifat interaktif. Selain itu Turbo
Pascal mengikuti definisi dari standar pascal yang didefinisikan oleh K. Jansen
dan Niclaus Wirht di Pascal User Manual and Report. Turbo Pascal adalah
copiright dari BORLAND Inc.
Beberapa versi dari Pascal yang telah beredar di pasaran, di antaranya UCSD
pascal (University of California at San Diego Pascal), MS-Pascal (Microsoft
Pascal), Apple Pascal, Turbo Pascal dan lain sebagainya. Sampai saat ini untuk
komputer-komputer mikro dan personal, Turbo Pascal merupakan versi bahasa
Pascal yang paling populer dan banyak digunakan. Kompiler Turbo Pascal banyak
digemari, karena terutama bersifat interaktif, seperti interpreter saja
layaknya. Selain itu Turbo Pascal mengikuti definisi dari standar Pascal
seperti yang didefinisikan oleh K. Jensen dan Niklaus Wirth di Pascal User
Manual dan Report. Turbo PASCAL adalah copyright dari Borland Inc. dan dapat
digunakan pada sistem operasi PC-DOS, MS-DOS, CPM-86 dan CP/M-80.
1. Turbo Pascal
Kompiler Pascal dari Borland
yang begitu terkenal diseluruh dunia, dikenal dengan nama Turbo Pascal,
diperkenalkan pada tahun 1983, mengimplementasikan “Pascal User Manual and Report” oleh Jensen dan Wirth. Kompiler
Turbo Pascal telah menjadi salah satu dari kompiler terlaris sepanjang masa,
dan membuat bahasa ini sangat populer pada platform PC, dikarenakan
keseimbangan antara kemudahan penggunaan dan kemampuan/kekuatan.
Turbo Pascal memperkenalkan suatu Integrated
Development Environment (IDE) dimana Anda dapat mengedit code (dalam sebuah
editor yang kompatibel dengan WordStar), menjalankan kompiler, melihat
kesalahan yang ada, dan melompat kembali ke baris yang mengandung kesalahan
tersebut. Hal ini mungkin kedengarannya sangat sepele pada dewasa ini, tapi
pada masa sebelumnya Anda harus keluar dari editor, kembali ke DOS; menjalankan
kompiler dari command-line, menuliskan nomor baris yang salah, membuka editor
dan melompat ke baris tersebut.
2. Delphi’s Pascal
Setelah 9 versi dari kompiler
Turbo dan Borland Pascal, yang secara perlahan mengembangkan bahasa ini,
Borland meluncurkan Delphi pada tahun 1995, mengubah Pascal menjadi sebuah
bahasa pemrograman visual.
Delphi mengembangkan bahasa Pascal dalam sekian banyak cara, termasuk
pengembangan berorientasi objek yang berbeda dari produk Object Pascal lain,
termasuk dari kompiler Borland Pascal with Objects.
IV. KOMPONEN
PROGRAM PASCAL
Program dalam bahasa pascal
tersusun atas komponen-komponen program. Komponen-komponen didalam program
tersebut adalah kepala program, bagian deklarasi dan bagian pernyataan atau
program utama. Struktur dari komponen program pascal adalah sebagai berikut :
Program nama_program; {bagian kepala}
[ deklarasi unit ]
[ deklarasi konstanta ]
[ deklarasi tipe data ] Bagian Deklarasi
[ deklarasi variabel ]
[ deklarasi subprogram ]
begin
pernyataan 1;
… Bagian
pernyatan / program utama
pernyataan
2;
end;
Struktur komponen program diatas dijelaskan lebih
detail sebagai berikut :
1. Judul
Program
Judul program
didalam pascal umumnya berisi nama dari program yang bersangkutan, sifatnnya
optional jika ditulis judul program diawali dengan kata “PROGRAM” yang diikuti
dengan nama program. Setelah nama program diakhiri dengan titik koma. Sebagai
contoh sebuah program untuk menghitung luas lingkaran, kepala program dapat
ditulis sebagai berikut:
PROGRAM Menghitung_luas_lingkaran;
Nama program tidak terikat dengan apa harus
ditulis tetapi ada beberapa hal yang harus diperhatikan dalam menuliskan nama
program. Ketentuan-ketentuan dalam menuliskan nama program adalah sebagai
berikut:
-
Nama
program adalah satu kesatuan sehingga nama program tidak boleh lebih dari dua
kata yang dipisahkan dengan spasi. Apabila nama program lebih dari dua kata
maka sebaiknya digabungkan dengan menghilangkan spasi atau menggantinya dengan
tanda underscore ( _ ).
-
Nama
program tidak dapat diawali dengan angka.
-
Nama
program tidak boleh mengandung karakter bukan huruf kecuali underscore ( _ ).
2. Bagian Deklarasi
Bagian deklarasi digunakan bila di dalam
program digunakan pengenal (identifier). Identifier dapat berupa label,
konstanta, tipe, variabel, prosedur dan fungsi. Jika suatu program menggunakan
identifier, Pascal mensyaratkan agar identifier tersebut diperkenalkan terlebih
dahulu sebelum digunakan, yaitu dideklarasikan terlebih dahulu pada bagian ini.
Bagian deklarasi terdiri atas deklarasi unit, deklarasi konstanta dan lain
sebagainya.
a. Deklarasi Unit
Perintah-perintah didalam
pascal sebagian besar tersimpan dalam sebuah file unit. Sebagai contoh ketika
didalam program utama terdapat perintah untuk membersihkan layar dengan
statemen clrscr; maka definisi dari
clrscr ini terdapat dalam sebuah file unit yang disebut crt. Pascal tidak akan memahami perintah tersebut apabila dibagian
deklarasi unit tidak disebutkan file unit yang direferensi yaitu unit crt.
Berdasarkan ilustrasi diatas,
deklarasi unit digunakan untuk menuliskan unit-unit file yang berisi definisi
dari perintah-perintah yang dipakai didalam program utama. Deklarasi unit
dilakukan dengan menuliskan statemen USES
yang diikuti dengan nama unit yang disertakan. Contoh deklarasi unit adalah
sebagai berikut:
Uses Wincrt,WinDos;
Deklarasi unit yang terdiri
dari dua file unit atau lebih, penulisannya dilakukan setelah klausa USES
diikuti dengan nama-nama file unit yang dipisahkan denga tanda koma (,)
kemudian diakhiri dengan tanda titik koma (;). Contoh penulisan unit yang lebih
dari satu file adalah sebagai berikut:
Uses Wincrt,WinDos;
Daftar file unit yang dapat digunakan untuk
menuliskan program terdapat pada tabel 1.
Tabel 1. Daftar file unit didalam pascal
Nama Unit
|
Keterangan
|
Crt
|
Berisi rutin yang
berkaitan dengan layar, keyboard, dan suara. Unit ini ada pada pascal untuk
dos.
|
Wincrt
|
Hampir sama dengan unit crt
tetapi digunakan untuk pascal for windows.
|
Dos
|
Unit yang berisi rutin
yang digunakan untuk operasi terhadap system operasi dan penanganan dos.
|
WinDos
|
Hampir sama dengan unit dos
tetapi digunakan dalam pascal for windows.
|
Printer
|
Berisi fasilitas untuk
melakukan operasi yang berkaitan dengan pencetakan data melalui printer.
|
Graph
|
Berisi rutin yang
digunakan untuk melakukan operasi berkaitan dengan grafis.
|
System
|
Berisi sejumlah pustaka
yang digunakan saat eksekusi (runtime library). Rutime berisi hal-hal
berikut:
-
penanganan input / output file
-
penanganan string
-
alokasi dinamis
|
Selain unit yang telah
disebutkan diatas, masih terdapat beberapa unit yang lain.
b. Deklarasi konstanta
Konstanta adalah sebuah nilai
tetapan yang tidak berubah. Salah satu contoh yang dapat dijadikan sebagai
sebuah konstanta adalah nilai phi
untuk menghitung luas lingkaran. Konstanta yang akan digunakan didalam sebuah
program harus terlebih dahulu didefinisikan pada bagian deklarasi konstanta.
Cara mendeklarasikan sebuah konstanta, digunakan sebuah klausa ‘CONST’ dan diikuti dengan nama
konstanta beserta dengan nilai tetapannya. Contoh sebuah deklarasi konstanta
adalah sebagai berikut:
Const phi=3.14;
Nama konstanta diberikan oleh pemrogram. Untuk
mendeklarasikan konstanta yang lebih dari satu maka dapat dituliskan dengan
menambahkan konstanta berikutnya setelah sebuah konstanta dideklarasikan dan
diakhiri dengan tanda titik koma (;).
Const phi=3.14;
Huruf:char=’A’;
Pada contoh diatas terdapat dua jenis konstanta.
Konstanta yang pertama adalah konstanta yang nilai tetapannya tidak dapat
diubah didalam program. Pada konstanta yang kedua, nilai tetapan awal adalah
huruf ‘A’, nilai ini dapat diubah pada program utama.
c. Deklarasi Tipe data
Terdapat dua kelompok tipe
data yang dibedakan secara mendasar yaitu tipe data yang sudah ada di mengerti
oleh bahasa pemograman pascal dan tipe data bentukan. Tipe data bentukan adalah
tipe data yang didefinisikan oleh seorang pemrogram. Untuk mendeklarasikan
sebuah tipe data, digunakan klausa “TYPE” kemudian diikuti dengan nama tipe
data bentukan serta tipe data asli. Contoh deklarasi sebuah tipe data adalah
sebagai berikut:
Type
status : Boolean;
Dalam contoh diatas, tipe data
bentukan dengan nama status bertipe boolean. Tipe status tersebut dapat
digunakan oleh variabel yang akan di deklarasikan pada bagian deklarasi
variabel.
d. Deklarasi Variabel
Variabel adalah sebuah perubah
yang dapat digunakan untuk menyimpan data. Variabel juga dapat diperlakukan
sebagaimana data atau nilai yaitu dengan operasi-operasi aritmatika maupun
operasi logika. Setiap variabel yang akan digunakan untuk menyimpan data, akan
ditentukan tipenya. Sebuah veriabel yang bertipe data numeric tidak akan dapat
digunakan untuk menyimpan data huruf. Beberapa tipe data yang sangat umum
digunakan adalah integer, real, char,
dan string.
Deklarasi sebuah variabel
dilakukan dengan menuliskan klausa “VAR” kemudian diikuti dengan tipe data yang
digunakan. Sebagai contoh sebuah variabel dengan nama jumlah dengan tipe
bilangan bulat maka dapat dituliskan sebagai berikut:
Var
jumlah:integer;
Tipe data pada variabel juga dapat menggunakan
tipe data bentukan yang deklarasikan oleh pemrogram pada bagian deklarasi tipe
data. Contoh:
Type status:Boolean;
Var
jumlah:integer;
Chek:status;
e. Deklarasi subprogram
Deklarasi subprogram adalah
mendeklarasikan bagian program yang disebut dengan procedure dan function. Procedure dan function merupakan bagian dari program yang memiliki fungsi untuk
menyelesaikan tugas tertentu yang menjadi bagian dari program.
Untuk mendeklarasikan
procedure dapat digunakan klausa “PROCEDURE”
kemudian diikuti dengan nama procedure sedangkan untuk mendeklarasikan function
digunalan klausa “FUNCTION” kemudian
diikuti dengan nama function. Setelah mendeklarasikan nama procedure ataupun
nama function, berikutnya akan diikuti oleh bagian procedure atau function yang
diawali dengan pernyataan BEGIN dan diakhiri pernyataan END;. Contoh penulisan procedure dan function adalah sebagai berikut:
Procedure
bacainput(nilai:integer);
Begin
. . .
End;
Function
jumlah(nilai1:integer; nilai2:integer):integer;
Begin
. . .
End;
Catatan : Identifier ini bebas, tetapi
dengan ketentuan-ketentuan sebagai berikut :
1. Terdiri dari gabungan huruf dan angka
dengan karakter pertama harus berupa huruf. Huruf besar dan huruf kecil
dianggap sama.
2.
Tidak boleh mengandung blank.
3. Tidak boleh mengandung simbol-simbol
khusus, kecuali garis bawah.
4. Panjangnya bebas, tetapi hanya 63 karakter
pertama yang dianggap signifikan.
Contoh :
Identifier
|
Keterangan
|
GajiKaryawan
|
Benar
|
No_Mhs
|
Benar
|
P3K
|
Benar
|
1X
|
Salah, karakter pertama harus huruf
|
A&B
|
Salah, tidak boleh mengandung simbol khusus
|
A B
|
Salah, tidak boleh mengandung blank
|
3. Bagian Pernyataan / Program
utama
Bagian program utama adalah
bagian yang berisi langkah-langah dalam program. Statemen-statemen yang ada
pada program utama adalah statemen untuk input pogram, proses, dan output
program. Didalam program utama juga dapat dilakukan pemanggilan procedure dan function yang telah dedeklarasikan sebelumnya. Penulisan statemen
pada program utama terletak diantara klausa “BEGIN” dan “END.” Beberapa aturan
dalam program Pascal :
·
Akhir
sebuah program Pascal ditandai dengan tanda baca titik (.) setelah END
yang paling akhir.
·
Tanda
titik koma (;) merupakan pemisah antar instruksi satu dengan lainnya.
·
Beberapa
statement boleh ditulis menjadi satu baris dipisahkan dengan tanda baca titik
koma (;)
Contoh : simpan:=akhir; akhir:= simpan+awal;
·
Baris
komentar diletakkan diantara tanda (* dan *) atau diantara tanda { dan }
Contoh : Var rerata : real; (*nilai
rata-rata*)
Nil1 :
real; {nilai
ujian}
Tipe pernyataan dalam Pascal terdiri atas :
1.
Sederhana :
-
menandai sebuah item data ke sebuah variabel (assigment statement)
contoh : X := Y *
4.135
-
pemanggilan procedure dan goto
statement
2.
Terstruktur:
- Compound
Statement
contoh : Begin
read (x) ;
y := x + 5;
write (y)
End.
- Repetitive Statement
contoh : For I := 1 to 100 do
write (count);
- Conditional Statement
contoh : If x > 100 then write (s)
else write (p) ;
4. Komentar Program
Komentar program merupakan
tulisan-tulisan yang berfungsi untuk memberikan keterangan pada program atau
instruksi-instruksi yang ada di dalam program. Komentar program ini tidak akan
diekseksi oleh program. Cara penulisan komentar adalah dengan memberikan tanda
kurung kurawal buka dan tutup ({…}) pada awal komentar dan akhir komentar.
Contoh : Menghitung luas bidang berbentuk empat
persegi panjang dengan panjang P dan lebar L.
PROGRAM Luas; {Judul}
VAR P,L,Luas:real; {Deklarasi variabel}
BEGIN
Read (P,L); {Statemant}
Luas := P*L; {Statement}
Write (P,L,Luas); {Statement}
END.
V. TIPE DATA
Tipe data adalah sebuah tipe atau jenis data yang
disimpan kedalam sebuah perubah atau variabel. Untuk mendeklarasikan sebuah
variabel harus diikuti dengan tipe datanya. Sebagai contoh sebuah variabel
dengan nama nilai dan bertipe data integer maka variabel tersebut hanya dapat
menyimpan data yang berupa bilangan bulat seperti 1, 2, -3, dan lain
sebagainya. Variabel tersebut tidak dapat digunakan untuk menyimpan data yang
berupa bilangan desimal seperti 2.5, 4.25, atau tipe data yang lainnya yang
tidak sesuai.
Didalam bahasa pemrograman pascal terdapat dua macam
tipe data yatu tipe data dasar dan tipe data bentukan. Tipe data dasar
merupakan tipe data yang telah disediakan dan dikenali oleh program sedangkan
tipe data bentukan adalah tipe data yang dibuat dan didefinisikan oleh
pemrogram. Tipe data dasar antara lain :
1. Tipe data Ordinal
Tipe data ordinal adalah sebuah tipe data yang memiliki
nilai ordinalitas pada sebuah himpunan yang berurutan (orderet set). Pada tipe data ordinal, nilai pertama memiliki
nilai ordinalitas 0, berikutnya memiliki nilai ordinal 1 dan seterusnya. Khusus
untuk tipe integer nilai ordinalitasnya adalah nilai integer itu sendiri.
Pada tipe data ordinalitas,
setiap nilai memiliki nilai pendahulu kecuali pada nilai yang pertama dan
memiliki nilai yang mengikutinya kecuali nilai terakhir. Standar fungsi yang digunakan
untuk mengetahui nilai ordinalitas dari suatu data ordinal adalah Ord( ). Fungsi pred( ) digunakan untuk mengetahui nilai pendahulunya. Fungsi ini
tidak dapat diterapkan pada nilai yang petama. Fungsi succ( ) digunkan untuk mengetahui nilai yang mengikutinya. Fungsi
ini tidak dapat diterapkan pada nilai yang terakhir.
Pada tipe data ordinal
terdapat beberpa jenis tipe data, yaitu tipe integer, tipe char, dan tipe
Boolean.
a. Tipe Integer
Tipe data integer adalah tipe
data yang berupa bilangan bulat. Tipe data ini tidak memiliki nilai hasil
pembagian yang berupa pecahan. Dalam tipe data integer terdapat beberapa jenis
yang membedakan ukurannya. Kelompok tipe data tersebut dapat dilihat ada tabel 1.
Tabel 1. Tipe data integer
Tipe
|
Rentang Nilai
|
Ukuran
|
Byte
|
0..225
|
8
bit
|
Shortint
|
-128
.. 127
|
8
bit
|
Word
|
O .. 65535
|
16
bit
|
Integer
|
-32768..32767
|
16
bit
|
longInt
|
-2147483648..2147483647
|
32
bit
|
Contoh:
Var
a,b,c:integer;
Begin
A:=5;
B:= -10;
C:=A+B;
Write (C);
End;
b.
Tipe Char
Tipe char digunakan untuk
mendefinisikan sebuah himpunan karakter yang ada pada kode ASCII. Untuk
menuliskan sebuah karakter didalam program dengan menyertakan tanda petik (‘)
awal dan akhir karakter tersebut. Sebagai contoh ‘A’,
‘B’, ‘C’, ‘0’, ‘1’, ‘2’ dan sebagainya. Tipe data char hanya terdiri dari satu karakter.
Fungsi-fungsi yang telah
dijelaskan sebelumnya dapat diterapkan pada tipe data ini. Fungsi ord( ) akan menghasilkan sebuah nilai
ordnalitas dari sebuah karakter. Sebagai contoh Ord(‘A’) akan
menghasilkan nilai 65. Fungsi pred()
akan menghasilkan nilai sebelumnya. Sebagai contoh pred(‘B’) akan
menghasilkan karakter ‘A’. Demikian juga dengan fungsi succ(
) yang akan menghasilkan nilai sesudahnya. Sebagai contoh Succ(‘B’) akan menghasilkan karakter ‘C’.
Untuk menghasilkan sebuah
nilai karakter dari suatu nilai ordinal juga dapat digunakan dengan sebuah
fungsi chr( ). Sebagai contoh pada
kode asci nilai 68 adalah sebuah karakter ‘D’, maka untuk memperoleh nilai ‘D’
dari suatu data integer dapat dilakukan dengan perintah Chr(68).
Sebagai ilustrasi yang lebh
detail dapat dilihat pada contoh program berikut.
Program Karakter ASCII
|
Program karakter;
Uses wincrt;
Var nilai : integer;
K:char;
Begin
Writeln(’Program Cetak Karakter
dari ASCII’);
Writeln(’Masukan nilai karakter
ASCII [0-255]=’);
Readln(nilai);
K:=chr(nilai);
Write(‘Karakter=’,K);
End.
|
Output:
|
Program Cetak Karakter dari ASCII
Masukan nilai karakter ASCII [0-255]= 68
Karakter= D
|
c. Tipe Boolean
Tipe data Boolean merupakan
tipe data logika dengan dua buah nilai kebenaran yaitu true dan false. Nilai
true memiliki nilai biner 1 dan nilai false memiliki nilai biner 0.
Contoh:
Var
x:Boolean;
Begin
X:=true;
Writeln(x);
End.
Dalam contoh diatas, x adalah
variabel dengan tipe Boolean. Variabel x tersebut kemudian diberikan nilai true. Tampilan dari pogram tersebut
adalah menampilkan nilai true.
2. Tipe Data Real
Tipe data real adalah tipe
data bilangan yang mengandung nilai pecahan. Bilangan ini disbut dengan
bilangan desimal. Penulisan data desimal tidak mengunakan tanda koma (,) tetapi
menggunakan tanda titik (.), sebagai contoh 2.25
Sebagaimana tipe integer,
didalam tipe data real juga terdapat beberapa jenis tipe data yang memiliki
jangkauan yang berbeda. Kelompok tipe data tersebut dapat dilihat pada tabel 2.
Tabel
2. Tipe data real
Tipe
|
Rentang
nilai
|
Angka signifikan
|
Byte
|
Real
|
2.9e-39..1.7e38
|
11 – 12
|
6
|
Single
|
1.5e-45..3.4e38
|
7 -8
|
4
|
Double
|
5.0e-324..1.7e308
|
15 – 16
|
8
|
Extended
|
3.4e-4932..1.1e4932
|
19 -20
|
10
|
Comp
|
-2E63+ 1 .. 2E63-1
|
19 -20
|
8
|
Pada rentang nilai dituliskan
dalam bentuk notasi denga huruf e. notasi ini memiliki arti perkalian dengan
pangkat berbasis 10. Sebagai contoh 2.3E2, bilangan ini
memiliki nilai 2.3 X 102 yaitu 230.
Program Pembagian
|
Program pembagian;
Uses wincrt;
Var a,b :
integer;
C:real;
Begin
Writeln(’Program Operasi Pembagian’);
Write(’Masukan nilai A =’); Readln(a);
Write(’Masukan nilai B =’); Readln(b);
c:=a/b;
Writeln(‘Hasil Pembagian=’,c);
End.
|
|
Output:
|
Program Operasi Pembagian
Masukan Nilai A = 20
Masukan Nilai B = 3
Hasil Pembagian = 6.66666666666667E+0000
|
Pada program diatas, pada
awalnya user akan diminta untuk memasukan data bilangan bulat yang disimpan
dalam variabel A. Berikutnya user akan diminta untuk memasukan sebuah bilangan
bulat yang akan disimpan dalam variabel B. Program akan melakukan pembagian
yang hasilnya akan disimpan dalam variabel C yang bertipe real. Terakhir
program akan menampilkan output yang ada pada variabel C dengan mengguanakan
notasi perkalian pangkat 10 yaitu dengan huruf E. Untuk mengubah tampilan ini
dapat disertakan format bit signifikan. Pernyataan terakhir dapat diganti
dengan perintah:
Writeln(‘Hasil
Pembagian=’,C:8:2);
3. Tipe data terstruktur
Tipe data terstruktur adalah
tipe data yang dapat menyimpan lebih
dari satu nilai. Masing-masing nilai tersebut disebut sebagai elemen yang
memiliki tipe tersendiri. Struktur pembentukan tipe data ini akan menentukan
karakteristik penyimpanan dan pengaksesan data. Didalam tipe data terstruktur
terdapat beberapa jenis tipe data yaitu tipe string, tipe himpunan (set), tipe
larik (array), tipe rekaman (record) dan tipe berkas (file). Pembahasan pada
bab ini hanya akan dilakukan pada dua buah tipe data yaitu tipe data string dan
tipe data himpunan. Ketiga tipe data yang lain, yaitu tipe larik, tipe rekaman,
dan tipe berkas akan dibahas dalam bab tersendiri.
a. Tipe String
Tipe data string adalah tipe
data yang berisi kumpulan karakter. Untuk mendefinisikan tipe data string dapat
diikuti dengan jumlah karakter yang dispesifikasikan. Jika jumlah karakter yang
boleh disimpan tidak didefinisikan maka data yang disimpan tidak dibatasi.
Untuk menspesifikasikan jumlah karakter yang dapat disimpan dalam sebuah
variabel dapat dituliskan dengan tanda kurung siku ( [ ] ).
Contoh:
Var S:string;
A:string[10];
Jika sebuah varabel
dideklarasi dengan tipe data string dan dispesifikasikan jumlah karakter yang
dapat disimpan maka variabel tersebut hanya mampu menyimpan sejumlah karakter
tersebut meskipun diberikan sebuah input yang jumlah karakternya lebih banyak.
Pada contoh diatas, variablel hanya mampu menyimpan 10 karakter. Apabila
variabel tersebut diberi input ‘ABCDEFGHIJKLMN’
maka data yang akan tersimpan hanya ‘ABCDEFGHIJ’
sesuai dengan jumlah yang telah ditentukan.
Contoh:
Program Menampilkan salam
Program Salam;
Uses wincrt;
Var nama : string[20];
Begin
Write(’Masukkan Nama Anda =’); Readln(nama);
Writeln(‘Selamat
Datang’,nama);
End.
|
|
Output:
|
Masukkan Nama Anda = Flori
Selamat Datang Andi
|
b. Tipe Himpunan
Himpunan adalah kumpulan data
yang memiliki tipe yang sama. Sebagaimana pengertian himpunan di dalam
matematika, himpunan adalah kumpulan objek yang memiliki karakteristik yang
sama. Misalnya himpunan bilangan bulat 0 sampai 10 maka himpunan tersebut
adalah kumpulan nilai yang memiliki tipe yang sama yaitu 0,1,2,3,4,5,6,7,8,9,
dan 10.
Didalam bahasa pemrograman
pascal, himpunan ditulis dengan tanda kurung siku ( [ ] ). Himpunan bilangan bulat positif dari 0 sampai
dengan 10 dapat dinyatakan dengan [0,1,2,3,4,5,6,7,8,9,10]. Urutan dalam
himpunan tidak mempengaruhi karakteristiknya. Dua buah himpunan dikatakan sama
apabila masing-masing himpunan memiliki anggota yang sama. Himpunan
[0,1,2,3,4,5,6,7,8,9,10] sama dengan himpunan [10,9,8,7,6,5,4,3,2,1,0]. Untuk
mendeklarasikan sebuah tipe data himpunan digunakan perintah dengan klausa
“SET”.
Contoh:
Var
X : set of 1..10;
Karakter: set of char;
Untuk mengetahui apakah suatu data merupakan
anggota dari suatu himpunan dapat digunakan perintah In. Pada program dibawah ini akan memberikan gambaran yang lebih
jelas.
Contoh : Program Himpunan
Program
himpunan;
Uses wincrt;
Var x : boolean;
Y : integer;
Begin
y:=5;
x:=y in [1..10];
Writeln(x);
End.
|
Dari contoh program diatas,
nilai output dari program tersebut adalah true. Variabel X bernilai true karena
varibael y yang berisi angka 5 adalah bagian dari bilangan dari 1 sampai 10.
c. Tipe data pointer
Tipe data pointer adalah tipe
data terstruktur yang dipakai pada deklarasi variabel sehingga variabel
tersebut bersifat dinamis. Sebagai ilustrasi, sebuah variabel dideklarasi
dengan tipe string[20] maka variabel tersebut berukuran tetap yaitu 20. Pada
saat program berjalan ukuran variabel tersebut tidak akan berubah. Dengan
menggunakan sebuah tipe data pointer sebagai contoh pointer char maka variabel
tersebut ukuran dapat berubah sesuai dengan kebutuhan program.
Deklarasi sebuah tipe data
pointer digunakan sebuah perintah dengan menuliskan tanda topi (^)
kemudian diikuti dengan jenis tipe data dasar.
Contoh:
x : ^char;
4. Tipe
data bentukan
Tipe data bentukan adalah
sebuah tipe data yang didefinsikan oleh pemrogram. Tipe data bentukan ini
terdapat dua jenis taitu tipe terbilang (enumerated) dan tipe subjangkauan.
a. Tipe terbilang (enumerated)
Tipe terbilang adalah sebuah
tipe data yang didefinisikan satu persatu. Sebagai contoh untuk mendeklarasikan
sebuah tipe data hari maka semua nama hari harus disebutkan satu persatu yaitu
senin, selasa, rabu, kamis, jumat, sabtu, dan minggu. Bentuk umum deklarasinya
adalah pengenal = <tipe>.
Pendeklarasian tipe data ini ada pada bagian deklarasi tipe sebagaimana yang
telah dijelaskan pada bagian sebelumya.
Contoh:
Type
Hari=(minggu,senin,selasa,rabu,kamis,jumat,sabtu);
Untuk mendeklarasikan sebuah variabel yang bertipe
hari dideklarasikan pada bagian deklarasi variabel.
Contoh:
Var
NamaHari:hari;
Variabel NamaHari yang telah dideklarasikan dengan tipe hari hanya dapat
menyimpan data yang berupa nama-nama hari yang telah disebutkan pada bagian
deklarasi tipe data.
Contoh:
NamaHari:=senin;
b. Tipe subjangkauan
Tipe subjangkauan adalah
sebuah tipe yang menunjukkan adanya rentang nilai. Tipe subjangkauan dapat
diambil dari sembarang nilai ordinal. Bentuk umum untuk menyatakan notasi ini
adalah dengan sintak:
Type
Pengenal1=konstanta1 .. konstanta 2
Keterangan :
Pengenal=
nama tipe subjangkauan
Konstanta1=nilai yang menyatakan batas awal jangkauan.
Konstanta2= nilai yang menyetakan batas akhir jangkauan.
Contoh:
Type
Nilai=1..100
HurufBesar=’A’..’Z’
Sebuah variabel yang dideklarasikan sebagai tipe
data maka variabel tersebut hanya dapat menerima data yang ada didalam rentang
nilai tersebut. Program berikut ini adalah program yang menyajikan tipe data
sub jangkuan.
Program Nilai mahasiswa1.
Program
nilai_mhs1;
Uses wincrt;
Type
Nilai=1..100;
Var
Nilaimhs:nilai;
Begin
Writeln(’Program Nilai Mahasiswa’);
Writeln(’Masukkan Nilai Mahasiswa =’);
Readln(nilaimhs);
Writeln(’Nilai Mahasiswa’,nilaimhs);
End.
|
|
Output
|
Program Nilai
Mahasiswa
Masukkan Nilai
Mahasiswa = 98
Nilai Mahasiswa
= 98
|
Pada program diatas, nilai adalah sebuah tipe
subjangkauan dengan batas awal 1 dan batas akhir 100. variabel nilaimhs yang
dideklarasikan dengan tipe nilai maka variabel tersebut hanya dapat menerima
masukan data yang ada diantara seubjangkauan tersebut seperti 25, 40, 80 dan
lain sebagainya. Variabel
tersebut tidak dapat menerima nilai diluar subjangkauan tersebu seperti 125,
-5,110 dan lain sebagainya.
VI. OPERATOR
Operator adalah suatu simbol
yang digunakan untuk melakukan operasi terhadap data. Operasi yang dimaksud
adalah memanipulasi dan mengolah data. Data dengan tipe tertentu dapat
dilakukan operasi dengan operator tertentu.
1. Operator Penugasan
Operator penugasan adalah
operator yang digunakan untuk memberikan nilai pada suatu perubah. Sebagai
contoh sebuah variabel dideklrasikan dengan tipe data integer. Untuk memberikan
sebuah nilai pada variabel tersebut digunakan operator penugasan. Didalam
bahasa pascal operator penugasan ini dituliskan dengan simbol titik dua dan
sama dengan (:=);
Contoh:
Nilai:=100;
A:=10;
B:=25;
C:=A*B;
Dari contoh diatas dapat dilihat bahwa untuk
memberikan nilai 100 pada variable nilai digunakan operator penugasan yaitu
titik dua dan sama dengan (:=). Demikian juga pemberian nilai pada
variabel-variabel yang lain.
2. Operator Aritmatika
Operator aritmatika adalah
operator yang digunakan untuk mengoperasikan data-data numerik. Operasi yang
dilakukan adalah operasi aritmatika seperti penjumlahan, perkalian, pembagian dan
lain sebagainya. Operator aritmatika memiliki beberapa simbol dengan fungsi
yang berbeda-beda. Masing-masing simbol juga memiliki prioritas yang berbeda
jika didalam suatu notasi terdapat lebih dari satu operator aritmatika.
Simbol-simbol operator arimatika dan hierarki urutan prioritasnya dapat dilihat
pada tabel 1.
Tabel 1. Operator Aritmatika
Operator
|
Operasi
|
-
|
Tanda negative
|
* , /
|
Pekalian dan pembagian
|
Div
|
Pembagian integer
|
Mod
|
Modulo (sisa hasil bagi)
|
+ , -
|
Penambahan dan pengurangan
|
Keterangan:
¨ Operasi tanda negatif akan memberikan
nilai negasi dari nilai yang disebutkan.
Contoh: 5 + 10 = 5
¨ Operasi div akan menghasilkan nilai
pembagian dalam bilangan bulat tanpa nilai pecahan
Contoh : 8 div 3 = 2
4 div 5 = 0
15 div 3 = 5
¨ Operasi mod akan menghasilkan nilai sisa
hasil bagi
Contoh :
5 mod 2 = 1
3 mod 5 = 3
11 mod 5 = 1
Didalam proses operasi yang dilakukan dengan
operator aritmatika, prioritas yang lebih tinggi akan dilaksananakan terlebih
dahulu.
Contoh: 4 + 2 *
8
Proses operasi tersebut akan dilakukan dengan
perkalian terlebih dahulu kemudian dilakukan proses penjumlahan. Hasil dari
operasi tersebut adalah:
= 4 + 16
= 20
Untuk memberikan prioritas
operasi yang lebih tinggi terhadap operator yang berprioritas rendah agar dikerjakan
lebih dulu maka perlu adanya notasi penulisan dengan tanda kurung buka dan
kurung tutup. Misalnya dari notasi yang telah dicontohkan diatas apabila proses
penjumlahan ingin dilakukan lebih dulu dari pada proses perkalian maka notasi
tersebut dapat diubah menjadi (4+2)*8 sehingga hasil yang diperoleh yaitu 8 * 8
= 64.
Operator aritmatika tersebut
secara keseluruhan digunakan untuk melakukan proses perhitungan data-data
numerik. Hanya ada satu operator yang digunakan untuk melakukan operasi terhadap
jenis data yang lain yaitu untuk tipe string. Operator tersebut adalah
penjumlahan (+) yang dapat digunakan untuk menggabungkan dua buah string.
Contoh :
NamaDepan:=’AGUS’
NamaBelakang:=’SETYIAWAN’
NamaLengkap :=NamaDepan + NamaBelakang;
3. Operator Logika
Operator logika adalah
simbol-simbol yang digunakan untuk melakukan ekspresi terhadap data-data
logika. Proses operasi tersebut akan
menghasilkan salah satu dari dua jenis nilai kebenaran yatu TRUE dan FLASE. Simbol-simbol operator logika tersebut dapat dilihat pada
tabel 2.
Tabel 2. Operator Logika
Operator
|
Keterangan
|
Not
|
Tidak
|
And
|
Dan
|
Or
|
Atau
|
Xor
|
Exclusive
Or
|
Sebagaimana operator matematika, operator
logika juga memiliki urutan prioritas
dalam melakukan prosesnya apabila dalam suatu pernyataan terdapat lebih dari
satu operator.
a. Operator Not
Operasi not (lihat Tabel 3) merupakan
operasi unary yang digunakan untuk sebuah nilai Boolean tunggal dan
menghasilkan nilai kebalikanya (negasi). Jika sebuah ekspresi bernilai true
kemudian diberikan operator not memakai akan menghasilkan nilai baru yaitu
false.
Tabel
3. Nilai kebenaran Operator NOT
Ekspresi
|
Hasil Operasi NOT
|
True
|
False
|
False
|
True
|
Contoh:
A:=true;
B:=Not A;
Hasil yang ada pada variable B
adalah FALSE.
b.
Operator And
Operator and dilakukan untuk dua buah ekspresi Boolean.
Operator and akan menghasilkan nilai true jika kedua ekspresi tersebut memiliki
nilai true. Tabel 4 menunjukan hasil operasi and pada dua buah ekspresi
Boolean.
Tabel 4. Nilai kebenaran Operator And
Ekspresi1
|
Ekspresi2
|
Ekspresi 1 And Ekspresi2
|
False
|
False
|
False
|
False
|
True
|
False
|
True
|
False
|
False
|
True
|
True
|
True
|
Contoh:
A:=true;
B:=false;
C:=A and B
Variabel c mengandung nilai hasil operasi and yaitu false.
c. Operator Or
Operator Or dilakukan untuk dua
buah ekspresi sebagimana operator and. Operator or akan manghasilkan nilai true
apabila salah satu ekspresi bernilai true. Operator or akan menghasilkan nilai
false apabila kedua ekspresi bernilai false. Tabel 5 merupakan tabel kebenaran
yang menunjukan hasil operasi or.
Tabel 5. Nilai kebenaran
Operator Or
Ekspresi1
|
Ekspresi2
|
Ekspresi 1 Or Ekspresi2
|
False
|
False
|
False
|
False
|
True
|
True
|
True
|
False
|
True
|
True
|
True
|
True
|
Contoh :
A:=true;
B:=false;
C:=A or B;
Variabel c mengandung nilai hasil operasi or yaitu true.
d.
Operator Xor (Exclusive Or)
Sebagaimana operator and dan operator Or, operator Xor (lihat
Tabel 6) juga merupakan operator yang digunakan untuk dua buah ekspresi.
Operator Xor akan menghasilkan nilai true jka kedua ekpresi memiliki nilai yang
berbeda. Operator xor akan
menghasilkan nilai false jika kedua espresi bernilai sama.
Tabel 6. Nilai
kebenaran Operator XOr
Ekspresi1
|
Ekspresi2
|
Ekspresi 1 XOr Ekspresi2
|
False
|
False
|
False
|
False
|
True
|
True
|
True
|
False
|
True
|
True
|
True
|
False
|
Contoh:
A:=true;
B:=true;
C:=A Xor B
Variabel c mengandung nilai hasil operasi xor yaitu false.
4. Operator
Relasi / Perbandingan
Operator relasi/perbandingan digunakan untuk
membandingkan suatu data (ekspresi) dengan data (ekspresi) yang lain dan
menghasilkan nilai logika (benar atau salah). Dua buah data atau ekspresi yang
dibandingkan mempunyai tipe data yang sama. Tabel 7 merupakan daftar
simbol-simbol operator perbandingan.
Tabel 7.
Operator Perbandingan
Operator
|
Keterangan
|
=
|
Sama
dengan
|
<>
|
Tidak
sama dengan
|
<
|
Lebih
kecil
|
>
|
Lebih
besar
|
<=
|
Lebih
kecil atau sama dengan
|
>=
|
Lebih
besar atau sama dengan
|
Operasi
perbandingan akan mengasilkan nilai kebenaran true jika pernyataannya bernilai
benar dan akan menghasilkan nilai false apabila pernyataannya salah.
Contoh:
Tes
= 5 > 4 ‘variabel tes berisi
true’
A:=true;
B:=false;
C:=A=B;
Variabel C berisi false karena A tidak sama dengan B
5. Operator Himpunan
Operator himpunan adalah
operator yang digunakan untuk melakukan operasi terhadap data-data yang bertipe
himpunan. Pada tipe data himpunan dapat diberlakukan beberapa operator yaitu
interseksi, union, dan selisih. Selain operator tersebut, pada tipe data
himpunan juga dapat diberlakukan operator perbandingan. Untuk memberikan
gambaran yang jelas akan diberikan dua buah data himpunan yaitu:
A:= [1,2,3,4,5,6]
B:= [5,6,7,8,9,10]
Operator interseksi dinyatakan
dengan symbol bintang (*). Operator ini akan menghasilkan himpunan anggota yang
ada pada kedua himpunan tersebut. A*B akan menghasilkan himpunan anggota
interseksi yaitu [5,6].
Operator union dinyatakan
dengan symbol plus (+). Operator ini akan menghasilkan himpunan yang anggotaya
adalah gabungan dari kedua himpunan. A + B akan menghasilkan himpunan yang
anggotanya adalah gabungan dari himpunan A dan himpunan B yaitu
[1,2,3,4,5,6,7,8,9,10]
Operator selisih dinyatakan
dengan symbol minus (-). Operator ini akan menghasilkan himpunan yang
anggotanya merupakan anggota himpunan pertama tetapi bukan anggota himpunan
kedua. A – B akan menghasilkan himpunan yang anggotanya merupakan anggota
himpunan A dan bukan anggota himpunan B yaitu [1,2,3,4]. B – A akan
menghasilkan himpunan [7,8,9,10].
Untuk melakukan operasi
perbandingan, pada tipe data himpunan dapat diberlakukan operator perbandingan
yang telah dijelaskan pada bagian sebelumnya. Selain operator tersebut masih
terdapat satu operator perbandingan yang ada pada data himpunan. Operator
tersebut adalah operator in.
Penggunaan operator in telah dijelaskan pada bagian tipe data himpunan.
Program pada umumnya dibuat
untuk dapat menyelesaikan permasalahan tertentu. Sebagai contoh sebuah program
kalkulator dibuat untuk menyelesaikan permasalahan yang berhubungan dengan
perhitungan matematis atau perhitungan aritmatika.
Sebuah program dapat didesain
dan dibuat dengan baik apabila permasalahan yang akan ditangani telah
terdefinisi. Dari permasalahan yang telah didefinisikan dengan baik akan dapat
diketahui data-data yang menjadi masukan sehingga proses dapat berjalan.
Apabila proses telah berjalan dengan baik maka dapat dihasilkan informasi
sebagai output dari pemrosesan data tersebut.
Setelah permasalahan
didefinisikan dengan baik beserta dengan kebutuhan input dan output berikutnya
dapat dilakukan desain algoritma yang berisi urutan input, proses dan output.
Dari suatu algoritma dapat dilakukan pengkodean, debugging dan testing sehingga
menghasilkan sebuah program. Namun sebelum meelakukan desain algoritma terlebih
dahulu kita menganalisa permasalahan.
Didalam analisa permasalahan, harus dirumuskan dua
hal yaitu input yang diperluakan dan output yang dihasilkan. Sebagai contoh
permasalahan menghitung luas persegi panjang dapat diselesaikan
apabila diketahui lebar dan panjang persegi panjang tersebut.
Dari analisa tersebut maka dapat dirumuskan hal-hal
berikut:
Permasalahan:
Menghitung luas persegi panjang
Input yang dibutuhkan:
Panjang, lebar
Output yang dihasilkan
Luas persegi panjang
Setelah memahami permasalahan
dengan baik, seorang programmer kemudian akan menyusun strategi dan langkah-langkah
untuk menyelesaikan masalah tersebut. Strategi untuk memecahkan sebuah
pemasalahan yang sering dilakukan adalah dengan pendekatan teknik top down
yaitu membagi permasalahan yang kompleks kedalam tingkatan yang lebih
sederhana. Dengan demikian, dapat disusun langkah-langkah stategis untuk
menyelesaikannya
Algoritma adalah urutan
langkah-langkah logis yang digunakan untuk menyelesaikan masalah secara
sistematis. Kata logis berarti langkah-langkah tersebut harus dapat ditentukan
kebenaranya yaitu salah atau benar. Sebagai contoh permasalahan yang dapat
dianalisa adalah mengitung luas persegi panjang. Dari permasalahan ini dapat
dianalisa bahwa untuk menghitung luas sebuah persegi panjang dapat dilakukan
dengan mengalikan panjang dan lebar.
Perkalian ini dapat dilakukan apabila panjang sebuah persegi panjang sudah
diketahui dan lebar suatu persegi panjang juga sudah diketahui. Setelah proses
perkalian maka informasi yang dapat dihasilkan adalah sebuah nilai yang
menunjukan besarny luas persegi panjang tersebut.
Untuk merepresentasikan sebuah
algoritma dapat dilakukan dengan tiga cara yaitu dengan bahasa natural (bahasa
manusia), menggunakan grafik flowchart (diagram alir) dan menggunakan
pseudocode. Algoritma bersifat netral dan dapat diterapkan kedalam bahasa
pemrograman apa saja.
a.
Algoritma dengan bahasa natural
Algoritma dengan bahasa natral
adalah algoritma yang representasikan dengan bahasa manusia sehari-hari. Urutan
langkah-langkah dapat dijabarkan dengan memberikan nomer urut. Sebagai contoh
algoritma untuk menghitung luas persegi panjang dapat diselesaikan dengan
langkah-langkah sebagai berikut:
1).
Menentukan sisi panjang persegi
panjang
2).
Menentukan sisi lebar persegi
panjang
3). Menghitung luas=Sisi panjang X Sisi lebar
4).
Menampilkan hasil perkalian
(luas)
b.
Algoritma dengan flowchart
Flowchart merupakan algoritma
dalam bentuk diagaram secara grafis yang
terdiri dari symbol-simbol yang memiliki arti tertentu. Symbol-simbol yang
dapat digunakan dalam membuat flowchart dapat dilihat pada tabel 1.
Tabel 1. Simbol-simbol pada flowchart
Simbol
|
Nama
|
Keterangan
|
|
Terminator
|
Terminator adalah
symbol yang digunakan untuk memberikan tanda awal dan akhir suatu diagram
flowchart. Symbol ini biasanya diberi label start/ mulai untuk mengawali
flowchart dan diberi label End/selesai untuk mengakhiri flowchart.
|
|
Input/Output
|
Symbol input digunakan untuk menunjukan
data-data masukan yang dibutuhkan dalam menyelesaikan masalah sedangkan
output merupakan informasi yang akan ditampilkan.
|
|
Nilai awal / inisialisai
|
Inisialisasi dilakukan
untuk memberikan nilai awal pada suatu variabel. Inisialisasi biasanya diberikan sebelum proses
dilakukan.
|
|
Proses
|
Simbol proses digunakan
untuk menunjukan kegiatan pemrosesan data. Di dalam simbol ini dapat
dituliskn operasi-operasi yang berlaku.
|
|
Percabangan / kondisi
|
Simbol
percabangan digunakan untuk menyatakan sebuah kondisi. Pengecekan dapat
dilakukan untuk melihat suatu keadaan. akan terdapat dua kemungkinan yaitu
tepenuhi atau tidak.
|
|
Arah / Garis Alir
|
Arah/garis
alir menunjukan kemana langkah berikutnya harus dijalankan dan berfungsi
menghubungkan setiap langkah didalam flowchart.
|
|
Konektor / sambungan
|
Konektor
digunakan untk menghubungkan suatu langkah dengan langkah yang lain. Konektor
biasanya digunakan ketika sebuah aliran diagram terputus karena keterbatasan
media dalam menggambarkan grafik flowchart. Pemberian label pada konektor
yang memutus aliran diagram harus sama.
|
Berikut adalah simbol
simbol flowchart yang harus diketahui :
Symbol Off-line Connector ( Simbol untuk keluar/masuk prosedure atau proses
dalam lembar/halaman yang lain)
Symbol Connector (Simbol untuk keluar/masuk prosedur atau proses dalam
lembar/halaman yang sama)
Symbol Process (Simbol yang menunjukkan pengolahan yang dilakukan oleh
komputer)
Symbol Manual Operation (Simbol yang menunjukkan pengolahan yang tidak
dilakukanoleh komputer)
Symbol Decision (Simbol untuk kondisi yang akan menghasilkan beberapa
kemungkinan jawaban/aksi)
Symbol Predefined Process (Simbol untuk mempersiapkan penyimpanan yang akan
digunakan sebagai tempat pengolahan di dalam storage)
Symbol Terminal (Simbol untuk permulaan
atau akhir dari suatu program)
-
Symbol Off-line Storage (Simbol yang menunjukkan
bahwa data di dalam symbol ini akan disimpan)
-
Symbol Manual Input (Simbol untuk pemasukan data
secara manual on-line keyboard)
Symbol Keying Operation (Simbol operasi dengan
menggunakan mesin yang mempunyai keyboard)
Input-output symbols
menyatakan jenis peralatan yang
digunakan sebagai media input atau output.
Symbol input-output (Symbol yang menyatakan
proses input dan output tanpa tergantung dengan jenis peralatannya)
Symbol magnetic-tape unit (Symbol yang menyatakan
input berasal pita magnetic atau output disimpan ke pita magnetic)
-
Symbol punched card (Symbol yang menyatakan
input berasal dari kartu atau output ditulis ke kartu)
-
Symbol disk and on-line storage (Symbol untuk menyatakan
input berasal dari disk atau output disimpan ke disk)
Symbol display (Symbol yang menyatakan
peralatan output yang digunakan yaitu layar, plotter, printer, dan sebagainya)
Symbol dokumen (symbol yang menyatakan
input berasal dari dokumen dalam bentuk kertas atau output dicetak ke kertas)
Dari simbol-simbol yang ada
pada tabel 1. Langkah-langkah untuk menyelesaikan perhitungan luas persegi
panjang dapat digambarkan sebagai berikut:
Flowchart
luas persegi panjang
c.
Algoritma dengan pseudocode
Pseudocode merupakan istilah
yang mendekati dengan bahasa pemrograman. Algoritma dengan pseudocode dilakukan
dengan merepresentasikan algoritma dengan istilah-istilah yang mendekati bahasa
pemrograman. Contoh dari permasalahan pada bagian sebelumnya yaitu untuk
menghitung luas sebuah persegi panjang dapat dibuat algoritma dengan
menggunakan pseudocode sebagai berikut:
Algoritma menghitung luas persegi panjang
Deklarasi
Panjang,lebar,luas : integer
Deskripsi
Mulai
Read(panjang)
Read(lebar)
Luas ß panjang * lebar
Write(luas)
Selesai
Pada pembuatan algoritma
dengan pseudocode secara umum struktur algoritma tersebut terdri dari tiga
bagian. Bagian yang pertama yaitu bagian nama algoritma. Deklarasi sebagai
bagian kedua berisi daftar variabel yang terlibat dalam algoritma tersebut.
Bagian ketiga adalah bagian deskripsi yang berisi langkah-langkah dalam
menyelesaikan suatu permalahan.
PEDOMAN-PEDOMAN DALAM MEMBUAT FLOWCHART
Jika seorang analis dan programmer akan membuat
flowchart, ada beberapa petunjuk yang harus diperhatikan, seperti :
- Flowchart
digambarkan dari halaman atas ke
bawah dan dari kiri ke kanan.
- Aktivitas
yang digambarkan harus didefinisikan secara hati-hati dan definisi ini
harus dapat dimengerti oleh pembacanya.
- Kapan
aktivitas dimulai dan berakhir harus ditentukan secara jelas.
- Setiap
langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja.
- Setiap
langkah dari aktivitas harus berada pada urutan yang benar.
- Lingkup
dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan hati-hati.
Percabangan-percabangan yang memotong aktivitas yang sedang digambarkan
tidak perlu digambarkan pada flowchart yang sama.
- Simbol
konektor harus digunakan dan percabangannya diletakan pada halaman yang
terpisah atau hilangkan seluruhnya bila percabangannya tidak berkaitan
dengan sistem.
- Gunakan
simbol-simbol flowchart yang standar.
algoritma , apa sih algoritma itu ??
sepenting apakah sih algoritma itu ??
pertanyaan itu yang ada dalam pikiran saya kawan, ketika mau belajar bahasa
pemrogaman , ternyata memang benar kawan algoritma ini memang penting kawan ,
kenapa jika anda membuat suatu program tanpa algoritma, rasanya sangat sulit
kawan
lalu apakah sebenarnya sih algoritma itu sendiri ??
Algoritma itu adalah urutan langkah langkah dalam menyelesaikan suatu
permasalahan yang disusun secara sistematis dan logis, mungkin sulit kalau
hanya pengertiannya algoritma tersebut
begini kawan contohnya saja ,anda akan membuat program yang berguna untuk menghitung
luas dari sebuah persegi panjang , sebelumnya anda harus membuat sebuah
algoritma dari program tersebut :
algoritmanya ( langkah - langkah )
1.mulai ( setiap awal algoritma harus ada "mulai")
2.masukkan panjang
3.masukkan lebar
4.proses menghitung
luas = panjang x lebar
5.hasil luas persegi panjang
6.selesai ( diakhir harus ada kata selesai karena di awal ada kata mulai )
nah seperti itu kawan , algoritma tidaklah sulit , dan memang sangat diperlukan
sebagai alur dari penyelesaian sebuah permasalahan
flowchart
flowchart ?? apa lagi itu ??
flowchart adalah diagram alur , dimana setelah anda membuat sebuah algoritma
anda juga harus membuat flowchart juga , flowchart digunakan untuk
menggambarkan sebuah alur dari program tersebut,flowchart juga biasanya
digunakan untuk bahan presentasi alur dari cara kerja program kita yang
digunakan untuk mempermudah orang awam untuk mengerti alur kerja program kita
flowchart memiliki simbol tertentu antara lain
didalam tabel tersebut berisi simbol simbol yang dipakai dalam pembuatan
diagram alur ( flowchart )
, contoh kita akan membuat flowchart cara menghitung luas persegi panjang ,
yang sebelumnya telah kita buat algoritmanya :
Algoritma
1.mulai ( setiap awal algoritma harus ada "mulai")
2.masukkan panjang
3.masukkan lebar
4.proses menghitung
luas = panjang x lebar
5.hasil luas persegi panjang
6.selesai ( diakhir harus ada kata selesai karena di awal ada kata mulai )
Flowchart
keterangan :
- awal dari flowchart kita mulai dengan ( " START ")
- Lalu selanjutnya kita melakukan pendeklarasian variabel apa saja yang kita
gunakan
dalam hal ini adalah (" Panjang , Lebar , Luas ")
- langkah selanjutnya adalah memasukkan panjang dan lebar
- selanjutnya kita akan menghitung Luas
Luas = panjang x lebar
- setelah proses perhitungan , maka akan muncul output dalam hal ini ("
Luas ")
- dan flowchart akan diakhiri dengan perintah END
Mudah kan kawan membuat flowchart , dimana dengan flowchart ini akan memudahkan
anda mempresentasikan hasil program yang anda buat, ya demikian kawan pengenalan
dari algoritma dan flowchart , semoga bisa bermanfaat buat teman teman
,salam sukses selalu
VII. PERINTAH SELEKSI
DALAM PASCAL
Bahasa pemrograman Pascal memiliki kemampuan untuk
melakukan pemilihan terhadap beberapa alternatif yang ada. Sebuah aksi atau
statemen akan dilaksanakan apabila sebuah kondisi terpenuhi. Pemilihan ini
tidak hanya berlaku untuk satu buah kondisi tetapi juga dapat beberapa kondisi.
A. Perintah Seleksi If … Then …
Kondisi merupakan ekspresi
yang bernilai logika yaitu bernilai benar atau salah. Jika pernyataan yang akan
dieksekusi oleh If ketika kondisi bernilai benar hanya berupa sebuah
pernyataan, maka dapat dituliskan dalam satu baris sebagai berikut :
If < kondisi 1 > Then < pernyataan >
Contoh
If nilai>75 Then Writeln(‘A’);
Jika pernyataan yang akan dieksekusi oleh If ketika kondisi
bernilai benar namun berupa beberapa pernyataan, maka di awal pernyataan harus
diawali dengan begin dan di akhir pernyataan yang terakhir harus diakhiri
dengan end. Struktur perintah seleksi tersebut adalah sebagai berikut :
If < kondisi 1 > Then
Begin
<
pernyataan_1 >
<
pernyataan_2 >
End;
Contoh
If nilai>75 Then
Begin
Writeln(‘A’);
Writeln(‘Anda Lulus’);
End;
B. Perintah Seleksi If … Then …
Else
Struktur perintah seleksi If … Then ... Else memungkin programmer melakukan spesifikasi
untuk menyatakan kondisi yang benar dan salah. Kondisi merupakan ekspresi yang
bernilai logika yaitu bernilai benar atau salah. Jika pernyataan yang akan
dieksekusi oleh If ketika kondisi bernilai benar hanya berupa sebuah pernyataan
:
Flowchart Perintah Seleksi If … Then … Else
Struktur
Perintah Seleksi If … Then … Else
If < kondisi 1 > Then
pernyataan
Else
Pernyataan;
Jika hanya
terdapat satu pernyataan pada kondisi pertama maka tidak menggunakan titik koma
diakhir pernyataan tersebut. Jika hanya ada satu pernyataan setelah else maka
diakhir pernyataan tersebut menggunakan titik koma.
Contoh
Membuat Program Kelulusan. Jika nilai lebih atau
sama dengan 60 maka cetak lulus. Jika tidak cetak tidak
lulus.
Flowchart
|
Program
|
|
If nilai>=60 Then
Writeln(’Lulus’)
Else
Writeln(’Tidak Lulus’);
|
Jika pernyataan yang akan dieksekusi oleh If
ketika kondisi bernilai benar dan berupa beberapa pernyataan, maka dapat
dituliskan sebagai berikut :
If < kondisi 1 > Then
Begin
Pernyataan_1
Pernyataan_2
End
Else
Begin
Pernyataan_1
Pernyataan_2
End;
Jika ada dua atau lebih pernyataan di dalam if …
then … else … maka harus diawali dengan Begin dan End. End Sebelum else tidak
menggunakan titik koma. Namun Pernyataan didalam begin dan end diakhiri dengan
titik koma. Sedangkan End terakhir menggunakan titik koma.
Contoh :
Membuat Program Kelulusan. Jika nilai lebih atau
sama dengan 60 maka cetak ’Lulus’ dan cetak ’Anda dapat sertifikat’. Jika tidak
cetak ’Tidak lulus’ dan cetak ’Anda tidak mendapat sertifikat’.
Flowchart
Program
If nilai>=60 Then
Begin
Writeln(’Lulus’);
Writeln(’Anda dapat Sertifikat’);
End;
Else
Begin
Writeln(’Tidak Lulus’);
Writeln(’Anda tidak dapat Sertifikat’)
End;
Berikut adalah struktur if ... then ... else ... jika
ada tiga kondisi atau lebih :
If < kondisi 1 > Then
Pernyataan
Else If
< kondisi 2 > Then
Pernyataan
Else
Pernyataan;
Selama menemukan else di dalam struktur if ... then … maka
pernyataan tidak diakhiri dengan titik koma atau jika didalamnya terdapat dua
pernyataan atau lebih dan menemukan else maka End juga tidak diakhiri dengan
titik koma.
Flowchart
|
Program
|
|
If
nilai > 85 Then
Writeln(‘A’)
Else
If nilai > 75 Then
Writeln(‘B’)
Else
If nilai > 60 Then
Writeln(‘C’)
Else
If nilai > 50 Then
Writeln(‘D’)
Else
Writeln(‘E’);
|
C. Perintah Seleksi Case - Of
Pernyataan case .. of merupakan perluasan dari pernyataan if. Untuk
pemilihan yang terdiri dari banyak kondisi, struktur if melakukan pengecekan
terhadap setiap kondisi, bila satu kondisi tidak terpenuhi baru akan
dilanjutkan pada kondisi yang berikutnya. Berbeda dengan pernyataan if, penyataan case
melakukan pengecekan dengan pemilihan kondisi yang sesuai parameter yang ada.
Pernyataan case dapat dituliskan dengan struktur sebagai berikut:
Case < kondisi > Of
Nilai_1
: Pernyataan_1;
Nilai_2 : Pernyataan_2;
Nilai_3
: Pernyataan_3;
…
Nilai_n : Pernyataan_n;
End ; { end dari case }
Nilai pada pernyataan case dapat
berupa konstanta, range dari konstanta yang
bukan bertipe real. Pada
program dibawah nilai berupa huruf.
Program nilai;
Var nil : Char ;
Begin
Write ('Nilai Numerik yang didapat :');
Readln (nil);
Case nil Of
'A': Writeln
('Sangat Baik’);
'B':
Writeln('Baik’);
'C':
Writeln('Cukup');
'D': Writeln('Kurang');
'E': Writeln('Sangat Kurang');
End;
End.
hasil :
Nilai Numerik yang didapat : B (Input)
Baik
Pada program dibawah nilai berupa angka.
Program Hari;
Var h : angka ;
Begin
Write
('Ini Angka :');
Readln (h);
Case h
Of
1:
Writeln ('Satu');
2:
Writeln('Dua');
3:
Writeln('Tiga');
4:
Writeln('Empat');
5:
Writeln('Lima');
End;
End.
hasil :
Ini Angka : 1
Satu
VIII. PERINTAH PERULANGAN
Perulangan adalah suatu proses
terhadap hal yang sama yang diulang beberapa kali sampai suatu kondisi atau
batas tertentu terpenuhi dan merupakan salah satu operasi dasar algoritma yang
sangat penting. Struktur perulangan
digunakan untuk mengulang sebagian rutin sehingga tidak perlu menulis ulang
rutin sebanyak pengulangan yang diinginkan. Hampir semua aplikasi untuk tujuan tertentu terdapat operasi dasar
pengulangan, bentuknya antara
lain For ... To ... Do, While … Do, Repeat Until …
A.
Perulangan For ... To ... Do
Merupakan konstruksi perulangan tanpa kondisi
(unconditional looping), artinya perintah-perintah yang ada di dalam badan perulangan
diulangi sejumlah kali yang dispesifikasikan oleh pemrogram. Jadi, jumlah perulangan sudah diketahui/
dapat dtentukan sebelum konstruksi pengulangan eksekusi. Nilai awal
pengulangan, kenaikan pengulangan dan nilai akhir pengulangan terdapat dalam
sintaks For.
Flowchart Struktur Perulangan
For ... To ... Do
Aturan penulisan For ... To … Do adalah sebagai berikut :
For Variabel:=NilaiAwal To NilaiAkhir
Do
Pernyataan;
Keterangan:
§
Variabel adalah variabel dengan tipe numerik yang akan
dipakai sebagai tempat menghitung proses pengulangan.
§
NilaiAwal adalah nilai awal dari variabel penghitung.
§
NilaiAkhir adalah nilai akhir dari variabel penghitung.
§
Selang adalah selang peningkatan atau penurunan dari
variabel penghitung. Jika positif, maka selangnya adalah peningkatan dan jika
negatif selangnya adalah penurunan.
§
Pernyataan digunakan untuk menuliskan baris program yang
akan diulang.
Berikut adalah contoh untuk menentukan barisan
bilangan 1, 2, … ,5 maka bilangan mempunyai nilai awal=1, nilai akhir = 5.
Flowchart
|
Program
|
|
For bilangan = 1 To 5 Do
Write(bilangan);
Output :
12345
|
Untuk
menentukan barisan bilangan 5,4,...,1 maka bilangan mempunyai nilai awal=5,
nilai akhir = 1.
Flowchart
|
Program
|
|
For bilangan = 5 DownTo 1 Do
Write(bilangan);
Output :
54321
|
Jika didalam perulangan for ada dua pernyataan
atau lebih maka struktur for adalah sebagai berikut :
For Variabel=NilaiAwal To NilaiAkhir
Do
Begin
Pernyataan_1;
Pernyataan_2;
…
Pernyataan_n;
End;
Contoh :
Mencetak angka 1 sampai dengan 3 yang berurutaan
dan diikuti oleh kalimat ‘Saya suka programming’
Flowchart
|
Program
|
|
For bilangan = 1 To 3 Do
Begin
Write(bilangan,’
‘);
Writeln(‘Saya
suka programming’);
End;
Output :
1 Saya suka
programming
2 Saya suka
programming
3 Saya suka
programming
|
B. Perulangan While ... Do
Perulangan While ... Do biasanya
dipakai apabila jumlah perulangan belum diketahui, dan nilai awal perulangan
harus diinisialisasi (diberi nilai) dahulu. Dalam program terdapat counter untuk
menaikkan nilai perulangan.
Flowchart Struktur Perulangan While ... Do sebagai
berikut :
Struktur perulangan While ... Do sebagai berikut :
<inisialisasi>
While
<kondisi perulangan> Do
Begin
<pernyataan>
<counter>
End;
Keterangan
:
§ Inisialisasi
untuk memberikan nilai awal
proses perulangan
§ While adalah pernyataan pengulangan selama kondisi benar.
§
Kondisi (bersifat opsional). Ekspresi numerik atau string
yang menghasilkan dua nilai logika benar atau salah.
§
Pernyataan digunakan untuk menuliskan baris program yang
akan diulang.
§
Counter untuk menaikkan nilai perulangan
§
Begin dan End untuk menyatakan terjadinya perulangan
Contoh :
Membuat program menampilkan angka satu sampai
lima.
Flowchart
|
Program
|
|
i:=1;
While
i<=5 Do
Begin
Write(i);
i:=i+1;
End;
Output :
12345
|
C. Perulangan Repeat Until ...
Struktur Repeat Until ... seperti perulangan While
... Do tetapi pemeriksaan kondisi berada di bawah. Perulangan Repeat Until ...biasanya
dipakai apabila jumlah perulangan belum diketahui, dan nilai awal perulangan
harus diinisialisasi (diberi nilai) dahulu. Dalam program terdapat counter
untuk menaikkan nilai pengulangan.
Flowchart Struktur Repeat Until ... adalah berikut
ini :
Struktur Repeat Until ... adalah berikut ini :
<inisialisasi>
Repeat
Begin
<counter>
<pernyataan>
End;
Until <kondisi perulangan>;
Keterangan
:
§ Inisialisasi
untuk memberikan nilai awal
proses perulangan
§ Repeat
Until adalah pernyataan
pengulangan selama kondisi benar.
§
Kondisi (bersifat opsional). Ekspresi numerik atau string
yang menghasilkan dua nilai logika benar atau salah. Operator kondisi
berlawanan dengan While ... Do.
§
Pernyataan digunakan untuk menuliskan baris program yang
akan diulang.
§
Counter untuk menaikkan nilai perulangan
§
Begin dan End untuk menyatakan terjadinya perulangan
Contoh :
Membuat program menampilkan angka satu sampai
lima.
Flowchart
|
Program
|
|
i:=1;
Repeat
Begin
Write(i);
i:=i+1;
End;
Until i>5;
Output :
12345
|
IX. ARRAY
Array (larik) adalah sebuah
variabel yang dapat menyimpan lebih dari satu nilai sejenis (memilikii tipe
data sama). Hal ini berbeda dengan variabel biasa yang hanya mampu menampung
satu buah nilai. Setiap nilai yang disimpan di dalam array disebut dengan
elemen array, sedangkan nilai urut yang digunakan untuk mengakses elemennya
disebut dengan indeks array. Sebagai contoh, misalkan terdapat array A yang
memiliki 10 buah elemen nilai yang bertipe integer, maka dapat dipresentasikan
sebagai berikut :
Gambar
1.1 Komponen Array (sumber :Rahardjo)
Setiap elemen array di atas
menyimpan nilai bertipe integer dan akan menempati alamat memori yang berbeda,
hal ini akan menyebabkan array tersebut memiliki ukuran 40 byte, yang berasal
dari 10 x 4. Nilai 10 menunjukkan banyaknya elemen array sedangkan nilai 4
merupakan ukuran dari tipe data integer (dalam 32 bit).
1)
Deklarasi
Array
Sama seperti variabel lain,
array juga dideklarasikan di dalam bagian deklarasi variabel. Bila akan
didefinisikan sebagai tipe bentukan, maka array juga akan dideklarasikan di
bagian definisi tipe (di bawah kata kunci type). Dalam bahasa Pascal,
pendeklarasian array dilakukan dengan menggunakan kata kunci array dan tipe
data yang akan disimpan di dalamnya, selai itu juga harus disertai dengan
batas-batas indeksnya yang diapit oleh tanda bracket ([ ]). Berikut ini
bentuk umum pendeklarasian array.
NamaArray : array [Indeks Awal . .
IndeksAkhir] of tipe data;
Gambar 1.2 Bentuk Umum
Pendeklarasian array(sumber:Rahardjo)
Sebagai contoh,
apabila ingin mendeklarasikan array dengan nama A yang berisi 10 buah elemen
bertipe integer, maka harus mendeklarasikannya dengan cara berikut.
Var
A : array [1 . . 10] of integer;
Pada kode
tersebut, indeks array diulai dari satu. Perlu diperhatikan bahwa bahasa Pascal
berbeda dengan bahasa C yang indeks array-nya selalu dimulai dari nol. Pada
bahasa Pascal, indeks array dapat dimulai dari bilangan berapapun. Selain itu,
indeks array juga dapat bertipe karakter maupun tipe enumerasi. Berikut ini
contoh-contoh kode yang dapat digunakan untuk mendeklarasikan 10 buah elemen
array bertipe integer sebagai pengganti kode di atas.
Var
A1 : array [0 . . 9] of integer;
A2 : array [5 . . 15] of integer;
A3 : array [’a’ . . ’j’] of integer;
A4 : arrat [’A’ . . ’J’] of integer;
Dalam bahasa
Pascal, tersedia dua buah fungsi yang dapat digunakan untuk mengambil indeks
terendah dan tertinggi dari sebuah array, yaitu fungsi Low dan High. Adapun
parameter dari kedua fungsi tersebut adalah nama array yang akan dicari
indeksnya. Perhatikan contoh kode berikut.
Var
A: array [1 . . 100] of integer;
terendah, tertinggi : integer;
Begin
terendah := Low (A); {akan
menghasilkan nilai 1}
tertinggi := High (A) {akan
menghasilkan nilai 100}
. .
end.
1)
Mengakses Elemen Array
Setelah
mengetahui cara pendeklarasian array, selanjutnya harus mengetahui bagaimana
cara untuk memanipulasi array tersebut. Langkah pertama yang harus dilakukan
adalah mengisikan nilai ke dalam elemen-elemen array bersangkutan. Bentuk umum
untuk pengisian elemen array adalah sebagai berikut.
NamaArray
[indeks] := nilai;
Gambar
1.3 Bentuk Umum Pengisian Elemen Array(sumber:Rahardjo)
Untuk lebih memahaminya, coba perhatikan contoh
kode di bawah ini.
Var
A: array [1..100] of integer;
Begin
A[1] :=1; {mengisi elemen pertama dengan nilai 1}
A[2] :=2; {mengisi elemen kedua dengan niali 2}
A[3] :=3; {mengisi elemen ketiga dengan niali 3}
....
A[100] :=100; {mengisi elemen keseratus dengan nilai 100}
end.
Kode
tersebut akan melakukan pengisian 100 elemen array dengan nilai 1 sampai 100
sehingga kode tersebut akan lebih sederhana apabila dituliskan dengan
menggunakan struktur pengulangan seperti yang terlihat pada kode berikut.
Var
A: array [1..100] of integer;
i : integer;
Begin
For i:= 1 to 100 do
Begin
A[1] := i;
end;
End.
2) Mengapa Harus Menggunakan Array
Apabila akan
membuat program untuk menyimpan sekumpulan data, misalnya data-data hasil
penelitian yang berupa bilangan, dimana jumlah dari data tersebut puluhan,
ratusan atau bahkan ribuan, apakah akan menggunakan variabel sebanyak data yang
ada? Jawabannya tentu tidak, karena hal tersebut merupakan hal yang sangat
tidak efisien. Sebagai contoh, asumsikan bahwa banyak data tersebut.
Var
N1, n2, n3, n4, n5, n6, n7, n8, n9, n10 : real;
Begin
Writeln(’masukkan data ke-1 : ’); readln(n1);
Writeln(’masukkan data ke-2 : ’); readln(n2);
Writeln(’masukkan data ke-3 : ’);
readln(n3);
Writeln(’masukkan data ke-4 : ’);
readln(n4);
Writeln(’masukkan data ke-5 : ’);
readln(n5);
Writeln(’masukkan data ke-6 : ’);
readln(n6);
Writeln(’masukkan data ke-7 : ’);
readln(n7);
Writeln(’masukkan data ke-8 : ’);
readln(n8);
Writeln(’masukkan data ke-9 : ’);
readln(n9);
Writeln(’masukkan data ke-10 : ’);
readln(n10);
End.
Hal ini
tentu akan merepotkan diri. Apabila dilihat, program di atas memang masih
pendek karena datanya hanya 10, bagaimana bila ratusan ata bahkan ribuan? Untuk mengatasi masalah ini, seharusnya menggunakan array untuk menyimpan
data-data tersebut sehingga program akan jauh lebih sederhana dan mudah dalam
pengerjaannya. Berikut ini perbaikan program di atas apabila kita menampung
data-datanya ke dalam sebuah array.
Const max = 10;
Var
n : array [1 . . max] of real;
i : integer;
begin
for i:= 1 to max do
writeln(’Masukkan data ke-’, i,’
: ’); readln(n[i]);
end.
Apabila
ternyata data berjumlah 100 atau 1000, maka kita hanya perlu mengganti nilai
dari konstanta max di atas dengan
nilai yang sesuai. Alasan seperti inilah yang menyebabkan kita perlu untuk
menggunakan array.
3) Array Sebagai Tipe Data Bentukan
Array juga
dapat digunakan sebagai tipe data bentukan, yaitu dengan cara
mendeklarasikannya di bagian definisi tipe data, yaitu bagian yang diawali
dengan kata kunci type.
Type
Bilangan = array [1 . . 100] of integer;
Vokal = array [1 . . 5] of char;
Setelah
selesai mendefinisikan array tersebut, maka dapat menggunakannya untuk
mendeklarasikan variabel lain di dalam program. Berikut ini contoh
pendeklarasian variabel yang menggunakan tipe bentukan berupa array.
Var
X : bilangan;
Vowel : vokal;
Pada ontoh
di atas mendeklarasikan variabel dengan nama x yang bertipe Bilangan, sedangkan
variabel vowel bertipe vokal. Hal ini menyebabkan variabel tersebut juga dapat
diperlukan sebagai array. Berikut ini contoh kode yang menunjukkan penggunaan
variabel-variabel tersebut.
Begin
X[1[ := 1;
X[2] := 2;
. . .
Vowel [1] := ’a’;
Vowel [2] := ’i’;
. . .
End.
4) Array Konstan
Nilai yang
terkandung di dalam sebuah array dapat bernilai konstan, artinya nilai-nilai
tersebut tidak dapat diubah. Untuk melakukan hal tersebut, kita harus
mendeklarasikan array bersangkutan dengan kata kunci const. Berikut ini bentuk umum pendeklarasiannya.
Const
NamaArray : array [indexAwal . . indeksAkhir] of
tipe_data = Nila1, nilai2, ...);
Gambar 1.4 Bentuk Umum Pendeklarasian Array Konstan
(sumber:Rahardjo)
Perlu diperhatikan bahwa banyaknya nilai konstan yang dituliskan diatas
harus sesuai dengan banyaknya elemen array yang didefinisikan. Sebagai contoh,
apabila ingin mendeklarasikan array dengan jumlah elemen 5, maka nilai konstan
yang diisikan juga haruslah berjumlah 5. Perhatikan contoh kode berikut.
Const
A : array [1 . . 5] of char = (’A’ , ’B’ , ’C’ , ’D’ ,
’E’);
Oleh karena
array A di atas bersifat konstan, maka kita tidak dapat menggantikan nilainya
dengan nilai lain, seperti yang ditunjukkan oleh kode di bawah ini.
A [1] :=
’V’ ; {SALAH, karena elemen A [1] selalu bernilai ’A’}
A [2] := ’W’
; {SALAH, karena elemen A [2] selalu bernilai ’B’}
Hal ini menunjukkan
bahwa array konstan nilainya hanya dapat dibaca, namun tidak untuk diubah. Agar
lebih memahami konsepnya, perhatikan contoh implementasi dari array konstan
berikut ini.
Function HariSekarang : string;
Const
Hari : array[0 . .6] of string[6] =
(’Minggu’, ’Senin’, ’Selasa’,
’Rabu’, ’Kamis’, ’Jumat’,
’Sabtu’);
var
thn, bln, hr, indeksHari : word;
begin
getDate(thn, bln, hr, indeksHari);
HariSekarang := Hari [indeksHari];
End;
Pada contoh
di atas membuat sebuah fungsi untuk mendapatkan nama hari sesuai dengan tanggal
sekarang (hari ini). Berikut ini contoh program lain yang akan menunjukkan
penggunaan array konstan.
Program ArrayKonstan;
Uses crt;
Const
Bulan : array [1 . . 12] of string =
(’Januari’, ’Februari’,
’Maret’, ’April’, ’Mei’, ’Juni’, ’Juli’, ’Agustus’,
’September’,
’Oktober’, ’Nopember’, ’Desember’);
var
noBulan : integer;
begin
clrscr;
write(’Masukkan nomor bulan :’); readln(noBulan);
write(’Nama bulan ke-’, noBulan,
’adalah ’, Bulan[noBulan]);
readln;
end.
Contoh hasil yang akan diberikan oleh
program di atas adalah sebagai berikut.
Masukkan nomor bulan : 3
Nama bulan ke-3 adalah Maret
5) Array Sebagai
Parameter
Pada kasus-kasus pemrograman
tertentu kita juga dituntut untuk menggunakan array sebagai parameter sebuah
prosedur ataupun fungsi. Hal ini sering kita jumpai pada saat kita akan
melakukan pencarian maupun pengurutan dari sekumpulan data. Berikut ini contoh
penggunaan array di dalam sebuah prosedur.
Type
Bilangan = array[1..100] of integer;
Procedure inputArray[a:bilangan; N:integer);
Var
i : integer;
Begin
For i := 1 to N do
Write (’masukkan elemen array ke-’, i); readln(A[i]);
End;
Pada contoh di atas kita te;ah
membuat prosedur yang memiliki parameter bertipe array. Prosedur tersebut akan
digunakan untuk melakukan pengisian elemen array sebanyak N, dimana 1£ N £ 100.
Perlu
diperhatikan bahwa array yang dilewatkan sebagai parameter ini harus
dideklarasikan terlebih dahulu. Berikut ini contoh penggunaan array yang tidak
diperbolehkan oleh kompiler.
Procedure InputArray [A:array[1..100] of integer; N); {salah}
Berikut ini kode yang merupakan perbaikan
dari kode sebelumnya.
Procedure InputArray [A:array of integer; N); {benar}
Untuk lebih
memahaminya, perhatikan contoh program di bawah ini dimana kita akan
menggunakan array sebagai parameter.
Program ParamArray;
Uses crt;
Const max = 100;]type
Bilangan = array [1 . . max] of integer;
Procedure InputArray[A:bilangan; N:integer);
Var
i:integer;
Begin
Writeln (’Memasukkan data :’);
For i : 1 to N do
Write(’Masukkan nilai A[’, i, ’] : ’); readln(A[i]);
End;
Procedure OutputArray (A:bilangan; N:integer);
Var
i:integer;
begin
writeln(’Menampilkan data :’);
for i : 1 to N do
write (’A[’, i, ’]
= ’, A[i]);
end;
var
Arr:bilangan;
count:integer;
Begin
Clrscr;
Write (’Masukkan banyaknya elemen array :’);
readln(count);
Writeln;
OutputArray (Arr, count);
Readln;
End.
Contoh hasil yang akan diberikan dari
program di atas adalah sebagai berikut.
Masukkan banyaknya elemen array : 3
Memasukkan data :
Masukkan nilai A[1] : 10
Masukkan nilai A[2] : 20
Masukkan nilai A[3] : 30
Menampilkan data :
A[1] = 10
A[2] = 20
A[3] = 30
Pada gambar di atas, array
memiliki 3 buah baris dan 4 buah kolom, sehingga jumlah elemennya adalah 3x4 =
12. Perlu diketahui bahwa keadaan tersebut sebenarnya hanya merupakan keadaan
logik yang bertujuan untuk mempermudah pemahaman array dua dimensi. Pada
kenyataannya, pengalamatan memori di komputer dari array dua dimensi tetap akan
dipresentasikan dengan sebuah deretan larik yang memanjang (tidak berbentuk
baris dan kolom). Pendeklarasian array dua dimensi di dalam bahasa Pascal
dilakukan melalui bentuk umum di bawah ini.
NamaArray : array [1 .
. banyakbaris, 1 . . banyakkolom] of tipe_data;
Sebagai contoh, apabila kita
akan mendeklarasikan array dua dimensi dengan 3 buah baris dan 4 buah kolom dimana
setiap elemennya bertipe integer, maka kita dapat menuliskan kode seperti
berikut.
Array2D : array [1 . .
3, 1 . . 4] of integer;
Untuk melakukan pengaksesan
terhadap elemen-elemennya, kita harus menuliskan indeks baris dan kolomnya.
Sebagai contoh, apabila kita ingin mengisikan nilai 100 ke dalam elemen yang
terdapat pada baris ke-2 kolom ke-3, maka kita harus menuliskannya sebagai
berikut.
Array2D [2, 3] : =
100;
Berikut ini contoh program
yang menunjukkan penggunaan array dua dimensi. Di sini kita akan membuat
program yang dapat menjumlahkan dua buah matriks A dan B yang masing-masing
berordo 2 x 3 (memiliki 2 baris dan 3 kolom).
Program JumlahMatriks;
Uses crt;
Const
Jbaris = 2;
Jkolom = 3;
Type
Matriks23 = array [1 . . Jbaris, 1 . . Jkolom] of integer;
Var
A,B,C : Matriks23;
j, k : integer;
begin
clrscr;
{mengisikan matriks A}
writeln (’Matriks A’);
for j: = 1 to Jbaris do begin
for k: = 1 to Jkolom do begin
write(’A[’, j, ’ ,
’ , k, ’] = ‚); readln(A[j, k]);
end;
writeln;
end;
writeln;
{mengisikan matriks B}
writeln(’Matriks B’);
for j: = 1 to Jbaris do begin
for k: = 1 to Jkolom do begin
write(’B[’, j, ’ ,
’ , k, ’] = ‚); readln(B[j, k]);
end;
writeln;
end;
writeln;
{melakukan penjumlahan matriks A dan B sekaligus
menampilkan hasilnya ke layar}
writeln(’Hail Penjumlahan’);
for j: = 1 to Jbaris do begin
for k: = 1 to Jkolom do begin
C[j, k] : = A[j, k] + B[j, k];
write(’C[’, j, ’ ,
’ , k, ’] = ‚); readln(C[j, k]);
end;
writeln;
end;
readln;
end.
Contoh hasil yang akan diberikan oleh
program di atas adalah sebagai berikut.
Matriks A
A[1, 1] = 1
A[1, 2] = 2
A[1, 3] = 3
A[2, 1] = 4
A[2, 2] = 5
A[2, 3] = 6
Matriks B
B[1, 1] = 3
B[1, 2] = 2
B[1, 3] = 1
B[2, 1] = 6
B[2, 2] = 5
B[2, 3] = 4
Hasil
Penjumlahan
C[1, 1] = 4
C[1, 2] = 4
C[1, 3] = 4
C[2, 1] = 10
C[2, 2] = 10
C[2, 3] = 10
X. PROSEDUR DAN FUNGSI
A. Procedure
1)
Konsep Pemrograman Moduler
Dalam membuat program besar
dan kompleks, si pemrogram perlu memecah program menjadi beberapa sub program
yang lebih kecil. Tiap sub program kadangkala cukup independen dari program
utama sehingga programnya dapat dirancang tanpa mempertimbangkan konteks tempat
di mana sub program tersebut digunakan. Tiap sub program, yang disebut modul
dapat dirancang oleh pemrogram selain dari orang yang mengembangkan program
utama. Modul yang sudah ditulis dapat dipasang ke program lain yang
membutuhkannya. Teknik pemrograman seperti ini dinamakan teknik pemrograman
modular. Beberapa bahasa pemrograman termasuk Pascal menamakan modul dengan
sebutan rutin, prosedur atau fungsi.
Modularisasi program
memberikan 2 (dua) keuntungan. Pertama, untuk aktivitas yang harus dilakukan
lebih dari satu kali, modularisasi menghindari penulisan teks program yang sama
secara berulangkali.Di sini, modul program cukup ditulis sekali saja, lalu
modul tersebut dapat diakses dari bagian lain di dalam program.Di sini,
penggunaan modul program dapat mengurangi panjang program.
Keuntungan kedua dari
modularisasi adalah kemudahan menulis dan menemukan kesalahan program.
Kemudahan menulis akan sangat berguna pada masalah besar yang dikerjakan oleh
satu tim pemrogram yang beranggotakan beberapa orang. Masalah yang akan
diprogram dipecah menjadi beberapa masalah yang lebih keil. Setiap masalah yang
lebih kecl tersebut ditulis ke dalam modul individual yang spesifik dan
dikerjakan oleh orang yang berbeda. Seluruh modul diintegrasikan menjadi satu
buah program yang lengkap. Program modular menjai lebih mudah untuk dibaca dan
dimengerti. Program yang tidak modular sulit dipahami, khususnya kalau program
tersebut panjang atau terdiri dari puluhan, ratusan atau ribuan baris intruksi.
Karena setiap modul melakukan
aktivitas specsifik, maka apabila terdapat kesalahan di dalam program,
kesalahan tersebut dapat dilokalisisr pada modul yang bersangkutan. Kebanyakan
program komputer dapat ditulis modular, meskipun program tersebut tidak
melibatkan eksekusi yang berulang dari aktivitas yang sama. Pemecahan program
menjadi modul-modul individul umumnya dianggap sebagai praktek pemrograman yang
baik.
Terdapat dua jenis modul
program, pertama prosedur (procedure) dan kedua fungsi
(function). Struktur setiap
modul tersebut pada hakikatnya sama dengan struktur algoritma biasa, yaitu ada
bagian judul (header) yang berisi
nama modul, bagian deklarasi, dan bagian badan (body) program yang berisi instruksi yang akan dilaksanakan.
2) Definisi Prosedur
Prosedur adalah modul program
yang mengerjakan tugas/aktivitas yang spesifik dan menghasilkan suatu efek
netto . Suatu efek netto diketahui dengan membandingkan keadaan awal dan
keadaan akhir pada pelaksanaan prosedur. Oleh karena itu, pada prosedur kita
harus mendefinisikan keadaan awal sebelum rangkaian instruksi di dalam prosedur
dilaksanakan dan keadaan akhir yang diharapkan setelah rangkaian instruksi
dilaksanakan.
3)
Pendefinisian
Prosedur
Pada dasarnya, struktur
prosedur sama dengan struktur algoritma yang sudah dikenal, yaitu : bagian judul
yang terdiri atas nama prosedur dan komentar yang menjelaskan yang menjelaskan
spesifikasi prosedur tersebut, bagian deklarasi dan badan
prosedur. Setiap prosedur memiliki nama yang unik. Nama prosedur sebaiknya
diawali dengan kata kerja karena prosedur berisi suatu aktivitas, misalnya
HitungLuas, Tukar, CariMaks, Inisialisasi, AktifkanMenu dan lain sebagainya.
Notasi Algoritma yang
digunakan untuk mendefinisikan struktur prosedur adalah :
Procedure NamaProsedur
{Spesifikasi prosedur,
berisi penjelasan tentang apa yang dilakukan prosedur ini}
{K. Awal : keadaan sebelum
prosedur dilaksanakan}
{K. Akhir : keadaan setelah
prosedur dilaksanakan}
Deklarasi
{semua nama yang
dipakai dalam prosedur dan hanya berlaku lokal di dalam prosedur yang
didefinisikan di sini}
Deskripsi
{badan prosedur, berisi
kumpulan instruksi}
Gambar 3.1 Bentuk Umum
Pendefinisian Prosedur(sumber:Rahardjo)
Contoh
Tuliskan prosedur mencetak string ’Hello World!’.
Penyelesaian
Procedure CetakHalo
{mencetak string ’Hello World!’ ke piranti keluaran}
{K. Awal : sembarang}
{K. Akhir : string ’Hello World!’ tercetak}
Deklarasi
{tidak ada}
Deskripsi
Write (’[Hello World!’)
Contoh
Tuliskan
prosedur untuk menghitung luas segitiga dengan rumus L=(alas x tinggi)/2.
Panjang alas dan tinggi segitiga dibaca dari dalam prosedur. Luas segitiga
dicetak ke piranti keluaran.
Penyelesaian
Procedure HitungLuasSegitiga
{menghitung luas segitiga dengan rumus L=(alas x
tinggi)/2
{K. Awal : sembarang}
{K. Akhir : L berisi luas segitiga. Nilai L dicetak ke
piranti keluaran}
Deklarasi
Alas, tinggi, luas : real
Deskripsi
Read (alas, tinggi)
Luas ß (alas*tinggi)/2
Write (L)
4)
Pemanggilan Prosedur
Prosedur
bukan program yang berdiri sendiri, jadi tidak dapat dieksekusi secara
langsung. Ini berarti, instruksi-instruksi di dalam prosedur baru dapat
dilaksanakan hanya bila prosedur tersebut diakses/dipanggil. Prosedur diakses
dengan cara m,emanggil namanya dan program pemanggil (program utama atau modul
program lain) :
NamaProsedur
Gambar
2.2 Pemanggilan Prosedur(sumber:Rahardjo)
Ketika
NamaProsedur dipanggil, kendali program berpindah secara otomatis ke prosedur
tersebut. Instruksi di dalam badan prosedur dilaksanakan. Setelah semua
instruksi selesai dilaksanakan, kendali program berpindah secara otomatis ke
instruksi sesudah pemanggilan prosedur.
Di dalam
program pemanggil, kita harus mendeklarasikan prototype prosedur di
dalam bagian deklarasi. Prototype prosedur hanya berisi bagian judul
prosedur. Tujuan pendeklarasian prototype program adalah supaya program
pemanggil “mengenal“ nama prosedur tersebut serta cara mengaksesnya.
Contoh
Penyelesaian
{program utama untuk mencetak string ’Halo!’}
Deklarasi
Procedure CetakHalo
{mencetak string ’Halo!’ ke piranti keluaran}
Deskripsi
CetakHalo {panggil prosedur CetakHalo}
Contoh
Tuliskan contoh
program utama untuk memanggil prosedur HitungLuasSegitiga.
Penyelesaian
Algoritma Luas_Segitiga
{program uatama untuk menghitung luas segitiga}
Deklarasi
Prcedure HitungLuasSegitiga
{menghitung luas segitiga dengan rumus L=(alas x
tinggi)/2}
Deskripsi
Write(’Menghitung Luas Segitiga’)
HitungLuasSegitiga
Write (’Selesai’)
B. Fungsi
1) Definisi Fungsi
Definisi fungsi sebenarnya
sama dengan sebuah prosedur. Perbedaannya, pada fungsi terdapat pengembalian
nilai, sehingga pada saat pemanggilan, fungsi dapat langsung digunakan untuk
mengisikan sebuah ekspresi.
2) Pendefinisian Fungsi
Berbeda dengan prosedur yang
didefinisikan dengan kata kunci function.
Berikut ini bentuk umum dari pendefinisian sebuah fungsi.
Function
NamaFungsi (parameter1 : tipe_data,
paraneter2:
tipe_data, . . .) : tipe_data;
const
{daftar konstanta lokal}
Var
{daftar pendeklarasian variabel lokal}
Begin
{kode program yang akan ditulis}
. .
.
NamaFungsi
:= nilai_kembalian; {ingat baris ini}
End;
Gambar 4.1
Bentuk Umum Pendefinisian Fungsi
Berikut ini contoh pendefinisian fungsi
sederhana yang akan mengalikan dua buah bilangan bulat.
Function Kali (x, y : integer) : longint;
Begin
Kali := x * y;
End;
Kita juga dapat
mendeklarasikan variabel lokal untuk menyimpan nilai sebelum akhirnya dikembalikan
lagi ke fungsi, misalnya seperti kode di bawah ini.
Function Kali (x, y : integer) : longint;
Var
Hasil : longint;
Begin
Hasil := x * y;
Kali := Hasil;
End;
3)
Pemanggilan
fungsi
Fungsi diakses
dengan cara memanggil namanya dari program pemanggil, diikuti dengan daftar
parameter aktual (bila ada). Oleh karena fungsi menghasilkan sebuah nilai maka
pada saat pemanggilannya juga dapat ditampung ke dalam suatu variabel. Berikut
ini contoh pemanggilan fungsi di atas.
Var
A : longint;
Begin
{memanggil fungsi Kali dan
menyimpan nilainya ke dalam variabel A)
A := Kali (10, 5);
. . .
End.
4) Parameter
Parameter
merupakan suatu nilai atau referensi yang dilewatkan ke dalam rutin tertentu
dan kehadirannya akan mempengaruhi proses maupun nilai yang terdapat di dalam
rutin itu sendiri. Parameter ditempatkan di dalam tanda kurung setelah nama
rutin bersangkutan. Suatu fungsi umumnya mempunyai parameter. Namun bisa saja
suatu fungsi tidak memiliki paramater. Setiap parameter yang dilewatkan harus
memiliki tipe data tersendiri yang dapat berupa dari tipe dasar maupun bentukan
seperti array, record atau pointer. Untuk mengetahui arti parameter, perhatikan
fungsi matematika di bawah ini.
f (x) = 2x2
+ 5x – 3
Bila x=1, maka f akan mengembalikan nilai
4, yang berasal dari
f (1) = 2(1)2
+ 5(1) – 3 = 2 + 5 – 3 = 4
Bila x=2, maka f akan mengembalikan nilai 15, yang
berasal dari
f (2) = 2(2)2
+ 5(2) – 3 = 8 + 10 – 3 = 15
Dari ilustrasi tersebut terlihat jelas
bahwa hasil nilai dari fungsi f ditentukan oleh besarnya nilai x, sehingga x
disebut sebagai parameter dari fungsi f.
XI. RECORD
1)
Definisi Record
Record adalah jenis tipe data
terstruktur yang berisi beberapa data, yang masing-masing dapat berlainan tipe.
2) Mendeklarasikan
Record
Suatu tipe record dideklarasikan dengan bentuk
sebagai berikut :
RECORD Gambar 2.1 Pendeklarasian
Record
Daftar_field_1 :
tipe_1; (sumber:Kadir)
Daftar_field_2 : tipe_2;
. . .
daftar_field_n : tipe_n;
END
Masing-masing
daftar_field dapat berupa satu atau beberapa nama pengenal dan masing-masing
dinamakan field. Bila daftar_field berisi lebih dari satu field,
antar field perlu dipisahkan dengan koma. Masing-masing tipe dapat berupa tipe
data apa saja termasuk array.
Berikut contoh pendeklarasian record :
Type
RecBarang = Record
Nama : String;
Kualitas : Char;
Harga : LongInt
End;
Var
Barang : RecBarang;
Dengan mendeklarasikan seperti di atas,
Barang akan mengandung tiga buah field, yaitu :
-
Nama,
-
Kualitas,
-
Harga.
Sebagai contoh :
Barang.Nama
Berarti “field Nama dari variabel
record bernama Barang“.
Contoh penugasan nilai ke field tersebut :
Barang.Nama := ’Ubin TISKA 20x20’;
Dengan cara seperti di atas, field Nama
dari record Barang berisi string ’Ubin TISKA 20x20’.
Isi dari suatu field ditampilkan dengan
menggunakan Write atau Writeln.
Contoh :
Writeln
(Barang.Nama);
Merupakan perintah untuk menampilkan isi
field Nama dari record Barang. Contoh program yang
memberikan gambaran pendeklarasian record, pengisian terhadap field-field serta
menampilkan isi masing-masing field dapat dilihat di bawah ini.
Program Rec1;
Uses crt;
Type
RecBarang
= Record
Nama : String[25];
Kualitas : Char;
Harga : LongInt
End;
Var
Barang :
RecBarang; {variabel
bertipe record}
Begin
Clrscr;
{Penugasan nilai terhadap field-field}
Barang.Nama := ’Ubin TISKA 20x20’;
Barang.Kualitas := ’A’;
Barang.Harga := 14000;
{menampilkan isi field}
writeln (’Nama Barang :
’, Barang.Nama);
writeln (’Kualitas :
’, Barang.Kualitas);
writeln (’Harga :
’, Barang.Harga);
Dengan adanya penugasan
Barang2 := Barang1;
maka semua field pada record Barang2 akan
berisi recrod Barang1. Hasil dari program di atas :
5)
Record Di Dalam Record
Mungkin saja sebuah record berisi record. Sebagai
gambaran hal ini, perhatikan deklarasi berikut :
RecTanggal = Record
Tanggal,
Bulan,
Tahun :Integer
End;
RecPegawai = Record
Nomor : LongInt;
Nama : String [35];
TglLahir : RecTanggal;
Gaji : LongInt
End;
Tampak bahwa
tipe record bernama RecPegawai berisi record yang lain (RecTanggal).
Hal yang menarik
yang perlu diperhatikan adalah cara mengakses field seperti Tanggal, Bulan dan
Tahun. Notasi yang diperlukan adalah sebagai berikut.
Nama_variabel.TglLahir.Tanggal
Nama_variabel.TglLahir.Bulan
Nama_variabel.TglLahir.Tahun
Praktekkan program
berikut, untuk mencoba pembuatan record dengan bentuk sepert di atas.
Program Rec3;
Uses crt;
Type
RecTanggal = Record
Tanggal,
Bulan,
Tahun : Integer
End;
RecPegawai = Record
Nomor : LongInt;
Nama : string [35];
TglLahir : RecTanggal;
Gaji : longInt
End;
Var
DataPeg : RecPegawai; {variabel betipe record}
Begin
Clrscr;
Penugasan nilai terhadap field-fiedl}
DataPeg.Nomor := 56789;
DataPeg.Nama := ’Badu’;
DataPeg.TglLahir.Tanggal := 24;
DataPeg.TglLahir.Bulan := 12;
DataPeg.TglLahir.Tahun := 1972;
DataPeg.Gaji := 750000;
{menampilkan isi field}
Writeln (’Nama Pegawai : ’, DataPeg.Nama);
Writeln (’Tanggal Lahir : ’, DataPeg.TglLahir.Tanggal,
’/’,
DataPeg.TglLahir.Bulan,
’/’,
DataPeg.TglLahir.Tahun);
Readln
End.
Hasil dari program di
atas adalah sebagai berikut :
Nama Pegawai :
Badu
Tanggal Lahir :
24 / 12 / 1972
6) Pernyataan With
Untuk menyederhanakan
notasi seperti :
DataPeg.TglLahir.Tanggal
Turbo Pascal menyediakan pernyataan WITH. Bentuk
pernyataan ini adalah sebagai berikut :
With nama_record do
pernyataan
Gambar 2.3 Bentuk Umum Pernyataan
With(sumber:Kadir)
Pada bentuk ini, field-field
yang terletak pada bagian pernyataan dapat disebutkan tanpa perlu menyertakan
lagi nama record dan tanda titik. Untuk lebih jelasnya, perhatikan program
berikut yang merupakan alternatif lain dari program di atas.
Program Rec4;
Uses crt;
Type
RecBarang = Record
Nama : String [25];
Kualitas : Char;
Harga : LongInt
End;
Var
Barang : RecBarang; {variabel bertipe record}
Begin
Clrscr;
{penugasan nilai terhadap field-field}
With Barang do
Begin
Nama := ’Ubin TISKA 20x20’;
Writeln (’Nama Barang :
’, Nama);
Writeln (’Kualitas :’,
Kualitas);
Writeln (’Harga :’,
Harga);
End;
Readln
End.
Bila suatu record memiliki record lain, pernyataan
With dapat diikuti dengan with yang lain. Sebagai contoh, program di atas
ditulis menjadi :
Program Rec5;
Uses crt;
Type
RecTanggal = Record
Tanggal,
Bulan,
Tahun : Integer
End;
RecPegawai = Record
Nomor : LongInt;
Nama : string [35];
TglLahir : RecTanggal;
Gaji : LongInt
End;
Var
DataPeg : RecPegawai; {variabel
bertipe record}
Begin
Clrscr;
{Penugasan nilai terhadap field-field}
With DataPeg do
With TglLahir do
Begin
Nomor :=
56789;
Nama :=
’Badu’;
Tanggal := 24;
Bulan :=
12;
Tahun :=
1972;
Gaji :=
750000;
End;
{menampilkan isi field}
With DataPeg do
With TglLahir do
Begin
Writeln (’Nama Pegawai :’, DataPeg.Nama);
Writeln (’Tanggal lahir :’, DataPeg.TglLahir.Tanggal,
’/’, DataPeg.TglLahir.Bulan
’/’, DataPeg.TglLahir.Tahun)
End;
Readln
End.
Pernyataan seperti :
With DataPeg do
With TglLahir do
Dapat ditulis menjadi :
With
DataPeg, TglLahir do
dengan antar nama record dipisahkan oleh tanda koma.
Contoh program :
Program Rec6;
Uses crt;
Type
RecTanggal = Record
Tanggal,
Bulan,
Tahun : Integer
End;
RecPegawai = Record
Nomor : LongInt;
Nama : string [35];
TglLahir : RecTanggal;
Gaji : LongInt
End;
Var
DataPeg : RecPegawai; {variabel
bertipe record}
Begin
Clrscr;
{Penugasan nilai terhadap field-field}
With DataPeg, TglLahir do
Begin
Nomor :=
56789;
Nama :=
’Badu’;
Tanggal := 24;
Bulan :=
12;
Tahun :=
1972;
Gaji :=
750000;
End;
{menampilkan isi field}
With DataPeg, TglLahir do
Begin
Writeln (’Nama Pegawai :’, DataPeg.Nama);
Writeln (’Tanggal lahir :’, DataPeg.TglLahir.Tanggal,
’/’, DataPeg.TglLahir.Bulan
’/’, DataPeg.TglLahir.Tahun)
End;
Readln
End.
7)
Array Record
Elemen
suatu array juga bisa berupa record. Sebagai contoh dapat dilihat di bawah ini.
Const
Jum_Maks =
20;
Type
RecBarang =
Record
Nama : String [25];
Kualitas : Char;
Harga : LongInt
End;
TabelBarang
= Array [ 1 . . Jum_Maks] of RecBarang;
Var
DafBarang :
TabelBarang; {array record}
Pada
contoh di atas, DafBarang adalah array yang maksimum berisi 20 buah elemen
bertipe record.
Untuk
mengakses suatu field, kita perlu menggunakan notasi :
DafBarang [indeks].NamaField
Berikut contoh
program Array Record.
Program Rec7;
Uses Crt;
Const
Jum_Maks = 20; {jumlah maksimal jenis baramg}
Type
RecBarang = Record
Nama : string [25];
Kualitas : char;
Harga : longInt
End;
TabelBarang
= Array [ 1 . . Jum_Maks] of RecBarang;
Var
DafBarang :
TabelBarang; {array record}
JumBarang :
Integer;
{memasukkan data barang je array DafBarang}
Procedure EntriBarang (Var DafBarang : TabelBarang;
Var
JumBarang : Integer);
Var
Indeks :
Integer;
Begin
Clrscr;
Write
(’Jumlah Barang (Maksimum = 20) :’); Readln (JumBarang);
For Indeks :=
1 to JumBarang do
With
Dafbarang [indeks] do
Begin
Clrscr;
Writeln
(’Data Barang ’, Indeks, ’ :’);
Write (’Nama :’);
Readln (Nama);
Write
(’Kualitas :’);
Readln (Kualitas);
Write (’Harga :’);
Readln (Harga);
Writeln;
End;
End; {akhir EntriBarang}
{menampilkan isi array DafBarang}
Procedure InfoBarang (Var DafBarang : Tabelbarang;
JumBarang
: Integer);
Var
Indeks :
Integer;
Begin
Clrscr;
Writeln
(’NAMA BARANG’:25, ’KUALITAS’:10, ’HARGA’:10);
For Indeks :=
1 to JumBarang do
With
Dafbarang [Indeks] do
Writeln (Nama
: 25, Kualitas : 10, Harga : 8);
End; {Akhir InfoBarang}
Begin
Entribarang
(DafBarang, JumBarang);
InfoBarang
(DafBarang, JumBarang);
Readln
End.
Kesimpulan
Record adalah
salah satu tipe data terstuktur bentukan yang digunakan untuk mempresntasikan
sebuah objek yang tidak dapat dipresentasikan menggunakan tipe data dasar,
seperti integer, real, boolean, character. Setiap record terdiri dari beberapa elemen yang disebut field. Setiap field menggambarkan informasi tertentu, dan tipe setiap field sudah dikenal, baik itu tipe dasar
atau tipe bentukan lainnya.
Operasi atau manipulasi terhadap record hanya dapat dilakukan terhadap field-field pembentuknya. Pengacuan pada setiap field dilakukan dengan record selector. Operasi yang dapat
dilakukan terhadap field-field
tersebut sama dengan operasi yang dapat dikenakan terhadap tipe pembentuknya.
DAFTAR PUSTAKA
Jogiyanto. 1990. Turbo Pascal.
Yogyakarta : Andi Offset.
Kadir, Abdul. 1991. Pemrograman Turbo Pascal.
Jakarta : Elek Media Komputindo, PT. Gramedia.
Munir,
Rinaldi. 2002. Algoritma dan Pemrograman
dalam bahasa Pascal dan C Edisi 2. Bandung: Informatika.
Rahardjo, Budi. 2005. Teknik
Pemrograman Pascal. Bandung:Informatika
Santosa. 1998. Dasar-dasar Pemrograman Pascal.
Yogyakarta : Andi Offset.