Implementasi Logika Fuzzy Untuk Merepresentasikan kematangan Masakan Pada Game Mari Memasak

(1)

1 1.1 Latar Belakang Masalah

Game mari memasak merupakan suatu game simulasi melakukan kegiatan memasak makanan mentah menjadi matang. Dimana pemain sebagai koki akan diberikan misi memasak, pemain akan dituntut untuk menyajikan masakan menjadi matang dengan cara menentukan suhu api dan waktu penyajian yang tepat serta resep bumbu masakan yang sesuai . Sehingga dengan masakan yang disajikan matang pemain akan memenangkan kompetisi dalam permainan game.

Dalam kasus menentukan kematangan masakan pada game mari memasak, pemain dituntut menyajikan masakan dengan hasil cukup matang atau matang dengan cara menentukan suhu api dan waktu yang sesuai . Bagaimana jika belum dipastikan nilai suhu api dan waktu pada setiap masakan mengalami kesulitan untuk menghasilkan keputusan yang diinginkan untuk setiap masakan. Karena pemberian suhu api dan waktu yang tidak sesuai akan mengakibatkan masakan kurang atau belum mencapai pada tingkat matang .

Fuzzy Logic sangat berperan dalam memetakan suatu ruang input kedalam suatu ruang output. Fuzzy logic sudah banyak diterapkan dalam berbagai bidang komputasi. Salah satu peran logika fuzzy yang sudah banyak diterapkan dalam melakukan manajemen dan pengambilan keputusan pada pembuatan game. Selain itu logika fuzzy dapat membantu manusia dalam melakukan pengambilan keputusan, karena logika fuzzy diperlukan saat ada kondisi yang menuntut adanya keputusan yang tidak hanya bisa dijawab dengan ‘Ya’ atau ‘Tidak’[5].

Dari permasalahan di atas, dibutuhkan logika fuzzy yang dapat menentukan suhu api dan waktu yang akan menjadi variabel input pada masalah menentukan hasil keputusan dari variabel output tingkat kematangan masakan dan bagaimana logika fuzzy diterapkan pada perangkat lunak dalam menentukan keputusan tingkat kematangan masakan agar kematangan masakan dapat diputuskan. Berdasarkan latar belakang yang telah dijelaskan, penelitian yang akan dilakukan berjudul” Implementasi Logika Fuzzy Untuk Merepresentasikan Kematangan Masakan pada game Mari Memasak”.


(2)

1.2 Identifikasi Masalah

Berdasarkan latar belakang masalah yang telah diuraikan di atas, maka identifikasi masalahnya adalah

1. Bagaimana menentukan keputusan tingkat kematangan masakan berdasarkan pemberian suhu api dan waktu memasak.

2. Bagaimana mengimplementasikan logika fuzzy pada game mari memasak?

1.3 Maksud dan Tujuan

Maksud dari penelitian tugas akhir ini adalah menerapkan logika fuzzy pada game simulasi mari memasak.

Adapun tujuan yang akan dicapai dalam penelitian tugas akhir ini adalah

1. Menentukan keputusan tingkat kematangan masakan berdasarkan pemberian suhu api dan waktu memasak.

2. Mengimplementasikan logika fuzzy pada game mari memasak.

1.4 Batasan Masalah

Batasan masalah ini dibuat untuk membatasi ruang lingkup permasalahan yang akan diteliti, maka batasan masalah dari penelitian ini adalah sebagai berikut:

1. Input yang digunakan adalah nilai dari variabel suhu api dari rendah, sedang, tinggi dan waktu sebentar, sedang , lama.

2. Output yang akan dihasilkan dari variabel tingkat kematangan masakan dari mentah, cukup matang, matang dan hangus yang nantinya akan menjadi penentu kemenangan pemain berdasarkan jumlah masakan yang diselesaikan dari keputusan cukup matang dan matang.

3. Inference yang digunakan yaitu model Tsukamoto.

4. Game berupa simulasi berbasis desktop dimainkan secara offline. 5. Device input yang digunakan untuk pemain yaitu mouse dan keyboard.


(3)

1.5 Metodologi Penelitian

Metodelogi yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut:

1. Tahap pengumpulan data

Metode pengumpulan data yang digunakan dalam penelitian tugas akhir ini adalah sebagai berikut:

a. Studi Pustaka

Pengumpulan data dengan cara melakukan pencarian referensi-referensi dari, jurnal, paper, internet dan bacaan – bacaan yang berkaitan dengan fuzzy logic maupun pembuatan game simulasi mari memasak.

b. Observasi

Teknik pengumpulan data dengan cara mengadakan penelitian dan peninjauan langsung terhadap permasalahan yang diambil.

2. Tahap pembuatan perangkat lunak

Teknik analisis data dalam pembuatan game simulasi mari memasak ini menggunakan paradigma perangkat lunak secara waterfall yang memiliki tahapan proses meliputi:

1. Perancangan Sistem

Proses pengumpulan kebutuhan-kebutuhan sistem, yang nantinya akan diterapkan kedalam perangkat lunak yang akan dibangun.

2. Analisis Kebutuhan Perangkat Lunak

Tahap ini merupakan tahap mengumpulkan kebutuhan-kebutuhan perangkat lunak secara lengkap, dan melakukan analisis serta pendefinisian kebutuhan yang memenuhi untuk perangkat lunak yang dibangun.

3. Perancangan

Pada tahap ini dimana akan dilakukan perancangan perangkat lunak. setelah dilakukanya analisis kebutuhan perangkat lunak yang sudah memenuhi perangkat lunak dapat dibangun.


(4)

4. Pengkodean

Tahap ini merupakan tahap dimana perancangan perangkat lunak diterjemahkan ke dalam koding dengan bahasa pemrograman yang digunakan adalah Action Script 3.0 .

5. Pengujian

Proses pengujian white dan black box dilakukan untuk memastikan semua pernyataan sudah diuji baik mekanisme internal sistem atau komponen maupun output yang dihasilkan dalam menanggapi input. Memastikan bahwa dari input akan menghasilkan aktual dan sesuai yang dibutuhkan.

6. Pemeliharaan

Setelah proses pengkodean dan pengujian selesai, dilakukan implementasi pada perangkat lunak yang sudah dibangun. Pada tahap ini juga dilakukan pemeliharaan, perbaikan, dan pengembangan agar sistem tersebut tetap dapat berjalan sebgaimana fungsinya. Urutan proses lebih jelasnya dapat dilihat pada gambar 1.


(5)

1.6 Sistematika Penulisan

Sistematika penulisan laporan penelitian ini disusun untuk memberikan gambaran umum tentang penelitian dalam Tugas Akhir yang dijalankan. Sistematika penulisan Tugas Akhir ini adalah sebagai berikut :

BAB 1 PENDAHULUAN

Bab ini membahas tentang latar belakang masalah, rumusan masalah, maksud dan tujuan, batasan masalah, metode penelitian, dan sistematika penulisan.

BAB 2 TINJAUAN PUSTAKA

Bab ini merupakan tinjauan umum yang didalamnya menjelaskan tentang pengertian Game, kecerdasan buatan dalam game , algoritma fuzzy logic yang digunakan dalam game dan teori-teori pendukung pembangunan perangkat lunak , Adobe flash profesional CS6, ActionScript 3.0 sebagai bahasa pemrograman serta model berorientasi objek menggunakan UML (Unifed Modelling Language). Hal ini digunakan untuk mengetahui teori-teori yang berhubungan dengan masalah yang analisis.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi pemaparan analisis sistem, analisis masalah, analisis game, analisis masukan, analisis algoritma fuzzy logic, analisis kebutuhan perangkat lunak, analisis kebutuhan fungsional dan non fungsional.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini menjelaskan tentang implementasi dan pengujian white dan black box dari perangkat lunak game mari memasak yang dibangun berdasarkan analisis dan perancangan perangkat lunak game mari memasak yang telah dilakukan. Implementasi algoritma fuzzy logic pada game, implementasi antarmuka pada game.


(6)

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari pembahasan aplikasi game mari memasak yang akan dibuat dan saran untuk pengembangan aplikasi game mari memasak selanjutnya.


(7)

8

LANDASAN TEORI

2.1 Kecerdasan Buatan (Artificial Intelligence)

Kecerdasan Buatan (Artificial Intelligence) merupakan salah satu bagian dari ilmu komputer yang mempelajari bagaimana membuat mesin (computer) dapat melakukan pekerjaan seperti sebaik yang dilakukan manusia bahkan lebih baik daripda yang dilakukan manusia.

Menurut John McCarthy, 1956, AI: untuk mengetahui dan memodelkan proses-proses berpikir manusia dan mendesain mesin agar dapat menirukan prilaku manusia. Cerdas, berarti memiliki pengetahuan ditambah pengalaman, penalaran (bagaimana membuat keputusan dan mengambil tindakan), moral yang baik.

Manusia pandai (cerdas) dalam menyelesaikan permasalahan karena manusia mempunyai pengetahuan dan pengalaman.Pengetahuan diperoleh dari belajar.Semakin banyak bekal pengetahuan yang dimiliki tentu akan lebih mampu dalam menyelesaikan permasalahan. Tapi bekal pengetahuan saja tidak cukup, manusia juga diberi akal untuk melakukan penalaran, mengambil kesimpulan dengan pengalaman dan pengetahuan yang dimiliki.

Demikian juga agar mesin bisa cerdas (bertindak seperti dan sebaik manusia gambar 2. 1) maka harus diberi bekal pengetahuan, sehingga mempunyai kemampuan untuk menalar . Untuk membuat aplikasi kecerdasan buatan ada 2 bagian utama yang sangat dibutuhkan:

1. Basis Pengetahuan (Knowledge Base), bersifat fakta-fakta, teori, pemikiran dan hubungan antar satu dengan yang lainya.

2. Motor Infrensi (Infrensi Engine), kemampuan menarik kesimpulan berdasarkan pengetahuan dan pengalaman[4].


(8)

Gambar 2 Penerapan konsep kecerdasan buatan pada komputer 2.2 Algoritma Fuzzy Logic

Logika fuzzy adalah peningkatan dari logika Boolean yang berhadapan dengan konsep kebenaran sebagian. Dimana logika klasik (crisp) menyatakan bahwa segala hal dapat diekspresikan dalam istilah binary (0 atau 1, hitam atau putih, ya atau tidak). Logika fuzzy menggantikan kebenaran Boolean dengan tingkat kebenaran. Logika fuzzy memungkinkan nilai keanggotaan antara 0 dan 1, tingkat keabuan dan juga hitam dan putih, dan dalam bentuk linguistic, konsep tidak pasti seperti “sedikit”, “lumayan”, dan “sangat”.

Logika ini diperkenalkan oleh Dr.Lotfi Zadeh dari Universitas California, Barkeley pada tahun 1965. Logika fuzzy telah digunakan pada bidang-bidang seperti taksonomi, topologi, linguistik, teori automata, teori pengendalian, psikologi, pattern recogniti on, pengobatan, hukum, decision analysis, system theory and information retrieval.Pendekatan fuzzy memiliki kelebihan pada hasil yang terkait dengan sifat kognitif manusia, khususnya pada situasi yang melibatkan pembentukan konsep, pengenalan pola, dan pengambilan keputusan dalam lingkungan yang tidak pasti atau tidak jelas[5].

2.2.1 Himpunan Fuzzy

