"PENGERTIAN DASAR" Dalam Pemrograman Prosedural
Pada bab ini akan dijelaskan definisi beberapa pengertian dasar yang penting
sehubungan dengan algoritma dan pemrograman, yang akan diberikan dalam contoh
pada kehidupan sehari-hari. Mungkin pengertian-pengertian tersebut mula-mula terasa
abstrak bagi beberapa pembaca, tapi baiklah coba dipahami.
Pengertian pertama yang akan dijelaskan adalah aksi. Suatu aksi adalah kejadian yang
terjadi pada suatu selang waktu terbatas dan menghasilkan efek neto yang telah
terdefinisi dengan baik dan memang direncanakan. Pada deskripsi tersebut,
ditekankan benar efek tersebut harus “direncanakan”, maka berarti dititikberatkan
pada kegunaannya. Jika seseorang tertarik pada suatu aksi, maka jelas bahwa
minatnya adalah pada efek netonya.
Suatu aksi harus terjadi pada selang waktu yang terbatas, dimulai pada saat T0 dan
berakhir pada saat T1. Maka efek neto dari aksi dapat dijelaskan dengan
membandingkan keadaan pada saat T0 dan keadaan pada saat T1.
Contoh dari suatu aksi adalah Ibu Tati yang MENGUPAS KENTANG untuk
mempersiapkan makan malam. Pernyataan ini mencakup hal yang luas ruang
lingkupnya, misalnya:
- Apakah kentangnya harus dibeli dulu atau sudah ada di dapur?
- Apakah yang dimaksud dengan mengupas kentang untuk makan malam berarti
sampai dengan kentang terhidang?
- Ketika kentangnya terhidang, jadi sup, digoreng, atau direbus saja?
Maka kita harus membatasi dengan jelas keadaan awal yang menjadi titik tolak
mengupas kentang dan keadaan akhir yang ingin dicapai supaya dapat
“merencanakan” efek neto yang diinginkan. Untuk itu ditentukan:
- Initial state (I.S.)/keadaan awal: T0, adalah kentang sudah ada di kantong kentang,
yang ditaruh di rak di dapur, di mana Ibu Tati akan mengupasnya
- Final state (F.S.)/keadaan akhir: T1 kentang dalan keadaan terkupas di panci, siap
untuk dimasak dan kantong kentangnya harus dikembalikan ke rak lagi.
Pengandaian yang lain adalah bahwa persediaan kentang si ibu selalu cukup untuk
makan malam. Penambahan kentang ke dapur di luar tinjauan masalah ini. Ini adalah
contoh bagaimana kita menentukan batasan dari persoalan yang akan diprogram.
Suatu kejadian dapat dipandang sebagai urut-urutan dari beberapa kejadian, berarti
dapat diuraikan dalan beberapa (sub) aksi yang terjadi secara sekuensial. Dengan
sudut pandang ini, maka efek kumulatifnya sama dengan efek neto dari seluruh
kejadian. Dikatakan bahwa kejadian tersebut dianggap sebagai sequential process
atau disingkat proses.
Penggolongan suatu kejadian sebagai proses atau aksi adalah relatif. Kejadian yang
sama dapat dianggap sebagai aksi ataupun sebagai proses. Kalau lebih dititikberatkan
pada efek netonya, yaitu keadaan “ sebelum dan sesudah”, maka kejadian tersebut dianggap sebagai
proses. Dengan menganggap kejadian tersebut suatu proses, T0
adalah awal dari sebuah sub-aksi dan setiap akhir dari suatu sub-aksi akan merupakan
awal dari sub-aksi berikutnya, dengan suatu keistimewaan, akhir dari sub-aksi yang
terakhir adalah T1 yaitu akhir dari seluruh kejadian.
Penggolongan suatu kejadian menjadi proses atau aksi tidak ada hubungannya dengan
sifat dari kejadian itu sendiri melainkan tergantung dari cara peninjauan. Jika cara
peninjauan dilakukan dari sudut pandang yang berbeda, maka biasanya hasil antara
yang ingin diperhatikan juga berbeda.
Misalkan kejadian tentang Ibu Tati mengupas kentang, dapat dijelaskan oleh urut-
urutan sub-aksi yang dilakukan oleh ibu tersebut, yaitu:
• Ambil kantong kentang dari rak
• Ambil panci dari almari
• Kupas kentang
• Kembalikan kantong kentang dari rak
Pada contoh tersebut, kejadian dijelaskan sebagai urut-urutan dari empat sub-aksi
yang diungkapkan berdasarkan suatu pengamatan. Jika dari hasil pengamatan tidak
dipandang perlu untuk menjelaskan bahwa kantong kentang diambil dari rak
sebelum panci diambil dari almari, maka cukup dituliskan:
• Ambil kantong kentang dari rak dan panci dari almari
• Kupas kentang
• Kembalikan kantong kentang ke rak
Ada kejadian yang mempunyai suatu pola tingkah laku, atau disingkat pola.
Kejadian tersebut akan terjadi jika pola ini diikuti. Efek neto dari kejadian ditentukan
sepenuhnya oleh pola tersebut dan (mungkin) oleh keadaan awal (yaitu keadaan pada
saat T0). Kejadian yang lain mungkin mengikuti pola yang sama. Jika dua kejadian
dengan pola yang sama menghasilkan efek neto yang berbeda, maka efek neto
tersebut pasti tergantung pada keadaan awal, dan dapat dipastikan pula bahhwa
keadaan awal dari keduanya berbeda.
Bagaimana cara mengamati pola yang sama dari berbagai kejadian, tidak dapat
dijelaskan disini. Jika kita berjumpa dengan seorang teman, kita pasti segera dapat
mengenalinya, apapun ekspresi yang sedang ditampilkannya. Mungkin ia sedang
gembira, tertawa, menangis, atau bahkan ekspresi lain yang belum pernah
ditampilkannya. Kita dapat mengenali teman tersebut karena kita kenal akan polanya.
Demikian juga dengan jejadian yang berbeda, dapat pula dikenal pola-pola yang
sama, walaupun disarikan dari keadaan awal dan efek neto yang mungkin berbeda.
Mengenali pola ini sama halnya nanti dengan mengenali pola-pola solusi algoritmik
untuk kelas persoalan tertentu yang akan dipelajari, menjadi bagian dari belajar
memrogam.
Kembali ke contoh Ibu Tati yang mengupas kentang. pada suatu hari Ibu Tati
mengupas kentang untuk malam dan kejadian tersebut kita amati. Keesokan harinya,
ia mengupas kentang lagi untuk makan malam juga. Pada pengamatan yang kedua,
kita amati hal-hal yang sama dengan hari sebelumnya. Dapatlah kita katakan: “Jelas,
pengamatan tentang kedua kejadian akan sama karena ibu itu mengerjakan hal-hal
sama?”
Pernyataan terakhir tersebut dapat benar atau salah, tergantung pada apa yang
dimaksud dengan “mengerjakan hal yang sama”. Untuk menyatakan “hal yang sama”
harus hati-hati. Tinjaulah murid-murid sekolah dasar yang berpakaian sama, karena
mereka memakai seragam. Apa yang ingin dinyatakan sebagai “sama” adalah bahwa
baju dari setiap murid terbuat dari bahan yang sama dan modelnya sama pula, tanpa
memperhitungkan kemungkinan adanya perbedaan ukuran tergantung dari perawakan
setiap murid. Demikian pula, seorang murid dapat mempunyai lebih dari satu stel
seragam yang sama.
Kedua dari aksi Ibu Tati mengupas kentang pada dua hari yang berlainan tersebut
juga dapat dipandang berbeda, seperti halnya baju murid sekolah dasar tersebut.
Kejadian yang satu terjadi pada hari Sabtu dan yang lain pada hari Minggu. Karena
setiap kentang hanya dapat dikupas satu kali, maka kentang yang terlibat pada kedua
kejadian tersebut “berbeda” pula. Pada hari Minggu, mungkin kantong kentangnya
berisi lebih sedikit dari kemarinnya, dan sebagainya.
Tetapi kedua kejadian mengupas kentang pada hari Sabtu dan Minggu dapat pula
dikatakan sama karena kemiripannya, dan disepakati untuk memberi nama yang sama
untuk kedua aksi tersebut, misalnya “MENGUPAS KENTANG UNTUK MAKAN
MALAM”.
Algoritma adalah deskripsi dapat terdiri dari suatu pola tingkah laku, dinyatakan
dalam primitif, yaitu aksi-aksi yang didefinisikan sebelumnya dan diberi nama, dan
diasumsikan sebelumnya bahwa aksi-aksi tersebut dapat dikerjakan sehingga dapat
menyebabkan kejadian yang dapat diamati.
Suatu algoritma dapat terdiri dari beberapa sub-algoritma, jika setiap sub-aksi juga
dapat diuraikan dalam urut-urutan yang dapat dimengerti dengan baik dan terbatas.
Pengertian algoritma, yaitu sebagai suatu petunjuk untuk mewujudkan suatu efek
neto, telah sangat dikenal dalam kehidupan sehari-hari. Petunjuk untuk merajut,
resep-resep kue, aturan pakai suatu peralatan elektronik, adalah algoritma, yaitu
deskripsi dari pola tingkah laku yang jika dikerjakan akan membawa ke tujuannya.
Aksi primitif harus dapat dikerjakan. “Pergi ke seberang jalan!” adalah aksi yang
dapat dikerjakan, sedangkan “Pergi ke Neraka!” bukan algoritma karena tidak dapat
dikerjakan.
Urut-urutan langkah harus dapat dimengerti dengan baik, oleh pembuat algoritma
maupun oleh yang akan mengerjakan. Tidak boleh ada sedikit pun salah pengertian di
antara keduanya supaya dapat dihasilkan efek yang diinginkan.
Jika pada suatu resep kue dituliskan “Panaskan dulu oven”, maka instruksi tersebut
tidak jelas karena berapa lama dan sampai temperatur oven mencapai berapa derajat
hal tersebut harus dilakukan, tidak ditentukan dengan pasti.
Sekarang perhatikanlah laporan pengamatan tentang kejadian Ibu Tatiyang mengupas
kentang:
• Ibu Tati mengambil kantong kentang dari rak
• Ibu Tati mengambil panci dari almari
• Ibu Tati mengupas kentang
• Ibu Tati mengembalikan kantong kentang ke rak
Bandingkanlah hasil pengamatan di atas dengan teks berikut, yang merupakan
algoritma, yaitu sekumpulan intsruksi yang diberikan oleh Ibu Tati kepada pembantu
barunya:
• Ambil kantong kentang dari rak
• Ambil panci dari almari
• Kupas kentang
• Kembalikan kantong kentang ke rak
Jika teks algoritma tersebut diberikan kepada pembantunya yang bernama Ina, maka
jika dilaksanakan akan menghasilkan pengamatan kejadian :
• Ina mengambil kantong kentang dari rak
• Ina mengambil panci dari almari
• Ina mengupas kentang
• Ina mengembalikan kantong kentang ke rak
Atau jika putri sulung Ibu Tati yang bernama Aida pada suatu hari dengan senang hati
mengerjakan pengupasan kentang, maka akan dihasilkan pengamatan kejadian :
• Aida mengambil kantong kentang dari rak
• Aida mengambil panci dari almari
• Aida mengupas kentang
• Aida mengembalikan kantong kentang ke rak
Dengan membandingkan teks hasil pengamatan terhadap algoritma, dapat ditarik
kesimpulan: algoritma Ibu Tati menyatakan cara-cara untuk melakukan sesuatu
sedangkan laporan pengamatan menjelaskan tentang kejadian itu sendiri. Adakah
kesimpulan yang lain? Tentu saja tidak ada, jika kita batasi bahwa algoritma yang
diberikan adalah sederetan aksi-aksi bernama, yang harus dikerjakan dengan urutan
tertentu. Dengan batasan ini, pengamat-pengamat dapat melaporkan dengan baik
suatu aksi sesuai yang terjadi. Tetapi kelakuan Ibu Tati (atau pembantu) dapat lebih
rumit. Misalnya sehabis mengambil panci ia memakai celemek jika perlu, yaitu jika
kebetulan ia memakai baju berwarna muda. Maka pada suatu hari ia memakai
celemek, sedangkan pada hari lain tidak.
Secara umum dapat menyebut tentang celemek dan kondisi yang menyebabkan
celemek tersebut dipakai, satu laporan pengamatan dapat ditulis unutk setiap kejadian:
Misalnya suatu hari, dihasilkan laporan pengamatan sebagai berikut :
• Ibu Tati mengambil kantong kentang dari rak
• Ibu Tati mengambil panci dari almari
• Ibu Tati memakai celemek
• Ibu Tati mengupas kentang
• Ibu Tati mengembalikan kantong kentang ke rak
atau pada suatu hari yang lain, dihasilkan laporan pengamatan yang tidak sama
dengan sebelumnya:
• Ibu Tati mengambil kantong kentang dari rak
• Ibu Tati mengambil panci dari almari
• Ibu Tati mengupas kentang
• Ibu Tati mengembalikan kantong kentang dari rak
Sekarang, masalahnya adalah bagaimana menuliskan teks pengamatan yang sama dari
kedua laporan pengamatan yang berbeda tersebut, misalnya:
• Ambil kantong kentang dari rak
• Ambil panci dari almari
• Lakukan persiapan, tergantung pakaian
• Kupas kentang
• Kembalikan keranjang kentang ke rak
Dengan pengertian implisit “lakukan persiapan tergantung pakaian” menyertakan
tidak ada aksi jika pakaian tidak berwarna muda dan menyatakan pemakaian celemek
jika pakaian berwarna muda.
Tetapi jika diinginkan lebih terinci dan ingin menyebut secara eksplisit maka lakukan
persiapan tergantung pakaian harus diganti dengan hasil pengamatan pada hari
yang bersangkutan.
Maka pada hari Sabtu :
• Ibu Tati melihat bahwa bajunya tidak berwarna muda karena itu ia tidak memakai celemek
(berarti tidak ada aksi memakai celemek)
Sedangkan laporan pada hari Minggu:
• Ibu Tati melihat bahwa bajunya berwarna muda karena itu ia memakai celemek
Pada derajat yang rinci tidak mungkin kedua kejadian ini dilaporkan dalam satu
laporan pengamatan, karena terperinci, kedua kejadian tersebut berbeda.
Inilah algoritma, yaitu menyatakan pola tingkah laku yang sama untuk dua, bahkan
tak berhingga kejadian yang berbeda dan dengan menjelaskan pola tersebut
memberikan sesuatu yang daoat terjadi pada suasana lingkungan apapun (dalam
contoh tersebut, baju warna gelap ataupun muda). Apa yang sebenarnya terjadi jika
suatu pola tingkah laku diikuti dapat ditentukan pola oleh keadaan yang berlaku
ketika aksi tersebut mulai.
Ada dua hal yang penting. Pertama, pengamatan apakah baju si ibu berwarna muda,
dan kedua berdasarkan pengamatan tersebut aksi “memakai celemek” bisa terjadi atau
tidak (berarti aksi tersebut kondisional). Maka notasi untuk aksi kondisional
dinyatakan oleh kondisi dan aksi.
• Ambil kantong kentang dari rak
• Ambil panci dari almari
• if baju berwarna muda then
Pakai celemek
• Kupas kentang
• Kembalikan kantong ke rak
Maka aksi kondisional mengandung dua aksi, aksi pertama harus suatu pengamatan.
Hasil dari pengamatan ini adalah suatu keadaan benar (“true”) atau salah (“false”).
Aksi kedua menghasilkan kejadian berlangsung sesuai dengan hasil pengamatan. Jika
pengamatan memberikan hasil “true”, maka aksi terjadi, jika pengamatan
memberikan hasil “false”, maka aksi tidak dilakukan.
Selain notasi untuk aksi kondisional, kita perlukan lagi beberapa notasi yang
menunjukkan bahwa algoritma lebih tinggi tingkatannya dan menyangkut abstraksi
dari pengamatan, yaitu notasi yang mewakili proses pengulangan. Misalnya kita
ingin menyatakan bahwa “mengupas kentang” adalah suatu proses mengerjakan satu
buah kentang pada suatu saat, maka aksi primitif kita adalah “kupas 1 kentang”. Jika
jumlah kentang yang ingin dikupas selalu sama setiap hari, misalnya 25 maka sebagai
ganti “kupas kentang” dapat dituliskan 25 kali “kupas 1 kentang”, masing-masing
pernyataan dituliskan per baris sehingga keseluruhannya dituliskan dalam 25 baris
sekuensial. Tetapi jika kentang yang dikupas tidak selalu sama (dan hal ini lebih
sering terjadi dalam kenyataan) sedangkan kita tetap menginginkan pola kelakuan
yang sama apa yang harus dilakukan? Setiap kali kita harus mengganti teks, satu jenis
teks untuk satu kali pengamatan. Ini bukan tujuan dari penulisan algoritma yang
mampu menghasilkan pengamatan yang berbeda-beda. Dianggap bahwa si ibu
mampu untuk melongok ke panci dan dengan demikian mengamati apakah kentang
yang dibutuhkan telah cukup.
Jika diketahui bahwa kasus yang ekstrem adalah mengupas 500 kentang (karena
kentangnya sangat kecil-kecil dan ada pesta), artinya Ibu Tati tidak mungkin
mengupas lebih dari 500 kentang, kita dapat menuliskan algoritma umum untuk
mengupas kentang dengan menuliskan 500 (lima ratus) kali secara sekuensial
pernyataan berikut:
• if jumlah kentang yang sudah dikupas (belum cukup) then
Kupas 1 kentang
Siapa pun pasti merasa keberatan dengan cara penulisan semacam itu, yaitu harus
menuliskan hal yang sama 500 kali. Dengan asumsi dasar bahwa sebelumnya harus
diketahui berapa jumlah kentang yang harus dikupas, batas seperti itu terlalu besar
untuk rata-rata yang terjadi. Jika sebenarnya hanya diinginkan mengupas 25 buah
kentang, maka pengamatan ke-26 akan memberikan hasil “false” yang pertama, dan
474 pengamatan berikutnya tidak akan memberikan hasil pengamatan yang baru.
Sekali si ibu telah tahu bahwa kentang yang dikupasnya cukup, tidak perlu lagi
memaksa dia melongok ke panci 474 lagi untuk meyakinkan dirinya sendiri.
Untuk mengatasi hal ini, diperkenalkan suatu notasi yang menjelaskan tentang suatu
proses pengulangan sampai dijumpai keadaan tertentu, dan dituliskan sebagai :
while (kondisi) do
Aksi
Dengan notasi ini algoritma mengupas kentang dapat dituliskan :
• Ambil kantong kentang dari rak
• Ambil panci dari almari
• if baju berwarna muda then
pakai celemek
• while jumlah kentang terkupas belum cukup do
Kupas 1 kentang
• Kembalikan kantong kentang ke rak
Contoh berikut, akan dijelaskan pola kelakuan dari Ibu Tati yang menggunakan
primitif sama, yang karena alasan tertentu selalu mengupas kentang dengan jumlah
genap untuk masakannya. Maka dapat dituliskan algoritma sebagai berikut:
• Ambil kantong kentang dari rak
• Ambil panci dari almari
• if baju berwarna muda then
pakai celemek
• while jumlah kentang terkupas belum cukup do
Kupas 1 kentang
Kupas 1 kentang
• Kembalikan kantong kentang ke rak
Contoh di atas menunjukkan bahwa aksi primitif yang sama dapat menggambarkan
pola kelakuan yang berbeda.
Berikut ini diandaikan bahwa Ibu Tati dalah penggemar kentang sehingga ia selalu
mempunyai beberapa kantong kentang di raknya. Kantong kentangnya kemungkinan
ada yang berisi ataupun kosong.
Jika pengupasan kentang dapat dilakukan dari beberapa kantong, dapat dituliskan
algoritma untuk mengupas sejumlah tertentu kentang sebagai berikut:
• Ambil kantong kentang dari rak
• Ambil panci dari almari
• depend on baju
berwarna muda : pakai celemek
tidak berwarna muda : -
• while jumlah kentang terkupas belum cukup do
depend on kantong kentang
ada isinya : Kupas 1 kentang
tidak ada isinya : Ambil kantong kentang lain dari rak
Kupas 1 kentang
Dari contoh yang terakhir dapat pula ditarik kesimpulan bahwa suatu algoritma dapat
dibangun dari aksi primitif dan gabungan dari notasi standard yang telah kita kenal.
Satu algoritma mewakili beberapa kejadian yang berdasarkan pengamatan berbeda.
Algoritma adalah suatu sebuah teks yang tidak tergantung waktu, konsepnya statik. Di
pihak lain ada realisasi kejadian yang dicakup oleh algoritma tersebut, yaitu suatu
eksekusi yang dinamik, terjadi tergantung pada waktu, yang dijelaskan sebagai hasil
dari pengamatan.
Telah dikatakan bahwa aksi harus terjadi dalam selang waktu yang terbatas, maka
algoritma yang menjelaskan tentang aksi tersebut harus mencakup hal tersebut.
Kita tidak boleh menuliskan:
• while pakaian berwarna muda do
Kupas 1 kentang berikutnya
Karena pengupasan kentang tidak mempengaruhi warna pakaian, hanya ada duia
kemungkinan: pakaian tidak berwarna muda dan pengupasan kentang tidak pernah
dilakukan atau pakaian berwarna muda dan proses pengupasan kentang akan
dilakukan terus menerus, yang berarti bahwa jika kebetulan pakaian berwarna
muda, maka pengamatan akan menghasilkan sesuatu yang tidak pernah berhenti
(looping). Contoh ini adalah sebuah algoritma yang salah karena dapat
mengakibatkan pengulangan yang tidak pernah berhenti.
Tidak mudah untuk menentukan apakah suatu teks yang tampak seperti sebuah
algoritma adalah memang algoritma yang benar. Bahkan tidak mungkin untuk
membuat sebuah algoritma yang mamapu memeriksa suatu teks dan menentukan
apakah teks tersebut suatu algoritma yang benar. Maka adalah tanggung jawab moral
orang-orang yang profesinya membuat algoritma untuk mempersiapkan bukti bahwa
algoritma yang dibuatnya adalah sebuat algoritma yang benar.
Pengertian dasar yang lain adalah tentang mesin. Suatu mesin adalah sebuah
mekanisme yang dapat menyebabkan suatu aksi terjadi mengikuti suatu pola tingkah
laku yang dijelaskan oleh algoritma yang urut-urutan pelaksanaannya dinyatakan
dalan aksi primitif mesin tersebut.
Pada contoh-contoh di atas, diberikan beberapa algoritma tentang mengupas kentang.
Semua algoritma dinyatakan dalam primitif yang sama yang kemudian melahirkan
teks yang dinyatakan sebagai “pengamatan kejadian”. Siapapun yang mampu untuk:
- Mengerjakan aksi primitif tersebut,
- Menerima algoritma yang dinyatakan dengan primitif tersebut dan akan
melaksanakan langkah-langkah dengan patuh,disebut sebagai mesin.
Jika saya dapat membuat teman saya, pembantu saya, tetangga kiri saya, atau tetangga
kanan saya mengerjakan pengupasan kentang tersebut tergantung algoritma yang saya
berikan, maka teman, pembantu, tetangga kiri maupun tetangga kanan saya adalah
sebuah mesin.
Suatu mekanisme yang hanya dapat mengerjakan satu hal yang selalu sama (misalnya
toilet flusher) tidak dapat disebut suatu mesin. Hal penting yang dapat dikerjakan oleh
mesin adalah aksi-aksi yang sekuensial, kemampuan menerima suatu pola tingkah
laku dan berkelakuan berdasarkan pola tersebut. Mesin adalah pengeksekusi atau
pelaku dari algoritma.
Algoritma yang mengontrol pola tingkah laku suatu mesin disebut program. Dengan
perkataan lain, program adalah algoritma yang dimaksudkan untuk dieksekusi oleh
mesin. Dalam pengertian algoritma yang harus dapat dimengerti dengan baik, tanpa
menghiraukan bagaimana pengertian tersebut diwujudkan. Mesin terdiri dari
sekumpulan peralatan. Berkat konstruksinya, mesin hanya dapat mengerjakan
sekumpulan instruksi-instruksi tertentu yang terbatas jumlahnya yang telah terdefinisi.
Jika kita berikan suatu program kepada mesin, maka dengan patuh ia akan
mengerjakan persis seperti yang dinyatakan dalam algoritma. Mesin sangat “patuh”
terhadap instruksi yang kita berikan, dengan resiko kita harus mendefinisikan
instruksi tersebut dengan rinci. Untuk seorang pemrogram yang belum
berpengalaman, hal ini sering menimbulkan keluhan, tetapi dengan bertambahnya
pengalaman, ia akan menyadari bahwa mesin akan selalu mengerjakan hal-hal yang
dianggap “tidak umum” tanpa membantah. Bandingkanlah dengan pembantu yang
seringkali mengadakan penafsiran sendiri terhadap instruksi kita supaya ia lebih enak,
tetapi sering malahan menjengkelkan dan menyulitkan kita karena interpretasi dan
tingkah lakunya yang tak terkontrol oleh kita.
Program yang mengontrol mesin harus disusun sedemikian rupa jika ingin dipakai
sesuai keinginan. Misalnya, kita ingin menyuruh mesin tersebut untuk memecahkan
masalah yang kita hadapi, maka kita jarus membuat program yang sesuai untuk
masalah tersebut dan mesin akan mengerjakan program sesuai dengan algoritma yang
ditulis. Dalam hal ini mesin tersebut adalah alat bantu untuk memecahkan dari sudut
pandang ini.
Pada bagian berikutnya akan dijelaskan, apakah pemrograman itu, dan mesin
pengeksekusi program yang selanjutnya disebut sebagai komputer. Primitif-primitif
yang akan diuraikan pada bab-bab selanjutnya adalah primitif yang dapat dilakukan
oleh komputer. Aksi primitif komputer terlalu detil untuk jalan pikiran manusia,
sehingga terlalu sulit untuk menguraikan algoritma dalam primitif langsung komputer.
Karena itu diperlukan mesin abstrak, yaitu mekanisme yang diasumsikan dapat
dilakukan oleh sekumpulan primitif yang diberikan. Berangsur-angsur, secara
bertahap, mesin abstrak akan dijabarkan menjadi mesin riil, yaitu sampai primitif
yang dapat dilakukan oleh komputer. Keadaan awal dan keadaan akhir yang
diceritakan di atas pada kejadian nyata, juga akan diwakili oleh keadaan komputer,
dalam hal ini keadaan isi memori. Efek neto yang akan dihasilkan dinyatakan dalam
spesifikasi program, yang menjadi bahan mentah dalam menuliskan programnya. Dari
kejadian sehari-hari yang diuraikan pada bab ini, kita akan berbicara dalam notasi
algoritmik. Notasi kondisional dan pengulangan di atas baru sebagian dari notasi
algoritmik yang akan dipelajari secara bertahap (karena itu dituliskan dalam Bahasa
Inggris), untuk membedakan dengan kalimat-kalimat Ibu Tati dalam bahasa manusia.

Komentar
Posting Komentar