Anda di halaman 1dari 37

Graf dan Otomata

ANINDITA SEPTIARINI
Sistem Penilaian
Tugas = 30%
 Tugas 1 = 20%
 Tugas 2 = 10%
Quiz = 30%
UTS = 40%

ANINDITA SEPTIARINI
GRAF
Graf digunakan untuk merepresentasikan objek-objek diskrit dan
hubungan antara objek-objek tersebut.
Representasi visual dari graf adalah dengan menyatakan objek
sebagai noktah/bulatan/titik, sedangkan hubungan antara objek
dinyatakan dengan garis.
Teori graf banyak digunakan dalam berbagai bidang kehidupan,
misalnya penyusunan jadwal kuliah, menentukan jalur terpendek ke
tempat tertentu, dan lain- lain.

ANINDITA SEPTIARINI
APLIKASI GRAF
Teori graf juga digunakan pada berbagai bidang ilmu, seperti :
• Ilmu Kimia,
• Ilmu Biologi,
• Ilmu Geografi,
• Teori Bahasa Formal, dan
• Teori Otomata, dsb. Rembang
Kudus
Brebes Demak
Tegal Pemalang Kendal
Semarang
Pekalongan
Slawi Blora

Temanggung Purwodadi
Salatiga
Wonosobo
Purbalingga
Purwokerto
Sragen
Banjarnegara Boyolali Solo

Kroya Sukoharjo
Cilacap Kebumen M agelang
Klaten
Purworejo
Wonogiri

ANINDITA SEPTIARINI
GRAF
Secara matematis graf didefinisikan sebagai berikut :
Suatu graf G(V,E) adalah suatu pasangan himpunan V(v1,v2, …, vn)
dan himpunan E(e1, e2, …, en) dimana :
V : himpunan vertek dan digambarkan sebagai titik.
E : himpunan sisi (edge) yang elemennya ei = (vj,vk) disebut sisi
dan digambarkan sebagai garis.
Dan dikatakan sisi ei bertumpu (incident) pada vj dan vk.

ANINDITA SEPTIARINI
Contoh
1
G1 G1 adalah graf dengan
2 3
V = { 1, 2, 3, 4 }
E = { (1, 2), (1, 3), (2,3), (2, 4), (3, 4) }
4

1 G2 adalah graf dengan


e1 e4
e3 V = { 1, 2, 3, 4 }
e2
2 3 E = { (1, 2), (2, 3), (1, 3), (1, 3), (2, 4),
e6
e5 (3, 4), (3, 4) }
e7

4
= { e1, e2, e3, e4, e5, e6, e7}
G2

ANINDITA SEPTIARINI
Contoh
1

e e Pada G2, sisi e3 = (1, 3) dan sisi e4 = (1, 3)


1 4

e
e
3 dinamakan sisi-ganda (multiple edges atau
2 2
e
3
paralel edges) karena kedua sisi ini
e
5
6
e
menghubungkan dua buah simpul yang sama,
7
4
yaitu simpul 1 dan simpul 3.
G2

ANINDITA SEPTIARINI
Jenis-Jenis Graf
1
1. Graf sederhana (simple graph)
Graf yang tidak mengandung gelang atau sisi-ganda 2 3

G1
2. Graf tak-sederhana (unsimple-graph) 1
e e
1 4
Graf yang mengandung sisi ganda atau gelang e
e
3
2
dinamakan graf tak-sederhana (unsimple graph) 2
e
3

e 6
5 e
7
4

G2
ANINDITA SEPTIARINI
Jenis-Jenis Graf
3. Graf tak-berarah (undirected graph)
Graf yang sisinya tidak mempunyai orientasi arah disebut graf tak-berarah.

1 1
1
e e
e e 1 4
1 4 e
e 3
3 e
2 3 e 2
2 2 3 2 e
8
e e 3
e 6 e 6
5 e 5
7 e
4 7
4
4
G1
G2 G3

ANINDITA SEPTIARINI
Jenis-Jenis Graf
4. Graf berarah (directed graph atau digraph)
Graf yang setiap sisinya diberikan orientasi arah dan tidak memiliki sisi
ganda.
1
1

2 3 2 3

4 4

Graf berarah Graf-ganda berarah

ANINDITA SEPTIARINI
GRAF
Berdasarkan orientasi arah pada sisi, maka secara umum graf dibedakan atas 2 jenis :
Graf Tidak Berarah (undirect graph)
Suatu graf yang mana setiap sisinya tidak mempunyai arah, dengan kata lain sisi (vj,vk)
= sisi (vk,vj).
Contoh :

