Wednesday, November 5, 2014

Pengenalan algoritma

Ahli Sejarah Matematika menemukan asal kata algoritma 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 Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itulah diperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran usm berubah menjadi uthm.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.
Definisi Algoritma:
  • Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis.
  • Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah kata terbatas, tetapi tersusun secara logis dan sistematis.
  • Algoritma adalah suatu metode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata. (Webster Dictionary)
Setelah langkah-langkah instruksi atau Algoritma selesai disusun, selanjutnya user harus menyajikan langkah-langkah tesebut dalam satu bahasa yang dikenal oleh komputer.

Kegiatan menulis atau membuat langkah-langkah instruksi tersebut dalam suatu bahasa komputer dikenal dengan nama PEMROGRAMAN. Hasil yang telah dicapai oleh penulisan tersebut disebut dengan PROGRAM

Ciri-ciri Algoritma :
Beberapa ciri algoritma menurut Donald E. Knuth, yaitu :
  • Algoritma mempunyai awal dan akhir. Suatu algoritma harus berhenti setelah mengerjakan serangkaian tugas atau dengan kata lain suatu algoritma memiliki langkah yang terbatas.
  • Setiap langkah harus didefinisikan dengan tepat sehingga tidak memiliki arti ganda (not ambiguous).
  • Memiliki masukan (input) atau kondisi awal.
  • Memiliki keluaran (output) atau kondisi akhir.
  • Algoritma harus efektif; bila diikuti benar-benar akan menyelesaikan persoalan.
Kriteria Pemilihan Algoritma :
Kriteria atau sifat-sifat algoritma yang terbaik menurut Yulikuspartono:
  1. Output, mengacu pada definisi algoritma dimana suatu algoritma haruslah mempunyai output yang harus merupakan solusi dari masalah yang sedang diselesaikan.
  2. Efektifitas dan Efisiensi, efektif jika algoritma tersebut menghasilkan suatu solusi yang sesuai dengan masalah yang diselesaikan (tepat guna). Efisiensi jika waktu proses suatu algoritma relatif lebih singkat dan penggunaan memori komputernya lebih sedikit.
  3. Jumlah langkahnya berhingga, maksudnya adalah barisan instruksi yang dibuat harus dalam suatu urutan tertentu atau harus berhingga agar masalah yang dihadapi dapat diselesaikan dengan tidak memerlukan waktu relatif lama.
  4. Berakhir, proses di dalam mencari penyelesaian suatu masalah harus berhenti dan berakhir baik dalam kondisi solusi ada atau tidak ada.
  5. Terstruktur, urutan barisan langkah-langkah yang digunakan harus disusun sedemikian rupa agar proses penyelesaian tidak berbelit-belit sehingga bagian-bagian proses dapat dibedakan Input, proses dan output sehingga memudahkan user melakukan pemeriksaan ulang.
Sifat utama suatu algoritma menurut Suarga, yaitu sebagai berikut :
  1. Input, suatu algoritma memiliki input atau kondisi awal sebelum algoritma dilaksanakan dan bisa berupa nilai-nilai pengubah yang diambil dari himpunan khusus.
  2. Output, suatu algoritma akan menghasilkan output setelah dilaksanakan, atau algoritma akan mengubah kondisi awal menjadi kondisi akhir, dimana nilai output diperoleh dari nilai input yang telah diproses melalui algoritma.
  3. Definiteness, langkah-langkah yang dituliskan dalam algoritma terdefinisi dengan jelas sehingga mudah dilaksanakan oleh pengguna algoritma.
  4. Finiteness, suatu algoritma harus memberi kondisi akhir atau output setelah melakukan sejumlah langkah yang terbatas jumlahnya untuk setiap kondisi awal atau input yang diberikan.
  5. Effectiveness, setiap langkah dalam algoritma bisa dilaksanakan dalam suatu selang waktu tertentu sehingga pada akhirnya memberi solusi sesuai yang diharapkan.
  6. Generality, langkah-langkah algoritma berlaku untuk setiap himpunan input yang sesuai dengan persoalan yang akan diberikan, tidak hanya untuk himpunan tertentu.
Ekspresi Algoritma
Ekspresi algoritma dapat dilakukan dengan tiga cara, yaitu:
  1. Bahasa alamiah
  2. Bagan alir (flowchart)
  3. Pseudokode.
Flowchart
Flowchart adalah untaian simbol gambar (chart) yang menunjukkan aliran (flow) dari proses terhadap data.
Simbol-simbol flowchart dapat diklasifikasikan menjadi:
  1. Simbol untuk program
  2. Simbol untuk sistem (peralatan hardware)
