bab2laporankecerdasanbuatan

Upload: kusumaningtyas-aditya-putri

Post on 04-Feb-2018

233 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    1/15

    1

    BAB II

    TINJAUAN PUSTAKA

    2.1 Kecerdasan Buatan

    2.1.1 Pengertian Kecerdasan Buatan

    Kecerdasan buatan (artificial intelligence) adalah bagian dari ilmu

    komputer yang mempelajari tentang bagaimana sebuah komputer bisa

    dibuat dengan sedemikian rupa agar dapat melakukan pekerjaan seperti

    dan sebaik yang dilakukan oleh manusia. Menurut John McCarthy (1956),

    kecerdasan buatan adalah suatu sistem komputer yang terbentuk untuk

    mengetahui dan memodelkan proses-proses berpikir manusia dan

    mendesain mesin agar dapat menirukan perilaku manusia.

    Manusia bisa dengan pandai menyelesaikan masalah-masalah yang

    muncul karena manusia memiliki pengetahuan dan pengalaman yang dapat

    membantu dalam memecahkan masalah. Agar komputer dapat bertindak

    seperti dan sebaik manusia maka komputer diberikan pengetahuan dan

    kemampuan untuk menalar agar dapat memberikan pengalaman seperti

    layaknya manusia.

    Ada tiga tujuan kecerdasan buatan, yaitu: membuat komputer lebih

    cerdas, mengerti tentang kecerdasan, dan membuat mesin lebih berguna.

    Yang dimaksud kecerdasan adalah kemampuan untuk belajar atau

    mengerti dari pengalaman, memahami pesan yang kontradiktif dan

    ambigu, menanggapi dengan cepat dan baik atas situasi yang baru,

    menggunakan penalaran dalam memecahkan masalah serta

    menyelesaikannya dengan efektif (Winston dan Prendergast, 1994).

    Kecerdasan buatan dapat dikelompokkan menjadi empat bagian,

    yaitu:

    a.

    Sebuah sistem yang berpikir seperti manusia

    b. Sebuah sistem yang dapat berpikir secara rasional

    c.

    Sebuah sistem yang berperilaku seperti manusia

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    2/15

    2

    d.

    Sebuah sistem yang dapat berperilaku secara rasional

    Lebih jauh lagi, berikut adalah beberapa definisi mengenai

    kecerdasan buatan yang dapat diketahui, yaitu:

    a.

    Menurut Rich dan Knight (1991, p3)

    Kecerdasan buatan merupakan ilmu yang mempelajari

    bagaimana membuat sebuah komputer dan mengerjakan

    sesuatu yang masih lebih baik dikerjakan manusia.

    b. Menurut Rolston (1988, p15)

    Kecerdasan buatan merupakan solusi berbasis komputer

    terhadap masalah yang ada, yang menggunakan aplikasi

    yang mirip dengan proses berpikir menurut manusia.

    c. Menurut Setiawan (1993, p1)

    Kecerdasan buatan dapat didefinisikan sebagai cabang ilmu

    komputer yang mempelajari otomatisasi tingkah laku

    cerdas.

    2.1.2

    Konsep Kecerdasan Buatan

    Terdapat dua bagian utama yang diperlukan agar dapat melakukan

    aplikasi kecerdasan buatan, seperti dapat terlihat pada Gambar 2.1, yaitu:

    a. Basis pengetahuan (knowledge base), yang berisi fakta,

    teori, pemikiran, dan hubungan satu dengan yang lainnya,

    b. Motor inferensi (inference engine), yang berupa

    kemampuan mesin untuk menarik kesimpulan berdasarkan

    pengalaman.

    Gambar 2.1Penerapan Konsep Kecerdasan Buatan di Komputer (Turban dan

    Frenzel, 1992, p12)

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    3/15

    3

    2.1.3 Bidang-bidang Terapan pada Kecerdasan Buatan

    Kecerdasan buatan adalah sebuah ilmu pengetahuan dan teknologi

    yang berisikan ide-ide dan konsep yang diperuntukkan untuk sebuah

    penelitian dan tidak untuk dipasarkan (Turban dan Aronson, 2001, p402-

    406). Namun kecerdasan buatan menyediakan dasar-dasar ilmu

    pengetahuan pada beberapa bidang teknologi yang dapat digunakan secara

    komersial, di antaranya adalah:

    a.

    Sistem pakar (expert system)

    Sebuah sistem komputer yang digunakan sebagai sarana

    untuk menyimpan pengetahuan yang dimiliki oleh seorang

    atau lebih pakar dengan tujuan agar komputer memiliki

    keahlian untuk menyelesaikan permasalahan dengan meniru

    keahlian yang dimiliki pakar tersebut.

    b. Pengolahan bahasa alami (natural language processing)

    Pemrograman sistem komputer dimana pengguna dapat

    berkomunikasi dengan komputer dengan menggunakan

    bahasa sehari-hari.

    c. Pengenalan suara/ucapan (speech recognition)

    Pengguna dapat berkomunikasi dengan komputer/memberi

    perintah kepada komputer untuk melakukan suatu

    pekerjaan.

    d.

    Robotika dan sistem sensorik (robotic and sensory systems)

    Sebuah organ tubuh robotik yang dilengkapi oleh berbahai

    sensor yang diprogram untuk mampu mendeteksi jenis

    pekerjaan yang perlu dilakukan oleh organ tubuh tersebut.

    e. Computer vision

    Pemrograman sistem yang bertujuan untuk

    menginterpretasikan gambar dan objek tampak melalui

    komputer untuk proses lebih jauh.

    f.

    Intelligent computer-aided instruction

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    4/15

    4

    Sistem komputer yang digunakan untuk proses

    pembelajaran/sebagai tutor yang dapat melatih dan

    mengajar.

    g.

    Game playing

    2.14 Kelebihan Kecerdasan Buatan

    Kecerdasan buatan memiliki beberapa kelebihan dibandingkan

    dengan kecerdasan yang dimiliki oleh manusia (Kusumadewi, 2003, p3-4),

    yaitu:

    a.

    Bersifat lebih permanen. selama sistem dan program tidak

    berubah, maka kecerdasan buatan tersebut tidak akan

    berubah;

    b. Lebih mudah untuk diduplikasi dan disebarkan dari satu

    komputer ke komputer lain dibandingkan dengan

    memindahkan pengetahuan dari satu manusia ke manusia

    yang lain;

    c.

    Lebih murah dibandingkan dengan mendatangkan seorang

    ahli;

    d. Konsisten. Kecerdasan buatan merupakan sebuah teknologi

    komputer sedangkan kecerdasan alami memiliki

    kecenderungan untuk berubah;

    e. Bisa didokumentasi. Tiap aktivitas yang dilakukan oleh

    kecerdasan buatan dapat dilacak dengan mudah sedangkan

    kecerdasan alamai termasuk sulit untuk direproduksi.

    f. Mengerjakan pekerjaan dengan waktu lebih cepat dan lebih

    baik.

    2.2 Algoritma A*

    2.2.1 Pengertian Algoritma A*

    A* (A Star) adalah algoritma komputer untuk pncarian jarak

    terdekat dan penelusuran rute yang dipublikasikan pada tahun 1968 oleh

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    5/15

    5

    Peter Hart, Nils Nilsson, dan Bertram Raphael (RSA) di Stanford Research

    Institute (sekarang SRI International).

    Algoritma ini menggunakan fungsi distance-plus-cost (dinotasikan

    dengan f(x)) untuk menentukan urutan kunjungan pencarian titik pada

    graf. f(x) merupakan penjumlahan dari dua fungsi path-cost (dinotasikan

    dengan g(x)), dan perkiraan heuristik acak ke titik tujuan (dinotasikan

    dengan h(x)). h(x) mungkin mewakili garis lurus jarak ke titik tujuan,

    karena itu mungkin ada jarak terpendek antara dua titik.

    Fungsi heuristik pada A* digunakan untuk memperhitungkan jarak

    yang didapat dari jarak sebenarnya ditambah jarak perkiraan. Dalam notasi

    matematika dituliskan sebagai berikut:

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

    Keterangan:

    g(x) = total jarak didapat dari node awal ke node sekarang

    h(x) = jarak estimasi node tujuan, sebuah fungsi heuristik untuk

    membuat perkiraan seberapa jauh lintasan yang akan diambil ke

    node tujuan

    f(x) = jumlah dari g(x) dan h(x)

    Heuristik yang digunakan pada tulisan ini yaitu Manhattan

    Distance. Fungsi heuristik ini akan menjumlahkan selisih nilai x dan nilai

    y dari dua buah titik. Perhitungan dapat ditulis sebagai berikut:

    h(x) = abs(n.x - goal.x) + abs(n.y - goal.y)

    Keterangan:

    h(x) = perkiraan jarak dari node sekarang ke node tujuan

    n.x = koordinat x dari node n

    goal.x = koordinat x dari node tujuan

    n.y = koordinat y dari node n

    goal.y = koordinat y dari node tujuan

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    6/15

    6

    Pada algoritma ini pencarian node yang paling mendekati solusi

    nantinya akan disimpan suksesornya ke dalam list sesuai dengan ranking

    yang paling mendekati hasil terbaik. Algoritma ini akan mengunjungi

    setiap node selama node itu adalah yang terbaik. Bila node yang

    dikunjungi ternyata tidak mengarah ke hasil yang diinginkan, maka akan

    melakukan penelusuran balik ke arah node yang terakhir dikunjungi.

    Apabila tidak dapat ditemukan juga, maka akan terus menelusuri ulang

    mencari ke arah node awal sampai dapat ditemukan node yang lebih baik

    kemudian untuk dibandingkan dengan suksesornya (Phaneendhar R V,

    2011).

    2.2.2 Cara Kerja Algoritma A*

    Dalam penerapannya, untuk merepresentasikan node-node pada

    graph/tree, maka digunakan dua buah himpunan, yaitu open list dan close

    list. Setiap kali menelusuri sebuah node yang baru, maka node tersebut

    dibandingkan dengan node-node lain yang berada di dalam open list dan

    close list, untuk memeriksa apakah node baru tersebut sudah pernah

    ditelusuri atau belum. Open listberisi node-node yang telah ditelusuri dan

    telah dihitung nilai heuristic-nya, tetapi belum diperiksa (misalnya

    suksesor suatu node). Sedangkan close listberisi node-node dari open list

    yang telah diperiksa.

    Menurut Rich dan Knight (1001, p76), cara kerja Algoritma A*

    adalah:

    1.

    Dimulai dengan open list yang hanya berisi initial node. Set nilai g

    dari node tersebut menjadi 0, dan nilai h sesuai heuristic sehingga

    nilai f adalah h-0 = h. Set close listberupa list kosong.

    2. Hingga node tujuan ditemukan, ulangi prosedur berikut:

    Jika tidak ada node yang terdapat pada open list, maka laporkan

    kekeliruan. Jika tidak, ambil node pada open list yang memiliki

    nilai f terendah dan namakan sebagai best node. Pindahkan lagi

    dari open list, masukkan ke close list. Periksa apakah best node

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    7/15

    7

    merupakan node tujuan. Jika ya, maka keluar dari prosedur ini dan

    laporkan hasilnya (termasuk node yang telah dihasilkan dari node

    awal ke node tujuan). Jika tidak, buat suksesor-suksesor dari best

    node, tetapi jangan menentukan best node menunjuk ke mereka.

    Suksesor-suksesor tersebut perlu diperiksa apakah pernah dibuat

    sebelumnya. Untuk setiap suksesor, lakukan langkah-langkah

    berikut:

    Set suksesor menunjuk kembali ke best node. Link ke

    belakang ini memungkinkan jalur yang terbentuk

    dipulihkan setelah hasilnya ditemukan.

    Hitung g(suksesor) = g(best node) + biaya yang diperlukan

    untuk mencapai dari best node ke suksesor.

    Lihat apakah suksesor sama dengan node yang berada di

    open list. Jika ya, maka namakan sebagai old. Bila node ini

    ada dalam tree, maka suksesor dapat dikeluarkan dari tree

    dan ditambahkan old dalam daftar suksesornya best node.

    Sekarang harus ditentukan apakah link ke parent dari old

    perlu diubah menjadi menunjuk ke best node. Hal ini dapat

    terjadi bila rute yang baru saja ditemukan menuju suksesor

    lebih murah atau lebih baik dari rute terbaik yang ada

    sekarang ke old (bila old dan suksesor adalah titik yang

    sama). Jadi lihat apakah lebih murah untuk menuju ke old

    melaluiparent yang sekarang atau kesuksesor melalui best

    node dengan membandingkan nilai g-nya. Jika old lebih

    murah atau sama, maka tidak dilakukan apapun. Jika

    suksesor lebih murah, maka ubah link parent dari old

    menunjuk ke best node lalu simpan rute ke dalam g(old)

    dan perbarui f(old).

    Jika suksesor tidak terdapat pada open list, lihat apakah

    terdapat pada close list. Jika ya, maka namakan sebagai

    close list old dan tambahkan ke daftar suksesor dan best

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    8/15

    8

    node.periksa apakah rute yang baru ini lebih baik daripada

    rute pada langkah 2(c) dan set link parent, nilai g dan f. Jika

    rutenya lebih baik, maka lakukan perbaikan pada suksesor

    dari old dengan pergerakan secara depth-first dimulai dari

    old, ubah nilai g dan f tiap node, akhiri tiap cabang bila

    telah mencapai node yang tidak memiliki suksesor atau

    menentukan rute yang lebih baik dari sebelumnya. Tiap link

    parent dari node menunjuk ke parent terbaiknya. Saat

    menyebarkan node ke bawah, lihat apakah parent-nya

    menunjuk ke titik awal. Jika ya, maka lanjutkan

    penyebaran. Jika tidak, maka nilai g-nya mencerminkan

    rute yang lebih baik dan penyebaran dihentikan di sini.

    Tetapi mungkin dengan nilai baru g yang node-nya

    disebarkan ke bawah menjadi rute yang lebih baik dari rute

    yang melalui parent yang sekarang. Jika dibandingkan

    keduanya. Jika rute melalui parent yang sekarang masih

    lebih baik, maka hentikan penyebaran.

    Jika suksesor tidak pernah ada di open list atau close list,

    maka masukkan ke open list dan tambahkan ke daftar

    suksesor dari best node. Hitung f(suksesor) = g(suksesor) +

    h(suksesor).

    2.2.3 Contoh Algoritma A*

    Gambar 2.2 Kondisi Awal

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    9/15

    9

    Posisi node awal = Ax : 0, Ay : 0

    Posisi node tujuan = goal.x : 2, goal.y : 2

    a. Langkah kesatu

    n (1,1) : g (1,1) = 1

    h_orthogonal(n) = (abs(n.x-goal.x) + abs(n.y-goal.y))

    h_orthogonal(1,1) = (abs(1 - 2) + abs(1 - 2))

    = (abs(-1) + abs(-1))

    = 2

    h_diagonal(n) = min(abs(n.x-goal.x) + abs(n.y-

    goal.y))

    h_diagonal(1,1) = min(abs(1 - 2)+abs(1 - 2))

    = min(abs(-1)+abs(-1))

    = min 2

    h(n) = h_diagonal(n) + (h_orthogonal (n)(2 * h_diagonal(n)))

    h(1,1) = (-2) + (2-(2*(-2)))

    = -2 + 6

    = 4

    f (1,1) = g (1,1) + h (1,1)

    = 1 + 4

    = 5

    n (1,0) : g (1,0) = 1

    h_orthogonal(n) = (abs(n.x-goal.x) + abs(n.y-goal.y))

    h_orthogonal(1,0) = (abs(1 - 2) + abs(0 - 2))

    = (abs(-1) + abs(-2))

    = 3

    h_diagonal(n) = min(abs(n.x-goal.x), abs(n.y-

    goal.y))

    h_diagonal(1,0) = min(abs(1 - 2)+abs(0 - 2))

    = min(abs(-1)+abs(-2))

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    10/15

    10

    = min 3

    h(n) = h_diagonal(n) + (h_orthogonal (n)(2 * h_diagonal(n)))

    h(1,0) = (- 3) + (3-(2*(-3)))

    = -3 + 9

    = 6

    f (1,0) = g (1,0) + h (1,0)

    = 1 + 6

    = 7

    n (0,1) : g (0,1) = 1

    h_orthogonal(n) = (abs(n.x-goal.x) + abs(n.y-goal.y))

    h_orthogonal(0,1) = (abs(0 - 2) + abs(1 - 2))

    = (abs(-2) + abs(-1))

    = 3

    h_diagonal(n) = min(abs(n.x-goal.x) + abs(n.y-

    goal.y))

    h_diagonal(0,1) = min(abs(0 - 2)+abs(1 - 2))

    = min(abs(-2)+abs(-1))

    = min 3

    h(n) = h_diagonal(n) + (h_orthogonal (n)(2 * h_diagonal(n)))

    h(0,1) = (-3) + (3-(2*(-3)))

    = -3 + 9

    = 6

    f (0,1) = g (0,1) + h (0,1)

    = 1 + 6

    = 7

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    11/15

    11

    Gambar 2.3 Langkah Pertama

    Pada Gambar 2.3 terdapat tiga node yang mungkin menjadi

    best node, yaitu (1,0) dengan f(n) = 1, (1,1) dengan f(n) = 5, dan

    (0,1) dengan f(n) = 7. Maka dipilih node (1,1) dengan biaya

    terkecil, yaitu 5.

    b. Langkah kedua

    n (2,2) : g (2,2) = 2

    h_orthogonal(n) = (abs(n.x-goal.x) + abs(n.y-goal.y))

    h_orthogonal(2,2) = (abs(2 - 2) + abs(2 - 2))

    = (abs(0) + abs(0))

    = 0

    h_diagonal(n) = min(abs(n.x-goal.x) + abs(n.y-

    goal.y))

    h_diagonal(2,2) = min(abs(2 - 2)+abs(2 - 2))

    = min(abs(0)+abs(0))

    = min 0

    h(n) = h_diagonal(n) + (h_orthogonal (n)(2 * h_diagonal(n)))

    h(0,1) = (-0) + (0-(2*(-0)))

    = 0 + 0

    = 0

    f (2,2) = g (2,2) + h (2,2)

    = 2 + 0

    = 2

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    12/15

    12

    Gambar 2.4 Langkah Kedua

    Pada Gambar 2.4 terdapat satu node yang mungkin menjadi

    best node, yaitu (2,2) dengan f(n) = 2 dan dikenali sebagai node

    tujuan, yaitu (2,2). Maka solusi telah ditemukan.

    Gambar 2.5 Hasil

    2.3 Java

    Java adalah bahasa pemrograman yang disusun oleh James Gosling dan

    rekan-rekannya seperti Patrick Naughton, Chris Warth, Ed Rank, dan Mike

    Sheridan di suatu perusahaan perangkat lunak yang bernama Sun Microsystems

    pada tahun 1991. Bahasa pemrograman ini mula-mula diinisialisasi dengan nama

    Oak, namun pada tahun 1995 diganti menjadi Java.

    2.3.1 Arsitektur Java

    Secara arsitektur, Java tidak berubah sedikit pun semenjak awal

    mula bahasa tersebut dirilis. Kompiler Java (yang disebut dengan javac

    atau Java Compiler) akan mentransformasikan kode-kode dalam bahasa

    Java ke dalam suatu bytecode.Bytecode adalah sekumpulan perintah hasil

    kompilasi yang kemudian dapat dieksekusi melalui sebuah mesin

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    13/15

    13

    komputer abstrak, yang disebut dengan JVM (Java Virtual Machine).

    JVM juga sering dinamakan sebagai interpreter, karena sifatnya yang

    selalu menerjemahkan kode-kode yang tersimpan dalam bytecode dengan

    cara baris demi baris.

    2.3.2 Java 1

    Pada awal rilisnya, versi lama Java masih dikenal dengan sebutan

    JDK (Java Development Kit). Semua kebutuhan untuk pengembangan dan

    eksekusi program dalam JDK masih terdabung menjadi satu. Penamaan ini

    berlaku sampai Java 1.1. Setelah Java 1. 2 rilis, Sun Microsystems

    menamainya dengan JDSK (Java Software Development Kit). Pada JDSK,

    kebutuhan untuk pengembangan program dipisahkan dengan kebutuhan

    eksekusi program. Bagian software yang digunakan untuk kebutuhan

    eksekusi program disebut dengan JRE (Java Runtime Environment).

    2.3.3 Java 2

    Pada perkembangan selanjutnya, Sun Micorsystems

    memperkenalkan Java versi 1.2 atau lebih dikenal dengan nama Java 2

    yang terdiri atas JDK dan JRE versi 1.2. Aplikasi-aplikasi Java yang

    kompatibel dengan Java ini dikenal denganJava 2 Compliant. Pada Java 2

    ini, Java dibagi menjadi tiga kategori, yaitu:

    1. Java 2 Standard Edition (J2SE)

    Kategori ini digunakan untuk menjalankan dan

    mengembangkan aplikasi-aplikasi Java pada level PC (Personal

    Computer).

    2. Java 2 Enterprise Edition (J2EE)

    Kategori ini digunakan untuk menjalankan dan

    mengembangkan aplikasi-aplikasi Java pada lingkungan

    enterprise, dengan menambah fungsionalitas-fungsionalitas Java

    semacam EJB (Enterprise Java Bean), Java COBRA, servlet dan

    JSP, serta Java XML (Extensible Markup Language).

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    14/15

    14

    3.

    Java 2 Micro Edition (J2ME)

    Kategori ini digunakan untuk menjalankan dan

    mengembangkan aplikasi-aplikasi Java pada handled devices atau

    perangkat-perangkat semacam handphone, PDA, dan PocketPC.

  • 7/21/2019 Bab2LaporanKecerdasanBuatan

    15/15

    15

    DAFTAR PUSTAKA

    1. http://library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-2-00250-

    if%20bab%202.pdf

    2. http://repository.usu.ac.id/bitstream/123456789/42380/4/Chapter%20II.pd

    f

    3. http://thesis.binus.ac.id/Asli/Bab2/2008-1-00087-IF%20Bab%202.pdf

    4. http://elib.unikom.ac.id/files/disk1/439/jbptunikompp-gdl-dwirezekim-

    21927-11-12uniko-i.pdf

    5.

    http://elib.unikom.ac.id/files/disk1/483/jbptunikompp-gdl-dewinurulr-

    24110-5-unikom_d-i.pdf

    http://library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-2-00250-if%20bab%202.pdfhttp://library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-2-00250-if%20bab%202.pdfhttp://library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-2-00250-if%20bab%202.pdfhttp://library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-2-00250-if%20bab%202.pdfhttp://library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-2-00250-if%20bab%202.pdfhttp://repository.usu.ac.id/bitstream/123456789/42380/4/Chapter%20II.pdfhttp://repository.usu.ac.id/bitstream/123456789/42380/4/Chapter%20II.pdfhttp://repository.usu.ac.id/bitstream/123456789/42380/4/Chapter%20II.pdfhttp://repository.usu.ac.id/bitstream/123456789/42380/4/Chapter%20II.pdfhttp://repository.usu.ac.id/bitstream/123456789/42380/4/Chapter%20II.pdfhttp://thesis.binus.ac.id/Asli/Bab2/2008-1-00087-IF%20Bab%202.pdfhttp://thesis.binus.ac.id/Asli/Bab2/2008-1-00087-IF%20Bab%202.pdfhttp://elib.unikom.ac.id/files/disk1/439/jbptunikompp-gdl-dwirezekim-21927-11-12uniko-i.pdfhttp://elib.unikom.ac.id/files/disk1/439/jbptunikompp-gdl-dwirezekim-21927-11-12uniko-i.pdfhttp://elib.unikom.ac.id/files/disk1/439/jbptunikompp-gdl-dwirezekim-21927-11-12uniko-i.pdfhttp://elib.unikom.ac.id/files/disk1/439/jbptunikompp-gdl-dwirezekim-21927-11-12uniko-i.pdfhttp://elib.unikom.ac.id/files/disk1/439/jbptunikompp-gdl-dwirezekim-21927-11-12uniko-i.pdfhttp://elib.unikom.ac.id/files/disk1/483/jbptunikompp-gdl-dewinurulr-24110-5-unikom_d-i.pdfhttp://elib.unikom.ac.id/files/disk1/483/jbptunikompp-gdl-dewinurulr-24110-5-unikom_d-i.pdfhttp://elib.unikom.ac.id/files/disk1/483/jbptunikompp-gdl-dewinurulr-24110-5-unikom_d-i.pdfhttp://elib.unikom.ac.id/files/disk1/483/jbptunikompp-gdl-dewinurulr-24110-5-unikom_d-i.pdfhttp://elib.unikom.ac.id/files/disk1/483/jbptunikompp-gdl-dewinurulr-24110-5-unikom_d-i.pdfhttp://elib.unikom.ac.id/files/disk1/483/jbptunikompp-gdl-dewinurulr-24110-5-unikom_d-i.pdfhttp://elib.unikom.ac.id/files/disk1/483/jbptunikompp-gdl-dewinurulr-24110-5-unikom_d-i.pdfhttp://elib.unikom.ac.id/files/disk1/439/jbptunikompp-gdl-dwirezekim-21927-11-12uniko-i.pdfhttp://elib.unikom.ac.id/files/disk1/439/jbptunikompp-gdl-dwirezekim-21927-11-12uniko-i.pdfhttp://thesis.binus.ac.id/Asli/Bab2/2008-1-00087-IF%20Bab%202.pdfhttp://repository.usu.ac.id/bitstream/123456789/42380/4/Chapter%20II.pdfhttp://repository.usu.ac.id/bitstream/123456789/42380/4/Chapter%20II.pdfhttp://library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-2-00250-if%20bab%202.pdfhttp://library.binus.ac.id/eColls/eThesisdoc/Bab2/2010-2-00250-if%20bab%202.pdf