A e5 •G = (V,E)
e4 •V = {A,B,C,D,E}
e6
•E = (e1, e2, e3, e4, e5, e6,e7, e8, e9, e10) = {(B,C), (C,C),
B (B,B), (A,B), (A,A), (A,D), (D,E), (D,D), (B,E), (E,E)}
e3 e8
D •e1 = (B,C) = (C,B)
e9 •e4 = (A,B) = (B,A)
e1 e7 •e6 = (A,D) = (D,A)
C
E e10 •e7 = (D,E) = (E,D)
e2 •e9 = (B,E) = (B,E)

ANINDITA SEPTIARINI
GRAF
Graf Berarah (direct graph)
Suatu graf yang mana semua sisi pada graf tersebut mempunyai arah tertentu
dengan kata lain sisi (vj,vk) ≠ sisi (vk,vj).
Contoh : •G = (V,E)
A •V = {A,B,C,D,E}
e1 e4 •E = (e1, e2, e3, e4, e5, e6,e7, e8, e9, e10 , e11, e12)
e2 e3 e1 = (A,B) ≠ (B,A)
C De E e2 = (A,C) ≠ (C,A)
B e5 e6 e9 e10
8
e7 e3 = (A,D) e10 = (E,J)
G e11 e4 = (A,E) e11 = (G,H)
F e12 H I J e5 = (C,F) e12 = (H,G)
e6 = (D,G)
Sisi (A,B)  A dapat memerintah B
e7 = (D,H) Titik awal dari suatu sisi = initial vertek
e8 = (E,H) Titik ujung dari suatu sisi = terminal vertek
e9 = (E,I)

ANINDITA SEPTIARINI
OTOMATA
Mesin abstrak yang dapat mengenali (recognize),
menerima (accept), atau membangkitkan (generate)
sebuah kalimat dalam bahasa tertentu.

Suatu bentuk yang memiliki fungsi-fungsi dari komputer


digital, menerima input, menghasilkan output, bisa
memiliki penyimpanan sementara dan mampu membuat
keputusan dalam mentransformasikan input dan output.
OTOMATA
Merupakan suatu sistem yang terdiri atas sejumlah
berhingga state, di mana state menyatakan informasi
mengenai input yang lalu, dan dapat pula dianggap
sebagai memori mesin. Input pada mesin otomata
dianggap sebagai bahasa yang harus dikenali oleh mesin.
Selanjutnya mesin otomata membuat keputusan yang
mengindikasikan apakah input itu diterima atau tidak.
Sehingga mesin otomata dapat dipakai untuk
menghasilkan bahasa yang aturannya ditentukan oleh
aturan bahasa itu.
OTOMATA
Otomata adalah mesin abstrak yang dapat
mengenali (recognize), menerima (accept),
atau membangkitkan (generate) sebuah kalimat
dalam bahasa tertentu.

Pada Perangkat lunak:


digunakan pada pembuatan kompiler bahasa
pemrograman.
Block Diagram
Otomata adalah mesin abstrak yang dapat mengenali
(recognize), menerima (accept), atau
membangkitkan (generate) sebuah kalimat dalam
bahasa tertentu.

Source language Otomata Target language


Peran Graf dan Otomata
dalam Ilmu Komputer
Modelling
Ide dasar mengenai komputasi
Ilmu
Komputer TEORI GRAF DAN
OTOMATA

teknik rekayasa untuk perancangan


sistem komputasi, meliputi perangkat
keras dan perangkat lunak, khususnya
penerapan rancangan dari teori
OTOMATA
a d a
A B C D

d u

F E

Gambar : Mesin otomata sederhana


Bila mesin mendapat string input sebagai berikut :
•ada : diterima
•adu : diterima
•add : ditolak
Penerapan Teori Graf dan Otomata
 Finite Automaton

• Tugas dari automaton tersebut adalah mengenali


keyword “then”
Fungsi Otomata
(dalam Hubungannya dg Bahasa)
Teori Bahasa :
 Penulisan suatu bahasa berdasarkan SINTAK (susunan / aturan /
grammar) dan SEMANTIK (arti).
 Membicarakan bahasa formal (formal language), terutama
digunakan untuk kepentingan perancangan kompilator (compiler)
dan pemroses naskah (text processor).
 Bahasa formal adalah kumpulan kalimat. Semua kalimat dalam
sebuah bahasa dibangkitkan oleh sebuah tata bahasa (grammar)
yang sama.
Fungsi Otomata
(dalam Hubungannya dg Bahasa)
Fungsi Otomata
(dalam Hubungannya dg Bahasa)
 Fungsi otomata adalah sebagai pengenal
(RECOGNIZER) string-string dari suatu bahasa

Bahasa Input otomata

 Fungsi automata sebagai pembangkit (GENERATOR)


string-string dari suatu bahasa, dalam hal ini bahasa
sebagai keluaran dari automata

Bahasa Output otomata


Materi Terkait
Matematika Dasar
 Himpunan
 Relasi
 Logika
 Graf

