Anda di halaman 1dari 10

PAPER

LOGIC PROGAMMING

IMPLEMENTASI PERAN LOGIC PROGAMMING TERHADAP


PENYELESAIAN KASUS SEDERHANA MENGGUNAKAN
ALGORITMA

Dosen Pengampu:

Hendriek Hanie Karongkong ST, MT

Disusun Oleh:

Winda Magribfa Limbanadi/20021105010

UNIVERSITAS SAM RATULANGI

FAKULTAS TEKNIK JURUSAN ARSITEKTUR

PROGRAM STUDI PERENCANAAN WILAYAH DAN KOTA

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

A. Pengertian dan Sejarah Logika Pemrograman

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).

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. Pada tahun 1200-an Ismail Al-Jazari, seorang
ilmuwan pada masa kejayaan Islam membangun sebuah mesin bernama Automata,
robot merak yang bergerak menggunakan tenaga air (aliran air). Cikal bakal bahasa
pemrograman pertama kali muncul pada tahun 1822, sebuah mesin bernama Difference
Engine diciptakan oleh Charles Babbage, seorang mahasiswa di University of
Cambridge, Inggris. Tetapi mesin Babbage hanya dapat menghasilkan satu jenis output.
Baru 10 tahun kemudian Charles Babbage mengembangkan mesin pengolah data
hingga mencapai versi kedua pada tahun 1849. Perjuangan Babbage dilanjutkan oleh
putranya, Henry Prevost. Prevost membuat salinan perhitungan algoritmiknya dan
mengirimkannya ke berbagai institusi di seluruh dunia. Dengan penyebaran algoritma
mesin Prevost, perkembangan sedang berlangsung. Pada tahun 1854, George Boole
menemukan sistem logika yang disebut logika Boolean. Logika ini menyatakan bahwa
hubungannya lebih besar, lebih kecil dari, sama dengan dan tidak sama dengan.

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.

Alick Glennie dari University of Manchester mengembangkan bahasa


pemrograman Autocode pada awal 1950-an. Sebagai bahasa pemrograman, ia
menggunakan kompiler yang secara otomatis mengubah bahasanya menjadi bahasa
mesin. Awal mula bahasa pemrograman pertama digunakan pada tahun 1952 untuk
komputer Mark 1 di Universitas Manchester. John W. Backus mengajukan proposal
kepada atasannya di IBM (International Business Machines Corporation) untuk
mengembangkan bahasa alternatif yang lebih praktis daripada bahasa assembly untuk
memprogram komputer mainframe IBM 704 dengan nama Formula Translation atau
yang kita kenal dengan FORTRAN. Compiler FORTRAN berhasil diselesaikan pada
bulan April 1957. Kemudian ada FLOW-MATIC oleh Grace Hopper. FLOW-MATIC
secara resmi diterbitkan pada tahun 1959 dan memiliki pengaruh besar pada penciptaan
bahasa pemrograman COBOL (Common Business Oriented Language), bahasa
pemrograman yang pada tahun 1959 banyak digunakan di mainframe dan komputer
mini. 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.

B. Konsep-konsep Paradigma Pemrograman


Paradigma pemrograman adalah konsep yang dianut metodologi bahasa
pemrograman. Paradigma penting karena menentukan bahasa pemrograman dan cara
kerjanya. Adapun jenis-jenis dari paradigma pemrograman adalah sebagai berikut:
1. Procedural Programming
Procedural programming juga dapat disebut sebagai pemrograman imperatif. Ini
adalah paradigma pemrograman yang didasarkan pada konsep panggilan prosedur,
di mana pernyataan disusun menjadi prosedur (juga dikenal sebagai subrutin atau
fungsi). Mereka adalah daftar instruksi untuk memberi tahu komputer apa yang
harus dilakukan langkah demi langkah, bahasa pemrograman prosedural dikenal
sebagai bahasa top-down. Sebagian besar bahasa pemrograman awal semuanya
prosedural. Adapun fitur dari procedural programming yaitu:
- Pemrograman Procedural sangat baik untuk pemrograman tujuan umum
- Kesederhanaan kode bersama dengan kemudahan implementasi compiler dan
interpreter
- Berbagai macam buku dan materi kursus online tersedia di algoritme teruji,
sehingga lebih mudah untuk dipelajari.
- Kode sumbernya portable
- Kode dapat digunakan kembali di berbagai bagian program, tanpa perlu
menyalinnya
- Alur program dapat dilacak dengan mudah karena memiliki pendekatan top-
down.

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?”)

Untuk fitur logical programmingnya yaitu:

- Logical programming dapat digunakan untuk mengekspresikan pengetahuan


