Mekanisme
Pelaksanaan Algoritma oleh Pemroses
Komputer
hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma
harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi
program adalah perwujudan atau implementasi teknis algoritma yang ditulis dalam
bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh komputer.
Kata
“algoritma” dan “program” seringkali dipertukarkan dalam penggunaannya.
Misalnya ada orang yang berkata seperti ini: “program pengurutan data
menggunakan algoritma selection sort”. Atau pertanyaan seperti ini:
“bagaimana algoritma dan program menggambarkan grafik tersebut?”. Jika Anda
sudah memahami pengertian algoritma yang sudah disebutkan sebelum ini, Anda
dapat membedakan arti kata algoritma dan program. Algoritma adalah
langkah-langkah penyelesaikan masalah, sedangkan program adalah realisasi
algoritma dalam bahasa pemrograman. Program ditulis dalam salah satu bahasa
pemrograman dan kegiatan membuat program
disebut pemrograman (programming). Orang yang menulis program
disebut pemrogram (programmer). Tiap-tiap langkah di dalam
program disebut pernyataanatau instruksi. Jadi, program tersusun
atas sederetan instruksi. Bila suatu instruksi dilaksanakan, maka
operasi-operasi yang bersesuaian dengan instruksi tersebut dikerjakan komputer.
Secara
garis besar komputer tersusun atas empat komponen utama yaitu, piranti masukan,
piranti keluaran, unit pemroses utama, dan memori. Unit pemroses utama (Central
Processing Unit – CPU) adalah “otak” komputer, yang berfungsi mengerjakan
operasi-operasi dasar seperti operasi perbandingan, operasi perhitungan,
operasi membaca, dan operasi menulis. Memori adalah komponen yang berfungsi
menyimpan atau mengingatingat.
Yang
disimpan di dalam memori adalah program (berisi operasi-operasi yang akan
dikerjakan oleh CPU) dan data atau informasi (sesuatu yang diolah oleh
operasi-operasi). Piranti masukan dan keluaran (I/O devices) adalah
alat yang memasukkan data atau program ke dalam memori, dan alat yang digunakan
komputer untuk mengkomunikasikan hasil-hasil aktivitasnya. Contoh piranti
masukan antara lain, papan kunci (keyboard), pemindai (scanner), dan cakram
(disk). Contoh piranti keluaran adalah, layar peraga (monitor), pencetak
(printer), dan cakram.
Mekanisme
kerja keempat komponen di atas dapat dijelaskan sebagai berikut. Mula-mula
program dimasukkan ke dalam memori komputer. Ketika program dilaksanakan
(execute), setiap instruksi yang telah tersimpan di dalam memori dikirim ke
CPU. CPU mengerjakan operasioperasi yang bersesuaian dengan instruksi tersebut.
Bila suatu operasi memerlukan data, data dibaca dari piranti masukan, disimpan
di dalam memori lalu dikirim ke CPU untuk operasi yang memerlukannya tadi. Bila
proses menghasilkan keluaran atau informasi, keluaran disimpan ke dalam memori,
lalu memori menuliskan keluaran tadi ke piranti keluaran (misalnya dengan
menampilkannya di layar monitor).
Belajar
Memprogram dan Belajar Bahasa Pemrograman
Belajar
memprogram tidak sama dengan belajar bahasa pemrograman. Belajar memprogram
adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya
dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangkan belajar
bahasa pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata
bahasanya, pernyataan-pernyataannya, tata cara pengoperasian compiler-nya,
dan memanfaatkan pernyataan-pernyataan tersebut untuk membuat program yang
ditulis hanya dalam bahasa itu saja. Sampai saat ini terdapat puluhan bahasa
pemrogram, antara lain bahasa rakitan (assembly), Fortran, Cobol, Ada,
PL/I, Algol, Pascal, C, C++, Basic, Prolog, LISP, PRG, bahasabahasa
simulasi seperti CSMP, Simscript, GPSS, Dinamo. Berdasarkan terapannya,
bahasa pemrograman dapat digolongkan atas dua kelompok besar :
Bahasa
pemrograman bertujuan khusus. Yang termasuk kelompok ini
adalah Cobol (untuk terapan bisnis dan
administrasi). Fortran (terapan komputasi ilmiah), bahasa rakitan
(terapan pemrograman mesin), Prolog (terapan kecerdasan buatan),
bahasa-bahasa simulasi, dan sebagainya. Bahasa perograman bertujuan umum, yang
dapat digunakan untuk berbagai aplikasi. Yang termasuk kelompok ini adalah
bahasa Pascal, Basic dan C. Tentu saja pembagian ini tidak kaku.
Bahasabahasabertujuan khusus tidak berarti tidak bisa digunakan untuk aplikasi
lain. Cobol misalnya, dapat juga digunakan untuk terapan ilmiah,
hanya saja kemampuannya terbatas. Yang jelas, bahasabahasa pemrograman yang
berbeda dikembangkan untuk bermacam-macam terapan yang berbeda pula. Berdasarkan
pada apakah notasi bahasa pemrograman lebih “dekat” ke mesin atau ke bahasa
manusia, maka bahasa pemrograman dikelompokkan atas dua macam :
Bahasa
tingkat rendah. Bahasa jenis ini dirancang agar setiap instruksinya langsung
dikerjakan oleh komputer, tanpa harus melalui penerjemah (translator).
Contohnya adalah bahasa mesin. CPU mengambil instruksi dari memori, langsung
mengerti dan langsung mengerjakan operasinya. Bahasa tingkat rendah bersifat
primitif, sangat sederhana, orientasinya lebih dekat ke mesin, dan sulit
dipahami manusia. Sedangkan bahasa rakitan dimasukkan ke dalam kelompok ini
karena alasan notasi yang dipakai dalam bahasa ini lebih dekat ke mesin,
meskipun untuk melaksanakan instruksinya masih perlu penerjemahan ke dalam
bahasa mesin.
Bahasa
tingkat tinggi, yang membuat pemrograman lebih mudah dipahami, lebih
“manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja,
program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh
komputer. Ia perlu diterjemahkan terlebih dahulu oleh sebuah translator
bahasa (yang disebut kompilator atau compiler) ke dalam bahasa
mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa tingkat tinggi
adalah Pascal, PL/I, Ada, Cobol, Basic, Fortran, C, C++, dan
sebagainya.
Bahasa
pemrograman bisa juga dikelompokkan berdasarkan pada tujuan dan fungsinya. Di
antaranya adalah :
·
Ketika manusia berusaha memecahkan
masalah, metode atau teknik yang digunakan untuk memecahkan masalah itu ada
kemungkinan bisa banyak (tidak hanya satu). Dan kita memilih mana yang terbaik
di antara teknikteknik itu. Hal ini sama juga dengan algoritma, yang
memungkinkan suatu permasalahan dipecahkan dengan metode dan logika yang
berlainan. Yang menjadi pertanyaan adalah bagaimana mengukur mana algoritma
yang terbaik?. Beberapa persyaratan untuk menjadi algoritma yang baik adalah :
·
Tingkat kepercayaannya tinggi
(realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan
benar.
·
Pemrosesan yang efisien
(cost rendah). Proses harus diselesaikan secepat mungkin dan frekuensi
kalkulasi yang sependek mungkin.
·
Sifatnya general. Bukan sesuatu yang
hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang
lebih general.
·
Bisa dikembangkan (expandable). Haruslah
sesuatu yang dapat kita kembangkan lebih jauh berdasarkan
perubahan requirement yang ada.
·
Mudah dimengerti. Siapapun yang melihat,
dia akan bisa memahami algoritma Anda. Susah dimengertinya suatu program akan
membuat susah di-maintenance(kelola).
·
Portabilitas yang tinggi (portability).
Bisa dengan mudah diimplementasikan di berbagai platform komputer.
·
Precise (tepat, betul, teliti).
Setiap instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan,
dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak
ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap
langkah harus jelas dan pasti. Contoh : Tambahkan 1 atau 2 pada x.
Output yang
dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti dengan
seksama maka dihasilkan output yang diinginkan. Sedangkan kriteria
Algoritma menurut Donald E. Knuth adalah :
Input: algoritma dapat
memiliki nol atau lebih inputan dari luar.
Output: algoritma harus
memiliki minimal satu buah output keluaran.
Definiteness (pasti):
algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.
Finiteness (ada
batas): algoritma harus memiliki titik berhenti (stopping role).
Effectiveness (tepat
dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif.
Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1
Namun ada beberapa
program yang memang dirancang untuk unterminatable : contoh Sistem Operasi.
Penyajian
Algoritma
Penyajian
algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan
gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa
tertentu (misalnya bahasa Indonesia atau bahasa Inggris)
dan pseudocode. Pseudocode adalah kode yang mirip dengan kode
pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat
digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada
pemrogram. Sedangkan algoritma disajikan dengan gambar, misalnya dengan flowchart.
Secara umum, pseudocode mengekspresikan ide-ide secara informal dalam
proses penyusunan algoritma. Salah satu cara untuk menghasilkan kode pseudo
adalah dengan meregangkan aturan-aturan bahasa formal yang dengannya versi
akhir dari algoritma akan diekspresikan. Pendekatan ini umumnya digunakan
ketika bahasa pemrograman yang akan digunakan telah diketahui sejak awal.
Flowchart merupakan
gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta
pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap
simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan
dengan garis penghubung. Dengan menggunakan flowchartakan memudahkan kita
untuk melakukan pengecekan bagian-bagian yang terlupakan dalam analisis
masalah. Di
samping
itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi
antara pemrogram yang bekerja dalam tim suatu proyek. Ada dua
macam flowchart yang menggambarkan proses dengan komputer, yaitu :
Flowchart sistem yaitu
bagan dengan simbol-simbol tertentu yang menggambarkan urutan prosedur dan
proses suatu file dalam suatu media menjadi file di dalam
media lain, dalam suatu sistem pengolahan data.
Flowchart program yaitu
bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dan
hubungan antar proses secara mendetail di dalam suatu program. Dalam
pembuatan flowchart Program tidak ada rumus atau patokan yang
bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran
dalam menganalisis suatu masalah dengan komputer.
Sehingga flowchart yang dihasilkan dapat bervariasi antara satu
pemrogram dengan yang lainnya. Namun secara garis besar setiap pengolahan
selalu terdiri atas 3 bagian utama, yaitu :
Input,
Proses pengolahan dan
Outpu
Untuk pengolahan data
dengan komputer, urutan dasar pemecahan suatu masalah:
·
START, berisi pernyataan untuk persiapan
peralatan yang diperlukan sebelum menangani pemecahan persoalan.
·
READ, berisi pernyataan kegiatan untuk
membaca data dari suatu peralatan input.
·
PROSES, berisi kegiatan yang berkaitan
dengan pemecahan persoalan sesuai dengan data yang dibaca.
·
WRITE, berisi pernyataan untuk merekam
hasil kegiatan ke peralatan output.
·
END, mengakhiri kegiatan pengolahan.
Walaupun tidak ada
kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa
anjuran :
·
Hindari pengulangan proses yang tidak
perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat.
·
Jalannya proses digambarkan dari atas ke
bawah dan diberikan tanda panah untuk memperjelas.
·
Sebuah flowchart diawali dari
satu titik START dan diakhiri dengan END.
No comments:
Post a Comment