Algoritma – Tidak asing lagi bagi kalian mahasiswa ilmu komputer maupun jurusan lain yang sering mendengar istilah coding, bagi orang awam ini sedikit tabu sebab hanya mengetikkan sebuah perintah mesin dapat berjalan sesuai keinginan kita. Tetapi pernahkah kalian berfikir jika tidak ada sebuah pemrograman maka apa yang akan terjadi? Simple saja maka perusahaan seperti sosial media facebook, twitter, instagram dll, e-commerce BukaLapak, Shopee dll tidak akan pernah hadir menyertai kalian. Tujuan awalnya adalah membantu manusia untuk memudahkan segala aktivitas, tetapi seiring berjalannya zaman pemrograman diubah menjadi peluang dalam menciptakan startup-startup baru yang memudahkan pengguna dalam menjalankan aktivitasnya maupun sebagai sarana hiburan. Peluang yang sangat cerah ke depan membuat orang banyak tertarik dengan mempelajari bahasa pemrograman. Bisa dianalogikan dalam membuat sebuah program layaknya membuat rumah dari nol, membutuhkan material berupa semen, pasir dll seperti halnya pemrograman terdapat aplikasi yang menyuguhkan beberapa tools yang mendukung untuk membuat nya. Dengan material yang sama tentu dapat diubah sesuai kekreatifan para pemakai. Lalu sebenarnya apa definisi algoritma? Apa Itu Algoritma? Algoritma adalah deretan perintah atau instruksi yang jelas untuk memecahkan suatu masalah, misalnya untuk mendapatkan keluaran atau output yang diinginkan dari suatu masukan pada jumlah waktu yang sudah ditentukan sebelumnya. Algoritma yang ditulis menggunakan bahasa komputer biasanya disebut dengan algoritma pemrograman. bahasa komputer yang digunakan untuk menulis suatu program disebut dengan bahasa pemrograman. Sementara orang yang membuat program disebut programmer, sementara kegiatan menulis dan merancang program atau aktivitasnya disebut dengan coding. Pertimbangan Dalam Algoritma Algoritma disusun secara sistematis dan logis, dimana setiap langkah dalam algoritma harus mempunyai nilai salah atau benar Pada konteks tertentu, algoritma menjadi suatu urutan langkah untuk melakukan pekerjaan khusus. Pertimbangan dalam pengambilan algoritma juga menjadi hal yang penting supaya output yang dihasilkan baik. 1. Benar Tidaknya Algoritma Pertimbangan algoritma yang pertama adalah benar tidaknya algoritma tersebut, hal ini memiliki arti yaitu apakah algoritma nanti bisa memberikan output yang diinginkan atau tidak. Oleh sebab itu langkah awal kita harus memastikan kebenaran dari algoritma tersebut apakah sudah pasti bisa menghasilkan output yang diinginkan atau tidak. 2. Perkiraan pencapaian Algoritma Berikutnya pada pertimbangan algoritma adalah perkiraan terkait pencapaian algoritma. Seperti definisi algoritma secara umum dimana, algoritma adalah langkah yang mempunyai pencapaian baik. Kita harus tahu seberapa baik hasil yang didapatkan dari algoritma tersebut, jika sudah bisa mencapai tujuan baru algoritma tersebut bisa dikatakan baik. 3. Efisiensi Algoritma Pertimbangan terakhir dalam membuat algoritma adalah kita harus mengetahui tingkat efisiensi dari algoritma tersebut. Tingkat efisiensi algoritma bisa dilihat dari efisiensi waktu dan memori. Walaupun algoritma bisa memberikan hasil keluaran yang mendekati kebenaran namun jika harus membutuhkan waktu lama maka algoritma tersebut tidak bisa dikatakan efisien. Untuk itu buatlah algoritma yang bisa mendapatkan kebenaran sekaligus efisien dalam hal memori dan waktu. Sejarah Singkat Algoritma Pertama kali ditemukan oleh seorang ilmuwan dari timur tengah di zaman peradaban islam bernama Abu Jafar Muhammad Ibnu Musa Al-Khawarizmi sekitar 780 masehi. Pada awalnya algoritma merujuk kepada aturan-aturan aritmatika untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab, lalu seiring berkembangnya zaman disebut sebagai algoritma. Persoalan selanjutnya adalah cara menuangkan konsep tersebut ke bahasa komputer maka terdefinisi lah kata-kata algoritma dengan artian langkah proses sebelum menulis di kertas, sebab dulu masih menggunakan kertas yang di scan. Jadi kesimpulannya algoritma adalah suatu aturan dan urutan agar nantinya bahasa pemrograman dapat berjalan secara terkomputasi, sebelum mempelajari pemrograman alangkah baiknya kalian mempelajari algoritma. Karena algoritma berdasarkan logika maka yang diajarkan untuk menguatkan logika adalah mempelajari persoalan secara matematis. Jika kalian sudah paham dengan algoritma maka memakai bahasa pemrograman apapun kalian dapat memahaminya. Langkah Algoritma Pemrograman Masih berhubungan dengan algoritma, untuk membuat sebuah program dibutuhkan algoritma + bahasa pemrograman, tips sederhana carilah referensi software yang menurut kalian cocok atau tipe yang kalian anggap cocok seperti pemrograman artificial intelligence, pemrograman berbasis web dll. Langkah umumnya agar tidak bingung saat troubleshooting jika terdapat error pada pemrograman maka dari itu terdapat beberapa langkah yang harus dilakukan Definisi Masalah Requirement yang akan dipakai Buat algoritma dengan struktur yang urut agar mudah diingat dan cara penyelesaiannya Tulis pemrograman sesuai algoritma yang kalian susun agar dapat mudah jika menemukan masalah Selalu testing lalu verifikasi program Implementasikan pemrograman kalian Dokumentasikan program kalian Jika dalam skala besar selalu maintenance secara berkala Pemrograman kalian dapat dikombinasikan ke dalam bahasa pemrograman seperti C, C++, Java, Python, PHP, Dsb tentunya sesuai kebutuhan yang kalian pakai, karena dalam pemrograman kalian bisa uji coba dengan referensi algoritma yang masuk akal. Struktur Algoritma Struktur algoritma adalah urutan mengenai bagaimana pemrosesan instruksi pada algoritma bisa dilakukan dan juga tentang bagaimana struktur instruksi algoritma tersebut terbangun. Berikut adalah beberapa struktur dasar algoritma. a Runtunan Struktur algoritma yang pertama adalah runtunan atau sequence. Struktur algoritma runtunan disini maksudnya adalah bahwa intruksi-intruksi yang ada pada algoritma diproses secara berurutan mulai dari langkah awal hingga langkah yang terakhir, tidak ada pengulangan atau percabangan. Anda harus ingat jika runtunan ini juga berlaku pada bahasa pemrograman, saat instruksi bahasa pemrograman yang sudah kita tulis diproses komputer, maka komputer akan langsung menerjemahkan bahasa pemrograman dan memproses bahasa tersebut secara berurutan mulai dari awal sampai akhir dimulai dari intruksi di baris pertama sampai instruksi di baris terakhir. Dengan menggunakan struktur algoritma runtunan ini, komputer bisa menentukan bagaimana instruksi harus ditulis, komputer juga jadi tahu mana yang harus didahulukan dan mana yang harus diakhirkan. b Pemilihan Struktur algoritma berikutnya adalah pemilihan. pada umumnya instruksi algoritma paling tidak harus mengandung selection atau pemilihan. Instruksi pemilihan ini akan muncul jika ada kasus yang mempunyai 2 atau lebih keputusan alternatif dalam menyelesaikan algoritma tersebut. Misalnya saja dalam kehidupan kita sehari-hari untuk algoritma menyalakan komputer tentu saja langkah menyalakan komputer ini sebenarnya sangat mudah, namun dalam langkah-langkahnya dapat memiliki 2 atau lebih pilihan alternatif dalam menyelesaikannya. Contoh struktur algoritma yang mengandung pemilihan Langkah 1 Tancapkan kabel listrik, Langkah 2 Anda tekan tombol power pada casing. Langkah 3 Jika sesudah tombol power ditekan komputer masih mati, maka periksa terlebih dahulu listrik atau kabel. Jika komputer menyala lanjutkan pada langkah berikutnya. dari ketiga langkah di atas manakah yang menunjukan pemilihan? tentu saja pada langkah ketiga dimana kita harus mengecek apakah komputer sudah menyala atau tidak. Jika komputer tidak menyala kita memiliki 2 pilihan yaitu mengecek listrik dan yang kedua adalah memeriksa kabel komputer. c Pengulangan Struktur algoritma yang terakhir adalah pengulangan. Maksudnya pengulangan disini adalah kasus pemecahan masalah pada algoritma atau bahasa pemrograman memerlukan kasus perulangan untuk menyelesaikan masalah yang sudah ditentukan pada awal pembuatan algoritma tersebut. Pada algoritma sendiri yang mengatasi kasus pengulangan mempunyai instruksi tersendiri. Dengan adanya instruksi tersebut pengulangan bisa menjadi lebih mudah ditulis singkat dibandingkan harus menulis satu persatu. Contoh Langkah 1 Tulis huruf A Langkah 2 Tulis huruf B Langkah 3 Tulis huruf C …. …. Langkah 5 Tulis huruf E Untuk membuat instruksi pengulangan kita bisa menulisnya satu persatu, namun tentu saja akan membutuhkan waktu yang lama kan? untuk itu dibutuhkan struktur algoritma pengulangan yang bisa menghasilkan output sama namun dengan cara yang lebih singkat. Ciri-ciri Algoritma Algoritma juga memiliki ciri khas tersendiri yang membedakan dengan teknik penyelesaian masalah lainnya. Untuk anda yang ingin tahu ciri-ciri algoritma, berikut adalah beberapa ciri-ciri yang dimiliki oleh algoritma Jika algoritma sedang melakukan suatu pekerjaan suatu langkah yang memiliki sifat terbatas maka algoritma tersebut harus menghentikan apa yang sedang ia kerjakan. Memiliki nilai 0 atau lebih. Harus memiliki sifat efektif, dalam artian algoritma harus sederhana supaya nantinya dapat langsung dikerjakan dalam waktu yang singkat. Beberapa langkah yang disusun harus bisa diartikan dengan tepat dan tidak harus menimbulkan ambitu. Memiliki kelebihan dan juga kekurangan. Memiliki awalan dan akhiran. Syarat dan Sifat Algoritma Setelah anda memahami mengenai apa itu algoritma, ciri-ciri algoritma dan definisi algoritma. Selanjutnya kita akan membahas tentang syarat dan sifat dari algoritma tersebut. Suatu algoritma bisa dikatakan baik jika memenuhi beberapa syarat-syarat dan sifat algoritma dibawah ini a Definiteness Maksudnya definiteness disini adalah setiap langkah yang ada pada algoritma harus bisa didefinisikan dengan tepat. Jangan sampai anda menggunakan makna ganda yang bisa menimbulkan ambiguitas. Oleh sebab itu langkah yang benar saat kita menulis suatu algoritma kita harus menulisnya dengan bahasa komputer. b Finiteness Maksud finiteness dalam algoritma adalah algoritma harus benar-benar selesai saat sudah menjalankan semua langkah proses dalam algoritma tersebut. c Input Maksudnya input dalam algoritma adalah algoritma harus memiliki nilai atau data masukan yang nantinya akan diolah lagi. d Output Selain input tentu saja algoritma juga harus memiliki output atau keluaran. Output adalah hasil akhir dari proses input atau data masukan yang sudah diolah tersebut. e Effectiveness Setiap langkah yang diambil pada algoritma harus wajar dan harus sebisa mungkin bisa dijalankan secara efektif. Jenis-Jenis Algoritma Terakhir kita akan mengetahui jenis-jenis dari algoritma. Untuk anda yang penasaran tentang apa saja jenis-jenis algoritma, berikut adalah beberapa jenis-jenis algoritma. a Algoritma Bahasa Natural Algoritma bahasa natural merupakan jenis algoritma dimana dalam penulisan langkah-langkah ditulis menggunakan bahasa yang paling mudah dipahami seperti bahasa Indonesia atau bahasa Inggris, atau bahasa lainnya yang paling mudah dipahami. Jenis algoritma bahasa natural ini adalah pendekatan awal bagi anda yang ingin memahami algoritma yang pertama ini biasanya juga dapat dipecahkan menggunakan penyelesaian yang tidak harus terkomputerisasi. Algoritma bahasa natural ini hampir bisa menyelesaikan berbagai kasus yang ada dalam kehidupan sehari-hari. Misalnya adalah kasus matematika dan juga perhitungan dari kasus yang dapat dipecahkan memakai algoritma bahasa natural. b Algoritma Flowchart Jenis algoritma yang berikutnya adalah algoritma flowchart. Algoritma flowchart adalah algoritma yang disajikan menggunakan bentuk gambar atau simbol yang bisa dibaca dan juga dipahami secara logis. Untuk bisa menyajikan pemecahan masalah pada bentuk algoritma flowchart maka kita harus memahami dulu simbol-simbol dari flowchart beserta kegunaan dari simbol-simbol tersebut. c Algoritma Pseudocode Terakhir ada algoritma pseudocode yang jika didefinisikan secara sederhana algoritma pseudocode merupakan bentuk penulisan langkah-langkah dalam menyelesaikan masalah. Langkah-langkah penyelesaian masalah ini menggunakan pendekatan pada instruksi bahasa pemrograman, tujuan dari algoritma pseudocode ini adalah agar bisa lebih mudah dipahami saat instruksi tersebut dikonversi atau ditulis menggunakan bahasa pemrograman yang sebenarnya. Penulisan algoritma pseudocode ini sebenarnya juga tidak mengenal aturan syntax atau cara penulisan kode khusus, namun instruksi atau syntax yang ditulis biasanya akan disesuaikan dengan bahasa pemrograman yang nanti akan digunakan.
Syaratatau pertimbangan dalam menentukan topik penelitian antaralain sebagai berikut. Sesuai dengan minat peneliti. Harus bisa diteliti. Data cukup tersedia. Memiliki kegunaan praktis, bermanfaat, dan penting diteliti. Menghindari duplikasi/orisinal. Soal tersebut membahas tentang topik harus sesuai dengan minat peneliti dengan tujuan peneliti
Kriteria Algoritma – Sejauh ini sebetulnya belum ada standarisasi tentang bagaimana menyusun algoritma. Namun pada prinsipnya, kita diberikan kebebasan untuk menyusun bentuk algoritma algorithm. Kendati begitu, kita pasti memerlukan sebuah kriteria algoritma atau dasar untuk merancang algoritma yang baik dan benar. Lalu apa kriteria itu? Menurut KBBI, Kriteria adalah ukuran yang menjadi dasar penilaian atau penetapan sesuatu. Dan pada postingan kali ini, kita akan mempelajari apa saja ukuran dasar dari penyusunan algoritma. Kriteria yang akan dijabarkan diambil dari buku yang ditulis oleh Donald E. Knuth. Beliau adalah seorang ilmuwan komputer, matematikawan dan sudah menulis banyak buku tentang Algoritma. Dan berikut adalah penjabarannya Kriteria Penyusunan Algoritma 1. Input Masukan Sebuah Algoritma harus memiliki nol input atau inputan dari pengguna user. Apa yang dimaksud dengan nol input? Nol input dapat diartikan algoritma atau program tidak mendapat inputan data dari pengguna. Bukan berarti algoritma tidak memiliki masukan sama sekali, tetapi inputan pada algoritma sudah di deklarasikan diawal program. Contoh Program mencari sebuah luas lingkaran yang memiliki rumus phi x jari-jari x jari-jari. Pada program tersebut pengguna hanya menginputkan nilai dari jari-jari tetapi tidak nilai phi. Hal ini dikarenakan nilai phi sudah dideklarasikan pada program yaitu 22/7 atau Sedangkan yang dimaksud dengan inputan dari pengguna. Seperti contoh diatas, dimana panjang jari-jari perlu diinputkan agar program dapat berjalan dan memberikan hasil yang diinginkan. 2. Output Keluaran Dalam penyusunan kriteria algoritma yang baik dan benar minimal harus memiliki satu output. Ini karena algoritma mengusung teori IPO Input-Proses-Output dimana setiap ada masukan pasti ada proses dan keluarannya. Output yang dikeluarkan oleh program dapat berbentuk File, Video, teks, audio dan lain sebagainya. Dapat juga output nya sebagai sebuah data yang disimpan di database. 3. Finiteness Terbatas Terbatas disini bukan artinya mempunyai keterbatasan dalam pengembangan algoritma tetapi algoritma yang dijalankan harus mempunyai batas. Atau bisa diartikan juga suatu program yang dirancang dan dieksekusi haruslah berhenti dan selesai pada output. Program yang buruk adalah program yang mengalami infinite, yaitu semacam program berjalan terus menerus sampai not responding atau bahasa kerennya nge-Hang. 4. Definiteness Pasti Dalam perancangan, program harus memiliki algoritma yang pasti dimana arah dan tujuan yang jelas. Program yang baik adalah program yang memiliki algoritma dengan pernyataan yang jelas seperti kapan mulai dan kapan berakhirnya sebuah progam, tujuan dari program dan output yang jelas. Pada hal ini cukup diperlukan tingkat ke peka an dalam membangun program software guna memperkecil persentasi hasil yang tidak diinginkan. 5. Efisien Penyusunan kriteria algoritma yang terakhir adalah Efisien. Menurut KBBI Kamus Besar Bahasa Indonesia, efisien adalah tepat atau sesuai untuk mengerjakan menghasilkan seauatu dengan tidak membuang-buang waktu, tenaga dan biaya. Hal ini menandakan bahwa algoritma yang ditulis pada program haruslah efisien. Bagaimana program yang efisien? Program yang efisien adalah program yang tidak memakan banyak memori dan tidah melakukan hal-hal yang tidak diperlukan selama proses. Lalu kenapa efisien masuk dalam kriteria algoritma yang baik? Karena setiap program akan memakan waktu dalam setiap proses eksekusinya. Jika program mengerjakan hal-hal yang tidak perlu dilakukan, maka bisa dipastikan program tersebut akan berjalan lambat. Kesimpulan Kriteria Algoritma Dari kriteria-kriteria algoritma diatas, kita dapat menarik beberapa kesimpulan antara lain Penyusunan Kriteria Algoritma harus jelas dan logis, fokus terhadap masalah yang harus diselesaikan. Proses yang dijalankan harus jelas tidak rancu atau mempunyai dua arti dan mempunyai batasan dimana algoritma akan berakhir. Algoritma haruslah efektif dan efisien untuk menyelesaikan masalah yang ada. Sekian dari saya, semoga postingan “Kriteria-kriteria Algoritma yang Baik dan Benar” dapat memberikan kita pengetahuan tentang kriteria algoritma lebih dalam lagi. Bila ada kesalahan dalam penulisan mohon dikoreksi, saya menunggu respon mengenai postingan ini dari rekan-rekan semua dapat melalui kolom komentar ataupun email ke me Terima kasih, keep calm and always code programming!!! Wasallam, Sumber Knuth, D. E. 1973. The Art of Computer Programming. Addison-Wesley Published Company. Kamus Besar Bahasa Indonesia. Kriteria. [diakses 1 November 2016] Kamus Besar Bahasa Indonesia. Efisien. [diakses 2 November 2016]
sYnKyGn. 4f7yuq39j5.pages.dev/974f7yuq39j5.pages.dev/5084f7yuq39j5.pages.dev/4554f7yuq39j5.pages.dev/1914f7yuq39j5.pages.dev/5934f7yuq39j5.pages.dev/2294f7yuq39j5.pages.dev/4304f7yuq39j5.pages.dev/222
menentukan pilihan algoritma yang baik membutuhkan beberapa pertimbangan yaitu