ALGORITMA DAN PEMROGRAMAN PASCAL
Dalam modul ini akan dibahas tentang algoritma dan contoh-contoh pengaplikasian “Pemrograman Pascal” serta syntax-syntax yang biasa digunakan dalam pemrograman pascal guna memberi cara kepada kita untuk membuat aplikasi sederhana dalam pemrograman pascal.
A. ALGORITMA
Ditinjau dari asal usul katanya, kata ALGORITMA sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan Algorist jika Anda menghitung menggunakan Angka Arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. “Al-Khuwarizmi” dibaca orang barat menjadi Algorism. “Al-Khuwarizmi” menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma.
ALGORITMA ialah suatu metode khusus yang tepat dan terdiri dari serangkaian langkah terstruktur dan dituliskan secara sistematis, yang akan dikerjakan untuk menyelesaikan suatu masalah, atau “Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Algoritma Merupakan Jantung Ilmu Informatika Algoritma. Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma.
Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-lankah membuat masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut.
Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus :
1. Mengerti setiap langkah dalam Algoritma
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
CIRI-CIRI ALGORITHMA YANG BAIK
ü Algorithma harus tidak Ambigu (Unambiguous) atau harus pasti, artinya Deskripsi langkah-langkah dalam algorithma harus dan hanya mempunyai tafsiran tunggal.
Seperti contoh kita akan membuat sebuah rumus dari persegi panjang. Dimana rumus dari persegi panjang itu adalah Panjang x Lebar. Dalam hal ini kita memerlukan masukan berupa panjang dan lebar, sehingga kita sudah dapat mengira atau dapat mentafsir keluaran yang diminta dari proses ini adalah sebuah rumus untuk menentukan luas persegi panjang, bukan persegi, segitiga atau rumus-rumus yang lain.
ü Algorithma harus tepat (precise), artinya Algorithma harus menyatakan urutan langkah-langkahnya, kapan sebuah langkah dijalankan.
Sebagai contoh proses menentukan nilai dari F = a + b ; dimana untuk menentukan nilai a dibutuhkan sebuah proses yaitu a = g x c ; dan untuk menentukan nilai dari b dibutuhkan sebuah proses yaitu b = m x n ; sehingga rumus F tersebut dapat kita ketahui. Jadi langkah disini haruslah jelas yang mana akan dilakukan terlebih dahulu, apakah mencari F lebih dulu dilakukan atau mencari nilai dari a dan b. Demikian juga harus dinyatakan dengan jelas kapan berhenti dari sebuah langkah dan meneruskan ke langkah berikutnya.
ü Algorithma harus pasti (definite), artinya jika serangkaian langkah yang sama dilakukan dua kali maka hasilnya harus selalu sama.
Sebagai contoh kita membuat sebuah program untuk menentukan nilai dari F (x) = 4x + 5x2 + 6, dimana kita memasukkan nilai x = 1, maka akan menghasilkan nilai 11 atau F (1) = 11, jika kita melakukan perhitungan mencari nilai F(x) dengan nilai x yang sama, maka hasil yang diperoleh harus dan pasti sama semenjak program tersebut diexekusi.
ü Algorithma harus berhingga (finite), artinya, serangkaian langkah dalam algorithma harus dapat dilakukan pada rentang waktu tertentu.
Dalam hal ini algoritma harus memiliki kesudahan atau waktu penyelesaian masalah kapan masalah tersebut akan selesai/dalam kurun waktu berapa masalah ini dapat terselesaikan.
Yang Terpentig dalam Algoritma adalah :
a. Input
b. Output
c. Tidak mengelirukan/ringkas/mudah
d. Dalam bentuk umum dapat difahami semua golongan pembaca yg berkeperluan
e. Tepat untuk menyelesaikan masalah
f. Terhingga - ada kesudahan
Mengikuti alur konsep, suatu algoritma disusun dalam tiga bagian, yaitu :
1. Bagian Kepala algoritma
2. bagian deklarasi, dan
3. Bagian deskripsi algoritma
Setiap bagian disertai dengan penjelasan atau dokumentasi tentang maksud pembuatan teks.
Algoritma Nama_algoritma {penjelasan tentang algoritma yang menguraikan secara singkat hal-hal yang dilakukan oleh algoritma}.
Deklarasi {semua nama yang digunakan, meliputi nama-nama : tipe, konstanta, variabel, juga nama sub-program dinyatakan disini}
Deskripsi {semua langkah atau aksi algoritma dituliskan disini}
Contoh :
1) Kepala Algoritma:
Algoritma Luas_Lingkaran {menghitung luas lingkaran dengan ukuran jari-jari tertentu. Algoritma menerima masukan jari-jari lingkaran, menghitung luasnya, dan menyajikan hasilnya ke piranti keluaran}. PERHATIKAN : dalam menulis nama-nama-nama algoritma harus mempunyai makna yang mencerminkan proses, sifat atau identitas lainnya yang melekat dengan suatu proses, tipe, konstanta, variabel, sub-program dan lain-lainnya. Nama-nama yang bermakna disebut mnemonic.
2) Deklarasi Algoritma:
Bentuk : Deklarasi {nama konstanta}
Const Phi = 3.14; {nilai Phi = 22/7}
{nama peubah} var R : real ; {input jari-jari lingkaran bilangan riil}
L_lingkaran : real ; {luas lingkaran bilangan riil}
{nama sub program}
Procedure Tukar (input/output A: integer, input/output B: integer)
{Mempertukarkan nilai A dan B. Parameter A dan B sudah terdefinisi nilainya. Setelah pertukaran, A berisi nilai B dan B berisi nilai A}
3) Deskripsi Algoritma :
Bagian ini merupakan bagian inti algoritma yang berisikan uraian langkah-langkah penyelesaian suatu masalah. Setiap langkah algoritma dibaca dari atas ke bawah. Urutan penulisan menentukan urutan pelaksanaan perintah.
{Baca data jari-jari lingkaran r. Jika r <= 0 tulis pesan data salah, selain itu hitung luas lingkaran. Tampilkan luas lingkaran. }
Baca (r);
Jika r <= 0 then tulis (“Data Salah !”)
Selain itu L_lingkaran = Phi x r x r;
Tulis (L_lingkaran) ;
Contoh Algoritma
Aksi : Kejadian yang terjadi pada selang waktu terbatas (dimulai saat T0 dan berakhir pada saat T1)
Contoh :
- Ibu Tati mengupas kentang untuk mempersiapkan makan malam..(luas ruang lingkupnya)
- Karena ruang lingkup luas, maka harus didefinisikan keadaan awal dan efek netto yang direncanakan ( Initial State dan Final State)
- Initial State (keadaan awal) : T0 kentang sudah ada dikantong kentang, dan ditaruh di rak dapur dimana ibu Tati akan mengupasnya.
- Final State (keadaan akhir) : T1 kentang dalam keadaan terkupas di panci, siap untuk dimasak dan kantong kertasnya harus dikembalikan ke rak lagi.
- Kejadian : urut-urutan dari beberapa aksi yang terjadi secara berurutan.
- Efek kumulatif dari semua aksi yang terjadi menjadi efek netto dari kejadian
- Penggolongan suatu kejadian menjadi aksi adalah relatif tergantung dari sudut pandang. Contoh mengupas kentang dapat dijelaskan :
o Ambil kantong kentang dari rak
o Ambil panci dari almari
o Kupas kentang
o Kembalikan kantong kentang ke rak
- Contoh lain (jika tidak dipandang perlu untuk menjelaskan kantong kentang diambil dari rak sebelum ambil panci) :
o Ambil kantong kentang dari rak dan ambil panci dari almari
o Kupas kentang
o Kembalikan kantong kentang ke rak
Jika esok hari ibu Tati mengupas kentang lagi untuk makan malam juga, dan kita mengamati hal-hal yang sama, apakah hal tsb bisa disebut sama ? Ini tergantung jawabannya bisa sama bisa tidak. Tidak karena ibu Tati tidak mungkin mengupas kentang yang sama dengan kemarin Sama karena kemiripan pola yang dilakukan.
B. FLOWCHART
Flowchart ialah diagram alir, yang mana diagram alir ini menjelaskan tentang sebuah aliran air. Dalam aliran air tersebut akan terlihat jelas kemana air ini akan mengalir. Apakah akan berjalan lurus tanpa halangan, ataukah air ini akan mengalami beberapa perputaran, atau mungkin air ini akan ditambahkan/dikurangi dengan kandungan asam atau basa, ataukah air ini akan mengalami penyeleksian berdasarkan kandungan air yang dibawa? Tapi yang pasti adalah air ini akan mengalir dari tempat ketinggi ke tempat yang lebih rendah dan mempunyai keluaran dari setiap aliran.
Flowchart merupakan suatu alat atau cara menganalisa suatu masalah. Hal tersebut memungkinkan Anda untuk memecah masalah menjadi sub-sub masalah individual atau aktifitas untuk menunjukkan hubungan masalah itu menjadi singkat, padat, dan jelas. Flowchart ini akan mempermudahkan kita untuk melihat alir suatu masalah, sejak kapan dimulai bagaimana prosesnya dan bagaimana masalah itu akan berakhir.
Sebagai contoh sebuah cerita tentang Putri Nyale. Dimana cerita atau masalah ini terjadi ketika ia dewasa. Putri Mandalika (Nyale) saat itu tumbuh dan menjadi sesosok gadis cantik dan amat cantik, sehingga seluruh pemuda-pemuda, baik dari kalangan umum maupun dari kalangan putra mahkota terlena akan kecantikannya. Namun Si Putri tersebut bingung untuk memilih diantara beribu-ribu pemuda yang meminangnya. Putri tersebut takut untuk memilih satu diantara seribu pemuda yang kesemuanya ingin menjadikannya sebagai istri. Cerita menurut cerita Si Putri tersebut takut akan terjadi pertumpahan darah hanya karena ingin menjadikan ia sebagai istri dari salah satu pemuda tersebut, sehingga Putri tersebut menjatuhkan dirinya ke laut dari jurang yang sangat tinggi dengan niat ia ingin memberikan kasih sayangnya tidak hanya kepada satu orang akan tetapi seluruh orang bisa merasakannya, dan cerita berganti cerita secara ajaib bin mistirius Putri tersebut berubah menjadi sebuah binatang laut seperti cacing yang dapat dimakan oleh setiap orang yang ingin memakannya.
Dari cerita tersebut kita dapat mempermudah atau mempersingkat masalah tersebut menjadi beberapa bagian, seperti dibawah ini :
SIMBOLIS FLOWCHART PUTRI NYALE
![]() |
Diagram alir (Flowchart) merupakan bentuk grafis/visual dari algoritma, atau merupakan sebuah pembentukan dari berbagai bentuk algoritma yang di konversi menjadi beberapa bentuk yang mana setiap bentuk mempunyai fungsi dan merupakan simbol dari setiap kegiatan yang dilakukan.
Adapun bentuk-bentuk dari flowchart tersebut adalah sebagai berikut :
1. Simbol Terminator (simbol untuk memulai dan mengakhiri)
![]() | Merupakan simbol untuk memulai (start) dan mengakhiri (end) suatu flowchart atau program. |
2. Simbol Definition/Definisi
![]() | Merupakan simbol untuk mendefinisikan variabel atau merupakan tempat mengenali kepada komputer akan tipe data/nama sebuah input/masukan, keluaran dan proses dalam sebuah program atau masalah. |
3. Simbol Input/masukan
![]() | Merupakan simbol untuk mendefinisikan variabel dan sebagai tempat menginputkan data atau masalah. Contoh untuk menghitung luas persegi panjang, maka kita menginputkan panjang dan lebar pada simbol ini. |
4. Simbol Process/proses
![]() | Merupakan simbol untuk mendefinisikan suatu proses didalam suatu masalah atau sebagai tempat penempatan sebuah proses dari suatu masalah. Contoh proses luas persegi panjang adalah L = Panjang x lebar |
5. Simbol Output/keluaran
![]() | Merupakan simbol untuk mendefinisikan variabel dan sebagai tempat mengoutputkan data atau masalah. Contoh untuk menghitung luas persegi panjang, maka kita keluaran dari Flowchar ini adalah Luas dari persegi panjang tersebut. |
6. Simbol Selection/seleksi/percabangan
![]() | Merupakan simbol untuk menyeleksi atau merupakan simbol pemilihan, apakah setuju atau tidak, dan hanya terdapat dua pilihan. Yaitu (Ya atau tidak). |
7. Simbol Connector/penghubung (On Page Connector/penghubung dalam 1 halaman)
![]() | Merupakan simbol untuk menghubungkan kan simbol satu dengan simbol yang lain dalam suatu halaman atau satu lembar kerja karena keterbatasan media. |
8. Simbol Connector/penghubung (Off Page Connector/penghubung dalam halaman berbeda)
![]() | Merupakan simbol untuk menghubungkan kan simbol satu dengan simbol yang lain dalam halaman dengan halaman yang lain atau dalam lembar kerja yang berbeda karena keterbatasan media. |
9. Simbol Connector/penghubung
![]() | Merupakan simbol untuk menghubungkan simbol satu dengan simbol yang lain, |
10. Other Simbol
![]() ![]() Simbol Tampil CRT | ![]() ![]() Simbol Sub Program |
METODE-METODE YANG DIGUNAKAN
Ada beberapa metode untuk mengembangkan softaware atau program aplikasi dari bahasa pemrograman antara lain :
A. ANALISA
Dalam hal ini, kita sebagai programmer sangat perlu dan sangat penting untuk melakukan analisa untuk membuat program sekecil apapun. Dan analisa ini akan sangat membantu baik dalam waktu penginputan data, pemrosesan data, dan penampilan output/keluaran dari program yang kita inginkan. Program yang baik merupakan program yang dapat memenuhi setidaknya 75% dari keinginan user. Terpenuhinya standar tersebut tidak terlepas dari cara kita menganalisanya. Dalam menganalisa suatu masalah (program yang ingin kita buat) terlebih dahulu kita harus bisa mendefinisikan suatu permasalahan sehingga memudahkan bagi kita dalam mencari solusinya. Dimana pendefinisian ini bertujuan agar kita tahu apakah suatu program yang akan kita buat membutuhkan beberapa inputan atau tidak, cara prosesnya bagaimana, dan hasil/output yang diinginkan seperti apa.
Setelah itu baru kita menentukan garis besar pemecahan dari permasalahan atau program yang akan kita buat. Ada banyak cara untuk mempermudah kita menyelesaikan suatu masalah, salah satunya dikenal dengan teknik pendekatan Top Down Design, yaitu pendekatan dengan cara menjadikan sebuah program menjadi sub-sub program atau program-program kecil, yang berfungsi membantu proggramer dalam menyelesaikan suatu masalah yang kompleks menjadi sub-sub masalah yang lebih sederhana.
Langkah-langkah Top-Down Design
1. Dekomposisi masalah utama menjadi submasalah-submasalah secara tepat.
2. Periksa bahwa setiap submasalah dipecahkan secara tepat.
3. Pemecahan dari setiap submasalah digabungkan dengan cara tertentu sehingga masalah utama terpecahkan.
4. Ulangi langkah 1 sampai 3 sampai submasalah dibagi menjadi submasalah yang sederhana dan dapat dipecahkan dengan program yang cukup singkat.
Adapun contoh dari teori Top Down Design ini kita bisa ambil dari cara kita menggunakan Telepon Umum, sebagai berikut:
Menelpon dengan Telepon Umum :
Step-1 Angkat gagang telepon
Step-2 Masukkan koin
Step-3 Tekan nomor yang dituju
Step-4 Bicara
Step-5 Letakkan gagang Telepon
Dengan metode Top Down Design kita dapat memecah contoh di atas menjadi lebih detail (rinci) agar si pemakai telepon baik yang sudah bisa menggunakan dan untuk pengguna yang sama sekali belum pernah memanfaatkan telepon umum dapat menggunakan fasilitas telepon ini dengan tepat atau dengan kata lain apabila kondisi telepon tidak normal (gangguan), yaitu sebagai berikut :
Step-1 Angkat gagang telepon
Pada Step 2 kita dapat mengkomposisikan lagi menjadi dua :
1. Jika terdengar nada panggil
2. Jika tak terdengar nada panggil
Step-2 Masukkan Koin
1. Jika terdengar nada panggil, Masukkan koin.
2. Jika tidak terdengar nada panggil, Telepon rusak & Lanjut ke langkah 5
Step-3 Tekan nomor yang dituju
Pada step-3 kita dapat mengkomposisikan lagi menjadi dua:
1. Jika telepon ada yang mengangkat
2. Jikat telepon tidak ada yang mengangkat.
Step-4 Bicara
a. Jika telepon yang dihubungi ada yang mengangkat, Maka komukasi terlaksana.
b. Jika telepon yang dihubungi tidak ada yang mengangkat, Lanjut ke langkah 5 (komunikasi gagal)
Step-5 Letakkan gagang Telepon
B. DESAIN
Setelah kita menganalisa suatu masalah/program dan mendefinisikannya menjadi submasalah-submasalah yang lebih sederhana maka langkah selanjutnya adalah mendesain atau merancang atau menterjemahkan garis besar tadi menjadi langkah-langkah yang lebih rinci ke dalam bentuk algorithma (flowchart), sehingga memudahkan kita untuk melihat alur dari program atau masalah yang akan dibuat.
C. CODING
Langkah selanjutnya adalah menerjemahkan algoritma atau flowchart ke dalam bahasa pemrograman (dalam hal ini kami suguhkan dengan Bahasa Pemrograman Pascal). Proses penerjemahan algorithma ke dalam bahasa pemrograman disebut dengan pengkodean (coding), sedangkan statement-statement yang dituliskan dalam bahasa pemrograman disebut dengan source code. Jadi jelas pengkodean tidak sama dengan Pemrograman; pengkodean hanya salah satu langkah dalam pemrograman.
Dalam hal ini, source code yang digunakan oleh setiap bahasa pemrograman berbeda, namun dalam konsep dan logika yang digunakan sama. Perbedaan ini terjadi karena compiler atau pengompile source code dari setiap bahasa pemrograman berbeda-beda.
D. TESTING
Setelah algorithma dikodekan atau program sudah ditulis maka program tersebut dapat diuji/test. Pengujian dilakukan untuk menemukan kesalahan yang mungkin terjadi, dengan cara : memeriksa kemungkinan kasus yang mungkin terjadi pada program tersebut. Proses ini yang disebut dengan Debugging yaitu menemukan kesalahan (bug) dan menghilangkannya (memperbaikinya).
Kesalahan dalam membuat program terjadi karena kesalahan syntax yang kita tulis dan karena kesalahan dalam pengalgoritmaan masalah tersebut.
E. DOKUMENTASI
Langkah yang terakhir adalah dokumentasi, yaitu menyimpan seluruh dokumen baik secara hardcopy maupun softcopy dengan maksud jika permasalahan tersebut akan dikembangkan maka dengan mudah kita melakukan revisi pada bagian yang akan dikembangkan.
Adapun kriteria program yang baik itu adalah :
1. Benar, yaitu setiap program yang kita buat harus mengandung kebenaran. Dalam hal ini keluaran dari program yang kita buat harus sesuai dan harus pasti.
2. Jelas, yaitu setiap program yang kita buat harus jelas dan mudah untuk dimengerti baik bagi pemula maupun untuk proggramer, sehingga memudahkan pengguna untuk menggunakan program yang kita buat tersebut.
3. Efisien, yaitu sebuah program yang baik terletak pada tingkat penggunaan algoritma yang baik, karena untuk menyelesaikan suatu masalah kita mempunyai beberapa alternatif penyelesaian yang keluaran dari setiap alternatif itu sama, namun yang tersingkat dan tercepat eksekusi/penjalanan programnya lah yang paling baik.
Beberapa paradigma dalam pemrograman :
a. Paradigma Prosedural atau imperatif
Paradigma ini didasari oleh konsep mesin Von Newmann (Stored Program Concept) yaitu sekelompok tempat penyimpanan (memori) yang dibedakan menjadi memori instruksi dan memori data, masing-masing dapat diberi nama dan harga. Instruksi akan dieksekusi satu per satu secara sekuensial oleh sebuah pemroses tunggal. Beberapa instruksi menentukan instruksi berikutnya yang akan dieksekusi (percabangan kondisional). Data diperiksa dan dimodifikasi secara sekuensial pula. Program dalam paradigma ini didasari pada strukturasi informasi di dalam memori dan manipulasi dari informasi yang disimpan tersebut. kata kunci yang sering digunakan adalah :
Algoritma + Struktur Data = Program.
Pemrograman dengan paradigma ini sangat tidak “manusiawi” dan tidak “alamiah”, karena harus berpikir dalam batasan mesin (komputer), bahkan kadang-kadang batasan ini lebih mengikat daripada batasan problematikanya sendiri.
Keuntungan pemrograman dengan paradigma ini adalah efisiensi eksekusi, karena dekat dengan mesin.
b. Paradigma Fungsional
Paradigma fungsional didasari oleh konsep pemetaan dan fungsi pada matematika. Fungsi dapat berbentuk sebagai fungsi “primitif”, atau komposisi dari fungsi-fungsi lain yang telah terdefinisi. Pemrogram mengasumsikan bahwa ada fungsi-fungsi dasar yang dapat dilakukan. Penyelesaian masalah didasari atas aplikasi dari fungsi-fungsi tersebut. jadi dasar pemecahan persoalan adalah transformasional. Semua kelakuan program adalah suatu rantai transformasi dari sebuah keadaan awal menuju ke suatu rantai keadaan akhir, yang mungkin melalui keadaan antara.
Paradigma fungsional tidak lagi mempermasalahkan memorisasi dan struktur data, tidak ada pemilahan antara data dan program, tidak ada lagi pengertian tentang “variabel”. Pemrogram tidak perlu lagi mengetahui bagaimana mesin mengeksekusi atau bagaimana informasi disimpan dalam memori, setiap fungsi adalah “kotak hitam”, yang menjadi perhatiannya hanya keadaan awal dan akhir. Dengan merakit kotak hitam ini, pemrogram akan menghasilkan program besar.
Berlainan sekali dengan paradigma prosedural, program fungsional harus diolah lebih dari program prosedural (oleh pemroses bahasanya), karena itu salah satu keberatan adalah kinerja dan efisiensinya.
c. Paradigma Deklaratif, predikatif atau lojik
Paradigma ini didasari oleh pendefinisian relasi antar individu yang dinyatakan sebagai predikat. Sebuah program lojik adalah sekumpulan aksioma (fakta dan aturan deduksi).
Paradigma ini, pemrogram menguraikan sekumpulan fakta dan aturan-aturan (inference rules). Ketika program dieksekusi, pemakai mengajukan pertanyaan (Query), dan program akan menjawab apakah pertanyaan itu dapat didedukasi dari aturan dan fakta yang ada. Program akan memakai aturan dedukasi dan mencocokkan pertanyaan dengan fakta-fakta yang ada untuk menjawab pertanyaan.
d. Paradigma Berorientasi Objek (Object Oriented)
Paradigma ini didasari oleh objek. Sebuah objek mempunyai atribut (kumpulan sifat), dan mempunyai kelakuan (kumpulan reaksi, metode). Objek yang satu dapat berkomunikasi dengan objek yang lain lewat “pesan”, dengan tetap terjaga integritasnya. Kelas adalah objek yang mempunyai atribut yang sama dan diturunkan ke semua objek yang berada dalam kelas yang sama. Kelas-kelas mempunyai hirarki, anggota dari sebuah kelas juga mendapatkan turunan atribut dari kelas di atasnya.
Paradigma ini menawarkan konsep class, generic, inherintance, polomorphism dan menekankan pentingnya pendefinisian statik kelas untuk melahirkan (menciptakan) objek pada saat runtime, yang kemudian dimanipulasi atau saling berinterasi. Definisi kelas memungkinkan adanya penurunan kelas dengan objek pada saat run time yang dapat “berubah” bentuk dengan kelakukan yang disesuaikan.
Namun demikian, literaratur pada struktur kontrol mikro untuk mendeskripsikan kelakukan, masih terkandung paradigma imperatif, dengan adanya pernyataan sekuensial, assignment, analisis kondisional dan pengulangan. Dengan demikian, mengkonstruksi program dari objek dan kelas adalah berbeda dengan mengkonstruksi program dari struktur data dan algoritma. Kedekatan antara paradigma ini dengan paradigma lain dapat dilihat dari bahasa-bahasa bukan berorientasi obyek murni yaitu bahasa presedural atau fungsional yang ditambahi dengan ciri orientasi objek.
Selain keempat paradigma di atas, dalam literatur masih sering disebutkan paradigma yang lain, misalnya :
ü Paradigma konkuren, yang erat hubungannya dengan arsitektur perangkat keras yang memungkinkan pemrosesan secara paralel atau peragkat lunak sistem terdistribusi yang mengelola akses konkuren.
ü Paradigma relational, yang didasari entity dan relasi, dan pemrograman dalam bahasa Query yang memungkinkan diperolehnya suatu himpunan.
BAHASA PEMROGRAMAN
Ada banyak sekali bahasa pemrograman, mulai dari bahasa tingkat rendah (bahasa mesin dalam biner), bahasa asembler (Bahasa dalam kode mnemonik), bahasa tingkat tinggi, sampai bahasa generasi keempat (4GL).
Bahasa pemrograman berkembang dengan cepat sejak tahun enam puluhan, seringkali dianologikan denagn menara Babel yang berakibat manusia menjadi tidak lagi saling mengerti bahasa masing-masing. Untuk setiap paradigma, tersedia bahasa pemrograman yang mempermudah implementasi rancangan penyelesaian masalahnya. Contoh bahasa-bahasa pemrograman yang ada :
1. Presedural : Algol, Pascal, Fortran, Basic, Cobol, C
2. Fungsional : LOGO, APL, LISP
3. Deklaratif/Lojik : Prolog
4. Object oriented murni : Smalltalk, Eifel, Jaca, C++
5. Konkuren : OCCAM, Ada, Java
6. Relasional : SQL pada basisdata relational
Pendeklarasian bahasa pemrograman berdasarkan level, yaitu
a. High Level Language (bahasa tingkat tinggi), yang termasuk dalam bahasa tingkat tinggi ini adalah Pascal, Basic, Fortran dan C. Bahasa tingkat tinggi memungkinkan programmer untuk menulis program yang tidak bergantung pada jenis komputer. Dikategorikan sebagai high level karena lebih dekat dengan manusia dimana high level tersebut mudah dimengerti oleh manusia.
b. Low Level Language (Bahasa Tingkat Rendah), merupakan bahasa tingkat bawah, atau bahasa mesin, yang mana dalam mengoperasikannya kita harus mengerti bahasa mesin dari komputer kita sendiri. Dan biasanya mengunakan suatu bahasa numerik, karena memori yang berada di dalam komputer hanya dapat menyimpan data numerik. Dan komputer tersebut hanya mengenal bahasa mesin bukan bahasa yang lain. Untuk itu dalam menggunakan bahasa mesin ini sangat sulit dan membosankan.
c. Middle Level Language (Bahasa Tingkat Sedang), middle level ini merupakan bahasa pertengahan, yaitu antara bahasa tingkat tinggi dan bahasa mesin (low level). Adapun contoh dari bahasa pemrograman ini adalah Visual/borland C++.
BAHASA PEMROGRAMAN PASCAL
Seperti yang telah dijelaskan di muka, dalam modul ini kita akan menggunakan bahasa pemrograman pascal . Lalu kenapa kita tidak menggunakan bahasa pemrograman yang trend saat ini, seperti C/C++ atau java? Perlu kita ketahui tujuan awal dari pembuatan bahasa Pascal adalah untuk Pengajaran Pemrograman Komputer di Perguruan Tinggi. Dimana bahasa Pascal merupakan bahasa pemrograman yang terstruktur, dalam hal ini pascal sangat baik untuk melakukan pelatihan, dan sebagai suatu cara awal untuk merangsang pemikiran kita untuk lebih mengerti akan konsep pembuatan sebuah program yang lebih besar lagi. Jika dibandingkan dengan bahasa C/C++, Pascal relatif lebih mudah dipelajari.
Pascal merupakan suatu bahasa komputer tingkat tinggi yang dibuat sekitar tahun 1970 oleh Niklaus Wirth dan digunakan untuk pendidikan komputer. Bahasa pascal dikembangkan dari Bahasa Pemrograman ALGOL. Nama Pascal diambil dari seorang ahli matematika yang bernama Blaise Pascal yang menemukan mesin hitung pertama. Bahasa Pascal dirancang untuk menyelesaikan suatu masalah dari berbagai kalangan pemakai, mulai dari Pelajar, Mahasiswa, Pendidik dan ilmuwan dengan pendekatan terstruktur.
Salah satu kompiler pascal yang terkenal dan tercepat adalah Turbo Pascal yang dibuat oleh perusahaan Borland. Turbo Pascal telah membuat pascal sebagai salah satu bahasa pemrograman yang populer dikalangan IBM PC. Pada trend pemrograman Visual, perusahaan Borland mengeluarkan Borland Delphi (Windows) dan Kylix (Linux) yang menggunakan dasar bahasa Pascal (Object Pascal) pada lingkungan pemrograman visual.
Pascal adalah suatu bahasa pemrograman terstruktur. Hal tersebut berarti semua program yang Anda buat harus terstruktur dan teratur, dalam hal ini harus menghindari pemakaian goto dan jump. Sehingga dengan terstrukturnya bahasa pascal ini, banyak dari perguruan tinggi menggunakannya sebagai mata kuliah Pemrograman terstruktur, seperti STMIK Bumigora Mataram, STMIK Amikom Yogyakarta, STMIK IBBI, ITB, dan banyak perguruan tinggi lainnya.
Struktur program pascal yang paling sederahana adalah sebagai berikut :
Program ……………;
Uses ……………;
Var ………………;
Begin
…………… (statement/penulisan source code yang diinginkan)
End.
Fungsi dari syntax-syntax diatas adalah :
ð “Program”, syntax “Program” diatas berfungsi sebagai pemberi nama dari program yang kita buat. Atau pendeknya nama dari program itu sendiri. Dalam ini ini syntax “Program” tersebut boleh tidak ditulis, namun lebih diutamakan untuk menulis syntax ini, dimaksudkan untuk membedakan program-program yang kita ingin buat nanti.
ð “Uses”, seperti dari bahasanya use diartikan sebagai pengguna. Maksudnya dalam program yang kita buat tersebut akan digunakan dimana. Apakah akan kita gunakan dalam DOS ataukah Windows? Karena perbedaan Operating System atau Sistem Operasi mengakibatkan perbedaan dalam penggunaan bahasa pemrograman tersebut. Untuk DOS kita menggunakan syntax “uses crt;” namun untuk menggukan versi windows (windows 98, windows millenium, XP, dll) kita menggukan syntax “uses wincrt” karena kita bekerja pada windows. Dan syntax ini harus dan wajib untuk kita tulis.
ð “Var”, syntax ini merupakan pendeklarasian variabel. Variabel itu sendiri berarti sebuah pendefinisian nama yang kita akan kenali ke dalam program pascal tersebut, sebagai inputan/masukan dari user. Nama-nama dari variabel inilah yang akan diproses oleh kompiler dan banyak sedikit variabel yang digunakan tergantung dari kebutuhan program yang dibuat.
ð “Begin”, merupakan syntax yang harus ditulis, dikarenakan syntax ini difungsikan untuk membuka atau untuk memulai penulisan program dalam bentuk source code. Adapun syntax-syntax yang digunakan dalam penulisan program adalah :
o Write/writeln, dimana syntax ini berfungsi untuk menulis atau menampilkan kata, kalimat atau hasil dari program yang ingin kita ingin tampilkan dari program yang kita buat.
Contoh: untuk menampilkan kalimat “Saya belajar Pemrograman Pascal”, maka dapat ditulis dalam pemrograman pascal sebagai berikut :
………
Writeln (‘Saya belajar Pemrograman Pascal’);
………
o Read/readln, syntax ini berfungsi untuk membaca atau menerima masukan atau penginputan nilai yang akan dibaca oleh kompiler. Seperti contoh berikut ini :
………
Write(‘Masukkan Jari-jari Lingkaran = ‘);
Readln(jari_jari);
………
Dengan demikian “jari_jari” tersebut harus dideklarasikan dalam variabel. Dimana seperti dalam penjelasan variabel diatas, jari_jari tersebut telah terdaftar sebagai suatu simbol atau sebuah masukan yang akan diproses oleh kompiler tersebut.
o If, digunakan untuk memilih 2 kondisi yaitu bernilai benar atau salah. Jika benar akan menghasilkan nilai kebenaran, dan jika bernilai salah, maka akan menghasilkan nilai salah. Seperti contoh berikut :
………
write(‘Masukkan nilai ujian = ‘);
readln(nilai_ujian);
if nilai_ujian >= 80 then
write(‘LULUS’)
else
write(‘GAGAL’);
………
o Case, merupakan sebuah struktur pemilihan yang tidak jauh berbeda dengan if. Namun pada kenyataannya if jauh lebih efisien dalam segi nilai yang digunakan. Namun dalam segi penulisan case jauh lebih singkat dan mudah untuk dimengerti.
Adapun perbedaan-perbedaan diantara if dan case adalah sebagai berikut:
1. Dalam variabel, IF dapat menggunakan seluruh jenis variabel, tetapi untuk CASE tidak bisa menggunakan variabel real.
2. Karena dalam CASE tidak bisa menggunakan variabel real, maka daripada itu CASE tidak bisa melakukan pemilihan dalam kondisi pecahan (1,2; 1,4; dll), sedangkan IF bisa.
3. Dalam CASE fungsi dari aljabar booelan (and, or, <>) tidak berfungsi, sedangkan dalam IF semua dapat berfungsi.
o Bentuk-bentuk perulangan seperti For, while, dan repeat……until. Dalam syntax, ini berfungsi sebagai pelooping atau perulangan statement. Dapat dispesifikasikan sebagai beriktu :
§ For, merupakan peloopingan atau pengulangan yang sudah pasti perulangannya. Dan tipe data yang digunakan merupakan tipe data ordinal, atau yang bersifat konstan, baik konstan yang bertambah (succesor), dimana dalam peloopingannya menggunakan sistem counter atau pertambahan secara konstan. Seperti suksesor dari 0 adalah 1, suksesor dari 1 adalah 2, dan seterusnya. Untuk predesessor, yaitu pengurangan nilai secara berkala atau konstant, contoh predesossor dari 1 adalah 0, predesossor dari 3 adalah 2, dan seterusnya.
§ While, yaitu perulangan atau peloopingan dengan perubahan kondisi yang menjadi nilai dari perulangan dari kondisi ini. Apabila kondisi bernilai true atau benar, maka perulangan akan terus dilakukan. Tapi sebaliknya apabila perulangan bernilai false atau salah, maka perulangan akan terhenti.
§ Repeat……until, yaitu perulangan yang hampir sama dengan while, yaitu perulangan yang mengulang sesuai dengan kondisi yang digunakan. Namun bedanya terletak jika kondisi yang bernilai benar/true maka peloopingan akan selesai sedangkan untuk bernilai salah, maka peloopingan akan terus dilakukan.
ð Procedure, merupakan suatu cara untuk memperkecil program atau menjadikan program menjadi sub-sub program. Dimana setiap sub program tersebut sudah dirancang untuk menghasilkan nilai-nilai atau keluaran tertentu sesuai dari keinginan pembuat program.
ð Function (fungsi), merupakan subprogram seperti halnya prosedure, namun perbedaannya terletak pada keluaran dari function tersebut, dimana fungsi dapat memberikan nilai pada dirinya sendiri, sedangkan untuk procedure tidak. Kelebihan dan kekurangan antara keduanya tersebut terletak dari kebutuhan user atau pengguna program tersebut.
Fungsi juga bisa diartikan sebagai Modul program yang memberikan/mengembalikan (return) sebuah nilai dari tipe tertentu (tipe dasar atau tipe bentukan). Definisi fungsi dalam program bersesuaian dengan definisi fungsi di dalam matematika.
Pengertian fungsi juga dapat kita peroleh dari definisi secara matematika, yaitu merupakan pemetaan suatu domain ke range domain tertentu, atau fungsi juga merupakan sebuah transformasi akibat pemetaan suatu nilai (dari “domain”) ke nilai lain (dalam “range”). Secara algoritmik, sebuah fungsi akan menerima suatu harga yang diberikan lewat parameter formal bertipe tertentu (jika ada) dan menghasilkan suatu nilai sesuai dengan domain yang didefinisikan dalam spesifikasi fungsi.
ð Array, merupakan suatu cara untuk mendapatkan penempatan sebuah memori dalam program yang kita inginkan, sehingga data-data yang telah kita miliki tidak hilang atau terhapus untuk sementara waktu, selama program tersebut masih dijalankan.
TIPE DATA–TIPE DATA DALAM PASCAL
Tipe adalah pola representasi suatu data dalam komputer. Gunanya untuk mendefinisikan objek yang akan diprogram. Ada type dasar (yang diasumsikan ada) dan type bentukan, biasanya type bentukan dibentuk dari type dasar. Type tidak menentukan alokasi memori di komputer, tetapi hanya mendefinisikan pola struktur informasi.
Tipe juga dapat diartikan sebagai suatu sifat atau karakteristik yang berfungsi membatasi nilai atau jangkauan dari suatu identifier. Tipe dibedakan menjadi 9 (sembilan) jenis tipe, antara lain : array, file, object, ordinal, pointer, real, record, set dan string. Dalam struktur pascal, bagian yang biasanya menggunakan tipe setelah identifier adalah bagian const, type, var, procedure dan function. Pada bagian ini akan dibahas lebih dulu penggunaan tipe pada deklarasi variabel. Dan tipe yang dibahas pada bagian ini adalah tipe ordinal, real dan string.
Variabel adalah suatu identifier yang mewakili suatu nilai dengan disertakan tipe-nya dan dideklarasikan pada bagian var. Jadi, pada contoh code di atas, identifier a, b, c, d dan e adalah variabel. Pada contoh-contoh listing code sebelumnya, sudah banyak yang menjelaskan pendeklarasian variabel. Deklarasi suatu variabel beserta tipenya dilakukan di bagian var. Ada dua cara dalam pendeklarasian variabel yaitu :
var id : type;
var id1,id2,..,idn : type;
Coba perhatikan listing code berikut :
program deklarasi_variabel_salah; uses wincrt; var x,y:integer; a :real; s,t:string[50]; tanya:boolean; begin x:= 50; a:= x; y:= a; s:=’Bahasa Pascal’; tanya:= s; t:= TRUE; end. |
Variabel yang bertipe sama bisa dideklarasikan sekaligus dalam satu pendeklarasian. Pada contoh diatas bisa dilihat pada variabel a dan b, s dan t, tanya dan error. Kemudian lihat pada bagian program utama, bagaimana cara variabel diberikan ekspresi atau statement. Misal pada variabel x yang bernilai 50, kemudian variabel y bernilai x. Karena nilai x itu 50 maka nilai y juga 50. Namun apabila suatu variabel bernilai variabel yang lain yang tipenya berbeda, maka akan menimbulkan error. Terkecuali pada tipe real yang bisa mencakup nilai yang bertipe ordinal.
1. Tipe Ordinal
Tipe ordinal adalah tipe numerik yang bernilai suatu angka bulat negatif atau positif. Menurut jangkauan nilainya, tipe ordinal dibagi menjadi 7 (tujuh) tipe :
Tipe | Range/Jangkauan | Size/Ukuran |
Shortint | -128 .. 127 | 8 bit |
Byte | 0 .. 255 | 8 bit |
Integer | -32768 .. 32768 | 16 bit |
Word | 0 .. 65535 | 16 bit |
longint | -2147483648 .. 2147483648 | 32 bit |
Boolean | TRUE .. FALSE | 8 bit |
Char | ACII | 8 bit |
Khusus untuk tipe boolean dan char, tipe ini adalah tipe ordinal predefine atau tidak terdefinisi. Jadi char dan boolean bisa dianggap bukan tipe ordinal karena tidak bisa digunakan pada operasi numerik. Sedangkan tipe ordinal selain boolean dan chr biasa disebut tipe integer.
2. Tipe Real
Tipe real adalah tipe numerik yang mencakup bilangan real, baik itu bilangan bulat atau pecahan. Ciri yang membedakan dengan tipe ordinal yaitu bahwa tipe real selalu mempunyai nilai dibelakang koma, baik itu bulat atau pecahan. Maka dari itu penulisan output nilainya menggunakan notasi floating-point atau eksponensial. Perhatikan contoh penulisan nilai bertipe real berikut ini :

