Logika
Sebelum membahas tentang apa itu algoritma, pengertian algoritma dan contoh-contoh algoritma, alangkah baiknya kita belajar dulu tentang Logika.
Logika, dalam bahasa inggris “logic – science or method of reasoning” – yaitu metode atau langkah-langkah untuk mengambil keputusan dari suatu masalah, fakta atau pernyataan. Logika biasanya diselaraskan dengan fikiran atau nalar, yaitu proses berfikir manusia untuk menyelaraskan fakta atau pernyataan sehingga sampai pada suatu titik kesimpulan. Data, Pernyataan maupun fakta yang akan difikirkan boleh salah boleh benar. Di sinilah letak kerja penalaran.
Algoritma dan Pemrograman
Apa itu Algoritma ? Menurut batasan umum, algoritma adalah : Sekumpulan langkah-langkah atau instruksi-instruksi yang terbatas untuk menyelesaikan suatu masalah. Asal kata algoritma – terjemahan dari istilah asing algorithm – diambil dari sebuah nama seorang astronom dan ahli matematika bangsa Arab, yaitu Al-Khowarizmi yang mengarang kitab Al-Jabr W’al Muqabala, dikenal sekarang sebagai ilmu aljabar. Semula, langkah-langkah seperti disebutkan pada batasan diatas dikaitkan dengan langkah-langkah untuk penyelesaian masalah numerik, tetapi pada akhirnya digunakan pada hal-hal yang lebih umum.
Sederhananya Pengertian algoritma adalah Langkah-langkah logis untuk menyelesaikan suatu masalah dengan bantuan komputer, sedangkan proses membuat suatu aplikasi atau program disebut pemrograman atau dalam istilah bahasa inggris disebut : programming, kemudian bahasa yang digunakan untuk menuliskan langkah langkah dalam bentuk perintah dan statement disebut bahasa pemrograman atau dalam istilah bahasa asing disebut : programming language.
Algoritma juga dapat diukur kinerjanya dengan menggunakan beberapa parameter, seperti kompleksitas waktu dan kompleksitas ruang. Kompleksitas waktu mengukur berapa banyak waktu yang dibutuhkan untuk menjalankan algoritma, sedangkan kompleksitas ruang mengukur berapa banyak ruang yang dibutuhkan untuk menjalankan algoritma.
Dalam pengembangan software, pemilihan algoritma yang tepat sangat penting untuk memastikan performa program yang optimal. Dalam beberapa kasus, pengembang software harus merancang algoritma sendiri untuk memenuhi kebutuhan program yang diinginkan.
Jika ada yang bertanya apakah Pada pembuatan program komputer, algoritma dibuat sebelum membut program?
Jawabannya adalah Ya, dalam pembuatan program komputer, algoritma sangat penting untuk digunakan. Algoritma adalah prosedur atau langkah-langkah terdefinisi dengan jelas untuk menyelesaikan suatu masalah atau tugas tertentu. Algoritma membantu memecahkan masalah yang kompleks menjadi beberapa sub-masalah yang lebih sederhana dan mudah dipecahkan.
Dalam pengembangan program komputer, algoritma digunakan untuk merancang logika dari program yang akan dibuat. Algoritma membantu pengembang untuk merencanakan bagaimana program akan berjalan dan menyelesaikan masalah yang ingin diatasi. Dengan menggunakan algoritma, pengembang dapat memecah masalah besar menjadi bagian-bagian yang lebih kecil, sehingga mudah dipecahkan.
Setelah merancang algoritma, langkah selanjutnya adalah mengimplementasikan algoritma tersebut ke dalam bahasa pemrograman yang dipilih. Proses ini melibatkan menuliskan kode program yang sesuai dengan algoritma yang telah dirancang. Kode program harus ditulis dengan benar dan efisien agar program dapat berjalan dengan baik.
Penggunaan algoritma dalam pembuatan program komputer sangat penting untuk memastikan bahwa program yang dibuat dapat berjalan dengan baik dan menyelesaikan masalah yang diinginkan. Tanpa algoritma yang baik, program mungkin tidak efisien atau bahkan tidak dapat menyelesaikan masalah yang diinginkan. Oleh karena itu, algoritma harus diperhatikan dengan baik dalam setiap tahapan pembuatan program komputer.
Sifat Lengkap Algoritma
Jika anda menjaci terkait Jelaskan secara lengkap sifat Algoritma, berikut ini sifat-sifat yang ada pada algoritma.
Algoritma memiliki beberapa sifat-sifat yang harus dipenuhi agar dapat digunakan secara efektif. Berikut adalah penjelasan lengkap mengenai sifat-sifat algoritma:
- Keterdefinisian Algoritma harus memiliki langkah-langkah yang jelas dan terdefinisi dengan baik. Setiap langkah harus didefinisikan secara jelas dan spesifik agar dapat diikuti dan dipahami dengan mudah.
- Input dan Output Setiap algoritma harus memiliki input dan output yang jelas. Input merupakan data atau informasi yang diperlukan oleh algoritma untuk menghasilkan output yang diinginkan. Output adalah hasil yang dihasilkan oleh algoritma setelah memproses input yang diberikan.
- Keterbatasan Algoritma harus memiliki keterbatasan yang jelas. Artinya, algoritma harus memiliki batasan dalam hal waktu dan sumber daya yang digunakan. Algoritma harus dapat menyelesaikan tugas yang diberikan dalam batas waktu yang wajar dan menggunakan sumber daya yang tersedia dengan efisien.
- Efektivitas Algoritma harus efektif dalam menyelesaikan masalah yang diberikan. Algoritma harus menghasilkan output yang benar dan sesuai dengan masalah yang diberikan dengan menggunakan sumber daya yang efisien.
- Terstruktur Algoritma harus terstruktur dan terorganisir dengan baik. Setiap langkah harus terorganisir dengan baik dan urut, sehingga algoritma mudah dipahami dan diikuti.
- Unik Setiap algoritma harus unik dan spesifik untuk masalah yang diberikan. Algoritma harus dirancang untuk menyelesaikan masalah yang spesifik dan tidak dapat digunakan untuk menyelesaikan masalah yang berbeda.
- Finiteness Algoritma harus memiliki batas waktu yang jelas dan memiliki titik akhir yang dapat dicapai. Artinya, algoritma harus dapat berhenti setelah mencapai titik akhir dan tidak mengalami looping atau berjalan terus-menerus tanpa batas waktu.
- Efisiensi Algoritma harus efisien dalam penggunaan sumber daya. Algoritma harus dirancang untuk menggunakan sumber daya yang tersedia dengan efisien dan tidak memakan waktu atau sumber daya yang berlebihan.
Sifat-sifat algoritma ini sangat penting dalam merancang algoritma yang efektif dan efisien. Penggunaan algoritma yang baik dapat membantu menyelesaikan masalah secara cepat dan efisien, serta membantu meningkatkan kinerja dan efektivitas program yang dibuat.
Tahapan-tahapan dalam Pemrograman
Tahapan-tahapan yang dilakukan untuk menyelesaikan suatu masalah dengan komputer, mulai dari masalah tersebut diberikan hingga akhir penyelesaian adalah :
1. Penentuan batasan masalah
2. Pengembangan Model
3. Merancang Algoritma
4. Mengoreksi Algoritma
5. Pemrograman
6. Pengujian dan Analisis Program
7. Dokumentasi
Pembatasan Masalah
Seringkali masalah yang dihadapi masih belum begitu jelas, batasan masih kabur dan pada sejumlah hal, inti persoalan (Batasan) masih kabur. Oleh karenanya dibutuhkan penalaran atas masalah yang dihadapi, hingga pembatasan masalah dapat diciptakan lebih jelas, demikian pun* ruang lingkup permasalahan dapat* ditentukan dengan tegas. Namun demikian, pada tahapan ini butuh difikirkan hal-hal yang bisa menampung beberapa perkembangan masalah yang akan data. Dapat disimpulkan bahwa pemahaman yang baik terhadap suatu persoalan berarti separuh dari kegiatan untuk menuntaskan masalah tersebut sudah dilalui.
Pengembangan Model
Model ialah suatu sistem yang secara fisis ataupun matematis menganut kondisi-kondisi yang telah diputuskan dalam sistem aslinya, dimana sifat yang didapatkan dari model itu dapat dipergunakan untuk mengetahui sistem aslinya tanpa mesti berurusan secara langsung dengan sistem aslinya. Dengan mengembangkan model atas sebuah permasalahan, maka diinginkan pemecahan masalah itu dapat dilakukan secara lebih sistematis.
Rancangan Algoritma
Setelah sebuah masalah dicernakan dengan jelas yaitu melewati pembatasan masalah, lantas model telah dibuat, maka langkah selanjutnya ialah menyusun langkah-langkah untuk menyelesaikan sebuah masalah, kebenaran langkah-langkah itu secara logika mesti bisa ditelusuri. Walaupun langkah-langkah yang diciptakan dalam rancangan algoritma ini masih adalah langkah-langkah yang tidak terlalu rinci, namun secara menyeluruh ia harus bisa mengambarkan tahapan solusi dengan jelas, oleh sebab itulah dikembangkan metode algoritma yang akan diterangkan pada bab mendatang.
Koreksi Algoritma
Koreksi dilakukan secara dini untuk memperbaiki alur logika yang dianggap kurang tepat, karena langkah-langkah pada rancangan algoritma belum melibatkan hal-hal yang terlalu rinci maka koreksi pada tahap ini lebih mudah dilaksanakan. Bila ada kerancuan dalam algoritma, maka yang perlu ditinjau ulang adalah model, besar kemungkinan model yang dibuat tidak mencerminkan secara tepat kondisi aslinya. Kemungkinan lain adalah meninjau ulang pembatasan masalah, karena model dapat keliru bila batasan masalah tidak jelas.
Pemrograman
Pemilihan bahasa yang tepat untuk menyelesaikan suatu permasalahan sangat penting di sini karena ada beberapa bahasa yang khusus diarahkan pada suatu keperluan tertentu, seperti :
- Bahasa Cobol untuk keperluan bisnis
- Bahasa C, Modula-2 untuk pemrograman sistem
- Bahasa Simula untuk simulasi
Untuk hal-hal yang lebih umum bahasa-bahasa : Pascal, Basic, bahkan bahasa-bahasa yang disebutkan diatas dapat digunakan, tentunya dengan beberapa kendala yang akan dihadapi. Pada tahap pemrograman ini, selain penentuan bahasa pemrograman yang akan digunakan, seringkali harus ditentukan struktur data yang sesuai dengan model yang telah dibuat, untuk mencapai penyelesaian yang berdaya guna dan berhasil guna. Dalam kaitan ini pemilihan bahasa pemrograman harus lebih teliti karena tidak semua bahasa pemrograman mendukung struktur data yang diinginkan.
Pengujian dan Analisis
Program yang telah selesai dibuat, kemudian diuji di laboratorium dan hasilnya dianalisis, untuk melihat : kecepatan, pemakaian memori, dsb. Seringkali program diuji di lapangan oleh calon pemakai atau bila perlu oleh pihak lain yang lebih luas untuk memperoleh umpan balik yang lebih sempurna.
Dokumentasi
Meskipun dalam gambar diatas, terlihat bahwa blok Dokumentasi berada pada bagian akhir, tetapi kegiatan dokumentasi dilakukan secara menyeluruh, yaitu dimulai dari tahap awal hingga pengujian dan analisis. Hal ini diperlukan karena setiap peninjauan ulang dan koreksi memerlukan dokumentasi yang lengkap. Dokumentasi diperlukan juga untuk kegiatan pemeliharaan dan pengembangan program.
Contoh Algoritma Perhitungan Upah Buruh
Perhitungan upah buruh dalam satu minggu (5 hari kerja), terdiri dari dua komponen
1. Upah Harian, (H rupiah / hari) bila ia bekerja 8 jam sehari
2. Upah Lembur, (L rupiah /jam) bila ia bekerja lebih dari 8 jam dalam sehari
Diinginkan untuk menghitung pendapatan seorang buruh dalam satu minggu, bila diketahui data jam kerja untuk setiap harinya.
Algoritma Perhitungan Upah Buruh
1. Total Pendapatan -> 0
2. Baca data jam kerja untuk hari ke 1.
3. Upah Hari Ini = H + (jam kerja – 8) x L ,
4. Total Pendapatan =Total Pendapatan + Upah Hari Ini
5. Ulangi 2 s/d 4 hingga hari ke 5.
Misalkan Upah Harian H = 10000 rupiah / hari
Upah Lembur L = 2000 rupiah / jam
Jam kerja hari ke 1 s/ d 5 adalah : 10, 8, 12, 8 dan 8 jam
Pendapatan hari ke 1 = 10000 + (10-8) x 2000
Pendapatan hari ke 2 = 10000
Pendapatan hari ke 3 = 10000 + (12-4) x 2000
Pendapatan hari ke 4 = 10000
Pendapatan hari ke 5 = 10000
Total Pendapatan dalam seminggu (5 hari) kerja = 70.000 rupiah.
Contoh ini menunjukan bagaimana pembatasan masalah masih belum begitu jelas, karena masih harus dipertanyakan lagi beberapa hal, misalnya :
a. Bagaimana perhitungan bila jam kerja kurang dari 8 jam
b. Apakah ada jumlah minimal dan maksimal jam lembur
Bila pertanyaan-pertanyaan tidak dapat dijawab, maka algoritma perlu ditinjau kembali, sehingga perhitungan menjadi benar, tidak merugikan buruh ataupun majikan.
Struktur Dasar Algoritma
Dalam Algoritma terdapat tiga bentuk struktur dasar dalam menyusun suatu algoritma, diantaranya yaitu:
1. Sekuensial (runtunan)
Bentuk struktur sekuensial itu seperti disamping, pada struktur sekuensial ni langkah-langkah yang dilakukan dalam algoritma diproses secara berurutan. dimulai dari langkah pertama, kedua, dan seterusnya. Pada dasarnya suatu program memang menjalankan suatu proses dari yang dasar seperti struktur ini.
2. Struktur Seleksi (Percabangan)
Struktur seleksi menyatakan pemilihan langkah yang didasarkan oleh suatu kondisi atau pengambilan suatu keputusan. Struktur ini ditandai selalu dengan bentuk flowcart decision (flowcart yang berbentuk belah ketupat). struktur seleksi Banyak contoh yang dapat kita terapkan pada struktur jenis ini jika itu menyangkut keputusan, diantaranya: diskon yang berbeda berdasarkan jumlah barang yang ingin dibeli. seleksi
3. Struktur Perulangan
Struktur ini memberikan suatu perintah atau tindakkan yang dilakukan beberapa kali. Misalnya jika teman mau menuliskan kata “Belajar C” sebanyak sepuluh kali. akan lebih efisien jika teman menggunakan sturktur ini dari pada sekedar menuliskannya berturut-turut sebanyak sepuluh kali.
Cara Penulisan Algoritma
Ada tiga cara penulisan algoritma, yaitu :
1. Structured English (SE)
SE merupakan alat yang cukup baik untuk menggambarkan suatu algoritma. Dasar dari SE adalah Bahasa Inggris, namun kita dapat memodifikasi dengan Bahasa Indonesia sehingga kita boleh menyebutnya sebagai Structured Indonesian (SI). Algoritma seperti pada Contoh dan merupakan algoritma yang ditulis menggunakan SI. Karena dasarnya adalah bahasa sehari-hari, maka SE atau SI lebih tepat untuk menggambarkan suatu algoritma yang akan dikomunikasikan kepada pemakai perangkat lunak.
2. Pseudocode
Pseudocode adalah suatu representasi yang menyerupai bahasa pemrograman namun tidak terikat oleh sintaksis tertentu. Pseudocode digunakan untuk membantu menggambarkan algoritma secara visual dan lebih mudah dipahami oleh manusia daripada kode pemrograman yang sebenarnya.
Pseudocode mirip dengan SE. Karena kemiripan ini kadang-kadang SE dan Pseudocode dianggap sama. Pseudo berarti imitasi atau tiruan atau menyerupai, sedangkan code menunjuk pada kode program. Sehingga pseudocode adalah kode yang mirip dengan instruksi kode program sebenarnya. Pseudocode didasarkan pada bahasa pemrograman yang sesungguhnya seperti BASIC, FORTRAN atau PASCAL. Pseudocode yang berbasis bahasa PASCAL merupakan pseudocode yang sering digunakan. Kadang-kadang orang menyebut pseudocode sebagai PASCAL-LIKE algoritma.
Apabila Contoh ditulis dalam pseudocode berbasis bahasa BASIC akan tampak seperti pada contoh
Contoh Pseudocode.
1. Start
2. READ alas, tinggi
3. Luas = 0.5 * alas * tinggi
4. PRINT Luas
5. Stop
Pada contoh di atas tampak bahwa algoritma sudah sangat mirip dengan bahasa BASIC. Pernyataan seperti READ dan PRINT merupakan keyword yang ada pada bahasa BASIC yang masing-masing menggantikan kata “baca data” dan “tampilkan”. Dengan menggunakan pseudocode seperti di atas maka proses penterjemahan dari algoritma ke kode program menjadi lebih mudah.
3. Flowchart
Flowchart atau bagan alir adalah skema/bagan (chart) yang menunjukkan aliran (flow) di dalam suatu program secara logika. Flowchart merupakan alat yang banyak digunakan untuk menggambarkan algoritma dalam bentuK notasi-notasi tertentu.
Secara lebih detil, ini akan dibahas pada bagian berikutnya