Você está na página 1de 81

MATEMATIKA DISKRIT

FADLISYAH, S.Si BUSTAMI, S.Si, M.Si

PENERBIT GRAHA ILMU

DAFTAR ISI
Kata Pengantar Daftar Isi BAB 1 LOGIKA 1.1 Gerbang Logika 1.2 Aljabar Boolean BAB 2 PETA KARNAUGH BAB 3 METODE QUINE McCLUSKEY BAB 4 KONVOLUSI 4.1 Pondasi Konvolusi 4.2 Perancangan Program BAB 5 BILANGAN FLOATING-POINT BAB 6 KODE HAMMING BAB 7 GRAPH Lampiran Daftar Pustaka 1 1 5 11 21 39 39 43 51 59 67

KATA PENGANTAR

Dengan rahmat Allah SWT, buku ini telah selesai disusun walaupun dengan situasi yang sangat tidak menguntungkan bagi penulis. Sedikit tertatih-tatih, alasan kesehatan, penulis hadir dengan buku terbarunya berjudul Matematika Diskrit. Representasi data di dalam komputer bersifat tidak kontinu atau diskrit, sehingga keadaan ini telah mengambil suatu wilayah kajian baru dalam bidang matematika khususnya untuk aplikasi pemanipulasian bit-bit. Perkembangan matematika diskrit sendiri dipengaruhi drastis oleh perkembangan mesin Von Neumann, dan oleh karena itu penulis lebih tertarik untuk menyusun buku matematika diskrit yang berfokus kepada pemanipulasian bit-bit. Adapun materi yang hadir di dalam buku ini meliputi : Logika, Peta Karnaugh, Metode QuineMcCluskey, Konvolusi, Representasi Bilangan Floating-Point, Kode Hamming, dan Teori Graph. Buku ini ditujukan kepada mahasiswa yang mengambil mata kuliah matematika diskrit, sebagai sarana primitif untuk menjangkau konsep-konsep pemanipulasian data yang lebih mendalam.

Bab 1
LOGIKA

1.1

Gerbang Logika

Informasi biner direpresentasikan di dalam komputer digital oleh beberapa kuantitas yang disebut juga sebagai sinyal. Sinyal-sinyal elektris yang hadir di dalam komputer seperti voltase, direpresentasikan ke dalam salah satu bentuk satu atau dua state yang dikenal. Untuk representasi ke dalam dua state, variabel biner dapat berupa nilai 1 atau 0. Pada beberapa komputer digital, sinyal 3 volt merepresentasikan nilai biner 1 dan sinyal 0,5 volt merepresentasikan nilai biner 0. Logika biner bertransaksi dengan berbagai variabel biner dan operasioperasi yang mengandung berbagai logika, yang selanjutnya digunakan untuk memaparkan, dalam bentuk tabular atau aljabar, pemanipulasian dan pengolahan informasi biner. Pemanipulasian informasi biner dilakukan oleh berbagai sirkuit logika yang disebut juga sebagai gate. Gate (gerbang) merupakan sebuah blok hardware yang memproduksi sinyal-sinyal biner 1 dan 0 ketika input logikal yang diperlukan telah terpenuhi. Masing-masing gate memiliki simbol grafis yang berbeda dan berbagai operasi yang dilakukan berdasarkan maksud-maksud dari ekspresi aljabar. Hubungan input-output dari berbagai variabel biner untuk masing-masing gate direpresentasikan dalam bentuk tabular, sebagai berikut :

MATEMATIKA DISKRIT

1.

Gerbang AND Simbol :

A B
Fungsi aljabar :

x = A B atau x = AB
Tabel kebenaran :

A
0 0 1 1

B
0 1 0 1

x
0 0 0 1

2.

Gerbang OR Simbol :

A
x

Fungsi aljabar :

x = A+ B

LOGIKA

Tabel kebenaran :

A
0 0 1 1

B
0 1 0 1

x
0 1 1 1

3.

INVERTER Simbol :

Fungsi aljabar :

x = A
Tabel kebenaran :

A
0 1

x
1 0

4.

BUFFER Simbol :

MATEMATIKA DISKRIT

Fungsi aljabar :

x=A
Tabel kebenaran :

A
0 1

x
0 1

5.

Gerbang XOR Simbol :

A
x

Fungsi aljabar :

x = A B atau x = AB + AB
Tabel kebenaran :

LOGIKA

A
0 0 1 1

B
0 1 0 1

x
0 1 1 0

1.2

Aljabar Boolean

Aljabar Boolean merupakan bidang aljabar yang berurusan dengan berbagai variabel biner dan operasi-operasi logika. Perhatikan ekspresi fungsi Boolean berikut :

F = x + y z
maka dapat kita tentukan tabel kebenaran ekspresi tersebut sebagai :

x
0 0 0 0 1 1 1 1

y
0 0 1 1 0 0 1 1

z
0 1 0 1 0 1 0 1

F
0 1 0 0 1 1 1 1

MATEMATIKA DISKRIT

Diagram logikanya :

y
z

Kegunaan aljabar Boolean adalah untuk memfasilitasi analisis dan desain berbagai sirkuit digital. Aljabar Boolean memberikan suatu perangkat yang tepat terhadap : 1. Pengekspresian secara aljabar terhadap berbagai keterhubungan dalam bentuk tabel kebenaran di antara berbagai variabel biner. 2. Pengekspresian secara aljabar terhadap keterhubungan input-output diagram logika. 3. Memungkinkan perancangan berbagai sederhana terhadap fungsi yang sama. berbagai yang bentuk lebih

sirkuit

Berbagai sifat-sifat atau identitas dari aljabar Boolean : 1. 2. 3. 4. 5. 6. 7. 8.

x+0= x x +1 = 1
x+x= x

x + x = 1 x+ y = y+x
x + ( y + z) = ( x + y) + z x ( y + z ) = xy + xz ( x + y ) = x y

LOGIKA

9.

( x ) = x

10. x 0 = 0 11. x 1 = x 12. x x = x 13. x x = 0 14. xy = yx 15. x ( yz ) = ( xy ) z 16. x + yz = ( x + y )( x + z ) 17. ( xy ) = x + y

Berbagai contoh kasus, perhatikan ekspresi aljabar Boolean berikut :

AB + C D + AB + C D
bila diasumsikan bahwa AB + C D = x , maka ekspresi di atas dapat berupa x + x , dan berdasarkan identitas (3) diperoleh :

AB + C D + AB + C D = AB + C D
Untuk ekspresi yang lain kita ambil :

F = ABC + ABC + AC
berturut-turut kita peroleh :

F = ABC + ABC + AC
F = AB(C + C ) + AC

F = AB + AC

MATEMATIKA DISKRIT

dengan diagram logika sebagai :

untuk F = ABC + ABC + AC , dan

untuk F = AB + AC . Komplemen fungsi Boolean Komplemen suatu fungsi Boolean F secara sederhana dapat kita lakukan dengan menukar nilai-nilai 1 dan 0 pada tabel kebenaran. Untuk berbagai bentuk ekspresi aljabar, kita dapat menggunakan teorema DeMorgan sebagai berikut :

LOGIKA

x ( x1 + x 2 + x3 + ... + x n ) = x1 2 x 3 ...x n + x ( x1 x 2 x3 ...x n ) = x1 2 + x3 + ... + x n


Berdasarkan teorema DeMorgan, maka komplemen fungsi Boolean F = AB + C D + B D adalah F = ( A + B )(C + D )( B + D ) .

Bab 2
PETA KARNAUGH

