Pengenalan Algoritma Dan Contoh Penyelesaian Masalah

Penyelesaian masalah merupakan bagian dalam tahapan analisis masalah . Hal ini dilaksanakan dengan memulai untuk menggali keluaran program yang diharapkan dan menemukan masukan masukan yang diperlukan tanpa perlu memikirkan proses yang mengubah masukan menjadi sebuah keluaran. Ilustrasinya seperti gambar di bawah ini.
Misalnya kita diberikan sebuah persoalan sederhana untuk membuat program yang harus bisa digunakan untuk menghitung keliling sebuah lingkaran. Ilustrasi lingkarannya seperti dibawah ini.
Langkah awal yang perlu dipikirkan adalah mendapatkan masukan dan keluaran yang diperlukan Hasil yang didapat adalah seperti berikut : 
  • Masukan jari – jari lingkaran 
  • Keluaran : keliling lingkaran 

Setelah masukan dan keluaran didapatkan, kita perlu memikirkan sebuah  Proses yang dimaksud di sini adalah untuk menghubungkan masukan dan keluaran . Jika dirumuskan, hasilnya seperti berikut :
Keliling = _________Jari – Jari
Untuk mengisi bagian kotak tersebut terkadang tidak mudah karena barangkali memang kita tidak tahu hubungan tersebut . Oleh karena itu , perlu diupayakan untuk mencari tahu hubungan tersebut . Selain melalui pengetahuan yang sudah dimiliki , cara – cara berikut bisa digunakan untuk mencari hubungan antara keluaran dan masukan 
  • Bertanya kepada orang lain yang mengerti,
  • Membaca buku yang terkait dengan persoalan,
  • Mencari informasi di Internet mengenai hubungan tersebut,
  • Memodifikasi dari contoh penyelesaian serupa,
  • Membuat penyelesaian dengan cara sendiri. 

Cara yang terakhir ini tentu saja tidak mudah. Namun, ada saatnya hal seperti ini terpaksa harus  kita lakukan atau gunakan. Inilah jalan orang – orang yang menemukan algoritma baru 
Kembali ke persoalan di depan , keliling lingkaran dihitung melalui rumus:
Keliling = 2 ( kali ) phi ( kali ) jari – jari
Dalam hal ini phi = 3,14
Penyelesaian masalah dapat ditulis juga menjadi seperti berikut :
Tujuan       : Menghitung Keliling Lingkaran
Masukan   : radius ( jari – jari lingkaran )
keluaran    : keliling ( keliling lingkaran )
Algoritma:
  1. Baca radius
  2. Hitung keliling = 2 * 3,14 * radius
  3. Tampilkan keliling 

Algoritma

Algoritma dibuat pada tahapan perancangan program . Algoritma inilah yang memiliki peran yang sangat penting untuk menghubungkan antara keluaran yang dikehendaki dan masukan – masukan yang tersedia. Algoritma adalah sekumpulan sebuah langkah yang rinci yang ditujukan atau bertujuan untuk komputer dalam menyelesaikan suatu masalah . Langkah – langkah yang dimaksud adalah agar bisa dituangkan ke dalam program sehingga bisa dieksekusi oleh komputer. Walaupun demikian, untuk algoritma yang sederhana, langkah – langkah yang terdapat di algoritma dapat diuji secara manual. Algoritma untuk menghitung keliling lingkaran merupakan contoh algoritma yang dapat diuji secara manual . Algoritma juga dapat disederhanakan dalam bentuk pseudokode atau kode yang lebih ringkas dari pada kalimat yang digunakan manusia.Pseudokode sering dikatakan sebagai salah satu metode untuk menyatakan sebuah algoritma. Pseudokode sendiri agah mengarah kepada bahasa pemrograman, walaupun sesungguhnya tidak bergantung kepada suatu bahasa pemrograman. Oleh karena itu pseudokode tidak dapat dieksekusi atau dijalankan oleh sebuah komputer.
Contoh pseudokode untuk algoritma yang seperti di atas :
Masukkan radius
keliling <- 2 * 3,14 * radius
Tampilkan keliling 

Agar algoritma ( atau pseudokode ) bisa dituangkan ke dalam program , ada tiga hal yang perlu diperhatikan , yaitu tidak ambigu , dapat dieksekusi , dan berurutan ( Brown , 2012 ) . Berikut penjelasan untuk masing – masing . 

  • ” Tidak ambigu ” berarti bahwa setiap instruksi hanya mempunyai satu interpretasi,
  • ” Dapat dieksekusi ” berarti bahwa setiap instruksi dapat dieksekusi oleh orang atau komputer tanpa memerlukan informasi tambahan,
  • ” Berurutan ” berarti bahwa instruksi – instruksi di dalam algoritma telah tersusun urut sehingga dapat digunakan untuk melaksanakan tugas dengan tepat.

