Tuesday, January 24, 2012

Saya, logika dan komputer

Saya, Logika dan Komputer

Armahedi Mahzar (c) 2011

Saya telah bercerita tentang logika dan masa sekolah saya pada note yang lalu,
kini waktunya saya bercerita tentang pemikiran saya selama masa kerja saya.
Masa kerja saya hampir tiga dasawarsa, karena saya pensiun dini. Dasawarsa
pertama, tahun 70-an, saya berkutat dengan komputer mulai dengan komputer
raksasa mainframe milik ITB pusat dengan bahasa pemgraman Fortran hingga
komputer mini dengan bahasa pemrograman Pascal.

Melalui kedua bahasa pemrograman itulah saya baru mengenal operasi logika
JIKA yaitu sebuah fungsi logika berharga ganda, tergantung pada nilai logis dari
argumennya yang merupakan ekspresi logis menggunakan operasi-operasi
logis TIDAK, DAN dan ATAU. Untuk bisa memahami kerja operasi-operasi logis
ini saya terpaksa membaca buku-buku komputer yang berujung dengan pertemuan
saya dengan aljabar logika yang ditemukan oleh George Boole di abad XIX.

Membaca sejarah aljabar Boole, saya menemukan bahwa sang penemu menggunakan
simbol-simbol aritmetik untuk operasi-operasi logis. Tanda + untuk ATAU, x untuk DAN
dan 1- untuk TIDAK. Jadi sebenarnya aljabar logika bekerja berdasar sebuah aritmetika
logika yang hanya mempunyai dua nilai konstan yaitu BENAR yang disimbolkan dengan
1 dan SALAH dengan 0. Aritmetika logis agak aneh, karena 1+1=1. Kalau kita menerima
fakta aritmetika logis, ini maka semua keanehan aljabar Boole yang lain bisa diterima.

Tahun 80-an adalah era komputer pribadi. Pada era ini saya penasaran, karena katanya
otak manusia adalah komputer biologis. Namun komputer yang saya pakai hanya bisa
menghitung, tidak bisa menalar. Tapi para ahli komputer mengatakan bahwa komputer
juga bisa menalar, tapi harus menggunakan bahasa pemrograman non-numerik. Lalu
saya mempelajari dua bahasa pemrograman AI: LISP dan Prolog. Bahasa LISP bersifat
fungsional dan sekuensial, sedangkan bahasa Prolog bersifat predikatif dan paralel.

Saya pun mempelajari kedua bahasa pemrograman Artificial Intelligence. Bahkan
saya pun berhasil membuat interpreter LISP sederhana dalam bahasa
pemograman imperatif sekuensial numerik yaitu Pascal. Lalu, saya juga bisa membuat
interpreter Prolog sederhana dengan bahasa pemrograman LISP. Melihat fakta ini saya
menyimpulkan bahwa berpikir paralel bisa disimulasi dengan oleh komputasi
sekuensial. Tapi sebaliknya, komputasi sekuensial bisa dikerjakan oleh komputer paralel.
Jadi komputasi sekuensial dan komputasi paralel adalah suatu hal yang komplementer.

Karena mempelajari kedua bahasa pemrograman itu, saya pun tertarik mempelajari
logika simbolik yang merupakan pengembangan dari aljabar simbolik Boole. Logika
simbolik bisa merumuskan logika tanpa tanda =. Pernyataan a=b dapat direduksi
menjadi pernyataan (JIKA a MAKA b) DAN (JIKA b MAKA a). Berhitung kita menggunakan
= dan operasi-operasi +, x dan -, menalar menggunakan JIKA atau --> dan operasi -operasi & dan ~ yang artinya DAN dan TIDAK.

Itulah status pengetahuan saya tentang logika ketika pensiun dari pegawai negeri.
Logika manusia yang merupakan komplemen dari intuisi dalam pandangan Tao,
ternyata dapat disimulasi oleh komputasi mesin. Ketika belajar komputer itu lah
saya bisa belajar logika. Namun, sayang saya tak bisa menghubungkan pengetahuan
logika saya dengan ilmu logika kualitatif yang ditemukan oleh Aristoteles . Silogisme,
yang merupakan hukum dasar penalaran, tak bisa saya hubungkan dengan aljabar
logika simbolik. Itulah sebabnya saya berniat menemukan hubungan itu setelah
pensiun dengan menggunakan internet.

No comments :