Dalam penulisan pecahan terdapat tanda koma. Dalam Pascal tanda ini tidak memakai tanda koma biasa melainkan memakai tanda titik. Tipe real dibagi menjadi 5 (lima) menurut jangkauannya, yaitu :

3. Tipe String
Tipe string adalah tipe variabel yang berupa serangkaian karakter yang bersifat teks. Panjang maksimal karakter dalam tipe string adalah 255 karakter. Ciri dari suatu nilai yang bertipe string adalah penggunaan tanda kutip satu (aphostrope) yang diberikan di awal dan di akhir string. Untuk lebih jelas, perhatikan listing code berikut :
program teks; uses wincrt; var s:string; t:string[5]; begin s:= ’Bahasa Pascal’; t:= ’SixiZ’; end. |
Variabel s dengan variabel t berbeda dalam pendeklarasiaannya. String t memakai square bracket atau tanda kurung balok dengan isi 5. Angka di dalam square bracket adalah batasan panjang karakter string.
4. Bilangan Logika/boolean
Nama : boolean
Domain : [true, false]
Konstanta : true false
Operator :
KELOMPOK | Op | ARTI | HASIL |
Operator Logika | and | Dan | boolean |
or | Atau | boolean | |
Xor | Ekslusive OR | boolean | |
not | Negasi | boolean | |
EQ | Ekivalensi | boolean | |
nEQ | Negasi dari Ekivalensi | boolean |
PENGANALISA DAN CARA BERPIKIR LOGIKA
Untuk memperlancar penganalisaan dan cara berpikir logika yang benar dalam pemograman bahasa Pascal, maka harus tahu terlebih dahulu fungsi dan prosedur dasar atau operasi dasar dari pascal. Untuk operasi dasar atau fungsi dan prosedur dasar akan diperkenalkan prosedur input-output, fungsi standar tipe data dan operasi logika. Fungsi dan prosedur yang akan dibahas ini telah tersedia di dalam pascal atau yang biasa disebut reserved word. Jadi tanpa menggunakan suatu unit, operasi tersebut bisa dipergunakan.
A. OPERASI INPUT DAN OUTPUT
Input adalah masukan data ke dalam proses suatu aplikasi. Karena masukan berarti media yang digunakan adalah keyboard. Dari keyboard-lah data dimasukkan. Data yang dimasukkan tergantung program yang dijalankan. Output adalah keluaran data yang dihasilkan dari proses suatu aplikasi. Berbeda dengan input, karena output adalah keluaran maka media yang digunakan adalah monitor atau printer. Data keluaran yang dihasilkan tergantung apa yang dihasilkan suatu aplikasi. Prosedur untuk input standar ada tiga yaitu read, readln dan readkey. Prosedur input ini adalah prosedur untuk membaca suatu masukan berupa variabel. Read, readln dan readkey pada operasi biasa sama menghasilkan baris baru setelah masukannya. Akan tetapi pada operasi file akan berbeda fungsi. Syntax-nya sebagai berikut :
read(var1,var2,..,varn);
readln(var1,var2, ..,varn);
readkey(var1,var2, ..,varn); è Hanya untuk tipe char
Prosedur untuk output pada layar monitor ada dua yaitu write dan writeln. Kedua prosedur ini digunakan untuk menampilkan suatu output ke layar baik itu berupa variabel, teks/string ataupun angka. Write menampilkan output tanpa menambah baris baru setelah menampilkan outputnya. Sedangkan writeln menambah baris baru setelah menampilkan outputnya. Bentuknya sebagai berikut :
write(var1,var2,..,varn);
writeln(var1,var2, ..,varn);
Dari hasil kompilasi program diatas dapat diketahui bahwa read dan write berbeda. Write mencetak atau menghasilkan keluaran, sedangkan read membutuhkan sebuah masukan menurut tipe variabel yang digunakan. Penulisan keluaran pada prosedur write dan writeln ada dua. Pertama, penulisan teks biasa atau string. Penulisan string harus memakai tanda kutip satu (atrhostope). Kedua, penulisan angka dan variabel. Penulisan angka (numerik) dan variabel tidak perlu memakai tanda atrhostope. Sebagai pemisah digunakanlah tanda koma. Untuk input anda harus memasukkannya sesuai dengan tipe variabelnya. Bila masukan input tidak sesuai dengan tipe-nya maka akan menimbulkan run-time error.
B. OPERASI BINER
Operasi biner yaitu operasi perhitungan yang menghubungkan dua nilai yang bertipe sama. Ada 6 (enam) operator biner dan , yaitu :
Operator | Operasi | Tipe yang Dioperasikan | Hasil Operasi |
+ | Penambahan (Additional) | Integer | Integer |
Real | Real | ||
- | Pengurangan (Substraction) | Integer | Integer |
Real | Real | ||
* | Perkalian (Multiplication) | Integer | Integer |
Real | Real | ||
/ | Pembagian (Division) | Integer | Real |
Real | Real | ||
div | Pembagian Integer/Bulat (Integer Division) | Integer | Integer |
Mod | Sisa Bagi (Remainder) | Integer | Integer |
Tipe real dapat beroperasi pada operator-operator tersebut diatas kecuali pada mod dan div. Integer dapat beroperasi pada semua operator diatas. Akan tetapi, pembagian integer dengan integer akan menghasilkan nilai yang bertipe real. Karena dalam pembagian, ada kemungkinan integer menjadi pecahan/real.
program operasi_biner; uses wincrt;
C. OPERASI ORDINAL DAN KARAKTER
Operasi ini digunakan untuk pengurutan tipe data. Operasi ordinal dan karakter terdiri dari dua fungsi dan dua prosedur.
Operasi | Fungsi | Jenis Operasi |
Succ | Mengangkat nilai ke nilai berikutnya satu point | Function |
Pred | Menurunkan nilai ke nilai sebelumnya satu point | Function |
Inc | Menambah nilai (increase) | Procedure |
Dec | Mengurangi nilai (decrease) | Procedure |
Odd | Memastikan pada nilai yang ganjil | |
D. OPERASI LOGIKA / BITWISE
Pada operasi logika, anda harus tahu mengenai bilangan biner. Karena operasi ini adalah operasi bilangan biner yang hubungannya dengan tipe boolean yaitu 1 dan 0.
1. Operasi Not
Yaitu operasi pembalikan bitwise atau biner. Bilangan positif akan menjadi negatif begitu juga bilangan negatif akan menjadi bilangan positif. Operasi not adalah operasi yang mempunyai hierarki tertinggi diantara operasi bitwise yang lainnya.