Kompleksitas dari diagram logika yang merupakan wujud fungsi Boolean, terkait secara langsung dengan kekompleksitasan ekspresi Boolean yang diimplementasikan. Representasi tabel kebenaran dari suatu fungsi bersifat unik, tetapi fungsi dapat muncul dalam berbagai bentuk ketika diekspresikan secara aljabar. Ekspresi dapat disederhanakan menggunakan relasi-relasi dasar aljabar Boolean. Bagaimanapun, prosedur tersebut kadang-kadang masih terasa sulit bila dihadapkan dengan kurangnya aturan-aturan khusus dalam memprediksikan langkah-langkah yang diperlukan selanjutnya di dalam proses pemanipulasian. Untuk mengatasi hal tersebut, maka diperkenalkanlah metode peta Karnaugh. Berbagai peta berdasarkan jumlah variabelnya : 1. 2 variabel ( x, y ) y x
0 0

y
1

m0
m2

m1

m3

12

MATEMATIKA DISKRIT

Keterangan :

m n dibaca minterm ke- n .


minterm merupakan perkalian literal yang mengandung semua varaibel. 2. 3 variabel ( x, y, z ) y yz x
0 00 01 11 10

m0
m4

m1

m3 m7

m2

m5

m6

z 3. 4 variabel (w, x, y, z ) y yz wx
00 01 00 01 11 10

m0
m4 m12

m1

m3 m7 m15
m11

m2

x
11 10

m5 m13 m9

m6
m14

m8

m10

PETA KARNAUGH

13

4.

5 variabel (a, b, c, d , e ) c cde

ab
00 01 11

000

001

011

010

110

111

101

100

m0 m8
m24

m1

m3 m10 m27 m19

m2 m11

m6
m14

m7 m15 m31 m23

m5 m13 m29
m21

m4 m12

m9 m25 m17

m26 m18
d

m30
m22

m28 m20

10

m16

Tabel format minterm dan Maxterm untuk 5 variabel : abcde 00000 00001 00010 00011 00100 minterm Term Simbol Maxterm Term Simbol

a bc d e a bc d e a bc de a bc de a bcd e

m0

a+b+c+d +e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e

M0

m1 m2
m3

M1
: : :

m4

14

MATEMATIKA DISKRIT

00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110

a bcd e a bcde a bcde a bc d e a bc d e a bc de a bc de a bcd e a bcd e a bcde a bcde abc d e abc d e abc de abc de abcd e abcd e abcde

m5 m6 m7 m8 m9 m10

a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e

: : : : : : : : : : : : : : : : : : : : : : : :

m11 m12
m13

m14
m15 m16 m17 m18 m19 m 20

m21 m22

PETA KARNAUGH

15

10111 11000 11001 11010 11011 11100 11101 11110 11111

abcde abc d e abc d e abc de abc de abcd e abcd e abcde abcde

m 23

a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e a + b + c + d + e

: : : : : : : : :

m24
m 25 m 26 m 27 m 28 m 29 m30 m31

M 30 M 31

5.

6 variabel (a, b, f , c, d , e )

Berbagai istilah terkait : minterm atau produk baku merupakan perkalian literal yang mengandung semua variabel. Maxterm atau jumlah baku merupakan jumlah literal yang mengandung semua variabel. Literal merupakan ekspresi Boolean yang dibentuk oleh hanya satu variabel atau komplemen dari satu variabel.

16

MATEMATIKA DISKRIT

c cde abf
000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100

m0 m8
m24

m1

m3 m10 m27 m19 m51 m59 m43 m35

m2 m11

m6
m14

m7 m15 m31 m23 m55 m63 m47 m39

m5 m13 m29
m21

m4 m12
f

m9 m25 m17 m49 m57


m41

m26 m18 m50 m58


m42

m30
m22

m28 m20 m52 m60


m44
b

m16 m48 m56 m40 m32

m54 m62 m46 m38

m53 m61 m45 m37

m33

m34

m36

d e e

Soal-soal 1. Minimasikan Jawab : Keterangan : dalam pengelompokkan nilai-nilai 1 (satu), setiap kelompok harus memnuhi 2 n , n = 0,1,2,...., elemen (vertikal atau horisontal, tidak berbentuk diagonal). fungsi Boolean

F ( x, y, z ) = (3,2,4,5)

menggunakan peta Karnaugh ?

PETA KARNAUGH

17

y yz x x
0 1 00 01 11 10

1 1 1

xy
Hasil minimasi F ( x, y , z ) = xy + yx . 2. Untuk kasus yang sama, minimasikan :

yx

F ( w, x, y, z ) = (0,1,2,4,5,6,8,9,12,13,14)
y yz wx
00 01 00 01 11 10

1 1 1 1

1 1 1 1

1 1 1 w

z w z x

11 10

Hasil minimasi F ( w, x, y , z ) = y + z w + z x .

18

MATEMATIKA DISKRIT

3. Untuk kasus yang sama, minimasikan :

F ( w, x, y, z ) = (1,4,6,7,8,9,10,11,15)
y yz wx
00 01 00 01 11 10

1 1 1 1 1 1 1 1 w 1

z wx

11 10

x w

y x z

xyz

Hasil minimasi F ( w, x, y , z ) = wx + xyz + xwz + zy x .

4. Minimasikan :

F ( a , b, c , d , e ) =

= (0,1,2,3,8,9,10,11,12,16,17,18,19,24,25,26,27,28)
Jawab :

PETA KARNAUGH

19

c cde ab
00 01 11 000 001 011 010 110 111 101 100

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1 1 1 b

10

d e e

c
Hasil minimasi F ( a, b, c, d , e) = c + bd e .

bd e

20

MATEMATIKA DISKRIT

Bab 3
METODE QUINE McCLUSKEY

Metode alternatif untuk penyederhanaan ekspresi Boolean adalah metode Quine-McCluskey, dikembangkan oleh W.V. Quine dan E.J. McCluskey pada tahun 1950. Tahapan penyelesaian dalam metode ini adalah sebagai berikut : Ambil kasus, fungsi Boolean F ( x, y, z ) =

(3,2,4,5) ,
(b)

Langkah pertama, buat tabel berdasarkan term-term yang terdapat di dalam ekspresi Boolean di atas, secara terurut. (a) Term 2 3 4 5

x
0 0 1 1

y
1 1 0 0

z
0 1 0 1

Term

Langkah kedua, kelompokkan term-term tersebut berdasarkan posisi bit 1, untuk nilai posisi lainnya yang berbeda, diberikan tanda (-). Term-term yang telah dikelompokkan diberi tanda ().

22

MATEMATIKA DISKRIT

(a) Term 2 3 4 5

(b)

x
0 0 1 1

y
1 1 0 0

z
0 1 0 1

Term 2,3 4,5 0 1

x
1 0

y
-

Langkah ketiga, buat tabel baru, dan seluruh term yang tidak ditandai () dikelompokkan di dalamnya untuk pengujian lanjutan. Tandai dengan simbol (*) seluruh minterm yang mengandung satu (x), dan beri tanda () di bawah tanda (*).

Term 2,3 4,5

minterm 2 x 3 x x * * * x * 4 5

Pada tabel terlihat bahwa semua minterm telah tercakup keseluruhannya, maka tugas kita telah selesai dan fungsi minimasi yang diperoleh adalah, F ( x, y , z ) = xy + yx . Perhatikan ekspresi pembentukannya.

QUINE McCLUSKEY

23

Term 2,3 4,5 0 1

x
1 0

y
-

Nilai 0 berarti komplemen dari literal, nilai 1 berarti literal asalnya. Untuk 2,3 merepresentasikan x y dan untuk 4,5 merepresentasikan xy . Pembuktian menggunakan peta Karnaugh diperoleh : y yz x x
0 1 00 01 11 10

1 1 1

xy

yx

Kasus yang lain, minimasikan fungsi Boolean (4 variabel) berikut : F ( w, x, y, z ) = (0,1,2,4,5,6,8,9,12,13,14) , menggunakan metode

Quine-McCluskey. Langkah pertama, buat tabel berdasarkan term-term yang terdapat di dalam ekspresi Boolean di atas, secara terurut.

24

MATEMATIKA DISKRIT

(a) term 0 1 2 4 5 6 8 9 12 13 14

w
0 0 0 0 0 0 1 1 1 1 1

