Penyederhanaan Fungsi Boolean Dengan Menggunakan Metode Quine-Mccluskey

(1)

(2)

PENYEDERHANAAN FUNGSI BOOLEAN

DENGAN

METODE QUINE-MCCLUSKEY

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika

Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia

RINALDI RISMANSYAH

10107514

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

BANDUNG


(3)

(4)

(5)

i

PENYEDERHANAAN FUNGSI BOOLEAN DENGAN

MENGGUNAKAN METODE QUINE-MCCLUSKEY

Oleh

Rinaldi Rismansyah 10107514

Berbicara tentang fungsi aljabar boolean, kerap kali ditemukan kerumitan dalam perepresentasiannya. Terutama ketika berbicara tentang gerbang logika yang kemudian berkembang ke topik sistem digital. Maka penyederhanaan fungsi boolean dinilai sebagai suatu keniscayaan.

Dalam proses penyederhanaan fungsi boolean terdapat tiga metode penyelesaian. Diantaranya adalah metode Aljabar, metode Peta Karnaugh, dan metode Quine-McCluskey (metode tabulasi). Ketiganya memiliki kekurangan dan kelebihan masing-masing dalam proses penyederhanaannya.

Beberapa literatur menyatakan bahwa metode Quine-McCluskey (metode tabulasi) merupakan metode yang dianggap paling baik dalam menyederhanakan fungsi boolean. Hal ini dikarenakan metode tabulasi ini menggunakan tahapan-tahapan penyederhanaan yang jelas dan baku sehingga menghasilkan fungsi boolean yang paling sederhana.


(6)

ii

BOOLEAN FUNCTION SIMPLIFICATION USING

QUINE-MCCLUSKEY METHOD

By

Rinaldi Rismansyah 10107514

Talking about boolean algebra function, often found complexation in it’s representation. Especially when the function changed into the logic gate which develops into digital system topic. So the boolean function simplification is scored as the crucial must.

In the process of boolean function simplication, there are three methods of completion. They are Algebra, Karnaugh Map, and Quine-McCluskey method (tabulation method). All of them have their own weakneses and strengthness on the process of those simplification.

A few literature has informed that Quine-McCluskey (tabulation method) is the best considered method at simplify boolean function. It may be caused the tabulation method using steps clearly and distinctly, so it produce the simplest boolean function.


(7)

iii

KATA PENGANTAR

Assalammu‟alaikum Wr.Wb.

Lantunan hamdallah terucap seraya terselesaikannya skripsi yang

berjudul “PENYEDERHANAAN FUNGSI BOOLEAN DENGAN METODE

QUINE-MCCLUSKEY”. Tak hanya usaha dan kerja keras penulis yang membuat skripsi ini terselesaikan sebagaimana mestinya, tetapi pada hakikatnya kehendak Tuhan Yang Maha Esa lah yang membuat penulis bias menyelesaikan skripsi ini.

Skripsi ini dibuat sebagai salah satu syarat kelulusan pada program Strata-1 Fakultas Teknik dan Ilmu Komputer, Program Studi Teknik Informatika di Universitas Komputer Indonesia. Penulis menyadari bahwa skripsi ini masih jaduh dari kata sempurna. Namun berkat bantuan dan bimbingan dari beberapa pihak akhirnya skripsi ini dapat diselesaikan tepat pada waktunya.

Dengan penuh rasa syukur, ucapan terima kasih yang mendalam serta penghargaan yang tidak terhingga penulis sampaikan kepada:

1. Allah SWT, yang telah memberikan rahmat dan hidayah-Nya kepada penulis sehingga dapat menyelesaikan skripsi ini dengan baik.

2. Nabi Muhammad SAW yang telah menyampaikan wahyu Allah.

3. Yth. Bapak Dr. Ir. Eddy Suryanto Soegoto, M.Sc., selaku Rektor Universitas Komputer Indonesia.

4. Yth. Bapak Prof. Dr. H. Denny Kurniadie, Ir., M.Sc., selaku Dekan Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia.


(8)

iv

5. Yth. Ibu Mira Kania Sabariah, S.T., M.T., selaku Ketua Jurusan Teknik Informatika Universitas Komputer Indonesia.

6. Yth. Bapak Taryana Suryana, S.T., M.Kom., selaku dosen wali kelas IF-11 angkatan 2007.

7. Yth. Bapak Harsa Wara Prabawa, S.Si., M.Pd., selaku pembimbing sekaligus selaku penguji 2, yang telah memberikan pengarahan dan masukan-masukan yang berharga kepada penulis dalam mengerjakan skripsi ini.

8. Yth. Ibu Nelly Indriani W, S.Si., M.T., selaku penguji 1 yang telah memberikan banyak masukan yang berarti bagi penulis.

9. Yth. Ibu Inne Novitasari, S.Si., M.Si., selaku penguji 3 yang telah memberikan banyak masukan yang berarti bagi penulis.

10. Seluruh dosen pengajar dan staff tata usaha.

Selain itu tidak lupa juga penulis ucapkan terima kasih yang setulus-tulusnya dan penghargaan yang setinggi-tingginya kepada:

1. Kedua orang tua, Bapak Esep Hermansyah, dan Ibu Ida Saridaningsih. Yang selalu senantiasa mendoakan penulis sepanjang waktu, dan memberikan semangat yang tidak ada hentinya serta memberikan dorongan baik moril maupun materil.

2. Sanak saudaraku, Rahmawati Wulansari, Tendi Yunindar, Selvi Yuniar, Mang Endan, Bi Ami, Mamih, dan sikecil tercinta Dinanti Awalia Rahmadhani yang senantiasa memberikan dukungan spirit.


(9)

v

3. Seorang wanita yang sangat istimewa bagi penulis, yang senantiasa memberikan dukungan moril dalam penyelesaian tugas akhir ini. Terima kasih Nureva. You are my everything.

4. Teman-temanku Lukman Nurhakim, Nova Kusniar, Adnan Mursyidin, Egi M Mugni, Rio Artha, Irfan Kushardiansyah, Zaid Arham, Andrianto, Mahardika, Adi, Irwan Setiawan, Rahmi, Sarah, dan semua anak kelas IF-11 angkatan 2007, terimakasih untuk segala kebersemaan selama ini.

5. Teman-teman pumper Fitri Novilia Ladimera, Resha Puji Lestari, Ade, Panca, Evi, Sandi, Dewi, Leo, dan semua pumper ciwalk, terimakasih atas

kebersaman serta do‟a nya.

6. Semua pihak yang telah membantu dalam menyelesaikan skripsi ini yang tidak bisa disebutkan satu persatu oleh penulis.

Akhir kata penulis hanya berharap semoga skripsi ini dapat bermanfaat bagi penulis dan para pembaca umumnya.

Wassalamu‟alaikum wr. Wb

Penulis


(10)

vi

DAFTAR ISI

LEMBAR JUDUL

LEMBAR PENGESAHAN

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... vi

DAFTAR GAMBAR ... x

DAFTAR TABEL ... xii

DAFTAR SIMBOL ... xiii

DAFTAR LAMPIRAN ... xiv

BAB I PENDAHULUAN... 1

1.1 Latar Belakang ... 1

1.2 Identifikasi Masalah ... 3

1.3 Tujuan dan Manfaat ... 3

1.4 Pembatasan Masalah ... 4

1.5 Langkah Penelitian ... 5

1.6 Sistematika Penulisan ... 7

BAB II LANDASAN TEORI ... 9


(11)

vii

2.1 Definisi Aljabar Boolean ... 9

2.2 Aljabar Boolean Dua-Nilai ... 12

2.3 Ekspresi Boolean ... 14

2.4 Prinsip Dualitas ... 15

2.5 Hukum – Hukum Aljabar Boolean ... 16

2.6 Fungsi Boolean ... 18

2.7 Komplemen Fungsi Boolean ... 20

2.8 Bentuk Kanonik ... 22

2.9 Konversi Antar Bentu Kanonik ... 25

2.10 Bentuk Baku ... 26

2.11 Penyederhanaan Fungsi Boolean ... 27

2.11.1 Penyederhanaan Fungsi Boolean Secara Aljabar ... 28

2.11.2 Metode Peta Karnaugh ... 28

2.11.2.1 Peta Karnaugh Dengan Dua Peubah ... 29

2.11.2.2 Peta Karnaugh Dengan Tiga Peubah ... 30

2.11.2.3 Peta Karnaugh Dengan Empat Peubah ... 31

2.11.3 Metode Quine-McCluskey ... 32

2.12 Gerbang-Gerbang Sistem Digital Atau Gerbang Logika ... 39

2.13 Logic Friday sebagai tools generating Gerbang Logika ... 42

BAB III ANALISIS DAN PERANCANGAN SISTEM ... 43

3.1 Deskripsi Masalah ... 43


(12)

viii

3.3 Contoh Kasus ... 49

3.4 Perancangan Sistem ... 58

3.5 Perancangan Antarmuka ... 62

BAB IV IMPLEMENTASI DAN PENGUJIAN ... 64

4.1 Implementasi Algoritma ... 64

4.1.1 Algoritma Data Input ... 64

4.1.2 Algoritma Penghasil Tahapan – Tahapan Penyederhanaan Fungsi Boolean dengan metode Quine-McCluskey ... 66

4.1.3 Algoritma Fungsi Pendukung ... 75

4.2 Implementasi Sistem ... 79

4.2.1 Spesifikasi Perangkat Keras ... 79

4.2.2 Spesifikasi Perangkat Lunak ... 79

4.2.3 Analisis Pengguna ... 79

4.3 Implementasi Perangkat Lunak ... 80

4.3.1 Contoh Kasus Implementasi Perangkat Lunak ... 80

4.3.2 Error Handler Dalam Pengujian Program ... 92

4.3.3 Pengujian Alpha ... 93

4.3.3.1 Skenario Pengujian Perangkat Lunak ... 93

4.3.3.2 Bagian Pengujian Perangkat Lunak ... 94

4.3.4 Pengujian Beta ... 104

4.3.4.1 Kuesioner ... 104


(13)

ix

4.3.5 Kelemahan Metode Quine-McCluskey ... 111

BAB V KESIMPULAN DAN SARAN ... 113

5.1 Kesimpulan ... 113

5.2 Saran ... 114

DAFTAR PUSTAKA ... 115 LAMPIRAN


(14)

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Sebelum ada proses penyederhanaan fungsi, beberapa kalangan seperti mahasiswa, dosen, bahkan ilmuwan yang bergerak dibidang matematik dan informatika merasa kesulitan ketika berbicara tentang fungsi aljabar Boolean, representasi fungsi terhadap gerbang logika, juga sistem digital. Dampaknya bisa berupa ketidaksesuaian hasil implementasi kedalam rangkaian logikanya, kesalahan penulisan logika, bahkan kesulitan representasi fungsi terhadap rangkaian elektronika pun semakin besar.

