LOGIKA DAN ALGORITMA

1. Logika

Manusia adalah mahluk paling mulia sebab dianugerahi berbagai kelebihan yang tidak diberikan kepada semua mahluk selain manusia. Salah satu kelebihan tersebut karena manusia diberikan akal pikiran sehingga dapat memilih hal yang benar dan bermanfaat, serta meninggalkan yang tidak bermanfaat (mudarat). 

Manusia merupakan makhluk yang mampu berpikir dan bernalar dengan baik. Sebagai makhluk yang berpikir, manusia memiliki dua ciri yang melekat, yaitu rasionalitas dan moralitas. Rasionalitas akan menuntun manusia untuk bertindak menurut pikiran dengan pertimbangan yang logis. Moralitas akan mendorong manusia untuk berlaku sopan santun, sesuai dengan etiket atau norma yang berlaku. Namun, ketika manusia berpikir, kadang kala dipengaruhi berbagai kecenderungan, emosi, subjektivitas, dan berbagai hal lain yang menjadikan kita tidak dapat berpikir jernih dan logis sehingga menghasilkan kesalahan berpikir dan pada akhirnya akan mengakibatkan kesimpulan yang salah (sesat). 

Dalam setiap keadaan, seorang manusia membutuhkan pola pikir logis. Berpikir logis merupakan berpikir dengan cara yang benar/masuk akal dan sesuai dengan hukum logika.

Logika berasal dari kata λόγος (logos) yang bermakna hasil nalar yang diutarakan dalam kata dan dinyatakan dalam bahasa. Logika merupakan salah satu cabang ilmu filsafat. Cabang filsafat yang lain adalah epistemologi, etika, dan estetika. Dalam pembahasan ini, logika tidak dijelaskan secara rinci, hanya digunakan untuk mempelajari bernalar sebagai kecakapan hidup, berpikir secara lurus, tepat, runtut, dan teratur, yang merupakan penerapan logika dalam kehidupan keseharian. Logika merupakan materi yang dipelajari sampai kapan pun bahkan ketika manusia menciptakan kecerdasan buatan (artificial intelligence).

Seseorang dapat mengungkapkan kebenaran berdasarkan penalaran logis. Dengan disertai bukti-bukti yang ada, seseorang dapat menilai kebenaran pernyataan untuk akhirnya sampai pada pengambilan keputusan.

Logika disebut juga sebagai alat untuk menjaga dari kesesatan bernalar. Seseorang membutuhkan kemahiran bernalar logis agar dapat menghasilkan kesimpulan yang benar.


Beberapa manfaat yang akan didapatkan setelah mempelajari logika antara lain sebagai berikut. 
1) Menjaga supaya kita selalu berpikir benar menggunakan asas-asas sistematis. 
2) Membuat daya pikir menjadi lebih tajam dan menjadikannya lebih berkembang. 
3) Membuat setiap orang berpikir cermat, objektif, dan efektif dalam berkomunikasi. 
4) Meningkatkan cinta kebenaran dan menghindari kesesatan bernalar.

Bagaimana dengan perbandingan otak kanan yang dominan lebih berwarna dan manusiawi, jika hanya lebih mengutamakan logika tanpa rasa? Layakkah siswa diajarkan seperti robot dengan program dan perintah tanpa rasa? Dalam memberikan penjelasan, akankah lebih baik moderat dan digambarkan dengan baik? Cara kerja otak lebih nyata jika divisualisasikan.

Salah satu fungsi logika adalah sebagai alat untuk menarik kesimpulan. Kita dapat menggunakan alat ini setelah melakukan penalaran berdasarkan pernyataan-pernyataan benar (premis) yang ada. Penalaran untuk penarikan kesimpulan dibedakan menjadi dua jenis, yaitu pola nalar deduktif dan induktif.