Himpunan fuzzy merupakan suatu pengembangan lebih lanjut tentang konsep himpunan dalam matematika. Himpunan Fuzzy adalah rentang nilai-nilai. Masing-masing nilai mempunyai derajat keanggotaan (membership) antara 0 sampai dengan 1. Ungkapan logika Boolean menggambarkan nilai-nilai “benar” atau “salah”. Logika fuzzy menggunakan ungkapan misalnya : “sangat lambat”, ”agak sedang”, “sangat cepat”dan lain-lain untuk mengungkapkan derajat


(9)

intensitasnya. Ilustrasi antara keanggotaan fuzzy dengan Boolean set dapat dilihat pada gambar dibawah ini.

Gambar 2.1 Pendefinisian kecepatan dalam bentuk fuzzy logic

Himpunan fuzzy memiliki 2 atribut , yaitu:

1. Linguistik, yaitu penamaan suatu grup yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami, seperti: MUDA,PAROBAYA,TUA.

2. Numeris, yaitu suatu nilai (angka) yang menunjukan ukuran dari suatu variable seperti : 40, 25, 50, dsb.

2.2.2 Fungsi – Fungsi Keanggotaan

Didalam fuzzy system, fungsi keanggotaan memainkan peranan yang sangat penting untuk merepresentasikan masalah dan menghasilkan keputusan yang akurat. Terdapat banyak sekali fungsi keanggotaan yang biasa digunakan. Disini hanya membahas beberapa fungsi keanggotaan yang sering digunakan di dunia nyata, yaitu :

1. Representasi Linear

Pada representasi linear, pemetaan input ke derajat keanggotaan digambarkan sebagai suatu garis lurus.Bentuk ini paling sederhana dan menjadi pilihan yang paling baik utuk mendekati suatu konsep yang kurang jelas ada 2 keadaan himpunan fuzzy yang linear diantaranya:


(10)

Fungsi Keanggotaan Liner Naik:

�[�] =�

�,� ≤ � �−�

�−�,� ≤ � ≤ �

�,� ≥ �

Gambar 2.2 Representasi Linear Naik Fungsi Keanggotaan Linear Turun.

�[�] =� �−�

�−�,� ≤ � ≤ �

�,� ≥ �

Gambar 2.3 Representasi Linear Naik 2. Fungsi Bahu

Daerah yang terletak di tengah-tengah suatu variabel yang direpresentasikan dalam bentuk segitiga, pada sisi kanan dan kirinya akan naik turun. Tetapi terkadang salah satu sisi dari variabel tersebut tidak mengalami perubahan. Himpunan fuzzy “bahu”, bukan segitiga, digunakan untuk mengakhiri variabel suatu daerah fuzzy. Bahu kiri bergerak dari benar ke salah, demikian juga bahu kanan bergerak dari salah ke benar. dapat dilihat pada Gambar 2.4

(2.1)


(11)

Fungsi Bahu (x,a,b) =

⎩ ⎪ ⎪ ⎨ ⎪ ⎪

⎧ �, � ≤ � ��−��−��, � ≤ � ≤ � �; � ≥ �

�; � ≤ �

�−��−��, � ≤ � ≤ �

�; � ≥ �

(2.3)

Gambar 2.4 Grafik dan notasi fungsi kurva bahu 3. Fungsi phi

Pada fungsi keanggotaan ini, hanya terdapat satu nilai x yang memiliki derajat keanggotaan yang sama dengan 1, yaitu ketika x=c. Nilai-nilai di sekitar c memiliki derajat keanggotaan yang masih mendekati 1. Grafik dan notasi matematika untuk fungsi phi dapat dilihat pada Gambar 2.5

Phi(x,b,c) = � ��� ��

,� − �,� −�,��,� ≤ �

� − ��� ��,�,�+�

�,�+��,� >�

(2.4)


(12)

4. Fungsi segitiga

Sama seperti fungsi phi, pada fungsi ini juga terdapat hanya satu nilai x yang memiliki derajat keanggotaan sama dengan 1, yaitu ketika x=b. Tetapi, nilai-nilai di sekitar b memiliki derajat keanggotaan yang turun cukup tajam menjauhi 1. Grafik dan notasi matematika untuk fungsi segitiga dapat dilihat pada Gambar 2.6

Segitiga(x,a,b,c) = �

�, � ≤ ������ ≥ � (� − �)/(� − �), �< � ≤ �

(� − �)/(� − �), �< � ≤ �

Gambar 2.6 Garfik dan notasi fungsi segitiga 5. Fungsi trapesium

Berbeda dengan fungsi segitiga, pada fungsi ini terdapat beberapa nilai x yang memiliki derajat keanggotaan sama dengan 1, yaitu ketika b≤ x≤ c. Tetapi derajat keanggotaan untuk a< x <b dan c< x≤ d memiliki karakteristik yang sama dengan fungsi segitiga. Grafik dan notasi matematika untuk fungsi ini dapat dilihat pada Gambar 2.7

Trapesiumµ[x] = ⎩ ⎪ ⎨ ⎪

⎧�,� ≤ ��−� ����� ≥ � �−�,�< � ≤ �

�,� ≤ � ≤ � �−�

�−�,�<� ≤ �

(2.5)


(13)

Gambar 2.7 Garfik dan notasi fungsi

2.2.3 Variabel Linguistik

Suatu himpunan fuzzy bisa didefiniskan berdasarkan variable linguistic tertentu. Variabel linguistic didefinisikan sebagai (u,T(u),U,R,S) dengan U adalah nama variable linguistic; T(u) adalah himpunan term(linguistic value/linguistic label) pada u dan masing-masing term didefinisikan dengan fungsi keanggotaan yang normal (mempunyai harga maksimum sama dengan 1) dan convex pada U; R adalah aturan sintatik untuk menghasilkan nama nilai-nilai pada u; dan S adalah aturan semantic untuk menghubungkan tiap nilai dengan artinya.

1. Fuzzyfication

Mengubah masukan - masukan yang nilai kebenarannya bersifat pasti (Crips input) kedalam bentuk fuzzy input, yang berupa nilai linguistik yang semantiknya ditentukan berdasarkan fungsi keanggotaan tertentu.

2. Inference

Melakukan penalaran menggunakan fuzzy input dan fuzzy rules yang telah di tentukan sehingga menghasilkan fuzzy output.

3. Defuzzyfication

Mengubah fuzzy output menjadi crisp value berdasarkan fungsi keanggotaan yang telah ditentukan.


(14)

Gambar 2.8 diagram blok untuk sistem berbasis aturan fuzzy [5].

2.2.4 Fuzzyfikasi

Fuzzyfikasi yaitu suatu proses untuk mengubah suatu masukan dari bentuk tegas (crips) menjadi fuzzy (variable linguistic) yang biasanya disajikan dalam bentuk himpunan-himpunan fuzzy dengan suatu fungsi keanggotaan masing-masing . Contoh dari proses Fuzzyfication adalah seperti yang ditunjukan di gambar 2.9. Sebuah sistem fuzzy untuk mengukur suhu mempunyai 5 buah membership function yang mempunyai label sangat dingin,dingin, hangat, panas, sangat panas. Seperti pada gambar 2.9


(15)

2.2.5 Inference

Dalam suatu sistem aturan fuzzy, proses inference memperhitungkan semua aturan yang ada dalam basis pengetahuan. Hasil dari proses inference direpresentasikan oleh suatu fuzzy set untuk setiap variabel bebas (pada consequent). Derajat keanggotaan untuk setiap nilai variabel tidak bebas menyatakan ukuran kompatibilitas terhadap variabel bebas (pada antecdent). Misalkan, terdapat suatu sistem dengan n variabel x1, ..., xn dan m variabel tidak bebas y1,...,ym. Misalkan R adalah suatu basis dari sejumlah r aturan fuzzy.

IF P1(x1,...,xn) THEN Q1 (y1,...,ym), IF Pr(x1,...,xn) THEN Qr (y1,...,ym), Dimana p1,...pr menyatakan fuzzy predicate untuk variabel bebas, dan Q1,...Qr menyatakan fuzzy predicate untuk variabel tidak bebas. Struktur sistem inferensi fuzzy dapat dilihat pada gambar 2.10

Gambar 2.10 Struktur sistem inferensi fuzzy [5]. Keterangan:

1) Basis Pengetahuan Fuzzy merupakan kumpulan rule-rule fuzzy dalam bentuk pernyataan IF…THEN.

2) Fuzzyfikasi adalah proses untuk mengubah input sistem yang

mempunyai nilai tegas menjadi variabel linguistic menggunakan fungsi keanggotaan yang disimpan dalam basis pengetahuan fuzzy.

3) Logika pengambil keputusan merupakan proses untuk mengubah input

fuzzy dengan cara mengikuti aturan-aturan (IF-THEN Rules) yang telah ditetapkan pada basis pengetahuan fuzzy.

4) Defuzzyfikasi merupakan proses mengubah output fuzzy yang diperoleh

dari mesin inferensi menjadi nilai tegas menggunakan fungsi keanggotaan yang sesuai dengan saat dilakukan fuzzyfikasi.


(16)

Terdapat tiga model aturan fuzzy yang digunakan secara luas dalam berbagai aplikasi.

1. Model Sugeno

Model ini dikenal juga sebagai Takagi-Sugeno-Kang (TSK) model, yaitu suatu varian dari Model Mamdani. Model ini menggunakan aturan yang berbentuk: IF x1 is A1 AND…AND xn is An THEN y=f(x1,…,xn) di mana f bisa sembarang fungsi dari variabel-variabel input yang nilainya berada dalam interval variabel output. Biasanya, fungsi ini dibatasi dengan menyatakan f sebagai kombinasi linier dari variabel-variabel input: f(x1,…,xn) = w0 + w1x1 + …+wnxn dimana w0, w1,…,wn adalah konstanta yang berupa bilangan real yang merupakan bagian dari spesifikasi aturan fuzzy.

2. Model Tsukamoto

Pada dasarnya, metode Tsukamoto mengaplikasikan penalaran monoton pada setiap aturanya . Kalau pada penalaran monoton , sistem hanya memiliki satu aturan , pada metode Tsukamoto , sistem terdiri atas beberapa aturan. Karena menggunakan konsep dasar penalaran monoton , pada metode Tsukamoto , setiap konsekuen pada aturan yang berbentuk IF-THEN harus direpresentasikan dengan suatu himpunan fuzzy dengan fungsi keanggotaan yang monoton . Output hasil inferensi dari tiap-tiap aturan diberikan secara tegas (crips) berdasarkan α predikat (fire strength). Proses agregasi antar aturan dilakukan, dan hasil akhinya diperoleh dengan menggunakan defuzzy dengan konsep rata-rata terbobot[6]. Misalkan ada variable masukan , yaitu x dan y , serta satu variable keluaran yaitu z. Variabel x terbagi atas 2 himpunan yaitu A1 dan A2 , variable y tebagi atas 2 himpunan yaitu B1 dan B2 , sedangkan variable keluaran z terbagi atas 2 himpunan yaitu C1 dan C2. Tentu saja himpunan C1 dan C2 harus merupakan himpunan yang bersifat monoton. Diberikan 2 aturan sebagai berikut:


(17)

[R2] IF x is A2 and y is B1 THEN z is (C2)

Berdasarkan aturan fuzzy tersebut, akan ditentukan nilai α dan zuntuk masing-masing aturan. α adalah nilai keanggotaan anteseden dari setiap aturan, sedangkan z adalah nilai perkiraan barang yang akan diproduksi dari setiap aturan. Berikut ini adalah langkah-langkah untuk mengkonversi sembilan aturan fuzzy