x
0 0 0 1 1 1 0 0 1 1 1

y
0 0 1 0 0 1 0 0 0 0 1

z
0 1 0 0 1 0 0 1 0 1 0

Langkah kedua, kelompokkan term-term tersebut berdasarkan posisi bit 1, untuk nilai posisi lainnya yang berbeda, diberikan tanda (-). Term-term yang telah dikelompokkan diberi tanda ().

QUINE McCLUSKEY

25

(a) term 0 1 2 4 5 6 8 9 12 13 14

(b)

w
0 0 0 0 0 0 1 1 1 1 1

x
0 0 0 1 1 1 0 0 1 1 1

y
0 0 1 0 0 1 0 0 0 0 1

z
0 1 0 0 1 0 0 1 0 1 0

term 0,1 0,2 0,4 0,8 1,5 1,9 2,6 4,5 4,6 4,12 5,13 6,14 8,9 9,13 12,13

w
0 0 0 0 0 0 0 1 1 1

x
0 0 0 0 1 1 1 1 1 0 1

y
0 0 0 0 0 1 0 0 0 1 0 0 0

z
0 0 0 1 1 0 0 0 1 0 1 -

Setelah sampai pada hasil di atas, maka kita perlu menguji sekali atau beberapa kali lagi, maka kita bentuk tabel (c) untuk pengelompokkan lanjutan dari tabel (b).

26

MATEMATIKA DISKRIT

(b) term 0,1 0,2 0,4 0,8 1,5 1,9 2,6 4,5 4,6 4,12 5,13 6,14 8,9 9,13 12,13

(c)

w
0 0 0 0 0 0 0 1 1 1

x
0 0 0 0 1 1 1 1 1 0 1

y
0 0 0 0 0 1 0 0 0 1 0 0 0

z
0 0 0 1 1 0 0 0 1 0 1

term 0,1,4,5 0,1,8,9 0,2,4,6 0,4,1,5 0,4,2,6 0,8,1,9 1,5,9,13 1,9,5,13 4,5,12,13 4,12,5,13 4,12,6,14 8,9,12,13

w
0 0 0 0 1

x
0 0 1 1 1 -

y
0 0 0 0 0 0 0 0 0

z
0 0 1 1 0

Tanda () bermaksud bahwa term tersebut memiliki kesamaan dengan term lainnya.

QUINE McCLUSKEY

27

(c) term 0,1,4,5 0,1,8,9 0,2,4,6 0,4,1,5 0,4,2,6 0,8,1,9 1,5,9,13 1,9,5,13 4,5,12,13 4,12,5,13 4,12,6,14 8,9,12,13

(d)

w
0 0 0 0 1

x
0 0 1 1 1 -

y
0 0 0 0 0 0 0 0 0

z
0 0 1 1 0

term 0,1,4,5,8,9,12,13 0,4,1,5,8,9,12,13

w
-

x
-

y
0 0

z
-

Langkah ketiga, buat tabel baru, dan seluruh term yang tidak ditandai () dan () dikelompokkan di dalamnya untuk pengujian lanjutan. Tandai dengan simbol (*) seluruh minterm yang mengandung satu (x), dan beri tanda () di bawah tanda (*).

28

MATEMATIKA DISKRIT

Term 0,1,8,9 0,2,4,6 1,5,9,13 4,5,12,13 4,12,6,14

minterm 0 x x x x x x x x 1 x x x x x x x x x x x x x x x x x 2 4 5 6 8 x 9 x 12 13 14

0,1,4,5,8,9,12,13 x

Sampai pada tahap ini, masih ada term-term yang tidak terwakilkan, yaitu : 1,5,8,9,13. Maka kita bentuk tabel baru untuk pengujian,

Term 0,1,8,9 0,2,4,6 1,5,9,13 4,5,12,13

minterm 0 x x x x 1 x x x x x x x x x x 2 4 5 6 8 x 9 x 12 13 14

QUINE McCLUSKEY

29

4,12,6,14 0,1,4,5,8,9,12,13 x X

x x x

x x x

x x x

Kita pilih term (0,1,4,5,8,9,12,13) mewakili kolom yang tidak memiliki tanda (). Diperoleh, (4,12,6,14) mewakili (0,1,4,5,8,9,12,13) mewakili y ,

xz , (0,2,4,6) mewakili

wz ,

Untuk mendukung hasil di atas, kita dapat menggunakan peta Karnaugh untuk pengujian, y yz wx
00 01 00 01 11 10

1 1 1 1

1 1 1 1

1 1 1 w

z w z x

11 10

Hasil minimasi F ( w, x, y , z ) = y + z w + z x .

30

MATEMATIKA DISKRIT

Kasus 1 Sederhanakan fungsi Boolean f (w, x, y, z ) = Penyelesaian : (a) Term 0 1 2 8 10 11 14 15 (b)

(0,1,2,8,10,11,14,15) .

w
0 0 0 1 1 1 1 1

x
0 0 0 0 0 0 1 1

y
0 0 1 0 1 1 1 1

z
0 1 0 0 0 1 0 1

Term 0,1 0,2 0,8 2,10 8,10 10,11 10,14 11,15 14,15

w
0 0 1 1 1 1 1

x
0 0 0 0 0 0 1

y
0 0 1 1 1 1 1

z
0 0 0 0 0 1

(c) Term 0,2,8,10 0,8,2,10

w
-

x
0 0

y
-

z
0 0

QUINE McCLUSKEY

31

10,11,14,15 10,14,11,15

1 1

1 1

Term 0,1 0,2,8,10 10,11,14,15

minterm 0 x x 1 x x x x x * * * x * x * x * 2 8 10 11 14 15

Hasil minimasi : f (w, x, y, z ) = wx y + x z + wy .

Kasus 2 Sederhanakan fungsi Boolean f (w, x, y, z ) = Penyelesaian :

(1,4,6,7,8,9,10,11,15) .

(a) Term 1 4

(b)

w
0 0

x
0 1

y
0 0

z
1 0

Term 1,9 4,6

w
0

x
0 1

y
0 -

z
1 0

32

MATEMATIKA DISKRIT

8 6 9 10 7 11 15

1 0 1 1 0 1 1

0 1 0 0 1 0 1

0 1 0 1 1 1 1

0 0 1 0 1 1 1

8,9 8,10 6,7 9,11 10,11 7,15 11,15

1 1 0 1 1 1

0 0 1 0 0 1 -

0 1 1 1 1

0 1 1 1

(c) Term 8,9,10,11 8,10,9,11

w
1 1

x
0 0

y
-

z
-

Term 1,9 4,6 6,7 7,15

minterm 1 x x x x x x x 4 6 7 8 9 x 10 11 15

QUINE McCLUSKEY

33

11,15 8,9,10,11 * * x * x x *

x x

Term 1,9 4,6 6,7 7,15 11,15 8,9,10,11

minterm 1 x x x x x x x x * * * x x * x x x 4 6 7 8 9 x 10 11 15

Hasil minimasi : f (w, x, y, z ) = x y z + wxz + xyz + wx .

34

MATEMATIKA DISKRIT

Kasus 3 Sebagai ketua panitia bazaar di RW setempat, ibu Soffie mengusulkan untuk menjual kue bolu. Dari anggota ibu PKK RW, beberapa orang menyatakan kesediaannya untuk menyumbangkan bahan bakunya. Berikut adalah daftar nama-nama penyumbang beserta bahan baku yang disumbangkan. Terigu Susi Debi Beti Tuti Ruli Kemudian ibu Soffie menyuruh putrinya, Yovie, untuk mengumpulkan bahan-bahan tersebut. Bantulah Yovie dalam mencari kombinasi penyumbang siapa saja yang perlu dikunjungi, dengan catatan seluruh bahan baku lengkap terkumpul dan sesedikit mungkin yang dikunjungi. Solusi : Asumsikan bahwa inisial s, d, b, t, r digunakan untuk mewakili namanama yang terdaftar pada tabel. Berdasarkan tabel, untuk mendapatkan terigu, Yovie harus mengunjungi Susi atau Beti, atau bila dinotasikan dalam ekspresi boolean adalah : (s + b). Sedangkan untuk mendapatkan susu, Yovie harus mengunjungi Beti atau Tuti atau Ruli, atau (b+t+r). Untuk butter, gula, dan telur masing-masing ekspresi booleannya adalah (s + d + r), (d + r), t. Sehingga ekspresi Boolean untuk mendapatkan kelima bahan adalah : Susu Butter Gula Telur