a. Deduktif 
Penarikan kesimpulan yang bergerak dari pernyataan benar yang umum ke khusus. 
Contoh: 
Umum         : Semua siswa SMK harus disiplin dan bertanggung jawab. 
Khusus        : Sandi adalah siswa SMK. 
Kesimpulan: Sandi harus disiplin dan bertanggung jawab. 

b. Induktif 
Penarikan kesimpulan yang bergerak dari pernyataan benar yang khusus ke umum. 
Contoh: 
Khusus        :  Devi rajin belajar. Dia mendapat hasil yang memuaskan. 
Khusus        :  Yuda rajin belajar. Dia mendapat hasil yang memuaskan. 
Khusus        :  Tika rajin belajar. Dia mendapat hasil yang memuaskan. 
Kesimpulan:  Siswa yang rajin belajar akan mendapatkan hasil yang memuaskan.


2. Algoritma

Setelah mempelajari logika yang terkait tentang “bagaimana manusia berpikir dengan benar”, selanjutnya akan membahas tentang “bagaimana cara penyelesaian yang baik”. Untuk mendapatkan cara penyelesaian yang baik, dibutuhkan strategi atau langkah-langkah yang sistematis agar dapat memecahkan masalah dengan cara terbaik.

Contoh: 
Dina adalah seorang siswa SMK kelas X. Setiap hari, dia pergi ke sekolah setelah melakukan sarapan. Pada suatu hari, ketika Dina akan sarapan, yang tersedia hanya nasi tanpa sayur dan lauk. Kemudian, terpikir oleh Dina untuk membuat tumis tauge tempe dengan langkah-langkah sebagai berikut.


  1. Siapkan tauge, tempe, cabai, bawang merah, bawang putih, lengkuas, dan bahan lain yang diperlukan. 
  2. Iris bawang merah, bawang putih, cabai, dan lengkuas.
  3. Panaskan minyak dan masukkan semua irisan bahan.
  4. Goreng tempe sebentar.
  5. Tambahkan tauge, kecap manis, garam, dan sedikit air. 
  6. Aduk hingga semua bumbu meresap. 
  7. Cicipi rasanya. Jika terdapat rasa yang kurang, tambahkan bumbu lain secukupnya. 
  8. Tauge tumis siap dihidangkan.


Contoh di atas merupakan penyelesaian masalah dengan mengggunakan langkahlangkah penyelesaian masalah yang dinamakan algoritma. Algoritma adalah serangkaian langkah yang disusun menjadi urutan logis kegiatan untuk mencapai tujuan. 

Setiap hari, ketika seseorang melakukan aktivitas, dia akan memilih mana yang akan dikerjakan terlebih dahulu, misalnya ketika bangun tidur, sarapan, bahkan ketika memakai pakaian di pagi hari. Algoritma yang baik merupakan tindakan yang benar dan masuk akal. 

Terdapat berbagai bentuk cara untuk mengomunikasikan algoritma, antara lain menggunakan bagan alir, pseudo code, dan bahasa pemrograman. Bentuk algoritma yang mudah dibaca adalah menggunakan bagan alir.

Tahapan Analisa Algoritma
1. Bagaimana merencakan suatu algoritma:
Menentukan beberapa model atau desain sebagai penyelesaian dari suatu masalah untuk mendapat sebuah solusi yan mungkin. Dengan demikian, akan banyak terdapat variasi desain atau model yang dapat diambil yang terbaik.

2. Bagaimana menyatakan suatu algoritma
Menentukan model suatu algoritma yang digunakan sehingga dapat membuat barisan langkah secara berurutan guna mendapatkan solusi penyelesaian masalah. Menentukan model tersebut agar dapat digunakan dengan cara:


a) Dengan Bahasa semu(Pseudocode): yaitu dengan menggunakan bahasa sehari-hari, tetapi harus jelas dan terstruktur, seperti telah penulis sebutkan pada contoh-contoh sebelumnya 
Contoh: 
Untuk mengitung Luas Segitiga: 
1. Masukan Nilai Alas 
2. Masukan Nilai Tinggi 
3. Hitung Luas = (Alas * Tinggi)/2 
4. Cetak Luas 

