Kamis, 09 Desember 2010

PENGERTIAN ALGORITMA DAN PEMROGRAMAN




Menurut kamus besar bahasa indonesia terbitan balai pustaka tahun 1988, “algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah”.
Menurut Microsoft Book-shelf, “algoritma adalah urutan langkah berhingga untuk memecahkan masalah logika atau matematika”.
Berdasarkan defenisi-defenisi tersebut maka dapat disimpulkan, “algoritma adalah urutan langkah-langkah logis yang berhingga yang digunakan untuk memecahkan masalah”.

Langkah-langkah di dalam algoritma harus logis, ini berarti hasil dari urutan langkah-langkah tersebut harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat memberikan hasil yang salah.

Menurut Donald E. Knuth dalam bukunya yang berjudul “the art of computer programming”, algoritma harus mempunyai lima ciri penting:
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah. Suatu program yang tidak pernah berhenti adalah program yang berisi algoritma yang salah.
2. Setiap langkah harus didefenisikan dengan tepat dan tidak berarti-dua (ambigu).
3. Algoritma memiliki nol atau lebih masukan (input). Masukan adalah besaran yang diberikan kepada algoritma sebelum algoritma mulai bekerja.
4. Algoritma mempunyai nol atau lebih keluaran (output). Keluaran ialah besaran yang memiliki hubungan dengan masukan.
5. Algoritma harus sangkil (efektif). Setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma. Namun demikian, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-haripun banyak proses yang digambarkan dalam suatu algoritma.
Realisasi algoritma dalam bahasa pemrograman disebut dengan program. Sedangkan pemrograman adalah kegiatan mengkonversi algoritma ke dalam bahasa pemrograman. Bahasa pemrograman atau bahasa komputer adalah teknik komunikasi standar untuk memerintah komputer. Bahasa pemrograman adalah suatu set aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Suatu bahasa memungkinkan seorang programmer secara persis menentukan data yang mana akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan langkah apa secara persis yang akan diambil dalam berbagai situasi.

NOTASI ALGORITMA

Notasi algoritma merupakan hal dasar yang harus diketahui oleh setiap orang yang ingin membuat suatu pogram, karena dalam notasi algoritma inilah terdapat instruksi atau langkah-langkah suatu program. Notasi algoritma bukan notasi bahasa pemrograman, karena itu program dalam notasi algoritma tidak dapat dijalankan oleh komputer. Notasi algoritma bukan notasi bahasa pemrograman, sehingga siapapun dapat membuat notasi algoritma yang berbeda.

Ciri notasi algoritma yang baik yaitu dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Hal yang penting mengenai notasi tersebut adalah mudah dibaca dan dimengerti. Di bawah ini ada 3 notasi yang umum digunakan dalam penulisan algoritma, yaitu :
1. Notasi Alami
2. Flowchart / Diagram Alur
3. Pseudocode

a.Notasi Alami
Penulisan algoritma dengan notasi alami adalah dengan cara menuliskan instruksi-instuksi yang harus dilaksanakan untuk memecahkan masalah dalam bentuk untaian kalimat deskriptif.
Dengan notasi bergaya kalimat ini, deskripsi setiap langkah dijelaskan dengan bahasa yang gamblang. Proses diawali dengan kata kerja seperti ‘baca’, ‘hitung’, ‘bagi’, ‘ganti’, dan sebagainya, sedangkan pernyataan kondisional dinyatakan dengan ‘jika…maka…’. Notasi ini bagus untuk algoritma yang pendek, namun untuk masalah yang algoritmanya besar, notasi ini jelas tidak efisien. Selain itu, pengkonversian notasi algoritma ke notasi bahasa pemrograman cenderung relative sukar.

Contoh:
Algoritma_Menghitung_Luas_Persegi_Panjang
Langkah 1: Baca nilai panjang.
Langkah 2: Baca nilai lebar.
Langkah 3: Kalikan nilai panjang dengan nilai lebar dan berikan nilainya ke hasil.
Langkah 4: Tampilkan nilai hasil.