f ( s , d , b , t , r ) = ( s + b ) (b + t + r ) ( s + d + r ) ( d + r ) t
Dan bila ekspresi Boolean ini kita ubah ke dalam bentuk kanonik minterm, akan kita dapatkan:

QUINE McCLUSKEY

35

f ( s, d , b, t , r ) = s d btr + s dbtr + s dbtr + sd btr + sd btr

+ sdbtr + sdbtr + sdbtr + sdbtr


Untuk mendapatkan kombinasi penyumbang yang paling minimum, kita harus mencari bentuk paling sederhana dari fungsi Boolean f , untuk itu di sini kita gunakan metode Quine-McCluskey.

minterm String 1 2 3 4 5 6 7 8 9

minterm String (1,6) (2,8) (3,7) (4,7) (5,9) (6,9) (7,9) (8,9) -

s' d btr s' dbtr sdbtr sd btr s' dbtr sd btr sdbtr sdbtr sdbtr

00111 01110 11010 10011 01111 10111 11011 11110 11111

d btr dbtr sdbt sbtr dbtr sbtr sdtr sdbt

-0111 -1110 11011-011 -1111 1-111 11-11 1111-

minterm String (1,5,6,9) (2,5,8,9) (3,7,8,9)

btr dbt sdt

--111 -11111-1-

36

MATEMATIKA DISKRIT

(4,6,7,9)

str

1--11

Diperoleh f (s, d , b, t , r ) = btr + dbt + sdt + str , dengan kata lain kombinasi yang bisa dikunjungi oleh Yovie untuk mendapatkan seluruh bahan : Beti-Tuti-Ruli, atau Debi-Beti-Tuti, atau Susi-Debi-Tuti, atau Susi-Tuti-Ruli. Kasus 3 diambil dari buku Pengantar Logika Matematika karya Setiadi Rachmat, Penerbit Informatika, ISBN : 979-3338-35-0. Kasus 1 dan 2 diambil dari buku Matematika Diskrit karya Rinaldi Munir, Penerbit Informatika, ISBN 979-96446-3-1. Penjelasan untuk kasus 3, merubah ekspresi Boolean berikut, f ( s, d , b, t , r ) = ( s + b) (b + t + r ) ( s + d + r ) ( d + r ) t ke dalam bentuk kanonik minterm (SOP). Bentuk tabel kebenaran berikut :

s
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

d
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1

b
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1

t
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1

r
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

s+b
0 0 0 0 1 1 1 1

b+t +r
0

s+d +r
0

d +r
0

f
0

QUINE McCLUSKEY

37

0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 0 1 1

Term-term yang diambil merepresentasikan nilai f = 1 . Perhatikan pada tabel nilai t sangat mempengaruhi nilai daripada f . Kasus 1 Sebagai seorang manajer pelatih klub sepakbola AC Milan anda diminta untuk membeli beberapa pemain dengan ketentuan pembelian pemain harus mencakup keseluruhan formasi posisi yang dibutuhkan oleh klub dan pengeluaran biaya belanja sehemat mungkin. Tentukan kombinasi pemain-pemain yang akan anda beli dengan pengeluaran biaya seminimum mungkin. Petunjuk : Pilih para pemain anda secara bebas dengan syarat jumlah biaya keseluruhan pemain tidak melebih Rp. 40 Milyar (Biaya belanja pemain yang disediakan klub). Daftar pemain yang masuk bursa transfer adalah sebagai berikut :

38

MATEMATIKA DISKRIT

Attacking Midfield

Defender Cannavaro Beckham Zidane Del Piero Kaka Ronaldinho Inzaghi Gattuso Pirlo Xavi Maldini Kasus 2 Agama Intan Fitri Lisa Rani

Forward

Midfield

Jika anda akan memilih isteri dari beberapa calon yang akan dijodohkan kepada anda, dengan berbagai kriteria berikut : Cantik Keturunan Kaya

Maka tentukan urutan pasangan calon yang akan anda pilih dari berbagai nama pada tabel di atas.

Wings

$ 10 10 15 15 15 15 10 15 10 10 10

Bab 4
KONVOLUSI

4.1

Pondasi konvolusi

Konvolusi 2 buah fungsi f ( x ) dan g ( x ) didefinisikan sebagai :

h( x ) = f ( x ) g ( x )

f (a )g (x a )da

notasi merupakan operator konvolusi. Untuk fungsi diskrit konvolusi didefinisikan sebagai,

h( x ) = f ( x ) g ( x )

a =

f (a )g (x a )

di mana g ( x ) merupakan kernel konvolusi atau kernel filter. Untuk fungsi dua dimensi, operasi konvolusi didefinisikan sebagai : (untuk fungsi kontinu)

h ( x, y ) = f ( x , y ) g ( x , y )

f (a, b )g (x a, y b )dadb

40

PENGOLAHAN CITRA

dan untuk fungsi diskrit, didefinisikan sebagai :

h( x, y ) = f ( x, y ) g ( x, y ) f (a, b )g ( x a, y b )

Fungsi filter g ( x, y ) disebut juga filter konvolusi, mask konvolusi, kernel konvolusi, atau template. Ilustrasi konvolusi diperlihatkan pada gambar 4.1.

A D G

B E H

C F I

template

x0 x3 x6

x1
x4

x2

f (i, j )

x5 x8

x7

Image

f (i, j ) = Ax0 + Bx1 + Cx 2 + Dx3 + Ex 4 + Fx5 + Gx6 + Hx7 + Ix8


Gambar 4.1 Ilustrasi Konvolusi

KONVOLUSI

41

1 1 3 3 4
Perhatikan kasus berikut, citra

1 1 4 4 3 2 1 3 3 3 1 1 1 4 4

dikonvolusi

menggunakan template

2
dengan nilai-nilai =

2 3 *

1 0 5 7 4 7 2 7 * *

0 1 6 7 7 *

akan menghasilkan citra yang baru

* * . * *

Templatetemplate yang sering muncul penggunaannya dalam pengolahan citra (meminimalisir noise pada citra, edge detection, filtering, dan lain lain) adalah template klasikal 3x3. Template yang diaplikasikan sebagai low-pass filter adalah,

1 1 1 1 1 1 1 1 1
Pengaplikasian untuk high-pass filter digunakan template

1 4 1 0 1 0
Template yang lain yang sering juga digunakan untuk melakukan smoothing citra adalah,

3 16 3 1 3 1

42

PENGOLAHAN CITRA

Tabel 4.1 memperlihatkan operasi high-pass filter dan low-pass filter pada suatu citra yang memiliki nilai-nilai intensitas pixel berikut :

0 0 0 0 0 0 0 0

0 1 1 1 1 1 1 0

0 1 1 1 1 6 1 0

0 1 1 1 1 1 1 0

0 0 0 0 0 0 0 0

Tabel 4.1 Citra Sesudah high-pass Sebelum low-pass

0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 6 1 0 0 1 1 1 0 0 0 0 0 0

2 1 1 1

1 0 0 5

2 1 1 1

4 6

6 9

4 6

6 9 6 11 14 11 11 14 11 9 11 9

4 20 4 2 4 2

Kasus yang lain, perhatikan tabel 4.2.

KONVOLUSI

43

Tabel 4.2
Sesudah konvolusi dengan Sesudah konvolusi dengan
1 1 1 1

Citra

1 1 1 1

1 1 1 1