Menurut beberapa ahli seperti : Knuth ( 1973 ) dan juga Horowitz, dkk. ( 1999 ), terdapat lima ciri – ciri penting yang harus dimiliki oleh suatu algoritma, yaitu berupa keberhinggaan, kepastian, masukan, keluaran, dan efektivitas.

  1. Keberhinggaan
    Keberhinggaan di sini menyatakan bahwa suatu algoritma harus berakhir untuk semua kondisi setelah memproses sejumlah langkah, 
  2. Kepastian
    Kepastian menyatakan bahwa setiap langkah harus dinyatakan dengan jelas ( tidak rancu atau mendua – arti ), 
  3. Masukan
    Suatu algoritma bisa tidak memiliki masukan, tetapi umumnya mempunyai satu atau beberapa masukan. Masukan merupakan suatu besaran yang diberikan di awal sebelum algoritma diproses, 
  4. Keluaran
    Setiap algoritma memiliki keluaran, entah hanya sebuah keluaran atau banyak keluaran. Keluaran merupakan besaran yang mempunyai kaitan atau hubungan dengan masukan, 
  5. Efektivitas
    Setiap algoritma diharapkan bersifat efektif dalam arti semua operasi yang dilaksanakan oleh algoritma haruslah sederhana dan dapat dikerjakan dalam waktu yang singkat.

Sebagaimana telah disinggung, algoritma itu tidak bergantung pada suatu bahasa pemrograman. Oleh karena itu, sangat mudah untuk menuangkan algoritma ke dalam berbagai bahasa pemrograman Sebagai contoh, terdapat algoritma seperti berikut :

Tujuan      : Menampilkan 1,2,3,4,5,…,9
Mesukan  : Tidak ada
Keluaran  : 1, 2, 3, 4, 5, …, 9
Algoritma : 
  1. Berikan nilai 1 ke variabel bilangan
  2. ULANG selama bilangan bernilai kurang dari 10
    (a) Tampilkan bilangan 
    (b) Naikkan isi bilangan sebesar 1

Algoritma ini dapat diterjemahkan ke dalam bahasa pemrograman seperti Python

Dalam praktik, kadangkala dijumpai bahwa suatu masalah dapat diselesaikan dengan lebih dari satu algoritma. Sebagai contoh, diperbolehkan untuk menukar isi dua variabel x dan y. Contoh penyelesaian dengan algoritma yang berbeda seperti di bawah ini.

Penyelesaian 1

Penyelesaian pertama kita akan melakukan dengan menggunakan algoritma seperti berikut : 
Algoritma : 
  1. Berikan nilai x – y ke variabel x.
  2. Berikan nilai y + x ke variabel y.
  3. Berikan nilai y – x ke x.

Sebagai contoh, mula – mula x bernilai 47 dan y bernilai 23. Berdasarkan langkah pertama dalam algoritma di atas, nilai x menjadi 24 ( hail dari 47 – 23 ). Setelah langkah kedua diprosess, nilai y menjadi 47 ( hasil dari 23 + 24 ). etelah langkah ketiga berakhir, nilai x berisi 23 ( hail dari 47 – 24 ).

Penyelesaian 2  

Penyelesaian kedua kita akan melakakukan dengan menggunakan algaritma seperti berikut : 
Algoritma : 
  1. Berikan nilai x ke variabel z.
  2. Berikan nilai y ke variabel x.
  3. Berikan nilai z ke y.

Sebagai contoh, mula – mula x bernilai 47 dan y bernilai 23. Berdasarkan langkah pertama dalam algoritma di atas, nilai z menjadi 47. etelah langkah kedua diproes, nilai y menjadi 47. Setelah langkah ketiga berakhir, nilai x berisi 47 mengingat z bernilai 47.
Seandainya terdapat lebih dari atu penyelesaian, cara yang paling efiien atau mudah  yang perlu kita pilih. ebagai contoh, Big O dapat dijadikan sebagai pedoman untuk memilih waktu komputasi yang lebih efisien. Namun, jika kedua cara memberikan waktu komputasi yang sama, kita bisa memilih algoritma nya dengan bebas sesuai dengan apa yang menurut kita lebih mudah.

Tinggalkan komentar