Algoritma merupakan basic dari ilmu
pengetahuan perkembangan teknologi informasi, ketika perkembangan teknologi
informasi yang sangat pesat pada saat ini tersusun dari suatu algoritma yang
bisa memecahkan permasalahan dalam kehidupan keseharian manusia.
Ketika menguasai prinsip algoritma
minimal yang terjadi adalah kita tidak lagi hanya sebagai penikmat teknologi
namun bisa menjadi pembuat teknologi dan kita bisa mengukir sejarah peradaban
manusia ketika ilmu yang dimiliki memberikan manfaat buat orang lain.
Kalau sekarang ini kita menggunakan
alat bantu search engine google
untuk mencari informasi yang dimiliki oleh google, sebenarnya yang terjadi
adalah konsep algoritma dan struktur data yang mengatasi permintaan seseorang
yang sedang mencari informasi lewat search engine tesebut.
Contoh yang lain yang sering terjadi
dalam kehidupan keseharian kita ketika penggunaan algoritma yang sudah
diterapkan dalam bentuk penerapan teknologi adalah ketika akan login
menggunakan account tertentu, maka disana terjadi sebuah proses algoritma
ketika user memasukkan username dan password dengan benar maka user bisa
mengakses sebuah laman yang menjadi miliknya, namun apabila username atau
passwordnya salah walaupun hanya salah satu yang salah apakah username atau
passwordnya maka user tersebut tidak bisa mengkases laman pribadinya.
Sebenarnya prinsip algoritma tidak
hanya dihubungkan dengan perkembangan teknologi informasi dan komunikasi saja,
namun dalam kehidupan keseharian kita selalu menggunakan konsep dan prinsip
algoritma, namun terkadang kita tidak menyadarinya padahal ketika kita berbuat
sesuatu sebenarnya sudah menerapkan konsep algoritma, sebagai contoh misalkan
ketika kita akan mandi, sebelum kita mau mandi minimal kita harus mempersiapkan
peralatan mandi terlebih dahulu dan mengecek ketersediaan air untuk melakukan
proses mandi, dan sebelum mandi kita memastikan terlebih dahulu ruang yang
digunakan untuk mandi tidak memberikan celah kepada orang lain untuk mengintip
dan yang pasti adalah ketika kita harus mandi harus membuka pakaian terlebih
dahulu dan jangan sampai pada saat membuka pakaiannya berada di luar kamar
mandi. Ketika urutan tata cara mandi
dituangkan atau disusun secara rapi sebenarnya sampai disini berarti konsep
algoritma sudah digunakan.
1.1
Sejarah
Algoritma (Penemu Algoritma)
Algoritma di temukan oleh ilmuan muslim yang bernama Al Khowarizmi, nama lengkapnya adalah Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Yang berasal dari tulisan buku beliau yang berjudul sistem perhitungan angka arab, karena perhitungan angka arab merupakan hal yang sudah biasa.
Algoritma ini sendiri sangat bermanfaat di kehidupan kita. Dan
apakah kamu tau siapa penemu Algoritma itu sendiri? Dia adalah Abu Abdullah
Muhammad Ibn Musa al-Khwarizmi, dunia mengenalnya sebagai al khawarizmi,
seorang ilmuwan Matematika yang juga seorang Muslim.
Abu Abdullah Muhammad Ibn Musa al-Khwarizmi bukan hanya seorang
penemu Matematika, dia juga berperan penting dalam penemuan angka Nol, dan juga ada Aljabar, namun
sebetulnya Abu Abdullah Muhammad bin Musa al-Khwarizmi adalah seorang penemu
dengan banyak penemuan-penemuan penting.
Dia berhasil menemukan ilmu ilmu yang sekarang kita pakai ini,
jadi Abu Abdullah Muhammad bin Musa al-Khwarizmi tidak hanya menemuka Aljabar,
Angka Nol, dan juga Algoritma, melainkan masih banyak sekali penemuan penemuan
Abu Abdullah Muhammad bin Musa al-Khwarizmi.
Kata Algoritma berasal dari penulis buku Arab yang sangat
terkenal, yang tak lain dan yang tak bukan adalah Abu Abdullah Muhammad Ibnu
Musa Al-Khuwarizmi, orang barat membacanya menjadi Algorism.
Algoritma sendiri memiliki pengertian yaitu langkah-langkah yang
logis mengenai penyelesaian masalah yang di susun secara sistematis dan juga di
susun secara logis.
Di zaman sekarang ini, algoritma memiliki peranan yang sangat
penting dalam berbagai bidang seperti bidang teknologi. Oleh karena itu dunia
memberi penghormatan yang sangat tinggi kepada al-Khawarizmi yang dikenal
sebagai penemu dari algoritma.
1.2
Definisi
Algoritma
Algoritma secar umum sebenarnya tidak
hanya berkenaan dengan Teknologi Informasi dan Komunikasi saja, penerapan
algoritma bisa diterapkan dalam keseharian, namun karena algoritma sering
dikaitkan dengan matematika dan pemrograman komputer maka bisa diambil
kesimpulan secara global yang dimaksud dengan algoritma itu sendiri.
Algoritma adalah Langkah-langkah yang
disusun secara sistematis dan terstruktur untuk memecahkan permasalahan.
Jadi sebenarnya sebelum sebuah konsep
pemrograman diketik dalam bentuk bahasa pemrograman (bahasa komputer) sehingga
bisa dimengerti oleh perangkat digital maka langkah awal yang harus dilakukan
menjabarkan terlebih secara konsep alur program yang akan dibuat dalam bentuk
algoritma.
Karena yang sebenarnya terjadi pada suatu
program / aplikasi, instruksi penggunaan atau pelaksanaan tidak akan jauh
berbeda dengan konsep pembiasaan yang terjadi secara manual dalam kehidupan
manusia, maka untuk menjabarkan konsep kegiatan keseharian yang akan di
programkan harus dijabarkan terlebih dahulu menggunakan algoritma.
Karena secara prinsip dasar program
aplikasi adalah memudahkan manusia dalam mengerjakan tugas akivitas keseharian
sehingga terjadi tingkat efisiensi dan efektivitas. Maka sebelum dibuatkan
sebuah program aplikasi.
Menilai Sebuah Algoritma
Ketika manusia
berusaha memecahkan masalah, metode atau teknik yang digunakan untuk memecahkan
masalah itu ada kemungkinan bisa banyak (tidak hanya satu). Dan kita memilih
mana yang terbaik di antara teknikteknik itu. Hal ini sama juga dengan
algoritma, yang memungkinkan suatu permasalahan dipecahkan dengan metode dan
logika yang berlainan. Yang menjadi pertanyaan adalah bagaimana mengukur mana
algoritma yang terbaik?
Beberapa
persyaratan untuk menjadi algoritma yang baik adalah:
1.
Tingkat
kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus
berakurasi tinggi dan benar.
2. Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.
3. Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.
4. Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
5. Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola).
6. Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer.
7. • Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap langkah harus jelas dan pasti. Contoh: Tambahkan 1 atau 2 pada x. Instruksi di atas terdapat keraguan.
8. Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda.
9. Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya. Contoh: Hitung akar 2 dengan presisi sempurna. Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah. Misal: Hitung akar 2 sampai lima digit di belakang koma.
10. Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka pasti terminate?
11. Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti dengan seksama maka dihasilkan output yang diinginkan.
2. Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.
3. Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.
4. Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
5. Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola).
6. Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer.
7. • Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap langkah harus jelas dan pasti. Contoh: Tambahkan 1 atau 2 pada x. Instruksi di atas terdapat keraguan.
8. Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda.
9. Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya. Contoh: Hitung akar 2 dengan presisi sempurna. Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah. Misal: Hitung akar 2 sampai lima digit di belakang koma.
10. Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka pasti terminate?
11. Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti dengan seksama maka dihasilkan output yang diinginkan.
Kasus 1 :
Ada Dua Buah Ember, Ember A berisi larutan
warna Merah dan Ember B berisi larutan warna Biru, tuliskan langkah-langkah
agar isi Ember A berisi larutan warna Biru dan Ember B berisi larutan warna
Merah ?
Kasus 2 :
Seorang petani yang bercocok tanam memiliki 1
ekor biri-biri sebagai hewan ternaknya dan 1 ekor serigala sebagai
pendampingnya, pada suatu waktu petani tersebut ingin menyebarangi sungai
dengan 1 buah sampan yang dimilikinya, sedangkan sampan yang dimiliki oleh
petani tersebut hanya cukup untuk 2 (dua) angkutan, bagaimana cara pertani
tersebut menyebrangkan 1 keranjang sayuran kemudian 1 ekor biri-biri dan 1 ekor
srigala, karena kalau tidak dijaga biri-biri akan memakan sayuran dan srigala
akan makan biri-biri, tuliskan langkah-langkah penyelesaiannya ?
Kasus 3 :
6.
Portabilitas
yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai
platform komputer.
7. • Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap langkah harus jelas dan pasti. Contoh: Tambahkan 1 atau 2 pada x. Instruksi di atas terdapat keraguan.
8. Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda.
9. Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya. Contoh: Hitung akar 2 dengan presisi sempurna. Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah. Misal: Hitung akar 2 sampai lima digit di belakang koma.
10. Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka pasti terminate?
11. Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti dengan seksama maka dihasilkan output yang diinginkan.
PENILAIAN BIMBINGAN
--Akhir Perubahan--
7. • Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap langkah harus jelas dan pasti. Contoh: Tambahkan 1 atau 2 pada x. Instruksi di atas terdapat keraguan.
8. Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda.
9. Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya. Contoh: Hitung akar 2 dengan presisi sempurna. Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah. Misal: Hitung akar 2 sampai lima digit di belakang koma.
10. Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka pasti terminate?
11. Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti dengan seksama maka dihasilkan output yang diinginkan.
Kasus 1 :
Ada Dua Buah Ember, Ember A berisi larutan
warna Merah dan Ember B berisi larutan warna Biru, tuliskan langkah-langkah
agar isi Ember A berisi larutan warna Biru dan Ember B berisi larutan warna
Merah ?
Kasus 2 :
Seorang petani yang bercocok tanam memiliki 1
ekor biri-biri sebagai hewan ternaknya dan 1 ekor serigala sebagai
pendampingnya, pada suatu waktu petani tersebut ingin menyebarangi sungai
dengan 1 buah sampan yang dimilikinya, sedangkan sampan yang dimiliki oleh
petani tersebut hanya cukup untuk 2 (dua) angkutan, bagaimana cara pertani
tersebut menyebrangkan 1 keranjang sayuran kemudian 1 ekor biri-biri dan 1 ekor
srigala, karena kalau tidak dijaga biri-biri akan memakan sayuran dan srigala
akan makan biri-biri, tuliskan langkah-langkah penyelesaiannya ?
Kasus 3 :
Ada dua buah Ember, Ember A memiliki kapasitas
maksimal 5 Liter dan Ember B memiliki kapasitas maksimal 3 Liter, dan terdapat
1 buah sumur. Tuliskan langkah-langkah agar kita bisa mendapatkan air sebanyak
4 liter ?
No comments:
Post a Comment