FungsiBoolean seringkali mengandung operasi – operasi yang tidak perlu, literal atau suku – suku yang berlebihan. Mempertahankan operasi – operasi tersebut, mengakibatkan implementasi fungsi boolean terhadap gerbang logikanya menjadi lebih rumit. Dampak paling real dari kerumitan ini adalah rentannya terjadi kesalahan implementasi rangkaian logika dan akan memakan waktu lama dalam pemrosesan jika dilakukan proses komputerisasi. Dengan demikian dapat dikatakan bahwa, penyederhanaan fungsi boolean menjadi suatu keniscayaan.

Menyederhanakan fungsi Boolean artinya mencari bentuk fungsi lain yang ekuivalen tetapi dengan jumlah literal atau operasi yang lebih sedikit. Penyederhanaan fungsi Boolean disebut juga minimisasi fungsi. Dipandang dari segi aplikasi aljabar Boolean, fungsi Boolean yang lebih sederhana berarti rangkaian logikanya juga lebih sederhana (menggunakan jumlah gerbang logika lebih sedikit).


(15)

Terdapat beberapa metode yang dapat digunakan untuk menyederhanakan fungsi Boolean, diantaranya adalah Aljabar Boolean, Peta Karnaugh, dan Quine-McCluskey. Penyederhanaan fungsi Boolean dengan memanfaatkan Aljabar Boolean belum menjamin bahwa hasil yang diperoleh sudah merupakan fungsi yang paling sederhana. Hal ini diduga karena Aljabar Boolean lebih mengandalkan proses try & error dalam penentuan solusi akhir. Sementara prosedur meminimumkan itu agak sulit dirumuskan karena ketidakadaan aturan khusus yang jelas untuk menentukan langkah manipulasinya.

Peta Karnaugh sendiri memberikan suatu prosedur yang mudah dan langsung dalam proses penyederhanaan fungsi boolean. Secara visual penyederhanaan fungsi dengan menggukan Peta Karnaugh biasanya diwujudkan dalam bentuk tabel kebenaran yang merupakan perluasan dari diagram venn. Namun dalam Peta Karnaugh fungsi boolean yang memiliki variabel lebih dari lima buah akan sulit untuk disederhanakan. Hal ini diakibatkan oleh semakin banyaknya variabel maka ukuran peta semakin besar. Selain itu, metode ini pun lebih sulit untuk diprogram dengan komputer karena diperlukan pengamatan visual untuk mengidentifikasi mintermminterm yang akan dikelompokkan.

Metode yang ketiga adalah Quine-McCluskey atau lebih sering dikenal dengan metode Tabulasi. Metode ini merupakan prosedur langkah demi langkah yang menjamin untuk mendapatkan pernyataan fungsi bentuk baku yang sederhana. Cara tersebut dapat diterapkan untuk persoalan dengan lebih dari lima variable dan dapat dikerjakan dengan mesin. Bagi manusia cara tersebut cukup menjemukan dan manusia cenderung utuk membuat kesalahan karena prosesnya


(16)

yang rutin dan cukup membosankan. Dengan kata lain metode Quine-McCluskey ini lebih efektif dikerjakan apabila menggukan bantuan mesin komputer.

Berdasarkan uraian di atas, penulis bermaksud merancang dan mengembangkan suatu perangkat lunak guna membantu proses penyederhanaan fungsi Boolean berbantuan metode Quine-McCluskey.

1.2 Identifikasi Masalah

Permasalahan yang dapat diidentifikasi dalam penelitian ini adalah belum tersedianya perangkat lunak yang memanfaatkan metode Quine-McKluskey yang dapat menyederhanakan fungsi logika dengan menyediakan rangkaian gerbang logika dari fungsi yang telah disederhanakan. Yang secara spesifik dirumuskan dalam pertanyaan sebagai berikut:

1. Bagaimana perancangan dan pengembangan perangkat lunak penyederhanaan fungsi boolean?

2. Bagaimana efektifitas penggunaan metode Quine-McKluskey dalam penyederhanaan fungsi boolean?

3. Seperti apakah uraian langkah-langkah penyederhanaan fungsi Boolean tersebut?

1.3 Tujuan dan Manfaat

Berdasarkan permasalahan yang di analisis, tujuan penyusunan tugas akhir ini adalah untuk menghasilkan suatu perangkat lunak yang dapat membantu penyederhanaan fungsi Boolean dengan menggunakan metode Quine-McCluskey.


(17)

Manfaat dari penyusunan tugas akhir ini adalah:

1. Untuk menganalisa metode Quine-McKluskey dalam penyederhanaan fungsi Boolean dengan banyak variabel.

2. Untuk membantu memahami prosedur penyederhanaan fungsi Boolean dengan metode Quine-McCluskey.

3. Untuk meninimalisir kesalahan yang terjadi dalam pengimplementasian fungsi boolean terhadap gerbang logika.

4. Untuk mengurangi kekeliruan proses langkah tabulasi yang disebabkan oleh human eror.

1.4 Pembatasan Masalah

Karena keterbatasan waktu dan pengetahuan penulis, maka ruang lingkup permasalahan dalam merancang perangkat lunak ini antara lain :

1. Input berupa nomor-nomor term dalam bentuk SOP (Sum Of Product) atau POS (Product Of Sum).

2. Jumlah peubah dibatasi maksimal 10 buah atau jumlah suku pada ekspresi Boolean maksimal = 210 buah.

3. Perangkat lunak menyajikan tahapan – tahapan minimisasi terhadap input fungsi Boolean.

4. Output akhir perangkat lunak berupa hasil minimisasi fungsi Boolean dalam bentuk SOP (Sum Of Product) atau POS (Product Of Sum) beserta rangkaian logika dari fungsi sederhana.


(18)

1.5 Langkah Penelitian

Langkah – langkah penelitian ini antara lain :

a. Melakukan Studi Literatur mengenai semua materi yang mendukung dalam pembuatan tugas akhir ini, dari mulai teori tentang penyederhanaan fungsi Boolean, pengimplementasian fungsi logika ke dalam rangkaian logika, sampai cara kerja sistem pembangun perangkat lunak,

b. Membuat sketsa cara kerja penyederhanaan fungsi Boolean dengan berbagai cara termasuk pengimplementasian kedalam rangkaian logika. c. Membuat desain perangkat lunak.

d. Membangun perangkat lunak yang telah didesain sebelumnya. e. Melakukan pengujian terhadap perangkat lunak.

f. Evaluasi dari kinerja perangkat lunak.

Metode pembangunan perangkat lunak :

Tahap pembangunan perangkat lunak dalam pembutan perangkat lunak ini menggunakan waterfall, berikut dapat dilihat pada Gambar 1.1.


(19)

Requirements definition

System and software design

Implementation and unit testing

Integration and system testing

Operation and maintenance

Gambar 1.1 Metode Waterfall [6] 1. Requirements analysis and definition

Mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap.

2. System and software design

Desain dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap. 3. Implementation and unit testing

Desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit.

4. Integration and system testing

Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).


(20)

5. Operation and maintenance

Tahapan untuk mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.

1.6 Sistematika Penulisan

Sistematika penulisan proposal penelitian ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB I PENDAHULUAN

Menguraikan tentang latar belakang permasalahan, mencoba merumuskan inti permasalahan yang dihadapi, menentukan tujuan dan kegunaan penelitian, yang kemudian diikuti dengan pembatasan masalah, asumsi, serta sistematika penulisan.

BAB II. LANDASAN TEORI

Membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik penelitian yang dilakukan dan hal-hal yang berguna dalam proses analisis permasalahan serta tinjauan terhadap penelitian-penelitian serupa yang telah pernah dilakukan sebelumnya termasuk sintesisnya.

BAB III. ANALISIS DAN PERANCANGAN SISTEM

Menganalisis masalah dari model penelitian untuk memperlihatkan keterkaitan antar variabel yang diteliti serta model matematis untuk analisisnya.


(21)

BAB IV. IMPLEMENTASI DAN PENGUJIAN

Merupakan tahapan yang dilakukan dalam penelitian secara garis besar sejak dari tahap persiapan sampai penarikan kesimpulan, metode dan kaidah yang diterapkan dalam penelitian. Termasuk menentukan variabel penelitian, identifikasi data yang diperlukan dan cara pengumpulannya, penentuan sampel penelitian dan teknik pengambilannya, serta metode/teknik analisis yang akan dipergunakan dan perangkat lunak yang akan dibangun jika ada.

BAB V. KESIMPULAN DAN SARAN

Berisi kesimpulan dan saran yang sudah diperoleh dari hasil penulisan tugas akhir.


(22)

9

BAB II

LANDASAN TEORI

2.1 Definisi Aljabar Boolean

Aljabar Boolean dapat didefinisikan secara abstrak dalam beberapa cara. Cara yang paling umum adalah dengan menspesifikasikan unsur – unsur pembentuknya dan operasi – operasi yang menyertainya.

