Rabu, 24 Juni 2009

Selasa, 27 Januari 2009

Mata Kuliah Algoritma dan Struktur Data

Mata Kuliah yang sangat tidak mudah untuk dimengerti karna ruet banget!!!!
Tapi karna dosennya yang Gokil n enjoy dalam ngejelasinnya so agak lumayan bisa ngerti ma mata kuliah ini,,,,,

Belajar Bahasa Pemrograman dan Belajar Memprogram

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 tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya, dan memanfaatkan instruksi-instruksi tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja [LIE96].

Sampai saat ini terdapat puluhan bahasa pemrograman. Disini kita dapat menyebutkan antara lain bahasa rakitan (assembly), Fortran, Cobol, Ada, PL/I, Algol, Pascal, C, C++, Basic, Prolog, LISP, PRG, bahasa-bahasa simulasi seperti CSMP, Simscript, GPSS, Dinamo, dan banyak lagi. Belakangan juga muncul bahasa pemrograman baru seperti Perl dan Java. Berdasarkan terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok besar :

  1. Bahasa pemrograman bertujuan khusus. Yang termasuk kelompok ini adalah Cobol (untuk terapan bisnis administrasi), Fortan (Terapan komputasi ilmiah), bahasa rakitan (terapan pemrograman mesin), Prolog (terapan kecerdasan buatan), bahasa-bahasa simulasi, dan sebagainya.
  2. Bahasa pemrograman bertujuan umum, yang dapat digunakan untuk berbagai aplikasi. Yang termasuk kelompok ini adalah bahasa Pascal, Basic, dan C. Tentu saja pembagian ini tidak kaku. Bahasa-bahasa bertujuan khusus tidak berarti tidak bisa digunakan untuk aplikasi lain. Cobol misalnya, dapat juga digunakan untuk terapan ilmiah, hanya saja kemampuannya terbatas. Yang jelas, bahasa-bahasa 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.
  1. 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 dengan 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 diperlukan penerjemahan ke dalam bahasa mesin.
  2. 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.

APAKAH ALGORITMA ITU?????

Ditinjau dari asal usul kata, kata algoritma sendiri mempunyai sejarah yang aneh. Kata ini tidak muncul di dalam kamus Webster sampai akhir tahun 1957. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka Arab [KNU73]. Anda dikatakan algorist jika anda menggunakan angka Arab. Para ahli berusaha menemukan asal kata algorism ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal mula kata tersebut. Kata algorism 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 dari kata 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 sudah biasa/lumrah, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna aslinya [PAR95]. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.


Pada tahun 1950, kata algoritma sering dihubungkan dengan ”Algoritma Eclidean” (Euclid’s algorithm), yaitu proses untuk menemukan pembagi bersama terbesar (common greatest divison), pbt, dari dua buah bilangan bulat, m dan n [KNU73]. Misalnya, m =80 dan n =12. Faktor pembagi 80 adalah 1, 2, 4, 5, 8, 10, 16, 20, 40, 80, dan faktor pembagi 12 adalah 1, 2, 3, 4, 6, 12, maka pbt (80,12) = 4. Langkah-langkahnya adalah sebagai berikut :

  • 80/12 = 6, sisa 8
  • 12/8 = 1, sisa 4
  • 8/4 = 2, sisa 0


Karena pembagian yang terakhir menghasilkan 0, maka sisa pembagian terakhir sebelum 0, yaitu 4, menjadi pbt(80,12). Jadi, pbt(80,12) = pbt(12,8) = pbt(8,4) = pbt(4,0) = 4. Ada beberapa versi algoritma Euclidean, salah satunya dituliskan di bawah ini :

Algoritma EUCLIDEAN

Diberikan dua buah bilangan bulat tak-negatif m dan n (m ≥ n). Carilah pembagi bersama terbesar, pbt, dari kedua bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis membagi m dan n.

DESKRIPSI :

1. Jika n=0 maka
m
adalah jawabannya ;
stop.
tetapi jika n ≠ 0,
lanjutkan ke langkah 2.

2. Bagilah m dengan n dan misalkan r adalah sisanya.

3. Ganti nilai m dngan nilai n dan nilai n dengan nilai r, lalu ulangi kembali ke langkah 1.


Dengan menggunakan m = 80 dan n = 12, maka pbt(80,12) dihitung dengan algoritma Euclidean di atas sebagai berikut :

1 (1) karena n = 12 ≠ 0, maka lanjutkan ke langkah 2 (1).
2 (1) hitung m/n = 80/12 = 6, sisanya r = 8
3 (1) Nilai mbaru = nlama = 12 dan nbaru = r = 8. lanjut ke langkah 1(2).


1 (2) Karena n = 8 ≠ 0, maka lanjutkan ke langkah 2(2).
2 (2) Hitung m/n = 12/8 = 1, sisanya r = 4.
3 (2) Nilai mbaru = nlama = 8 dan nbaru = r = 4. lanjut ke langkah 1(3).


1 (3) Karena n = 4
0, maka lanjutkan ke langkah 2(3).
2 (3) Hitung m/n = 8/4 = 2, sisanya r = 0.
3 (3) Nilai mbaru = nlama = 4 dan nbaru = r = 0. lanjut ke langkah 1(4).


1 (4) Karena r = 0, maka n = 4 adalah jawabannya. stop.


Jadi, pbt(80,12) = 4.


Keterangan : angka di dalam kurung, (1), (2), dan (3) masing-masing menyatakan perulangan yang ke-1, ke-2, dan ke-3.

Sampai sejauh ini, apakah anda sudah dapat memahami apa yang dimaksud dengan algoritma itu?? Ya, algoritma berisi urutan langkah-langkah penyelesaian masalah.

Definisi :

  • Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.

Sebagai pembanding, disini dikemukakan definisi kata algoritma menurut Kamus Besar Bahasa Indonesia (KBBI) terbitan Balai Pustaka Tahun 1988 :

  • Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.

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