Tag dasar HTML
24 September 2012
Struktur Dasar Algoritma
4 October 2012

Apakah Algoritma Itu ?

Masalah

Menurut Neapolitan (1996) masalah adalah pertanyaan atau tugas yang kita cari jawabannya.

Contoh masalah setumpuk kartu pasien di rumah sakit yang tersusun acak, bagaimanamengurutkan kartu kartu tersebut?     Jawaban Barisan kartu terurut dari kecil ke besar.

Mendiskripsiskan masalah dapat menggunakan beberapa ukuran / parameter seperti : Pengurutan, Pencarian, Elemen terbesar.

Instansi masalah / instance of problem adalah setiap pemberian nilai untuk semua parameter.

Solusi adalah jawaban terhadap instansi masalah.

Instansi masalah:

S=[15,4,8,11,2,10,19]           n=7

Solusi ?

Bagaimana kalau n = 1000 ?

 

Algoritma

 Adalah urutan langkah-langkah untuk memecahkan masalah.

Pengertian dari beberapa literatur, algoritma adalah:

  1. Deretan langkah-langkah komputasi yang mentransformasikan data masukan menjadi keluaran (Cormen, 1992).
  2. Deretan instruksi yang jelas untuk memecahkan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari suatu masukan dalam jumlah waktu yang terbatas (Levitin 2003).
  3. Prosedur komputasi yang terdefenisi dengan baik yang menggunakan beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran. Jadi, algoritma adalah deretan langkah komputasi yang mentransformasikan masukan menjadi keluaran (Cormen 1989).

 

Contoh masalah dan algoritma pemenyelesaian:

  1. Kasus ember air merah dan biru.
  2. Kasus ember 5 dan 3 liter untuk mendapatkan 4 liter.
  3. Kasus pemuda, srigala, kambing dan sayur.

 

 

Sejarah Algoritma

Algoritma berasal dari kata algorist bahasa Arab yang diambil dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa al-Khuwarizmi yang berjudul Kitab al jabar wal-muqabala / buku pemugaran dan pengurangan.

Pada tahun 1950 kata algoritma pertama kali digunakan pada “algoritma Euclidean” Euclid merupakan matematikawan Yunani dalam bukunya yang berjudul Element menuliskan langkah-langkah untuk menemukan pembagi bersama terbesar (common greatest divisor) dari dua buah bilangan bulat m dan n.

Program dan Pemrograman

 

  • Program adalah algoritma yang ditulis dalam bahasa komputer.
  • Pemrograman adalah bahasa komputer yang digunakan dalam menulis program.
  • Pemrogram adalah orang yang membuat program komputer.
  • Pemrograman adalah kegiatan merancang dan menulis program.

 

Secara garis besar komputer tersusun atas 4 komponen utama:

  • Unit Pemroses Utama (CPU) adalah otak komputer yang berfungsi mengerjakan operasi-operasi dasar seperti operasi perbandingan, perhitungan, membaca, dan operasi menulis.
  • Memori adalah komponen yang berfungsi menyimpan atau mengingat-ingat.
  • Piranti masukan dan keluaran adalah alat yang memasukkan data atau program ke dalam memori dan alat yang digunakan komputer untuk mengomunikasikan hasil-hasil aktivitasnya.

Belajar Memprogram dan Bahasa Pemrograman

Belajar memprogram yaitu : mempelajari metodologi pemecahan masalah, kemudian menuliskan algoritma pemecahan masalah dalam notasi tertentu.

Belajar bahasa pemrograman adalah belajar memakai suatu bahasa komputer, aturan tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compilernya, dan memanfaatkan instruksi-instruksi tersebut untuk membuat program yang ditulis hanya dalam bahasa itu.

Contoh bahasa pemrograman : bahasa rakitan (asembly, Fortan, Cobol, Ada, PL/I, Algol, Pascal, C, C++, Basic, Prolog, LISP, PRG, bahasa-bahasa simulasi seperti CSMP, Simscript, GPSS, Dinamo, Java, C# dll.

Berdasarkan tujuan aplikasinya, bahasa pemrograman dapat digolongkan menjadi 2 kelompok:

 

  1. Bahasa pemrograman bertujuan khusus (spesific purpose programming language) : Cobol (bisnis), Fortran(ilmah), bahasa Assembly(mesin), Prolog(AI), Simscript (simulasi) dsb.

 

  1. Bahasa pemrograman bertujuan umum (general purpose programming languange) : Pascal, Basic, c, C++.

 

Berdasarkan kedekatan, bahasa pemrograman apakah lebih condong ke bahasa mesin atau ke bahasa manusia maka bahasa pemrograman dikelompokkan :

 

  1. Bahasa tingkat rendah, bahasa jenis ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer tanpa harus melalui penerjemah (translator) contoh bahasa mesin, assembly.

 

  1. Bahasa tingkat tinggi, bahasa jenis ini membuat program menjadi lebih mudah dipahami, lebih manusiawi, dan lebih dekat ke bahasa manusia (bahasa inggris).

Notasi Algoritmik

 

Beberapa notasi yang digunakan untuk menuliskan algoritma:

 

  1. Menyatakan langkah-langkah algoritma dengan untaian kalimat deskriptif.
  2. Menggunakan bagan alir (flowchart)
  3. Menggunakan pseudo-code

 

 

 

  1. 1.    Notasi kalimat deskriptif:

PROGRAM Euclidean

Diberikan dua buah bilang bulat tak-negatif m dan n (m ? n). Algoritma Euclidean mencari pembagi bersama terbesar, gcd, dari kedua bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis membagi m dan n.

ALGORITMA :

  1. Jika n = 0 maka

m adalah jawabannya;

stop.

tetapi jika n ? 0,

lanjutkan ke langkah 2.

  1. Bagilah m dengan n dan misalkan r adalah sisanya.
  2. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali langkah 1.

 

 

 

 

 

 

 

 

 

  1. 2.   

    mulai

    Flowchart

baca m dan n

n = 0

r = m MOD n

m = n

n = r

tulis m

selesai

Ya

Tidak

 

 

 

 

 

 

 

 

 

 

 

 

  1. 3.    Pseudo-code

PROGRAM Euclidean

Program untuk mencari gcd dari dua buah bilangan bulat tak-negatif m dan n (m ? n). Gcd dari m dan n adalah bilangan bulat positif terbesar yang habis membagi m dan n.

DEKLARASI :

m, n : integer         { bilangan bulat yang akan dicari pbt-nya }

r       : integer         { sisa hasil bagi }

ALGORITMA :

read (m,n)        { m ? n }

while n ? 0 do

r ? m MOD n            { hitung sisa hasil pembagian }

m ? n

n ? r

endwhile

{ kondisi selesai pengulangan : n = 0, maka gcd(m,n) = m }        write (m)

Pemrograman Prosedural

 

Pada pemrograman prosedural, program dibedakan antara bagian data dengan bagian instruksi.

 

Bagian instruksi terdiri dari runtunan (sequence) instruksi yang dilaksanakan satu per satu secara berurutan oleh sebuah pemroses.

Data yang disimpan di dalam memori dimanipulasi oleh intruksi secara beruntun.

Muhammat Rasid Ridho
Muhammat Rasid Ridho
Software Developer yang Suka Jalan jalan, Belajar Jaringan dan Berbagi Cerita. Instagram: muhammat.rasid.ridho Jangan lupa tulis komentar di bawah ini ya teman teman ... !

Leave a Reply

Your email address will not be published.