+ 1 1
1 1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 0 0 3 3 3 3 0 0 3 3 3 3 0 0 3 3 3 3

0 0 0 0 0 0 0 0 0 0 0 3 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 6 0 0 0 0 6 0 0 0 0 6 0 0 0

0 0 0 0 0 0 0 0 0 0 0 6 6 6 6 0 6 0 0 0 0 6 0 0 0 0 6 0 0 0

4.2

Perancangan program

Untuk Perancangan program konvolusi menggunakan Delphi dapat kita lakukan langkah-langkah berikut : 1. Jalankan Delphi.

44

PENGOLAHAN CITRA

2.

Tambahkan icon Panel1, Panel2, Image1, Image2, MainMenu1 dan OpenPictureDialog pada form :

Untuk Panel1, Nilai-nilai property pada object inspector adalah : Bevellnner BevelOuter bvLowered bvLowered

Untuk Image1, icon Image1 letakkan di atas Panel1 pada Form1. Nilai-nilai property pada object inspector adalah : Stretch True

Untuk Panel2, Nilai-nilai property pada object inspector adalah : Bevellnner bvLowered

KONVOLUSI

45

BevelOuter

bvLowered

Untuk Image2, icon Image2 letakkan di atas Panel2 pada Form1. Nilai-nilai property pada object inspector adalah : Stretch True

Untuk MainMenu1, klik 2x pada icon MainMenu1, sehingga muncul tampilan :

Atur sedemikian hingga, agar tampilan menjadi :

46

PENGOLAHAN CITRA

File Open

Image Processing

Konvolusi

Klik 2x pada MainMenu1 File Open, setelah muncul halaman editor, tuliskan listing berikut :
if not OpenPictureDialog1.Execute then exit else begin gambar := TBitmap.Create; gambar.LoadFromFile(OpenPictureDialog1.filename); Form1.Caption:= 'Image Processing - '+ ExtractFileName (OpenPictureDialog1.Filename); end;

KONVOLUSI

47

if gambar.PixelFormat <> pf24bit then gambar.PixelFormat := Pf24bit; Image1.Picture.Bitmap := gambar;

Kembali ke form1, Klik 2x pada MainMenu1 Image Processing Konvolusi, setelah muncul halaman editor, tuliskan listing berikut :
procedure TForm1.Invert1Click(Sender: TObject); const konvolusi : array[0..1,0..2,0..2] of smallint = (((1,1,1),(1,1,1),(1,1,1)), ((0,0,0),(0,0,0),(0,0,0))); var row : array[0..8] of pbytearray; col : pbytearray; x,y : smallint; i,j,k,p : smallint; image : tbitmap; sum,jum : longint; begin P:=-120; image := tbitmap.Create; Image.Assign(gambar); for y:=1 to gambar.Height-2 do begin for i:=-1 to 1 do row[i+1]:= Image.ScanLine[y+i]; col := gambar.ScanLine[y]; x:=3; repeat sum := 0; for i:=-1 to 1 do for j:=-1 to 1 do sum:=sum+(konvolusi[0,i+1,j+1]*row[i+1,x+j*3]); jum:=0; for i:=-1 to 1 do for j:=-1 to 1 do jum:=jum+(konvolusi[1,i+1,j+1]*row[i+1,x+j*3]); sum := (sum + jum)+p;

48

PENGOLAHAN CITRA

if sum>255 then sum:=255; if sum<0 then sum:=0; for k:=0 to 2 do col[x+k]:=sum; inc(x,3); until x>=3*(gambar.Width-4); end; Image2.Picture.bitmap := gambar; gambar.SaveToFile('Fadlisyah.bmp'); Image.free; end;

3.

Eksekusikan program (F9).

Gambar 4.2 Hasil eksekusi citra Zidane

KONVOLUSI

49

Dengan sedikit merubah nilai-nilai pada template, eksekusi program akan menghasilkan output sebagai berikut :

Gambar 4.3 Hasil eksekusi citra Zidane dengan template const konvolusi : array[0..1,0..2,0..2] of smallint = (((1,0,1),(1,0,1),(1,0,1)), ((0,0,0),(0,0,0),(0,0,0)));

50

PENGOLAHAN CITRA

Bab 5
BILANGAN FLOATING POINT

Bilangan floating-point, berisikan 2 bagian, yaitu mantisa (signifikan atau pecahan), dan eksponen. Gambar 5.1 memperlihatkan bentuk 4 byte dan 8 byte dari bilangan floating-point yang disimpan di dalam sistem Intel. Bilangan floating-point atau bilangan real 4 byte disebut single-precision, dan Bilangan floating-point atau bilangan real 8 byte disebut double-precision. 31 30 S Eksponen (a) 63 62 S Eksponen (b)
Gambar 5.1 (a) Presisi tunggal menggunakan bias 7FH, dan (b) Presisi Ganda menggunakan bias 3FFH

23 22 Mantisa

52

51 Mantisa

52

MATEMATIKA DISKRIT

Mantisa 24-bit memiliki bit satu yang tersembunyi (implied), yang memungkinkan mantisa untuk mewakili 24-bit walau hanya disimpan 23-bit. Bit yang disembunyikan adalah bit pertama dari bilangan yang dinormalisasi. Pada saat menormalisasi bilangan, bit ini diatur sehingga nilainya sekurang-kurangnya 1, tetapi kurang dari 2. sebagai contoh, jika 12 diubah ke biner (11022 ) , maka dinormalisasi dan hasilnya 1,1 2 3 . Bit satu yang terdapat di depan tanda koma akan disembunyikan, atau tidak disimpan di dalam bagian mantisa. Eksponen disimpan dalam eksponen terbias (biased exponent). Untuk presisi tunggal, Bias 7FH (127) akan dijumlahkan ke eksponen sebelum disimpan ke dalam tempat eksponen, dan untuk presisi ganda sebesar 3FFH (1023). Ada 2 pengecualian mengenai aturan-aturan yang diterapkan mengenai bilangan floating-point. Angka 0,0 disimpan semuanya sebagai nol. Bilangan tak hingga disimpan dalam eksponen sebagai satu, dan dalam mantisa semuanya sebagai nol. Bit tanda menunjukkan bilangan tak hingga tersebut bernilai positif atau negatif. Kasus 1 Bagaimana bilangan +12 disimpan dalam bentuk presisi tunggal. Penyelesaian : Desimal +12 Biner 1100 Normal Tanda 0

1,1 2 3

s
0
31

Eksponen
1
30

0
29

0
28

0
27

0
26

0
25

1
24

0
23

FLOATING POINT

53

Mantisa
1
22

0
21

0
20

0
19

0
18

0
17

0
16

0
15

0
14

0
13

0
12

0
11

0
10

0
9

0
8

0
7

0
6

0
5

0
4

0
3

0
2

0
1

0
0

Penjelasan : + = 0, pangkat pada normalisasi adalah 3 atau dalam bentuk biner sama dengan 112 . Selanjutnya untuk presisi tunggal eksponen dapat diperoleh dengan menambahkan 112 +7FH = 112 + 11111112 =

100000102 .
Kasus 2 Bagaimana bilangan -12 disimpan dalam bentuk presisi tunggal. Penyelesaian : Desimal -12 Biner 1100 Normal -1,1 2 3 Tanda 1

s
1
31

Eksponen
1
30

0
29

0
28

0
27

0
26

0
25

1
24

0
23

Mantisa
1
22

0
21

0
20

0
19

0
18

0
17

0
16

0
15

0
14

0
13

0
12

0
11

0
10

0
9

0
8

0
7

0
6

0
5

0
4

0
3

0
2

0
1

0
0

54

MATEMATIKA DISKRIT

Kasus 3 Bagaimana bilangan +100 disimpan dalam bentuk presisi tunggal. Penyelesaian : Desimal +100 Biner 1100100 Normal Tanda 0

1,1001 2 6

s
0
31

Eksponen
1
30

0
29

0
28

0
27

0
26

