Lompat ke konten Lompat ke sidebar Lompat ke footer

Pengertian Algoritma, Struktur & Contoh Penulisan Algoritma

Modul MakalahPengertian Algoritma, Struktur & Contoh Penulisan Algoritma - Artikel ini membahas mengenai Pengertian algoritma, Terminologi Algoritma, Struktur Dasar Algoritma, Bentuk Penulisan Algoritma, Konsep Algoritma. Melalui artikel ini diharapkan dapat mampu menjelaskan tahapan-tahapan dalam pemrograman komputer 

Pengertian Algoritma

Sebuah algoritma merupakan deskripsi pelaksanaan suatu proses, dimana algoritma disusun oleh sederetan langkah instruksi yang logis.

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, benar atau salah. Langkah-langkah yang tidak benar dapat memberikan hasil yang salah.

Sebagai contoh, tinjau persoalan mempertukarkan isi dua bejana, A dan B. Bejana A berisi larutan yang berwarna merah, sedangkan bejana B berisi air berwarna biru. Kita ingin mempertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.

Pengertian Algoritma, Struktur & Contoh Penulisan Algoritma_
image source: www.nielsentechnologies.com

Untuk mempertukarkan isi dua bejana, kita memerlukan sebuah bejana tambahan yang diperlukan sebagai tempat penampungan sementara. Sebut bejana tambahan tersebut bejana C. Dengan menggunakan bejana bantu C ini, algoritma mempertukarkan isi dua buah bejana yang benar adalah sebagai berikut ini:

Algoritma Tukar Isi Bejana:
Diberikan dua buah bejana, A dan B; bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Pertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.

Deskripsi:
  1. Tuangkan larutan dari bejana A ke dalam bejana C. 
  2. Tuangkan larutan dari bejana B ke dalam bejana A. 
  3. Tuangkan larutan dari bejana C ke dalam bejana B. 

Tahapan Pelaksanaan Program Oleh Komputer

Pengertian Algoritma, Struktur & Contoh Penulisan Algoritma_

Keterangan:
Algoritma di translasikan menjadi program dalam bahasa tingkat tinggi. Selanjutnya, program dikompilasi dan diterjemahkan menjadi program dalam bahasa mesin dan di-link dengan berkas library. Instruksi dalam bahasa mesin diinterpretasikan oleh CPU. Operasi yang bersesuaian dengan setiap instruksi dilaksanakan.

NOTASI ALGORITMA
Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Notasi algoritma bukan notasi bahasa pemrograman, sehingga siapapun dapat membuat notasi algoritma yang berbeda. Hal yang penting mengenai notasi tersebut adalah mudah dibaca dan dimengerti. Meskipun demikian untuk menghindari kekeliruan, ketaatan terhadap notasi perlu diperhatikan. Di bawah ini notasi yang umum digunakan dalam penulisan algoritma :
Notasi I: Menyatakan langkah-langkah algoritma dengan untaian kalimat deskriptif

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 m ≠ 0, lanjutkan ke langkah 2 
  2. Bagilah m dengan n dan misalkan r adalah sisanya. 
  3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah 1. 

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 relatif sukar.

Notasi II: Menggunakan diagram alur (Flow chart)

Diagram alir popular pada awal-awal era pemrograman dengan computer (terutama dengan bahasa Basic, Fortran, dan Cobol). Diagram alir 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.


Notasi III: menggunakan Pseudo-code

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 Pseudo-code dapat diterima asalkan perintahnya tidak membingungkan pembaca. Keuntungan menggunakan notasi Pseudo-code adalah kemudahan mentranslasi ke notasi bahasa pemrograman, karena terdapat korespodensi antara setiap Pseudo-code dengan notasi bahasa pemrograman.

Algoritma EUCLIDEAN


{Dibaca 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.}

DEKLARASI:
m, n : integer {bilangan bulat yang akan dicari pbt-nya}
r : integer {sisa hasil bagi}

DESKRIPSI:
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 pbt(m,n) = m}
write(m)

KOTAK KEPUTUSAN, untuk memutuskan arah atau percabangan yang diambil sesuai dengan kondisi yang saat itu terjadi , BENAR atau SALAH

Kata-kata yang digaris bawahi menyatakan kata-kata kunci untuk setiap notasi pseudo-code yang digunakan.