2. Operasi And
Yaitu operasi untuk membandingkan dua buah elemen atau nilai, hasilnya akan true bila keduanya true (true diberi nilai 1 false diberi nilai 0), selain dari itu nilai dari operasi itu bernilai salah. Perhatikan tabel berikut :

Contoh dalam kehidupan sehari-hari :
Operand | SIM dan STNK | |
SIM | STNK | |
1 | 1 | Boleh Mengemudi |
1 | 0 | Tidak boleh |
0 | 1 | Tidak boleh |
0 | 0 | Tidak boleh |
Dari contoh diatas, kita ketahui sendiri untuk mengemudikan sebuah kendaraan kita harus mempunyai dua surat yang wajib kita bawa, yaitu SIM dan STNK, jika salah satu tidak ada atau kedua-duanya tidak ada maka tidak boleh mengemudi sepeda motor.
3. Operasi Xor
Yaitu digunakan untuk membandingkan dua buah elemen atau nilai, hasilnya akan true bila salah satunya saja yang true (true diberi nilai 1 false diberi nilai 0).

E. OPERASI RELASI
Relasi artinya berhubungan. Operasi relasi berarti operasi yang menghubungkan antara dua nilai tertentu. Operasi relasi hampir sama penggunaannya dengan operasi logika. Operator relasi antara lain =, <>, >, <, >= dan <=. Anda pasti sudah kenal dengan simbol-simbol tersebut. Apabila suatu operasi tersebut benar maka akan menghasilkan output true, sebaliknya bila salah maka akan menghasilkan output false. Perhatikan contoh berikut :
program operasi_relasi; uses wincrt; begin writeln(16 > 15); writeln(0 >= 2); writeln(‘a’ < ‘A’); writeln(‘Hack’>‘Crack’); end. |
Output program disamping yaitu:
TRUE FALSE FALSE TRUE |
Untuk output pada baris ke-3 dan ke-4 anda pasti bingung. Pada bagian operasi ordinal sudah disinggung mengenai bilangan ASCII, jadi.....?#$@!??
F. OPERASI ARITMATIKA DAN REAL
Ada beberapa fungsi yang berhubungan dengan perhitungan atau aritmatika selainoperasi biner. Lihat tabel dibawah ini :