b) Dengan diagram alur atau flowchart: yaitu dengan membuat suatu penulisan atau penyajian algoritma berupa diagram yang menggambarkan susunan alur logika dari suatu permasalahan. 

c) Dengan Statement Program/Penggalan Program Contoh: 
1. Read Alas 
2. Read Tinggi 
3. Luas=(Alas*Tinggi)/2 
4. Write(luas) 

3. Bagaimana validitas suatu algoritma Yakni jika penyelesaian memenuhi solusi yang sebenarnya, artinya solusi yang didapat merupakan penyelesaian suatu masalah dan bukannya membuat masalah baru.

4. Bagaimana menganalisa suatu algoritma Caranya melihat running time atau waktu tempuh yang digunakan dalam menyelesaikan masalah serta jumlah memori yang digunakan dalam penyelesaian masalah tersebut 

5. Bagaimana menguji program dari suatu algoritma Yaitu dengan cara menyajikannya dalam salah satu bahasa pemrogramana, misalnya BASIC, PASCAL, FORTRAN, dBase, atau yang lainnya. Dalam proses, uji program oleh komputer akan melalui beberapa tahap yaitu: 

1) Fase Debugging, yaitu fase dari suatu proses program eksekusi yang akan melakukan koreksi terhadap kesalahan program. Yang dimaksud disni adalah error atau salah dalam penulisan program baik logika maupun sintaksnya. 

2) Fase Profilling, yaitu fase yang akan bekerja jika program tersebut sudah benar atau telah melalui proses pada fase debugging. Fase ini bekerja untuk melihat dan mengukur waktu tempuh atau running time yang diperlukan serta jumlah memori/storage yang digunakan dalam menyelesaikan suatu algoritma.


Analisis Suatu Algoritma
(Untuk melihat faktor efisiensi & efektifitas dari algoritma tersebut), dapat dilakukan terhadap suatu algoritma dengan melihat pada: 

a. Waktu tempu(Running Time) dari suatu algoritma: adalah satuan waktu yang ditempuh atau diperlukan oleh suatu algoritma dalam menyelesaikan suatu masalah. Hal-hal yang dapat mempengaruhi daripada waktu tempuh adalah: 

  1. Banyaknya langkah: Makin banyak langkah atau instruksi yang digunakan dalam menyelesaikan masalah, maka makin lama waktu tempuh yang dibutuhkan dalam proses tersebut 
  2. Besar dan jenis input data: Besar dan jenis input data pada suatu algoritma akan sangat berpengaruh pada proses perhitugan yang terjadi. Jika jenis data adalah tingkat ketelitian tunggal(Single precision), maka waktu tempuh akan menjadi relatif lebih cepat dibandingkan dengan tingkat ketelitian ganda(double precesion) 
  3. Jenis operasi: Waktu tempuh juga dipengaruhi oleh jenis operasi yang digunakan. Jenis operasi tersebut meliputi operasi matematika, nalar atau logika, atau yang lainnya. Sebagai contoh, operasi perkalian atau pembagian akan memakan waktu lebih lama dibandingkan operasi penjumlahan atau pengurangan. 
  4. Komputer dan kompilator: hal terakhir yang mempengaruhi waktu tempuh suatu proses algoritma adalah komputer dan kompilatornya, walaupun sebenarnya faktor ini diluar tahap rancangan atau tahap pembuatan algoritma yang efisien. Algoritma dibuat untuk mencapai waktu tempuh yang seefektif dan seefisien mungkin, tetapi kesemuanya itu akan sangat bergantung pada kemampuan komputer yang tentunya harus sesuai dengan jumlah program atau langkah yang diperlukan oleh algoritma, begitu juga dengan kompilator tersebut, misalnya PC XT 8086 akan kalah cepat dibandingkan 8088 atau dengan AT 80286 atau 80386 atau 80486 dan seterusnya. b. Jumlah Memori Yang digunakan: banyaknya langkah yang digunakan dan jenis variabel data yang dipakai dalam suatu algoritma akan sangat mempengaruhi penggunaan memori. Dalm hal ini, diharapkan dapat memperkirakan seberapa banyak kebutuhan memori yang diperlukan selama proses berlangsung hingga proses selesai dikerjakan. Dengan demikian, dapat disiapkan storage yang memadai agar proses suatu algoritma berjalan tanpa ada hambatan atau kekurangan memori.

