MODIFIKASI APLIKASI PENYEDERHANAAN FUNGSI ALJABAR BOOLEAN DENGAN PENERAPAN BUBBLE SORT DAN KLASIFIKASI
PADA METODE QUINE-MCCLUSKEY
Oleh
EKO DWI NUGROHO
Skripsi
Sebagai Salah Satu Syarat untuk Memperoleh Gelar
SARJANA KOMPUTER
Pada
Jurusan Ilmu Komputer
Fakultas Matematika dan Ilmu Pengetahuan Alam
PROGRAM STUDI ILMU KOMPUTER JURUSAN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS LAMPUNG
ABSTRACT
THE MODIFICATION OF APPLICATION FOR SIMPLIFLYING BOOLEAN FUNCTION USING QUINE-MCCLUSKEY METHOD AND
APPLYING BUBBLE SORT AND CLASSIFICATION PROCESS
By
EKO DWI NUGROHO
Digital circuits is one of representation for Boolean function. Sometime a Boolean function is too long and difficult to make digital circuits, so it is important to simplify. The simplification of Boolean function is to find another Boolean function which is more efficient and equivalent with the original. In this research we make the application of that simplification. The application uses Quine-McCluskey Method and applied Bubble Sort and classification process, so that application can accept Boolean function as input with variables which do not necessarily alphabetically and long of minterms can be different. Bubble Sort applied on variables, so that variables input which do not necessarily alphabetically can consecutive automatically alphabetic. Whereas, classification applied on minterms, so that minterms input with different length can be combined using Quine-McCluskey Method procedure. Idempotent and Complement Law also added to Application simplification of Boolean function, so that simplification of Boolean function more optimal.
ABSTRAK
MODIFIKASI APLIKASI PENYEDERHANAAN FUNGSI ALJABAR BOOLEAN DENGAN PENERAPAN BUBBLE SORT DAN KLASIFIKASI
PADA METODE QUINE-MCCLUSKEY
Oleh
EKO DWI NUGROHO
Rangkaian digital merupakan salah satu representasi dari Aljabar Boolean. Terkadang Fungsi Boolean terlalu panjang, sehingga rumit untuk membuat rangkaian digital. Fungsi tersebut dapat disederhanakan dengan cara mencari fungsi lain yang ekuivalen dan lebih efisien, sehingga lebih mudah untuk membuat rangkaian digital. Aplikasi penyederhanaan Fungsi Boolean merupakan aplikasi untuk mencari Fungsi Boolean yang lain, tetapi ekuivalen dan lebih efisien. Aplikasi tersebut menggunakan Metode Quine-McCluskey dalam penyederhanaan Fungsi Boolean dan juga sudah diterapkan Bubble Sort dan klasifikasi, sehingga aplikasi dapat menerima masukan Fungsi Boolean dengan peubah yang tidak harus berurutan sesuai alfabet dan panjang minterms dapat berbeda-beda. Bubble Sort diterapkan pada peubah, sehingga pada masukan Fungsi Boolean peubah yang tidak berurutan sesuai alfabet dapat berurutan secara otomatis sesuai alfabet. Sedangkan, klasifikasi diterapkan pada minterms, sehingga pada masukan Fungsi Boolean minterms dengan panjang yang berbeda-beda dapat dikombinasikan sesuai prosedur Metode Quine-McCluskey. Hukum Idempoten dan Komplement juga ditambahkan ke Aplikasi penyederhanaan Fungsi Boolean, sehingga penyederhanaan Fungsi Boolean lebih maksimal.
DAFTAR ISI
Halaman
ABSTRAK ... i
SANWACANA ... x
DAFTAR ISI ... xii
DAFTAR GAMBAR ... xv
DAFTAR TABEL ... xvi
BAB I PENDAHULUAN ... 1
1.1Latar Belakang ... 1
1.2Rumusan Masalah ... 2
1.3Batasan Masalah... 2
1.4Tujuan ... 2
1.5Manfaat ... 3
BAB II TINJAUAN PUSTAKA ... 4
2.1Aljabar Boolean ... 4
2.2Minterms ... 5
2.3Sum-of-Products ... 6
2.4Metode Quine-McCluskey ... 6
2.5Bubble Sort ... 8
xiii
BAB III METODE PENELITIAN ... 9
3.1Tempat dan Waktu Penelitian ... 9
3.2Perangkat ... 9
3.3Metode Penelitian... 10
3.4Metode Pengembangan Sistem ... 10
3.4.1 Analisis Sistem ... 10
3.4.2 Desain Sistem ... 11
3.4.2.1Use Case Diagram ... 11
3.4.2.2Activity Diagram ... 12
3.4.2.3Sequence Diagram ... 13
3.4.2.4Class Diagram ... 15
3.4.2.5Desain Antarmuka Sistem ... 16
xiv
5.2Saran ... 40
BAB I
PENDAHULUAN
1.1 Latar Belakang
Rangkaian digital merupakan salah satu representasi dari Aljabar Boolean. Terkadang Fungsi Boolean terlalu panjang, sehingga rumit untuk membuat rangkaian digital. Fungsi tersebut dapat disederhanakan dengan cara mencari fungsi lain yang ekuivalen dan lebih efisien, sehingga lebih mudah untuk membuat rangkaian digital. Penyederhanaan Fungsi Boolean dapat dilakukan dengan tiga cara yaitu dengan cara Aljabar, Peta Karnaugh, dan Metode Quine-McCluskey.
Penelitian ini melanjutkan penelitian sebelumnya yang dilakukan oleh Zahroh (2013) dengan menggunakan Metode Quine-McCluskey. Metode Quine-McCluskey merupakan metode dengan cara mengubah peubah Fungsi
2
menerimamasukan Fungsi Boolean dengan peubah dapat tidak berurutan sesuai alfabet dan panjang minterms dapat berbeda-beda.
1.2 Rumusan Masalah
Rumusan masalah yang terbentuk berdasarkan latar belakang penelitian ini adalah memodifikasi aplikasi penyederhanaan Fungsi Boolean dengan menerapkan:
a. Bubble Sort pada peubah, sehingga pada masukan Fungsi Boolean peubah yang tidak berurutan sesuai alfabet dapat berurutan secara otomatis sesuai alfabet.
b. Klasifikasi pada minterms, sehingga pada masukan Fungsi Boolean minterms dengan panjang yang berbeda-beda dapat dikombinasikan sesuai
prosedur Metode Quine-McCluskey.
1.3 Batasan Masalah
Masalah yang dibahas dalam penelitian ini difokuskan pada penambahan Bubble Sort dan klasifikasi pada modifikasi aplikasi penyederhanaan Fungsi
Boolean.
1.4 Tujuan
3
peubah dapat tidak berurutan sesuai alfabet dan panjang minterms dapat berbeda-beda.
1.5 Manfaat
Penelitian ini diharapkan dapat bermanfaat berdasarkan tujuannya. Manfaat dari penelitian ini adalah:
a. Aplikasi penyederhanaan Fungsi Boolean lebih berkembang dengan dapat menerima masukan Fungsi Boolean dengan peubah dapat tidak berurutan sesuai alfabet dan panjang minterms dapat berbeda-beda.
b. Sebagai alat untuk membantu dalam menyederhanakan rangkaian digital.
BAB II
TINJAUAN PUSTAKA
2.1 Aljabar Boolean
Barnett (2011) menyatakan bahwa Aljabar Boolean dipublikasikan oleh George Boole dalam An Investigation of the Laws of Thought pada tahun 1954. Dalam karya ini, Boole mengembangkan sistem dari simbol-simbol (x dan +) yang mempresentasikan operasi-operasi pada himpunan yang secara simbolis dipresentasikan oleh huruf-huruf. Rosen (2012) dalam buku Discrete Mathematics and Its Applications, Aljabar Boolean menyediakan aturan dan
operasi untuk bekerja dengan himpunan {0, 1}. Operasi dalam Aljabar Boolean yang sebagian besar digunakan yaitu komplemen, penjumlahan, dan perkalian Boolean. Komplemen dari elemen, dilambangkan dengan tanda bar
( ¯ ), didefinisikan dengan 0 = 1 dan 1 = 0. Penjumlahan Boolean, dilambangkan dengan tanda tambah ( + ) atau OR, mempunyai nilai-nilai berikut:
1 + 1 = 1, 1 + 0 = 1, 0 + 1 = 1, 0 + 0 = 0
Perkalian Boolean, dilambangkan dengan tanda titik di tengah ( · ) atau AND, mempunyai nilai-nilai berikut:
5
Identitas dalam Aljabar Boolean sangat berguna untuk menyederhanakan rangkaian digital, (Rosen, 2012). Identitas dalam Aljabar Boolean dapat dilihat pada Tabel 2.1.
Tabel 2.1 Identitas Boolean
No Identitas Nama
1 x Hukum Komplemen Ganda
6
2.3 Sum-of-Products
Sum-of-Products adalah penjumlahan dari minterms atau bentuk normal
disjungtif dari Fungsi Booelan, (Rosen, 2012). Contoh Sum-of-Products
adalah F(x,y,z)xyzxyzxyz.
2.4 Metode Quine-McCluskey
istilah-7
istilah yang menjadi kandidat untuk dimasukkan dalam hasil sederhana sebagai penjumlahan dari hasil perkalian Booelan. Bagian kedua menentukan istilah tersebut untuk benar-benar digunakan.
Metode Quine-McCluskey menggunakan urutan langkah-langkah untuk menyederhanakan Fungsi Boolean dalam bentuk Sum-of-Product, (Rosen, 2012). Langkah-langkah tersebut adalah:
a. Nyatakan setiap minterms dalam n peubah menjadi bit string yang panjangnya n dengan ‘1’ di posisi ke-i, jika xi terjadi dan ‘0’ dalam posisi
tersebut, jika xi terjadi.
b. Kelompokkan bit string sesuai dengan banyak ‘1’ yang dipunyainya. c. Tentukan semua hasil dalam n - 1 peubah yang dapat dibentuk dengan
mengkombinasikan minterms. Minterms yang dapat dikombinasikan ditunjukkan oleh bit string yang berbeda tepat satu posisi. Representasikan hasil tersebut dalam n - 1 peubah dengan ‘1’ di posisi ke-i, jika xi terjadi
pada hasil, ‘0’ di posisi tersebut, jika xi terjadi, dan ‘-’ dalam posisi
tersebut, jika terjadi berbeda tepat satu posisi.
d. Tentukan semua hasil dalam n - 2 peubah yang dapat dibentuk dengan mengkombinasikan minterms dalam n - 1 peubah sebelumnya. Hasil dalam n - 1 peubah yang dapat dikombinasikan ditunjukkan oleh bit string yang
berbeda tepat satu posisi, serta mempunyai ‘-’ di posisi yang sama.
8
f. Cari semua hasil Fungsi Boolean yang muncul yang tidak digunakan untuk membentuk hasil dari penyederhanaan Fungsi Boolean.
2.5 Bubble Sort
Urut menurut Sjukani (2009) dalam buku Struktur Data (Algoritma dan Struktur Data 2) dengan C, C++ adalah data yang berada dalam tempat penyimpanan, dengan urutan tertentu baik urut menaik atau urut menurun. Pengurutan adalah proses urut. Kemudian, Munir (2007) dalam buku Algoritma dan Pemrograman mengatakan bahwa pengurutan merupakan proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Pengurutan dikatakan stabil jika dua atau lebih data yang sama tetap pada urutan yang sama sesudah pengurutan.
Terdapat beberapa metode pengurutan, salah satunya adalah Bubble Sort. Bubble Sort melakukan prinsip pertukaran elemen dalam pengurutan
sebanyak n – 1 langkah dengan n adalah panjang data, (Munir, 2007).
2.6 Klasifikasi
BAB III
METODE PENELITIAN
3.1 Tempat dan Waktu Penelitian
Peneliti melakukan penelitian ini di Jurusan Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Lampung. Waktu penelitian yang dilakukan pada semester ganjil tahun ajaran 2013-2014.
3.2 Perangkat
Perangkat yang digunakan untuk memodifikasi aplikasi penyederhanaan Fungsi Booelan dalam penelitian ini berupa perangkat keras dan perangkat lunak. Perangkat keras yang digunakan oleh peneliti adalah satu unit laptop dengan spesifikasi:
a. Prosesor Inter Core 2 Solo 1.4 Ghz. b. VGA Intel GMA 4500 MHD. c. RAM 4 GB DDR3.
d. Harddisk 320 GB HDD.
10
3.3 Metode Penelitian
Metode penelitian yang dilakukan oleh peneliti adalah studi literatur. Peneliti membaca dari buku-buku dan jurnal-jurnal yang berhubungan dengan Aljabar Boolean. Tujuan dari metode tersebut untuk memperoleh sumber referensi, sehingga memudahkan penelitian ini.
3.4 Metode Pengembangan Sistem
Penelitian ini menggunakan tahapan analisis sistem, desain sistem, kode program, dan penerapan dan pengujian sistem sebagai metode pengembangan sistem.
3.4.1 Analisis Sistem
Analisis sistem yang dilakukan oleh peneliti yaitu mencoba berbagai macam masukan Fungsi Boolean pada aplikasi penyederhanaan Fungsi Boolean, serta dengan melihat kode program pada aplikasi tersebut. Peneliti melakukan analisis sistem terhadap aplikasi penyederhanaan Fungsi Booelan yang sudah dikembangkan sebelumnya untuk menemukan kesalahan atau kekurangan pada aplikasi tersebut untuk diperbaiki atau dimodifikasi.
11
Tabel 3.1 Analisis Sistem Aplikasi Penyederhanaan Fungsi Booelan
No Penelitian Sebelumnya Penelitian Sekarang 1 Peubah harus berurutan
sesuai alfabet
Peubah tidak harus berurutan sesuai alfabet
2 Panjang minterms harus sama Panjang minterms tidak harus sama
3 Tidak menerapkan Hukum Komplemen
4 Tidak menerapkan Hukum Idempoten
Menerapkan Hukum
Idempoten, A+A = A dan AA = A pada masukan Fungsi Boolean
3.4.2 Desain Sistem
Berdasarkan hasil analisis, peneliti menuangkan konsep rancangan modifikasi aplikasi penyederhanaan Fungsi Boolean dalam bentuk diagram dan desain antarmuka sistem. Diagram yang digunakan adalah use case diagram, activity diagram, sequence diagram, dan class
diagram.
3.4.2.1Use Case Diagram
Use case diagram aplikasi penyederhanaan Fungsi Boolean terdapat
satu aktor dan tiga use case. Aktor yaitu sebagai pengguna aplikasi penyederhanaan Fungsi Boolean. Tiga use case yaitu Metode Quine-McCluskey, Bubble Sort, dan klasifikasikan. Hubungan antara
12
menyederhanakan fungsi tersebut menggunakan Metode Quine-McCluskey. Pada penyederhanaan Fungsi Boolean diterapkan Bubble
Sort dan klasifikasi. Bubble Sort diterapkan pada peubah, sehingga
pada masukan Fungsi Boolean, peubah tidak berurutan sesuai alfabet dapat berurutan secara otomatis sesuai alfabet. Klasifikasi diterapkan pada minterms, sehingga pada masukan Fungsi Boolean, minterms dengan panjang yang berbeda-beda dapat dikombinasikan sesuai prosedur Metode Qunie-McCluskey. Use case diagram tersebut dapat dilihat pada Gambar 3.1.
Gambar 3.1 Use Case Diagram Aplikasi Penyederhanaan Fungsi
Boolean
3.4.2.2Activity Diagram
Activity diagram aplikasi penyederhanaan Fungsi Boolean prosedur
13
minterms diklasifikasikan berdasarkan panjangnya, sehingga minterms
dengan panjang tertinggi yang dikombinasikan terlebih dahulu, dilanjutkan dengan panjang tertinggi kedua, dan seterusnya. Prosedur selanjutnya menyederhanakan Fungsi Boolean dengan menggunakan Metode Quine-McCluskey dan menampilkan hasilnya. Activity diagram tersebut dapat dilihat pada Gambar 3.2.
Gambar 3.2 Activity Diagram Aplikasi Penyederhanaan Fungsi
Boolean
3.4.2.3Sequence Diagram
Sequence diagram aplikasi penyederhanaan Fungsi Boolean proses
14
yang masuk dipisah menjadi minterms, kemudian setiap minterms dipisah menjadi peubah. Sesudah itu proses pengurutan peubah dilakukan menggunakan Bubble Sort dengan melihat kode ASCII huruf kapital setiap peubah. Peubah disatukan kembali menjadi minterms, jika sudah selesai melakukan proses pengurutan peubah.
Proses selanjutnya menghitung banyak klasifikasi. Sesudah itu diberi nama setiap klasifikasi sesuai dengan macam-macam panjang minterms dan dihitung banyak anggota setiap klasifikasi. Minterms
dapat diklasifikasikan berdasarkan panjangnya. Proses terakhir menyederhanakan Fungsi Booelan menggunakan Metode Quine-McCluskey dengan cara mengkombinasikan minterms. Jika minterms
15
Gambar 3.3 Sequence Diagram Aplikasi Penyederhanaan Fungsi
Boolean
3.4.2.4Class Diagram
Class diagram aplikasi penyederhanaan Fungsi Boolean terdapat satu
kelas, sembilan tipe data, dan delapan operasi. Kelas bernama penyederhanaan. Sembilan tipe data yaitu integer, long, double, String, array integer satu dimensi, array integer dua dimensi, array
String satu dimensi, array String dua dimensi, dan ArrayList. Tipe
16
String yaitu I, keluaran, dan tahap. Tipe data array integer satu
dimensi yaitu B, D, E, F, dan status. Tipe data array String satu dimensi yaitu A dan C. Tipe data array integer dua dimensi yaitu CC. Tipe data array String dua dimensi yaitu AA, BB, dan DD. Tipe data ArrayList yaitu S, V, X, dan Z. Delapan operasi yaitu pengurutan(),
tanda_strip(), biner(), klasifikasi(), kombinasi(), pemilihan(), huruf(), dan efisiensi(). Aplikasi penyederhanaan Fungsi Boolean mempunyai satu kelas karena aplikasi tersebut mempunyai satu masukan dan satu antarmuka. Class diagram tersebut dapat dilihat pada Gambar 3.4.
Gambar 3.4 Class Diagram Aplikasi Penyederhanaan Fungsi
Boolean
3.4.2.5Desain Antarmuka Sistem
17
dan keluaran hasil penyederhanaannya. Selain itu terdapat dua tombol yaitu tombol untuk memperoses penyederhanaan Fungsi Boolean dan tombol untuk reset Fungsi Boolean. Pada masukan Fungsi Boolean terdapat dua kolom yaitu untuk memasukkan Fungsi Boolean dan untuk menampilkan banyak minterms Fungsi Boolean sebelum disederhanakan. Sedangkan pada keluaran Fungsi Booelan terdapat lima kolom yaitu untuk menampilkan Fungsi Boolean sesudah disederhanakan, untuk menampilkan banyak minterms Fungsi Boolean sesudah disederhanakan, untuk menampilkan efisiensi penyederhanaan Fungsi Boolean, untuk menampilkan waktu proses penyederhanaan Fungsi boolean, dan untuk menampilkan langkah-langkah penyederhanaan Fungsi Boolean.
Perbedaan dari penelitian sebelumnya, pada penelitian sebelumnya terdapat kolom masukan banyaknya peubah, sedangkan pada penelitian ini kolom tersebut dihilangkan dan digantikan dengan menampilkan banyaknya minterms Fungsi Boolean sebelum disederhanakan, serta ditambah menampilkan waktu proses penyederhanaan Fungsi Boolean. Selain itu pada penelitian ini ditambahkan kolom untuk menampilkan banyaknya minterms Fungsi Boolean sesudah disederhanakan dan kolom untuk menampilkan waktu proses penyederhanaan Fungsi Boolean.
18
sesuai keinginan pengguna pada saat aplikasi tersebut sedang dibuka. Desain antarmuka sistem tersebut dapat dilihat pada Gambar 3.5.
Gambar 3.5 Desain Antarmuka Sistem Aplikasi Penyederhanaan Fungsi Boolean
Keterangan nomor pada Gambar 3.4:
1. Masukan Fungsi Boolean (tipe kolom: dapat ditulis dan dibaca). 2. Banyak minterms awal (tipe kolom: hanya dapat dibaca).
3. Hasil penyederhanaan Fungsi Boolean (tipe kolom: hanya dapat dibaca).
4. Banyak minterms akhir (tipe kolom: hanya dapat dibaca).
5. Efisiensi penyederhanaan Fungsi Booelan (tipe kolom: hanya dapat dibaca).
19
7. Langkah-langkah penyederhanaan Fungsi Boolean (tipe kolom hanya dapat dibaca).
3.4.3 Kode Program
Kode program tentang Bubble Sort dan klasifikasi yang telah dibuat diterapkan pada aplikasi penyederhaaan Fungsi Aljabar Boolean. Bubble Sort diterapkan pada peubah, sehingga pada masukan Fungsi
Boolean peubah tidak berurutan sesuai alfabet dapat berurutan secara otomatis sesuai alfabet. Klasifikasi diterapkan pada minterms, sehingga pada masukan Fungsi Boolean minterms dengan panjang yang berbeda-beda dapat kombinasikan sesuai dengan prosedur Metode Quine-McCluskey.
Potongan kode program Bubble Sort sebagai berikut:
for(i=0;i<J;i++){
for(j=0;j<AA[i].length-1;j++){ for(k=j+1;k<AA[i].length;k++){
20
Potongan kode program klasifikasi sebagai berikut:
l=0;
for(i=0;i<L;i++){
BB[i]=new String[D[i]]; for(j=0;j<D[i];j++){
for(k=l;k<J;k++){
//Membandingkan minterms berdasarkan panjangnya.
if(AA[k].length==B[i]){
3.4.4 Penerapan dan Pengujian Sistem
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil penelitian yang sudah dilakukan oleh peneliti dapat disimpulkan bahwa:
a. Bubble Sort dan klasifikasi membuat aplikasi penyederhanaan Fungsi Boolean dapat menerima masukan Fungsi Boolean dengan peubah yang tidak harus berurutan sesuai alfabet dan panjang minterms dapat berbeda-beda.
b. Hukum Idempoten dan Komplemen membantu aplikasi penyederhanaan Fungsi Boolean menyederhanakan Fungsi Boolean secara maksimal.
5.2 Saran
Saran-saran yang dapat diberikan oleh peneliti untuk penelitian lebih lanjut adalah:
a. Aplikasi penyederhanaan Fungsi Boolean dapat cocok dengan piranti berjalan.
DAFTAR PUSTAKA
Anonim. 2008. Kamus Besar Bahasa Indonesia. Departemen Pendidikan Nasional. http://bahasa.kemdiknas.go.id/kbbi/index.php. Diakses tanggal 1 Oktober 2013.
Barnett, Janet Haine. 2011. Applications of Boolean Algebra: Claude Shannon and Circuit Design. Colorado State University. Pueblo.
Munir, Rinaldi. 2007. Algoritma dan Pemrograman. Informatika. Bandung. Rosen, Kenneth H. 2012. Discrete Mathematics and Its Applications, Seventh
Edition. McGraw-Hill. New York.
Seda, Milos. 2008. Heuristic Set-Covering-Based Postprocessing for Improving the Quine-McCluskey Method. International Journal of Information and Mathematical Sciences 4:2. Brno, Czech Republic.
Sjukani, Moh. 2009. Struktur Data (Algoritma dan Struktur Data 2) dengan C, C++, Edisi Tiga. Mitra Wacana Media. Jakarta.
Tomaszewski, Sebastian P., Celik, Ilgaz U., and Antoiou, George E. 2003. WWW-Based Boolean Function Minimization. Int. J. Appl. Math. Comput. Sci. USA. Vol. 13. No. 4. pp. 577–583.