Pseudocode
Pseudocode adalah kode atau tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan suatu masalah.
Contoh:  Tuliskan nilai X dan Y
Pseudocode:  write (X,Y)

Struktur Algoritma
Struktur teks algoritma selalu disusun oleh tiga bagian (blok), yaitu:
  1. Bagian judul (header), Judul adalah bagian yang terdiri atas nama program dan penjelasan (spesifikasi) tentang program tersebut. Judul diawali dengan kata kunci PROGRAM dan nama program X. Kata PROGRAM ini bukan menyatakan program dalam bahasa komputer, tetapi menyatakan bahwa kita sedang menulis algoritma untuk program pemecahan masalah. Nama program sebaiknya singkat namun cukup menggambarkan apa yang dilakukan oleh program. Di bawah nama program sebaiknya disertai dengan penjelasan singkat tentang apa masalah diprogram dan apa masukan dan keluarannya.
  2. Bagian Deklarasi, digunakan untuk mengumumkan semua nama yang dipakain di dalam algoritma beserta propertinya (misalnya tipe). Nama tersebut dapat berupa nama konstanta, nama peubah, nama tipe, nama prosedur dan nama fungsi. Karena nama adalah satu kesatuan, maka nama tidak boleh mengandung spasi, tanda baca (seperti titik, koma dan sebagainya), operator (seperti +, -, : dan sebagainya). Karakter garis bawah ( _ ) dapat digunakan untuk mengganti spasi. Selain spasi, kita juga tidak membedakan huruf besar (kapital) dan huruf kecil di dalam notasi algoritmik kita.
  3. Bagian Algoritma, bagian ini berisi instruksi-instruksi pemecahan masalah dalam notasi pseudo-code.
Contoh:
Program nama program;
{penjelasan tentang algoritma, yang berisi uraian singkat mengenai masalah apa yang akan diselesaikan, apa masukan dan keluarannya}
(* DEKLARASI *)
[const]
{semua nama tetapan dan harga tetapannya didefinisikan di sini}
[type]
{semua nama tipe bentukan didefinisikan di sini}
[Var]
{semua nama peubah global didefinisikan di sini}
{deklarasi prosedur dan fungsi ditulis disini}
(*ALGORITMA: *)
Begin
{semua instruksi program dituliskan disini}
End.

Error
Dalam pembuatan program, sering kali ditemukan adanya kesalahan pada saat proses pengodean (coding) yang disebut dengan error.
Ada tiga macam error yang terjadi dalam pembuatan program, yaitu:
  1. Syntax error (kesalahan sintaksis), dapat terjadi apabila terjadi kesalahan dalam menggunakan statemen built-in dari suatu bahasa pemrograman yang digunakan. Tipe kesalahan ini adalah tipe kesalahan yang paling mudah diperbaiki.
  2. Runtime error, dapat terjadi apabila terdapat inkonsistensi antara tipe variabel dalam program dengan nilai input yang diberikan. Contoh jenis kesalahan ini adalah ketika suatu variabel dideklarasikan bertipe integer, tetapi ternyata pada saat input data diisi dengan nilai bilangan real atau tipe data string.
  3. Logical error, merupakan kesalahan yang cukup sulit dicari permasalahannya karena dibutuhkan upaya trial and error untuk memperbaikinya. Cara lain untuk memperbaiki kesalahan ini adalah dengan cara membandingkan dengan proses manualnya. Biasanya, kasus terjadinya kesalahan ini merupakan kasus yang sulit diselesaikan karena program tidak menunjukkan adanya kesalahan, tetapi hasilnya tidak sesuai dengan yang diharapkan. Kesalahan ini juga dapat menyebabkan terjadinya suatu program yang dieksekusi tidak pernah selesai dan memberikan output yang tidak pernah berakhir.
Latihan:
Hitung luas persegi panjang dengan menggunakan Bahasa Alamiah, Diagram Alir dan Pseudocode.
Jawab:
Dengan Bahasa Alamiah
  1. Mulai
  2. Masukkan nilai panjang dan lebar persegi panjang
  3. Kalikan nilai panjang dan lebar untuk menghitung luasnya
  4. Hasil dari perhitungan Luas persegi panjang
  5. Selesai
Pseudocode dengan Pascal
Program Luas_persegipanjang;
Uses crt;
var panjang, lebar, luas : integer;
Begin
clrscr;
write(‘Masukkan Panjang : ‘);
readln(panjang);
write(‘Masukkan Lebar : ‘);
Readln(lebar);
Luas:=panjang*lebar;
writeln(‘Luas persegi panjang : ‘,luas);
Readln;
End.