tersebut sehingga diperolah nilai α dan z dari setiap aturan. Pencarian nilai Z pada contoh kasus proses produksi perusahaan berdasarkan α-predikat dan z* untuk setiap aturan dengan menggunakan fungsi MIN pada aplikasi fungsi implikasinya. Berikut adalah contoh kasus metode tsukamoto dalam memetakan ruang input kedalam ruang output pada kasus menentukan jumlah produksi barang berdasarkan permintaan dan persediaan barang[12].

[R1] IF Permintaan TURUN And Persediaan BANYAK THEN Produksi Barang BERKURANG;

� − ��������1 = ����TURUN ∩psdBANYAK

= min(���� TURUN [x],���� BANYAK [�])

Representasi aturan fuzzy [R1] ditunjukan pada gambar

Gambar 2.11 Representasi aturan fuzzy [R1].

z1 = zmax- �1(zmax-zmin)

z1 adalah nilai z untuk aturan fuzzy [R1].


(18)

[R2] IF Permintaan TURUN And Persediaan SEDANG THEN Produksi Barang BERKURANG;

� − ��������2 = ����TURUN ∩psd SEDANG

= min(���� TURUN �,���� SEDANG [�])

Representasi aturan fuzzy [R2] ditunjukan pada gambar

Gambar 2.12 Representasi aturan fuzzy[R2]

z2 = zmax - �2(zmax-zmin)

z2 adalah nilai z untuk aturan fuzzy [R2].

[R3] IF Permintaan TURUN And Persediaan SEDIKIT THEN Produksi Barang BERKURANG;

� − ��������3 = ����TURUN∩psd SEDIKIT

= min(���� TURUN [x],���� SEDIKIT [�])

Representasi aturan fuzzy [R3] ditunjukan pada gambar


(19)

Gambar 2.13 Representasi Aturan Fuzzy[R3]

z3 = zmax - �3(zmax-zmin)

z3 adalah nilai z untuk aturan fuzzy [R3].

[R4] IF Permintaan TETAP And Persediaan BANYAK THEN Produksi Barang BERKURANG;

� − ��������4 = ����TETAP ∩psd BANYAK

= min(���� TETAP [x],���� BANYAK [�])

Representasi aturan fuzzy [R4] ditunjukan pada gambar

Gambar 2.14 Reperesentasi aturan fuzzy[R4]

Menurut fungsi keanggotaan produksi bertambah makamencari nilai z6 dengan Rumus z4 = ���� − �4 (zmax-zmin) (2.10) z4 adalah nilai z untuk aturan fuzzy [R4].


(20)

[R5] IF Permintaaan TETAP And Persediaan SEDANG THEN Produksi Barang TETAP;

� − ��������5 = ����TETAP ∩psd SEDANG

= min(���� TETAP [x],���� SEDANG [�])

Representasi aturan fuzzy [R5] ditunjukan pada gambar

Gambar 2.15 Reperesentasi aturan fuzzy[R5]

�[�,�,�] = �

1: x = xt 1: y = yt 1: z = zt z5=zt.

z5 adalah nilai z untuk aturan fuzzy [R5].

[R6] IF Permintaan TETAP And Persediaan SEDIKIT THEN Produksi Barang BERTAMBAH;

� − ��������6 = ����TETAP ∩psd SEDIKIT

= min(���� TETAP [x],���� SEDIKIT [�])

Representasi aturan fuzzy [R6] ditunjukan pada gambar

Gambar 2.16 Reperesentasi aturan fuzzy[R6]


(21)

z6= α6(zmax−zmin) + zmin

z6 adalah nilai z untuk aturan fuzzy [R6].

[R7] IF Permintaan NAIK And Persediaan BANYAK THEN Produksi Barang BERTAMBAH;

� − ��������7 = ����NAIK ∩psd BANYAK

= min(���� NAIK [x],���� BANYAK[�])

Representasi aturan fuzzy [R7] ditunjukan pada gambar

Gambar 2.17 Reperesentasi aturan fuzzy[R7]

z7= α7(zmax−zmin) + zmin

z7 adalah nilai z untuk aturan fuzzy [R7].

[R8] IF Permintaan NAIK And Persediaan SEDANG THEN Produksi Barang BERTAMBAH;

� − ��������8 = ����NAIK ∩psd SEDANG

= min(���� NAIK [x],���� SEDANG[�])

Representasi aturan fuzzy [R8] ditunjukan pada gambar

(2.12)


(22)

Gambar 2.18 Reperesentasi aturan fuzzy[R8]

z8= α8(zmax−zmin) + zmin

z8 adalah nilai z untuk aturan fuzzy [R8].

[R9] IF Permintaan NAIK And Persediaan Barang SEDIKIT THEN Produksi Barang BERTAMBAH;

� − ��������9 = ����NAIK ∩psd SEDIKIT

= min(���� NAIK [x],���� SEDIKIT[�])

Representasi aturan fuzzy [R9] ditunjukan pada gambar

Gambar 2.19 Reperesentasi aturan fuzzy[R9]

z9= α9(zmax−zmin) + zmin

z9 adalah nilai z untuk aturan fuzzy [R9].

Menentukan Output Crips (Defuzzifikasi)

Z =

�����1∗�1+�����2∗�2+�����3∗�3+�����4∗�4�����1+�����2+�����3+�����4 (2.16)

(2.14)


(23)

2.2.6 Defuzzyfikasi

Defuzzification mengubah fuzzy output menjadi crisp value berdasarkan fungsi keanggotaan yang telah ditentukan.Terdapat berbagai metode defuzzification yang telah berhasil diaplikasikan untuk berbagai macam masalah,

di sini dibahas 5 metode di antaranya, yaitu:[5] 1. Centroid method

Metode ini disebut juga sebagai Center of Area atau Center of Gravity. Metode ini menghitung nilai crisp menggunakan rumus:

� ∗

=

∫ ��(�)�� ∫ �(�)��

di mana y* suatu nilai crisp.

Fungsi integration dapat diganti dengan fungsi summation jika y bernilai diskrit, sehingga menjadi:

� ∗

=

∑ ��(�) ∑ �(�)

di mana y* adalah nilai crisp dan (y) adalah derajat keanggotaan dari y. 2. Height method

Metode ini dikenal sebagai prinsip keanggotaan maksimum karena metode ini secara sederhana memilih nilai crisp yang memiliki derajat keanggotaan maksimum. Oleh karena itu, metode ini hanya bisa dipakai untuk fungsi keanggotaan yang memiliki derajat keanggotaan 1 pada suatu nilai crisp tunggal dan dan 0 pada semua nilai crisp yang lain. Fungsi seperti ini sering disebut sebagai singleton.

3. First (or Last) of Maxima

Metode ini juga merupakan generalisasi dari height method untuk kasus di mana fungsi keanggotaan output memiliki lebih dari satu nilai maksimum.Sehingga nilai crisp yang digunakan adalah salah satu dari nilai yang

(2.17)


(24)

dihasilkan dari maksimum pertama atau maksimum terakhir (tergantung pada aplikasi yang akan dibangun).

4. Mean-Max Method

Metode ini disebut juga sebagai Middle of Maxima. Merupakan generalisasi dari height method untuk kasus di mana terdapat lebih dari satu nilai crisp yang memiliki derajat keanggotaan maksimum.Sehingga y* didefinisikan sebagai titik tengah antara nilai crisp terkecil dan nilai crisp terbesar

� ∗

=

�+�

m = nilai crisp yang paling kecil M = nilai crisp yang paling besar. 5. Weighted Average

Metode ini mengambil nilai rata-rata dengan menggunakan pembobotan berupa derajat keanggotaan. Sehingga y* didefinisikan sebagai:

� ∗

=

�(�)� �(�)

y= nilai crisp

(y) = derajat keanggotan dari nilai crisp y.

2.2.7 Operator Dasar Zadeh • Operator AND

Operator ini berhubungan dengan operasi interaksi pada himpunan. � -predikat sebagai hasil operasi dengan operator AND diperoleh dengan mengambil nilai keanggotaan terkecil antara elemen-elemen pada himpunan-himpunan yang bersangkutan.

μA∩B = min(μA[x], μB[y])

(2.19)

(2.20)


(25)

Rumus ��=zmax-zi / zmax-zmin • Operator OR

Operator ini berhubungan dengan operasi union pada himpunan. α

-predikat sebagai hasil operasi dengan operator AND diperoleh dengan mengambil nilai keanggotaan terkecil antar elemen pada himpunan-himpunan yang

bersangkutan.

μAUB = max(μA[x], μB[y]) 2.3 Game

Di dalam bagian ini akan dibahas tentang game, klasifikasi game berdasarkan platform,genre, serta sudut pandang permainan (game view point) dan berdasarkan pembatasan usia dari user pada game tersebut.

2.3.1 Pengertian Game

Game adalah sebentuk karya seni di mana peserta, yang disebut pemain, Membuat keputusan untuk mengelola sumber daya yang dimilikinya melalui benda di dalam game demi mencapai tujuan[13].

2.3.1.1Video Game

Game elektronik atau selanjutnya dapat disebut video game pertama sekali ditemukan oleh Thomas T. Goldsmith dan Estle Ray Mann. Penemuan ini dipatenkan pada Januari 1947, yang mendasari perkembangannya saat itu adalah ketika mereka menemukan Cathode-Ray Tube sebuah tabung digunakan sebagai media untuk membuat simulasi kecepatan tembakan dan arah tembakan sebuah roket. Pada Februari 1951, Christopher Strachey memulai perkembangannya kearah pemrograman yang mulai menggunakan memori dimana aplikasinya diterapkan untuk kebutuhan para pilot. Dan penemuan baru terus berkembang hingga tahun 1959. Namun era perkembangan konsol game di mulai pada generasi pertama tahun 1972 sampai tahun 1977. Generasi kedua (1976-1982) sering disebut generasi konsol 8 bit. Di mana pemrograman video game dibuat lebih advance. Generasi Ketiga (1983-1992), Nintendo Entertainment System (NES) mendominasi pasarnya hingga Amerika Utara, Sega Master System juga berkembang pesat di Eropa dan


(26)

Brasil. Generasi Keempat (1987-1996) lebih dikenal dengan generasi 16 Bit dimana pengembangannya dimulai sekitar Oktober 1987. Generasi Kelima (1993-2002), konsol 64 bit mulai muncul pada era ini, grafis 3D mulai menjadi alasan untuk perang konsol ini. Generasi Keenam (1998-2006) merupakan generasi 128 bit, teknologi semakin maju membuat beberapa konsol baru mulai muncul dan semuanya memiliki pasar tersendiri. Generasi Ketujuh (2004) beberapa pengembang konsol mulai fokus dengan pengembangan saja. Mulai tahun 2004 hanya beberapa perusahaan konsol yang masih bertahan dengan pengembangannya Nintendo, Sony dan Microsoft.

2.3.1.2Genre Pada Game

Menurut buku “Fundamentals of Game Design”, genre game bisa dibagi menjadi 9 jenis, yaitu:

1. Action

Action game adalah game dimana kebanyakan dari tantangan yang disajikan merupakan dari tes physical skill dan koordinasi pemain. Salah satu sub-genre action game adalah shooters game, baik yang 2D maupun 3D seperti First Person Shooters (FPS).