1
25

0
24

1
23

Mantisa
1
22

0
21

0
20

1
19

0
18

0
17

0
16

0
15

0
14

0
13

0
12

0
11

0
10

0
9

0
8

0
7

0
6

0
5

0
4

0
3

0
2

0
1

0
0

Penjelasan : Konversi bilangan 100 menjadi bilangan biner adalah sebagai berikut : 100/2 50/2 25/2 12/2 6/2 Sisa 0 Sisa 0 Sisa 1 Sisa 0 Sisa 0 1100100 3/2 1/2 0 Sisa 1 Sisa 1

FLOATING POINT

55

Kasus 4 Bagaimana bilangan -1,75 disimpan dalam bentuk presisi tunggal. Penyelesaian : Desimal -1,75 Biner 1,11 Normal -1,11 2 0 Tanda 1

s
1
31

Eksponen
0
30

1
29

1
28

1
27

1
26

1
25

1
24

1
23

Mantisa
1
22

1
21

0
20

0
19

0
18

0
17

0
16

0
15

0
14

0
13

0
12

0
11

0
10

0
9

0
8

0
7

0
6

0
5

0
4

0
3

0
2

0
1

0
0

Penjelasan : Konversi bilangan -1,75 menjadi bilangan biner adalah sebagai berikut: (kita ambil 0,75, 1 desimal = 1 biner), sampai di sini kita sudah dapat menyatakan sebagai 1, 0,75 x 2 0,5 x 2 1,0 Digit 1 Digit 1 1,11

56

MATEMATIKA DISKRIT

Kasus 5 Bagaimana bilangan +0,25 disimpan dalam bentuk presisi tunggal. Penyelesaian : Desimal +0,25 Biner 0,01 Normal Tanda 0

1,2 2

s
0
31

Eksponen
0
30

1
29

1
28

1
27

1
26

1
25

0
24

1
23

Mantisa
0
22

0
21

0
20

0
19

0
18

0
17

0
16

0
15

0
14

0
13

0
12

0
11

0
10

0
9

0
8

0
7

0
6

0
5

0
4

0
3

0
2

0
1

0
0

Penjelasan : Konversi bilangan +0,25 menjadi bilangan biner adalah sebagai berikut: (kita ambil 0,25, 0 desimal = 0 biner), sampai di sini kita sudah dapat menyatakan sebagai 0, 0,25 x 2 0,5 x 2 1,0 Digit 0 Digit 1 0,01

FLOATING POINT

57

Eksponen terbias kita peroleh dengan menjumlahkan : 7FH -2 1111111 -0000010 1111101

Berbagai kasus yang lain, ditinggalkan untuk ujicoba para mahasiswa, Andai diketahui : Ujicoba 1 s
0
31

Eksponen
1
30

0
29

0
28

0
27

0
26

0
25

0
24

0
23

Mantisa
1
22

1
21

0
20

0
19

0
18

0
17

0
16

0
15

0
14

0
13

0
12

0
11

0
10

0
9

0
8

0
7

0
6

0
5

0
4

0
3

0
2

0
1

0
0

Maka ubahlah bilangan floating-point di atas ke dalam bilangan desimal. Ujicoba 2 s


1
31

Eksponen
0
30

1
29

1
28

1
27

1
26

1
25

1
24

1
23

58

MATEMATIKA DISKRIT

Mantisa
0
22

0
21

0
20

0
19

0
18

0
17

0
16

0
15

0
14

0
13

0
12

0
11

0
10

0
9

0
8

0
7

0
6

0
5

0
4

0
3

0
2

0
1

0
0

Maka ubahlah bilangan floating-point di atas ke dalam bilangan desimal. Ujicoba 3 s


0
31

Eksponen
1
30

0
29

0
28

0
27

0
26

0
25

1
24

0
23

Mantisa
1
22

0
21

0
20

1
19

0
18

0
17

0
16

0
15

0
14

0
13

0
12

0
11

0
10

0
9

0
8

0
7

0
6

0
5

0
4

0
3

0
2

0
1

0
0

Maka ubahlah bilangan floating-point di atas ke dalam bilangan desimal. Keseluruhan bahan dan berbagai kasus yang menyertai bab ini, disadur dari buku Brey, Barry B. 2000. Mikroprosesor Intel 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, dan Pentium-Pro : Arsitektur, Pemrograman, Antarmuka (Edisi kelima jilid 1), Penerbit Erlangga, yang diterjemahkan oleh Ir. N.R. Poespawati, M.T.

Bab 6
KODE HAMMING

Sistem memori semikonduktor dapat mengalami kegagalan (error). Error-error ini dapat dikategorikan sebagai kegagalan yang berat dan error ringan. Kegagalan berat merupakan kerusakan isi yang permanen sehingga sel memori yang mengalaminya tidak dapat lagi digunakan untuk menampung data. Error-error berat dapat disebabkan oleh kesalahan penggunaan, dan kerusakan yang berasal dari pabrik. Error ringan adalah kejadian yang random dan tidak merusak yang mengubah isi sebuah sel memori atau lebih, tanpa merusak memori. Error ringan dapat disebabkan oleh masalah catu daya atau partikel-partikel alpha. Partikel-partikel ini adalah hasil dari peluruhan radioaktif dan merupakan akibat adanya inti radioaktif dalam jumlah kecil yang secara alami terdapat pada seluruh materi. Baik error berat maupun ringan merupakan hal yang tidak diinginkan, hampir semua sistem memori utama modern memiliki logik untuk mendeteksi dan mengoreksi error-error tersebut. Gambar 6.1 menjelaskan secara umum tentang proses yang terjadi. Ketika data dibaca ke dalam memori, kalkulasi, yang digambarkan sebagai fungsi f , dibentuk dengan data tersebut untuk menghasilkan kode. Baik data maupun kode itu disimpan. Jadi, apabila sebuah word M bit data akan disimpan, dan kode memiliki panjang K bit, maka ukuran aktual word yang disimpan adalah M + K bit.

60

MATEMATIKA DISKRIT

Ketika word yang sebelumnya tersimpan akan dibaca, maka kode digunakan untuk mendeteksi dan mengoreksi error yang mungkin terjadi. Bit-bit kode K yang baru dihasilkan dari M bit data dan dibandingkan dengan bit kode yang diambil. Perbandingan tersebut akan menghasilkan salah satu dari tiga kemungkinan : Tidak terdapat error. Data bit yang diperhatikan akan dikirimkan. Terjadi error, dan dimungkinkan untuk mengoreksinya. Bit-bit data dan bit-bit koreksi error dimasukkan ke korektor, yang menghasilkan bit-bit M yang dikoreksi akan dikirimkan. Terjadi error, namun tidak dimungkinkan mengoreksinya. Keadaan ini akan dilaporkan. untuk

Kode yang beroperasi dengan cara seperti ini disebut sebagai error-correcting code. Sebuah kode dicirikan oleh sejumlah error bit dalam word yang dapat dikoreksi dan dideteksinya. Kode perbaikan error yang paling sederhana adalah kode Hamming yang diciptakan oleh Richard Hamming di Laboratorium Bell. Gambar 6.2 menggunakan diagram Venn untuk menjelaskan penggunaan kode ini bagi word 4 bit (M = 4). Dengan tiga buah lingkaran yang berpotongan, terdapat tujuh kompartemen. Kita akan memberikan 4 buah bit data ke kompartemen yang terletak di tengah (Gambar 6.2 a). Kompartemen sisanya diisi dengan apa yang kita sebut bit paritas. Setiap bit paritas dipilih sehingga bilangan 1 di dalam lingkaran berjamlah genap (Gambar 6.2 b). Jadi, karena lingkaran A terdiri dari tiga buah data bilangan l , maka bit paritas di dalam lingkaran itu disetel menjadi l. Sekarang, apabila suatu error mengubah salah satu bit data (Gambar 6.2 c), maka error itu akan dengan mudah ditemukan. Dengan memeriksa bit paritas, cacat-cacat dapat ditemukan pada lingkaran A dan C namun tidak pada lingkaran B. Hanya salah satu dari kompartemen