Fungsi chr dan ord sebenarnya bukan operasi aritmatika tetapi fungsi konversi dalam ASCII yaitu antara simbol-nya dengan urutannya. ASCII mempunyai 255 karakter yang dapat dipergunakan dengan notasi # (pagar) atau dengan fungsi chr dan ord. Fungsi chr juga bisa dipergunakan pada pengoperasian type dan const. Untuk lebih jelasnya perhatikan listing code berikut :
program operasi_aritmatika; uses wincrt; var x :integer; s :char; a,b:real; begin s:=#97 a:=65.59; x:=round(a); b:=trunc(int(a))-round(frac(a)+frac(a+5)); writeln(s); writeln(ord(s)); writeln(x); writeln(b:2:2); writeln(chr(x)); end. |
Output yang di dapat adalah :
A 97 66 64.00 B |
CONTOH-CONTOH PROGRAM SEDERHANA
MENAMPILKAN KATA / KALIMAT / TEKS
Contoh 1 : untuk menampilkan kalimat “Saya Sedang Belajar Pascal”
Analisa masalah :
Output : cetak “SAYA SEDANG BELAJAR PASCAL”
Flowchart :

Source Code dalam program pascal :
program tampil_layar; uses wincrt; begin write('Saya Sedang Belajar Pascal'); end. |
Note :
“Untuk mencetak kata, kalimat atau pun tulisan yang akan ditampilkan dalam program, kita hanya membutuhkan syntax berbentuk “Writeln/Write”. Writeln disini merupakan cara penampilan kalimat sekaligus memberikan perintah Enter”. Seperti pada contoh berikut :
Contoh 2 : Untuk menampilkan kalimat
“SAYA SEDANG BELAJAR PASCAL”
“DI STMIK BUMIGORA MATARAM”
Analisa masalah :
Output : : “ SAYA SEDANG BELAJAR PASCAL”
“ DI STMIK BUMIGORA MATARAM”
Flowchart :

