Laporan Resmi KCB 3

Embed Size (px)

DESCRIPTION

Pernyataan Gerbang Logika,Mencari 10 Algoritma Dalam Informatika dan Jaringan Semantik

Citation preview

  • LAPORAN RESMI

    TUGAS MATA KULIAH

    KECERDASAN BUATAN

    TUGAS 3

    OLEH:

    WISNU HADI S (0934010144)

    RAKHMAD SATRIYA (0934010159)

    DIQY SEVTYAN (0934010161)

    DOSEN :

    BIMO GUMELAR, S. KOM

    JURUSAN TEKNIK INFORMATIKA

    FAKULTAS TEKNOLOGI INDUSTRI

    UNIVERSITAS PEMBANGUNAN NASIONALVETERANJAWA TIMUR

    2011

  • KATA PENGANTAR

    Puji syukur kehadirat Allah Yang Maha Esa atas limpahan Hidayah- Nya serta

    Rahmad-Nya, sehingga kami dapat menyelesaikan Tugas Ke 3 Mata Kuliah Kecerdasan

    Buatan Pernyataan Gerbang Logika,Mencari 10 Algoritma Dalam Informatika dan

    Jaringan Semantik.

    Penyusunan Tugas ini ditujukan sebagai syarat untuk mengikuti Mata Kuliah

    Kecerdasan Buatan. Tugas ini diharapkan dapat memberikan solusi bagi Mahasiswa terutama

    Mahasiswa dalam bidang IT, dalam hal mendalami tentang Kecerdasan Buatan.

    Semoga Laporan Resmi ini bermanfaat bagi Mahasiswa terutama dalam bidang IT

    agar memahami lebih jelas tentang pernyataan Gerbang Logika,Algoritma Dalam Informatika

    Dan Jaringan Semantik. Terima kasih kami ucapkan kepada semua pihak yang telah

    membantu dalam bentuk materi dan saran, serta dibuat dengan segala masukan dan

    kekurangan yang telah diberikan pada kami sehingga Laporan ini dapat selesai.

    Kami berharap kepada semua pihak dengan segala kritik dan saran yang bersifat

    membangun, sangat Kami harapkan untuk dimasa yang akan datang agar bisa

    menyempurnakan makalah ini, sebab makalah ini masih banyak kekurangannya.

    Surabaya, 25 Oktober 2011

    Penulis

  • BAB 1

    PENDAHULUAN

    1.1 LATAR BELAKANG

    Logika sebagai ilmu pengetahuan merupakan sebuah ilmu pengetahuan di mana obyek

    materialnya adalah berpikir (khususnya penalaran/proses penalaran) dan obyek formal logika

    adalah berpikir/penalaran yang ditinjau dari segi ketepatannya.

    Representasi Logika - Representasi ini menggunakanekspresi-ekspresi dalam logika formal

    untuk merepresentasikan basis pengetahuan.Representasi logika terdiri dari dua jenis

    yaituKalkulus proposisional (Propositional logic) danKalkulus predikatif (Predicate logic).

    Kalkulus Proposisional (Propositional Logic).Proposisi adalah suatu model untuk

    mendeklarasikansuatu fakta. Lambang-lambang proposisional menunjukkan proposisi atau

    pernyataantentang segala sesuatu yang dapat benar atausalah.

    Dalam matematika dan komputasi, algoritma atau algoritme merupakan kumpulan perintah

    untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara

    bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan

    untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan

    algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi

    kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah

    pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai

    tugasnya selesai.

    Jaringan semantik merupakan salah satu yang dipelajari dalam materi Artificial Inteligence

    (Kecerdasan Buatan) . Dalam jaringan semantik terdapat gambaran pengetahuan grafis yang

    menunjukkan hubungan antar berbagai objek, terdiri dari lingkaran-lingkaran yang

    dihubungkan dengan anak panah yang menunjukkan objek dan informasi tentang objek-objek

    tersebut.

    1.2 MASALAH

    Dari latar belakang di atas didapat beberapa masalah, antara lain:

    1. Apakah Representasi Logika itu?

    2. Apa yang dimaksud Algoritma dalam pemrograman khususnya di Informatika?

    3. Apa yang dimaksud dengan Jaringan Semantik beserta contohnya?

  • 1.3 TUJUAN

    Dalam membuat laporan ini, kami mempunyai beberapa tujuan, yaitu:

    1. Mengetahui bagaimana pernyataan dari Representasi Logika.

    2. Mengetahui lebih lanjut mengenai Algoritma.

    3. Mengetahui lebih lanjut tentang Jaringan Semantik berikut contohnya.

    1.4 MANFAAT

    Selain itu, diharapkan laporan ini dapat mempunyai banyak manfaat, antara lain:

    1. Mengetahui tentang pernyataan dari Representasi Logika.

    2. Menambah informasi tentangAlgoritma dalam pemrograman khususnya di

    Informatika.

    3. Bisa menerapkan Jaringan Semantik.

  • BAB II

    LANDASAN TEORI

    2.1 REPRESENTASI LOGIKA

    Representasi Pengetahuan (Knowledge Representation)dimaksudkan untuk menangkap sifat-

    sifatpenting masalah dan membuat infomasidapat diakses oleh prosedur pemecahanmasalah.

    Bahasa representasi harus dapat membuatseorang programmer mampu

    mengekspresikanpengetahuan untuk mendapatkan solusi suatumasalah.

    Secara singkat Mylopoulos dan Levesquemengklasifikasikan susunan atau pola representasi

    menjadi empat katagori :

    1. Representasi Logika - Representasi ini menggunakan ekspresi-ekspresi dalam

    logika formaluntuk merepresentasikan basis pengetahuan.

    2. Representasi Prosedural Menggambarkan pengetahuan sebagai sekumpulan instruksi untuk memecahkan suatu masalah. Dalam sistem yang berbasis aturan,

    aturan if-then dapat ditafsirkan sebagai sebuah prosedur untuk mencapai tujuan

    pemecahan masalah.

    3. Representasi Network - Menangkap pengetahuansebagai sebuah graf dimana simpul-simpulnyamenggambarkan obyek atau konsepdalam masalah yang dihadapi,

    sedangkanlengkungan-lengkungannya menggambarkanhubungan atau asosiasi antar

    mereka.Contohnya adalah jaringan semantik.

    4. Representasi Terstruktur - Memperluas networkdengan cara membuat setiap simpulnya menjadisebuah struktur data kompleks yang berisitempat-tempat

    bernama slot dengan nilai-nilaitertentu. Nilai-nilai ini dapat merupakan

    datanumerik atau simbolik sederhana, pointer kebingkai (frame) lain, atau bahkan

    merupakanprosedur untuk mengerja kan tugas tertentu.Contoh : skrip (script),

    bingkai (frame) danobyek (object).

    Representasi logika terdiri dari dua jenis yaitu Kalkulus proposisional (Propositional

    logic) dan Kalkulus predikatif (Predicate logic).

    Kalkulus Proposisional (Propositional Logic)Proposisi adalah suatu model untuk

    mendeklarasikan suatu fakta. Lambang-lambang proposisional menunjukkan proposisi atau

    pernyataan tentang segala sesuatu yang dapat benar atausalah.

    Lambang-lambang kalkulus proposisional :

    1. Lambang pernyataan proposisionalP,Q,R,S,T,... (disebut sebagai atom-atom)

    2. Lambang kebenaranbenar (True) , salah (False)

    3. Lambang penghubung konjungsi,disjungsi,negasi,implikasi,Bi-implikasi,equivalen.

    BAB III

  • PEMBAHASAN DAN IMPLEMENTASI

    3.1 PROPOSITION LOGIC

    1.Konjungsi (AND)

    Konjungsi adalah suatu pernyataan majemuk yang menggunakan perakit "dan".

    Contoh pernyataan nya adalah sebagai berikut:

    Diqy makan nasi dan minum kopi

    Pernyataan tersebut ekivalen dengan dua pernyataan tunggal berikut:

    " Diqy makan nasi." dan sekaligus " Diqy minum kopi."

    dalam hal mana pernyataan di atas bernilai benar dan dalam hal mana bernilai salah dalam

    empat kasus berikut, yaitu:

    (1) Diqy memang benar makan nasi dan ia juga minum kopi.

    (2) Diqy makan nasi namun ia tidak minum kopi.

    (3) Diqy tidak makan nasi namun ia minum kopi.

    (4) Diqy tidak makan nasi dan ia tidak minum kopi.

    Pada kasus pertama,Diqy memang benar makan nasi dan ia juga minum kopi.Dalam

    kasus seperti ini, tidaklah mungkin Anda akan mengatakan pernyataan tadi bernilai salah.

    Alasannya, pernyataan tadi sesuai dengan kenyataannya.

    Pada kasus kedua,Diqy makan nasi namun ia tidak minum kopi. Dalam hal ini,tentunya

    Anda akan menyatakan bahwa pernyataan tersebut majemuk.pernyataan tadi bernilai salah

    karena meskipun Diqy sudah makan nasi namun ia tidak minum kopi.

    Pada kasus ketiga, Diqy tidak makan nasi meskipun ia sudah minum kopi. Sebagaimana

    kasus kedua tadi, Anda akan menyatakan bahwa pernyataan tersebut majemuk tadi bernilai

    salah karena Diqy tidak makan nasi sebagaimana yang dinyatakan bahwa Diqy makan nasi

    dan minum kopi.

    Pada kasus keempat, Diqy tidak makan nasi dan ia tidak minum kopi. Dalam hal ini

    Anda akan menyatakan bahwa pernyataan tersebut majemuk.pernyataan tadi bernilai salah

    karena tidak ada kesesuaian antara yang dinyatakan dengan kenyataan yang sesungguhnya.

    Berdasar penjelasan di atas, dapatlah disimpulkan bahwa suatu konjungsi p

    bernilai benar hanya jika komponen-komponennya, yaitu baik p maupun q, keduanya

    bernilai benar, sedangkan nilai kebenaran yang selain itu akan bernilai salah.

    Sebagaimana ditunjukkan pada tabel kebenaran berikut:

  • P Q P ^ Q

    T T T

    T F F

    F T F

    F F F

    2.DISJUNGSI (OR)

    Disjungsi adalah pernyataan majemuk yang menggunakan perakit "atau".

    Contoh pernyataan nya adalah sebagai berikut:

    "Diqymakannasiatauminum kopi."

    Sekarang dalam hal mana pernyataan di atas akan bernilai benar dalam empat kasus berikut,

    yaitu:

    (1) Diqy memang benar makan nasi dan ia juga minum kopi.

    (2) Diqy makan nasi namun ia tidak minum kopi.

    (3) Diqy tidak makan nasi namun ia minum kopi.

    (4) Diqy tidak makan nasi dan ia tidak minum kopi.

    Pada kasus pertama, Diqy memang benar makan nasi dan ia juga minum kopi. Dalam

    kasus seperti ini, tidaklah mungkin Anda akan mengatakan pernyataan tadi bernilai salah,

    karena pernyataan tadi sesuai dengan kenyataannya.

    Pada kasus kedua,Diqy makan nasi namun ia tidak minum kopi. Dalam hal ini, tentunya

    Anda akan menyatakan bahwa pernyataan majemuk tadi bernilai benar karena Diqy sudah

    benar makan nasi meskipun ia tidak minum kopi sebagaimana yang dinyatakan.

    Pada kasus ketiga, Diqy tidak makan nasi namun ia minum kopi. Sebagaimana kasus

    kedua tadi, Anda akan menyatakan bahwa pernyataan majemuk tadi bernilai benar karena

    meskipun Diqy tidak makan nasi namun ia sudah minum kopi sebagaimana yang dinyatakan.

    Pada kasus keempat, Diqy tidak makan nasi dan ia tidak minum kopi. Dalam hal ini Anda

    akan menyatakan bahwa pernyataan majemuk tadi bernilai salah karena tidak ada kesesuaian

    antara yang dinyatakan dengan kenyataan yang sesungguhnya.

    Pernyataan menyatakan Diqy makan nasi atau minum kopi namun kenyataannya,Diqy tidak

    melakukan hal itu.

  • Berdasar penjelasan di atas, dapatlah disimpulkan bahwa suatu disjungsi p

    bernilai salah hanya jika komponen-komponennya, yaitu baik p maupun q, keduanya bernilai

    salah, yang selain itu akan bernilai benar sebagaimana ditunjukkan pada tabel kebenaran

    berikut:

    P Q P v Q

    T T T

    T F T

    F T T

    F F F

    3.Implikasi

    Misalkan ada dua pernyataan p dan q. Yang sering menjadi perhatian para ilmuwan maupun

    matematikawan adalah menunjukkan atau membuktikan bahwa jika p bernilai benar akan

    mengakibatkan q bernilai benar juga. Untuk mencapai keinginannya tersebut,diletakkanlah

    kata "Jika" sebelum pernyataan pertama lalu diletakkan juga kata "maka" diantara

    pernyataan pertama dan pernyataan kedua, sehingga didapatkan suatu pernyataan majemuk

    yang disebut dengan implikasi, pernyataan bersyarat, kondisional atau hypothetical dengan

    notasi "" seperti ini: p

    Berikut ini adalah contoh pernyataan:

    Jika hari hujan maka Diqy membawa payung.

    Dalam hal ini dimisalkan:

    p: Hari hujan.

    q: Diqy membawa payung.

    Dalam hal manakah pernyataan tadi akan bernilai benar atau salah untuk empat kasus

    berikut, yaitu:

    1) Hari benar-benar hujan dan Diqy benar-benar membawa payung.

    2) Hari benar-benar hujan namun Diqy tidak membawa payung.

    3) Hari tidak hujan namun Diqy membawa payung.

    4) Hari tidak hujan dan Diqy tidak membawa payung.

  • Pada kasus pertama, hari benar-benar hujan dan Diqy benar-benar membawa payung

    sebagaimana yang ia nyatakan. Bagaimana mungkin ia akan dinyatakan berbohong dalam

    kasus ini? Dengan demikian jelaslah bahwa kedua komponen yang sama-sama bernilai benar

    itu telah menyebabkan pernyataan majemuk (implikasi) yang dinyatakan tadi akan bernilai

    benar.

    Pada kasus kedua, hari itu benar-benar hujan akan tetapi Diqy tidak membawa payung

    sebagaimana yang seharusnya ia lakukan seperti yang telah dinyatakannya, bagaimana

    mungkin pernyataan Diqy tadi akan dinilai benar? Dengan kata lain, komponen p yang

    bernilai benar namun tidak diikuti dengan komponen q yang seharusnya bernilai benar juga,

    akan menyebabkan pernyataan majemuk (implikasi) yang dinyatakan tadi akan bernilai

    salah.

    Akhirnya, untuk kasus ketiga dan keempat, di mana hari itu tidak hujan, tentunya Anda

    tidak akan menyebut pernyataan majemuk (implikasi) tersebut sebagai pernyataan yang

    salah, karena Diqy hanyalah menyatakan bahwa sesuatu akan terjadi yaitu dia akan

    membawa payung jikalau hari hujan. Dengan demikian jelaslah bahwa implikasi p

    hanya akan bernilai salah untuk kasus kedua di mana p bernilai benar namun q-nya bernilai

    salah, sedangkan yang selain itu implikasi p

    tabel kebenaran berikut ini:

    P Q P Q

    T T T

    T F F

    F T T

    F F T

    4.Biimplikasi

    Biimplikasi atau bikondisional adalah pernyataan majemuk dari dua pernyataan p dan q

    yang dinotasikan dengan p

    dapat dibaca: "p jika dan hanya jika q" atau "p bila dan hanya bila q.

    Tabel kebenaran dari p :

    P Q P Q

    T T T

    T F F

    F T F

    F F T

  • Dengan demikian jelaslah bahwa biimplikasi dua pernyataan p dan q hanya akan bernilai

    benar jika kedua pernyataan tunggalnya bernilai sama.

    Contoh biimplikasi:

    (1) Suatusegitigaadalahsegitigasiku-sikujikadanhanyajikaluaspersegipada

    Hipotenusan nyasamadenganjumlahluasdaripersegi-persegipadakeduasisi yang lain.

    (2) Suatu segitiga adalah segitiga sama sisi bila dan hanya bila ketiga sisinya sama.

    3.2 ALGORITMA DALAM INFORMATIKA

    3.2.1 AlgoritmaGenetika

    Algoritma Genetika adalah algoritma yang memanfaatkan proses seleksi alamiah yang

    dikenal dengan proses evolus yang dikembangkan dari proses pencarian solusi menggunakan

    pencarian acak, ini terlihat pada proses pembangkitan populasi awal yang menyatakan

    sekumpulan solusi yang dipilih secara acak.Berikutnya pencarian dilakukan berdasarkan

    proses-proses teori genetika yang memperhatikan pemikiran bagaimana memperoleh individu

    yang Lebih baik, sehingga dalam proses evolusi dapat diharapkan diperoleh individu yang

    terbaik.

    Struktur umum dari suatu algoritma genetika dapat didefinisikan dengan langkah-langkah

    sebagai berikut:

    1. Membangkitkan populasi awal, Populasi awal ini dibangkitkan secara random

    sehingga didapatkan solusi awal. Populasi itu sendiri terdiri dari sejumlahkromosom

    yang merepresentasikan solusi yang diinginkan.

    2. Membentuk generasi baru, Dalam membentuk digunakan tiga operator yang telah

    disebut di atas yaitu operator reproduksi/seleksi, crossover dan mutasi.Proses ini

    dilakukan berulang-ulang sehingga didapatkan jumlah kromosomyang cukup untuk

    membentuk generasi baru dimana generasi baru in merupakan representasi dari solusi

    baru.

    3. Evaluasi solusi, Proses ini akan mengevaluasi setiap populasi dengan menghitung

    nilai fitness setiap kromosom dan mengevaluasinya sampaiterpenuhi kriteria berhenti.

    Bila kriteria berhenti belum terpenuhi maka akandibentuk lagi generasi baru dengan

    mengulangi langkah 2.

    Beberapa kriteria berhenti yang sering digunakan antara lain:

    1. Berhenti pada generasi tertentu.

    2. Berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai fitness

    tertinggi tidak berubah.

    3. Berhenti bila dalam n generasi berikut tidak didapatkan nilai fitness yanglebih tinggi

    Cross Over (Pindah Silang) merupakan salah satu operator dalam algoritma genetika yang

    melibatkan dua induk untuk menghasilkan keturunan yang baru.

  • Cross over dilakukan dengan melakukan pertukaran gen dari dua induk secara acak.

    Macam-macam Cross-Over yang banyak digunakan antara lain:

    1. pertukaran gen secara langsung dan

    2. pertukaran gen secara aritmatika.

    3. Proses cross over dilakukan pada setiap individu dengan probabilitas crossover

    yang ditentukan.

    Mutasi Gen merupakan operator yang menukar nilai gen dengan nilai inversinya, misalnya

    gennya bernilai 0 menjadi 1. Setiap individu mengalami mutasi gen dengan probabilitas

    mutasi yang ditentukan. Mutasi dilakukan dengan

    memberikan nilai inversi atau menggeser nilai gen pada gen yang terpilih untuk

    dimutasikan.

    Algoritma genetik yang umum menyaratkan dua hal untuk didefinisikan:

    1. representasi genetik dari penyelesaian

    2. fungsi kemampuan untuk mengevaluasinya.

    Siklus Algoritma Genetika

    Gambar 1: Siklus Algoritma Genetika

    Hal-hal yang harus dilakukan untuk menggunakan Algoritma Genetika yaitu :

    1. Mendefinisikan individu, dimana individu menyatakan salah satu solusi

    (penyelesaian) yang mungkin dari permasalahan yang diangkat.

    2. Mendefinisikan nilai fitness, yang merupakan ukuran baik-tidaknya sebuah

    individu atau baik-tidaknya solusi yang didapatkan.

    3. Menentukan proses pembangkitan populasi awal. Hal ini biasanya dilakukan

    dengan menggunakan pembangkitan acak seperti random-walk.

    4. Menentukan proses seleksi yang akan digunakan.

    5. Menentukan proses perkawinan silang (cross-over) dan mutasi gen yang akan

    digunakan.

    CONTOH

    Evolusi pada ikan,generasi yang terbaik akan bertahan dan menciptakan generasi

    baru.dimana generasi yang lemah tersingkir.

  • Populasi ikan 20 ekor,makanan 40 buah. Ikan terbaik 26 ekor,medium 14 ekor

    Gambar 2:Generasi 0 Gambar 3:Generasi 15

    Ikan terbaik 51 ekor,medium 32 ekor Ikan terbaik 64 ekor,medium 44 ekor

    Gambar 4:Generasi 234 Generasi 5: Generasi 1200

    3.2.2 Algoritma Insertion Sort

    Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua

    bagian, yang belum diurutkan (meja pertama) dan yang sudah diurutkan (meja kedua).

    Elemen pertama diambil dari bagian array yang belum diurutkan dan kemudian diletakkan

    sesuai posisinya pada bagian lain dari array yang telah diurutkan. Langkah ini dilakukan

    secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum

    diurutkan.

    CONTOH

    Gambar 6: Contoh insertion sort

  • 3.2.3 Algoritma Selection Sort

    Mari kita menelusuri bagaimana algoritma ini berfungsi terhadap satu paketkartu. Asumsikan

    bahwa kartu tersebut akan diurutkan secara ascending. Padaawalnya, kartu tersebut akan

    disusun secara linier pada sebuah meja dari kiri kekanan, dan dari atas ke bawah. Pilih nilai

    kartu yang paling rendah, kemudiantukarkan posisi kartu ini dengan kartu yang terletak pada

    pojok kiri atas meja. Lalucari kartu dengan nilai paling rendah diantara sisa kartu yang

    tersedia. Tukarkankartu yang baru saja terpilih dengan kartu pada posisi kedua. Ulangi

    langkah langkah tersebut hingga posisi kedua sebelum posisi terakhir dibandingkan

    dandapat digeser dengan kartu yang bernilai lebih rendah.Ide utama dari algoritma selection

    sort adalah memilih elemen dengan nilai palingrendah dan menukar elemen yang terpilih

    dengan elemen ke-i. Nilai dari i dimulaidari 1 ke n, dimana n adalah jumlah total elemen

    dikurangi 1.

    CONTOH

    Gambar 7:Contoh selection sort

    3.2.4 Algoritma Merge Sort

    Sebelum mendalami algoritma merge sort, mari kita mengetahui garis besar dari konsep

    divide and conquer karena merge sort mengadaptasi pola tersebut.

    Pola Divide and Conquer

    Beberapa algoritma mengimplementasikan konsep rekursi untuk menyelesaikan

    permasalahan. Permasalahan utama kemudian dipecah menjadi sub-masalah, kemudian solusi

    dari sub-masalah akan membimbing menuju solusi permasalahan utama.Pada setiap tingkatan

    rekursi, pola tersebut terdiri atas 3 langkah.

    1. Divide

    Memilah masalah menjadi sub masalah.Memilah elemen elemen dari rangkaian data menjadi dua bagian.

    2. Conquer

    Selesaikan sub masalah tersebut secara rekursif. Jika sub-masalah tersebut cukup ringkas dan

    sederhana, pendekatan penyelesaian secara langsung akan lebih efektif.Conquer setiap bagian

    dengan memanggil prosedur merge sort secara rekursif

  • 3. Kombinasi

    Mengkombinasikan solusi dari sub-masalah, yang akan membimbing menuju penyelesaian

    atas permasalahan utama.Mengkombinasikan dua bagian tersebut secara rekursif untuk

    mendapatkan rangkaian data berurutan.

    CONTOH

    Gambar 8: Contoh Merge Sort

    3.2.5 Algoritma Quicksort

    Quicksort ditemukan oleh C.A.R Hoare. Seperti pada merge sort, algoritma ini jugaberdasar

    pada pola divide-and-conquer. Berbeda dengan merge sort, algoritma inihanya mengikuti

    langkah langkah sebagai berikut :

    1. Divide

    Memilah rangkaian data menjadi dua sub-rangkaian A[pq-1] dan A[q+1r] dimana setiap elemen A[pq-1] adalah kurang dari atau sama dengan A[q] dan setiap elemen pada A[q+1r] adalah lebih besar atau sama dengan elemen pada A[q]. A[q] disebut sebagai elemen pivot. Perhitungan pada elemen q merupakan salah satu bagian dari prosedur

    pemisahan.

    2. Conquer

    Mengurutkan elemen pada sub-rangkaian secara rekursif Pada algoritma quicksort, langkah

    kombinasi tidak di lakukan karena telah terjadi pengurutan elemen elemen pada sub-array.

    CONTOH

  • Gambar 9: Contoh Quick Sort

    3.2.6 ALGORITMA DYNAMICPROGRAMMING

    Dynamic Programming merupakan sebuah algoritmapemecahan masalah dengan cara

    menguraikan solusimenjadi sekumpulan langkah (step) atau tahapan (stage)sedemikian

    sehingga solusi dai persoalan dapat dipandangdari serangkaian keputusan yang saling

    berkaitan. Pada penyelesaian metode in kita menggunakan persyaratan

    optimasi dan kendala untuk membatasi sejumlah pilihanyang harus dipertimbangkan pada

    suatu tahap.Algoritma Dynamic Programming memiliki

    karakteristik sebagai berikut.

    1. Persoalan dapat dibagi mejadi beberapatahap(stage), yang pada setiap tahap hanya diambilsatu keputusan yang optimal.

  • 2. Masing-masing tahap terdiri dari sejumlahstatus(state) yang berhubungan dengan tahaptersebut.

    3. Hasil keputusan yang diambil pada tahapditransformasikan dari status yang bersangkutan kestatus berikutnya pada tahap berikutnya.

    4. Ongkos (cost) pada suatu tahap bergantung padaongkos tahap-tahap sebelumnya dan meningkatsecara teratur dengan bertambahnya jumlah tahapan

    5. Keputusan terbaik pada suatu tahap bersifatindependen terhadap keputusan yang dilakukantahap sebelumnya.

    6. Adanya hubungan rekursif yangmengidentifikasikan keputusan terbaik untuk setiapstatus pada tahap k memberikan keputusan terbaik untuk tahap sebelumnya.

    7. Prinsip optimalitas berlaku pada persoalan tersebut. Ciri utama dari dynamic programming adalah prinsip optimalitas yang berbunyi : jika solusi

    total optimal, maka bagian solusi sampai tahap ke-k juga optimal.

    Dari karakteristik poin ke-4 di atas, kita dapat menyimpulkan bahwa algoritma Dynamic

    Programming dapat diaplikasikan apabila peningkatkan ongkos secara linear dan diskrit

    sehingga optimasi parsial dapat dilakukan.Dalam menyelesaikan persoalan dengan Dynamic

    Programming, kita dapat menggunakan 2 pendekatan berbeda yaitu:

    Maju (forward atau up-down) : bergerak mulai dari tahap 1, terus maju ke tahap 2,3,..,n. Urutan variabel keputusan adalah x1,x2,...,xn

    Mundur(backward atau bottom-up) : bergerak mulai dari tahap n, terus mundur ke tahap n-1,n-2,..,2,1. Urutan variabel keputusan adalah xn xn-1,x2,x1.

    Secara umum ada 4 langkah yang dilakukan dalam mengembangkan algoritma program

    dinamis:

    1. Karakteristikkan struktur solusi optimal. 2. Definisikan secara rekursif nilai solusi optimal. 3. Hitung nilai solusi optimal secara maju atau mundur. 4. Konstruksi solusi optimal.

    CONTOH

    METODE PERHITUNGAN EDIT DISTANCE MENGGUNAKAN DYNAMIC

    PROGRAMMING.

    Pada permasalahan string edit distance ini, nilai edit distance D menjadi ongkos (cost) yang

    harus dicari solusi optimum parsial maupun globalnya. Misalnya, diketahui 2

    buah yaitu string W dan string V, di mana W = W1...Wi merupakan string yang akan

    diperbaiki, dan V = V1...Vj merupakan string yang akan dihitung nilai edit distancenya

    terhadap string W, maka persamaan umum rekursif dari edit distance dengan menggunakan

    algoritma Dynamic Programming prinsip pendekatan maju (forward

    atau up-down) dapat kita bentuk sebagai berikut.

  • Untuk persoalan ini, kita tentukan nilai mismatch penalty P(i, j) = 0 ,jika Wi = Vj dan P(i, j) =

    1, jika Wi Vj ,serta nilai gap penalty d (i, j) = 1,jika ada karakter -, dan d (i, j) = 0 ,jika tidak ada.Pada bagian rekurens, persamaan (1) menunjukkan bahwa perlu

    dilakukan penggantian (substitution) jika Wi Vj agar karakter Wi = Vj . Sedangkan,

    persamaan (2) menunjukkan bahwa perlu dilakukan pemasukkan

    karakter (insertion) serta persamaan (3) menunjukkan bahwa perlu dilakukan penghapusan

    karakter (deletion).Untuk menyimpan nilai-nilai edit distance dari setiap

    langkahnya, maka kita bentuk suatu matriks M berdimensi m x n dimana m=[panjang(V) +1]

    dan n=[panjang(W) + 1] dimana M[0,0] merupakan tempat untuk menyimpan nilai basis

    yaitu 0.

    Tabel 1: Matriks Nilai Edit Distance Tabel 2: langkah Penetuan Nilai Matrik M[0,J]

    Tabel 3:Langkah Penentuan Nilai Matrik M[1,J]

    Jika langkah-langkah tersebut dilanjutkan dengan cara yang sama hingga langkah terakhir

    yaitu langkah ke-5, maka...

  • Tabel 4:Langkah Penentuan Nilai Matrik M[4,J]

    Selanjutnya, kita akan melakukan konstruksi solusi optimal yang dibaca nilai D(4,4). Maka,

    solusi-solusi optimal parsial yang dipilih untuk membentuk solusi optimal global adalah

    sebagai berikut.

    Tabel 5:Konstruksi Solusi Optimal

    Dengan demikian, edit distance dari V=PARKterhadap W=PARL bernilai D(i,j) = 1. Penggunaan algoritma Dynamic Programming untuk

    kasus ini, jika dilihat dari langkah-langkah yang sudah dibentuk di atas, langkah -langkah

    tersebut berupa traversal matriks M yang berdimensi m x n. Sedangkan,nilai edit distance

    yang ditentukan dilakukan dengan sendirinya akibat sifat rekursifitas persamaan edit distance

    yang dibentuk. Oleh karena itu, kompleksitas dari penggunaan algoritma ini sebesar O(mn),

    lebih baik dari metode penyelesaian masalah dengan exhaustive search.Untuk melihat

    perbedaan nilai edit distance jika string PARL dibandingkan dengan string yang lain,sekarang kita definisikan V=SPEAK dan W=PARL.Dalam hal ini, i j dan ada d (i, j) = 1, karena panjang(V ) panjang(W) . Langkah-langkah penentuan nilai edit distance dan

    juga konstruksi solusi optimalnya

    tidak dijelaskan secara mendetail karena keterbatasan waktu dan tempat. Namun, kita dapat

    menentukan nilai edit distance dari string V=PEARL terhadap W=PARL menurut definisi yaitu sebagai berikut.

    Apabila teknik ini diimplementasikan pada aplikasi word processor ataupun search engine,

    maka program akan memberikan feedback berupa string W dengan nilai

    D(PARL, W) yang paling kecil, dimana W merupakan kumpulan string yang ada pada database.Jadi, jika kita merujuk ke contoh di atas, program word processor akan mengoreksi

    string PARL denganPARK, bukan dengan PEARL. Begitu juga pada

  • Search Engine Google. Google, misalnya, akan memberikan feedback berupa pertanyaan

    Did you mean PARK ?. Ini dikarenakan nilai D(PARL, PARK)

  • CONTOH

    Algoritma bubble sort mengimplementasikan teknik brute force dengan jelas sekali. Berikut

    contoh persoalan sorting yang dipecahkan dengan algoritma bubble sort:

    Setelah kita lihat lagi algoritma diatas, sangat mudah dimengerti. Dengan melooping

    sebanyak isi array lalu menukarkan nilainya, jika ada nilai yang lebih kecil berada di bawah

    nilai yang lebih besar, lalu melooping lagi untuk sebanyak jumlah isi array untuk memastikan

    seluruh kondisi di-cek satu per satu dan menukarkan nilainya kembali jika masih terdapat

    kondisi seperti diatas dan seterusnya sampai selesai.

    3.2.8 Algoritma Ant colony

    Ant Colony System (ACS) adalah sebuah metodologi yang dihasilkan melalui pengamatan

    terhadap semut. Pada algoritma ACS, semut berfungsi sebagai agen yang ditugaskan untuk

    mencari solusi terhadap suatu masalah optimisasi. ACS telah diterapkan dalam berbagai

    bidang, salah satunya adalah untuk mencari solusi optimal pada Traveling Salesman Problem

    (TSP). Dengan memberikan sejumlah n titik, TSP dapat didefinisikan sebagai suatu

    permasalahan dalam menemukan jalur terpendek dengan mengunjungi setiap titik yang ada

    hanya sekali.

    Karakteristik Ants Colony System (ACS)

    Terdapat tiga karakteristik utama dari ACS, yaitu : Aturan transisi status, Aturan pembaruan

    pheromone lokal, Aturan pembaruan pheromone global.

    1. Aturan transisi status

    Aturan transisi status yang berlaku pada ACS adalah sebagai berikut: seekor semut yang

    ditempatkan pada titik t memilih untuk menuju ke titik v, kemudian diberikan bilangan

    pecahan acak q dimana 0q1, q0 adalah sebuah parameter yaitu Probabilitas semut

    melakukan eksplorasi pada setiap tahapan, dimana (0 q01) dan pk (t,v) adalah probabilitas

    dimana semut k memilih untuk bergerak dari titik t ke titik v.

  • dimana (t,u) adalah nilai dari jejak pheromone pada titik (t,u) , (t,u) adalah fungsi heuristik

    dimana dipilih sebagai invers jarak antara titik t dan u, merupakan sebuah parameter yang

    mempertimbangkan kepentingan relatif dari informasi heuristic, yaitu besarnya bobot yang

    diberikan terhadap parameter informasi heuristik, sehingga solusi yang dihasilkan cenderung

    berdasarkan nilai fungsi matematis.

    parameter adalah 0. Pheromon adalah zat kimia yang berasal dari kelenjar endokrin dan digunakan oleh makhluk hidup untuk mengenali sesama jenis, individu lain, kelompok, dan

    untuk membantu proses reproduksi. Berbeda dengan hormon, pheromon menyebar ke luar

    tubuh dapat mempengaruhi dan dikenali oleh individu lain yang sejenis (satu spesies). Proses

    peninggalan pheromon ini dikenal sebagai stigmergy, sebuah proses memodifikasi

    lingkungan yang tidak hanya bertujuan untuk mengingat jalan pulang ke sarang, tetapi juga

    memungkinkan para semut berkomunikas dengan koloninya. Seiring waktu, bagaimanapun

    juga jejak pheromon akan menguap dan akan mengurangi kekuatan daya tariknya, sehingga

    jejak pheromon harus diperbaharui. Pada ACS pembaruan pheromon dibagi menjadi 2, yaitu:

    Aturan pembaruan pheromon lokal, Aturan pembaruan pheromon global.

    2. Aturan pembaruan pheromon lokal

    Selagi melakukan tur untuk mencari solusi dari TSP, semut mengunjungi ruas-ruas dan

    mengubah tingkat pheromon pada ruas-ruas tersebut dengan menerapkan aturan pembaruan

    pheromon lokal yang ditunjukkan oleh persamaan (3)

  • dimana :

    Lnn = panjang tur yang diperoleh

    c = jumlah lokasi

    = parameter dengan nilai 0 sampai 1 = perubahan pheromon

    adalah sebuah parameter (koefisien evaporasi), yaitu besarnya koefisien penguapan pheromon . Adanya penguapan pheromone menyebabkan tidak semua semut mengikuti jalur

    yang sama dengan semut sebelumnya. Hal ini memungkinkan dihasilka solusi alternatif yang

    lebih banyak. Peranan dari aturan pembaruan pheromone lokal ini adalah untuk mengacak

    arah lintasan yang sedang dibangun, sehingga titik-titik yang telah dilewati sebelumnya.

    oleh tur seekor semut mungkin akan dilewati kemudian oleh

    tur semut yang lain. Dengan kata lain, pengaruh dari pembaruan lokal ini adalah untuk

    membuat tingkat ketertarikan ruas-ruas yang ada berubah secara dinamis: setiap kali seekor

    semut menggunakan sebuah ruas maka ruas ini dengan segera akan berkurang tingkat

    ketertarikannya (karena ruas tersebut kehilangan sejumlah pheromon-nya), secara tidak

    langsung semut yang lain akan memilih ruas-ruas lain yang belum dikunjungi.

    Konsekuensinya, semut tidak akan memiliki kecenderungan untuk berkumpul pada jalur yang

    sama. Fakta ini, yang telah diamati dengan melakukan percobaan [Dorigo dan Gambardella,

    1997]. Merupakan sifat yang diharapkan bahwa jika semut membuat tur-tur yang berbeda

    maka akan terdapat kemungkinan yang lebih tinggi dimana salah satu dari mereka akan

    menemukan solusi yang lebih baik daripada mereka semua berkumpul dalam tur yang sama.

    Dengan cara ini, semut akan membuatpenggunaan informasi pheromon menjadi lebih baik

    tanpa pembaruanlokal, semua semut akan mencari pada lingkungan yang sempit dari tur

    terbaik yang telah ditemukan sebelumnya.

    3.Aturan pembaruan pheromon global

    Pada sistem ini, pembaruan pheromon secara global hanya dilakukan oleh semut yang membuat

    tur terpendek sejak permulaan percobaan. Pada akhir sebuah iterasi, setelah semua semut

    menyelesaikan tur mereka, sejumlah pheromon ditaruh pada ruas-ruas yang dilewati oleh seekor

    semut yang telah menemukan tur terbaik (ruas-ruas yang lain tidak diubah). Tingkat pheromon

    itu diperbarui dengan menerapkan aturan pembaruan pheromon global yang ditunjukkan oleh

    persamaan (4).

    Dimana :

    (t,v) = nilai pheromone akhir setelah mengalami pembaharuan lokal gb L = panjang jalur terpendek pada akhir siklus

    = parameter dengan nilai antara 0 sampai 1 = perubahan pheromone bernilai jika ruas (t,v) merupakan bagian dari rute terbaik namun jika sebaliknya . adalah

    tingkat kepentingan relatif dari pheromon atau besarnya bobot yang diberikan terhadap

    pheromon, sehingga solusi yang dihasilkan cenderung mengikuti sejarah masa lalu dari semut

    dari perjalanan sebelumnya, dimana nilai parameter adalah 0, dan Lgb adalah panjang dari tur terbaik secara global sejak permulaan percobaan. Pembaruan pheromon global

    dimaksudkan untuk memberikan pheromon yang lebih banyak pada tur-tur yang lebih

  • pendek. Persamaan (3) menjelaskan bahwa hanya ruas-ruas yang merupakan bagian dari tur

    terbaik secara global yang akan menerima penambahan pheromone.

    CONTOH

    Sama halnya dengan cara kerja semut dalam mencari jalur yang optimal, untuk mencari jalur

    terpendek dalam penyelesaian masalah Traveling Salesman Problem (TSP) diperlukan

    beberapa lngkah untuk mendapatkan jalur yang optimal, antara lain :

    1. Menentukan pheromone awal masing- masing semut. Tapi sebelum itu tentukan terlebih

    dahulu banyaknya semut dalam proses tersebut, setelah itu tentukan titik awal masing-

    masing semut.

    2. Setelah itu tentukan titik selanjutnya yang akan dituju, ulangi proses sampai semua titik terlewati. Dengan menggunakan persamaan 1 atau 2 dapat ditentukan titik mana yang

    akan dituju, yaitu dengan :

    Jika q q 0 maka pemilihan titik yang akan dituju menerapkan aturan yang ditunjukkan oleh persamaan (1).

    Dengan

    jika titik yang dimaksud bukanlah titik yang akan akan dilalui, maka

    kembali ke titik sebelumnya.

    3. Apabila telah mendapatkan titik yang dituju, pheromone masing-masing pada titik tersebut diubah dengan menggunakan persamaan 3, yaitu :

    dimana :

    Lnn = panjang tur yang diperoleh

    c = jumlah lokasi

    = parameter dengan nilai 0 sampai 1 = perubahan pheromone Perubahan pheromon tersebut dinamakan perubahan pheromon lokal.

    4. Setelah proses diatas selesai, hitung panjang lintasan masing-masing semut. 5. Kemudian akan didapatkan panjang lintasan yang minimal. 6. Ubah pheromone pada titik-titik yang yang termuat dalam lintasan tersebut. 7. Setelah semua proses telah dilalui, maka akan didapatkan lintasan dengan panjang

    lintasan yang minimal.

  • Berikut ini adalah algoritma ACS

    3.2.9 Algoritma Greedy

    Algoritma greedy adalah algoritma yang memecahkan masalah langkah demi langkah, pada

    setiap langkah:

    1. mengambil pilihan yang terbaik yang dapat diperoleh saat itu 2. berharap bahwa dengan memilih optimum loklal pada setiap langkah akan mencapai

    optimum global.

    Algoritma greedy mengasumsikan bahwa optimum lokal merupakan bagian dari optimum

    global.Prinsip algoritma greedy adalah: take what you can get now!. Ambil apa yang anda peroleh sekarang!Prinsip ini juga dipakai dalam pemecahan masalah

    optimasi. Dalam kehidupan sehari-hari, kita juga pernah menggunakan prinsip greedy,

    misalnya:

    a. Memilih jurusan di Perguruan Tinggi

    b. Memilih jalur tersingkat dari Bandung ke Jakarta.

  • Skema Umum Algoritma Greedy

    Persoalan optimasi dalam konteks algoritma greedy

    disusun oleh elemen-elemen sebagai berikut:

    1. Himpunan kandidat, C.Himpunan ini berisi elemen-elemen pembentuk solusi. Pada setiap langkah, satu buah kandidat diambil dari himpunannya.

    2. Himpunan solusi, S.Merupakan himpunan dari kandidat-kandidat yang terpilih sebagai solusi persoalan. Himpunan solusi adalah himpunan bagian dari himpunan

    kandidat.

    3. Fungsi seleksi dinyatakan sebagai predikat SELEKSI merupakan fungsi yang pada setiap langkah memilih kandidat yang paling mungkin untuk mendapatkan solusi

    optimal. Kandidat yang sudah dipilih pada suatu langkah tidak pernah

    dipertimbangkan lagi pada langkah selanjutnya.

    4. Fungsi kelayakan (feasible) dinyatakan dengan predikat LAYAK merupakan fungsi yang memeriksa apakah suatu kandidat yang telah dipilih dapat memberikan

    solusi yang layak, yakni kandidat tersebut bersama-sama dengan himpunan solusi

    yang sudah terbentuk tidak melanggar kendaaran yang ada.

    5. Fungsi obyektif, merupakan fungsi yang memaksimumkan atau meminimumkan nilai solusi.

    Kita berharap optimum global merupakan solusi optimum dari persoalan. Namun, ada

    kalanya optimum global belum tentu merupakan solusi optimum (terbaik), tetapi dapat

    merupakan solusi sub-optimum atau pseudo-optimum. Hal ini dapat dijelaskan dari dua

    faktor berikut:

    1. algoritma greedy tidak beroperasi secara menyeluruh terhadap semua alternatif solusi yang ada.

    2. pemilihan fungsi SELEKSI: fungsi SELEKSI biasanya didasarkan pada fungsi obyektif (fungsi SELEKSI bisa saja identik dengan fungsi obyektif).Jika fungsi

    SELEKSI tidak identik dengan fungsi obyektif, kita harus memilih fungsi yang tepat

    untuk menghasilkan nilai yang optimum.

    Karena itu, pada sebagian masalah algoritma greedy tidak selalu berhasil memberikan solusi

    yang benar benar optimum. Tetapi, algoritma greedy pasti memberikan solusi yang

    mendekati (approximation)nilai optimum.

    CONTOH

    Contoh penyelesaian menggunakan algoritma greedy ini adalah mencari pohon perentang

    minimum, baik menggunakan Prim maupun Kruskal

    Pohon perentang minimum

    Misalkan G = (V, E) adalah suatu graph tidak berarah, terhubung, dan mempunyai bobot

    yang non negatif. Maka pohon perentang minimum adalah subgraph G yang mempunyai sifat

    berupa pohon Mengandung semua simpul pada G.Mempunyai jumlah bobot pada busur yang

    minimum.

    Y = {v0} untuk setiap v0 ? V

    while (Y = V )

    {

  • Cari busur (u,v)dengan bobot minimum dengan u ? Y

    dan v ?/ Y

    Masukkan busur (u, v) pada MST

    Tambahkan v pada Y

    }

    Kode programnya adalah sebagai berikut

    for (i = 1; i

  • {

    V [j] . Connect_Wt = Weight [Min_V] [j];

    V [j] . Connect_From = Min_V;

    }

    }

    Algoritma Kruskal

    Tempatkan masing masing simpul sebagai himpunan terpisah

    for ( setiap busur (u,v) yang diurutkan bobotnya secara ascending)

    if (u dan v berada dalam himpunan terpisah)

    {

    Masukkan busur (u,v) dalam MST

    gabungkan himpunan yang mengandung u dan v

    }

    Inilah potongan programnya

    for (i = 1; i

  • for (j = 1; j
  • Gambar 10. Representasi pohon pencarian untuk permainan logika

    Pada algoritma ini ada dua pemain yang terlibat, kita asumsikan MAX dan MIN. Pohon

    pencariandibangkitkan, depth-first, dimulai dari posisi permainan saat ini sampai pada akhir

    posisi permainan. Lalu, kondisi permainan final dievaluasi sebagai sudut pandang

    MAX,seperti tergambar pada gambar 1. Setelah itu, simpul-simpul di atas simpul daun diisi

    secara bottom up dengan nilai pada simpul anak-anaknya. Simpul yang dimiliki

    pemain MAX menerima nilai maksimum dari simpul anak-anaknya dan pemain MIN

    memperoleh nilai minimum dari nilai-nilai yang dimiliki simpul anak-anaknya.

    3.3 JARINGAN SEMANTIK DAN SCRIPT

    Jaringan semantik adalah gambaran pengetahuan grafis yang menunjukkan hubungan antar

    berbagai objek, terdiri dari lingkaran-lingkaran yang dihubungkan dengan anak panah yang

    menunjukkan objek dan informasi tentang objek-objek tersebut. Gambar berikut

    menunjukkan representasi pengetahuan menggunakan jaringan semantik.

    Gambar 11: Jaringan Semantik

    Dari gambar di atas dapat dibentuk beberapa kalimat yang menunjukkan suatu peristiwa,

    seperti :

  • Reza adalah siswa tingkat SMA di Jakarta

    Reza menonton film di bioskop daerah Jakarta

    Reza menonton film berjudul Avatar di bioskop daerah Jakarta

    Reza menonton film di Australia

    Reza kekasih Renata

    Reza bermain sepabola di kejuaraan antar SMA

    SMA memiliki klub olahraga sepabola

    Renata bermain drama di Australia

    Renata menonton sepakbola di televisi

    Film berjudul Avatar disutradarai James Cameron

    James Cameron membuat film bergenre drama di Australia

    Dalam mata kuliah Pengantar Kecerdasan Buatan script merupakan representasi

    pengetahuan berdasarkan karakteristik yang sudah dikenal sebagai pengalaman-pengalaman

    yang menggambarkan urutan peristiwa.

    Terdapat enam elemen script, yaitu :

    1. Kondisi input, merupakan kondisi yang harus dipenuhi sebelum terjadi 2. Track, yaitu variasi kemungkinan yang terjadi 3. Prop, yaitu objek yang digunakan dalam suatu peristiwa 4. Role, yaitu peran dalam suatu peristiwa 5. Scene, yaitu adegan dalam suatu peristiwa 6. Hasil, yaitu kondisi setelah terjadinya urutan peristiwa

    Berikut ini adalah contoh script kejadian Penyewaan Film di Rental Film

    Jalur (track) : menyewa film

    Role (peran) : calon penyewa, penyewa, penjaga rental

    Prop (pendukung) : kartu rental, uang, dvd, vcd, pulpen, formulir pendaftaran

    Kondisi input : penyewa terdaftar untuk menyewa film

    Adegan 1 : Calon penyewa atau penyewa datang ke tempat rental film

    Calon penyewa atau penyewa telah menyiapkan uang untuk sewa

    Penjaga rental mempersilahkan masuk

    Penjaga rental memberi salam hangat kepada calon penyewa atau penyewa

    Adegan 2 : Calon penyewa mendaftar menjadi anggota

    Penjaga rental menjelaskan prosedur penyewaan film

    Penjaga rental memberikan formulir pendaftaran

    Calon penyewa menunjukkan KTP

    Calon penyewa mengisi formulir pendaftaran

    Penjaga rental memberikan kartu rental

  • Adegan 3 : Penyewa memilih film

    Penyewa memilih film dalam bentuk dvd

    Penyewa memilih film dalam bentuk vcd

    Penyewa memilih film dalam berbagai genre (action, drama, comedy, horror)

    Adegan 4 : Penyewa membayar uang sewa

    Penyewa menunjukkan film yang dipinjam

    Penjaga rental memberikan tempat atau bungkus untuk film

    Penyewa membayar uang sewa

    Penjaga rental memberikan tanda bukti penyewaan

    Adegan 5 : Penyewa kembali ke rumah

    Penyewa meninggalkan tempat rental

    Penyewa menonton film

    Penyewa akan kembali ke tempat rental untuk mengembalikan film yang dipinjam

    sesuai jangka waktu penyewaan

    Hasil :

    Penyewa merasa senang

    Penyewa merasa kecewa

    Penyewa tertawa (karena film komedi)

    Penyewa merasa sedih

  • DAFTAR PUSTAKA

    1. http://id.wikipedia.org/wiki/Algoritma

    2. http://id.wikipedia.org/wiki/Operator_logika

    3. http://id.wikipedia.org/wiki/Logika

    4. http://nurmanali.blogspot.com/2011/10/jaringan-semantik-kecerdasan-buatan.html

    5. http://id.wikipedia.org/wiki/Algoritma_semut

    6. http://herucr.com/algoritma-greedy.html

    7. http://bwahyudi.staff.gunadarma.ac.id/Downloads/files/1342/ALGORITMA+PEMR

    OGRAMAN.pdf

    8. http://bsavitri.staff.gunadarma.ac.id/Downloads/files/12330/Bab+4+Algoritma+Penca

    rian.pdf

    9. http://blog.binadarma.ac.id/usman/wp-content/uploads/2011/07/JENI-Intro2-Bab06-

    Algoritma-Sorting.pdf

    10. http://repository.usu.ac.id/bitstream/123456789/6018/1/08E00400.pdf

    11. http://wijanarto.files.wordpress.com/2011/02/7-algoritma-bruteforce.pdf

    12. http://p4tkmatematika.org/downloads/sma/logika.pdf

    13. http://journal.mercubuana.ac.id/data/propositional-logic.pdf