KODE HAMMING

61

berada pada A dan C namun tidak pada B. Karena itu error dapat dikoreksi dengan mengubah bit tersebut. Untuk menjelaskan konsep tersebut, kita akan membuatlah kode yang dapat mendeteksi dan mengoreksi error bit tunggal di dalam word 8-bit. Untuk memulainya, kita tentukan panjang kode seharusnya. Sehubungan dengan Gambar 6.1 logik perbandingan menerimanya sebagai input dua nilai K bit. Perbandingan bit demi bit dilakukan dengan memperhatikan exclusive-or kedua input itu. Hasilnya disebut sebagai syndrome word. Jadi, setiap bit syndrome sama dengan 0 atau 1 apabila terdapat atau tidak cocok dalam posisi bit kedua input tersebut.

Error Signal

Data Out

Corrector

Data In

M K Memory

f
K

Compare

Gambar 6.1 Fungsi kode koreksi error

62

MATEMATIKA DISKRIT

(a) 1 1 1 0

(b) 1 1 0 1 0 0

(c) 1 0 0 1 0 0

(d) 1 0 0 1 0 0

Gambar 6.2 Error-correcting code dari Hamming

Dengan demikian syndrome word mempunyai lebar K bit dan memiliki range 2 K yang berada di antara 0 dan 2 K 1 . Nilai 0 berarti bahwa tidak terdeteksi error, yang menyisakan 2 K 1 buah nilai untuk mengindikasikan bit mana yang mengalami error, bila terdapat error. Karena suatu error dapat terjadi pada sembarang M bit data atau K bit check, maka syarat yang harus dipenuhi,

2K 1 M + K

KODE HAMMING

63

Mekanismenya adalah, atur layout bit-bit data dan bit-bit check Bit position 12 11 10 9 8 7 6 5 4 3 2 1 Position number 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 C2 C1 C4 M1 C8 M4 M3 M2 Check bit Data bit M8 M7 M6 M5

Bit-bit check dihitung sebagai berikut :

C1 C2 C4 C8

= = = =

M1M2M4M5M7 M1M3M4M6M7 M2M3M4M8 M5M6M7M8

1,2,4,5,7 1,3,4,6,7 2,3,4,8 5,6,7,8

64

MATEMATIKA DISKRIT

Kita akan menguji pola ini, apakah efektif untuk menguji kesalahan yang terjadi. Kasus : Andaikan word input 8-bit sama dengan 00111001, dengan bit data M1 berada pada posisi paling kanan. M8 0 M7 0 M6 1 M5 1 M4 1 M3 0 M2 0 M1 1

Perhitungannya adalah sebagai berikut :

C1 C2 C4 C8

= = = =

M1M2M4M5M7 M1M3M4M6M7 M2M3M4M8 M5M6M7M8

10110=1 10110=1 0010=1 1100=0

Seandainya terjadi kesalahan pada bit data ketiga, berubah dari 0 menjadi 1. Maka kalkulasinya adalah : M8 0 M7 0 M6 1 M5 1 M4 1 M3 1 M2 0 M1 1

C1 C2 C4 C8

= = = =

M1M2M4M5M7 M1M3M4M6M7 M2M3M4M8 M5M6M7M8

10110=1 11110=0 0110=0 1100=0

KODE HAMMING

65

Bit-bit check yang baru dibandingkan dengan bit-bit check yang lama, maka syndrome word yang terbentuk adalah : C8 0 C4 1 0 1 C2 1 0 1 C1 1 1 0

0 0

0110 biner setara dengan nilai 6 desimal, yang mengindikasikan bahwa posisi bit 6 mengalami error, atau bit data 3 mengalami error. Keseluruhan isi materi bab ini disadur dari Stalling, William. 1998. Organisasi dan Arsitektur Komputer : Perancangan Kinerja (jilid 1), Prentice Hall yang diterjemahkan oleh PT Prenhallindo, Jakarta.

66

MATEMATIKA DISKRIT

Bab 7
GRAPH

Graph G = (V , E ) terdiri dari sebuah himpunan tidak kosong terbatas dari berbagai verteks dan edge yang memuat sebarang himpunan bagian dari berbagai pasangan {{v, w} : v, w V , v w} . Edge {v, w} dapat diekspresikan sebagai vw atau wv dan dinyatakan sebagai relasi verteks v ke verteks w , di mana v, w disebut titik-titik ujung dari edge vw . Contoh, andaikan G = (V , E ) merupakan graph dengan sekumpulan verteks V={Meryl Streep, Dustin Hoffman, Jeremy Irons, Anne Bancroft, Robert Redford} dan asumsikan pula sekumpulan edge didefinisikan sebagai :

E = {vw : v, w V telah membuat film bersama sebelum 1992 }.


Maka ilustrasi G yang mungkin adalah sebagai berikut : Jeremy Irons Robert Redford Anne Bancroft

Meryl Streep

Dustin Hoffman

68

MATEMATIKA DISKRIT

Derajat verteks v V di dalam graph G = (V , E ) merupakan jumlah verteks yang terhubung ke v , dinyatakan sebagai v . Ambil kasus berikut :