ANINDITA SEPTIARINI
ISTILAH-ISTILAH
Alphabet
Himpunan berhingga simbol-simbol (karakter-karakter), himpunan
Terminal.
Notasi : ∑
Contoh : {0, 1} adalah Alphabet atau ∑= {0, 1}

String / Word / Sentence


Rangkaian karakter dari alphabet.
Contoh : 01101 adalah string dari alphabet {0, 1} diatas.
ISTILAH-ISTILAH
Empty String / Null String
String yang tidak berisi karakter (panjang nol)
Notasi : λ atau ε

Panjang String (Length)


Jumlah karakter pada sebuah string (misal s adalah string).
Notasi : |s|
Contoh : s = 01101 maka |s| = 5
s = 00 maka |s| = 2
s = λ maka |s| = 0 atau |λ| = 0
ISTILAH-ISTILAH
Concatenation
Operasi menyambung 2 string (string s disambung dengan string t).
Notasi : st atau s.t
Contoh : s = 01, t = 11 maka
st = 0111 atau s.t = 0111
Substring
Bagian atau seluruh string.
Prefix
Bagian depan string.
Contoh : s = 01101, maka 01 adalah prefix dari s.
Pendahuluan
Sufix
Bagian belakang string.
Contoh: s = 01101, maka 101 adalah sufix dari s.
Proper Substring (Prefix / Sufix)
Jika t adalah substring s dan t ≠ s.
Contoh: s = 01101  t = 01 atau t = 101

 Closure / Kleene Star


Himpunan semua string yang terbentuk dari karakter-karakter dalam alphabet
termasuk empty string (λ).
Notasi : *
Pendahuluan
Contoh:
1. ∑ = {x}
∑* = {λ, x, xx, xxx, xxxx, xxxxx, …..}
2. ∑ = {0, 1}
∑* = {λ, 0, 1, 00, 01, 10, 11, 000, 001, …..}
3. ∑ = {ab, b}
∑* = ???
Language / Bahasa
Himpunan tertentu dari string yang terbentuk dari karakter-karakter dalam aphabet.
( L   *)
{λ} juga merupakan bahasa.
Notasi: L
Pendahuluan
Concatenation 2 Bahasa L dan M (L ≠ M)
LM = {st / s ε L dan t ε M}
Contoh:
L = {0, 01, 110}, M = {10, 110}
LM = {010, 0110, 01110,
i 11010, 110110}
LL = L2 , LL … LL = Li, L0 = {λ}
{λ} adalah identitas pada operasi concatenation 2 bahasa :
{λ} L = L {λ} = L
Pendahuluan
• Latihan Soal
L = {0, 01, 110}, M = {10, 110}
1. ML
2. MM
3. LLM
4. MLM
Pendahuluan
Union 2 Bahasa L dan M  L  M  M  L
L  M  {s | s  L / s  M }

Contoh : L  M  {0,01,10,110}
{} = Himpunan kosong adalah identitas pada operasi union 2 bahasa.
  L  L     L
Catatan:  L  L    
Pendahuluan
Closure dari Bahasa L
_
L*   Li
i 0

Contoh :
L = {aa}, maka
L0 = {λ}
L1 = {aa}
L2 = {aaaa}, dst……..
L* = {λ, aa, aaaa, …..}
Catatan: L* = L**
Pendahuluan
Positive Closure
_ _ _
 i 1
L  LL*  L.  L   L
i
  Li
i 0 i 0 i 1
Contoh :
L = {aa}
L+= {aa, aaaa, aaaaaa, …..}
Reverse
Membalik urutan karakter dalam sebuah string (dari belakang ke depan).
Contoh : s = 01101
Reverse = 10110
Pendahuluan
Palindrome
Bahasa yang berisi empty string {λ} dan semua string s dimana reverse (s) sama
dengan s.
Contoh:
∑ = {a, b}
Palindrome = L = {λ, a, b, aa, bb, aaa, aba, …..}
Catatan: Jika s1 ε L dan s2 ε L maka belum tentu s1s2 ε L
Contoh :
s1 = aa, s2 = bb
maka s1s2 = aabb  Tidak Palindrome

s3 = xx, s4 = x
maka s3s4 = xxx  Palindrome
Pendahuluan
Notasi +
Menyatakan “Pilih salah satu”
Notasi: + atau |
Contoh: (a + b)* = (a | b)*
(a + b)* = {λ, a, b, aa, bb, ab, ba, …..}
Pendahuluan
 Latihan Soal :
∑ = {a, b}
1. a* = …..
2. aa* = …..
3. (a | b)* = …..
4. (a | b)0 = …..
5. (a | b)1 = …..
6. (a | b)2 = …..
7. a*b* = …..
Pendahuluan
8. a | ba* = …..
9. (aa | ab | ba | bb)* = …..
10. (λ | a | b) = …..
11. (a | b) (a | b) (a | b)* =
12. {aaa, bbb, abb, aab, aba, baa, bba} = …..

Anda mungkin juga menyukai