LOGIC PROGAMMING
Dosen Pengampu:
Disusun Oleh:
TAHUN 2022
BAB I
PENDAHULUAN
A. Latar Belakang
Sejarah penciptaan bahasa pemrograman berjalan seiring dengan sejarah mesin
dan komputer. Awal mula bahasa pemrograman dimulai dari Antikythera yang berasal
dari Yunani kuno. Antikythera adalah kalkulator yang menggunakan beberapa tuas dan
konfigurasi untuk menjalankannya. Perkembangan bahasa pemrograman semakin pesat
dengan adanya bahasa C. Dennis Ritchie dan Brian Kernighan awalnya menciptakan C
untuk mesin DEC PDP-11. Dengan adanya bahasa C banyak bermunculan bahasa-
bahasa baru seperti C++, Java, C#, dan masih banyak lagi. Bahasa pemrograman akan
terus berkembang menjadi lebih mudah digunakan dari waktu ke waktu. Dalam
menyelesaikan masalah pada komputer, kita pasti membutuhkan peran logika
programming.
Logic Programming merupakan paradigma pemrograman deklaratif yang
menekankan atas apa yang program lakukan daripada bagaimana dia akan melakukan.
Ketika diterapkan logic programming digunakan suatu bahasa logika untuk
menspesifikasi permasalahan dan kemudian menggunakan suatu prosedur pembuktian
untuk melakukan komputasi. Beberapa permasalahan dalam programming bisa
diselesaikan dengan logic programming. Dengan adanya permasalahan tersebut, saya
mencoba membuat suatu contoh kasus sederhana menggunakan kemampuan logic
programming dalam menyelesaikan permasalahan kasus pemindahan isi gelas teh dan
kopi pada wadah yang berbeda.
B. Rumusan Masalah
- Apa yang dimaksud dengan Logic Progamming?
- Jelaskan konsep dari berbagai paradigma pemrograman!
- Bagaimana menyusun/merancang program berbasis logika dari kasus sederhana?
C. Tujuan Penelitian
Adapun tujuan dari penyusunan paper ini bermaksud untuk :
- Memahami definisi dari logika pemrograman
- Menjelaskan dan memahami tentang konsep dari berbagai paradigma pemrograman
- Mampu merancang dan mengaplikasikan program berbasis logika dari kasus
sederhana.
D. Manfaat Penelitian
- Bagi Progammer Aplikasi untuk dijadikan referensi maupun acuan tentang
bagaimana menggunakan peran logic programming pada kasus sederhana.
- Sebagai ilmu bagi masyarakat, terutama para akademisi (mahasiswa/dosen)
- Bisa menambah wawasan bagi penulis tentang logic programming.
BAB II
PEMBAHASAN
Logika adalah suatu pertimbangan akal atau pikiran yang diutarakan lewat kata
dan dinyatakan dalam bahasa. Logika adalah ilmu pengetahuan dan keterampilan
berpikir lurus. Tt, (1999 :71). Dasar pemikiran logika berkaitan dengan proposisi yang
bisa bernilai benar (dengan nilai logika 1) atau salah (dengan nilai logika 0). Proposisi
adalah kalimat yang dinyatakan dalam suatu bahasa dan dapat diekspresikan dalam
bentuk umum, misalnya: x adalah P (yang mana x adalah simbol dari suatu objek dan
P merupakan predikat yang mencirikan sifat dari subjek tersebut. Contohnya: pensil
adalah alat tulis. Logika Pemrograman merupakan suatu kemampuan dasar yang dapat
diterapkan dalam berbagai aspek ilmu komputer dan mencakup pemahaman atas
operasi-operasi logika terhadap data, yang perlu digaris bawahi di sini adalah, Logika
Pemrograman berbeda dengan Ilmu Pemrograman. Logika Pemrograman adalah
kemampuan menggunakan Ilmu Pemrograman dalam memecahkan masalah (problem
solving).
Perkembangan logika ini terus berkembang dari tahun ke tahun hingga seorang
ilmuwan Jerman bernama Konrad Zuse membuat mesin kalkulator biner dengan nama
Z-1 pada tahun 1935. Kemudian pada tahun 1939, Zuse dipanggil untuk bertugas di
militer dengan membuat Z- 2 dan dilanjutkan dengan Z -3 dan Z-4. Saat
mengembangkan Z-4, Zuse menyadari bahwa bahasa pemrograman dengan bahasa
mesin terlalu rumit. Bahasa mesin tergolong bahasa tingkat rendah, karena hanya
merupakan kumpulan kode 0 dan 1, atau ya dan tidak. Setelah melakukan penelitian
selama satu tahun, pada tahun 1945 terciptalah bahasa pemrograman tingkat tinggi
pertama di dunia, yaitu Plankalkul (Plan Calculus). Dengan Plankalkul terbukti mampu
menciptakan mesin catur komputer pertama di dunia. Kode Pendek diciptakan pada
tahun 1949 sebagai bahasa pemrograman tingkat tinggi pertama untuk
mengembangkan komputer elektronik yang dibuat oleh John Mauchly. Namun,
program harus diterjemahkan ke dalam bahasa mesin setiap kali dijalankan, hal ini
membuat kinerja program dalam memproses kode membutuhkan waktu yang cukup
lama.
2. Logical Programming
Logical programming adalah paradigma pemrograman komputer yang didasarkan
pada logika matematika di mana pernyataan program mengungkapkan fakta dan
aturan tentang masalah dalam suatu sistem. Aturan ditulis sebagai klausa logis
dengan head dan body. Mereka juga mengikuti pendekatan deklaratif daripada
pendekatan imperatif. Untuk memahami bagaimana suatu masalah dapat
diselesaikan dalam logical programming, kita harus perlu tahu tentang building
blocks Fakta dan Aturan.
- Fakta adalah pernyataan mendasar tentang domain masalah (misalnya “Bill
Gates adalah laki-laki”)
- Aturan adalah kesimpulan tentang fakta dalam domain tersebut (misalnya
“Semua orang fana.”)
- Pertanyaan adalah pertanyaan tentang domain itu (misalnya “Apakah manusia
fana?”)
3. Functional Programming
Functional programming adalah paradigma pemrograman di mana kalian memiliki
gaya membangun struktur dan elemen program komputer. Di sini kalian
memperlakukan komputasi sebagai evaluasi fungsi matematika dan kalian
menghindari perubahan status dan data yang dapat berubah. Pemrograman
fungsional hanya terdiri dari Pure functions. Pure functions atau fungsi murni
adalah yang mengambil daftar argumen sebagai masukan dan yang keluarannya
adalah nilai yang dikembalikan. Sekarang kalian mungkin merasa bahwa semua
fungsi adalah murni karena fungsi apa pun mengambil nilai dan mengembalikan
nilai. Misalnya, jika suatu function bergantung pada variabel global atau data
anggota kelas, maka itu tidak murni. Dan dalam kasus seperti itu, return value dari
function itu tidak sepenuhnya bergantung pada daftar argumen yang diterima
sebagai masukan dan juga dapat memiliki efek samping. Side effect (efek samping)
adalah perubahan status aplikasi yang dapat diamati di luar function
yang dipanggil selain return value. Misalnya: Memodifikasi variabel eksternal atau
properti objek seperti variabel global, atau variabel dalam parent function scope
chain. Adapun untuk fitur functional programmingnya diantaranya yaitu:
- Pure Functions
Seperti yang terlihat di atas, jika input adalah array, output akan menjadi array
baru dan array input tidak akan diubah. Jadi dalam kasus pure functions, return
hanya bergantung pada inputan.
- Recursion
Recursive function adalah fungsi yang memanggil dirinya sendiri selama
pelaksanaannya. Hal ini memungkinkan function untuk berulang beberapa kali,
hasilnya akan dikeluarkan pada akhir setiap iterasi.
- Referential Transparency
Sebuah ekspresi dikatakan transparan secara referensial jika dapat diganti
dengan nilai yang sesuai tanpa mengubah perilaku program. Akibatnya,
mengevaluasi referentially transparent function memberikan nilai yang sama
untuk argumen tetap. Dalam pemrograman fungsional , hanya referentially
transparent function yang dipertimbangkan. Mereka jauh lebih mudah dibaca
dan dipahami.
- Function-nya Adalah First-Class Dan Bisa Higher-Order
Sebuah bahasa pemrograman dikatakan memiliki First-class function ketika
fungsi dalam bahasa itu diperlakukan seperti variabel lainnya. Misalnya, dalam
bahasa seperti itu, suatu fungsi dapat dikirimkan sebagai argumen ke fungsi
lain, dapat dikembalikan oleh fungsi lain, dan dapat ditetapkan sebagai nilai ke
variabel. Higher-order functions adalah fungsi yang mengambil setidaknya satu
fungsi kelas sebagai parameter.
- Variabel Tidak Dapat Diubah
Dalam pemrograman fungsional, kalian tidak dapat mengubah variabel setelah
diinisialisasi. Kalian dapat membuat variabel baru dan ini membantu
mempertahankan status sepanjang waktu proses program.
PENUTUP
A. Kesimpulan
Modul Bahan Ajar Kecerdasan Buatan, Program Teknologi Informasi dan Ilmu Komputer
Universitas Brawijaya. (diakses pada Jumat, 27/05/2022 Pukul 11.50 WITA).
Dr. Hendra Jaya, S.Pd., M.T.,dkk. (2018) dalam buku “Kecerdasan Buatan”. Fakultas MIPA
Universitas Negeri Makassar. (diakses pada sabtu, 28/05/2022 Pukul 11.50 WITA).
Victor Amrizal, Qurrotul Aini. (2013) dalam buku “Kecerdasan Buatan”. ISBN: 978-602-
269-024-5. (diakses pada rabu, 01/06/2022 Pukul 21.00 WITA).
Perdana Samudra, Junior Content Writer Dicoding Indonesia Dalam Artikel “Mau jaminan
masa depan yang jelas? Makanya segera belajar ngoding di Dicoding”. (diakses pada
rabu, 01/06/2022 Pukul 21.32 WITA).
Alwin M. Sambul, ST, M. Eng, Ph.D. Dosen S1 Prodi Teknik Informatika Universitas Sam
Ratulangi Manado, dalam artikel blog pribadinya “Apa itu Logika Pemrograman?”.
(diakses pada rabu, 01/06/2022 Pukul 21.40 WITA).
Resa Risyan (2020) dalam artikel blog miliknya berjudul “Paradigma Pemrograman:
Pengertian Dan Jenis”. (diakses pada rabu, 01/06/2022 Pukul 22.15 WITA).
Rudy Setiawan (2020) dalam artikel blog miliknya berjudul “Alur logika pemrograman bag.
1”. (diakses pada rabu, 01/06/2022 Pukul 23.00 WITA).