b.Flowchart / Diagram Alir
Flowchart adalah gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program, yang menyatakan arah alur program tersebut. Diagram alur lebih menggambarkan aliran instruksi di dalam program secara visual dibanding memperlihatkan struktur program. Notasi diagram alur lebih cocok digunakan untuk masalah yang kecil, untuk masalah yang besar tidak cocok digunakan karena membutuhkan berlembar halaman kertas. Selain itu, pengkonversian notasi algoritma ke bahasa pemrograman cenderung relatif sukar.
contoh :

c.Pseudocode
Pseudo-code adalah notasi yang menyerupai notasi bahasa pemrograman tingkat tinggi, khususnya Pascal dan C. Bahasa pemrograman umumnya mempunyai notasi yang hampir mirip untuk beberapa instruksi seperti notasi if-then-else, while-do, repeat-until, read, write, dan sebagainya. Namun tidak seperti bahasa pemrograman yang direpotkan dengan tanda titik koma, indeks, format keluaran, kata-kata khusus, dan sebagainya, sembarang versi Pseudocode dapat diterima asalkan perintahnya tidak membingungkan pembaca.

Keuntungan menggunakan notasi Pseudocode adalah kemudahan mentranslasi ke notasi bahasa pemrograman, karena terdapat korespodensi antara setiap Pseudocode dengan notasi bahasa pemrograman. Sehingga Pseudocode cocok untuk algoritma yang rumit.

Contoh notasi pseudocode adalah sebagai berikut:
Algoritma_Menghitung_Luas_Persegi_Panjang
DEKLARASI:
Panjang : integer
Lebar : integer
Luas : integer
DESKRIPSI:
read (Panjang)
read (Lebar)
Luas Panjang * Lebar
write (Luas)

Aturan penulisan algoritma dalam notasi pseudocode.
Dalam pseudocode algoritma terbagi atas 3 bagian, yaitu :
a.Judul Algoritma
Judul algoritma adalah bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut. Nama algoritma sebaiknya singkat namun cukup menggambarkan apa yang dilakukan oleh algoritma tersebut.
Contoh judul algoritma:
Algoritma LUAS_PERSEGIPANJANG
{ Menghitung luas persegi panjang. Algoritma menerima masukan panjang dan lebar, menghitung luas, lalu mencetak luas persegi panjang ke piranti keluaran }
Keterangan:
Algoritma LUAS_PERSEGIPANJANG merupakan judul algoritma, sedangkan yang di dalama kurung kurawal ({ }) merupakan spesifikasi atau penjelasan singkat tentang algoritma luas persegi panjang.

b.Deklarasi
Bagian deklarasai berguna untuk mendefenisikan semua nama yang dipakai dalam algoritma. Nama tersebut dapat berupa nama tetapan, nama peubah (variable), nama tipe, nama prosedur, dan nama fungsi.
Contoh deklarasi:
DEKLARASI
{ nama peubah (variable) }
p : integer { tempat menampung data panjang }
l : integer { tempat menampung data lebar }
L : integer { tempat menampung data hasil penghitungan luas }

c.Deskripsi
Deskripsi merupakan bagian inti dari suatu algoritma. Bagian ini berisi uraian langkah-langkah penyelesaian masalah. Langkah-langkah ini dituliskan dalam notasi yang akan di jelaskan pada bab selanjutnya. Misalnya notasi write digunakan untuk mencetak data/informasi, notasi read digunakan untuk membaca data, dan lain sebagainya. Setiap langkah algoritma dibaca dari “atas” ke “bawah”. Urutan penulisan menentukan urutan pelaksanaan perintah.
Contoh deskripsi:
DESKRIPSI
read (Panjang)
read (Lebar)
Luas Panjang * Lebar
write (Luas)

Keterangan:
Lambang berarti penugasan atau penginputan

Tidak ada komentar:

Posting Komentar