Pengertian Logika dan Algoritma
Logika dan Algoritma merupakan
kesatuan yang tidak dapat dipisahkan karena keduanya saling berkaitan. Logika
adalah bentuk penalaran atau pemikiran, sedangkan Algoritma adalah suatu urutan
dari barisan langkah-langkah atau instruksi untuk menyelesaikan suatu masalah.
Pengertian logika dan algoritma adalah suatu urutan dari beberapa langkah yang
logis guna menyelesaikan masalah.
Algoritma berasal dari nama
Ilmuwan Arab yang bernama Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi yaitu
penulis buku “Al Jabar Wal Muqabala”. Kata Al Khawarizmi dibaca oleh orang
barat menjadi Algorism, kemudian lambat laun menjadi Algorithm Dan diserap ke
dalam bahasa Indonesia menjadi Algoritma.
Logika berasal dari bahasa Yunani yaitu “logos” yang berarti ilmu. Artinya saat kita memiliki masalah, maka kita harus dapat menyelesaikan masalah tersebut dengan menggunakan langkah-langkah yang logis. Intinya logika adalah ilmu yang mengarahkan cara berpikir untuk melakukan kegiatan dengan tujuan tertentu dan berkaitan erat dengan algoritma.
Sementara algoritma adalah langkah-langkah
penyelesaian masalah yang disusun secara sistematis memakai bahasa yang logis
untuk memecahkan suatu permasalahan. Algoritma terdiri dari logika, metode dan
tahapan “urutan” sistematis yang digunakan untuk memecahkan suatu permasalahan.
Sehingga algoritma dapat juga diartikan sebagai urutan langkah secara
sistematis dan logis.
Manfaat Belajar Logika :
- Membuat seseorang mampu berpikir sesuai kebenaran dan realita
- Mampu berpikir sesuai waktu dan tempat yang pas
- Membentuk cara berpikir secara logika yaitu lurus, kritis, rasional, ketat, tertib, dan metodis.
- Meningkatkan kemampuan secara objektif dan format.
- Menambah kecerdasan dan meningkatkan keahlian berpikir mandiri
- Mendorong untuk berpikir sendiri mandiri
- Meningkatkan cara berpikir dengan nalar yang baik.
- Mampu menganalisa suatu kejadian dengan sistematis
Tujuan Belajar Algoritma
- Tidak tergantung pada bahasa pemrograman mana pun.
- Notasi algoritma dapat diterjemahkan pada bahasa pemrograman mana pun.
- Memperkuat cara berpikir kita untuk menyelesaikan suatu masalah.
- Membantu otak agar berpikir panjang.
- Memperkuat analisis ketika pembuatan program.
- Memperluas space berpikir.
Algoritma bisa dikatakan baik jika memiliki
enam sifat berikut ini yaitu :
- Algoritma memiliki input atau kondisi awal sebelum dilaksanakan
- Menciptakan output setelah dilakukan.
- Metode dalam algoritma terdefinisikan dengan jelas dan mudah digunakan.
- Suatu algoritma harus mempunyai kondisi output atau akhir, setelah sejumlah langkah yang terbatas jumlahnya yang dilakukan terhadap setiap kondisi awal atau input telah diberikan.
- Langkah dalam permasalahan dilaksanakan dalam waktu tertentu, hingga pada akhirnya mendapat solusi sesuai dengan yang diharapkan.
- Metode algoritma berlaku untuk setiap himpunan masukkan yang sesuai dengan persoalan yang diberikan.
Ciri-Ciri Algoritma
- Memiliki awal dan akhir (terbatas).
- Tidak memiliki arti ganda dan tidak membingungkan (tidak ambigu).
- Memiliki input.
- Memiliki output.
- Harus efektif (bisa menyelesaikan persoalan).
Algoritma disajikan dalam bentuk
tulisan/bahasa dan dalam bentuk gambar. Selain itu algoritma dalam bentuk
tulisan haruslah menggunakan bahasa yang dapat dimengerti manusia dalam
menyajikan langkah-langkah algoritma. Penyajian algoritma dalam bentuk tulisan
juga dapat dilakukan menggunakan pseudocode.
Istilah Pseudocode berasal dari kata pseudo
yang berarti “mirip atau menyerupai” dan code yang berarti “kode program”.
Contoh bahasa pemrograman yang digunakan untuk menyatakan pseudocode ialah
BASIC, Pascal, C, dan lain-lain. Sedangkan, penyajian algoritma dalam bentuk
gambar sering disebut flowchart.
Fungsi Algoritma
Berikut ini terdapat beberapa fungsi
algoritma, terdiri atas:
- Bisa digunakan untuk memecahkan program yang rumit.
- Menggunakan fungsi algoritma bisa menjadikan program yang besar menjadi program yang lebih sederhana.
- Dapat digunakan berulang atau lebih dari satu kali penggunaan.
- Memudahkan dalam pembuatan program.
- Bisa mengatasi segala masalah dengan logika dan urut.
- Menggunakan fungsi algoritma bisa melakukan pendekatan top-down dan juga divide and conquer.
- Meminimalisir penulisan program yang berulang-ulang.
- Program yang ada menjadi lebih terstruktur dengan rapi sehingga dapat lebih mudah untuk dipahami ataupun dikembangkan.
- Ketika terjadi kesalahan bisa dicari dengan mudah karena dengan fungsi algoritma bisa mendapatkan alur yang jelas.
- Ketika ingin melakukan modifikasi pada program bisa dilakukan hanya pada satu modul saja tanpa harus merubah dan mengganggu modul yang lain.
- Dokumentasi yang lebih mudah.
Jenis-Jenis Algoritma
Berikut ini terdapat beberapa jenis-jenis
algoritma, terdiri atas:
1. Divide and Conquer
Paradigma untuk membagi suatu permasalahan
besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini
dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk
dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah
besar dan kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.
2. Dynamic programming
Paradigma pemrograman dinamik akan sesuai
jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal (,
dan mengandung beberapa bagian permasalahan yang tumpang tindih. Paradigma ini
sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba
untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi
secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.
3. Metode serakah
Sebuah algoritma serakah mirip dengan
sebuah Pemrograman dinamik, bedanya jawaban dari sub masalah tidak perlu
diketahui dalam setiap tahap; dan menggunakan pilihan “serakah” apa yang
dilihat terbaik pada saat itu.
4. Sistem Flowchart
Metode flowchart merupakan diagram alir
yang menggambarkan suatu sistem peralatan komputer yang digunakan dalam proses
pengolahan data serta hubungan antar peralatan tersebut. Sistem flowchart tidak
digunakan untuk menggambarkan urutan langkah untuk memecahkan masalah, tetapi
hanya untuk menggambarkan prosedur dalam sistem yang dibentuk.
5. Pseudocode (Kode Semu)
Pseudocode (kode semu) merupakan metode yang cukup efisien untuk menggambarkan suatu algoritma. Pseudo Code dituliskan dengan menggunakan bahasa yang mudah dipahami misalnya menggunakan bahasa Indonesia, agar alur logika yang digambarkan dapat dimengerti oleh orang awam sekalipun.
Selain itu Flowchart Pseudocode (kode semu)
disusun dengan tujuan untuk menggambarkan
tahap-tahap penyelesaian suatu masalah
dengan kata-kata (teks). Sebenarnya metode ini mempunyai kelemahan, dimana penyusunan
algoritma dengan kode semu sangat
dipengaruhi oleh tata bahasa pembuatnya, sehingga kadang-kadang sulit
dipahami oleh orang lain.
Struktur
dasar algoritma dibagi menjadi 3 bagian sebagai berikut:
1.
Pengulangan (Repetition)
Struktur dasar algoritma yang ketiga adalah
pengulangan atau repetition, artinya kasus-kasus pemecahan masalah dalam
algoritma maupun bahasa pemrograman biasanya tidak akan lepas dari kasus-kasus
yang membutuhkan pengulangan.
Pada
algoritma sendiri untuk mengatasi kasus pengulangan data, memiliki instruksi
tersendiri, dengan instruksi tersebut pengulangan akan lebih mudah ditulis
secara singkat dan praktis daripada harus ditulis satu-persatu. Selain itu
dengan struktur ini, bisa menentukan bagaimana instruksi harus ditulis,
instruksi mana yang harus didahulukan dan instruksi mana yang harus diakhirkan.
2. Pemilihan (Selection)
Pada umumnya instruksi algoritma setidaknya
akan mengandung pemilihan, atau selection, instruksi ini akan muncul apabila
ada kasus yang memiliki 2 atau lebih alternatif penyelesaian. Misalkan untuk
kasus menyalakan komputer. Langkah-langkah cara menyalakan komputer sebenarnya
sangat mudah, namun pada prosesnya bisa terjadi 2 atau lebih alternatif
penyelesaian.
3. Runtunan (Sequence)
Sequence atau runtunan dalam struktur
algoritma adalah instruksi-instruksi dalam algoritma yang diproses secara
berurutan langkah demi langkah dari awal sampai akhir dimulai dari langkah
pertama hingga langkah terakhir.
Dalam bahasa pemrograman, ketika instruksi bahasa pemrograman yang kita tulis diproses oleh komputer, maka komputer akan memproses dan menterjemahkan bahasa pemrograman tersebut secara berurutan dari awal hingga akhir dimulai dari instruksi pada baris pertama hingga baris terakhir.