Minggu, 15 Agustus 2010

Fundamental Dasar Algoritma

Algoritma itu Mudah

SEJARAH ALGORITMA

Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khwarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M.



A. Pengenalan Algoritma
  • Urutan langkah-langkah untuk memecahkan masalah.
  • Urutan logis pengambilan putusan untuk memcahkan masalah. Urutan langkah logis, berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat.
  • Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. Alur pikiran yang artinya algoritma seseorang dapat berbeda dari algoritma orang lain. Tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu.
Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.

Note:
Algoritma dibutuhkan untuk memerintah komputer mengambil langkah-langkah tertentu untuk menyelesaikan masalah.

Algoritma -> Pemrograman -> Program

Agar algoritma dapat memerintah (diproses) komputer, maka dirubah menjadi bentuk program (melalui proses pemrograman).

Penulisan Algoritma
  1. Menggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris).
    Kelemahannya masih sering membingungkan (ambigu) / sulit dipahami.

  2. Menggunakan Flowchart.
    Baik, karena alur algoritma dapat dilihat secara visual, tetapi repot pembuatannya jika algoritma panjang.

  3. Menggunakan Pseudocode.
    Sudah dekat dengan bahasa pemrograman, tetapi sulit dimengerti oleh orang yang belum tahu pemrograman.
B. Tahap Desain Algoritma
  1. Bagaimana merencanakan sebuah algoritma? Yaitu dengan mendefinisikan masalah.
    Contoh : Permasalahan menghitung luas lingkaran, dengan data yang diketahui adalah diameter lingkaran.
    Rumus : ∏ . r2 dengan Phi = 3.14 atau 22/7.
  2. Bagaimana menyatakan suatu algoritma (menulis algoritma)?
    • Dengan PseudoCode
      suatu cara penulisan algoritma agar ide dan logika dari algoritma dapat disampaikan/diekspresikan menggunakan gaya bahasa pemrograman-pemrograman tertentu.
    • Dengan FlowChart / Diagram Alir
      FlowChart / Diagram Alir merupakan sebuah diagram / bagan yang menggambarkan urutan / aliran logika dari suatu prosedur pemecahan masalah pemrograman.
    • Dengan Statement Program / Penggalan Program
      Selain dengan menggunakan PseudoCode dan FlowChart / Diagram Alir, untuk menuliskan sebuah algoritma yang utuh kita juga dapat menggunakan notasi-notasi dalam bahasa pemrograman yang kita pakai. Misal bahasa pemrograman yang kita pakai adalah bahasa pemrograman C, maka untuk menuliskan algoritma programnya kita dapat memakai notasi / perintah-perintah dalam bahasa pemrograman C tersebut.
  3. Bagaimana validitas suatu algoritma.
  4. Bagaimana menganalisa suatu algoritma.
  5. Bagaimana menguji program dari suatu algoritma.
Studi Kasus :
Buatlah Algoritma untuk memilih bilangan terbesar dari 3 buah bilangan?
  • Dengan Bahasa Natural
  1. Ambil bilangan pertama dan set maks sama dengan bilangan pertama
  2. Ambil bilangan kedua dan bandingkan dengan maks
  3. Apabila bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua
  4. Ambil bilangan ketiga dan bandingan dengan maks
  5. Apabila bilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga
  6. Variabel maks berisi bilangan terbesar. Tampilkan hasilnya
  • Dengan PseudoCode
  1. maks ← bilangan pertama;
  2. if (maks != bilangan kedua) then
  3.      maks ← bilangan kedua;
  4. endif;
  5. if (maks != bilangan ketiga) then
  6.      maks ← bilangan ketiga;
  7. endif;
  8. write('Bilangan terbesar : ',maks);
C. Tahap Pengujian Algoritma
  1. Tahap Debugging :
    Pada tahap debugging ini kita mencari kesalahan dalam program kita, baik itu kesalahan pada sintaks maupun kesalahan logika program.

  2. Tahap Profiling
    Pada tahap profiling ini kita melakukan pengujian terhadap program tentang seberapa lama waktu runtime dan seberapa besar memori total yang dialokasikan / terpakai pada program yang kita bangun.
D. Tahap Analisis Algoritma

Pada tahap analisis algoritma ini kita melakukan analisa keefisiensian dan keefektifitasan dari suatu algoritma yang kita desain, hal ini dapat kita tinjau berdasarkan beberapa hal seperti berikut ini :
  1. Waktu Tempuh dari Suatu Algoritma.
  2. Jumlah Memori yang Digunakan.
E. Ciri-ciri Algoritma yang Benar

Ciri-ciri algoritma yang baik menurut Donnald E. Knuth adalah sebagai berikut :
  1. Finite :
    Algoritma harus berhenti setelah mengerjakan sejumlah langkah yang terbatas.

  2. Definite :
    Setiap langkah dalam algoritma harus didefinisikan secara jelas, tepat guna, presisi, dan tidak ambigu (bermakna ganda).

  3. Input :
    Algoritma minimal dapat memiliki nol atau lebih masukkan (input). Input merupakan besaran yang diberikan kepada algoritma sebelum algoritma mulai dikerjakan.

  4. Output :
    Algoritma minimal dapat memiliki satu atau lebih keluaran (output). Keluaran merupakan besaran yang berkaitan dengan masukkan (input).

  5. Effective & Efficient :
    Algoritma harus efektif dan efisien. Setiap langkah dalam algoritma harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.
F. Struktur Dasar Algoritma
  1. Sequence Process :
    Instruksi dikerjakan secara berurutan satu persatu dimulai dari langkah yang pertama sampai yang terakhir.

  2. Selection Process :
    Instruksi pemilihan proses (percabangan), sehingga apabila memenuhi persyaratan / kondisi tertentu maka instruksi akan dikerjakan.
    Contoh :
    • Jika pembayaran tunai diberi diskon 10%
    • Jika dilakukan secara kredit maka diskon 0%
      (dalam pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2 alternatif instruksi yang tersedia)

  3. Iteration Process :
    Instruksi yang dikerjakan secara berulang-ulang selama masih memenuhi suatu persyaratan / kondisi tertentu.

Tugas
Buatlah algoritma (dengan bahasa natural) :
  1. Menampilkan bilangan ganjil dari 1 sampai dengan 10.
  2. Menghitung jumlah deret : 1 + 2 + 3 + 4 + .... + N.
    N = jumlah maksimum suatu nilai yang dimasukkan.

0 komentar:

Posting Komentar