PROSES, INSTRUKSI, DAN AKSI
Pada dasarnya, sebuah algoritma merupakan deskripsi pelaksanaan suatu proses. Tiap langkah instruksi tersebut mengerjakan suatu tindakan (aksi). Bila suatu aksi dilaksanakan, maka sejumlah operasi yang bersesuaian dengan aksi itu dikerjakan oleh pemroses. Efek dari pengerjaan suatu aksi dapat diamati dengan membandingkan keadaan pada saat aksi belum dimulai, dan keadaan pada saat aksi selesai dikerjakan.

Tahap-tahap penyusunan algoritma seringkali dimulai dari langkah yang global lebih dahulu. Langkah global ini diperhalus samapai langkah yang lebih rinci. Pendekatan desain algoritma seperti ini dinamakan Top-Down design. Cara pendekatan seperti ini sangant bermanfaat dalam membuat algoritma untuk masalah yang cukup rumit atau kompleks. Gagasan penghalusan langkah adalah memecah proses menjadi beberapa langkah. Tiap langkah diuraikan lagi menjadi beberapa langkah yang lebih sederhana. Penghalusan langkah terus berlanjut samapai tiap langkah sudah cukup rinci dan tepat untuk dilaksanakan oleh pemroses.

STRUKTUR DASAR ALGORITMA
Algoritma berisi langkah-langkah penyelesaian masalah. Langkah-langkah tersebut dapat berupa runtunan aksi, pemilihan aksi, dan pengulangan aksi. Ketiga jenis langkah tersebut membentuk konstruksi suatu algoritma. Jadi, sebuah algoritma dapat dibangun dari tiga buah struktur dasar, yaitu:
  1. Runtunan (sequence).
  2. Pemilihan (selection).
  3. Pengulangan (repetition).

Runtunan
Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya, yakni sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan. Urutan instruksi menentukan keadaan akhir algoritma. Bila urutannya diubah, maka hasil akhir mungkin juga berubah.
Contoh : 
READ(A)
READ(B)
T = A + B
WRITE T
Instruksi di atas dilaksanakan secara berurutan atau sekuen sehingga membentuk struktur sequential flow

Pemilihan
Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. Kondisi adalah persyaratan yang dapat bernilai benar atau salah. Dalam pemilihan dikenal beberapa struktur pemilihan, yaitu:

- If - then
Aksi hanya akan dilaksanakan apabila kondisi bernilai benar. Sebaliknya, apabila kondisi bernilai salah, maka aksi tidak akan dilaksanakan.
Struktur Umum: 
if kondisi then
Aksi

Struktur pemilihan if-then hanya memberikan satu pilihan aksi bila kondisi (persyaratan) dipenuhi (bernilai benar), dan tidak memberikan pilihan aksi lain bila kondisi bernilai salah. 

- If-then-else
Struktur pemilihan ini memberikan dua buah aksi yang akan dikerjakan tergantung pada nilai kondisinya. 
Struktur umumnya:
if kondisi then
aksi 1
else
aksi 2 

Else artinya ”kalau tidak”. Bila kondisi benar, aksi 1 yang akan dikerjakan, tetapi kalau tidak, aksi 2 yang akan dikerjakan.
Contoh:
If x > y then Tulis x sebagai bilangan terbesar
Else Tulis y sebagai bilangan terbesar
Contoh diatas adalah untuk menentukan nilai terbesar dari dua buah bilangan bulat, x dan y (andaikan x ≠ y)
- If-then-else if
Apabila pilihan aksi yang dilakukan lebih dari dua buah, maka struktur pilihannya menjadi lebih rumit, biasanya untuk pemilihan seperti ini disebut pemilihan bersarang.
Contoh: menentukan bilangan terbesar dari tiga buah bilangan: x, y, z:
If x > y then
         If x > z then
             Tulis x sebagai bilangan terbesar
         Else
             Tulis z sebagai bilangan terbesar
Else
         If y > z then
             Tulis y sebagai bilangan terbesar
         else
             Tulis z sebagai bilangan terbesar