2. Strategy

Strategy game menantang pemain untuk mencapai kemenangan dengan perencanaan, khususnya melalui perencanaan serangkaian tindakan yang dilakukan melawan satu lawan atau lebih. Kemenangan diraih dengan perencanaan matang dan pengambilan keputusan yang optimal.

3. Role Playing Game (RPG)

RPG adalah game dimana pemain mengontrol satu atau lebih karakter yang biasanya di desain oleh pemain itu sendiri, dan memandu mereka melewati berbagai rintangan yang diatur oleh komputer. Perkembangan karakter dalam hal kekuatan dan kemampuannya adalah kunci dari game jenis ini.


(27)

Sports game mensimulasikan berbagai aspek dari olahraga atletik nyata maupun imajiner, apakah itu memainkan pertandingan, memanage tim dan karir, atau keduanya. Salah satu contoh game jenis ini adalah Pro Evolution Soccer 2012 (PES 2012), dimana pemain bisa memainkan pertandingan, menjadi manajer tim, maupun menjadi pemain dan mengembangkan karirnya sendiri.

5. Vechicle Simulation

Vechicle simulation membuat feeling mengendarai kendaraan, baik kendaraan nyata maupun kendaraan imajiner. Performa dan 18 karakteristik kasar mesin harus menyerupai kenyataan, kecuali jika yang didesain adalah kendaraan imajiner.

6. Construction and Management Simulation (CMS)

CMS game adalah game tentang proses. Tujuan pemain bukan untuk mengalahkan musuh, tetapi membangun sesuatu dengan konteks proses yang sedang berjalan. Semakin pemain mengerti dan mengontrol proses, semakin sukses sesuatu yang ia bangun. Game seperti ini biasanya menyediakan dua jenis permainan, yaitu mode bebas dimana pemain bebas membangun sesuatu, dan mode misi dimana terdapat skenario hal apa yang harus dibangun oleh pemain.

7. Artificial Life and Puzzle Game

Artificial Life game adalah game yang membuat tiruan dari kehidupan sebenarnya. Biasanya ada dua jenis game ini, tiruan kehidupan manusia, contohnya The SIMS, dan tiruan kehidupan binatang, contohnya Tamagochi. 8. Online Game

Istilah online game disini mengacu kepada multiplayer game dimana mesin dari para pemain terhubung dengan jaringan[7].

2.4 Object Oriented Programing

Secara spesifik, pengertian berorientasi objek berarti bahwa mengorganisasi perangkat lunak sebagai kumpulan dari objek tertentu yang memiliki struktur data dan perilakunya. Hal ini yang membedakan dengan


(28)

pemograman konvensional dimana struktur data dan perilaku hanya berhubungan secara terpisah. Terdapat beberapa cara untuk menentukan karakteristik dalam pendekatan berorientasi objek, tetapi secara umum mencakup empat hal, yaitu identifikasi, klasifikasi, polymorphism (polimorfisme) dan inheritance (pewarisan)[8].

2.4.1 Konsep Dasar Berorientasi Objek

Pendekatan berorientasi objek merupakan suatu teknik atau cara pendekatan dalam melihat permasalahan dan sistem (sistem perangkat lunak, sistem informasi atau sistem lainnya). Pendekatan berorientasi objek akan memandang sistem yang akan dikembangkan sebagai suatu kumpulan objek yang berkorespodensi dengan objek-objek dunia nyata. Berikut ini adalah beberapa konsep dasar yang harus dipahami tentang metodologi berorientasi objek[9].

1. Kelas (class)

Kelas adalah kumpulan objek-objek dengan karakteristik yang sama. Kelas merupakan definisi statis dan himpunan objek yang sama yang mungkin lahir atau tercipta dan kelas tersebut. Sebuah kelas akan mempunyai sifat (atribut), kelakuan (operasi/metode), hubungan (relationship) dan arti. Suatu kelas dapat diwariskan ke kelas yang baru.

2. Objek (object)

Objek adalah abstraksi dan sesuatu yang mewakilkan dunia nyata seperti benda, manusia, satuan organisasi, tempat, kejadian, struktur, status atau hal-hal lain yang bersifat abstrak. Objek merupakan entitas yang mampu menyimpan informasi (status) dan mempunyai operasi (kelakukan) yang dapat diterapkan atau dapat berpengaruh pada status objeknya. Objek mempunyai siklus hidup yang diciptakan, dimanipulasi, dan dihancurkan.

3. Metode (method)

Operasi atau metode pada sebuah kelas hampir sama dengan fungsi prosedur pada metodologi struktural. Sebuah kelas boleh memiliki lebih dari


(29)

satu metode atau operasi yang befungsi untuk memanipulasi objek itu sendiri. Operasi atau metode merupakan fungsi atau transformasi yang dapat dilakukan terhadap objek atau dilakukan oleh objek.

4. Atribut (attribute)

Atribut dari sebuah kelas adalah variable global yang dimiliki sebuah kelas. Atribut dapat berupa nilai atau elemen-elemen data yang dimiliki oleh objek dalam kelas objek. Atribut dipunyai secara individual oleh sebuah objek, misalnya berat, jenis, nama dan sebagainya.

5. Abstraksi (absraction)

Prinsip untuk merepresentasikan dunia nyata yang kompleks menjadi satu bentuk model yang sederhana dengan mengabaikan aspek-aspek lain yang tidak sesuai dengan permasalahan.

6. Enkapsulasi (encapsulation)

Pembungkusan atribut data dan layanan (operasi-operasi) yang dipunyai objek untuk menyembunyikan implementasi dan objek sehingga objek lain tidak mengetahui cara kerjanya.

7. Pewarisan (inheritance)

Mekanisme yang memungkinkan suatu objek mewarisi sebagian atau seluruh definisi dan objek lain sebagai bagian dari dirinya.

8. Antarmuka (interface)

Antarmuka (interface) sangat mirip dengan kelas, tapi tanpa atribut kelas dan memiliki metode yang dideklarasikan tanpa isi. Deklarasi metode pada sebuah interface dapat diimplementasikan oleh kelas lain.

9. Reusability

Pemanfaatan kembali objek yang sudah didefinisikan untuk suatu permasalahan pada permasalahan lainnya yang melibatkan objek tersebut. 10. Generalisasi dan Spesialisasi

Menunjukan hubungan antara kelas dan objek yang umum dengan kelas dan objek yang khusus. Misalnya kelas yang lebih umum (generalisasi)


(30)

adalah kendaraan darat dan kelas khususnya (spesialisasi) adalah mobil, motor, dan kereta.

11. Komunikasi Antar Objek

Komunikasi Antar Objek dilakukan lewat pesan (message) yang dikirim dari suatu objek ke objek yang lain.

12. Polimorfisme (polymorphism)

Kemampuan suatu objek untuk digunakan di banyak tujuan yang berbeda dengan nama yang sama sehingga menghemat baris program.

13. Package

Package adalah sebuah container atau kemasan yang dapat digunakan untuk mengelompokkan kelas-kelas sehingga memungkinkan beberapa kelas yang bernama sama disimpan dalam package yang berbeda.

2.4.2 Analisis Berorientasi Objek

Analisis berorientasi objek atau Object Oriented Analysis (OOA) adalah tahap untuk menganalisis spesifikasi atau kebutuhan akan sistem yang akan dibangun dengan konsep berorientasi objek, apakah benar kebutuhan yang ada dapat diimplementasikan menjadi sebuah sistem berorientasi objek.

OOA biasanya menggunakan kartu CRC (Component, Responsibility, Collaborator) untuk membangun kelas-kelas yang akan digunakan atau menggunakan UML (Unifed Modeling Language) pada bagian diagram use case, diagram kelas, dan diagram objek[9].

2.4.3 Desain Berorientasi Objek

Desain berorientasi objek atau Object Oriented Design (OOD) adalah tahapan perantara untuk spesifikasi atau kebutuhan sistem yang akan dibangun dengan konsep berorientasi objek ke desain pemodelan agar lebih mudah diimplementasikan dengan pemograman berorientasikan objek. Pemodelan berorientasi objek biasanya dituangkan dalam dokumentasi perangkat lunak


(31)

dengan menggunakan perangkat lunak dengan menggunakan perangkat pemodelan berorientasi objek, diantaranya adalah UML (Unified Modeling Language). Kendala dan permasalahan pembangunan sistem berorientasi objek biasanya dapat dikenali dalam tahap ini.

2.4.4 Pemodelan

Pemodelan adalah gambaran dari realita yang sederhana dan dituangkan dalam bentuk pemetaan dengan aturan tertentu. Pemodelan dapat menggunakan bentuk yang sama dengan realitas. Pemodelan juga banyak digunakan untuk merencanakan suatu hal agar kegagalan dan resiko yang mungkin terjadi dapat meminimalisir.

Pada dunia pembangunan perangkat lunak juga diperlunakan pemodelan. Pemodelan perangkat lunak digunakan untuk mempermudah langkah berikutnya dari pengembangan sebuah sistem sehingga lebih terencana. Pemodelan pada pembangunan perangkat lunak untuk menvisualkan perangkat lunak yang akan dibuat.

2.5 UML ( Unified Modelling Language)

Unified Modelling Language (UML) adalah sebuah “bahasa” yang telah menjadi standar dalam industri visualisasi, merancang, dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem.

UML dapat digunakan untuk membuat model untuk semua jenis perangkat lunak, dimana perangkat lunak tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa berorientasi objek.

Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentum, dan


(32)

UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya yaitu : Grady Booch OOD (Object Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique) dan Ivar Jacobson OOSE (Object Oriented Software Engineering).

2.5.1 Diagram UML

Pada UML terdiri dari 13 macam diagram yang dikelompokan dalam 3 kategori. Pembagian kategori dan macam-macam diagram tersebut dapat dilihat pada gambar 2.20

Gambar 2.20 Diagram UML[9]

Berikut ini penjelasan singkat dari pembagian kategori tersebut:

1. Structure diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan suatu struktur statis dari sistem yang dimodelkan.


(33)

2. Behavior diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan kelakuan sistem atau rangkaian perubahan yang terjadi pada sebuah sistem.

3. Interaction diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan interaksi sistem dengan sistem lain maupun interaksi antarsubsistem pada suatu sistem.

2.5.2 Class Diagram

Diagram Kelas menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi.

1. Atribut merupakan variable-variabel yang dimiliki oleh suatu kelas. 2. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu

kelas

Diagram kelas dibuat agar pembuat program membuat kelas-kelas sesuai rencana di dalam diagram kelas agar antara dokumentasi perancangan dan perangkat lunak sinkron.Berikut Contoh Class Diagram dapat dilihat pada Gambar 2.21

Gambar 2.21 Contoh Class Diagram[9]

2.5.3 Diagram Use Case

Diagram use case merupakan pemodelan untuk kelakuan (behaviour) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi


(34)

antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi itu. Syarat penamaan pada use case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut aktor dan use case[9].

1. Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang.

2. Use case merupakan fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antar unit atau aktor. Contoh Use Case Diagram dapat dilihat pada Gambar 2.22


(35)

2.5.4 Diagram Aktivitas (Activity Diagram)

Diagram aktivitas menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis atau menu yang ada pada perangkat lunak. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem. Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut:

1. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan.

2. Urutan atau pengelompokkan tampilan dari sistem/user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan.

3. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya.

4. Rancangan menu yang ditampilkan pada perangkat lunak. Contoh Activity Diagram dapat dilihat pada Gambar 2.23


