BAB 2 LANDASAN TEORI
2.1
Sistem Informasi Data Data adalah fakta-fakta mentah atau deskripsi dasar konsep-konsep, kejadian-
kejadian, kegiatan-kegiatan, dan transaksi yang dapat ditangkap, direkam, disimpan, dan dikelompokan. Tetapi tidak terorganisasi dalam membawa arti tertentu (Turban et al, 2003, p15). Jadi data adalah suatu bentuk yang masih mentah yang masih perlu diolah lebih lanjut untuk membentuk sebuah informasi. Informasi adalah kumpulan fakta-fakta (data) yang sudah terorganisasi dalam suatu cara sehingga dapat berarti bagi penerima (Turban et al, 2003, p15). Dengan demikian informasi memegang peranan penting dalam pengambilan keputusan. Sistem adalah kumpulan komponen atau elemen yang saling berhubungan (berinteraksi) yang ditampilkan sebagai salah satu kesatuan dan dirancang
untuk
mencapai tujuan tertentu (Britton et al, 2002, p2). Berdasarkan pengertian tersebut, maka sistem harus dirancang sedemikian rupa agar dapat bekerja dengan efisien sehingga tujuan dari terbentuknya sistem tersebut dapat dicapai.
2.2
Unified Modeling Language (UML) UML adalah sebuah bahasa yang telah menjadi standar dalam industri untuk
memvisualisasi, menspesifikasi, merancang, dan
mendokumentasi
sistem
piranti
lunak (Booch et al, 1999, p14). UML menawarkan sebuah standar untuk merancang model sebuah sistem. Seperti bahasa bahasa lainnya, UML juga memiliki notasi. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram
8
piranti lunak. Setiap bentuk memiliki makna tertentu dan UML menjelaskan bagaimana bentuk-bentuk tersebut didefinisikan. Membangun model untuk suatu sistem piranti lunak sangat bergantung pada konstruksinya atau kemudahan dalam memperbaikinya. Model yang bagus sangat penting untuk menghasilkan komunikasi yang baik antara anggota tim dan untuk menyakinkan sempurnanya arsitektur sistem yang dibangun. Jika ingin membangun suatu model dari suatu sistem yang kompleks. Tidak mungkin user dapat memahaminya secara keseluruhan. Dengan meningkatnya kompleksitas sistem, visualisasi dan pemodelan menjadi sangat penting. Sehingga UML digunakan untuk merespon hal tersebut. Melihat dari faktor sejarah dan pendorongan terbentuknya UML ini, dapat ditarik suatu kesimpulan mengenai tujuan pembuatan UML, yaitu sebagai berikut: 1. Memberikan gambaran model konseptual piranti lunak dari suatu bahasa pemprograman yang tekstual sehingga dapat dimengerti oleh orang-orang yang nonprogramer. 2. Membangun model yang tepat, tidak ambigu, dan lengkap yang dapat membantu dalam tahap-tahap dari analisis, perancangan, dan implementasi. 3. Dapat memodelkan beberapa jenis bahasa pemprograman, dan membantu memetakan kembali model tersebut ke suatu bahasa pemprograman yang lain. 4. Membantu dalam dokumentasi perancangan piranti lunak.
2.2.1
Use Case Diagram Use case diagram menggambarkan sekumpulan use case dan actor serta
hubungannya (Booch, 1999, p234). Yang ditekankan adalah “apa” yang dilakukan
9
terhadap sistem dan bukan “bagaimana”. Sebuah use case menggambarkan interaksi antara aktor dan sistem. Tabel 2.1 Notasi use case diagram Notasi
Keterangan
Actor Menspesifikasikan seperangkat peranan yang user system dapat perankan ketika berinteraksi dengan use case.
Use Case Sebuah deskripsi dari seperangkat aksi-aksi yang UseCase1
berurutan yang ditampilkan sebuah sistem.
Association Sebuah relasi struktural yang menghubungkan antara actor dengan use case
System Boundary Menggambarkan batasan dari sistem yang dibuat yang mengelilingi sejumlah use case.
10
2.2.2
Activity Diagram Activity diagram adalah representasi grafis dari aliran langkah kerja antara
kegiatan dan tindakan. Dalam Unified Modeling Language, diagram aktivitas dapat digunakan untuk menggambarkan operasional langkah demi langkah alur kerja komponen dalam sistem. Sebuah diagram aktivitas menunjukkan aliran keseluruhan kontrol. Tabel 2.2 Notasi activity diagram Notasi
Keterangan Titik awal
Titik Akhir
Activity
Pilihan untuk mengambil keputusan Fork, digunakan untukmenunjukan kegiatan yang dilakukan secara parallel atau menggabungkan dua kegiatan menjadi satu
2.3
Web Crawler Web Crawler adalah program yang menelusuri World Wide Web dengan cara
yang metodis, otomatis dan teratur. Istilah lain untuk web crawler adalah ant, automatic indexer, bots, web spiders atau web robots.
11
Proses yang dilakukan oleh Web Crawler disebut web crawling atau spidering. Banyak situs yang menggunakan web crawling untuk menyediakan informasi yang terbaru dalam situs mereka. Web Crawler digunakan untuk membuat copy dari semua halaman yang dikunjungi untuk kemudian diolah oleh mesin pencari yang akan mengindeks halaman hasil download untuk menyediakan pencarian yang cepat. Web Crawler juga dapat digunakan untuk mengotomisasi tugas-tugas pemeliharaan pada sebuah situs web, seperti memeriksa link atau validasi kode HTML. Juga dapat digunakan untuk mengumpulkan jenis informasi yang spesifik dari halaman web, seperti mendapatkan data nilai pertukaran mata uang dan sebagainya. Web Crawler adalah salah satu jenis bot atau agen perangkat lunak. Secara umum dimulai dengan list URL yang akan dikunjungi, disebut seeds. Kemudian web crawler akan mengunjungi URL tersebut satu per satu. Setiap page URL yang dikunjungi akan diidentifikasi apakah ada hyperlink di dalamnya. Jika ada maka akan ditambahkan ke dalam list URL yang akan dikunjungi. Ini disebut crawl frontier. URL yang didapat dari crawl frontier akan dikunjungi secara rekursif dengan beberapa kebijakan tertentu. Mengingat bahwa bandwith untuk melakukan crawl terbatas, maka penting untuk menjelajah web tidak hanya dengan cara yang terukur tetapi efisien. Sebuah crawler harus hati-hati memilih langkah untuk halaman berikutnya. Perilaku web crawler dibuat berdasarkan kebjikan tertentu, yaitu: •
Selection Policy Mengatur page apa saja yang akan di crawl. Ada beberapa poin penting, yaitu: 1. Focused crawling
12
Pagee yang pentiing dan pagee-page yangg berhubunggan atau mem milkiki kesaamaan akan n menjadi fokkus untuk dij ijelajahi webb crawler 2. Restrricting follow wed link Web b crawler akkan membaatasi HTML L page saja yang akann dikunjungii dan meng ghindari MM ME type (inteernet media type) yang lain. 3. URL L normalizatiion Men nghindari craawling page yang sama dari d satu sum mber lebih daari satu kali. •
Re-visit policy p Web meemiliki sifat yang y dinamiis atau berubbah-ubah dann untuk melalkukan crawling ke web tersebut t butuuh sekitar 1 minggu sam mpai sebulann. Ketika weeb crawler sudah s selesai melakukan m c crawl makaa bukan berrarti kerja dari d web craawler itu seelesai. Karena banyak b hal bisa b terjadi seperti updatte page atau delete page. Ada 2 costt yang penting dalam d hal inni, yaitu: 1. Freshness wa data yangg didapat akkurat/updatee atau Nilaii binary ini mengindikaasikan bahw tidak k. Keakurataan data dari sebuah s pagee p dalam reppository dalam waktu t dapat dideffiniskan sebaagai berikut:
2. Age mur data pagge yang disim mpan. Umurr dari Age mengindikaasikan sebaraapa lama um uah page p dalam repoository dalaam waktu t dapat dideefiniskan seebagai sebu berik kut:
13
•
Politeneess policy Sebuah web crawleer dapat menngambil datta dengan cepat dan daalam dibandingan dengan pencarian p yaang dilakukaan oleh mannusia. Dalam m satu detik dapat melakkukan beberapaa request seekaligus dann bahkan dappat mengunnduh atau men-download m d file yang besar. Dampak dari serveer yang merrespon requuest ini akann bekerja deengan keras, baahkan tidak menutup m kem mungkinan server s down.
•
Parallelization policy Web crawler melakkukan proses crawlingg secara paarallel dengan tujuan untuk u memaksimalakan doownload sam mbil meminim malkan overrhead dari prroses paralleel dan untuk menghindari m download ulang halaaman yang sama. Unttuk menghiindari downloa ad halaman yang y sama, maka m sistem m perlu melakkukan prosees paralel di mana proses tersebut melakukan m k kebijakan u untuk meneempatkan URL U yang baru ditemukan.
14
Gambar 2.1 Web Craawling Process
2 2.4
Hypertext mark kup languagge (HTML) HTM ML adalah dokumen d yaang mengatuur bahasa-baahasa yang digunakan untuk u
m merancang kebanyakan k halaman web. w HTML merupakan suatu sistem m untuk marrkingu up,
taggin ng,
sehinggga
dokum men
tersebbut
dapat
dipublikassikan
ke
web
( (Connolly,2 010,p103).
2 2.5
PHP P hypertext preprocessoor PHP digunakan sebagai bahhasa server-sside scriptinng dalam penngembangann web
y yang disisip pkan dalam dokumen HTML. H Pengggunaan PHP P memungkkinkan web dapat d dibuat dinam mis sehinggga pemelihaaraan situs web w tersebuut menjadi lebih l mudahh dan
15
efisien. PHP merupakan software open-source yang disebarkan dan dilisensikan secara gratis di-download secara bebas dari situs resminya (www.php.net). PHP adalah bahasa pemograman open source yang menempel pada HTML yang didukung oleh banyak web servers termasuk Apache HTTP Server dan Microsoft Internet Information Server, dan pilihan bahasa pemograman Linux web. Salah satu keuntungan dari PHP adalah dapat diupdate, dan nomor modul yang terupdate sudah menyediakan
dukungan
seperti
koneksi
database,
mail
dan
XML
(Connolly,2010,p1043). PHP adalah server-side scripting language yang dirancang khusus untuk web. PHP awalya berdiri untuk home page pribadi, tetapi telah dibuah sesuai dengan konvensi penamaan GNU rekursif (GNU = Gnu’s Not Unix) dan sekarang berdiri untuk PHP hypertext preprocessor (Weeling and Thomson,2001,p3).
2.6
Hypertext transfer protocol (HTTP) Hypertext transfer protocol (HTTP) adalah suatu protokol yang digunakan untuk
komunikasi atau mengirim informasi pada world wide web (WWW). HTTP juga merupakan suatu protocol request antara client dan server. Client membuat suatu HTTP request seperti web browser sedangkan server berguna untuk menyimpan dan membuat resources seperti file dan gambar pada HTML.
2.7
Open-source software(OSS) Software computer yang tersedia dalam bentuk source code serta hak cipta juga
disediakan di bawah software license yang memungkinkan pengguna untuk
16
mempelajari, mengubah, memperbaiki dan terkadang juga untuk mendistribusikan perangkat lunak.
2.8
Content Management System (CMS) Sebuah system manajemen konten (CMS) adalah sistem yang menyediakan
kumpulan prosedur yang digunakan untuk mengelola alur kerja dalam lingkungan kolaboratif. Prosedur ini dapat berupa dokumentasi manual atau komputer. Prosedur yang dirancang untuk melakukan hal berikut: •
Memungkinkan untuk sejumlah besar orang untuk berkontribusi dan berbagi data yang tersimpan
•
Mengontrol akses ke data, berdasarkan peran pengguna(yang mendefinisikan informasi
pengguna
atau
kelompok
pengguna
dapat
melihat,
mengedit,
mempublikasikan, dll) •
Bantuan dalam penyimpanan mudah dan pengambilan data
•
Mengurangi masukan duplikat berulang
•
Meningkatkan kemudahan penulisan laporan
•
Meningkatkan komunikasi antara pengguna Dalam CMS, data dapat didefinisikan sebagai apa saja:dokumen, film, gambar,
nomor telepon, data ilmiah, dan sebagainya. CMS sering digunakan untuk menyimpan,mengontrol, merevisi, semantik memperkaya, dan dokumentasi penerbitan. Melayani sebagai repositori pusat, CMS meningkatkan tingkat versi update baru untuk file yang sudah ada. Kontrol versi adalah salah satu keuntungan utama dari CMS.
17
2.9
Drupal Drupal adalah open source content management platform yang mendukung
jutaan aplikasi situs websites. Drupal dibangun, digunakan,dan didukung oleh komunitas yang aktif dan beragam orang di seluruh dunia. Dibuat dengan bahasa pemrograman PHP, Drupal dapat dipasang pada beberapa jenis database seperti MySQL, PostgreSQL, SQLite, MariaDB dan juga MsSQL. Web server yang mendukung diantaranya Apache, Nginx, IIS yang berjalan pada sistem operasi Cross-platform seperti Microsoft Windows, Mac OS X, Linux dan FreeBSD. Drupal dapat diunduh secara bebas dan dapat digunakan secara bebas, sehingga memungkinkan setiap orang baik secara individu
maupun
komunitas
untuk
mempublikasi,
mengatur,
mengelola
dan
mengorganisir berbagai jenis dari isi/konten pada website.
2.10
Memcached Dalam dunia komputasi, memcached memiliki tujuan umum memori sistem
caching terdistribusi yang awalnya dikembangkan oleh Danga Interactive untuk LiveJournal, tetapi sekarang digunakan oleh banyak situs lainnya. Hal ini sering digunakan untuk mempercepat akses database website yang dinamis dengan caching data dan objek dalam RAM untuk mengurangi jumlah akses ke sumber data eksternal (seperti database atau API) harus dibaca. Memcached berjalan pada Unix, Windows dan MacOS dan didistribusikan di bawah permissive free software license. Memcached’s APIs menyediakan tabel hash yang besar didistribusikan di beberapa mesin. Ketika tabel sudah penuh, sisipan selanjutnya menyebabkan data yang lebih tua untuk dibersihkan di Last Recently Used (LRU) order. Memcache mempunyai
18
tipe seperti layer request dan kemudian menambahkannya dalam RAM sebelum kembali mengakses penympanan data yang lambat, seperti database. Sistem ini digunakan oleh situs termasuk YouTube, Reddit, Zynga, Facebook, Orange, dan Twitter. Heroku (sekarang bagian dari Salesforce) menawarkan Couchbase dikelola memcached pengaya layanan sebagai bagian dari platform mereka sebagai layanan. Google App Engine dan Amazon Web Services juga menawarkan layanan memcached melalui API. Memcached juga didukung oleh beberapa CMS populer seperti Drupal, Joomla, dan Wordpress. Sistem ini menggunakan arsitektur client-server. Server menyimpan key-value assosiative array. Keys bisa disimpan hingga 250 byte dan nilai-nilai dapat paling banyak 1 megabyte dalam ukuran. Klien menggunakan library dimana klien menghubungi server yang, secara default, di port 11211. Setiap klien tahu semua server, server tidak berkomunikasi dengan satu sama lain. Jika klien ingin mengatur atau membaca nilai sesuai dengan kunci tertentu, libraries klien pertama menghitung hash dari kunci untuk menentukan server yang akan digunakan. Kemudian kontak server. Server akan menghitung hash kedua dari kunci untuk menentukan di mana untuk menyimpan atau membaca nilai yang sesuai. Server menjaga nilai-nilai dalam RAM, jika server kehabisan RAM, itu membuang nilai-nilai tertua atau nilai yang disimpan paling lama. Oleh karena itu, klien harus memperlakukan memcached sebagai cache sementara, mereka tidak dapat mengasumsikan bahwa data yang tersimpan di memcached ini masih ada ketika mereka membutuhkannya.
19
Gambar 2.2 Memcache Process
2.11
Algoritma Floyd-Warshall Algoritma Floyd-Warshall membandingkan semua path yang mungkin melalui
grafik antara setiap pasangan simpul. Hal ini dapat dilakukan dengan hanya
(|V| )
perbandingan dalam grafik. Hal ini luar biasa mengingat bahwa mungkin ada sampai dengan
(|V| ) edges dalam grafik, dan setiap kombinasi dari edges diuji. Ini dilakukan
dengan bertahap meningkatkan perkiraan di jalan terpendek antara dua simpul, sampai memperkirakan optimal. Pertimbangkan graf G dengan simpul V, masing-masing nomor 1 sampai N. Selanjutnya mempertimbangkan shortestPath fungsi (i, j, k) yang mengembalikan jalur sesingkat mungkin dari i ke j menggunakan titik hanya dari himpunan, {1,2 ... , k} sebagai titik tengah di sepanjang jalan. Sekarang, mengingat fungsi ini, tujuan kami
20
a adalah untu uk menemukkan jalan terrpendek darri i untuk seetiap simpull j menggunnakan simpul hany ya 1 sampai k + 1. Ada dua kandidaat untuk maasing-masingg jalur: jalurr terpendek baik b benar hanya h m menggunaka an simpul dalam d himpuunan {, 1 ...., k}, atau jika ada bebberapa jalur yang b bergerak darri i ke k + 1, 1 kemudian dari k + 1 untuk u j yangg lebih baik. Kita tahu bahwa b j jalan terbaik k dari i ke j yang hanya menggunakkan simpul 1 sampai k didefinisikan d n oleh shortestPath h (i, j, k), dann jelas bahw wa jika ada jaalan yang lebbih baik dari i ke k + 1 untuk u j maka panj j, njang jalan inni akan mennjadi Rangkaian dari jallur terpendek dari i ke k + 1 ( (menggunak kan simpul pada p {1, ...,, k}) dan jaalur terpenddek dari k + 1 untuk j (juga m menggunaka an simpul dii {1 , ..., k}). Jika w (i, j) adalaah berat darii tepi antara simpul i dann j, kita dapaat mendefiniisikan shortestPath h (i, j, k) dalaam hal rumuus rekursif berikut: kasuss dasar shorttestPath (i, j, 0) = w (i, j) dan kasus rekurssif
Form mula ini adallah jantung dari d algoritm ma Floyd-Waarshall. Algooritma ini beekerja d dengan shorrtestPath mennghitung pertama (i, j, k) k untuk sem mua (i, j) passangan untukk k, = 1 maka k = 2, dll Prosees ini berlannjut sampai k = n, dan kami k telah menemukan m jalan t terpendek un ntuk semua (i, ( j) pasangaan menggunnakan simpull menengah. Untu uk menemukkan semua
dari shorteestPath (i, j, k) (untuk seemua i dan j) dari
o orang-orang g dari shortestPath (i, j, k-1) 2
m membutuhka an operasi. Karena K kita mulai m
d dengan shorrtestPath (i,, j, 0) = eddgeCost (i, j) dan mennghitung uruutan shortesstPath m matriks n (ii, j, 1), shorrtestPath (i, j, 2), ..., shhortestPath (i, j, n), jum mlah operasi yang
21
digunakan adalah n . 2n = 2n . Oleh karena itu, kompleksitas dari algoritma ini adalah (n ).