Sifat-Sifat Algoritma
  • Banyaknya langkah instruksi harus berhingga: pelaksanaan sebuah algoritma yang terprogram haruslah dapat diakhiri atau diselesaikan melalui sejumlah langkah operasional yang berhingga. Jika tidak demikian, kita tidak akan dapat mengharapkan bahwa pelaksaan algoritma tersebut dapat menghasilkan suatu solusi yang baik.
  • Langkah atau instruksi harus jelas: artinya bahwa penulisa setiap langkah yang terdapat didalam sebuah algoritma harus memiliki arti yang khusus atau spesifik sehingga dapat dibedakan antara penulisan langkah untuk komputer(program/pemrograman) dengan penulisan langkah bagi manusia(pesudocode). Manusia akan lebih mudah memahami algoritma yang terdiri atas simbolsimbol(Contoh: pembuatan algoritma dengan diagram alur/flowchart) sedangkan komputer hanya membutuhkan sebuah penulisan algoritma dengan kode-kode yang dituangkan dalam bahasa yang dimengerti oleh komputer itu sendiri(bahasa pemrograman). 
  • Proses harus jelas dan mempunyai batasan: rangkaian suatu proses yang berisi langkah-langkah instruksi dari suatu algoritma yang akan dilaksanakn harus ditetapkan dengna jelas, baik dan pasti sebab sebuah algoritma harus memiliki instruksi dasar tertentu dimana setiap instruksi harus memiliki unsur pelaksana yang berfungsi sebagai pemroses data yang akan dimasukkan dalam sebuah komputer. Dengan demikian, sebuah algoritma harus ditulis dengan jelas tentang batasabatasan proses yang akan dilaksanakan oleh komputer.
  • Input dan Output harus mempunyai batasan: input merupakan data yang dimasukkan ke dalam algoritma yang untuk kemudian akan dilaksanakan oleh komputer. Dengan begitu, input yang diberikan harus sesuai dengan jenis dari bahasa pemrograman yang digunakan, sedangkan ouput merupakan hasil yang diperoleh dari pekerjaan yang dilaksanakan komputer untuk kepentingan user yang merupakan pihak diluar komputer. Algoritma harus menghasilkan output karena merupaka solusi yang diharapkan dari suatu masalah yang timbul.
  • Efektifitas: instruksi yang diberikan pada komputer agar hanya menjalankan atau melaksanakan proses yang mampu dilaksanakannya. Yang dimaksud mampu adalah bahwa suatu algoritma atau instruksi-instruksi dalam sebuah program hanya akan dapat dilaksanakan jika informasi yang diberikan oleh instruksi-instruksi tersebut lengkap, benar dan jelas. 
  • Adanya batasan ruang lingkup, sebuah algoritma yang baik adalah hanya ditujukan bagi suatu masalah tertentu saja. Susunana input harus ditentukan lebih dulu sebab susunan tersebut enentukan sifat umum dari algoritma yang bersangkutan.

3. Bagan Alir

a. Fungsi Bagan Alir

Bagan alir (flowchart) merupakan sebuah bagan yang menunjukkan aliran algoritma dan menampilkan langkah-langkah penyelesaian terhadap suatu masalah. Ter dapat berbagai alasan bagi seseorang untuk menggunakan flowchart, antara lain sebagai berikut. 