(36)

Gambar 2.23 Contoh Activity Diagram 2.5.5 Diagram Sekuen (Sequence Diagram)

Diagram sekuen menggambarkan kelakuan pada objek use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambar diagram sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu. Membuat diagram sekuen juga dibutuhkan untuk melihat skenario yang ada pada use case. Banyaknya diagram sekuen yang harus digambar adalah minimal sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakin banyak use case yang didefinisikan maka


(37)

diagram sekuen yang harus dibuat juga semakin banyak. Contoh Sequence Diagram dapat dilihat pada Gambar 2.24 [9].

Gambar 2.24 Contoh Sequence Diagram

2.6 Adobe Flash

Adobe Flash adalah software yang berlisensi yang dikeluarkan oleh adobe system yang sangat tenar dengan animasi gerak 2D atau 3D. Tipe file atau extensi dari adobe falsh adalah .swf. Adobe flash menggunakan bahasa pemrograman berjenis ActionScript, versi terbaru dengan ActionScript 3.0.

Flash pertama kali duluncurkan pada tahun 1996 dengan versi flash 1.0 kemudian Macromedia membeli animasi vektor FutureSplash Macromedia meluncurkan versi pertama sebelum 2005, Macromedia terakhir meluncurkan versi Macromedia Flash 8. Kemudian Flash berpindah tangan yang di akuisasi seluruh produk Macromedia pada Adobe System tanggal 3 Desember 2005 sehingga Macromedia Flash berubah jadi Adobe Flah[10].


(38)

2.6.1 Adobe Flash Professional CS6

Menurut buku Kupas Tuntas Adobe Flash Professional CS6, Adobe Flash Profesional perangkat lunak CS6 adalah lingkungan authoring kuat untuk menciptakan animasi dan konten multimedia. Desain pengalaman mendalam interaktif yang menyajikan secara konsisten di desktop dan beberapa perangkat, termasuk tablet, smartphone, dan televisi. Adobe Flash CS6 menyediakan berbagai macam fitur yang akan sangat membantu para animator untuk membuat animasi menjadi semakin mudah dan menarik. Adobe Flash CS6 telah mampu membuat dan mengolah teks maupun objek dengan efek tiga dimensi, sehingga hasilnya tampak lebih menarik.

Komponen Adobe Flash Professional CS6

1. Create from Template : berguna untuk membuka lembar kerja dengan template yang tersedia dalam program Adobe Flash CS6

2. Open a recent item : berguna untuk membuka kembali file yang pernah disimpan atau dibuka sebelumnya

3. Create new : berguna untuk membuka lembar kerja baru dengan beberapa pilihan script yang tersedia

4. Learn : berguna untuk membuka jendela Help yang berguna untuk mempelajari suatu perintah.

Komponen kerja Adobe Flash Professional CS6 1. Toolbox

Toolbox adalah sebuah panel yang menampung tombol-tombol yang berguna untuk membuat suatu desain animasi mulai dari tombol seleksi, pen, pensil, text, 3D rotation, dan lain-lain.

2. Timeline

Berguna untuk menentukan durasi animasi, jumlah layer, frame, menempatkan script dan beberapa keperluan animasi lainnya. Semua bentuk animasi yang di buat akan diatur dan ditempatkan pada layer dalam timeline


(39)

3. Stage

Stage adalah lembar kerja yang digunakan untuk membuat atau mendesain objek yang akan dianimasikan. Objek yang dibuat dalam lembar kerja dapat berupa objek Vektor, Movie clip, Text, Button, dan lain-lain.

4. Panel Properties

Panel properties berguna untuk menampilkan parameter dari sebuah tombol yang terpilih sehingga dapat dimodifikasi dan dimaksimalkan fungsi dari tombol tersebut. Panel properties menampilkan parameter sesuai dengan tombol yang terpilih

5. Efek Filters

Efek filters adalah bagian dari panel properties yang menampilkan berbagai jenis efek filter yang dapat digunakan untuk mempercantik tampilan objek. Filter hanya dapat diaplikasikan pada obejk Text, Movie clip dan Button.

6. Motion Editor

Motion editor berguna untuk melakukan kontrol animasi yang telah dibuat, seperti mengatur motion, transformasi, pewarnaan, filter dan parameter animasi lainnya.

7. Motion Presets

Panel motion presets menyimpan format animasi yang telah jadi dan siap digunakan sewaktu-waktu jika diperlukan. Ada berbagai pilihan animasi dalam panel motion presets, seperti sprila-3D, smoke, fly-out-top, dan lain-lain[11].


(40)

Gambar 2.25 Tampilan area kerja adobe flash CS6

2.7 ActionScript 3.0

ActionScript 3.0 atau disingkat AS3 merupakan bahasa pemrograman yang bekerja pada Adobe Flash, Flex, dan FlashDevlop. ActionScript 3.0 pertama kali dirilis pada tahun 2006 bersamaan dengan diluncurkanya Flash versi 9 sekaligus Flash pertama yang kinitelah diakuisi oleh Adobe System Inc. yaitu Flash AS3.

ActionScript 3.0 adalah bhasa yang didasarkan pada ECMAScript, yaitu standar bahasa pemrograman yang dikembangkan oleh ECMA (Eouropan Computer Manufacturers Association). Dengan berbagi bahasa pemrograman lainya seperti JavaScript dan XML.

Dibandingkan dengan versi lainya ,versi AS3 dapat menghasilkan performa yang lebih baik dalam pembuatan game, namun semakin kompleks dari segi struktur bahasa. Ada sedikit perbedaan dari versi AS2 dan AS3 dalam penulisan script yaitu AS3 tidak bisa dituliskan langsung pada symbol movie clip ataupun button seperti AS2 sehingga kita bisa mengontrol movie dengan hanya menuliskan script pada frame atau melalui file kelas[1].


(41)

(42)

43 3.1. Analisis Masalah

Dalam kasus menentukan kematangan masakan pada game mari memasak, pemain dituntut menyajikan masakan dengan hasil cukup matang atau matang dengan cara menentukan suhu api dan waktu yang sesuai . Bagaimana jika belum dipastikan nilai suhu api dan waktu pada setiap masakan mengalami kesulitan untuk menghasilkan keputusan yang diinginkan untuk setiap masakan. Karena pemberian suhu api dan waktu yang tidak sesuai akan mengakibatkan masakan kurang atau belum mencapai pada tingkat matang .

Dari permasalahan di atas, dibutuhkan logika fuzzy yang dapat menentukan suhu api dan waktu yang akan menjadi variabel input pada masalah menentukan hasil keputusan dari variabel output tingkat kematangan masakan.

3.1.1. Deskripsi Umum Sistem

Tahapan proses logika fuzzy pada sistem dapat dijelaskan sebagai berikut. Permainan dimulai, pemain menentukan suhu api untuk masakan kemudian memilih alat masak pada label alat masak, dan memilih masakan yang akan dimasak yang sudah ditentukan sesuai alat masakan. Setelah itu pemain memasukan bahan masakan dan bumbu resep pada alat masak. Sistem akan terlebih dahulu menyimpan data nilai suhu api masakan dalam basis pengetahuan fuzzy . Selajutnya pemain akan menyajikan masakan, maka data nilai suhu api dan waktu masakan didapat kemudian sistem memetakan nilai pada variabel suhu api dan waktu.


(43)

Gambar 3 Gambaran Umum Sistem

Setelah mendapatkan input dari pemain maka dari data input suhu api dan waktu akan dilakukan proses fuzzyfikasi , dimana data input suhu api dan waktu akan dikonversi kedalam bentuk fuzzy untuk kemudian menghasilkan nilai anteseden dari aturan/rule fuzzy berupa IF-THEN, jika aturan/rule lebih dari satu maka akan dilakukan agregasi semua aturan fuzzy pada tahap inferensi setalah melakukan agregasi maka pada tahap selanjutnya melakukan defuzzyfikasi yang akan menghasilkan nilai crips untuk keputusan atau ouput yang akan dihasilkan. 3.1.2. Analisis Game

Pada analisis game bertipe Time Management yang memanfaatkan logika fuzzy salah satunya yang bernama game Tukang Bakso yang dibangun oleh Geanissa Handarini, Teknik Informatika, Universitas Komputer Indonesia, logika fuzzy dalam game tukang bakso ini berperan menentukan keputusan kepuasan pelanggan tukang bakso berdasarkan waktu pelayanan dalam kategori cepat, sedang dan lambat. Dimana pemain harus menentukan waktu makanan , minuman dan kursi kosong untuk pelanggan sehingga dapat merepresentasikan kepuasan setiap pelanggan .

Game simulasi mari memasak yang akan dibangun ini akan

mereperesentasikan kematangan setiap masakan dengan memanfaatkan konsep logika fuzzy dalam memberikan ukuran nilai terhadap tingkat kematangan setiap masakan. Agar dapat merepresentasikan kematangan setiap masakan pemain harus menyesuaikan suhu api dan waktu pada masakan. Tingkat kematangan setiap masakan yang diselesaikan dari mentah, setengah matang , cukup matang dan matang. Dari keputusan tingkat kematangan setiap masakan akan menjadi


(44)

RH SD TG 1

0

40 56 80

penentu kemenangan dalam permainan dihitung berdasarkan jumlah masakan yang dapat diselesaikan pemain berada pada keputusan cukup matang dan matang. 3.1.3. Gameplay

Gameplay dalam game mari memasak ini, pemain bertindak sebagai koki melakukan kegiatan memasak, dengan cara menentukan suhu api dan waktu pada masakan sehingga akan menghasilkan keputusan kematangan masakan, jumlah yang diselesaikan akan dihitung sebagai penentu kemenangan bagi pemain. Dimana pemain harus menyelesaikan masakan dengan keputusan cukup matang dan matang sehingga nilai kemenangan pemain tercapai.

3.1.4. Analisis Masukan

Variabel yang digunakan dalam game mari memasak beserta masing-masing himpunanya adalah

1. Suhu api  Rendah, Sedang, Tinggi. 2. Waktu  Sebentar, Sedang, Lama

1. Variabel Suhu Api

Variabel Suhu Api dibagi menjadi 3 himpunan Rendah (RH), Sedang (SD), Tinggi(TG). Himpunan Rendah dan Tinggi menggunakan kurva linear turun dan naik, sedangkan himpunan Sedang kurva segitiga.

Rendah (RH) 0 - 40°C (bahu kiri) Sedang (SD) 40°C - 56°C (segitiga) Tinggi (TG) 56°C - 100°C (bahu kanan)

Gambar 3.1 Fungsi Keanggotaan Variabel Suhu Api

100


(45)

a. Fungsi keanggotaan pada grafik derajat keanggotaan variabel suhu api. 1. RENDAH ���[�] =� �: ����…� ≤ � �−� �−�: ����… � ≤ � ≤ � �: ����…� ≥ � (2.2)

µSuhuApiRendah[x] =�

1: Jika … x≤ 40

x−40

56−40: Jika … 40≤x≤56

0: Jika … x≥ 56

2. SEDANG

���[�] = �

�: ����…� ≤ ����� � ≥ �

�−�

�−�: ����…�< � ≤ �

�−�

�−�: ����…�< � ≤ �

(2.5)

�SuhuApiSedang[x]= �

0: Jika … x ≤40 atau x≥ 80

x−40

56−40: Jika … 40 < x≤ 56

80−x