Dapat dilihat bahwa graph G = (V , E ) memiliki 11 verteks dan 10 edge., dengan derajat verteks 7 adalah 4, 7 = 4. Jumlah keseluruhan derajat adalah 20, yang mana dua kali jumlah edge. Kasus : berapa banyak tree yang dapat dibentuk berdasarkan 1,2,3,4,5} dengan derajat verteks 1 = 3 , sekumpulan verteks { 2 = 2 , 3 = 1, 4 = 1 , 5 = 1? Solusi :

GRAPH

69

5 3 1 4 Keterangan : tree merupakan bagian graph yang terstruktur. Teorema : andaikan d 1 , d 2 ,...., d n , n 2 , merupakan bilangan bulat positif dengan jumlah 2n 2 . Maka jumlah tree pada himpunan verteks {1,2,..., n}dengan derajat verteks 1 = d1 ,..., n = d n adalah 2

(n 2)! (d1 1)!(d 2 1)!....(d n 1)!


Bukti : kita tinggalkan sebagai tugas mahasiswa.

1,2,..., n}adalah Teorema : (Cayley) untuk n 2 , jumlah tree pada verteks {


n n2 .
Bukti : kita tinggalkan sebagai tugas mahasiswa.

1,2,3,4}. Ada 16 pasang Kasus : ada 16 tree pada himpunan verteks { pasangan bilangan bulat yang berbentuk ab , di mana a dan b dipilih 1,2,3,4} , dan oleh karenanya kita secara bebas dari himpunan verteks { dapat menamakan setiap tree yang ditemukan dengan 16 pasang bilangan bulat di atas berdasarkan ketentuan. (alasan penamaan tree akan dijelaskan kemudian )
Solusi :

70

MATEMATIKA DISKRIT

Algoritma Prfer Algoritma Prfer digunakan untuk menamakan tree, dan nama yang diperoleh disebut sebagai kode Prfer.

1,2,..., n}, maka Jika diberikan sebuah tree dengan himpunan verteks {
untuk menentukan kode Prfer adalah, 1. Temukan verteks yang terkecil berderajat 1, katakan v . Andaikan w merupakan verteks yang dihubungkan ke v . 2. Nyatakan w dan buang verteks v dan edge vw . 3. Jika tree yang terbentuk masih memiliki lebih dari satu edge, ulangi langkah (1), sebaliknya jika tidak, maka algoritma berhenti.

GRAPH

71

Contoh kasus : aplikasikan algoritma Prfer untuk menamakan tree T yang diilustrasikan berikut :

4 3

4 3

T
2 1 6 2 6

5 3 233 2 6 2 6 3 23

2 2332 6

72

MATEMATIKA DISKRIT

Seandainya kasus yang terjadi adalah kebalikan dari kasus di atas, kode Prfer diketahui, dan kita ingin mengkonstruksikan tree dari kode Prfer tersebut, maka algoritma inverse berikut kita gunakan.

1,2,..., n}, untuk menemukan tree T menggunakan bebas dipilih dari {


daftar kode Prfer adalah :

Algoritma : diberikan suatu daftar a1 ...a n 2 angka-angka yang secara

1. Nyatakan daftar pertama a1 ...a n 2 , daftar kedua 1,2,..., n dan

1,2,..., n} dan sekumpulan mulai dengan himpunan verteks { kosong berbagai edge.

2. Temukan angka terkecil, katakan i , yang hadir pada daftar kedua dan tidak hadir pada daftar pertama. Hapus leadingentry pada daftar pertama, katakan j , hapus i dari daftar kedua dan tambahkan edge ij ke himpunan edge. 3. Jika terdapat sebarang angka yang masih tertinggal dalam daftar pertama, maka ulangi langkah (2). Sebaliknya, jika daftar pertama kosong, maka daftar kedua akan terdiri dari dua angka. Tambahkan satu edge terakhir ke himpunan edge yang terdiri dari dua angka yang dihubungkan bersama; kemudian algoritma berhenti. Contoh kasus : rekonstruksikan tree T dengan kode Prfer 2332?. Solusi : 2332 123456 Tambahkan edge 12

Keterangan : mulai dari angka terkecil, pada kolom pertama terlihat bahwa angka terkecil adalah 2, dan angka terkecil yang tidak terdapat pada kolom pertama adalah 1. Maka kita bentuk edge 12,

GRAPH

73

2 1 Buang angka 2 pada kolom pertama dan angka 1 pada kolom kedua sehingga : 332 23456 Tambahkan edge 34

Keterangan : mulai dari angka terkecil, pada kolom pertama terlihat bahwa angka terkecil adalah 3, dan angka terkecil yang tidak terdapat pada kolom pertama adalah 4. Maka kita bentuk edge 34, 4 3

2 1 Buang angka 3 pada kolom pertama dan angka 4 pada kolom kedua sehingga :

74

MATEMATIKA DISKRIT

32

2356

Tambahkan edge 35

Keterangan : mulai dari angka terkecil, pada kolom pertama terlihat bahwa angka terkecil adalah 3, dan angka terkecil yang tidak terdapat pada kolom pertama adalah 5. Maka kita bentuk edge 35,

4 3

2 1 Buang angka 3 pada kolom pertama dan angka 5 pada kolom kedua sehingga :

236

Tambahkan edge 23

Keterangan : mulai dari angka terkecil, pada kolom pertama terlihat bahwa angka terkecil adalah 2, dan angka terkecil yang tidak terdapat pada kolom pertama adalah 3. Maka kita bentuk edge 23,

GRAPH

75

4 3

2 1 Buang angka 2 pada kolom pertama dan angka 3 pada kolom kedua sehingga :

26

Tambahkan edge 26

Maka kita bentuk edge 26,

4 3

2 1 6

76

MATEMATIKA DISKRIT

Kasus yang ditinggalkan untuk mahasiswa : Konstruksikan sebuah graph G = (V , E ) yang memuat verteks V = { seluruh negara di kawasan Asia } dan edge yang didefinisikan E = {vw : v,w memiliki batas negara yang sama}. Setelah berhasil diselesaikan, kasus diperluas untuk kawasan-kawasan wilayah lainnya.

DAFTAR PUSTAKA

Brey, Barry B. 2000. Mikroprosesor Intel 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, dan Pentium-Pro : Arsitektur, Pemrograman, Antarmuka (Edisi kelima jilid 1), Penerbit Erlangga. Bryant, Victor. 1993. Aspect of Combinatorics : A Wide-Ranging Introduction, Cambridge University Press. Fadlisyah, S.Si., 2007. Computer Vision & Pengolahan Citra., Penerbit Andi Yogyakarta. Fadlisyah, S.Si., 2007. Pengantar Grafika Komputer., Penerbit Andi Yogyakarta. Gonzalez, Rafael C., dan Wintz, Paul. 1987. Digital Image Processing, Addison Wesley Hearn, D. dan Baker, MP. 1994. Computer Graphics. Englewood Cliffs, New Jersey : Prentice-Hall Konishi, Scott., Yuillie, Alan L., Coughlan, James M., dan Zhu, Song Chun., 2003, Statistical Edge Detection : Learning and Evaluating Edge Cues, IEEE Transaction on Pattern Analysis and Machine Intelligence Vol 5, No. 1, 57 - 74 Low, Adrian. 1991, Computer Vision & Image Processing: Introductory, McGraw-Hill International Editions. Mano, M. Morris. 1993. Computer System Architecture, Prentice-Hall International. Munir, Rinaldi. 2003, Matematika Diskrit : Edisi Kedua, Informatika Bandung Munir, Rinaldi. 2004, Pengolahan Citra Digital dengan Pendekatan Algoritmik, Informatika Bandung Purcell, Edwin J. dan Varberg, Dale. 1987. Kalkulus dan Geometri Analitis Edisi Kelima, Erlangga

Rachmat, Setiadi. 2004. Pengantar Logika Matematika, Penerbit Informatika, Bandung. Rogers, DF dan Adams, JA.1989. Mathematical Elements For Computer Graphic : McGraw-Hill Stalling, William. 1998. Organisasi dan Arsitektur Komputer : Perancangan Kinerja (jilid 1), Prentice Hall yang diterjemahkan oleh PT Prenhallindo, Jakarta.

RIWAYAT HIDUP PENULIS


Fadlisyah, S.Si berprofesi sebagai seorang dosen di Universitas Negeri Malikussaleh (UNIMAL). Saat ini beliau menjabat sebagai Kepala Laboratorium Teknik Informatika. Menyelesaikan pendidikannya di Fakultas MIPA program Ilmu Komputer, Universitas Padjadjaran Bandung pada tahun 2000. Selain aktif menulis beberapa buku teks komputer untuk tingkat bacaan mahasiswa, beliau juga aktif melakukan kegiatan riset riset yang berkaitan dengan Artificial Intelligence, dan Computer Vision. Adapun buku buku yang telah dikeluarkannya antara lain : Komputer Visi & Pengolahan Citra, Komputer Visi Biometriks, dan lain lain yang belum terpublikasi. Mengasuh mata kuliah Komputer Grafik, Pemrograman Matematika, Teori Bahasa & Otomata, Kecerdasan Buatan, Sistem Operasi (Linux), Pengolahan Citra, Komputer Visi, dll. Alamat yang dapat dihubungi : Fakultas Teknik UNIMAL, jln. Samudera No.35. Lhokseumawe. Telepon 0645- 42076.

MATEMATIKA DISKRIT
Representasi data di dalam komputer bersifat tidak kontinu, untuk itu pemanipulasiannya diperlukan suatu teknik khusus. Teknik-teknik ini memiliki kesamaan tujuan yaitu pengolahan diskrit, yang dapat dikatakan sebagai matematika diskrit. Matematika diskrit hadir sebagai suatu bidang kajian yang berkonsentrasi terhadap pemanipulasian berbagai data diskrit. Keunggulan yang ditawarkan buku ini adalah semua pembahasan benar-benar beorientasi kepada pemanipulasian data. Sehingga mahasiswa dapat secara tepat mengasosiakan implementasi dari berbagai materi yang dibahas ke dalam berbagai proses di dalam komputer. Adapun materi yang dibahas di dalam buku ini adalah : Logika, Peta Karnaugh, Metode QuineMcCluskey, Konvolusi, Representasi Bilangan Floating-Point, Kode Hamming, dan Teori Graph. Buku ini ditujukan kepada mahasiswa yang mengambil mata kuliah matematika diskrit, sebagai sarana primitif untuk menjangkau konsep-konsep pemanipulasian data yang lebih mendalam.

Você também pode gostar