(1) Dokumentasi proses. Bagan alir dapat digunakan untuk mendokumentasikan proses menjadi lebih terorganisasi dengan baik. 

(2) Petunjuk untuk memecahkan masalah. Runtutan langkah dari yang umum menuju ke khusus atau sebaliknya merupakan petunjuk pemecahan masalah yang digambarkan dengan bagan alir. 

(3) Pemrograman. Bagan alir dapat digunakan untuk menggambarkan garis besar program yang akan dibuat. Bagan alir juga digunakan untuk merancang navigasi pengguna pada tampilan (user interface) aplikasi yang akan dibuat. 

(4) Mengomunikasikan hal-hal yang prosedural.


b. Simbol Bagan Alir

Bagan alir tersusun dari berbagai simbol yang berbeda untuk mempresentasikan sebuah input, proses, maupun output yang berbeda. Berikut adalah berbagai simbol dan masing- masing kegunaannya. 

Tabel 2.1 Simbol Flowchart








Contoh berangkat ke sekolah 

Berangkat sekolah merupakan aktivitas harian siswa SMK. Terdapat berbagai langkah yang dapat dipersiapkan sebelum berangkat hingga sampai ke sekolah. Kegiatan tersebut dapat dibuatkan menjadi salah satu bagan alir seperti berikut.



Proses mandi, sarapan, dan berangkat ke sekolah merupakan salah satu contoh subproses yang dapat dibagi lagi menjadi proses-proses lainnya. Masing-masing akan dijelaskan melalui algoritma sebagai berikut.

Contoh algoritma ketika mandi 

Secara umum, algoritma yang digunakan adalah sebagai berikut.



Contoh algoritma ketika sarapan

Sarapan adalah salah satu hal penting yang dapat siswa lakukan sebelum berangkat ke sekolah. Sarapan akan memberikan nutrisi pada otak yang akan membantu mempermudah menerima pelajaran. Oleh karena itu, biasanya siswa yang mempunyai kebiasaan sarapan akan mempunyai prestasi lebih baik daripada siswa yang tidak sarapan.

Pada pembahasan berikut, penjelasan terkait sarapan akan membantu memahami bagan alir penggunaan algoritma. 

(1) Lihatlah makanan pada meja makan, tersedia atau tidak? 
(2) Jika tersedia, sarapan dapat dimulai. Jika tidak, ingin membuat atau membeli sarapan. 
(3) Periksa apakah tersedia bahan makanan yang dapat dimasak jika ingin membuatsarapan. 

Hasil bagan alir dari algoritma di atas adalah sebagai berikut .


Contoh algoritma ketika berangkat ke sekolah

Setelah madi dan sarapan, biasanya siswa akan langsung berangkat ke sekolah. Terdapat berbagai sarana transportasi yang dapat digunakan, misalnya menggunakan kendaraan umum atau kendaraan pribadi. Kali ini, kendaraan yang akan digunakan sebagai trasnportasi utama adalah sepeda, dengan asumsi lebih murah dan menyehatkan. Algoritma pemakaian sepeda adalah sebagai berikut. 
1) Periksa apakah sepeda dalam keadaan baik? 
2) Jika tidak dalam keadaan baik (diasumsikan sepeda bocor dan memerlukan waktu yang lama untuk menambalnya), naiklah angkot. 
3) Pilihan lain yang dapat digunakan adalah naik ojek. 
4) Jika tidak ada, dapat menggunakan pilihan lainnya selain naik sepeda, naik angkot, atau naik ojek. Misalnya, berangkat bersama teman, bersama orang tua, atau jalan kaki jika memungkinkan. 


    Akan dihasilkan bagan alir sebagai berikut.