80−56: Jika … 56 < x ≤ 80

3. TINGGI ���[�] = � �: ����…� ≤ � �−� �−�: ����…� ≤ � ≤ � �: ����…� ≥ � (2.1)

�SuhuApiTinggi[x] = �

0: x≤ 40

80−x

80−40: 40≤x≤ 80


(46)

SB SD LM 1

0

1 3 6

2. Variabel Waktu

Variabel Waktu dibagi menjadi 3 himpunan (SB), Sedang (SD), Lama (LM). Himpunan Sebentar dan Lama menggunakan kurva linear turun dan naik, sedangkan himpunan Sedang menggunakan kurva bentuk segitiga. Sebentar (SB) 0 – 2 Menit (bahu kiri)

Sedang (SD) 2 – 3 Menit (segitiga) Lama (LM) 3 – 8 Menit (bahu kanan)

Gambar 3.2Fungsi Keanggotaan Variabel Waktu

b. Fungsi keanggotaan pada grafik derajat keanggotaan variabel waktu. 1. SEBENTAR ���[�] =� �: ����…� ≤ � �−� �−�: ����… � ≤ � ≤ � �: ����…� ≥ � (2.2)

µWaktuSebentar[x] =�

1: Jika … x ≤1

x−1

3−1: Jika … 1≤x≤3

0: Jika … x ≥3

2. SEDANG

���[�] = �

�: ����… � ≤ ������ ≥ �

�−�

�−�: ����…�< � ≤ �

�−�

�−�: ����…�< � ≤ �

(2.5) µ[y]


(47)

�WaktuSedang[x]= �

0: Jika … x ≤1 atau x≥ 6

x−1

3−1: Jika … 1 < x≤ 3

6−x

6−3: Jika … 3 < x ≤ 6

3. LAMA ���[�] =� �: ����…� ≤ � �−� �−�: ����…� ≤ � ≤ � �: ����…� ≥ � (2.1)

�WaktuLama[�] = �

0: x≤ 1

6−x

6−3: 3≤x≤6

1: x≥ 6

3.1.5. Analisis Metode / Algoritma

Fuzzy logic memberikan ukuran nilai untuk setiap tingkat kematangan masakan melalui membership function. Untuk menentukan keputusan kematangan masakan berdasarkan suhu api dan waktu logika fuzzy memiliki tahapan proses meliputi tahapan fuzzyfikasi, infrence dan defuzzyfikasi dalam menentukan keputusan tingkat kematangan masakan agar tingkat kematangna masakan dapat direpresentasikan. Berikut adalah tahapan-tahapan proses logika fuzzy dalam menentukan keputusan tingkat kematangan pada kasus memasak nasi goreng:

Contoh Kasus:

Didapat data suhu api dan waktu memasak nasi goreng dengan nilai suhu api 68°C, dalam waktu 3menit. Nilai input suhu api 68 dan nilai 3 akan diubah kedalam bentuk fuzzy atau linguistik berikut proses mengubah menjadi nilai linguistik.

Keterangan:

1. Dari setiap variabel suhu api dan waktu setiap masakan mempunyai domain yang dinamis hal ini diberikan karena setiap masakan akan berbeda-beda dalam spesifikasi suhu api dan waktu saat memasak .


(48)

SD 1

0

56 80

A. Fuzzyfikasi

Pada proses fuzzyfikasi dimana nilai dari setiap masukan akan diubah kedalam bentuk fuzzy yang biasanya disajikan dalam himpunan-himpunan fuzzy dan mendapat kan nilai derajat keanggotaan yang dinotasikan dengan µ dari setiap variabel masukan. Berikut adalah proses fuzzyfikasi dari setiap nilai variabel masukan berdasarkan data yang didapat pada contoh kasus memasak nasi goreng.

1. Variabel Suhu Api

Perhitungan nilai �suhu api 68 berada pada fungsi keanggotaan Sedang dan Tinggi. Himpunan Rendah dan Tinggi menggunakan kurva linear turun dan naik, sedangkan himpunan Sedang menggunakan kurva bentuk segitiga.

A. Fungsi keanggotaan variabel suhu api nasi goreng.

Gambar 3.3 Representasi Suhu Api Nasi Goreng Sedang a. SEDANG

���[�] = �

�: ����…� ≤ ������ ≥ �

�−�

�−�: ����…�< � ≤ �

�−�

�−�: ����…�< � ≤ �

(2.5)

�SuhuApiSedang[68]= �

0: Jika … x ≤ 40 atau x≥ 80

x−a

b−a: Jika … 40 < x≤ 56

80−68

80−56: Jika … 56 < x ≤ 80

68 0,5

b c


(49)

TG 1

0

56 80

RH SD TG

1

0

40 56 80

Gambar 3.4 RepresentasiSuhu Api Nasi Goreng Tinggi

b. TINGGI ���[�] = � �: ����…� ≤ � �−� �−�: ����…� ≤ � ≤ � �: ����…� ≥ � (2.1)

µSuhuApiTinggi[68] = �

0: Jika … x≤56

80−68

80−56: Jika … 56≤ x≤ 80

1: Jika … x≥80

B. Nilai derajat keanggotaan hasil.

�SuhuApiSedang[68]= 80−68

80−56 = 0,5

µSuhuApiTinggi[68] =80−68

80−56

=

0,5

Gambar 3.5 Fungsi Keanggotaan Fuzzy Nasi Goreng (Suhu Api)

0,5 a b 68 68 SUHU API 0,5 µ[x] µ[x]


(50)

SD 1

0

1 3 6

SB SD LM

1

0

1 3 6

2. Variabel Waktu

Perhitungan nilai �waktu 3menit berada pada fungsi keanggotaan waktu sedang. Himpunan Sedang menggunakan kurva bentuk segitiga.

Gambar 3.6 Waktu nasi goreng Sedang

A. Fungsi keanggotaan variabel Waktu nasi goreng.

Dari gambar 3.6 menggunakan representasi kurva segitiga, dapat kita lihat untuk nilai linguistik waktu bernilai 3 berada pada keanggotaan sedang (SD). Dimana y=yt rumus (2.11) maka dimana yt adalah titik tengah dari fungsi keanggotaan waktu sedang. Dengan menggunakan persamaan y= yt kita bisa mendapatkan nilai derajat keanggotaan sedang (SD) dari variabel untuk waktu 3. Bernilai 1, y = yt sehingga nilai derajat keanggotaan waktu 3 menit adalah 1 .

B. Nilai derajat keanggotaan hasil

WaktuSedang [y] = jika y = yt = 1. (2.11)

Gambar 3.7 Fungsi Keanggotaan Fuzzy nasi goreng (Waktu)

WAKTU

WAKTU

µ[y]

y=yt

µ[y]


(51)

B. INFERENSI

Tahap ini merupakan proses penggabungan banyak aturan berdasarkan data yang tersedia. Telah terbentuk 10 himpunan fuzzy dari setiap variabel-variabelnya.

Tabel 3.1 Variabel-variabel Dalam Perhitungan Metode Tsukamoto

No. Variabel Keterangan

1 xmax Data suhu api maximum

2 xt Titik Tengah nilai himpunan suhu api

3 xmin Data suhu api minimum

4 ymax Data waktu maximum

5 yt Titik tengah nilai himpunan variabel waktu

6 ymin Data waktu minimum

7 zmax Data variabel maksimum tingkat

kematangan

8 zt Titik tengah nilai himpunan tingkat kematangan

9 zmin Data variabel minimum tingkat kematangan

10 x Data variabel suhu api

11 y Data variabel waktu

12 μSuhuapiRendah[x] Nilai keanggotaan himpunan Rendah dari variabel Suhu Api

13 μSuhuapiSedang[x] Nilai keanggotaan himpunan Sedang dari variable Suhu Api

14 μSuhuapiTinggi[x] Nilai keanggotaan himpunan Tinggi dari variable Suhu Api

15 μWaktuSebentar[y] Nilai keanggotaan himpunan Sebentar dari variable Waktu


(52)

No. Variabel Keterangan

16 μWaktuSedang[y] Nilai keanggotaan himpunan sedang dari variable Waktu

17 μWaktuLama[y] Nilai keanggotaan himpunan Lama dari variable Waktu

18 μTkMentah [z] Nilai keanggotaan himpunan Mentah dari variable Tingkat Kematangan 19 μTkCukup Matang [z] Nilai keanggotaan himpunan Cukup

Matang dari variable Tingkat Kematangan

20 μTkMatang [z] Nilai keanggotaan himpunan Matang dari variable Tingkat Kematangan 21 μTkHangus[z] Nilai keanggotaan himpunan Hangus

dari variable Tingkat Kematangan

22 α1 α dari aturan fuzzy [R1]

23 α2 α dari aturan fuzzy [R2]

24 α3 α dari aturan fuzzy [R3]

25 α4 α dari aturan fuzzy [R4]

26 α5 α dari aturan fuzzy [R5]

27 α6 α dari aturan fuzzy [R6]

28 α7 α dari aturan fuzzy [R7]

29 α8 α dari aturan fuzzy [R8]

30 α9 α dari aturan fuzzy [R9]

31 z1 z1 Nilai z dari aturan fuzzy [R1] 32 z2 z2 Nilai z dari aturan fuzzy [R2] 33 z3 z3 Nilai z dari aturan fuzzy [R3] 34 z4 z4 Nilai z dari aturan fuzzy [R4] 35 z5 z5 Nilai z dari aturan fuzzy [R5] 36 z6 z6 Nilai z dari aturan fuzzy [R6] 37 z7 z7 Nilai z dari aturan fuzzy [R7] 38 z8 z8 Nilai z dari aturan fuzzy [R8]


(53)

No. Variabel Keterangan 39 z9 z9 Nilai z dari aturan fuzzy [R9]

40 Z Nilai kematangan masakan

Dengan mengkombinasikan himpunan-himpunan fuzzy dari 2 variabel input masing – masing berjumlah 3 himpunan, maka diperoleh sembilan aturan fuzzy sebagai berikut:

[R1] IF SuhuApi Rendah And Waktu Sebentar THEN Masakan Mentah; [R2] IF SuhuApi Rendah And Waktu Sedang THEN Masakan Cukup

matang;

[R3] IF SuhuApi Rendah And Waktu Lama THEN Masakan Cukup matang;

[R4] IF SuhuApi Sedang And Waktu Sebentar THEN Masakan Mentah; [R5] IF SuhuApi Sedang And Waktu Sedang THEN Masakan Matang; [R6] IF SuhuApi Sedang And Waktu Lama THEN Masakan Matang; [R7] IF SuhuApi Tinggi And Waktu Sebentar THEN Masakan Cukup

Matang;

[R8] IF SuhuApi Tinggi And Waktu Sedang THEN Masakan Matang; [R9] IF SuhuApi Tinggi And Waktu Lama THEN Masakan Hangus;


(54)

Tabel 3.2 Rule Pemain C

IF

SUHU

API AND WAKTU THEN

TINGKAT KEMATANGAN [R1]

IF Rendah AND Sebentar THEN Mentah [R2]

IF Rendah AND Sedang THEN Cukup Matang [R3]

IF Rendah AND Lama THEN Cukup Matang [R4]

IF Sedang AND Sebentar THEN Mentah [R5]

IF Sedang AND Sedang THEN Matang [R6]

IF Sedang AND Lama THEN Matang [R7]

IF Tinggi AND Sebentar THEN Cukup Matang [R8]