Source Code dalam program pascal :
program tampil_layar1; uses wincrt; begin writeln(‘SAYA SEDANG BELAJAR PASCAL’); writeln(‘DI STMIK BUMIGORA MATARAM’); end. |
PENJUMLAHAN (PENGGUNAAN VARIABEL)
Contoh 1 : menjumlahkan 3 buah nilai
Analisis Masalah :
Output : penjumlahan 3 nilai (D)
Input : nilai A, nilai B, Nilai C
Proses : D = Nilai A + Nilai B + Nilai C
Flowchart :

Source Code dalam program pascal :

program penggunaan_variabel;
uses
wincrt;
var
a : integer;
b : integer;
c : integer;
d : integer;
begin
writeln(‘PROGRAM UNTUK MENJUMLAHKAN 3 NILAI’);
write(‘Masukkan Nilai A : ‘);
readln(a);
write(‘Masukkan Nilai B : ‘);
readln(b);
write(‘Masukkan Nilai C : ‘);
readln(c);
d := a+b+c;
write(‘Jumlah Ke tiga Nilai Tersebut adalah = ‘);
write(d);
end.
Note :
“Dalam kasus diatas kita membutuhkan 3 (tiga) buah input/masukan (a,b,c), syntax yang kita gunakan adalah read/readln. Dimana fungsi dari syntax ini adalah untuk mendefinisikan variabel-variabel tersebut kedalam program yang kita buat, sehingga variabel-variabel tersebut dapat dikenali oleh kompiler sehingga kita bisa melakukan proses (penjumlahan, pengurangan, perkalian, pembagian, perbandingan, dll).
Contoh 2 : Menghitung Rata-rata N bilangan
Analisa Masalah :
Output : rata_rata
Input : a, b, c, d, e
Proses : rata_rata = (a + b + c + d + e)/N
Flowchart :