Kelebihan struktur pemilihan terletak pada kemampuannya yang memungkinakan pemroses mengikuti jalur aksi yang berbeda berdasarkan kondisi yang ada.
Pengulangan
Pengulangan digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak beberapa kali. Dengan kata lain, pengulangan memungkinkan pengerjaan beberapa kali perintah tetapi penulisan perintah tersebut hanya satu kali.
Struktur pengulangan yang umum digunakan antara lain:
Pernyataan for
Pernyataan pengulangan for digunakan jika kita sudah tahu berapa kali kita akan mengulang satu atau beberapa pernyataan. Bentuk umum pernyataan for adalah sbb:
For pencacah := nilai_awal to nilai_akhir do Aksi 
Aksi akan dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari nilai_awal sampai nilai_akhir
Pernyataan repeat-until
Pernyataan repeat-until akan melakukan pengulangan aksi hingga kondisi (persyaratan) berhenti terpenuhi. Bentuk umum pernyataan repeat-until adalah sbb:
Repeat
Aksi
Until kondisi
Tidak seperti pada struktur for-do yang jumlah pengulangannya diketahui sebelum pengulangan dilaksanakan, maka untuk struktur repeat-until digunakan jika jumlah pengulangan tidak dapat diketahui di awal. Namun yang pasti, pengulangan aksi akan terus dilakukan sampai kondisi berhenti dipenuhi.
Pernyataan while-do
Sama seperti pada pernyataan repeat-until, pada pernyataan while-do ini digunakan untuk pengulangan yang belum diketahui pasti jumlah pengulangannya, berakhirnya pengulangan ini ditentukan oleh suatu kondisi. Bila kondisi sudah tidak terpenuhi, maka pengulangan akan berakhir. Dengan kata lain, selama kondisi masih terpenuhi, pengulangan akan terus dilakukan. Bentuk umum pernyataan while-do adalah sebagai berikut:
While kondisi doAksi
Catatan:
  • Pada pernyataan repeat-until dan while-do, pada dasarnya hampir sama yaitu digunakan jika jumlah pengulangan belum dapat ditentukan. Tetapi terdapat perbedaan yaitu pada pengecekan kondisi. Jika pada pernyataan while, kondisi dicek pada awal blok pengulangan, pada pernyataan repeat-until, kondisi dicek pada akhir blok pengulangan. 
  • Perbedaan yang lain, bila pernyataan while mengulang pernyataan selama kondisi masih terpenuhi, pernyataan repeat-until mengulang pernyataan selama kondisi belum terpenuhi.

Latihan Algoritma:
  1. Buatlah algoritma dengan notasi deskriftif dengan masalah sbb:
    Seorang pemuda berada di tepi sebuah sungai, pemuda tersebut membawa seekor kambing, seekor serigala, dan sekeranjang sayur. Mereka bermaksud menyebrang sungai. Pemuda tersebut menemukan sebuah perahu kecil yang hanya dapat memuat satu bawaan setiap kali menyebrang. Situasi dipersulit dengan dengan kenyataan bahwa serigala tidak dapt ditinggal berdua dengan kambing (karena serigala akan memangsa kambing) atau kambing tidak dapat ditinggal berdua dengan sekeranjang sayur (karena kambing akan memakan sayur). Buatlah algoritma untuk menyebrangkan pemuda dan seluruh bawaannya itu sehingga mereka sampai ke seberang sungai dengan selamat.
  2. Buatlah algoritma untuk meminta masukan tiga bilangan dari pengguna kemudian menampilkan bilangan terkecil di antara ketiga bilangan tersebut.
  3. Sebuah tabel terdiri atas kolom NIM, Nama, alamat, dan Nomor Telepon. Tabel tersebut sudah berisi data utama sekumpulan mahasiswa di sebuah Perguruan Tinggi. Tuliskan algoritma dalam notasi pseudo-code jika kita ingin mengetahui alamat dan nomor telepon mahasiswa dengan NIM tertentu pada tabel tersebut.

Sekian artikel Modul Makalah tentang Pengertian Algoritma, Struktur & Contoh Penulisan Algoritma.

Daftar Pustaka
  • Antony Pranata, Algoritma dan Pemrograman, J & J Learning, Yogyakarta, 2000
  • Moh. Sjukani, Algoritma dan Struktur Data dengan C, C++ dan JAVA, Mitra Wacana Media, 2004.
  • Rinaldi Munir, Algoritma & Pemrograman Dalam Bahasa Pascal dan C, Informatika Bandung, 2007.

1 komentar untuk "Pengertian Algoritma, Struktur & Contoh Penulisan Algoritma"