IF Tinggi AND Sedang THEN Matang [R9]

IF Tinggi AND Lama THEN Hangus

Dari tabel 3.2 adalah rule atau aturan- aturan yang dapat diaplikasikan untuk pemain dalam permainan mari memasak dimana dari sembilan aturan-aturan, akan mendapat kan nilai α dan z untuk masing – masing aturan . α adalah nilai keanggotaan anteseden dari setiap aturan, sedangkan z adalah nilai perkiraan tingkat kematangan masakan dari setiap aturan.

Berikut adalah rule atau aturan yang dapat diaplikasikan untuk setiap nilai derajat keanggotaan yang sudah didapat pada contoh kasus memasak nasi goreng yang di ambil dari tabel 3.2:

µSuhuApi Tinggi[68] = 0,5

µSuhuApi Sedang[68] = 0,5


(55)

µWaktuSedang[3]= 1

Dari hasil fuzzyfikasi didapat nilai derajat keanggotaan masing-masing variabel suhu api dan waktu . Maka akan menghasilkan rule yang sesuai dari nilai derajat keanggotaan tersebut.

[R8] IF Suhu Api is Tinggi AND Waktu is Sedang THEN Matang [R5] IF Suhu Api is Sedang AND Waktu is Sedang THEN Matang

Didapat dua aturan diatas digunakan dalam perkiraan sementara dari hasil input untuk menghasilkan output crips.

Metode Inferensi yang mengaplikasikan penalaran monoton pada setiap aturanya. Menggunakan konsep dasar penalaran monoton, pada metode Tsukamoto setiap konsekuen pada aturan yang berbentuk IF-THEN harus direpresentasikan dengan suatu himpunan fuzzy dengan fungsi keanggotaan yang monoton. Output hasil inferensi dari tiap-tiap aturan(crips) berdasarkan α-predikat (fire strength). Metode Tsukamoto menggunakan konjungsi AND atau fungsi min persamaan (2.15) untuk mengatahui irisan dari setiap himpunan keanggotaan. Proses agregasi antar-aturan dilakukan, dan hasil akhinya diperoleh dengan menggunakan defuzzyfikasi dengan konsep rata-rata terbobot.

Pada contoh kasus memasak nasi goreng terdapat dua inputan variabel suhu api dengan nilai derajat keanggotaan sedang dan tinggi dan waktu dengan nilai derajat keanggotaan sedang maka terdapat dua rule yang dapat diaplikasikan dari sembilan rule yang telah dibuat pada tabel 3.2. Berikut perhitungan μ dengan menggunakan fungsi min dengan mengambil keanggotaan minimum aturan conjungtion (∩).

Aturan ke satu dinotasikan [R8].


(56)

Nilai keanggotaan anteseden untuk aturan fuzzy [R8] yang dinotasikan dengan �1 dan z1 diperoleh dengan mengambil nilai keanggotaan minimum dengan rumus sebagai berikut:

μA∩B = min(μA[x], μB[y])

α1= μ(x) suhu Tinggi ∩μ(y) waktu Sedang