Source Code dalam program pascal :

program menentukan_rata_rata;
uses
wincrt;
var
a : integer;
b : integer;
c : integer;
d : integer;
e : integer;
N : integer;
rata_rata : real;
begin
N := 5;
writeln('PROGRAM UNTUK MENCARI RATA-RATA 5 BILANGAN');
write('Masukkan Nilai A : ');
readln(a);
write('Masukkan Nilai B : ');
readln(b);
write('Masukkan Nilai C : ');
readln(c);
write('Masukkan Nilai D : ');
readln(d);
write('Masukkan Nilai E : ');
readln(e);
rata_rata := (a+b+c+d+e)/N;
write('Rata-rata N bilangan adalah = ',rata_rata:2:2);
end.
Contoh 3 : Menghitung Biaya Menginap di Sebuah Hotel
Analisis Masalah :
Output : Jumlah bayar
Input : Nama, Usia, Status, Lama_menginap, Harga Kamar/hari
Proses : Jumlah_bayar = Lama_menginap * HK (harga kamar)
Flowchart :

Source Code dalam program pascal :

program hotel;
uses wincrt;
var
nama,status : string;
usia : integer;
LM : longint;
HK : longint;
Jum_byr : real;
begin
writeln('PROGRAM MENGHITUNG BIAYA SEWA KAMAR');
write('Nama Penyewa : ');readln(nama);
write('Usia Penyewa : ');readln(usia);
write('Status Penyewa : ');readln(status);
write('Lama Menginap : ');readln(LM);
write('Harga Kamar Perhari : ');readln(HK);
Jum_byr := LM*HK;
write('Total Biaya Sewa : ',jum_byr:5:2);
end.
PROSES PERCABANGAN (KONDISI) “IF”
a) Dengan 2 kondisi
Contoh 1 : Menentukan Kelulusan
Analisis Masalah :
Output : Cetak Keterangan
Input : Nama, NIS, Nilai
Proses : If nilai >= 80, maka cetak “LULUS”
If nilai < 80, maka cetak “GAGAL”
Flowchart :