(Definisi 2.1 – Menurut Lipschutz, Seymour & Marc Lars Lipson dalam bukunya „2000 Solved Problems in Discrete Mathematics‟, McGraw-Hill, 1992) Misalkan B adalah himpunan yang didefinisikan pada dua operator biner, ( + ) dan ., dan sebuah operator uner,( ' ). Misalkan 0 dan 1 adalah dua elemen yang berbeda dari B. Maka, tupel

<B, +, ., ', 0, 1>

disebut aljabar Boolean jika untuk setiap a, b, c Є B berlaku aksioma (sering dinamakan juga Postulat Huntington) berikut :

1. Identitas

(i) a + 0 = a (ii) a . 1 = a 2. Komutatif

(i) a + b = b + a (ii) a . b = b . a 3. Distributif

(i) a . (b + c) = (a . b) + (a . c) (ii) a + (b . c) = (a + b) . (a + c)


(23)

4. Komplemen

Untuk setiap aB terdapat elemen unik a'B sehingga (i) a + a' = 1

(ii) a . a' = 0

Elemen 0 dan 1 adalah dua elemen unik yang berada di dalam B. 0 disebut elemen terkecil dan 1 disebut elemen terbesar. Kedua elemen unik dapat berbeda– beda pada beberapa aljabar Boolean (misalnya Ø dan U pada himpunan, False

dan True pada proposisi), namun secara umum kita tetap menggunakan 0 dan 1 sebagai dua elemen unik yang berbeda. Elemen 0 disebut elemen zero, sedangkan elemen 1 disebut elemen unit. Operator (+) disebut operator penjumlahan, (.) disebut operator perkalian, dan ( ' ) disebut operator komplemen.

Terdapat perbedaan antara aljabar Boolean dengan aljabar biasa untuk aritmetika bilangan riil :

1. Hukum distributif yang pertama, a . (b + c) = (a . b) + (a . c) sudah dikenal di dalam aljabar biasa, tetapi hukum distributif yang kedua, a + (b . c) = (a + b) . (a + c), benar untuk aljabar Boolean, tetapi tidak benar untuk aljabar biasa.

2. Aljabar Boolean tidak memiliki kebalikan perkalian (multiplicative inverse) dan kebalikan penjumlahan; karena itu, tidak ada operasi pembagian dan pengurangan di dalam aljabar Boolean.

3. Aksioma nomor 4 pada definisi 2.1 mendefinisikan operator yang dinamakan komplemen yang tidak tersedia pada aljabar biasa.


(24)

4. Aljabar biasa memperlakukan himpunan bilangan riil dengan elemen yang tidak berhingga banyaknya. Sedangkan aljabar Boolean memperlakukan himpunan elemen B yang sampai sekarang belum didefinisikan, tetapi pada aljabar Boolean dua-nilai, B didefinisikan sebagai himpunan dengan hanya dua nilai, 0 dan 1.

Hal lain yang penting adalah membedakan elemen himpunan dan peubah (variable) pada sistem aljabar. Sebagai contoh, pada aljabar biasa, elemen himpunan bilangan riil adalah angka, sedangkan peubahnya seperti a, b, c dan sebagainya. Dengan cara yang sama pada aljabar Boolean, orang mendefinisikan elemen – elemen himpunan dan peubah seperti x, y, z sebagai simbol – simbol yang merepresentasikan elemen.

Berhubung elemen – elemen B tidak didefinisikan nilainya (kita bebas menentukan anggota – anggota B), maka untuk mempunyai sebuah aljabar Boolean, orang harus memperlihatkan :

1. elemen – elemen himpuan B,

2. kaidah / aturan operasi untuk dua operator biner dan operator uner,

3. himpunan B, bersama – sama dengan dua operator tersebut, memenuhi keempat aksioma.

Jika ketiga persyaratan dipenuhi, maka aljabar yang didefinisikan dapat dikatakan sebagai aljabar Boolean.


(25)

2.2 Aljabar Boolean Dua-Nilai

Aljabar Boolean yang terkenal dan memiliki terapan yang luas adalah aljabar Boolean dua-nilai (two-valued Boolean algebra). Aljabar Boolean dua-nilai didefinisikan pada sebuah himpunan B dengan dua buah elemen 0 dan 1 (sering dinamakan bit – singkatan dari binary digit), yaitu B = {0, 1}, operator biner, (+) dan ( . ) operator uner, ( ' ). [3] Kaidah untuk operator biner dan operator uner ditunjukkan pada Tabel 2.1, 2.2, dan 2.3 di bawah ini.

Tabel 2.1 Tabel kaidah operasi .

a b a . b

0 0 0

0 1 0

1 0 0

1 1 1

Tabel 2.2 Tabel kaidah operasi +

a b a + b

0 0 0

0 1 1

1 0 1

1 1 1

Tabel 2.3 Tabel kaidah operasi '

A a'

0 1


(26)

Harus diperhatikan bahwa keempat aksioma di dalam definisi 2.1 terpenuhi pada himpunan B = {0, 1} dengan dua operator biner dan satu operator uner yang didefinisikan di atas.

1. Identitas : jelas berlaku karena tabel dapat dilihat bahwa : (i) 0 + 1 = 1 + 0 = 1

(ii) 1 . 0 = 0 . 1 = 0

yang memenuhi elemen identitas 0 dan 1 seperti yang didefinisikan pada postulat Huntington.

2. Komutatif : jelas berlaku dengan melihat simetri tabel operator biner. 3. Distributif :

(i) a . (b + c) = (a . b) + (a . c) dapat ditunjukkan benar dari tabel operator biner di atas, dengan membentuk tabel kebenaran untuk semua nilai yang mungkin dari a, b, dan c (Tabel 2.4). Oleh karena nilai – nilai pada kolom a . (b + c) sama dengan nilai – nilai pada kolom (a . b) + (a . c), maka kesamaan a . (b + c) = (a . b) + (a . c) adalah benar.

(ii) Hukum distributif a + (b . c) = (a + b) . (a + c) dapat ditunjukkan benar dengan membuat tabel kebenaran dengan cara yang sama seperti (i).

Tabel 2.4 Tabel kebenaran a . (b + c) = (a . b) + (a . c)

a b c b + c a . (b + c) a . b a . c (a . b) + (a . c)

0 0 0 0 0 0 0 0

0 0 1 1 0 0 0 0


(27)

0 1 1 1 0 0 0 0

1 0 0 0 0 0 0 0

1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1

1 1 1 1 1 1 1 1

4. Komplemen : jelas berlaku karena Tabel 2.4 memperlihatkan bahwa : (i) a + a' = 1, karena 0 + 0' = 0 + 1 = 1 dan 1 + 1' = 1 + 0 = 1 (ii) a . a = 0, karena 0 . 0' = 0 . 1 dan 1 . 1' = 1 . 0 = 0

Karena keempat aksioma terpenuhi, maka terbukti bahwa B = {0 , 1} bersama – sama dengan operator biner (+) dan ( . ), operator komplemen ( ' ) merupakan aljabar Boolean. Untuk selanjutnya, jika disebut aljabar Boolean, maka aljabar Boolean yang dimaksudkan di sini adalah aljabar Boolean dua-nilai.

2.3 Ekspresi Boolean

Pada aljabar Boolean dua-nilai, B = {0, 1}. Kedua elemen B ini seringkali disebut elemen biner atau bit (singkatan binary bit). Peubah (variable) x disebut peubah Boolean atau peubah biner jika nilainya hanya dari B. Ekspresi Boolean dibentuk dari elemen – elemen B dan / atau peubah – peubah yang dapat dikombinasikan satu sama lain dengan operator ( + ), ( . ), dan ( ' ). Secara formal, ekspresi Boolean dapat didefinisikan secara rekursif sebagai berikut.

(Definisi 2.2 – Liu, C. L, Element of Doscrete Mathematics, 4th, Pentice Hall,1997) Misalkan (B, +, ., ', 0, 1) adalah sebuah aljabar Boolean. Suatu ekspresi Boolean dalam (B, +, ., ') adalah :

(i) Setiap elemen di dalam B, (ii) setiap peubah,

(iii) jika e1 dan e2 adalah ekspresi Boolean, maka e1 + e2, e1 . e2, e1' adalah ekspresi Boolean.


(28)

Jadi menurut definisi 2.2, setiap ekspresi berikut, 0

1 a b c a + b a . b a' . (b + c)

a . b' + a . b . c + b', dan sebagainya

adalah ekspresi Boolean. Ekspresi Boolean yang mengandung n peubah dinamakan ekspresi Boolean bagi n peubah.

Dalam penulisan ekspresi Boolean selanjutnya, dapat digunakan perjanjian berikut : selai tanda kurung „( )‟, operator ( ' ) mempunyai prioritas pengerjaan lebih tinggi daripada operator ( + ) dan ( . ) jadi sebagai contoh,

a + b . c berarti a + (b . c), bukan (a + b) . c a . b' berarti a . (b'), bukan (a . b)'.

2.4 Prinsip Dualitas

Di dalam aljabar Boolean, banyak ditemukan kesamaan (identity) yang dapat diperoleh dari kesamaan lainnya, misalnya pada dua aksioma distributif yang sudah disebutkan pada definisi 2.1 :

(i) a . (b + c) = (a . b) + (a . c) (ii) a + (b . c) = (a + b) . (a + c)

Aksioma yang kedua diperoleh dari aksioma pertama dengan cara mengganti ( . ) dengan ( + ) dan mengganti ( + ) dengan ( . ). Prinsip ini dikenal


(29)

dengan prinsip dualitas, prinsip yang juga ditemukan alam teori himpunan maupun logika. Definisi prinsip dualitas di dalam aljabar Boolean adalah sebagai berikut. [3]

(Definisi 2.3) Misalkan S adalah kesamaan (identity) di dalam aljabar Boolean yang melibatkan operator ( + ), ( . ), dan ( ' ), maka jika pernyataan S* diperoleh dari S dengan cara mengganti

( . ) dengan ( + ) ( + ) dengan ( . ) ( 0 ) dengan ( 1 ) ( 1 ) dengan ( 0 )

dan membiarkan operator komplemen tetap apa adanya, maka kesamaan S* juga benar. S* disebut sebagai dual dari S.

2.5 Hukum – Hukum Aljabar Boolean

Ada banyak hukum di dalam aljabar Boolean. Beberapa literatur bervariasi dalam mengungkapkan jumlah hukum pada aljabar Boolean, tetapi hukum – hukum yang paling penting ditampilkan pada tabel berikut. [3]

Tabel 2.5 Tabel hukum – hukum aljabar Boolean 1. Hukum identitas :

(i) a + 0 = a (ii) a . 1 = a

2. Hukum idempoten : (i) a + a = a (ii) a . a = a 3. Hukum komplemen :

(i) a + a' = 1 (ii) a . a' = 0

4. Hukum dominansi : (i) a . 0 = 0 (ii) a + 1 = 1 5. Hukum involusi :

(i) (a')' = a

6. Hukum penyerapan : (i) a + (a . b) = a (ii) a . (a + b) = a 7. Hukum komulatif :

(i) a + b = b + a (ii) a . b = b . a

8. Hukum asosiatif :

(i) a + (b + c) = (a + b) + c (ii) a . (b . c) = (a . b) . c 9. Hukum distributif : 10. Hukum De Morgan :


(30)

(i) a + (b . c) = (a + b) . (a + c) (ii) a . (b + c) = (a . b) + (a . c)

(i) (a + b)' = a'b' (ii) (a . b)' = a' + b' 11. Hukum 0/1 :

(i) 0' = 1 (ii) 1' = 0

Diperoleh hukum – hukum aljabar Boolean dari hukum – hukum aljabar dengan cara mempertukarkan

 dengan + atau  dengan +  dengan . atau  dengan . U dengan 1 atau T dengan 1 Ø dengan 0 atau F dengan 0

Perhatikanlah bahwa hukum yang ke-(ii) dari setiap hukum di atas merupakan dual dari hukum yang ke-(i). Sebagai contoh,

Hukum komutatif : a + b = b + a dualnya : a . b = b . a

Hukum asosiatif : a + (b + c) = (a + b) + c dualnya : a . (b . c) = (a . b) . c

Hukum distributif : a + (b . c) = (a + b) . (a + c) dualnya : a . (b + c) = (a . b) + (a . c)


(31)

2.6 Fungsi Boolean

(Definisi 2.4) Fungsi Boolean (disebut juga fungsi biner) adalah pemetaan dari Bn ke B melalui ekspresi Boolean, dapat dituliskan sebagai

f : BnB

yang dalam hal ini Bn adalah himpunan yang beranggotakan pasangan terurut ganda-n (ordered n-tuple) di dalam daerah asal B. [3]

Misalkan ekspresi Boolean dengan n peubah adalah E(x1, x2, ..., xn).

Menurut definisi 2.4, setiap pemberian nilai – nilai kepada peubah x1, x2, ..., xn

merupakan suatu pasangan terurut ganda-n di dalam daerah asal Bn dan nilai ekspresi tersebut adalah bayangannya di dalam daerah hasil B. Dengan kata lain, setiap ekspresi Boolean tidak lain merupakan fungsi Boolean. Misalkan sebuah fungsi Boolean adalah f(x, y, z) = xyz + x'y + y'z. Fungsi f memetakan nilai – nilai pasangan terurut ganda-3 (x, y, z) ke himpunan {0, 1}. Contoh pasangan terurut ganda-3 misalnya (1, 0, 1) yang berarti x = 1, y = 0, dan z = 1 sehingga f(1, 0, 1) = 1 . 0 . 1 + 1' . 0 + 0' . 1 = 0 + 0 + 1 = 1.

Selain secara aljabar, fungsi Boolean juga dapat dinyatakan dengan tabel kebenaran dan dengan rangkaian logika. Tabel kebenaran berisi nilai – nilai fungsi untuk semua kombinasi nilai – nilai peubahnya. Jika fungsi Boolean dinyatakan dengan tabel kebenaran, maka untuk fungsi Boolean dengan n buah peubah, kombinasi dari nilai peubah – peubahnya adalah sebanyak 2n. Ini berarti terdapat 2n baris yang berbeda di dalam tabel kebenaran tersebut. Misalkan n = 3, maka akan terdapat 23 = 8 baris tabel. Cara yang praktis membuat semua kombinasi tersebut adalah sebagai berikut :

1. Untuk peubah pertama, isi 4 baris pertama pada kolom pertama dengan sebuah 0 dan 4 baris selanjutnya dengan sebuah 1 berturut – turut.


(32)

2. Untuk peubah kedua, isi 2 baris pertama pada kolom kedua dengan 0 dan 2 baris berikutnya dengan 1, 2 baris berikutnya 0 lagi, dan 2 baris terakhir dengan 1.

3. Untuk peubah ketiga, isi kolom ketiga secara berselang – seling dengan 0 dan 1 mulai baris pertama sampai baris terakhir.

Fungsi Boolean tidak selalu unik pada representasi ekspresinya. Artinya, dua buah fungsi yang ekspresi Booleannya berbeda dapat menyatakan dua buah fungsi yang sama. Misalkan f dan g adalah ekspresi dari suatu fungsi Boolean. Fungsi f dan g dikatakan merupakan fungsi yang sama jika keduanya memiliki nilai yang sama pada tabel kebenaran untuk setiap kombinasi peubah – peubahnya. Sebagai contoh, fungsi :

f(x, y, z) = x'y'z + x'yz + xy' dan g(x, y, z) = x'z + xy'

adalah dua buah fungsi Boolean yang sama. Kesamaan ini dapat dilihat pada tabel berikut.

Tabel 2.6 Tabel kebenaran fungsi f dan g

x y z f = x'y'z + x'yz + xy' g = x'z + xy'

0 0 0 0 0

0 0 1 1 1

0 1 0 0 0

0 1 1 1 1

1 0 0 1 1

1 0 1 1 1

1 1 0 0 0


(33)

Jika sebuah fungsi Boolean tidak unik dalam representasi ekspresinya, kita masih dapat menemukan ekspresi Boolean lainnya yang menspesifikasikan fungsi yang sama dengan melakukan manipulasi aljabar terhadap ekspresi Boolean. Yang dimaksud dengan memanipulasi atau menyederhanakan fungsi Boolean adalah menggunakan hukum – hukum aljabar Boolean untuk menghasilkan bentuk yang ekivalen. Sebagai contoh,

f(x, y, z) = x'y'z + x'yz + xy'

= x'z(y' + y) + xy' (Hukum distributif) = x'z . 1 + xy' (Hukum komplemen) = x'z + xy' (Hukum identitas)

Manipulasi aljabar pada ekspresi Boolean disebut juga dengan penyederhanaan fungsi Boolean.

2.7 Komplemen Fungsi Boolean

Bila sebuah fungsi Boolean dikomplemenkan, makan akan memperoleh fungsi komplemen. Fungsi komplemen berguna ketika menyederhanakan fungsi Boolean. Fungsi komplemen dari suatu fungsi f, yaitu f ' dapat dicari dengan dua cara berikut :

1. Cara pertama : menggunakan hukum De Morgan

Hukum De Morgan untuk dua buah peubah, x1 dan x2 adalah (i) (x1 + x2)' = x1'x2'


(34)

Hukum De Morgan untuk tiga buah peubah, x1, x2 dan x3 adalah (i) (x1 + x2 + x3)' = (x1 + y') , yang dalam hal ini y = x2 + x3

= x1'y'

= x1'(x2 + x3)' = x1'x2'x3'

(ii) dan dualnya : (x1 . x2 . x3)' = x1' + x2' + x3'

Hukum De Morgan untuk n buah peubah, x1, x2, ... ,xn, adalah

(iii) (x1 + x2 + ... + xn)' = x1' x2' ... xn'

(iv) dan dualnya : (x1 . x2 . ... . xn)' = x1' + x2' + ... + xn'

2. Cara kedua : menggunakan prinsip dualitas.

Tentukan dual dari ekspresi Boolean yang merepresentasikan f, lalu komplemenkan setiap literal di dalam dual tersebut. Bentuk akhir yang diperoleh menyatakan fungsi komplemen. Sebagai contoh,

Misalkan f(x, y, z) = x(y'z' + yz), maka dual dari ekspresi Booleannya adalah

x + (y' + z') (y + z)

Komplemenkan tiap literal dari dual di atas menjadi x' + (y + z) (y' + z') = f '


(35)

2.8 Bentuk Kanonik

Ekspresi Boolean yang menspesifikasikan suatu fungsi dapat disajikan dalam dua bentuk. Pertama, sebagai penjumlahan dari hasil kali dan kedua sebagai perkalian dari hasil jumlah. Misalnya,

f(x, y, z) = x'y'z + xy'z' + xyz dan

g(x, y, z) = (x + y + z) (x + y' + z) (x + y' + z') (x' + y + z') (x' + y' + z)

adalah dua buah fungsi yang sama (dapat ditunjukkan dari tabel kebenarannya). Fungsi yang pertama, f, muncul dalam bentuk penjumlahan dari hasil kali, sedangkan fungsi yang kedua, g, muncul dalam bentuk perkalian dari hasil jumlah. Perhatikan juga bahwa setiap suku (term) di dalam ekspresi mengandung literal yang lengkap dalam peubah x, y dan z, baik peubahnya tanpa komplemen maupun dengan komplemen. Ada dua macam bentuk term, yaitu minterm (hasil kali) dan maxterm (hasil jumlah).

Ekspresi Boolean yang dinyatakan sebagai penjumlahan dari satu atau lebih minterm atau perkalian dari satu atau lebih maxterm disebut dalam bentuk kanonik. Jadi, ada dua macam bentuk kanonik:

1. Penjumlahan dari hasil kali (sum-of-product atau SOP) 2. Perkalian dari hasil jumlah (product-of-sum atau POS)

Fungsi f(x, y, z) = x'y'z + xy'z' + xyz dikatakan dalam bentuk SOP dan fungsi g(x, y, z) = (x + y + z) (x + y' + z) (x + y' + z') (x' + y + z') (x' + y' + z) dikatakan dalam bentuk POS. Nama lain untuk SOP adalah bentuk normal


(36)

disjungtif (disjunctive normal form) dan nama lain POS adalah bentuk normal konjungtif (conjunctive normal form).

Minterm dilambangkan sebagai huruf m kecil berindeks. Indeks menyatakan nilai desimal dari string biner yang merepresentasikan term. Misalnya pada term dengan 2 peubah x dan y, indeks 0 pada m0 menyatakan nilai desimal dari 00 (x = 0 dan y = 0), indeks 1 pada m1 menyatakan nilai desimal dari 01 (x = 0 dan y = 1) dan seterusnya. Jadi, untuk minterm dari 3 peubah (x, y, dan z), jika ditulis m6 maka ini berarti minterm xyz' karena 6 (desimal) = 110 (biner); di sini x = 1, y = 1 dan z = 0. Peubah x dan y dinyatakan tanpa komplemen sedangkan peubah z dinyatakan dengan komplemen karena bernilai 0, sehingga ditulis xyz'.

Maxterm dilambangkan sebagai huruf M besar berindeks. Indeks menyatakan nilai desimal dari string biner yang merepresentasikan x + y. Misalnya pada term dengan 2 peubah x dan y, indeks 0 pada M0 menyatakan nilai desimal dari 00 (x = 0 dan y = 0), indeks 1 pada M1 menyatakan nilai desimal dari 01 (x = 0 dan y = 1) dan seterusnya. Jadi, untuk maxterm dari 3 peubah (x, y, dan z), jika ditulis M6 maka ini berarti maxterm x' + y' + z karena 6 (desimal) = 110 (biner); di sini x = 1, y = 1 dan z = 0. Peubah x dan y dinyatakan dengan komplemen sedangkan peubah z dinyatakan tanpa komplemen karena bernilai 0, sehingga ditulis x' + y' + z.


(37)

Tabel 2.7 Tabel minterm dan maxterm dengan 2 peubah

Minterm Maxterm

x y Suku Lambang Suku Lambang

0 0 x'y' m0 x + y M0

0 1 x'y m1 x + y' M1

1 0 xy' m2 x' + y M2

1 1 xy m3 x' + y' M3

Tabel 2.8 Tabel minterm dan maxterm dengan 3 peubah

Minterm Maxterm

x y z Suku Lambang Suku Lambang

0 0 0 x'y'z' m0 x + y + z M0 0 0 1 x'y'z m1 x + y + z' M1 0 1 0 x'yz' m2 x + y'+ z M2 0 1 1 x'yz m3 x + y'+ z' M3 1 0 0 xy'z' m4 x' + y + z M4 1 0 1 xy'z m5 x' + y + z' M5

1 1 0 xyzˈ m6 xˈ + yˈ+ z M6

1 1 1 xyz m7 xˈ + yˈ+ zˈ M7

Untuk membentuk fungsi dalam bentuk SOP, tinjau kombinasi nilai – nilai peubah yang memberikan nilai fungsi sama dengan 1. Misalkan kombinasi nilai – nilai peubah yang memberikan nilai fungsi sama dengan 1 adalah 001, 100, dan 111, maka bentuk SOP fungsi tersebut adalah:

f(x, y, z) = x'y'z + xy'z' + xyz

atau(dengan menggunakan lambang minterm) dapat ditulis f(x, y, z) = m1 + m4 + m7 = ∑ (1, 4, 7)


(38)

Untuk membentuk fungsi dalam bentuk POS, tinjau kombinasi nilai – nilai peubah yang memberikan nilai fungsi sama dengan 0. Misalkan kombinasi nilai – nilai peubah yang memberikan nilai fungsi sama dengan 0 adalah 000, 010, 101, dan 110, maka bentuk POS fungsi tersebut adalah

f(x, y, z) = (x + y + z) (x + y' + z) (x' + y + z') (x' + y' + z) atau(dengan menggunakan lambang maxterm) dapat ditulis

f(x, y, z) = M0 + M2 + M5 + M6 = ∏ (0, 2, 5, 6)

Notasi ∑ dan ∏ berguna untuk mempersingkat penulisan ekspresi dalam bentuk SOP dan POS.

2.9 Konversi Antar Bentuk Kanonik

Fungsi Boolean dalam bentuk kanonik SOP dapat ditransformasi ke bentuk kanonik POS, demikian pula sebaliknya. Misalkan f adalah fungsi Boolean dalam bentuk SOP dengan tiga peubah :

f(x, y, z) = ∑ (1, 4, 5, 6, 7) dan f ' adalah fungsi komplemen dari f,

f '(x, y, z) = ∏ (0, 2, 3) = m0 + m2 + m3

Dengan menggunakan hukum De Morgan, kita dapat memperoleh fungsi f dalam bentuk POS :

f '(x, y, z) = (f '(x, y, z))' = (m0 + m2 + m3)' = m0' . m2' . m3'

= (x'y'z')' . (x'yz')' . (x'yz)'


(39)

= M0M2M3 = ∏ (0, 2, 3)

Jadi, f (x, y, z) = ∑ (1, 4, 5, 6, 7) = ∏ (0, 2, 3)

2.10 Bentuk Baku

Dua bentuk kanonik adalah bentuk dasar yang diperoleh dengan membaca fungsi dari tabel kebenaran. Bentuk ini umumnya sangat jarang muncul, karena setiap suku (term) di dalam bentuk kanonik harus mengandung literal lengkap, baik dalam bentuk normal (x) atau dalam bentuk komplemennya (x').

Cara lain untuk mengekspresikan fungsi Boolean adalah bentuk baku (standard). Pada bentuk ini, suku – suku yang membentuk fungsi dapat mengandung satu, dua, atau sejumlah literal. Dua tipe bentuk baku adalah bentuk baku SOP dan bentuk baku POS. Contohnya,

f(x, y, z) = y' + xy + x'yz (bentuk baku SOP) f(x, y, z) = x(y' + z)(x' + y + z') (bentuk baku POS)

Perbedaan antara bentuk kanonik dan bentuk baku adalah, pada bentuk kanonik, setiap term harus mengandung literal lengkap, sedangkan pada bentuk baku setiap term tidak mengandung literal lengkap.

Konversi ke bentuk baku:

f(x,y,z) = x + y‟z

= x . 1 . 1 + 1 . y‟z

= x (y + y‟) (z + z‟) + (x + x‟) y‟z


(40)

= xyz + xyz‟ + xy‟z + xy‟z‟ + xy‟z + x‟y‟z

= m7 + m6 + m5 + m4 + m5 + m1 = ∑(1,4,5,6,7)

2.11 Penyederhanaan Fungsi Boolean

Fungsi Boolean seringkali mengandung operasi – operasi yang tidak perlu, literal atau suku – suku yang berlebihan. Oleh karena itu, kita dapat menyederhanakan fungsi Boolean lebih lanjut. Menyederhanakan fungsi Boolean artinya mencari bentuk fungsi lain yang ekivalen tetapi dengan jumlah literal atau operasi yang lebih sedikit. Penyederhanaan fungsi Boolean disebut juga minimisasi fungsi.

Dipandang dari segi aplikasi aljabar Boolean, fungsi Boolean yang lebih sederhana berarti rangkaian logikanya juga lebih sederhana (menggunakan jumlah gerbang logika lebih sedikit). Ada tiga metode yang dapat digunakan untuk menyederhanakan fungsi Boolean :

1. Secara aljabar, menggunakan hukum – hukum aljabar Boolean. 2. Metode Peta Karnaugh.


(41)

2.11.1 Penyederhanaan Fungsi Boolean Secara Aljabar

Jumlah literal di dalam sebuah fungsi Boolean dapat diminimumkan dengan trik manipulasi aljabar. Sayangnya, tidak ada aturan khusus yang harus diikuti yang akan menjamin menuju ke jawaban akhir. Metode yang tersedia adalah prosedur yang cut-and-try yang memanfaatkan postulat, hukum – hukum dasar, dan metode manipulasi lain yang sudah dikenal. Sebagai contoh,

f(x, y, z) = xz' + y'z + xyz'

= xz' . 1 + y'z + xyz' (Hukum identitas) = xz' (1 + y) + y'z (Hukum distributif) = xz' . 1 + y'z (Hukum dominansi) f(x, y, z) = xz' + y'z (Hukum identitas)

2.11.2 Metode Peta Karnaugh

Metode Peta Karnaugh (atau K-map) merupakan metode grafis untuk menyederhanakan fungsi Boolean. Metode ini ditemukan oleh Maurice Karnaugh pada tahun 1953. Peta Karnaugh adalah sebuah diagram / peta yang terbentuk dari kotak – kotak (berbentuk bujursangkar) yang bersisian. Tiap kotak merepresentasikan sebuah minterm. Tiap kotak dikatakan bertetangga jika mintermminterm yang merepresentasikannya berbeda hanya 1 buah literal.

Peta Karnaugh dapat dibentuk dari fungsi Boolean yang dispesifikasikan dengan ekspresi Boolean maupun fungsi yang direpresentasikan dengan tabel kebenaran.


(42)

2.11.2.1 Peta Karnaugh Dengan Dua Peubah

Misalkan dua peubah di dalam fungsi Boolean adalah x dan y. Baris pada peta Karnaugh untuk peubah x dan kolom untuk peubah y. Baris pertama diidentifikasi nilai 0 (menyatakan x'), sedangkan baris kedua dengan 1 (menyatakan x). Kolom pertama diidentifikasi nilai 0 (menyatakan y'), sedangkan kolom kedua dengan 1 (menyatakan y). Setiap kotak merepresentasikan minterm dari kombinasi baris dan kolom yang bersesuaian. Berikut terdapat tiga cara yang lazim digunakan sejumlah literatur dalam menggambarkan peta Karnaugh untuk dua peubah.

m0 m1 m2 m3

Gambar 2.9 Penyajian 1 - Peta Karnaugh dengan 2 peubah y

0 1

x 0 x'y' x'y

1 xy' xy

Gambar 2.10 Penyajian 2 - Peta Karnaugh dengan 2 peubah

y' y

x' x'y' x'y

x xy' xy


(43)

Perhatikan bahwa dua kotak yang bertetangga pada peta Karnaugh hanya berbeda satu bit atau satu literal.

2.11.2.2 Peta Karnaugh Dengan Tiga Peubah

Untuk fungsi Boolean dengan tiga peubah (misalkan x, y dan z), jumlah kotak di dalam peta Karnaugh meningkat menjadi 23 = 8. Baris pada peta Karnaugh untuk peubah x dan kolom untuk peubah yz. Baris pertama diidentifikasi nilai 0 (menyatakan x'), sedangkan baris kedua dengan 1 (menyatakan x). Kolom pertama diidentifikasi nilai 00 (menyatakan x'y'), kolom kedua diidentifikasi nilai 01 (menyatakan xy'), kolom ketiga diidentifikasi 11 (menyatakan xy). Perhatikanlah bahwa antara satu kolom dengan kolom berikutnya hanya berbeda satu bit. Setiap kotak merepresentasikan minterm dari kombinasi baris dan kolom yang bersesuaian.

yz

00 01 11 10

x 0 x'y'z' x'y'z x'yz x'yz' 1 xy'z' xy'z xyz xyz'


(44)

2.11.2.3 Peta Karnaugh Dengan Empat Peubah

Misalkan empat peubah di dalam fungsi Boolean adalah w, x, y dan z. Jumlah kotak di dalam peta Karnaugh meningkat menjadi 24 = 16. Baris pada peta Karnaugh untuk peubah wx dan kolom untuk peubah yz. Baris pertama diidentifikasi nilai 00 (menyatakan w'x'), baris kedua dengan 01 (menyatakan w'x), baris ketiga dengan 11 (menyatakan wx) dan baris keempat dengan 10 (menyatakan wx'). Kolom pertama diidentifikasi nilai 00 (menyatakan y'z'), kolom kedua diidentifikasi nilai 01 (menyatakan yz'), kolom ketiga diidentifikasi nilai 11 (menyatakan yz), sedangkan kolom keempat diidentifikasi dengan nilai 00 (menyatakan yz'). Setiap kotak merepresentasikan minterm dari kombinasi baris dan kolom yang bersesuaian.

yz

00 01 11 10

wx 00 w'x'y'z' w'x'y'z w'x'yz w'x'yz' 01 w'xy'z' w'xy'z w'xyz w'xyz' 11 wxy'z' wxy'z wxyz wxyz' 10 wx'y'z' wx'y'z wx'yz wx'yz'


(45)

2.11.3 Metode Quine-McCluskey

Metode peta Karnaugh hanya cocok digunakan jika fungsi Boolean mempunyai jumlah peubah yang tidak besar. Jika peubah yang terlibat pada suatu fungsi Boolean dalam jumlah yang besar maka penggunaan peta Karnaugh menjadi semakin rumit, sebab ukuran peta bertambah besar. Selain itu, metode peta Karnaugh lebih sulit diprogram dengan komputer karena diperlukan pengamatan visual untuk mengidentifikasi mintermminterm yang akan dikelompokkan. Untuk itu diperlukan metode penyederhanaan yang lain yang dapat diprogram dan dapat digunakan untuk fungsi Boolean dengan sembarang jumlah peubah. Metode alternatif tersebut adalah metode Quine-McCluskey.

Metode Quine-McCluskey adalah sebuah metode yang digunakan untuk menyederhanakan fungsi Boolean, khususnya fungsi Boolean yang memiliki jumlah peubah yang besar (di atas 6 buah). Metode Quine-McCluskey dikembangkan oleh W.V. Quine dan E.J. McCluskey pada tahun 1950.

Metode ini mengubah sebuah fungsi Boolean menjadi sebuah himpunan bentuk prima, dimana sebanyak mungkin peubah dieliminasi (dihilangkan) secara maksimal, hingga didapat fungsi Boolean yang paling sederhana. Ini dapat dilakukan dengan melakukan perulangan penggunaan hukum komplemen, a + a' = 1. Sebagai contoh, fungsi Boolean dengan empat peubah dalam bentuk SOP :

f(a, b, c, d) = ∑(3, 11) = ∑(0011, 1011) = a'b'cd + ab'cd dan f(a, b, c, d) = ∑(7, 11) = ∑(0111, 1011) = a'b'cd + ab'cd.


(46)

a b c d a b c d --- --- 3 0 0 1 1 7 0 1 1 1 11 1 0 1 1 11 1 0 1 1 --- --- BENTUK PRIMA -> (3,11) - 0 1 1 ? Contoh (a) Contoh (b)

Pada contoh(a), kedua minterm tersebut dapat dikombinasikan menjadi sebuah bentuk prima yaitu (3,11), karena memiliki tepat satu perbedaan bit pada posisi bit nomor satu. Hasil kombinasi dalam bentuk prima (3,11) menyatakan bahwa peubah „a‟ telah dieleminasi. Hal ini sesuai dengan hukum komplemen, a + a' = 1.

Pada contoh(b), kedua minterm tersebut tidak dapat dikombinasikan menjadi sebuah bentuk prima, karena memiliki dua perbedaan bit pada posisi bit nomor satu dan dua. Setiap kombinasi dari minterm yang dapat membentuk sebuah bentuk prima baru harus memiliki tepat satu perbedaan bit pada posisi yang sama.

Secara umum, langkah – langkah metode Quine-McCluskey untuk menyederhanakan fungsi Boolean dalam bentuk SOP adalah sebagai berikut : 1. Nyatakan tiap minterm dalam n peubah menjadi string bit yang panjangnya n,

yang dalam hal ini peubah komplemen dinyatakan dengan „0‟, peubah yang bukan komplemen dengan „1‟.

2. Kelompokkan tiap minterm berdasarkan jumlah „1‟ yang dimilikinya.

3. Kombinasikan minterm dalam n peubah dengan kelompok lain yang jumlah

„1‟-nya berbeda satu, sehingga diperoleh bentuk prima (prime-implicant) yang terdiri dari n - 1 peubah. Mintermyang dikombinasikan diberi tanda “”.


(47)

4. Kombinasikan minterm dalam n – 1 peubah dengan kelompok lain yang jumlah „1‟-nya berbeda satu, sehingga diperoleh bentuk prima yang terdiri dari n– 2 peubah.

5. Teruskan langkah 4 sampai diperoleh bentuk prima yang sesederhanan mungkin.

6. Ambil semua bentuk prima yang tidak bertanda “”. Buatlah tabel baru yang memperlihatkan minterm dari ekspresi Boolean semula yang dicakup oleh

bentuk prima tersebut (tandai dengan “”). Setiap minterm harus dicakup oleh paling sedikit satu buah bentuk prima.

7. Pilih bentuk prima yang memiliki jumlah literal paling sedikit namun mencakup sebanyak mungkin minterm dari ekspresi Boolean semula. Hal ini dapat dilakukan dengan cara berikut :

a. Tandai kolom – kolom yang mempunyai satu buah tanda “” dengan

tanda “*”, lalu beri tanda “” di sebelah kiri bentuk prima yang

berasosiasi dengan tanda “*” tersebut. Bentuk prima ini telah dipilih untuk fungsi Boolean sederhana.

b. Untuk setiap bentuk prima yang telah ditandai dengan “”, beri tanda minterm yang dicakup oleh bentuk prima tersebut dengan tanda “” (di

baris bawah setelah “*”).

c. Periksa apakah masih ada minterm yang belum dicakup oleh bentuk prima terpilih. Jika ada, pilih dari bentuk prima yang tersisa yang mencakup sebanyak mungkin minterm tersebut. Beri tanda “” bentuk prima yang dipilih itu serta minterm yang dicakupnya.


(48)

d. Ulangi langkah c sampai seluruh minterm sudah dicakup oleh semua bentuk prima.

Langkah – langkah penyederhanaan metode Quine-McCluskey di atas juga berlaku untuk penyederhanaan fungsi Boolean dalam bentuk POS. Dapat dilihat bahwa bentuk fungsi output selalu sama dengan bentuk fungsi input, artinya input dalam bentuk SOP akan menghasilkan output dalam bentuk SOP, dan demikian pula untuk bentuk POS.

Agar lebih jelas, perhatikan contoh berikut. Bentuk input dalam bentuk SOP : f(w, x, y, z) = ∑(1, 4, 6, 7, 8, 9, 10, 11, 15)

Langkah – langkah minimisasi yang dilakukan adalah sebagai berikut: (Langkah 1 dan langkah 2) Konversikan nilai minterm ke bentuk biner dengan panjang sebesar n peubah (4 bit) dan kelompokkan tiap minterm berdasarkan jumlah bit „1‟ yang dimilikinya.

--- term w x y z ---

1 0 0 0 1 (Jumlah bit ‘1’ = 1 buah). 4 0 1 0 0

8 1 0 0 0 ---

6 0 1 1 0 (Jumlah bit ‘1’ = 2 buah). 9 1 0 0 1

10 1 0 1 0 ---

7 0 1 1 1 (Jumlah bit ‘1’ = 3 buah). 11 1 0 1 1

---

15 1 1 1 1 (Jumlah bit ‘1’ = 4 buah). ---

(Langkah 3 sampai 5) Kombinasikan term atau bentuk prima yang memiliki perbedaan tepat satu bit pada posisi yang sama. Hasil kombinasi


(49)

merupakan bentuk prima baru. Lakukan hingga didapat bentuk prima sesederhana mungkin. Term atau bentuk prima yang dikombinasikan diberi tanda ˈˈ.

--- --- --- term w x y z term w x y z term w x y z --- --- --- 1 0 0 0 1  1,9 - 0 0 1 8,9,10,11 1 0 - -  4 0 1 0 0  4,6 0 1 – 0 8,10,9,11 1 0 - -  8 1 0 0 0  8,9 1 0 0 -  --- --- 8,10 1 0 – 0 

6 0 1 1 0  --- 9 1 0 0 1  6,7 0 1 1 - 10 1 0 1 0  9,11 1 0 – 1  --- 10,11 1 0 1 -  7 0 1 1 1  --- 11 1 0 1 1  7,15 - 1 1 1 --- 11,15 1 - 1 1 15 1 1 1 1  --- ---

(Langkah 6) Ambil semua bentuk prima yang tidak bertanda “”. Buat

tabel baru yang memperlihatkan minterm dari ekspresi Boolean semula yang

dicakup oleh bentuk prima tersebut (tandai dengan “”). Setiap minterm harus dicakup oleh paling sedikit satu buah bentuk prima.

--- minterm

--- Bentuk prima 1 4 6 7 8 9 10 11 15

--- 1,9 x x 4,6 x x 6,7 x x 7,15 x x 11,15 x x 8,9,10,11 x x x x ---

(Langkah 7.a) Tandai kolom – kolom yang mempunyai satu buah tanda

“” dengan tanda “*”, lalu beri tanda “” di sebelah kiri bentuk prima yang berasosiasi dengan tanda “*” tersebut. Bentuk prima ini telah dipilih untuk fungsi

Boolean sederhana.

Minterm 1 dan 9 dicakup oleh bentuk prima (1,9)


(50)

--- minterm

--- Bentuk prima 1 4 6 7 8 9 10 11 15

--- v 1,9 x x v 4,6 x x 6,7 x x 7,15 x x 11,15 x x v 8,9,10,11 x x x x ---

* * * *

---

(Langkah 7.b) Untuk setiap bentuk prima yang telah ditandai dengan “”, beri tanda minterm yang dicakup oleh bentuk prima tersebut dengan tanda “” (di

baris bawah setelah “*”).

--- minterm

--- Bentuk prima 1 4 6 7 8 9 10 11 15

--- v 1,9 x x v 4,6 x x 6,7 x x 7,15 x x 11,15 x x v 8,9,10,11 x x x x ---

* * * * v v v v v v v

---

(Langkah 7.c dan 7.d) Sampai tahap ini, masih ada minterm yang belum tercakup dalam bentuk prima terpilih, yaitu 7, 15. Untuk mencakup minterm tersebut, maka dipilih bentuk prima (7,15), karena mencakup minterm 7 dan 15 sekaligus.

Beri tanda „v‟ pada bentuk prima yang mencakup

minterm yang memiliki tanda (*)

Beri tanda (*) pada minterm yang memiliki satu tanda „x‟

Beri tanda „v‟ pada bentuk prima yang mencakup


(51)

--- minterm

--- Bentuk prima 1 4 6 7 8 9 10 11 15

--- v 1,9 x x v 4,6 x x 6,7 x x v 7,15 x x 11,15 x x v 8,9,10,11 x x x x ---

* * * * v v v v v v v v v

---

Semua minterm sudah tercakup dalam bentuk prima terpilih. Bentuk prima yang terpilih adalah :

1,9 yang bersesuaian dengan term x' y' z 4,6 yang bersesuaian dengan term w' xz' 7,15 yang bersesuaian dengan term xyz 8,9,10,11 yang bersesuaian dengan term wx'

Dengan demikian, fungsi Boolean hasil penyederhanaan dengan metode Quine-McCluskey adalah : f(w, x, y, z) = x'y'z + w'xz' + xyz + wx'.


(52)

2.12 Gerbang – Gerbang Sistem Digital Atau Gerbang Logika

Gerbang-gerbang sistem digital atau gerbang logika adalah piranti yang memiliki keadaan bertaraf logika. Gerbang logika dapat merepresentasikan keadaan dari bilangan biner.

Terdapat dua keadaan pada gerbang logika, yaitu 0 dan 1. Tegangan yang digunakan dalam gerbang logika adalah HIGH (1) dan LOW (0). Sistem digital yang paling kompleks seperti komputer besar disusun dari gerbang logika dasar seperti AND, OR, NOT dan gerbang kombinasi (turunan) yang disusun dari gerbang dasar tersebut seperti NAND, NOR, EXOR, EXNOR.

Gerbang Universal merupakan salah satu gerbang turunan yang dirangkai sehingga menghasilkan output yang sama dengan output dari gerbang dasar maupun gerbang turunan. Adapun gerbang universal itu adalah NAND dan NOR.

Gerbang AND digunakan untuk menghasilkan logika 1 apabila semua masukan adalah berlogika 1. Gerbang OR digunakan untuk menghasilkan logika 1 apabila salah satu masukan berlogika 1. Gerbang not adalah gerbang pembalik (inverter). Output yang dihasilkan adalah kebalikan dari input yang diberikan. Gerbang logika turunan.


(53)

Gambar beberapa gerbang logika beserta table kebenarannya.[9] Tabel 2.14 Tabel kebenaran gerbang AND

A

Y

B AND

Tabel 2.15 Tabel kebenaran gerbang OR

A

Y

B OR

T

Tabel 2.16 Tabel kebenaran gerbang NOT

A Y

NOT

AND

A B Y

0 0 0

0 1 0

1 0 0

1 1 1

OR

A B Y

0 0 0

0 1 1

1 0 1

1 1 1

NOT

A Y

0 1


(54)

Tabel 2.17 Tabel kebenaran gerbang NAND

A

Y

B NAND

Tabel 2.18 Tabel kebenaran gerbang NOR

A

Y

B NOR

Tabel 2.19 Tabel kebenaran gerbang XOR A

Y

B XOR

Tabel 2.20 Tabel kebenaran gerbang XNOR

A

Y

B XNOR

NAND

A B Y

0 0 1

0 1 1

1 0 1

1 1 0

NOR

A B Y

0 0 1

0 1 0

1 0 0

1 1 0

XOR

A B Y

0 0 0

0 1 1

1 0 1

1 1 0

XNOR

A B Y

0 0 1

0 1 0

1 0 0


(55)

2.13 Logic Friday sebagai tools generating Gerbang Logika

Logic Friday adalah perangkat lunak yang dipergunakan sebagai alat (tools) untuk menganalisis ekspresi Boolean. Perangkat lunak ini lumrah digunakan dikalangan mahasiswa, ilmuwan, atau siapa saja yang berada dalam ruang lingkup sistem digital berdasarkan standart IC (Integrated Circuits).

Versi terbaru dari perangkat lunak ini adalam versi 1.1.3 yang di rilis pada 25 Maret 2011. Beberapa kinerja atau fasilitas yang didapat dari perangkat lunak Logic Friday ini diantaranya adalah:

i. Meng-inputkan ekspresi logika sebagai fungsi Boolean, table kebenaran, atau gerbang logika.

ii. Menghasilkan gerbang logika dari fungsi Boolean yang di inputkan. iii. Membuat gerbang logika secara manual dengan library yang ada.

iv. Mengekspor dan mengimpor table kebenaran.

v. Menampilkan suatu fungsi sebagai table kebenaran, persamaan atau diagram gerbang logika.

Logic Friday menggunakan dua bahasa pemrograman yaitu expresso dan misII. Kedua bahasa pemrograman tersebut merupakan hak cipta dari Regents of the University of California tahun 1988-1993.

System Requiment untuk perangkat lunak Logic Fridat ini diantaranya: i. Microsoft Windows 98, 2000, XP, Vista, Windows 7 (32 or 64 bit). ii. Pentium-class PC, 450 MHz, 128 MB RAM, 10 MB hard disk space. iii.Microsoft Internet Explorer versi 5 or setelahnya.


(56)

43

3.1 Deskripsi Masalah

Seperti yang sudah dipaparkan pada BAB I, permasalahan yang timbul adalah belum tersedianya perangkat lunak yang memanfaatkan metode Quine-McCluskey dalam menyederhanakan fungsi logika sehingga tersedia rangkaian gerbang logika yang lebih sederhana dari suatu fungsi. Fungsi Boolean yang tidak disederhanakan, akan menimbulkan kerumitan yang relative besar pada pengimplementasian gerbang logika. Dan apabila fungsi – fungsi tersebut dipertahankan, akan menambah kebutuhan memori yang cukup besar di dalam sistem komputer.

Penyederhanaan fungsi Boolean, dapat diselesaikan dengan beberapa metode yang telah baku yaitu: metode Aljabar, metode Peta Karnaugh, dan metode Quine-McCluskey. Metode Aljabar sudah jarang digunakan karena prosesnya yang mengandalkan try & error, maka rentan terjadi kesalahan.

Metode Peta Karnaugh dan metode Quine-McCluskey masing-masing memiliki langkah-langkah penyederhanaan yang berbeda dalam tingkat kerumitan dan ketelitiannya. Metode-metode penyederhanaan fungsi boolean ini dapat menghasilkan persamaan fungsi boolean yang sederhana untuk membentuk rangkaian logika dari persamaan sederhana yang didapat. Metode Peta Karnaugh memerlukan ketelitian yang cukup tinggi dalam proses penyederhanaan fungsi boolean. Untuk penyederhanaan jumlah variabel yang besar (yaitu 4, 5, 6 atau


(57)

bahkan lebih) akan lebih rumit karena pembentukan pola biner untuk menggambarkan sejumlah kotak berbentuk persegi panjang yang berisi minterm dimana setiap perubahan pola biner dari baris ke kolom sebelum dan sesudahnya hanya memiliki 1 (satu) buah perubahan saja. Pengelompokan angka „1‟ bersesuaian yang telah diisikan ke dalam peta akan membentuk banyak kemungkinan angka „1‟ yang bersebelahan untuk dijadikan kelompok, kondisi ini mempersulit proses penyederhanaan dan pembentukan rangkaian logikanya. Penyederhanaan menggunakan metode Quine-McCluskey memberikan hasil yang lebih pasti. Metode ini digunakan untuk mempresentasikan minimasi ekspresi fungsi boolean, dan menyediakan sebuah prosedur sistematis untuk membangun semua Prime Implicant dan kemudian mengambil sebuah set minimum dari prime yang ada. Metode tabulasi ini digunakan apabila fungsi yang akan disederhanakan memiliki variabel lebih dari enam.

Seperti yang telah dipaparkan pada BAB II, metode penyederhanaan yang disangka efektif untuk dikonversi ke dalam sistem komputer yaitu metode Quine-McCluskey atau sering disebut metode tabulasi. Metode ini mengubah sebuah fungsi Boolean menjadi sebuah himpunan prima, dimana sebanyak mungkin peubah dieliminasi (dihilangkan) secara maksimal, hingga didapat fungsi Boolean yang paling sederhana. Ini dapat dilakukan dengan melakukan perulangan penggunaan hukum komplemen, a + a' = 1.


(58)

Sebagai contoh, fungsi Boolean dengan empat peubah dalam bentuk SOP :

f(a, b, c, d) = ∑(3, 11) = (0011, 1011) = a'b'cd + ab'cd dan

f(a, b, c, d) = ∑(7, 11) = (0111, 1011) = a'b'cd + ab'cd.

a b c d a b c d

--- --- 3 0 0 1 1 7 0 1 1 1 11 1 0 1 1 11 1 0 1 1 --- --- BENTUK PRIMA -> (3,11) - 0 1 1 ?

Contoh (a) Contoh (b)

Pada contoh(a), kedua minterm tersebut dapat dikombinasikan menjadi sebuah bentuk prima yaitu (3,11), karena memiliki tepat satu perbedaan bit pada posisi bit nomor satu. Hasil kombinasi dalam bentuk prima (3,11) menyatakan

bahwa peubah „a‟ telah dieleminasi. Hal ini sesuai dengan hukum komplemen, a + a' = 1. Pada contoh(b), kedua minterm tersebut tidak dapat dikombinasikan menjadi sebuah bentuk prima, karena memiliki dua perbedaan bit pada posisi bit nomor satu dan dua. Setiap kombinasi dari minterm yang dapat membentuk sebuah bentuk prima baru harus memiliki tepat satu perbedaan bit pada posisi yang sama. Metode Quine-McCluskey mereduksi sebuah fungsi yang bentuk ekspresi booleannya berbentuk Sum Of Product atau penjumlahan dari perkalian, untuk mendapatkan sebuah bentuk prime implicant.

Tahapan dari penyederhanaan fungsi boolean dengan menggunakan metode Quine-McCluskey jika dibuat kedalam bentuk skema penyederhanaan ditampilkan dalam diagram alir 3.1 berikut :


(59)

Mulai

Nyatakan tiap minterm dalam n peubah menjadi string bit

biner yang panjangnya n

Kelompokkan tiap minterm

berdasarkan jumlah „1‟ yang

dimilikinya

Kombinasikan minterm dalam n peubah dengan

kelompok lain yang jumlah „1‟-nya berbeda satu,

sehingga diperoleh bentuk prima yang terdiri dari n-1 peubah. mintermyang dikombinasikan diberi tanda „v‟

Kombinasikan minterm dalam n - 1 peubah dengan

kelompok lain yang jumlah „1‟-nya berbeda satu, sehingga

diperoleh bentuk prima yang terdiri dari n-2 peubah

Bentuk prima sudah sederhana?

Ambil semua bentuk prima yang tidak bertanda „v‟.

Buatlah tabel baru yang memperlihatkan minterm dari ekspresi Boolean semula yang dicakup oleh bentuk

prima tersebut (tandai dengan „x‟)

Pilih bentuk prima yang memiliki jumlah literal paling sedikit namun mencakup sebanyak mungkin minterm

dari ekspresi Boolean semula

Bentuk prima sudah mencakup semua minterm?

Nyatakan bentuk prima terpilih

kedalam fungsi Boolean Selesai

Belum

Sudah

Belum

Sudah


(60)

3.2 Langkah Penyelesaian Dengan Metode Quine-McCluskey

Secara umum, langkah – langkah metode Quine-McCluskey untuk menyederhanakan fungsi Boolean dalam bentuk SOP adalah sebagai berikut :

1. Nyatakan tiap minterm dalam n peubah menjadi string bit yang panjangnya n, yang dalam hal ini peubah komplemen dinyatakan dengan

„0‟, peubah yang bukan komplemen dengan „1‟.

2. Kelompokkan tiap minterm berdasarkan jumlah „1‟ yang dimilikinya. 3. Kombinasikan minterm dalam n peubah dengan kelompok lain yang

jumlah „1‟-nya berbeda satu, sehingga diperoleh bentuk prima ( prime-implicant) yang terdiri dari n - 1 peubah. Minterm yang dikombinasikan

diberi tanda “”.

4. Kombinasikan minterm dalam n – 1 peubah dengan kelompok lain yang jumlah „1‟-nya berbeda satu, sehingga diperoleh bentuk prima yang terdiri dari n– 2 peubah.

5. Teruskan langkah 4 sampai diperoleh bentuk prima yang sesederhanan mungkin.

6. Ambil semua bentuk prima yang tidak bertanda “”. Buatlah tabel baru yang memperlihatkan minterm dari ekspresi Boolean semula yang dicakup

oleh bentuk prima tersebut (tandai dengan “”). Setiap minterm harus dicakup oleh paling sedikit satu buah bentuk prima.

7. Pilih bentuk prima yang memiliki jumlah literal paling sedikit namun mencakup sebanyak mungkin minterm dari ekspresi Boolean semula. Hal ini dapat dilakukan dengan cara berikut :


(61)

a. Tandai kolom – kolom yang mempunyai satu buah tanda “” dengan

tanda “*”, lalu beri tanda “” di sebelah kiri bentuk prima yang

berasosiasi dengan tanda “*” tersebut. Bentuk prima ini telah dipilih untuk fungsi Boolean sederhana.

b. Untuk setiap bentuk prima yang telah ditandai dengan “”, beri tanda mintermyang dicakup oleh bentuk prima tersebut dengan tanda “” (di

baris bawah setelah “*”).

c. Periksa apakah masih ada minterm yang belum dicakup oleh bentuk prima terpilih. Jika ada, pilih dari bentuk prima yang tersisa yang mencakup sebanyak mungkin minterm tersebut. Beri tanda “” bentuk prima yang dipilih itu serta minterm yang dicakupnya.

d. Ulangi langkah c sampai seluruh minterm sudah dicakup oleh semua bentuk prima.

Langkah – langkah penyederhanaan metode Quine-McCluskey juga berlaku untuk penyederhanaan fungsi Boolean dalam bentuk POS. Dapat dilihat bahwa bentuk fungsi output selalu sama dengan bentuk fungsi input, artinya input dalam bentuk SOP akan menghasilkan output dalam bentuk SOP, dan demikian pula untuk bentuk POS.


(62)

3.3 Contoh Kasus

Agar lebih jelas, perhatikan contoh berikut. Bentuk input dalam bentuk SOP :

f (w, x, y, z) = ∑ (0, 1, 3, 4, 5, 6, 8, 10, 11, 15).

Langkah – langkah penyederhanaan fungsi Boolean dengan metode Quine-McCluskey adalah sebagai berikut:

LANGKAH-1 : Nyatakan tiap minterm dalam n peubah menjadi string bit biner yang panjangnya n. (Pada contoh ini, jumlah peubah adalah 4 sehingga n = 4)

0 = 0000 1 = 0001 3 = 0011 4 = 0100 5 = 0101 6 = 0110 8 = 1000 10 = 1010 11 = 1011 15 = 1111


(63)

LANGKAH-2 : Kelompokkan tiap minterm berdasarkan jumlah „1‟ yang dimilikinya.

Hasil Penyelesaian Langkah - 2 :

--- term w x y z ---

0 0 0 0 0 -> jumlah bit '1' = 0 buah ---

1 0 0 0 1 -> jumlah bit '1' = 1 buah 4 0 1 0 0

8 1 0 0 0 ---

5 0 1 0 1 -> jumlah bit '1' = 2 buah 6 0 1 1 0

3 0 0 1 1 10 1 0 1 0 ---

11 1 0 1 1 -> jumlah bit '1' = 3 buah ---

15 1 1 1 1 -> jumlah bit '1' = 4 buah ---

LANGKAH-3 : Kombinasikan minterm dalam n peubah dengan kelompok lain yang jumlah „1‟-nya berbeda satu, sehingga diperoleh bentuk prima ( prime-implicant) yang terdiri dari n-1 peubah. minterm yang dikombinasikan diberi

tanda „v‟

LANGKAH-4 : Kombinasikan minterm dalam n - 1 peubah dengan kelompok lain yang jumlah „1‟-nya berbeda satu, sehingga diperoleh bentuk prima yang terdiri dari n-2 peubah.


(64)

LANGKAH-5 : Teruskan langkah 4 sampai diperoleh bentuk prima yang sesederhana mungkin.

Hasil Penyelesaian Langkah-3, 4 dan 5 :

--- term w x y z ---

0 0 0 0 0 v

---

1 0 0 0 1 v

4 0 1 0 0 v

8 1 0 0 0 v

---

5 0 1 0 1 v

6 0 1 1 0 v

3 0 0 1 1 v

10 1 0 1 0 v

---

11 1 0 1 1 v

---

15 1 1 1 1 v

---

Dikombinasikan menjadi : ---

term w x y z ---

0,1 0 0 0 - v

0,4 0 - 0 0 v

0,8 - 0 0 0 --- 1,3 0 0 - 1

1,5 0 - 0 1 v

4,5 0 1 0 - v

4,6 0 1 - 0 8,10 1 0 - 0 --- 3,11 - 0 1 1 10,11 1 0 1 - --- 11,15 1 - 1 1 ---


(65)

Dikombinasikan menjadi : --- term w x y z --- 0,1,4,5 0 - 0 - 0,4,1,5 0 - 0 - ---

LANGKAH-6 : Ambil semua bentuk prima yang tidak bertanda „v‟. Buatlah tabel baru yang memperlihatkan minterm dari ekspresi Boolean semula yang dicakup oleh bentuk prima tersebut (tandai dengan „x‟).

Hasil Penyelesaian Langkah - 6 :

--- minterm

--- Bentuk prima 0 1 3 4 5 6 8 10 11 15

--- 0,8 x x

1,3 x x

3,11 x x 4,6 x x

8,10 x x 10,11 x x 11,15 x x 0,1,4,5 x x x x

--- Minterm 0 dan 8 dicakup oleh bentuk prima (0,8)


(66)

LANGKAH-7 : Pilih bentuk prima yang memiliki jumlah literal paling sedikit namun mencakup sebanyak mungkin minterm dari ekspresi Boolean semula. Hal ini dapat dilakukan dengan cara berikut :

LANGKAH-7.A : Tandai kolom-kolom yang mempunyai satu buah tanda

„x‟ dengan tanda (*), lalu beri tanda „v‟ di sebelah kiri bentuk prima yang mencakup minterm yang mempunyai tanda (*) tersebut. Bentuk prima ini telah dipilih untuk fungsi Boolean sederhana.

Hasil Penyelesaian Langkah-7 dan 7.A :

--- minterm

--- Bentuk prima 0 1 3 4 5 6 8 10 11 15

--- 0,8 x x

1,3 x x

3,11 x x v 4,6 x x

8,10 x x 10,11 x x v 11,15 x x v 0,1,4,5 x x x x

--- * * * ---

Beri ta da v pada e tuk pri a a g e akup i ter a g e iliki tanda (*) -Be tuk pri a , di eri ta da v kare a i ter e iliki ta da *

-Be tuk pri a , di eri ta da v kare a i ter e iliki ta da * -Be tuk pri a , , , di eri ta da v kare a i ter e iliki ta da *


(67)

LANGKAH-7.B : Untuk setiap bentuk prima yang telah ditandai dengan

„v‟, beri tanda minterm yang dicakup oleh bentuk prima tersebut dengan tanda „v‟ (di baris bawah setelah tanda (*)).

Hasil Penyelesaian Langkah-7.B :

--- minterm

--- Bentuk prima 0 1 3 4 5 6 8 10 11 15

--- 0,8 x x

1,3 x x

3,11 x x v 4,6 x x

8,10 x x 10,11 x x v 11,15 x x v 0,1,4,5 x x x x

--- * * * v v v v v v v ---

LANGKAH-7.C : Periksa apakah masih ada minterm yang belum memiliki tanda „v‟ (artinya, belum dicakup oleh bentuk prima terpilih). Jika ada, pilih dari bentuk prima yang tersisa yang mencakup sebanyak mungkin minterm tersebut. Beri tanda „v‟ untuk setiap bentuk prima yang dipilih itu serta minterm yang dicakupnya.

LANGKAH-7.D : Ulangi langkah 7.C sampai seluruh minterm sudah dicakup oleh bentuk prima

Hasil Penyelesaian Langkah - 7.C dan 7.D :

Sampai tahap ini, masih ada minterm yang belum tercakup dalam bentuk prima terpilih, yaitu 3, 8, 10. Untuk mencakup minterm tersebut, kita pilih bentuk prima (8,10) dan (1,3) karena mencakup minterm 3, 8 dan 10 sekaligus.

Mi ter , , , di eri ta da v kare a di akup oleh e tuk pri a , , , a g e iliki ta da v


(68)

--- minterm

--- Bentuk prima 0 1 3 4 5 6 8 10 11 15

--- 0,8 x x

v 1,3 x x

3,11 x x v 4,6 x x

v 8,10 x x 10,11 x x v 11,15 x x v 0,1,4,5 x x x x

--- * * * v v v v v v v v v v ---

Semua minterm sudah tercakup dalam bentuk prima terpilih. Bentuk prima yang terpilih adalah :

1, 3 yang bersesuaian dengan termw'x'z

(minterm 1 (0001) dan minterm 3 (0011) memiliki persamaan bit pada posisi 1, 2 dan 4 sehingga dapat dikatakan minterm 1 dan minterm 3 merupakan fungsi Boolean w'x'z).

4, 6 yang bersesuaian dengan term w'xz'

8, 10 yang bersesuaian dengan term wx'z'

11, 15 yang bersesuaian dengan term wyz 0, 1, 4, 5 yang bersesuaian dengan term w'y'

Dari semua langkah – langkah penyederhanaan, hasil minimisasi fungsi Boolean dalam bentuk SOP: f (w, x, y, z) = ∑ (0, 1, 3, 4, 5, 6, 8, 10, 11, 15)

adalah f (w, x, y, z) = w'x'z + w'xz' + wx'z' + wyz + w' y'. Sekarang semua minterm sudah tercakup, bentuk prima


(69)

Misalkan input fungsi dalam bentuk POS dengan nomor – nomor maxterm yang sama dengan nomor – nomor minterm pada contoh sebelumnya.

f (w, x, y, z) = ∏ (0, 1, 3, 4, 5, 6, 8, 10, 11, 15)

Langkah – langkah dan hasil penyederhanaan sama dengan penyederhanaan dalam bentuk SOP, yaitu menghasilkan bentuk prima terpilih (1,3), (4,6), (8,10), (11,15) dan (0,1,4,5). Perbedaannya hanya terletak pada bentuk output. Bentuk prima terpilih diubah ke bentuk POS (sama dengan bentuk input).

1, 3 bersesuaian dengan term (w + x + z').

4, 6 yang bersesuaian dengan term (w + x' + z).

8, 10 yang bersesuaian dengan term (w' + x + z).

11, 15 yang bersesuaian dengan term (w' + y' + z').


(70)

Dengan demikian, hasil minimisasi fungsi Boolean dalam bentuk POS adalah


(71)

3.4 Perancangan Sistem

Dalam tahap perancangan proses terdapat beberapa proses yang dilakukan untuk mendapatkan sebuah hasil yang paling sederhana, yang kemudian dapat digunakan untuk penggambaran rangkaian logika digital yang biasa digunakan pada elektronika digital (seperti video game, oven gelombang mikro, bagian sistem kendaraan bermotor, dan berbagai alat ukur seperti multimeter dan ostiloskop).

Proses-proses yang dilakukan untuk mendapatkan hasil-hasil tersebut adalah proses penyederhanaan menggunakan metode Quine-McCluskey. Sebelum pelaksanaan proses penyederhanaan, terlebih dahulu didefinisikan kebutuhan-kebutuhan yang menjadi masukan, yaitu variabel dalam bentu SOP (Sum Of Product) atau POS (Product Of Sum) dan jumlah variabel masukan. Untuk masukan yang masih dalam bentuk persamaan (belum dipresentasikan kedalam bilangan biner), variabel komplemen (misal : x'y') ditandai dengan menggunakan tanda aksen ( ' ) dan variabel bukan komplemen (misal :x,y) tetap. Untuk menjelaskan proses-proses yang ada, digunakan bantuan Diagram Konteks yang ditunjukan pada gambar berikut ini :


(72)

Penyederhanaan fungsi boolean dengan

Quine-McCluskey Pemakai

- Data persamaan fungsi Boolean - Data jumlah variabel

- Data masukan minterm

- Info persamaan sederhana - Info rangkaian logika

- Info langkah-langkah penyederhanaan

Term.QMC D at a p er sam aa n fu n g si B o o le an In fo p er sa m aa n fu n g si Bo o le an Langkah-langkah penyederhanaan.RTF

Diagram 3.2 Diagram Konteks

Diagram 3.2 memperlihatkan gambaran secara global dari proses penyederhanaan dengan menggunakan metode Quine-McCluskey, dimana diperlihatkan hubungan antara pemakai dengan proses penyederhanaan masukan dari pemakai berupa persamaan fungsi boolean dan jumlah variabelnya sedangkan dari proses akan menghasilkan keluaran berupa persamaan sederhana.


(1)

Perancangan Sistem


(2)

Perancangan Perangkat Lunak

Requirements definition System and software design Implementation and unit testing

Integration and system testing

Operation and maintenance


(3)

Implementasi & Pengujian

f(w,x,y,z) = m1+m2+m3+m4


(4)

Kesimpulan

 Perangkat lunak minimisasi fungsi boolean dengan metode Quine-McCluskey ini menghasilkan output fungsi sederhana, gerbang logika dan langkah-langkah penyederhanaannya.

 Efektifitas minimisasi terlihan ketika membandingkan gerbang logika dari fungsi awal dengan fungsi sederhana.

 Langkah minimisasinya sesuai prosedur penyederhanaan Quine-McCluskey.


(5)

Demo Program

Program penyederhanaan fungsi boolean dengan metode


(6)

Terima Kasih

Rinaldi Rismansyah 10107514 Teknik Informatika Universitas Komputer Indonesia