= Min μ(suhu Tinggi [0,5]; μ( waktu Sedang [1]) = Min(0,5 ; 1) = 0,5

Sehingga dari nilai �1 dapat menghasilkan z1 dengan persamaan (2.21) berdasarkan dari table 3.2 dimana matang degan nilai 100 adalah zt titik tengah.

= zt

Gambar 3.8 Fungsi Keanggotaan Fuzzy Matang(z1).

Nilai �1 = 100 cukup matang didapat dari persamaan zt adalah titik tengah himpunan cukup matang dapat dilihat dari gambar 3.10.

Aturan kedua dinotasikan [R5].

[R5] IF SUHU API Sedang AND WAKTU Sedang THEN matang

(2.21)

z1=zt MTG


(57)

Nilai keanggotaan anteseden untuk aturan fuzzy [R5] yang dinotasikan dengan α2 diperoleh dengan mengambil nilai derajat keanggotaan minimum dengan rumus sebagai berikut:

μA∩B = min(μA[x], μB[y])

α2= μ(x) suhu Sedang ∩μ(y) waktu Sedang

= Min μ(suhu Sedang[0,5]; μ( waktu Sedang [1]) = Min(0,5 ; 1) = 0,5

Sehingga dari nilai α2 dapat menghasilkan z2 dengan persamaan (2.11) berdasarkan dari table 3.2 dimana matang degan nilai 100 adalah zt titik tengah.

= zt

Gambar 3.9 fungsi keanggotaan fuzzy matang(z2)

Nilai z2 = 100 cukup matang didapat dari persamaan zt adalah titik tengah dari himpunan matang dalam representasi segitiga dapat dilihat dari gambar 3.10

(2.21)

z2=zt xt


(58)

MNTH CKP MTG HGS 1

0

25 110

Gambar 3.10 Fungsi Keanggotaan Tingkat Kematangan

Dari hasil perhitungan diatas menghitung nilai derajat keanggotaan � dan nilai crips domain dari aturan R8 dan R5 antecedent yang digunakan dalam kasus memasak nasi goreng dinotasikan dengan nilai �1 ,2 dan �1, �2 telah dihitung menggunakan fungsi MIN pada operator AND (2.21) . Didapat nilai fuzzy set hasil masakan cukup matang 1 ,2 adalah 0,5 dan 0,5 dengan �1, �2=zt. Menghasilkan nilai pada himpunan cukup matang adalah 100. Sehingga dari nilai �1 ,�2 dan �1, �2 dapat menghitung nilai Z yang ada pada tahap selanjut nya

adalah tahap menghasilkan output crips defuzzyfikasi.

C. Defuzzyfication Model Tsukamoto

Defuzzyfikasi merupakan proses dimana data yang sudah dijadikan data fuzzy diubah kembali ke dalam bentuk crips atau nilai tegas. Dengan menggunakan defuzzyfikasi model Tsukamoto yang akan mengkonversi kembali nilai input kedalam bentuk nilai pasti serta menentukan hasil akhir dengan cara menentukan rata-rata terpusat disebut dengan (center Average defuzzyfier) dengan menggunakan rumus (2.16). Berikut porses defuzzfikasi pada kasus memasak nasi goreng :

Z =

α1∗Z1+α2∗Z2

α1+α2 (2.9)

MTG

35 50 65 75 100 105


(59)

�� = Nilai minimum derajat keanggotaan

�� = Nilai domain dari variabel linguistik

Z = Nilai defuzzyfikasi

Z = 0,5∗100+0,5∗100

0,5+0,5

Z = 100

1

Z = 100 berada pada tingkat kematangan (Matang)

Nilai yang didapat dari hasil defuzzyfikasi untuk contoh kasus masakan nasi goreng selanjutnya akan menghasilkan keputusan tingkat kematangan masakan dengan keputusan nilai 100 dengan aturan nilai berikut:

Tabel 3.3 Interval Nilai Tingkat Kematangan Masakan Tingkat

Kematangan Nilai Tingkat Kematangan Mentah (MNTH) 0  45

CukupMatang

(CKP MTG) 46  80 Matang (MTG) 81  100 Hangus(HGS) 101  110

Dari tabel 3.3 dijelaskan bahwa hasil nilai dari proses defuzzyfikasi untuk mendapat kan nilai Z menggunakan rata-rata terbobot mendapatkan nilai 100, dan nilai 100 berada pada tingkat kematangan dengan keputusan matang, dari hasil di atas dapat disimplukan bahwa dalam kasus memasak nasi goreng menghasilkan keputusan nilai 100 dengan hasil keputusan matang.


(60)

3.1.6. Analisis Kebutuhan Non Fungsional

Analisis non-fungsional merupakan analisis yang dibutuhkan untuk menentukan spesifikasi kebutuhan sistem. Meliputi elemen atau komponen-komponen apa saja yang dibutuhkan untuk sistem yang akan dibangun sampai denga sistem tersebut diimplementasikan. Pada analisis ini juga menentukan masukan berupa spesifikasi yang dibutuhkan sistem, keluaran yang dihasilkan sistem dan proses yang dibutuhkan untuk mengolah masukan sehingga menghasilkan suatu keluaran yang diinginkan.

3.1.6.1Analisis Kebutuhan Perangkat Lunak

Perangkat lunak digunakan pada sebuah sistem agar perintah-perintah yang diberikan terhadap perangkat keras sehingga bisa saling berinteraksi. Kebutuhan perangkat lunak untuk membangun game simulasi mari memasak ini dapat dilihat pada tabel 3.4

Tabel 3.4 Kebutuhan Perangkat lunak

Perangkat Lunak Spesifikasi

Sistem Operasi Microsoft Windows 7

Tools Adobe Flash profesional CS 6

3.1.6.2Analisis Kebutuhan Perangkat Keras

Adapun kebutuhan perangkat keras pendukung untuk pembangunan game mari memasak ini dapat dilihat pada tabel 3.5

Tabel 3.5 Kebutuhan Perangkat Keras

Perangkat Keras Spesifikasi

Processor Intel Core i3

Memory 4 GB

Harddisk 500 GB

Monitor 1366 x 766


(61)

3.1.6.3Analisis Pengguna

Analisis pengguna diperlukan untuk mengetahui spesifikasi pengguna untuk dapat memainkan game mari memasak .Berikut spesifikasi pengguna.

Tabel 3.6 Spesifikasi Pengguna Karakter Fisik Pengguna

Umur 18 tahun keatas

Gender Laki-laki dan Perempuan

Disabilities Tidak buta dan tidak mempunyai cacat

secara fisik seperti cacat tangan Pengetahuan dan Pengalaman Pengguna

Computer literacy Dapat menggunakan komputer dan

mengoperasikan komputer

Education Minimal SMA

3.1.7. Analisis Kebutuhan Fungsional

Analisis kebutuhan fungsional menggambarkan proses kegiatan yang akan diterapkan dalam sebuah sistem dan menjelaskan kebutuhan yang diperlukan sistem sehingga sistem dapat berjalan sesuai kebutuhan. Analisis kebutuhan fungsional dimodelkan dengan menggunakan UML (Unified Modeling Language).

3.1.7.1Use Case Diagram

Use case mendeskripsikan sebuah interaksi antara aktor dengan sistem yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem dan siapa saja yang berhak menggunakan fungsi-fungsi itu. Berikut adalah proses-proses perancangan yang terdapat pada game mari memasak yang akan di gambarkan melalui diagram use case.


(62)

Gambar 3.11 Diagram Use case Game mari memasak 1. Definisi Actor

Definisi Aktor berfungsi untuk menjelaskan keberadaan aktor dalam diagram use case. Berikut adalah penjelasan Aktor dalam diagram use case dapat dilihat pada tabel 3.7

Tabel 3.7 Definisi Actor

No Actor Deskripsi

1 Pemain Pengguna atau orang yang memainkan game 2. Definisi Use case

Definisi use case berfungsi untuk menjelaskan use case apa yang bisa sistem lakukan. Berikut penjelasanya dapat dilihat pada tabel 3.8


(63)

Tabel 3.8 Definisi Use Case

No Use Case Deskripsi

1 Memilih menu Mulai Proses untuk memulai permainan. 2 Memasukan nilai suhu api Proses untuk memasukan nilai suhu api. 3 Masukan bahan masakan Proses memasak.

4 Menyajikan masakan Proses untuk menyajikan masakan. 5 Memilih menu petunjuk Proses untuk melihat petunjuk cara

bermain.

3. Sekenario Use Case

Sekenario pada setiap bagian-bagian use case menunjukan proses apa saja yang terjadi pada setiap bagian didalam use case tersebut, dimana pengguna memberikan perintah pada setiap bagian dan respon apa yang akan diberikan dari sistem terhadap pengguna setelah pengguna memberikan intruksi atau perintah.

1. Sekenario Use Case Memilih Menu Mulai

Berikut adalah Sekenario use case pemain memilih menu mulai dapat dilihat pada tabel 3.9

Tabel 3.9 Sekenario Use Case Memilih Menu Mulai Identifikasi

No 1

Nama Memilih menu Mulai

Tujuan Untuk bermain game

Deskripsi Proses untuk memulai permainan mari memasak

Skenario utama


(64)

Aksi aktor Reaksi sistem 1. Pemain memilih menu

Mulai

2. Menampilkan misi memasak dengan cara memasak serta resep masakan. 3. Menekan mouse kiri

pada tombol lanjut

4. Masuk ke proses permainan. Kondisi akhir Menampilkan tampilan permainan

2. Sekenario Use Case Memasukan Nilai Suhu Api

Berikut adalah Sekenario use case memasukan nilai suhu api dapat dilihat pada tabel 3.10

Tabel 3.10 Sekenario Use Case Memasukan Nilai Suhu Api Identifikasi

No 2

Nama Memasukan nilai suhu api

Tujuan Untuk memberikan nilai suhu api Deskripsi Proses untuk menentukan nilai suhu api

Aktor Pemain

Skenario utama

Kondisi awal Aktor berada di menu utama

Aksi aktor Reaksi sistem

1. Pemain klik dan drag tombol kompor


(65)

2. Input nilai variabel suhu api kompor 3.Set Suhu api target

4.Fuzzyfikasi nilai input x suhu api pada variabel rendah maka x-a/b-a, Sedang = c-x/c-b, dan Tinggi = b-x/b-a

5. Mengubah nilai input suhu api kedalam bentuk niai fuzzy pada variabel suhu api rendah, sedang atau tinggi.

Kondisi akhir Menamplkan nilai suhu api

6. Sekenario Use Case Memasukan Bahan Masakan

Berikut adalah Sekenario use case pemain memasukan bahan masakan dapat dilihat pada tabel 3.11

Tabel 3.11 Sekenario Use Case Memasukan Bahan Masakan Identifikasi

No 2

Nama Memasukan bahan masakan

Tujuan Untuk memulai memasak

Deskripsi Proses untuk memasak

Aktor Pemain

Skenario utama

Kondisi awal Aktor berada di menu utama

Aksi aktor Reaksi sistem

1. Masukan bahan masakan menekan selesai


(66)

Aksi aktor Reaksi sistem

2. Setwaktu berjalan sebagai

masukan terhadap variabel waktu 3. Memasukan bahan-bahan dan

bumbu masakan kedalam mangkuk tempat menyimpan bahan masakan Kondisi akhir Menampilkan permainan

7. Sekenario Use Case Menyajikan Masakan

Berikut adalah Sekenario use case pemain menyajikan masakan dapat dilihat pada tabel 3.12

Tabel 3.12 Sekenario Use Case Menyajikan Masakan Identifikasi

No 2

Nama Menyajikan masakan

Tujuan Untuk menyelesaikan memasak

Deskripsi Proses untuk menhitung nilai kematangan

Aktor Pemain

Skenario utama

Kondisi awal Aktor berada di menu utama

Aksi aktor Reaksi sistem

1. Menekan mouse kiri pada alat masak.

2. get nilai kematangan masakan dari hasil perhitungan variabel input fuzzyfikasi ,


(67)

Aksi aktor Reaksi sistem 3. Tahap inferensi

menghitung agregasi menggunakan rule basis aturan fuzzy if-then. 4. Tahap defuzzyfikasi nilai

output kematangan dengan menggunakan rata-rata tebobot. 5. Menampilkan nilai

tingkat kematangan masakan dari varabel tingkat kematangan mentah, kurang matang, cukup matang , matang Kondisi akhir Menampilkan hasil keputusan

tingkat kematangan

8. Sekenario Use Case Memilih Menu Petunjuk

Berikut adalah Sekenario use case pemain memilih menu petunjuk dapat dilihat pada tabel 3.13

Tabel 3.13 Sekenario Use Case Memilih Menu Petunjuk Identifikasi

No 2

Nama Memilih menu petunjuk

Tujuan Untuk memberikan petunjuk cara bermain


(68)

Aktor Pemain Skenario utama

Kondisi awal Aktor berada di menu utama

Aksi aktor Reaksi sistem

1. Pemain memilih menu petunjuk

2. Menampilkan petunjuk bermain 3. Menekan tombol

kembali

4. Menutup menu petunjuk Kondisi akhir Menampilkan Menu utama

3.1.7.2Activity Diagram

Diagram aktivitas menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis atau menu yang ada pada game mari memasak. Diagram aktivitas menggambarkan aktivitas sistem jadi aktivitas yang dapat dilakukan oleh sistem. Berikut penjelasan yang memberikan gambaran menggunakan aktivitas diagram:

1. Activity Diagram Memilih Menu Mulai

Aktivitas pemain saat berada di menu utama permainan ketika memilih menu mulai untuk menjalankan permainan mari memasak. Berikut adalah diagram aktivitas yang menggambarkan aliran kerja pemain.


(69)

Gambar 3.12 Activity Diagram Memilih Menu Mulai

2. Activity Diagram Memasukan Nilai Suhu Api

Aktivitas pemain saat berada proses permainan ketika memasukan nilai suhu api saat bermain game mari memasak. Berikut adalah diagram aktivitas yang menggambarkan aliran kerja pemain.


(70)

Gambar 3.13 Activity Diagram Memasukan Nilai Suhu Api

3. Activity Diagram Memasukan Bahan Masakan

Aktivitas pemain saat berada proses permainan ketika memasukan bahan masakan saat bermain. Berikut adalah diagram aktivitas yang menggambarkan aliran kerja pemain.


(71)

Gambar 3.14 Activity Diagram Memasukan Bahan Masakan 4. Activity Diagram Menyajikan Masakan

Aktivitas pemain saat berada di layar permainan ketika mengangkat masakan saat bermain. Berikut adalah diagram aktivitas yang menggambarkan aliran kerja pemain.


(72)

Gambar 3.15 Activity Diagram Menyajikan Masakan

5. Activity Diagram Memilih Menu Petunjuk

Aktivitas pemain saat berada di layar permainan ketika melihat petunjuk bermain. Berikut adalah diagram aktivitas yang menggambarkan aliran kerja pemain.


(1)

115

DAFTAR PUSTAKA

[1] Dr.Eng. Agus Naba, 2009, “Belajar cepat Fuzzy Logic meggunakan Matlab”. Penerbit Andi Publisher.

[2] Helfi Nasution ,”Implementasi Logika Fuzzy pada Sistem Kecerdasan Buatan”Jurnal ELKHA Vol.4, No 2, Oktober 2012. [3] Roger S. Pressman, Ph.D. Software Engineering , Apractitioner ’

Sapprach, (1992: 24).

[4] Nasri, “ Kecerdasan Buatan (Artificial Intelligence) “ Jurnal – Vol.1, No.2. Desember, 2014.

[5] Kusumadewi, Sri dan Hari Purnomo. 2010. Aplikasi Logika Fuzzy untuk Pendukung Keputusan Edisi 2. Yogyakarta: Graha Ilmu. [6] Jang, JS.R., Sun, C.T., Mizutani, E., 1997. Neuro Fuzzy and Soft

Computing London Prentice Hall.

[7] Sagita, Ina. 2013. "Sangkuriang". Program Sarjana. Universitas Komputer Indonesia, Bandung.

[8] Nugroho, Rational Rose Untuk Pemodelan Berorientasi Objek, Bandung: Informatika, 2005.

[9] S, Rosa dan Shalahuddin, M , Rekayasa Perangkat Lunak, Penerbit Informatika, 2013.

[10] “Apa itu Adobe Flash”, 2013. diakses pada tanggal 24 Maret 2015 Pukul 19:36 WIB. dari http://www.wadinuryadi.com/2013/10/apa-itu-adobe-flash.html/.

[11] Madcoms,2011. Kupas Tuntas Adobe Flash Profesional CS6. Jakarta : Andi Publisher.

[12] Costikyan, Greg 2013, Uncertainty In Games, The MIT Press, Cambridge.

[13] Turban, E, Aronson, Jay E & Liang, Teng-Ping. 2005. Decission Support Systems and Intelligent Systems Edisi 7 Jilid 2.


(2)

iii

KATA PENGANTAR

Assalamu’alaikum Wr. Wb.

Puji dan syukur penulis panjatkan ke hadirat Allah SWT, atas rahmat dan karunia-Nya penyusunan skripsi dengan judul “Implementasi logika fuzzy untuk merepresentasikan kematangan masakan pada game mari memasak” dapat diselesaikan tepat pada waktunya. Skripsi ini diajukan untuk memenuhi syarat dalam menempuh ujian akhir sarjana program strata satu (S1) Program Studi Teknik Informatika Universitas Komputer Indonesia Bandung. Selama penyusunan tugas akhir ini, penulis telah mendapatkan banyak sekali bimbingan dan bantuan serta motivasi dari berbagai pihak dengan segenap hati dan keihklasan dalam menyelesaikan tugas akhir ini. Penulis ucapkan terima kasih yang sebesar-besarnya kepada:

1. Allah SWT yang telah memberikan rahmat, kasih dan hidayah-Nya sehingga dapat diselesaikannya penelitian dan skripsi ini.

2. Keluarga tercinta terutama kedua orang tua Ibu Tita Herlina dan Bapak dr.H.Achmad Wikarya yang selalu memberikan doa dan kasih sayang, semangat dan dorongan moril maupun materil.

3. Ibu Anna Dara Andriana, S.Kom., M.Kom. selaku dosen pembimbing yang telah banyak memberikan dukungan dan masukan dalam penulisan skripsi ini. 4. Ibu Dian Dharmayanti, S.T.,M.Kom. selaku dosen reviewer yang telah

banyak memberikan pengetahuan dan masukan dalam penulisan skripsi ini. 5. Dosen-dosen Teknik Informatika yang telah mengajari berbagai hal dan


(3)

iv

6. Ari Tresnawan selaku sahabat yang telah memberikan bantuan, motivasi dan masukan.

7. Reza Fahlevi selaku sahabat yang telah memberikan bantuan, motivasi dan masukan.

8. Adhy Satria Harpansa selaku sahabat yang telah memberikan bantuan, motivasi dan masukan.

9. Rekan-rekan kelas IF-1 angkatan 2010 dan rekan satu bimbingan.

10.Semua pihak yang telah membantu penulis yang tidak bisa penulis sebutkan satu persatu.

Penulis menyadari bahwa dalam penyusunan skripsi ini masih terdapat banyak kekurangan dan jauh dari predikat sempurna, maka untuk itu kritik dan saran yang membangun sangat penulis harapkan dari para pembaca.

Terlepas dari kekurangan yang ada semoga skripsi ini dapat bermanfaat bagi saya khususnya dan bagi para pembaca pada umumnya dalam upaya meningkatkan pengetahuan kita semua. Amin. Wassalamu’alaikum Wr. Wb.

Bandung, Agustus 2015 Penulis


(4)

(5)

SURAT HAK EKSLUSIF


(6)