Source Code dalam program pascal :

program kondisi;
uses wincrt;
var
nama,NIS : string;
nilai : real;
begin
writeln('PROGRAM MENENTUKAN NILAI KELULUSAN');
write('Nama : '); readln(nama);
write('NIS : '); readln(NIS);
write('Nilai : '); readln(nilai);
if nilai >= 80 then
write('Keterangan : LULUS')
else
write('Keterangan : GAGAL');
end.
b) Dengan beberapa kondisi
Contoh : Program untuk mencari rata-rata 3 nilai dan Grade
Input : nilai A, nilai B, nilai C
Output : rata-rata 3 nilai dan Grade
Proses : rata-rata 3 nilai (D) = (nilai A + nilai B + nilai C) / 3
If D >= 80, cetak Grade A
If D >= 65, cetak Grade B
If D >= 50, cetak Grade C
If D >= 40, cetak Grade D
If D < 40, cetak Grade E
Flowchart :


program penggunaan_kondisi;
uses
wincrt;
var
a : integer;
b : integer;
c : integer;
d : integer;
begin
writeln('PROGRAM UNTUK MENCARI RATA-RATA 3 NILAI');
write('Masukkan Nilai A : ');readln(a);
write('Masukkan Nilai B : ');readln(b);
write('Masukkan Nilai C : ');readln(c);
d := (a+b+c) div 3;
write('Rata-rata Ke tiga Nilai Tersebut adalah = ');
writeln(d);

if d >= 80 then write(‘Grade A')
else if d >= 65 then write('Grade B')
else if d >= 50 then write('Grade C')
else if d >= 40 then write('Grade D')
else
write('Grade E')
end.
c) Dengan menggunakan Case
Contoh : Program untuk mencari rata-rata 3 nilai dan Grade
Input : nilai A, nilai B, nilai C
Output : rata-rata 3 nilai dan Grade
Proses : rata-rata 3 nilai (D) = (nilai A + nilai B + nilai C)/3
If D >= 80, cetak Grade A
If D >= 65, cetak Grade B
If D >= 50, cetak Grade C
If D >= 40, cetak Grade D
If D < 40, cetak Grade E
Flowchart :

Source Code dalam program pascal :

