Memahami Logika dan Algoritma dalam berpikir secara sistematis

Tujuan dari belajar logika dan algoritma adalah agar dapat membiasakan diri menyusun suatu konsep atau strategi apabila hendak menyelesaikan suatu masalah.

Permasalahan yang diselesaikan dengan suatu strategi yang matang maka akan mendapatkan solusi yang lebih optimal dibandingkan menyelesaikan masalah tanpa menggunakan suatu strategi.

meme definisi algoritma

Algortima sangat dekat dengan “logika”. Dimana logika itu, proses berpikir yang dilandasi dengan prinsip-prinsip yang valid menurut aturan yang berlaku dan diterima oleh akal.

Pelajaran logika menimbulkan kesadaran untuk menggunakan prinsip-prinsip untuk berpikir secara sistematis.


Apa itu Algoritma?

Mari kita ke persoalan membuat telur dadar.

telur dadar crispy

Untuk membuat telur dadar, kita lakukan langkah berikut.

1. Siapkan wajan penggorengan.

2. Siapkan minyak

  • apakah kita punya minyak?
    • jika Iya, maka tuangkan ke wajan.
    • Jika tidak, Apakah kita akan membeli minyak?
      • jika Iya, keluarlah dan beli
      • jika tidak, maka kita bisa hentikan (*tidak melanjutkan).

3. Nyalakan kompor dan lain sebagainya.

*Laparr...

Apa yang diperbuat pada masalah yang diberikan (menyiapkan telur dadar), disini kita memberikan prosedur langkah demi langkah untuk menyelesaikannya.

Adapaun definisi formal dari sebuah algoritma dapat dinyatakan sebagai berikut.

Algoritma adalah instruksi langkah-demi-langkah yang jelas (tidak ambigu) untuk menyelesaikan suatu masalah yang diberikan.

Dalam studi tradisional algoritma, ada dua kriteria utama untuk menilai manfaat algoritma: pertama yaitu, kebenaran (apakah algoritma memberikan solusi untuk masalah dalam jumlah langkah yang terbatas?) dan yang kedua yaitu efisiensi (berapa banyak sumber daya (dalam hal memori dan waktu) yang diperlukan untuk mengeksekusi).

Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang mirip atau sama.

Jika dihadapkan pada permasalahan seperti ini maka sebaiknya pilih algoritma yang paling efisien dan tentunya cepat. Maka dari itu, kita perlu analisis algoritma.

Mengapa Analisis Algoritma?

Untuk pergi dari kota "A" ke kota "B", ada banyak cara untuk mencapainya yaitu dengan penerbangan, dengan bus, dengan kereta api dan juga dengan sepeda. Tergantung pada ketersediaan dan kenyamanan, kita pilih salah satu yang cocok.

Demikian pula dalam ilmu komputer, beberapa algoritma tersedia untuk memecahkan masalah yang sama (misalnya, Sorting Problem memiliki banyak algoritma, seperti insertion sort, selection sort, quick sort dan banyak lagi).

Analisis algoritma membantu kita untuk menentukan algoritma mana paling efisien dalam hal waktu dan ruang yang dikonsumsi.

Tujuan Analisis Algoritma

Tujuan dari analisis algoritma adalah untuk membandingkan algoritma (atau solusi) terutama dalam hal kecepatan, juga dalam faktor lain (misalnya memori, upaya pengembang dan lain-lain).

Ciri-ciri, sifat dan struktur dasar Algoritma

Tidak semua urutan langkah penyelesaian masalah yang logis dapat disebut sebagai algoritma.

Ciri-ciri Algoritma

Menurut Donald E. Knuth (seorang professor ahli komputer dan matematika asal Amerika, juga dijuluki “the father of the analysis of algorithms”), algoritma mempunyai 5 ciri penting yang meliputi :

  1. Finiteness (keterbatasan), algoritma harus berakhir setelah mengerjakan sejumlah langkah proses.
  2. Definiteness (kepastian), setiap langkah harus didefinisikan secara tepat dan tidak berarti ganda.
  3. Input (masukan), algoritma memiliki nol atau lebih data masukan (input).
  4. Output (keluaran), algoritma mempunyai nol atau lebih hasil keluaran (output).
  5. Effectiveness (efektivitas), algoritma harus efektif, langkah-langkah algoritma dikerjakan dalam waktu yang wajar.

Sifat Algoritma

  1. Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman tertentu dan tidak tergantung pada suatu bahasa pemrograman tertentu yakni, independen dari bahasa pemrograman dan komputer yang memprosesnya.
  2. Notasi-notasinya dapat digunakan untuk seluruh bahasa pemrograman manapun.
  3. Algoritma dapat digunakan untuk merepresentasikan suatu urutan kejadian secara logis dan dapat diterapkan di semua kejadian sehari-hari.

