Selasa, 13 Mei 2014

PENGANTAR ALGORITMA DAN PROGRAM


1.1. Apakah Itu Algoritma
Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorismyang 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 WalMuqabala 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 algorismmenjadi algorithm muncul karena kata algorism sering dikelirukan dengan  arithmetic,
sehingga akhiran –smberubah 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.



1.1.1. Definisi Algoritma
“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah
yang disusun secara sistematis dan logis”. Katalogismerupakan kata kunci
dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus
dapat ditentukan bernilai salah atau benar.
Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk
melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma
adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan
keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak
peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah,
pastilah algoritma tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui
seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting
terutama pada algoritma untuk menyelesaikan masalah yang memerlukan
aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang
baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai
yang sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2
hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan
keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu
berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya
tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu
juga dengan memori, semakin besar memori yang terpakai maka semakin
buruklah algoritma tersebut.
Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda
untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan
dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang
sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.

1.1.2. Beda Algoritma dan Program
Program adalah kumpulan pernyataan komputer, sedangkan metode dan
tahapan sistematis dalam program adalah algoritma. Program ditulis dengan
menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program
adalah suatu implementasi dari bahasa pemrograman.
Beberapa pakar memberi formula bahwa:
Program = Algoritma + Bahasa (Struktur Data)
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat
pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data
yang tepat akan membuat program menjadi kurang baik, demikian juga
sebaliknya.
Pembuatan algoritma mempunyai banyak keuntungan di antaranya:
1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa
pemrograman manapun, artinya penulisan algoritma independen dari
bahasa pemrograman dan komputer yang melaksanakannya.
2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa
pemrograman.
3. Apapun bahasa pemrogramannya, outputyang akan dikeluarkan sama
karena algoritmanya sama.
Beberapa hal yang perlu diperhatikan dalam membuat algoritma:
1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.
Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah
dimengerti dan dipahami.
2. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti
notasi bahasa pemrograman. Notasi yang digunakan dalam menulis
algoritma disebut notasi algoritmik.
3. Setiap orang dapat membuat aturan penulisan dan notasi algoritmik
sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks
program. Namun, supaya notasi algoritmik mudah ditranslasikan ke
dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi
algoritmik tersebut berkorespondensi dengan notasi bahasa
pemrograman secara umum.
4. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu
pseudocodedalam notasi algoritmik tidak dapat dijalankan oleh
komputer. Agar dapat dijalankan oleh komputer, pseudocodedalam
notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam
notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang
yang menulis program sangat terikat dalam aturan tata bahasanya dan
spesifikasi mesin yang menjalannya.
5. Algoritma sebenarnya digunakan untuk membantu kita dalam
mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
6. Algoritma merupakan hasil pemikiran konseptual, supaya dapat
dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam
notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan
pada translasi tersebut, yaitu:
a. Pendeklarasian variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam
penggunaan bahasa pemrograman apabila tidak semua bahasa
pemrograman membutuhkannya.
b. Pemilihan tipe data
Apabila bahasa pemrograman yang akan digunakan membutuhkan
pendeklarasian variabel maka perlu hal ini dipertimbangkan pada
saat pemilihan tipe data.
c. Pemakaian instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama tetapi masingmasing memiliki kelebihan dan kekurangan yang berbeda.
d. Aturan sintaksis
Pada saat menuliskan program kita terikat dengan aturan sintaksis
dalam bahasa pemrograman yang akan digunakan.
e. Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan tampilan hasil
yang akan disajikan. Hal-hal teknis ini diperhatikan ketika
mengkonversikannya menjadi program.
f. Cara pengoperasian compileratau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam kelompok
compileratau interpreter.

1.1.3. Algoritma Merupakan Jantung Ilmu Informatika
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang
ilmu komputer yang mengarah ke 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-langkah 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.
Algoritma adalah deskripsi dari suatu pola tingkah laku yang dinyatakan
secara primitif yaitu aksi-aksi yang didefenisikan sebelumnya dan diberi
nama, dan diasumsikan sebelumnya bahwa aksi-aksi tersebut dapat kerjakan
sehingga dapat menyebabkan kejadian.
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.
1.1.4. 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 sudahdisebutkan 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 pernyataanatauinstruksi. Jadi, program tersusun 
atas sederetan instruksi. Bila suatu instruksi dilaksanakan, maka operasioperasi 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 operasioperasi 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).

Lanjutan di edisi berikut......


Tidak ada komentar: