ulis ulang.
<< ___________ 10.1 hasil eksekusi class_1.py bagian ke - 1 >>
86
<< ___________ 10.2 hasil eksekusi class_1.py bagian ke - 2 >>
Mengenal Built-in Function pada Class dan Object
Berikutnya kita akan mengenal beberapa built-in class attribute yang akan bisa digunakan saat kita
membuat kelas apapun. Built-in class attribute akan selalu menyertai kelas yang kita rancang.
Berikut beberapa atribut yang bisa Anda gunakan untuk mengakses informasi dari sebuah kelas :
__doc__, digunakan untuk mengakses dokumentasi yang terdapat pada kelas
__name__, digunakan untuk mengakses nama kelas
__dict__, digunakan untuk mendapatkan namespace dari kelas ini . Kalau pada objek
yang sudah diinstansiasi method ini akan mengeluarkan informasi tentang atribut yang
sudah terisi nilai
__module__, digunakan untuk mendapatkan informasi dimana lokasi modul yang
mendefinisikan kelas ini
__bases__, digunakan untuk melihat darimana kelas ini diwariskan. Pewarisan pada
OOP yaitu memakai karakteristik suatu kelas pada kelas yang ingin memakai
karakteristik kelas yang mewariskannya.
Sebagai contoh ada beberapa built-in class attribute yang bisa diakses kelas dan objek hasil
instansiasi dan ada yang hanya bisa diakeses kelas.
87
listing : class_2.py
class PersegiPanjang:
'''
Sebuah kelas yang memodelkan persegi panjang.
memiliki dua atribut yaitu panjang dan lebar.
Bisa menghitung luas dan keliling.
Bisa juga meng___________ persegi panjang sesuai atribut
'''
def __init__(self, panjang, lebar):
self.panjang = panjang
self.lebar = lebar
def hitung_luas(self):
return self.panjang * self.lebar
def hitung_keliling(self):
return (2*self.panjang) + (2*self.lebar)
def ____________persegi_panjang(self):
for i in range(0, self.lebar):
for j in range(0, self.panjang):
print '*',
print ""
def ____________persegi_panjang_tanpa_isi(self):
for i in range(0, self.lebar):
if i > 0 and i < self.lebar-1:
for j in range(0, self.panjang):
if j > 0 and j < self.panjang-1:
print '-',
else:
print '*',
else:
for j in range(0, self.panjang):
print '*',
print ""
PersegiPanjangA = PersegiPanjang(20, 10)
print PersegiPanjang.__doc__
print PersegiPanjang.__name__
print PersegiPanjang.__dict__
print PersegiPanjang.__module__
print PersegiPanjang.__bases__
88
print PersegiPanjangA.__doc__
print PersegiPanjangA.__dict__
print PersegiPanjangA.__module__
Pada contoh diatas, atribut __name__ dan __bases__ hanya bisa diakses oleh kelas. sedang
objek hasil instansiasi tidak bisa mengaksesnya.
<< ___________ 10.3 hasil class_2.py >>
Pembahasan mengenai OOP ini tidak bisa dibahas secara keseluruhan dalam satu bab. Ada banyak
hal yang harus diulas seperi inheritance, polymorphism, abstract, overriding, overload, dan lain –
lain.
11. Pengenalan Module
89
Module dan Packages
Module yaitu istilah file yang berisi kode Python. Jadi dari awal sebenarnya kita sudah membuat
module Python. Hanya saja pada konsep module ini, kode Python yang akan digunakan berulang
akan dipisahkan dari file utama ke dalam file lain yang khusus menampung kode Python ini .
Di dalam module kita bisa menyimpan class, function, variabel, dan struktur data yang bisa
digunakan oleh program. Misal kita ingin membuat sebuah kode yang hanya berisi jenis – jenis
segitiga seperti segitiga sama kaki, segitiga sembarang, segitiga sama sisi, dan segitiga siku – siku.
Kenapa tidak dicampur saja dengan jenis bidang yang lain ? Hal ini dilakukan agar kita mudah
dalam mengelola kode Python yang kita tulis. Contoh lainnya misal kita menulis kode yang
berinteraksi dengan database dan kode untuk melakukan proses penulisan laporan secara terpisah.
Dalam hal ini module memiliki kode Python yang reusable agar kode yang ditulis pada program
kita terduplikasi. sedang file Python yang akan dijalankan dan memanggil function, class, atau
variabel dari kumpulan module yang dibuat berisi runnable code. Kode yang dieksekusi oleh
interpreter Python untuk menampilkan wujud dari program yang dibuat.
lalu module – module yang sudah ditulis bisa dikelompokan kedalam sebuah package.
Package ini sendiri berupa folder yang memiliki file __init__.py, agar folder ini dikenali
sebagai module. Di dalam package ini module – module memiliki tujuan dan fungsional yang
seragam. Misal pada contoh yang akan kita coba, terdapat sebuah package bidang, yang berisi
module bidang segitiga dan persegi. Di dalamnya terdapat file __init__.py yang bertugas untuk me-
load semua module yang ada di dalam package, segitiga.py yang berisi class segitiga, dan
persegi.py yang berisi class persegi. Di dalam file segitiga.py dan persegi.py masing – masing bisa
diisi berbagai jenis bidang yang sesuai nama module ini . Hanya saja untuk contoh kali ini
dibatasi kepada satu jenis bidang saja
Membuat Module – Module di dalam Packages
sesudah memahami konsep module, mari kita coba program yang agak banyak ini. Sebelumnya di
direktori tempat kita akan menulis program, terlebih dahulu buatlah sebuah folder baru bernama
bidang. Folder ini merupakan package yang akan menyimpan persegi.py, segitiga.py, dan
__init__.py.
listing : persegi.py
class Persegi:
def __init__(self, s):
self.sisi = s
def SetSisi(self, s):
self.sisi = s
def GetSisi(self):
return self.sisi
90
def HitungKeliling(self):
return 4 * self.sisi
def HitungLuas(self):
return self.sisi * self.sisi
Kode persegi.py diatas hanya bersegi class Persegi yang memiliki atribut sisi dan method –
method-nya. Di dalam module ini kita bisa saja menulis kelas PersegiPanjang. Hal ini
memudahkan kita agar bidang yang jenisnya persegi tidak tercampur dengan bidang yang jenisnya
segitiga. Pastikan Anda menyimpan file persegi.py di dalam folder bidang.
listing : segitiga.py
import math
class Segitiga:
def __init__(self, a, t):
self.alas = a
self.tinggi = t
def SetAlas(self, a):
self.alas = a
def GetAlas(self):
return self.alas
def SetTinggi(self, t):
self.tinggi = t
def GetTinggi(self):
return self.tinggi
def GetSisiMiring(self):
return math.sqrt(self.alas**2 + self.tinggi**2)
def HitungKeliling(self, s):
return self.alas + self.tinggi + s
def HitungLuas(self):
return (self.alas * self.tinggi) / 2
Hampir sama dengan fungsi dari module persegi.py, hanya saja module segitiga.py akan diisi
berbagai jenis segitiga. Selain itu pada kode diatas kita memanggil module math sebab saat nanti
module segitiga.py ini diload, kode yang memakai method – method pada math harus di load
juga dari module math. Pastikan module ini tersimpan di folder bidang.
91
listing : __init__.py
from segitiga import Segitiga
from persegi import Persegi
if __name__ == '__main__':
pass
lalu file yang mesti ada di dalam sebuah package yaitu __init__.py. File ini berfungsi
untuk me-load isi module ke dalam memori agar isi module bisa digunakan di file yang berisi
runnable code. Pada kode diatas, terdapat sintaks : from segitiga import Segitiga. Keyword from
yaitu keyword yang digunakan untuk menentukan package atau module mana yang akan kita
rujuk, sedang import digunakan untuk mengambil class, function atau variabel yang
didefinisikan di dalam module. Disana kita meng-import dua buah kelas yaitu Segitiga dan Persegi
dari dua module berbeda yaitu segitiga.py dan persegi.py. sedang kode dibawahnya digunakan
jika file __init__.py ingin menjalankan perintah tertentu. Pastikan file ini disimpan di folder bidang.
memakai Module di File Utama
Sampai akhirnya kita tiba untuk menulis kode utama. Kode utama ini merupakan kode yang berisi
runnable code, dan memakai class yang sudah didefinisikan di module – module sebelumnya.
Dengan demikian kode program tidak akan menumpuk di file utama.
Jika Anda berhasil mengikuti petunjuk pada bab ini, module, packages dan file utama harus
memiliki sususan seperti berikut :
<< ___________ 12.1 struktur module packages bidang >>
listing : main.py
92
from bidang import Segitiga, Persegi
sgtgA = Segitiga(3, 9)
prsgA = Persegi(5)
print "Luas Segitiga A : ", sgtgA.HitungLuas()
print "Sisi Miring Segitiga A : ", sgtgA.GetSisiMiring()
print "Keliling Segitiga A : ", sgtgA.HitungKeliling(sgtgA.GetSisiMiring())
print "\n"
print "Luas Persegi A : ", prsgA.HitungLuas()
print "Keliling Segitiga A : ", prsgA.HitungKeliling()
Pada kode diatas kita meng-import kelas dari package bidang. lalu melakukan instansiasi dan
memberikan nilai sesuai yang kita inginkan. lalu kita akses method – method yang terdapat
pada kelas ini untuk mendapatkan informasi luas, dan keliling pada masing – masing bidang.
Jika berhasil maka kode yang akan dijalankan seperti berikut :
<< ___________ 12.2 eksekusi main.py >>
93
Daftar Pustaka
Python Software Foundation Team. Python v2.7.2 Documentation 1990 – 2011. The Python
Software Foundation.
Downey, Allen, Jeffrey Elkner, dan Chris Meyers. How to Think Like a Computer Scientist :
Learning with Python. 2002. Green Tea Press : Wellesley, Massachusetts
Swaroop. A Byte of Python. 2005. IonLab : Bangalore, India
Craven, Paul Vincent. Introduction to Computer Science Using Python and Pygame. 2011.
Simpson College, Computer Science Department : Indianola, Iowa
94
Lampiran 1 – Teknologi yang memakai Python
Django
Sebuah web framework yang memiliki motto “The Web
Framework for Perfectionist with Deadline”. Django
merupakan salah satu megaframework yang sudah
memiliki template engine, object relational mapper,
session, security, pagination, logging, authentication,
caching, dan lain – lain.
Lebih lengkap kungjungi link berikut :
http://www.djangoproject.com
PyGame
PyGame yaitu wrapper untuk Simple Direct Media
Library, sebuah library untuk memanipulasi grafis dan
media berupa audio dan video. Dengan PyGame Anda
bisa membuat game berbasis 2D. Kalaupun ingin
membuat game 3D dibutuhkan library lain untuk
mendukung pengolahan 3D
Fitur – fitur yang bisa didapatkan dari module – module
PyGame :
cdrom, mengelola cdrom dan pemutar suara
cursors, me-load ___________ kursor, dan
menyertakan kursor standard
display, mengendalikan layar
draw, meng___________ grafis sederhana pada
Surface
event, mengelola event dan antrian event
font, membuat dan memakai Truetype fonts
image, menyimpan dan me-load ___________
joystick, mengelola joystick
key, mengelola keyboard
mouse, mengelola mouse
movie, memainkan film bertipe mpeg
sndarray, memanipulasi suara dalam angka
surfarray, memanipulasi ___________ dalam angka
time, mengendalikan waktu
transform, memperbesar, memutar, dan
membalik ___________
Bagi teman – teman yang ingin memakai Pygame
lebih lanjut bisa kunjungi link berikut :
http://www.pygame.org
95
Panda 3D
Panda 3D yaitu 3D Engine, library dari kumpulan
fungsi – fungsi untuk 3D rendering dan pengembangan
game. Library-nya ditulis dengan C++. Untuk
pengembangan game dengan Panda3D, Anda harus
menulis dalam bahasa Python yang mengendalikan
library di Panda3D.
Panda3D memiliki dukungan seperti : The Scene
Graph, Model dan Actor,Texturing, Shaders, Camera
Control, Sound, Interval, Task dan Event Handling, Text
dan Image Rendering, DirectGUI, Render Effect,
Collision Detection, dan lainnya
lebih lengkap kunjungi link berikut ini :
http://www.panda3d.org
SimpleCV
SimpleCV merupakan singkatan dari Simple Computer
Vision, merupakan framework python yang mudah
digunakan dan membungkus library computer vision
open source dan algoritma terkait untuk pemecahan
masalah.
Beberapa fitur yang didukung oleh SimpleCV antara
lain : membaca ___________, konversi ___________ ke RGB,
konversi ___________ ke HLS, konversi ___________ ke HSV,
konversi ___________ ke Gray, membuat ___________ baru dalam
format bitmap, menyalin ___________, memperbesar ___________,
pencerminan ___________, memperhalus ___________, edge
detection, dan lain – lain.
Lebih lengkapnya checklink berikut ini :
http://www.simplecv.org
NLTK
Teknologi Natural Language Processing semakin hari
semakin maju. Sebagai contoh, banyak smartphones,
yang sudah mendukung pengenalan tulisan, lalu
banyak mesin pencari yang mendukung penulisan teks
ta struktur, ada juga penerjemahan bahasa.
NLTK hadir sebagai salah satu tools yang ditulis dalam
Python untuk mendukung teknologi Natural Language
Processing. Beberapa fitur yang didukung oleh NLTK
antara lain : Language Processing, Text Corpora,
Processing Raw Text, Categorizing and Tagging Words,
Parsing text, Semantic Analysis, dan lain – lain.
Lebih lanjut cobe kunjungi link berikut :
http://www.nltk.org
Flask Flask merupakan micro web framework yang
mendukung untuk diintegrasikan dengan berbagai
96
library pendukung lainnya. Flask memerlukan WSGI
Toolkit yang dinamakan Weurkzeug dan Template
Engine Jinja2.
Flask memiliki fitur seperti : templating engine, testing
application, logging application error, debuggin
application error, configuration handling, signal,
pluggable view, extension, dan lain – lain.
Lebih lengkap kunjungi link berikut :
http://www.flask.org
Perkembangan Teknologi Informasi saat ini sangatlah pesat. Hal ini
menyebabkan semakin banyaknya kebutuhan akan tenaga kerja yang memiliki
kemampuan berbasis Teknik Informatika. Kebutuhan ini pula yang mengakibatkan
banyaknya pengangguran tinggi membuka Program Studi berbasis Teknologi
Informasi.
Adapun ilmu yang mempelajari tentang objek-objek diskrit yaitu salah
satunya yaitu Karnaugh Map (K-Map). K-Map yaitu metode grafis untuk
menyederhanakan fungsi Boolean yang ditemukan oleh Maurice Karnaughpada
tahun 1953. Jenis-jenis K-Map ada banyak tergantung variabel, diantaranya yaitu 2
variabel, 3 variabel, 4 variabel, 5 variabel, dan 6 variabel.
sebab dalam mempelajari materi K-Map banyak orang yag mengalami
kesulitan dan kejenuhan dalam pemahaman dan menentukan logikannya.maka
dibutuhkan aplikasi pembelajaran khusus mempelajari K-Map untuk
mememudahkan seseorang untuk mempelajarinya ini .
A. Pengenalan Umum Karnough Map
Karnaugh Map yaitu suatu metode termudah untuk penyederhanaan
ekspresi logika sampai enam variabel input. Dalam metode ini semua kombinasi
input yang mungkin direpresentasikan pada map (peta). Fungsi logika yang terdiri
dari n variabel memiliki 2n kotak. Maksud penulisan variable pada peta (map) ini,
agar dalam peta hanya ada satu variable yang berubah dari bentuk komplemen
menjadi bentuk bukan komplemen. Karnaugh Map merupakan pengganti persamaan
aljabar boole.
Peta Karnaough yaitu sususnan segiempat beraturan yang mengikuti pola
2n , dimana n yaitu jumlah variable masukan pada rangkaian logika. Setiap
segiempat berisi kombinasi variable input dan komplemennya
Peta Karnough atau lebih dikenal dengan istilah K-map merupakan metode
grafis untuk menyederhanakan fungsi Boolean. Metode ini ditemukan oleh Maurice
Karnough pada tahun 1953. K-map ini terbentuk atau tersusun dari kotak-kotak
berbentuk bujur sangkar yang bersisian Setiap kotak merepresentasikan sebuah
minterm. Tiap kotak dikatakan bertetangga jika minterm-minterm yang
merepresentasikannya berbeda hanya sebuah literal. K-map dapat dibentuk dari
fungsi Boolean yang dispesifikasikan dengan ekspresi Boolean maupun fungsi yang
direpresentasikan dalam bentuk table kebenaran. Keluaran yang dikehendaki
ditandai dengan “1”. Sisanya ditandai 0. Banyaknya jumlah sel pada peta karnaugh
mengikuti aturan biner, yaitu 2 variabel diperlukan 2 2=4 sel, 3 variabel 23 = 8. Dan
jika 4 variabel 2 4 16 sel (Hariningsih, Astuti, & Astuti, 2014, hal. 238).
B. Kelebihan Metode Karnough Map
Meskipun aljabar Boole merupakan suatu sarana yang berguna untuk
menyederhanakan pernyataan logika, belum dapat dipastikan bahwa pernyataan
yang disederhanakan dengan aljabar Boole itu merupakan pernyataan yang paling
sederhana. Prosedur meminimumkan itu agak sulit dirumuskan sebab tidak adanya
aturan yang jelas untuk menentukan langkah manipulasinya. Metode peta karnaugh
memberikan suatu prosedur yang mudah dan langsung dalam proses
penyederhanaan fungsi Boole. Metode pemetaan itu awalnya diusulkan oleh Veitch,
lalu dimodifikasi oleh Karnaugh. Itulah alasannya namanya dikenal sebagai diagram
Veitch atau Peta Karnaugh (K-Map).
C. Aplikasi Peta Karnough Map
Karnough-Map dapat berbentuk dalam beberapa variabel :
1. Peta Karnough Dua Variable
Fungsi logika dengan dua input A dan B dapat di___________kan dengan
menggunakan Karnaugh Map sebagai berikut :
Contoh 1 : ___________kan K-Map untuk fungsi logika : F = AB’ + AB
Dengan menggunakan K-map, secara mudah dapat dilakukan penyederhanaan
fungsi logika, yaitu dengan cara membuat loop untuk output yang berlogika 1.
Loop dapat dilakukan untuk jumlah 2n. Dari loop yang ada ternyata variabel A
yang tidak berubah sehingga secara langsung dapat ditulis ekspresi output : F =
A.
5
Contoh 2 :
Suatu rangkaian logika diinginkan bekerja dengan cara tertentu, sesuai dengan
tabel kebenaran berikut:
Jika disusun ke dalam peta karnaugh ditulis sebagai berikut:
(Irwan Kurniawan, 2013, hal. 2)
2. Peta Karnough Tiga Variable
Peta Karnaugh meng___________kan harga/keadaan suatu fungsi untuk setiap
kombinasi masukan yang mungkin dibentuk. Jadi sebenarnya, peta Karnaugh
memetakan tabel kebenaran dalam kotak-kotak segi empat yang jumlahnya
tergantung dari jumlah peubah (variabel) masukan. Untuk fungsi dengan 2
6
peubah, peta Karnaugh akan terdiri atas 22 = 4 kotak, untuk 3 peubah petanya
akan terdiri atas 23 = 8 kotak dan seterusnya untuk n peubah petanya akan terdiri
atas 2n kotak. Setiap kotak berisi 0 atau 1 yang menunjukkan keadaan fungsi
untuk kombinasi masukan yang diwakili kotak bersangkutan
Untuk fungsi dengan 2 peubah peta Karnaugh disusun seperti
yangditunjukkan dalam ___________ 1.1. Untuk penamaan seperti pada ___________
1.1(a), kolom dalam peta mewakili peubah A sedang barisnya mewakili
peubah B. Dalam ___________ 3.1(b), kolom mewakili harga B sedang baris
mewakili harga A.
Harga yang akan diisikan dalam kolom 0 baris 0 menunjukkan harga
fungsi untuk kombinasi A= 0 dan B= 0. Untuk ___________ (a), kolom 1 baris 0
menunjukkan harga fungsi untuk kombinasi masukan A = 1 dan B = 0. Sebagai
contoh, dalam ___________ 1.2 ditunjukkan peta untuk f = A B + A B.
___________ 1.2. peta carnough untuk fungsi f = AB + AB
Setiap kotak diisi sesuai dengan harga yang sesuai dengan harga yang
diperoleh dari tabel kebenarannya. Perhatikan bahwa kolom 0 baris 1 yang
7
sesuai dengan harga fungsi untuk sukumin AB (A=0, B=1) diisi dengan 0 sebab
untuk kombinasi masukan ini, f=0. Untuk A=1 dan B=0, f=1 sehingga kolom 1
baris 0 diisi 1. Kotak kotak lain diisi sesuai dengan harga fungsi f. Tampak
bahwa pengisian peta Karnaugh semata-mata memindahkan tabel kebenaran
untuk f ke dalam kotak-kotak dalam peta. Biasanya hanya harga 1 yang diisikan
ke dalam peta sedang harga 0 dibiarkan saja kosong. Dengan perjanjian
seperti ini, maka setiap kotak yang kosong sudah diartikan sebagai 0. Ini
sebenarnya hanyalah mengurangi kesan sesak pada peta itu dan kalaupun diisi
tidaklah mengubah artinya. namun bila kita mau mencari bentuk minimum
daripada fungsi dalam bentuk perkalian dari pada jumlah, artinya
mengekspansikannya ke sukumax, dimana kita tertarik hanya pada harga 0
fungsi, maka sebaiknya hanya harga-harga 0 yang kita isikan ke dalam peta.
Sekarang perhatikan bentuk sukumin yang diwakili oleh kotak-kotak
yang berisi 1 dalam ___________ 1.2 di atas. Dapat dilihat bahwa perjumlahannya,
yaitu f = A B + A B, yang dapat juga diperoleh dari tabel kebenaran, sebenarnya
dapat disederhanakan menjadi:
f = (A+ A) B
= B
Dari peta Karnaugh, ini dapat dilihat dengan mudah sebab kotak yang
berisi 1 yang berdekatan harganya dapat dinyatakan dengan 00 dan 10. Dari
kedua kode ini, kelihatan bahwa pada posisi pertama terjadi perubahan dari 0 ke
1 sedang pada posisi kedua tetap/sama dengan 0. sebab posisi pertama
mewakili A dan kedua mewakili B, maka peubah A akan hilang dari
sukuminnya, dan sebab harga posisi kedua yang sesuai dengan B harganya 0,
maka B akan muncul dalam bentuk komplemennya sehingga kita peroleh f = B.
Dalam hal ini kotak 00 (AB) bergabung dengan kotak 10 (AB) membentuk
faktor gabungan f = x0 = B.
Untuk 3 peubah dapat dibentuk 23 = 8 macam kombinasi. Ini berarti
bahwa untuk memetakan harga fungsi dengan tiga peubah dalam peta Karnaugh
dibutuhkan 8 kotak. Peta dengan 8 kotak ini dapat di___________kan mendatar atau
8
tegak dan pemberian nama peubahpun dapat dimulai dari kolom maupun baris.
Yang harus dipegang yaitu bahwa penentuan harga desimal dari kode biner
setiap sukumin harus tetap sesuai urutan pemberian nama peubah itu dalam peta.
Pada ___________ 1.3 ditunjukkan beberapa kemungkinan bentuk peta Karnaugh
untuk fungsi 3 peubah A, B, dan C.
Kalau dalam peta dengan dua peubah hanya 1 peubah yang diwakili tiap
baris dan kolom, maka untuk 3 peubah, setiap kolom (baris) menunjukkan 2
peubah dan baris (kolom) menunjukkan 1 peubah. Untuk menentukan harga
setiap peubah untuk setiap kotak, maka harus dipegang bahwa setiap dua kotak
yang berdekatan hanya satu peubah yang boleh berbeda keadaan. Perhatikan
penomoran kolom pada ___________ 1.3(a) dan (b) dan penomoran baris pada
___________ 1.3(c) dan (d). Ini harus dipenuhi agar dua kotak yang berdekatan dapat
bergabung. Setiap dua kotak yang bergabung maka satu peubah hilang dari
sukumin gabungannya dan bila 4 kotak bergabung maka 2 peubah akan hilang
dari sukumin gabungannya.
Secara umum, n peubah akan hilang dari sukumin gabungannya bila 2n
kotak bergabung. Untuk tiga peubah, bila 8 ( 23 ) kotak bergabung, maka 3
peubah akan hilang dari sukumin gabungannya dan ini terjadi bila semua kotak
terisi 1 yang berarti bahwa untuk semua kombinasi masukan, f= 1.
9
Dalam ___________ 1.3, setiap kotak ditandai dengan nomor sukuminnya, mi,
untuk i= 0,1,2, .., 7. Ini perlu diingat untuk mempermudah pengisian peta bila
fungsi yang akan disederhanakan diberikan dalam bentuk perjumlahan nomor
sukumin (sigma mi) (Amin, 2014).
3. Peta Karnough Empat Variable
Untuk 4 peubah dibutuhkan peta Karnaugh dengan 16 kotak dalam
susunan 4 x 4 kotak. Kalau keempat peubah ini disebut dengan nama A, B,
C, dan D, maka kolom dapat dipakai untuk menyatakan harga/ keadaan A dan B
sedang baris menyatakan harga C dan D atau kolom menyatakan C dan D
dan baris menyatakan A dan B. Bagaimanapun juga, aturan bahwa 2 kotak yang
berdekatan hanya berbeda satu peubah harus tetap dipegang. Urutan penomoran
serupa dengan yang dilakukan pada peta untuk 3 peubah di depan, seperti yang
ditunjukkan juga pada ___________ 3.6(a). Perlu diperhatikan bahwa kolom paling
pinggir kanan dan kiri, begitu juga baris paling atas dan paling bawah, yaitu
berdekatan sehingga dapat bergabung. Sebagai contoh, pada ___________ 3.6(b)
ditunjukkan penyederhanan fungsi:
f = sigma m (0,2,8,10,12,14).
Dengan melakukan penggabungan seperti yang ditunjukkan pada ___________
3.6 (b), yaitu penggabungan sukumin (0,2,8,10) dan (8,10,12,14), maka fungsi
minimum hasil penggabungan yaitu :
f = BD + A D
10
Perhatikanlah penggabungan kotak-kotak pada baris bawah dan atas serta
penggabungan kotak-kotak di sudut. (Munir, 2014).
D. Metode penyederhanaan dengan Peta Karnaugh
Pengelompokan Jika sel-sel dalam peta karnaugh terisi berdekatan, maka
dapat dilakukan pengelompokan, pengelompakan yang paling sederhana dan dasar
yaitu pengelompokan secara berapasangan
1. Pegelompokan secara berpasangan (2 sel berdekatan baris atau kolom) Contoh
1:
Bilangan “1” pertama menyatakan perkalian ABC dan “1” kedua menyatakan
A?̅?C. Jika kita lihat pasangan dari 2 buah sel (garis merah) yang dibentuk pada
peta Karnaugh diatas, hanya ada satu variabel yang mengalami perubahan
bentuk (dari non komplemen (𝐵) menjadi kompleman (?̅?), sementara variabel
lainnya ( A dan C) tidak mengalami perubahan. Sehingga variabel B dapat
dihapus, tersisa variabel A dan C saja , dan hasilnya akan menjadi .
Pembuktian dengan aljabar bolean :
Y = ABC +A?̅?𝐶
Y = AC(?̅? + 𝐵)
Y = AC
Contoh :
11
Pengelompokan dengan pasangan kuad (4)
Contoh 1:
Variabel C dan D dan komplemennya terhapus
Hasilnya : AB
Contoh 2 :
Variabel B dan D dan komplemennya akan Terhapus
Hasilnya : AC
12
Contoh 3 :
Variabel A dan C dan komplemennya akan terhapus
Hasilnya : BD
Pengelompokan dengan pasangan Oktat (8)
Pengelompokan Oktat akan menghapus 3 varibel dan komplemen-
komplemennya. Dari contoh diatas variabel A C D beserta komplemennya akan
terhapus sehingga hasilnya yaitu B.
2. Redudant/Overlaing
Kelompok Overlaping/redundant dapat dihapus untuk menyederhanakan
rangkaian logika. Sehingga hasilnya yaitu
Y = B𝐶̅D + ACD
13
3. Penggulungan
4. Keadaan tidak peduli
Variabel x pada peta karnough dapat dianggap sebagai logika “1” atau logika
“0” tergantung kondisi yang mana yang lebih menguntunkan
Keadaan Don’t care yaitu kondisi nilai peubah yang tidak diperhitungkan oleh
fungsinya. Artinya yaitu baik nilai 0 atau nilai 1 dari peubah Don’t Care tidak
berpengaruh pada hasil fungsi ini . Dalam menyederhanakan fungsi
Boolean dengan K-map yang memuat kondisi Don’t Care ada dua hal penting
yang dijadikan pegangan. Pertama kita anggap semua nilai Don’t Care ( yang
disimbolkan dengan “V” ) sama dengan satu kemudian membentuk kelompok
14
sebesar mungkin dengan melibatkan angka satu yang lain termasuk tanda “V”
ini . Kedua semua nilai yang bersimbol “V” yang tidak termasuk dalam
kelompok ini kita anggap bernilai nol. Dengan cara ini semua keadaan
ysang bersimbol “V” telah dimanfaatkan semaksimal mungkin. Kita boleh
melakukannya secara bebas sebab keadaan Don’t Care dapat diperlakukan
sebagai 0 atau 1 terserah pada kebutuhan kita.
Minimisasi fungsi Boolean berikut (hasil penyederhanaan dalam bentuk baku
SOP f(w, x, y, z) = S (1, 3, 7, 11, 15) dengan kondisi don’t care yaitu d(w, x,
y, z) = ∑ (0, 2, 5). Peta Karnough untuk fungsi ini yaitu :
(Hariningsih, Astuti, & Astuti, 2014, hal. 240)
berdasar materi-materi diatas, dapat disimpulkan bahwa:
Karnaugh Map yaitu suatu metode termudah untuk penyederhanaan ekspresi
logika sampai enam variabel input. Peta Karnough atau lebih dikenal dengan istilah K-
map merupakan metode grafis untuk menyederhanakan fungsi Boolean. Metode ini
ditemukan oleh Maurice Karnough pada tahun 1953. K-map ini terbentuk atau tersusun
dari kotak-kotak berbentuk bujur sangkar yang bersisian Setiap kotak
merepresentasikan sebuah minterm. Tiap kotak dikatakan bertetangga jika minterm-
minterm yang merepresentasikannya berbeda hanya sebuah literal. K-map dapat
dibentuk dari fungsi Boolean yang dispesifikasikan dengan ekspresi Boolean maupun
fungsi yang direpresentasikan dalam bentuk table kebenaran. Keluaran yang
dikehendaki ditandai dengan “1”. Sisanya ditandai 0. Banyaknya jumlah sel pada peta
karnaugh mengikuti aturan biner, yaitu 2 variabel diperlukan 2 2=4 sel, 3 variabel 23 =
8. Dan jika 4 variabel 2 4 16 sel.
Adapun kelebihan-lelebihan dari kernaough map ini salah satunya yaitu aljabar
Boole merupakan suatu sarana yang berguna untuk menyederhanakan pernyataan
logika. Dengan menggunakan kernaough map memang belum dapat menurunkan
dengan mudah namun ada banyak kelebihan-kelebihan didalamnya.
Adapun dalam penyampaian materinya ada tiga jenis peta carnough map yaitu:
1. Peta karnouhg map dua variabel, 2. Peta karnough map tiga variabel, dan 3. Peta
karnough empat variabel. Masing-masing jenis dijelaskan dengan rinci didalam makalah
ini.
Adapun cara-cara penyederhanaan persamaan karnough map yaitu sebagai berikut :
Dengan menggunakan pengelompokan secara berpasangan, odudant/overlaing,
penggulungan dan keadaan tidak peduli. Semua metode diatas telah dijelaskan secara
terperinci didalam makalah ini.
