Bab2LaporanKecerdasanBuatan
-
Upload
kusumaningtyas-aditya-putri -
Category
Documents
-
view
233 -
download
0
Transcript of Bab2LaporanKecerdasanBuatan
-
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