program penggunaan_kondisi;
uses
wincrt;
var
a,b,c,d : integer;
begin
writeln('PROGRAM UNTUK MENCARI RATA-RATA 3 NILAI');
write('Masukkan Nilai A : '); readln(a);
write('Masukkan Nilai B : '); readln(b);
write('Masukkan Nilai C : '); readln(c);
d := (a+b+c) div 3;
write('Rata-rata Ke tiga Nilai Tersebut adalah = ');
writeln(d);
case d of
80..100 : write('Grade A');
65..79 : write('Grade B');
50..64 : write('Grade C');
40..49 : write('Grade D')
else
write('Grade E')
end;
end.
KONDISI “AND” DAN “OR”
Contoh : Program Razia SIM dan STNK
Output : Boleh/Dilarang Mengemudi
Input : SIM, STNK
Flowchart :

Atau :

Source Code dalam program pascal :

program kondisi_and_or;
uses
wincrt;
var
sim : string;
stnk: string;
begin
writeln('PROGRAM RAZIA MOTOR');
write('Apakah Ada SIM [y/t] ? : '); readln(sim);
write('Apakah Ada STNK [y/t] ? : '); readln(stnk);
if ((sim='y')or(sim='Y')) and ((stnk='y')or(stnk='Y'))then
write('Boleh Mengemudi')
else
writeln('Tidak Boleh Mengemudi, BAYAR 30.000')
end.
LOOPING (PERULANGAN) ”FOR” COUNTED LOOP
Counted loop adalah Perulangan dengan jumlah yg sudah Pasti / diketahui sebelumnya
Contoh : Program Menampilkan kata “Saya Belajar looping 10
Perulangan :
Ouput : Saya Belajar Looping 10 x Perulangan
Flowchart :


program looping;
uses
wincrt;
var
i : integer;
begin
for i := 1 to 10 do
writeln('Saya Belajar LOOPING 10x perulangan');
end.
LOOPING(PERULANGAN) “WHILE” COUNTED
Contoh : Program menampilkan “Looping With While”
Output : “Looping With While” sebanyak 10 kali
Flowchart :

Source Code dalam program pascal :

program while1;
uses
wincrt;
var
i : integer;
begin
while i < 10 do
begin
i := i + 1;
writeln('LOOPING WITH WHILE yang ke-', i);
end;
end.
LOOPING (PERULANGAN)/”WHILE” UNCOUNTED
Uncounted loop adalah pengulangan dengan jumlah belum diketahui.
Contoh : program mendata mahasiswa
Input : nama, nim
Output : nama, nim
Flowchart :

Source Code dalam program pascal :

program looping;
uses
wincrt;
var
i : string;
nama : string [15];

begin
while i<>'t' do
begin
clrscr;
writeln('PROGRAM MENDATA MAHASISWA');
write('Nama : '); readln(nama);
write('Nim : '); readln(nim);
clrscr;
writeln('ABSENSI MAHASISWA');
writeln('Nama : ',nama);
writeln('Nim : ',nim);
write('Looping lagi [y/t]? ');
readln(i);
end;
end.
ARRAY 1 DIMENSI “PROGRAM PENDATAAN MAHASISWA”
Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-
komponen yang mempunyai tipe sama
Contoh : program pendataan mahasiswa menggunakan ARRAY
Input : nama, nim, alamat
Output : nama, nim, alamat
Flowchart :

Source Code dalam program pascal :

program array1_dimensi;
uses
wincrt;
var
jum,i : integer;
nama : array [1..100] of string [20];
nim : array [1..100] of string [10];
almt : array [1..100] of string [30];
begin
writeln('Program Mendata Mahasiswa STMIK BM');
write('Masukkan Jumlah Mahasiswa = '); readln(jum);
for i := 1 to jum do
begin
writeln('No',i);
write('Nama Mahasiswa : ');
readln(nama[i]);
write('Nim Mahasiswa : ');
readln(nim[i]);
write('Alamat Mahasiswa : ');
readln(almt[i]);
end;
clrscr;
for i := 1 to jum do
begin
writeln('No',i);
writeln('Nama : ',nama[i]);
writeln('Nim : ',nim[i]);
writeln('Alamat : ',almt[i]);
end;
end.
ARRAY 1 DIMENSI “PROGRAM PENDATAAN MHS” DGN MODIFIKASI TAMPILAN

program array1_dimensi;
uses
wincrt;
var
jum,i : integer;
nama : array [1..100] of string [20];
nim : array [1..100] of string [10];
almt : array [1..100] of string [30];
begin
writeln('Program Mendata Mahasiswa STMIK BM');
write('Masukkan Jumlah Mahasiswa = '); readln(jum);
for i := 1 to jum do
begin
writeln('No',i);
write('Nama Mahasiswa : '); readln(nama[i]);
write('Nim Mahasiswa : '); readln(nim[i]);
write('Alamat Mahasiswa : '); readln(almt[i]);
end;
clrscr;

writeln('------------------------------------------------');
writeln('No Nama Nim Alamat ');
writeln('------------------------------------------------');
for i := 1 to jum do
begin
gotoxy(01,4+i); writeln(i);
gotoxy(05,4+i); write(nama[i]);
gotoxy(26,4+i); write(nim[i]);
gotoxy(44,4+i); writeln(almt[i]);
end;
writeln('--------------------------------------------');
end.
FUNCTION (FUNGSI DALAM PASCAL)
Program ini merupakan suatu program yang menentukan nilai terbesar dari 3 buah nilai. Dimana dalam program ini ditekankan dalam penggunaan “FUNGSI” dimana fungsi itu sendiri dapat menampilkan nilai dari fungsi itu sendiri.
Bentuk Penulisannya seperti contoh berikut :

program terbesar;
uses wincrt;
function besar (x, y, z : integer) : integer;

if x > y then
begin
if x > z then
besar:= x
else
besar := z
|
else
begin
if y > z then
besar := y
else
besar := z
end;
end;
var
a, b,c : integer;
begin
writeln('PROGRAM MENCARI NILAI TERBESAR');
writeln;
write('Masukkan Nilai 1 = '); readln(a);
write('Masukkan Nilai 2 = '); readln(b);

write('Jadi Nilai Terbesar = ',besar(a,b,c));
end.
PROCEDURE (PROSEDUR)
Program ini merupakan program untuk mencari Gaya suatu usaha. Dimana dalam program ini menginputkan massa (m), percepatan (a). Sehingga dapat diketahui gaya dari kasus ini dengan rumus : F = m.a. Untuk membuat program ini, kita menggunakan prosedur. Syntax penulisannya sebagai berikut :

program gaya_F;
uses wincrt;

procedure gaya(var a,m: real; var F : real);
begin
F := m*a;
end;
var
massa, perc, F : real;
begin
gotoxy (20,1); writeln('#################################');
gotoxy (20,2); writeln('# PROGRAM UNTUK MENGHITUNG GAYA #');
gotoxy (20,3); writeln('#################################');
writeln;writeln;
write('Masukkan Massa = '); readln(massa);

gaya(massa,perc,F);
writeln('Gaya (F) = Massa (m) * Percepatan (a)');
write('Jadi Besar Gaya = ',F:5:2);
end.
DAFTAR PUSTAKA
Gold Generation (2G). 2006. Lembar Kegiatan Mahasiswa. Mataram : Gold Generation
Liem, Inggriani. 2007.Draft Diktat Kuliah Dasar Pemrograman (Bagian Pemrograman Prosedural). Kelompok Keahlian Rekayasa Perangkat Lunak & Data (DSE). ITB : STEI
Marzalih, Fauziah. 2005. Bermain Pemrograman dengan Pascal. Bekasi.
Munir, Rinaldi. 2004. Algoritma dan Pemrograman dalam Bahasa Pascal dan C Edisi ke-3 BUKU 1. Bandung : Informatika
Soewarno, Hendra. Pengantar Algoritma dan Komputer.PDF
Supardi, Yuniar. Pascal dan Flowchart. Dinastindo
Materi-materi kuliah dari STMIK Bumigora.
1. Algoritma dan Pemrograman Pascal (Dyah Susilowati, M.Kom)
2. Pemrograman Terstruktur (Khasnur Hidjah, S.Kom)
flowchartnya mana nodk
BalasHapusmakasih atas infonya neh
BalasHapusmbak blognya kebanyakan fotonya jadinya gimana gtu
BalasHapustapi thanks ilmunya moga makin brtamabah,,,,