dengan cara yang tidak bergantung pada implementasi, membuat program lebih
fleksibel, terkompresi, dan dapat dipahami.
- Hal ini memungkinkan pengetahuan untuk dipisahkan dari penggunaan, yaitu
arsitektur mesin dapat diubah tanpa mengubah program atau kode yang
mendasarinya.
- Ini dapat diubah dan diperluas dengan cara alami untuk mendukung bentuk-
bentuk pengetahuan khusus, seperti meta-level dari pengetahuan tingkat tinggi.
- Ini dapat digunakan dalam disiplin non-komputasi yang mengandalkan
penalaran dan cara ekspresi yang tepat.

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.

4. Object-Oriented Programming (OOP)


Objek adalah contoh kelas sehingga setiap objek merangkum state dan behavior.
State menyiratkan bidang, atribut dari objek dan behavior adalah apa yang kalian
lakukan dengan keadaan objek dan mereka adalah metode. Objek berinteraksi satu
sama lain dengan meneruskan pesan. Adapun untuk fitur object-oriented
programming, diantaranya yaitu:
- Encapsulation
Ini adalah fitur dasar Object-Oriented Programming. Di sini kalian
menyembunyikan detail yang tidak perlu di class dan memberikan interface
yang sederhana dan jelas untuk bekerja. Ini menjelaskan gagasan
menggabungkan data dan metode yang bekerja pada data itu dalam satu
unit. Konsep ini juga sering digunakan untuk menyembunyikan representasi
internal atau keadaan suatu objek dari luar.
- Inheritance
Inheritance adalah salah satu konsep inti bahasa pemrograman Object-
Oriented. Ini adalah mekanisme di mana kalian bisa mendapatkan kelas dari
kelas lain untuk hierarki kelas yang berbagi sekumpulan atribut dan metode. Ini
menjelaskan bagaimana hierarki kelas mengembangkan keterbacaan kode dan
dukungan untuk penggunaan kembali fungsionalitas.
- Data Abstraction
Data abstraction adalah reduksi badan data tertentu menjadi representasi
keseluruhan yang disederhanakan. Data abstractio biasanya merupakan langkah
pertama dalam desain database.
- Polymorphism
Polymorphism adalah konsep Object-Oriented Programming yang mengacu
pada kemampuan variabel, fungsi, atau objek untuk mengambil berbagai
bentuk. Bahasa pemrograman yang telah mengimplementasikan paradigma
Object-Oriented adalah: Ruby, Java, C ++, Python, PHP, Simula (bahasa OOP
pertama).

C. Memecahkan masalah Logika Pemrograman Dari Kasus Sederhana


Misalkan pada suatu kasus, kita mencoba mengamati dan menganalisa
bagaimana cara memindah isi gelas kopi ke gelas teh dan sebaliknya dengan
menggunakan logika.

Gambar 1. Pada gambar di atas, anda diminta untuk menyelesaikan permasalahan


bagaimana menukar “isi” gelas. Anda dibebaskan menggunakan cara-cara apapun,
yang penting isi gelas tertukar.
- Cara menyelesaikannya yaitu:
1. Pertama-tama mari kita siapkan gelas X (gelas kosong)
2. Kemudian tuang gelas berisi teh kedalam gelas X
3. Tuang gelas berisi kopi kedalam gelas teh yang telah kosong
4. Kemudian tuang gelas X yang berisi teh tadi ke dalam gelas kopi yang
telah kosong
5. Isi gelas kopi dan teh telah tertukar
6. Selesai.

- Contoh Visualisasinya yaitu:

Dengan menggunakan logika untuk kasus sederhana pemindahan isi


gelas teh dan kopi pada gelas yang berbeda bisa terjadi dengan adanya peran
gelas x (gelas kosong). Peran gelas x disini berfungsi sebagai wadah
penyelesaian masalah dengan menggunakan logika pada kasus sederhana
seperti di atas.
BAB III

PENUTUP

A. Kesimpulan

Berdasarkan contoh kasus sederhana logic programming dengan menggunakan


algoritma di atas, dapat disimpulkan bahwa peran logika dalam menyelesaikan suatu
permasalahan sangat penting, seperti yang dijelaskan sebelumnya, 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). Dengan
menggunakan peran “Gelas X/Gelas Kosong” pada penyelesaian contoh kasus
sederhana di atas, saya bisa menuangkan serta memindahkan isi gelas teh ke dalam
gelas kopi, dan isi gelas kopi ke dalam gelas teh dengan menggunakan peran “Gelas X”
tadi. Dari sini bisa disimpulkan bahwa penggunaan logika dalam menyelesaikan kasus
sederhana cukup penting dalam programming. Kemampuan mengatasi masalah
(problem solving) ilmu logic programming ini sangat berguna dalam kasus sehari-hari
maupun dalam ilmu komputer.
DAFTAR PUSTAKA

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).

Anda mungkin juga menyukai