Setelah sebelumnya kita sudah membahas panjang lebar mengenai sejarah dan perkembangan algoritma dan definisi algoritma dari para ahli. Kali ini kita bahas sedikit tentang struktur dasar Algoritma. Mungkin dari rekan-rekan sudah mengetahui maksud dari struktur, tapi apa sudah mengetahui arti dari struktur? baiklah kita bedah sama-sama.
Berikut menurut KBBI, Struktur adalah cara sesuatu disusun atau dibangun dengan pola tertentu. Atau bisa dibilang Struktur adalah sebuah sistem, artinya rangkaian atau gabungan dari berbagai macam elemen yang dirakit sedemikian rupa sehingga menjadi satu kesatuan yang utuh. Dan berikut adalah struktur-struktur dasar Algoritma :
Sebelum kita melanjutkan pembahasan kita tentang struktur dasar Algoritma. Saya mendapatkan sebuah pertanyaan ”Kenapa Blog masirwin pembahasannya tentang Algoritma melulu? kenapa tidak langsung ke sebuah project atau program kecil?”.
“Kenapa Blog masirwin pembahasannya tentang algoritma melulu?”
Jawab : Karena sebelum kita belajar bahasa pemrograman, kita harus paham betul apa itu algoritma. Bisa dikatakan algoritma itu sebagai dasar atau pondasi dari ilmu pemrograman. Memang lebih mudah langsung ke bahasa pemrograman dibandikan harus berkutik dengan logika. Tapi ada waktu dimana kita akan paham, bahwa algoritma itu penting sebelum belajar ke bahasa pemrograman.
“Kenapa tidak langsung ke sebuah project atau program kecil?”
Jawab : Kembali ke jawaban sebelumnya, pelajari dasarnya dahulu. Disini kita sama-sama belajar, saya juga masih perlu belajar algoritma. Saya cukup menyadari tidak ada yang instan didunia ini, tidak mungkin seorang atlet sepak bola seperti Chistiano Ronaldo bisa memperoleh banyak penghargaan tanpa ia tahu dasar-dasar dari bermain sepak bola. Yang saya ingin tulis adalah step by step dalam belajar bahasa pemrograman, jadi jangan bosen berkunjung yah…
Daftar Isi
Struktur Dasar Algoritma
1. Algoritma Sekuensial
Algoritma Sekuensial (Sequence Algorithm) adalah algoritma yang langkah-langkahnya dikerjakan atau dieksekusi secara urut dari awal hingga akhir sesuai dengan urutannya.
Kita bisa lihat contoh gambar flowchart diatas, terlihat kumpulan instruksi tersusun dari atas ke bawah. Program akan mengeksekusi instruksi_1, setelah instruksi_1 sudah selesai dikerjakan selanjutnya program akan mengeksekusi instruksi_2.
Setelah instruksi_2 sudah selesai dikerjakan selanjutnya program akan mengeksekusi instruksi_3. Setelah instruksi_3 sudah selesai dikerjakan maka selanjutnya program akan berakhir atau selesai. Kita ambil contoh program Luas Lingkaran, dimana untuk panjang jari-jarinya sudah diketahui besarannya. Dan berikut adalah algoritmanya :
Deskripsi :
1. Mulai
2. Input Jari_Jari
3. Hitung Luas = 3.14 * Jari_Jari * Jari_Jari
4. Cetak Luas
5. Selesai
Flowchart Luas Lingkaran
Perhatikan gambar flowchart Luas Lingkaran memiliki 3 instruksi yang harus dieksekusi. Instruksi ke-1 : program membaca nilai jari-jari yang telah diinputkan, Instruksi ke-2 : program melakukan operasi aritmatika rumus luas lingkaran dan Instruksi ke-3 : menampilkan hasil dari perhitungan rumus luas lingkaran.
Catatan Penting : Semakin banyak instruksi pada program maka semakin banyak waktu untuk mengeksekusinya. Pada perancangan sebuah program, efesiensi instruksi sangatlah penting untuk mempercepat proses dan menghemat konsumsi memory pada program.
2. Algoritma Perulangan (Looping Algorithm)
Algoritma Perulangan atau Looping Algorithm adalah sebuah struktur dasar algoritma yang menjalankan beberapa langkah tertentu secara berulang-ulang sampai terpenuhinya suatu kondisi. Pada kehidupan sehari-hari banyak yang kita lakukan secara berulang-ulang, contohnya seperti algoritma menjemur pakaian:
1. Siapkan tiang Jemuran
2. Ambil satu pakaian yang sudah dicuci
3. Peras pakaian hingga sedikit mengering
4. Letakan pakaian pada tiang jemuran
5. Ulangi langkah 2 sampai 4 hingga pakaian habis.
Dari algoritma menjemur pakaian diatas, kita dapat mendapat gambaran tentang struktur algoritma looping. Jenis struktur dasar ini akan selesai jika sebuah kondisi tertentu terpenuhi, seperti menjemur pakaian maka proses jemur akan selesai jika pakaian yang akan dijemur sudah habis. Struktur dasar algoritma ini mempunyai beberapa bentuk seperti Struktur FOR, Struktur While dan Struktur Do….While.
A. Struktur FOR
Struktur dasar algoritma perulangan menggunakan instruksi FOR digunakan untuk mengulang satu baris instrusi atau beberapa baris instruksi sampai jumlah perulangan yang disyaratkan terpenuhi. Ciri-ciri utama struktur perulangan menggunakan FOR adalah terdapat nilai awal dan nilai akhir yang menunjukkan syarat yang harus terpenuhi. Berikut Flowchart menggunakan FOR :
Gambar diatas menjelaskan bahwa Instruksi_1, Instruksi_2 dan Instruksi_3 akan dieksekusi atau dikerjakan ketika syarat terpenuhi. Perulangan menggunakan struktur FOR dimulai dari Nilai_Awal dan akan berhenti pada Nilai_Akhir. Untuk lebih jelasnya kita lihat contoh algoritma mencetak angka menggunakan FOR, program akan dicetak angka 1 sampai 5.
Deskripsi :
1. Mulai
2. Kerjakan Langkah 3 mulai i = 1 sampai i = 5
3. Cetak i
4. Selesai
Flowchart Cetak Angka dengan FOR
Gambar flowchart diatas, menjelaskan bahwa nilai i awal berisi 1, kemudian dicetak nilai i awal yaitu 1. Dalam struktur perulangan menggunakan FOR, nilai variabel i akan bertambah secara otomatis sehingga nilai variabel i. Setelah ditambahkan secara otomatis, sekarang i = 2 lalu cetak nilai variabel i.
Proses tersebut akan dijalankan sampai kondisi yang sudah ditentukan terpenuhi yaitu i = 5 maka proses looping akan berhenti.
Jika belum paham kita pelajari dengan seksama contoh ke 2, algoritma Cetak Bilangan Genap menggunakan struktur FOR, program akan mencetak bilangan genap mulai dari 0 dengan batas akhir 10 dengan menggunakan struktur looping FOR.
Deskripsi :
1. Mulai
2. Kerjakan langkah 3 sampai langkah 4 mulai i = 1 sampai i = 10
3. Jika i dibagi 2 sama dengan 0 maka kerjakan langkah 4
4. Cetak i
5. Selesai
Flowchart Cetak Bilangan Genap dengan FOR
Gambar flowchart diatas, menjelaskan bahwa program akan mengeksekusi syarat yang dijabarkan dengan FOR, diketahui nilai i pertama kali berisi 1 kemudian diuji apakah nilai i tersebut habis dibagi dengan 2. Jika benar maka nilai i akan dicetak kemudian dilakukan penambahan otomatis sehingga nilai i menjadi 2.
Namun jika salah, nilai i akan langsung ke langkah penambahan otomatis. Proses tersebut akan dieksekusi terus sampai nilai i lebih besar dari 10.
B. Struktur WHILE
Struktur looping dengan menggunakan WHILE berfungsi hampir mirip dengan FOR yaitu mengulang satu baris instruksi atau beberapa baris instruksi selama syarat yang ditentukan masih terpenuhi. Ciri-ciri utama dari struktur WHILE adalah syarat yang ditentukan akan diuji lebih dahulu sebelum instruksi-instruksi dieksekusi dalam perulangan.
Catatan Penting : pada Struktur WHILE akan menguji syarat yang ditentukan terlebih dahulu, sehingga jika syarat tidak terpenuhi ada kemungkinan instruksi-istruksi pada perulangan tidak dikerjakan.
Flowchart struktur while
Gambar diatas menjelaskan bahwa syarat akan diuji oleh pemroses terlebih dahulu sebelum mengeksekusi instruksi-instruksi yang akan diulang. Jika syarat yang diuji benar, maka instruksi akan dieksekusi.
Setelah instruksi dikerjakan maka syarat akan diuji lagi, proses perulangan ini akan berhenti jika syarat yang telah diuji bernilai salah. Untuk lebih jelasnya, kita simak contoh algoritma cetak angka menggunakan WHILE, program akan mencetak angka 1 sampai 5 dengan struktur WHILE.
Deskripsi :
1. Mulai
2. i = 1
3. Selama i <= 5 kerjakan langkah 4 sampai langkah 5
4. Cetak i
5. i = i + 1
6. Selesai
Flowchart Cetak Angka dengan WHILE
Gambar flowchart diatas, menjelaskan bahwa nilai i pertama kali bernilai 1. Kemudian akan diuji apakah nilai i lebih kecil atau sama dengan (<=) 5, jika benar maka nilai i dicetak. Kemudian nilai i ditambah 1, lalu nilai i akan diuji kembali apakah masih memenuhi syarat yang sudah di deklaraskikan diawal, jika benar maka nilai i akan dicetak. Langkah perulangan akan berjalan terus sampai nilai i lebih besar dari 5.
Catatan penting : Pada struktur WHILE penambahan tidak dilakukan secara otomatis seperti pada struktur FOR, sehingga kita perlu menambahkan instruksi lagi. Untuk lebih jelasnya kita liat lagi contoh berikutnya algoritma cetak bilangan genap menggunakan WHILE, program akan mencetak bilangan genap sampai 10 dengan menggunakan struktur perulangan WHILE.
Deskripsi :
1. Mulai
2. i = 1
3. Selama i <= 10 kerjakan langkah 4 sampai langkah 6
4. Jika i habis dibagi 2 kerjakan langkah 5
5. Cetak i
6. i = i + 1
7. Selesai
Flowchart Cetak Angka Genap dengan WHILE
Pada gambar flowchart diatas, dapat dijelaskan pertama adalah nilai i diberikan nilai 1. Lalu nilai i diuji apakah nilai i lebih kecil atau sama dengan (<=) 10, jika benar maka akan dilakukan operasi aritmatika yaitu nilai i dibagi 2, jika habis atau hasilnya 0 maka akan dicetak nilai i dan jika sebaliknya maka nilai i tidak tercetak dan langsung ke proses berikutnya.
Proses berikutnya adalah nilai i akan ditambah 1, sebelumnya nilai i adalah 1 maka setelah proses ini menjadi 2. Kemudian nilai i diuji kembali sampai nilai i lebh besar dari 10 barulah proses perulangan menggunakan WHILE berakhir.
C. Struktur DO…WHILE
Struktur looping dengan DO…WHILE digunakan untuk mengulangi satu baris instruksi atau beberapa baris instruksi sampai syarat yang ditetapkan tidak terpenuhi. Ciri-ciri utama dari struktur DO…WHILE ialah syarat akan diuji setelah instruksi dikerjakan seluruhnya atau bisa kita katakan pengujian pada syarat dilakukan dibelakang.
Catatan penting : Struktur menggunakan DO…WHILE berbeda dengan menggunakan WHILE, jika DO…WHILE melakukan pengujian di akhir dan WHILE melakukan pengujian di awal.
Flowchart struktur DO…WHILE
Pada gambar flowchart diatas, kita bisa lihat bahwa instruksi_1, instruksi_2 dan instruksi_3 akan dikerjakan dahulu baru syarat akan diuji. Jika syarat yang diuji bernilai benar maka instruksi_1 sampai instruksi_3 akan dikerjakan kembali.
Setelah dikerjakan kembali maka syarat akan diuji lagi, perulangan akan selesai jika syarat yang diuji bernilai salah. Untuk lebih jelasnya kita lihat contoh algoritma cetak angka DO…WHILE, program akan mencetak angka 1 sampai 5 dengan menggunakan DO…WHILE
Deskripsi :
1. Mulai
2. i = 0
3. i = i + 1
4. Cetak i
5. Jika i <= 5 kerjakan langkah 3 sampai langkah 4
6. Selesai
Flowchart Cetak Angka dengan DO…WHILE
Pada gambar diatas, pertama kali variabel i diberi nilai awal adalah 0. Kemudian nilai i ditambah 1 sehingga nilai i menjadi 1, Lalu nilai i dicetak. Langkah selanjutnya adalah nilai i diuji apakah lebih kecil atau sama dengan (<=) 5, jika hasil uji bernilai benar maka akan kembali ke instruksi ke 1 yaitu nilai i ditambah 1 sehingga nilai i sekarang menjadi 2.
Kemudian nilai i dicetak dan diuji kembali, perulangan akan berhenti sampai nilai i lebih besar dari 5.
Kita lihat contoh berikutnya algoritma cetak bilangan genap, program akan mencetak bilangan genap dari 1 sampai 10 menggunakan struktur perulangan DO…WHILE.
Deskripsi :
1. Mulai
2. i = 1
3. Selama i <= 10 kerjakan langkah 4 sampai langkah 6
4. Jika i habis dibagi 2 kerjakan langkah 5
5. Cetak i
6. i = i + 1
7. Selesai
Flowchart Cetak Angka Genap dengan DO…WHILE
Pada gambar flowchart, instruksi pertama adalah nilai i adalah 1. Instruksi selanjutnya pengujian nilai i habis dibagi 2, jika benar maka nilai i dicetak kemudian nilai i ditambah 1 sehingga nilai i menjadi 2. Jika salah maka instruksi nilai i ditambah 1 sehingga menjadi 2.
Instruksi berikutnya adalah pengujian apakah nilai i lebih kecil atau sama dengan 10, jika benar maka akan kembali pada instruksi ke 2 yaitu diuji apakah nilai i habis dibagi 2, begitulah seterusnya sampai nilai i lebih besar dari 10 barulah perulangan selesai.
3. Algoritma Percabangan (Conditional Algorithm)
Algoritma percabangan atau Algoritma bersyarat adalah algoritma yang menjalankan instruksi selanjutnya apabila syarat yang ditetapkan sudah terpenuhi. Pada struktur ini tidak setiap instruksi akan dikerjakan, instruksi yang dikerjakan hanya yang memenuhi syarat saja. Pada bahasa pemrograman struktur ini sering digunakan menggunakan instruksi IF-THEN atau lebih dikenal instruksi jika-maka. Berikut macam-macam instruksi IF :
A. Struktur IF Sederhana
Bentuk dari struktur IF sederhana adalah IF (Syarat) THEN (Instruksi), simak gambar dibawah ini :
Bentuk flowchart IF Sederhana
Pada gambar flowchart diatas, struktur IF sederhana dapat kita lihat bahwa instruksi_1 akan dieksekusi jika syarat yang ditentukan bernilai benar dan jika bernilai salah, instruksi_1 tidak akan dieksekusi. Untuk lebih jelasnya kita simak contoh algoritma kelulusan siswa, program ini akan mengatakan bawa siswa tersebut lulus jika nilainya >= 65.
Deskripsi :
1. Mulai
2. Baca nilaisiswa
3. Jika nilaisiswa >= 65 maka kerjakan langkah 4
4. Cetak “LULUS”
5. Selesai
Flowchart Kelulusan Siswa
Pada flowchart diatas, nilai siswa yang diinputkan akan diuji apakah nilai tersebut lebih besar atau sama dengan 65. Jika benar maka program akan mencetak “LULUS” kemudian selesai, namun jika salah maka program selesai.
B. Struktur IF…THEN…ELSE…
Pada struktur ini, terdapat dua kemungkinan instruksi yang akan dikerjakan berdasarkan hasil dari pengujian. Contoh jika syarat yang diujikan memperoleh hasil benar maka instruksi_1 dikerjakan, namun jika bernilai salah maka instruksi_2 yang dikerjakan. Untuk lebih jelasnya bisa lihat gambar dibawah ini :
Bentuk flowchart
Tidak lengkap rasanya kalau tidak diberikan contoh, mengambil masalah sebelumnya tentang kelulusan siswa. Sekarang kita modifikasi sedikit dimana jika nilai siswa lebih besar atau sama dengan 65 maka dinyatakan lulus dan jika nilai siswa lebih kecil dari 65 maka siswa dinyatakan tidak lulus.
Deskripsi :
1. Mulai
2. Baca nilaisiswa
3. Jika nilaisiswa >= 65 maka kerjakan langkah 4, selain itu kerjakan langkah 5
4. Cetak “LULUS”
5. Cetak “TIDAK LULUS”
6. Selesai
Flowchart Kelulusan Siswa
Pada gambar flowchart diatas, setelah nilai diinputkan maka nilai tersebut akan diuji apakah nilai siswa lebih besar atau sama dengan 65. Jika benar maka program akan mencetak “LULUS” lalu selesai, Jika tidak maka akan dicetak “TIDAK LULUS” lalu program selesai.
C. IF Bersarang
Untuk struktur yang satu ini kita perlu belajar logika dan ketelitian, satu alasan yang pasti adalah struktur ini sering dipakai untuk tes kerja dalam bidang IT terutama pekerjaan yang berkaitan dengan perancangan sistem. Pada struktur ini juga kemungkinan akan banyak instruksi yang dikerjakan berdadarkan hasil pengujian, bisa disimak gambar dibawah ini:
Flowchart struktur IF Bersarang
Dari flowchart diatas kita bisa pelajari bagaimana struktur dari IF bersarang. Kita jabarkan satu persatu, jika syarat1 yang diuji bernilai benar maka instruksi1 akan dieksekusi, jika syarat1 bernilai salah maka syarat2 diuji,jika syarat2 yang diuji bernilai benar maka instruksi2 akan dieksekusi, jika syarat2 bernilai salah maka syarat3 diuji, jika syarat3 yang diuji bernilai benar maka instruksi3 akan dieksekusi, jika syarat3 bernilai salah maka syaratx diuji, jika syaratx yang diuji bernilai benar maka instruksix akan dieksekusi, jika syaratx bernilai salah atau tidak ada syarat yang terpenuhi maka instruksiy yang dieksekusi.
Untuk lebih jelasnya, kita implementasikan dalam sebuah algoritma konfersi nilai siswa, program akan mengkonfersi nilai siswa dari semula dalam bentuk angka dirubah menjadi bentuk huruf dengan ketentuan sebagai berikut :
– Jika nilai angka >= 80 maka nilai huruf sama dengan A
– Jika nilai angka >= 70 maka nilai huruf sama dengan B
– Jika nilai angka >= 60 maka nilai huruf sama dengan C
– Jika nilai angka >= 50 maka nilai huruf sama dengan D
– Jika nilai angka < 50 maka nilai huruf sama dengan E
Deskripsi :
1. Mulai
2. Baca nilaiangka
3. Jika nilaiangka >= 80 maka nilaihuruf = “A”, selain itu
4. Jika nilaiangka >= 70 maka nilaihuruf = “B”, selain itu
5. Jika nilaiangka >= 60 maka nilaihuruf = “C”, selain itu
6. Jika nilaiangka >= 50 maka nilaihuruf = “D”, selain itu
7. nilaihuruf = “E”
8. Cetak nilaihuruf
9. Selesai
Flowchart Konfersi Nilai Siswa
Dapat dicermati gambar flowchart diatas, hal yang perlu diperhatikan dalam struktur IF bersarang adalah jika salah satu syarat sudah terpenuhi maka syarat-syarat lainnya yang ada sejajar tidak akan diuji lagi.
Contohnya kita masukan nilaiangka 60 maka nilaihurufnya adalah “C” dan pengujian nilaiangka lebih besar atau sama dengan 50 tidak akan dijalankan.
Kesimpulan Struktur Dasar Algoritma
Dari penjabaran yang cukup panjang diatas, kita bisa mengetahui seperti apa struktur dasar algoritma. Pada praktiknya dalam perancangan sebuah sistem bentuk-bentuk diatas akan berkolaborasi menjadi satu kesatuan. Dan inilah yang menjadikan Algoritma salah satu bagian terpenting dalam perancangan sebuah sistem.
Penjelasan mengenai Struktur dasar poin 2 dan 3, akan ditulis lebih detail lagi. Mungkin cukup sekian pembahasan kita mengenai “Struktur Dasar Algoritma”, bila ada pertanyaan dapat diajukan melalui komentar atau laman contact. Keep calm and stay code programming !!
Daftar Pustaka :
- Kadir, Abdul. 2012. Algoritma & Pemrograman Menggunakan Java. Yogyakarta : Andi Offset
- Kamus Besar Bahasa Indonesia. Struktur .http://kbbi.web.id/struktur [Diakses 20 November 2016]
- Wawan. 2015. Struktur Dasar Algoritma Pemrograman. http://www.gatewan.com/2015/02/struktur-dasar-algoritma-pemrograman.html [Diakses 21 November 2016]