Contoh algoritma membuat kue cokelat 
Membuat kue memerlukan bahan dan pengalaman agar hasilnya cocok dengan lidah. Berikut ini adalah algoritma dalam membuat karim. 
  1. Siapkan peralatan seperti adonan, oven, pengocok telur, dll.
  2. Sediakan bahan seperti tepung terigu, margarine, cokelat bubuk, gula halus, telur, dan chococips.
  3. Tentukan komposisi bahan sesuai r esep, yaitu: terigu = 175 gr; margarin = 150 gr; cokelat bubuk = 25 gr; gula halus = 100 gr; kuning telur = 1 buah; dan chocochips secukupnya.
  4. Kocok margarin dan gula halus hingga lembut. Masukkan kuning telur, kocok rata.
  5. Ayak terigu & cokelat bubuk, lalu masukkan ke adonan, aduk hingga rata.
  6. Masukkan dalam plastik segitiga, semprot pada loyang yg telah dioles margarin, semprot bentuk bulat, lalu pipihkan dengan punggung sendok plastik. 
  7. Taburi chocochips, panggang hinggamatang.
  8. Angkat kue dan hidangkan.

Bagan alir yang dapat dibuat dari algoritma di atas adalah sebagai berikut. 
Gambar 2.6 Contoh Algoritma Membuat Kue


Contoh Algoritma Berobat ke Puskesmas 

Ketika berobat ke puskesmas, sering dijumpai berbagai proses mulai dari pendaftaran, pemeriksaan tekanan darah, hingga mendapatkan obat. Jarang yang menyadari bahwa hal tersebut adalah salah satu contoh algoritma dalam kehidupan sehari-hari. Sebagai contoh, untuk membuat bagan alir adalah dengan cara menentukan alur pelayanan puskesmas sebagai berikut. Pada contoh ini, proses pergerakan pasien dan tempat dibedakan agar mudah dipahami. 

  1. Pasien datang ke puskesmas.
  2. Pasien darurat atau pasien yang akan melahirkan langsung masuk ke unit gawat darurat atau ruang bersalin. Kerabat pasien dapat mendaftarkan ke loket pendaftaran setelah pasien dilayani. Setelah mendapat tindakan, pasien akan dilihat kondisinya, apakah dapat pulang (rawat jalan) atau harus dirawat terlebih dahulu di puskesmas(rawat inap). Apabila puskesmas tidak mampu melayani pasien dikarenakan terbatasnya fasilitas atau tenaga medis, pasien akan dirujuk ke rumah sakit.
  3. Pasien yang tidak darurat akan menggambil nomor antrian dan menunggu hingga dipanggil oleh petugas pendaftaran.
  4. Pasien dipanggil petugas sesuai nomor urut pada loket pendaftaran (pasien Lansia akan mendapatkan pelayanan khusus). Pasien akan ditanya apakah sudah terdaftar sebagai pasien atau belum. Jika belum, dia akan dibuatkan terlebih dahulu nomor rekam medisnya. Pasien lama atau pasien asuransi dapat menyerahkan kartu pasien atau kartu asuransi yang dimilikinya.
  5. Pasien diminta menuju ke poliklinik tujuan. Petugas akan mencari rekam medis pasien untuk diberikan kepada poliklinik rawat jalan tempat pasien ingin berobat. 
  6. Pasien akan dipanggil oleh petugas atau perawat. 
  7. Pasien diperiksa (diagnosis), dicatat anamnesis, diberikan tindakan medis jika diperlukan, dan diberikan resep obat. Jika pasien membutuhkan tindakan medis yang tidak tersedia di puskesmas, pasien akan dirujuk ke rumah sakit. 
  8. Pasien keluar dari ruang pemeriksaan dan menuju ke kasir pembayaran jika pasien diberikan tindakan medis. Kemudian, pasien menuju apotik. 
  9. Pasien dipanggil lagi untuk menerima obat.
  10. Pasien pulang.

Bagan alir yang dapat dibuat dari algoritma di atas adalah sebagai berikut.

Gambar 2.7 Contoh Bagan Alir Berobat di Puskesmas























Comments