Jurnal Komputasi
Vol. 1, No. 2, 2013 ©2014 Ilmu Komputer Unila Publishing Network all right reserved
Pengembangan Aplikasi Penyederhanaan Aljabar Boolean dalam Bentuk Sum-Of-Product dengan Menggunakan Metode Quine Mccluskey 1
2 3 Wamiliana, Ossy Dwi Endah dan Shara Siti Zahroh 1
Jurusan Matematika FMIPA Unila Jurusan Ilmu Komputer FMIPA Unila 3 Jurusan Ilmu Komputer FMIPA Unila 2
Abstract This study implements the Quine McCluskey method to minimize the Boolean function. There are several methods can be used in the minimization of Boolean functions. Afrisal [1] conducted a study to apply the Karnaugh Map method. Tomaszewski [4] applied the Quine McCluskey method to make program to simplify Boolean Algebra with a maximum input function at most 4 variables which are initialized before. In this study, the Quine McCluskey implemented in the program and it can simplify the input function with a maximum length of 26 variables. That input can be entered directly via keyboard. The results calculate the efficiency of the application which is :.
Keywords: efficiency; minimization of Boolean Algebra; Quine McCluskey method.
1
Pendahuluan
Perkembangan teknologi saat ini, khususnya teknologi komputer terus mengalami perubahan yang signifikan. Beberapa aspek perkembangan komputer ini berhubungan erat dengan perkembangan rangkaian digital dan perancangan logika yang dibuat oleh manusia. Suatu rangkaian digital merupakan representasi dari Aljabar Boolean. Aljabar Boolean dapat disusun menjadi rangkaian logika, dimana suatu rangkaian logika dapat terdiri dari satu atau lebih gerbang logika. Aljabar Boolean juga dapat diekspresikan dalam bentuk maksterm ataupun minterm. Aljabar Boolean maksterm (Product of Sum) dapat diselesaikan dengan mengoperasikan fungsi Boolean dengan operasi OR kemudian hasilnya dioperasikan dengan operasi AND. Sedangkan Aljabar Boolean minterm (Sum of Product) diselesaikan dengan mengoperasikan fungsi Boolean dengan operasi AND kemudian hasilnya dioperasikan dengan operasi OR. Fungsi Boolean terkadang mengandung operasi-operasi yang tidak diperlukan dan suku-suku yang berlebihan, sehingga fungsi tersebut dapat disederhanakan. Menyederhanakan fungsi Boolean bertujuan untuk mencari fungsi dalam bentuk lain yang ekuivalen tetapi dengan jumlah operasi atau suku yang lebih sedikit. Perbedaan yang sangat signifikan dapat ditemukan antara fungsi Boolean yang belum dan telah disederhanakan. Penyederhanaan fungsi Boolean memiliki penerapan penting dalam perancangan sirkuit logika [3]. Penyederhanaan fungsi Boolean dapat dilakukan dengan beberapa cara, diantaranya dengan metode tabulasi, pemetaan, dan dengan cara menuliskan tabel kebenarannya. Metode tabulasi atau lebih dikenal dengan metode Quine McCluskey dikembangkan oleh W.V. Quine dan E.J. McCluskey pada tahun 1950. Penyederhanaan dengan metode tabulasi sangat sistematis dan sangat cocok diterapkan
http://jurnal.fmipa.unila.ac.id/index.php/komputasi
Hal. 50 dari 94
Vol. 1, No. 2, 2013
Jurnal Komputasi
©2014 Ilmu Komputer Unila Publishing Network all right reserved
dengan komputer. Namun, fungsi Boolean yang dapat disederhanakan dengan metode ini harus dalam bentuk Sum of Product. Sehingga fungsi Boolean dalam bentuk Product of Sum harus diubah terlebih dahulu ke dalam bentuk Sum of Product. Penelitian lain dilakukan dengan menerapkan metode Map Karnaugh dalam menyederhanakan fungsi Boolean [1]. Memang, fungsi yang dapat diselesaikan oleh metode Karnaugh Map hanya fungsi dengan variabel masukan dalam jumlah kecil. Namun, metode Map Karnaugh merupakan metode yang paling mudah digunakan karena fungsi yang disederhanakan bisa dalam bentuk Sum of Product maupun Product of Sum [1]. Penelitian sebelumnya mengenai penyederhanaan Boolean dengan metode Quine McCluskey telah dilakukan oleh Tomaszewski et al pada tahun 2003. Metode ini mempunyai dua kelebihan dibandingkan dengan metode Karnaugh Map. Pertama, metode Quine McCluskey merupakan metode yang sistematis untuk menyederhanakan fungsi yang tidak begitu bergantung pada pola visual. Kedua, metode Quine McCluskey cukup layak menangani variabel dalam jumlah besar [4]. Pada penelitiannya, aplikasi dibuat menggunakan pemrograman Java. Pada penelitian tersebut, fungsi yang disederhanakan hanya memiliki 4 literal dan tidak dapat diketahui berapa efisiensi fungsi yang telah disederhanakan. Oleh karena itu pada penelitian ini fungsi yang dapat disederhanakan memiliki paling banyak 26 literal dan dapat diketahui efisiensi penyederhanaannya. Penelitian ini bertujuan untuk menghasilkan aplikasi yang dapat menyederhanakan fungsi Boolean dengan menerapkan metode Quine McCluskey serta melakukan perhitungan efisiensi terhadap penyederhanaan fungsi Boolean.
2
Metodologi
Metode penelitian yang digunakan dalam penelitian ini adalah studi literatur. Tujuannya untuk mencari literatur yang berisi teori-teori yang berkaitan dengan masalah yang akan dibahas. Manfaat dilakukannya studi literatur adalah membantu peneliti mengidentifikasi masalah dan menyusun model penelitian. Sedangkan metode yang digunakan dalam pengembangan aplikasi ini adalah metode Software Development Life Cycle (SDLC) Adaptive Approaches yakni Spiral Model. Model ini memadukan aspek iteratif pada model prototype dengan aspek sistematik yang diambil dari model waterfall [2]. Perkembangan dilakukan dengan cara cepat sehingga fungsi perangkat lunak terus bertambah. Iterasi pertama yang dilakukan menghasilkan protoype. Sedangkan perangkat lunak yang telah lengkap merupakan hasil dari iterasi terakhir. Model spiral terbagi dari beberapa wilayah kerja, dimana setiap wilayah kerja terdiri dari kumpulan pekerjaan yang berkaitan dengan karakteristik proyek yang dikerjakan. Semakin besar proyek, maka semakin banyak pula pekerjaan yang ada di dalam setiap wilayah kerja. Model spiral dibagi ke dalam lima kerangka aktivitas/wilayah kerja yaitu sebagai berikut. 1. Komunikasi dengan Client (Client Communication) 2. Perencanaan (Planning) 3. Analisis Resiko (Risk Analysis) 4. Rekayasa (Engineering) 5. Konstruksi dan Peluncuran (Construct and Release)
3 3.1
Pembahasan Penanganan Kesalahan
Penanganan terhadap kesalahan yang mungkin terjadi pada aplikasi dilakukan dengan membuat validasi. Validasi diterapkan pada proses input pada form aplikasi. Terdapat dua field masukan yaitu variabel dan fungsi. Masukan variabel yang valid berupa integer yang dikerucutkan mulai dari angka 1 sampai 26. Hal ini dikarenakan variabel yang digunakan berupa huruf alfabet yang keseluruhan jumlahnya sebanyak 26 huruf. Fungsi yang valid berupa sederetan huruf alfabet mulai dari a sampai z, bisa berupa huruf kapital atau nonkapital, panjang huruf sama setiap sukunya, dalam sebuah suku tidak boleh ada huruf yang berulang, setiap suku dipisahkan dengan tanda plus (+) dan jumlah suku yang dimasukkan tidak boleh melebihi 2 pangkat jumlah variabel yang dimasukkan.
http://jurnal.fmipa.unila.ac.id/index.php/komputasi
Hal. 51 dari 94
Jurnal Komputasi
Vol. 1, No. 2, 2013 ©2014 Ilmu Komputer Unila Publishing Network all right reserved
3.2
Algoritma
3.2.1 Algoritma Penggunaan Aplikasi Aplikasi ini memiliki cara kerja yaitu algoritma. Algoritma penggunaan aplikasi penyederhanaan ini secara umum dapat digambarkan dalam bentuk flowchart pada Gambar 1.
Proses Metode Quine McCluskey
Gambar 1. Flowchart Aplikasi
3.2.2 Proses Penyederhanaan Fungsi Menggunakan Metode Quine McCluskey Secara Manual Proses penyederhanaan Aljabar Boolean dalam bentuk Sum-of-Product menggunakan metode Quine McCluskey secara manual dijelaskan dengan contoh kasus sebagai berikut. Misalkan terdapat masukan : var = 3 fungsi = abc+Abc+aBc+ABc+aBC+ABC Tabel 1. Konversi dan Hitung Digit
Tabel 2. Kombinasi Tahap 1
Tabel 3. Kombinasi Tahap 2
http://jurnal.fmipa.unila.ac.id/index.php/komputasi
Tabel 4. Kombinasi Tahap 3
Hal. 52 dari 94
Jurnal Komputasi
Vol. 1, No. 2, 2013 ©2014 Ilmu Komputer Unila Publishing Network all right reserved
Proses pertama yaitu mengkonversi masukan fungsi dalam bentuk variabel menjadi biner, kemudian menghitung jumlah digit 1 setiap suku ditampilkan pada Tabel 1. Tabel 2, 3, 4 merupakan proses kombinasi terhadap suku-suku yang telah dikonversi. Proses ini terus berjalan dan baru berhenti jika semua suku-suku bernilai 0, yang artinya tidak dapat dikombinasikan lagi.
3.3
Implementasi
Aplikasi dapat menangani kesalahan saat pemasukan data, melakukan penyederhanaan dan perhitungan efisiensi. Interface aplikasi ditunjukkan pada Gambar 2 dan 3. Pada Gambar 2 terdapat pemberitahuan kesalahan dan peringatan bahwa masukan salah. Hal ini karena fungsi yang dimasukkan tidak sesuai dengan ketentuan aplikasi. Huruf yang mewakili setiap suku tidak boleh berulang dan harus berurutan. Gambar 3 merupakan hasil yang ditampilkan jika masukan sesuai. Dalam gambar, input yang dimasukkan yaitu variabel sebesar 3 dan fungsi terdiri dari 6 suku yaitu abc, Abc, aBc, ABc, aBC dan ABC. Hasil penyederhanaan yang terbentuk hanya dua suku yaitu c dan B. Dengan menggunakan rumus efisiensi (1) didapatkan hasil efisiensi sebesar 83,33%. Nilai efisiensi didapat dari jumlah suku yang dimasukkan dikurangi jumlah suku yang dihasilkan kemudian ditambah hasil pengurangan jumlah variabel yang dimasukkan dengan jumlah variabel yang dihasilkan, setelah itu dibagi dengan pengurangan antara jumlah suku yang dimasukkan dengan jumlah variabel yang dimasukkan dikali 100 persen. (1)
Gambar 2. Interface Jika Masukan Tidak Sesuai
http://jurnal.fmipa.unila.ac.id/index.php/komputasi
Hal. 53 dari 94
Jurnal Komputasi
Vol. 1, No. 2, 2013 ©2014 Ilmu Komputer Unila Publishing Network all right reserved
Gambar 3. Interface Jika Masukan Sesuai
3.4
Hasil Pengujian
Pengujian dilakukan terhadap dua prototype aplikasi. Prototype pertama berupa program penyederhanaan yang sudah memiliki beberapa fungsi tapi belum lengkap, sedangkan prototype kedua merupakan hasil akhir aplikasi. Fungsi-fungsi yang telah ada pada masing-masing prototype dituliskan pada Tabel 5.
http://jurnal.fmipa.unila.ac.id/index.php/komputasi
Hal. 54 dari 94
Jurnal Komputasi
Vol. 1, No. 2, 2013 ©2014 Ilmu Komputer Unila Publishing Network all right reserved
Tabel 5. Prototype dan Fungsi-fungsinya Prototype 1.
2.
Fungsi yang diuji
Hasil yang diharapkan
Hasil
Variabel yang dimasukkan berupa angka mulai dari 226.
Variabel yang dimasukkan bisa berupa huruf bukan hanya angka.
Fungsi input masih belum sesuai harapan.
Fungsi yang dimasukkan berupa huruf alfabet (capital dan non kapital) dan dapat random.
Fungsi yang dimasukkan berupa huruf alfabet (kapital dan non kapital) tetapi harus berurutan.
Fungsi input masih belum sesuai harapan.
b. Fungsi konversi dari variabel menjadi biner. Misalnya input : abc+Abc+aBc+Abc c. Fungsi mengelompokkan suku berdasarkan digit 1nya. Misalnya input : 111+000+110+010+1 00 d. Fungsi kombinasi suku-suku. Misalnya input : 000+100 e. Fungsi menampilkan hasil penyederhanaan.
Output : 000+100+010+110
Output : 000+100+010+110
Fungsi sudah dapat berjalan sesuai harapan.
Output: digit 0 : 000 digit 1 : 100, 010 digit 2 : 110 digit 3 : 111
Output: digit 0 : 000 digit 1 : 100, 010 digit 2 : 110 digit 3 : 111
Fungsi sudah dapat berjalan sesuai harapan.
Output : 000 :: 100 = -00
Output : 000 :: 100 = -00
Hasil yang ditampilkan sudah lebih sederhana dan tidak ada suku yang berulang.
Hasil yang ditampilkan sudah lebih sederhana tetapi masih ada suku yang sama dan ditampilkan ulang.
Fungsi sudah dapat berjalan sesuai harapan. Fungsi sudah dapat berjalan tetapi belum sesuai harapan.
Fungsi yang dihasilkan merupakan fungsi dari prototype pertama ditambah dengan fungsi: a. Tampilan grafis.
Terbentuk form untuk input dan output yang terdiri dari textfield, button, dan textarea.
Terbentuk form untuk input dan output yang terdiri dari button, textfield, dan textarea.
b. Fungsi menampilkan efisiensi penyederhanaan.
Efisiensi dihitung dari jumlah suku hasil yang terbentuk dan berkurangnya panjang variabel tiap suku.
Efisiensi dihitung dari jumlah suku hasil yang terbentuk dan berkurangnya panjang variabel tiap suku.
c. Fungsi validasi masukan.
Pada masukan variabel hanya angka yang dapat diterima.
Field variabel hanya dapat menerima masukan berupa angka 2-26.
Validasi variabel menggunakan spinner.
Pada masukan fungsi hanya huruf yang dapat diterima.
Field fungsi hanya dapat menerima masukan berupa huruf.
Jika masukan fungsi salah, aplikasi akan memberi peringatan.
a. Fungsi input variabel dan input fungsi Boolean.
http://jurnal.fmipa.unila.ac.id/index.php/komputasi
Keterangan
Fungsi sudah dapat berjalan tetapi untuk menyiasati validasi variabel, digunakan komponen spinner pada form. Fungsi sudah sesuai harapan.
Hal. 55 dari 94
Jurnal Komputasi
Vol. 1, No. 2, 2013 ©2014 Ilmu Komputer Unila Publishing Network all right reserved
Pengujian terhadap algoritma program dilakukan menggunakan metode White Box dengan teknik basis path dan perhitungan cyclomatic complexity. Sebagai contoh, salah satu method program yang diuji menggunakan teknik tersebut yaitu method kombinasi. Method ini dibuat untuk mengkombinasi fungsi dalam bentuk biner. Kombinasi dilakukan dengan cara membentuk suku baru dari dua suku yang berbeda tepat satu digit. Flowchart dan flowgraph proses kombinasi ditunjukkan pada Gambar 4(a) dan(b).
a.
b.
Gambar 4. (a) Flowchart dan (b) Flowgraph Method Kombinasi
Tabel 6. Trace Table Kombinasi
http://jurnal.fmipa.unila.ac.id/index.php/komputasi
Hal. 56 dari 94
Vol. 1, No. 2, 2013
Jurnal Komputasi
©2014 Ilmu Komputer Unila Publishing Network all right reserved
Perhitungan cyclomatic complexity method kombinasi dituliskan sebagai berikut. Perhitungan : Region (R) = 8 Region (R) terdiri dari : Path 1 : 1-2-4-15 Path 2 : 1-2-3-4-15 Path 3 : 1-2-4-5-6-4-15 Path 4 : 1-2-4-5-7-8-4-15 Path 5 : 1-2-4-5-7-9-10-4-15 Path 6 : 1-2-4-5-7-9-11-12-4-15 Path 7 : 1-2-4-5-7-9-11-13-14- 4-15 Path 8 : 1-2-4-5-7-9-11-13-15 Predicate Node (P) = 7 Edge (E) = 22 Node (N) = 16 Cyclomatic Complexity : 1. V(G) = R = 8 atau 2. V(G) = P + 1 = 7 + 1 = 8 atau 3. V(G) = E – N + 2 = 22 – 16 + 2 = 8 Hasil dari perhitungan cyclomatic complexity membuktikan bahwa method kombinasi sudah efektif dan efisien karena nilai V(G) pada ketiga rumus bernilai sama. Kemudian untuk membuktikan algoritma kombinasi tersebut, dilakukan perhitungan menggunakan trace table yang ditunjukkan pada Tabel 6. Berdasarkan perhitungan trace table, hasilnya sudah sesuai dengan perhitungan secara manual sehingga algoritma ini dapat dikatakan efektif dan efisien.
4
Kesimpulan
Berdasarkan pembahasan dan analisis yang telah dilakukan, dapat disimpulkan bahwa : 1. Penyederhanaan Aljabar Boolean menggunakan aplikasi yang menerapkan metode Quine McCluskey membutuhkan waktu lebih sedikit dibandingkan melakukan penyederhanaan secara manual. 2. Metode Quine McCluskey menghasilkan penyederhanaan yang optimal untuk fungsi yang jumlah sukunya mendekati jumlah suku maksimal (2 pangkat n). 3. Aplikasi ini dapat melakukan perhitungan efisiensi terhadap penyederhanaan.
http://jurnal.fmipa.unila.ac.id/index.php/komputasi
Hal. 57 dari 94
Vol. 1, No. 2, 2013
Jurnal Komputasi
©2014 Ilmu Komputer Unila Publishing Network all right reserved
5
Referensi
[1] Afrisal, Hadha. 2011. Sintesis Penyederhanaan Fungsi Logika dengan Peta Karnaugh. Jurusan Teknik Elektro FT UGM. Yogyakarta. [2] Rossa, A.S dan Shalahuddin, M. 2011. Modul Pembelajaran Rekayasa Perangkat Lunak (Terstruktur dan Berorientasi Objek). Modula. Bandung. [3] Seda, Milos. 2008. Heuristic Set-Covering-Based Postprocessing for Improving the Quine McCluskey Method. International Journal of Information and Mathematical Sciences. Brno, Czech Republic. [4] Tomaszewski, Sebastian P., Ilgaz U. Celik, & George E. Antoiou. 2003. AMCS : www-based Boolean Function Minimization. New York.
http://jurnal.fmipa.unila.ac.id/index.php/komputasi
Hal. 58 dari 94