Struktur dasar Algoritma

Algoritma yang merupakan langkah-langkah penyelesaian masalah dapat dibedakan menjadi beberapa struktur dasar, yaitu struktur urutan (Sequence), pemilihan (Selection) dan pengulangan (Repetition).

Agar lebih memahami penerapan algoritma, pada penjelasan struktur dasar akan disertakan contoh dalam bentuk yang berbeda-beda meliputi Algoritma dalam bentuk narasi, Flowchart dan Pseudocode (kode semu).

Struktur Algoritma urutan (Sequence)

Urutan dari instruksi menentukan hasil akhir dari suatu algoritma. Bila urutan penulisan berubah maka mungkin juga hasil akhirnya berubah.

Sebagai contoh perhatikan operasi aritmatika berikut ini, (4+3)*7=49, tetapi bila urutan aksinya diubah maka hasil keluaran akan berbeda menjadi 4+(3*7) =25.

Berikut contoh algoritma penukaran dua bilangan bulat struktur sequence dalam bentuk narasi :

  1. Deklarasikan A, B, dan C sebagai bilangan bulat
  2. Masukkan nilai A dan B
  3. Masukkan nilai A ke dalam C
  4. Masukkan nilai B ke dalam A
  5. Masukkan nilai C ke dalam B
  6. Selesai.

Struktur Algoritma pemilihan (Selection)

Pemilihan adalah instruksi yang dikerjakan dengan kondisi tertentu.

Contoh kasus pemilihan adalah dalam penentuan bilangan genap atau ganjil berikut ini dalam bentuk flowchart :

flowchart ganjil genap

Pembahasan flowchart :

  • Pertama, mendeklarasikan variabel "bil"
  • Input nilai bil
  • Syarat/kondisi :
    • Jika nilai bil / 2 = 0, output = "Bilangan Genap" (jika nilai bil habis dibagi dua atau sama dengan nol, maka hasilnya "Bilangan Genap")
    • Jika nilai bil / 2 ≠ 0, output = "Bilangan Ganjil" (jika nilai bil tidak habis dibagi dua atau tidak sama dengan nol, maka hasilnya "Bilangan Ganjil")
  • Selesai

Struktur Algoritma pengulangan (Repetition)

Pengulangan merupakan kegiatan mengerjakan sebuah atau sejumlah aksi yang sama sebanyak jumlah yang ditentukan atau sesuai dengan kondisi yang diinginkan.

Beberapa statemen pengulangan di bahasa pemrograman yaitu for…, while()..., do...while(), repeat....until, for...downto...do, for...to...do dan lain-lain.

Sebagai contoh adalah program menampilkan kalimat tertentu sebanyak n kali dalam bentuk Pseudocode :

Program menampilkan_kalimat_sebanyak_n_kali

Deklarasi
var x : integer
Algoritma
For x starts at 0, x < 5, increment x
Display "Saya dah paham Algoritma"
Endfor

Pembahasan Pseudocode :

  • Deklarasi variabel x sebagai integer
  • Integer adalah tipe data bilangan bulat yang bisa positif, negatif, atau nol.
  • Pengulangan bersyarat (for) :
    • "x starts at 0" : variabel x ditugaskan mulai dari 0
    • "x < 5" : adalah syarat/ kondisi batas pengulangan. Artinya, perulangan masih tetap berjalan selama nilai variabel x masih lebih kecil daripada 5 dan perulangan berakhir ketika nilai variabel x sudah setara/ sama dengan 5
    • "increment x" : nilai variabel x tiap perulangan +1. (*penjumlahan kelipatan 1)
    • Hasil perulangan akan menampilkan tulisan "Saya dah paham Algoritma" sebanyak lima kali (dalam hitungan mulai dari 0 sampai 4)
  • Selesai

Kesimpulan

Dari penjelasan diatas maka dapat disimpulkan bahwa Logika dan Algoritma adalah ilmu yang mempelajari cara penyelesaian suatu masalah berdasarkan urutan langkah-langkah terbatas yang disusun secara sistematis dan menggunakan bahasa yang logis dengan tujuan tertentu.

Sumber/Referensi

  • Kurumanchi, Narashima. 2017. Data Structures And Algorithms Made Easy. Bombay: CareerMonk.
  • Barakbah, Ali Ridho dkk. 2013. Logika dan Algortima. Surabaya: Politeknik Elektronika Negeri Surabaya.

Posting Komentar