• Tidak ada hasil yang ditemukan

Penerapan Document Oriented Database (NOSQL) Dalam Pembuatan E-LIBRARY Universitas Pendidikan Indonesia Menggunakan Mongodb Dan PHP

N/A
N/A
Protected

Academic year: 2017

Membagikan "Penerapan Document Oriented Database (NOSQL) Dalam Pembuatan E-LIBRARY Universitas Pendidikan Indonesia Menggunakan Mongodb Dan PHP"

Copied!
132
0
0

Teks penuh

(1)

PENERAPAN DOCUMENT ORIENTED DATABASE (NOSQL)

DALAM PEMBUATAN E-LIBRARY UNIVERSITAS

PENDIDIKAN INDONESIA MENGGUNAKAN MONGODB

DAN PHP

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

M. IKHSAN HALIM F

10110126

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(2)

iii

dengan judul “Penerapan Dokumen Oriented Database (NoSQL) Terhadap Pembuatan E-library Universitas Pendidikan Indonesia Menggunakan MongoDB dan PHP”sebagai salah satu syarat untuk menyelesaikan program studi Strata 1 Jurusan Teknik Informatika Jurusan Teknik dan Ilmu Komputer pada Universitas Komputer Indonesia.

Penyusunan tugas akhir ini tidak dapat terwujud bila tanpa mendapat dukungan dan masukan serta bimbingan dari beberapa pihak. Oleh karena itu, penulis ingin menyampaikan ucapan terimakasih terutama kepada :

1. Allah S.W.T atas karunia dan rahmat-Nya sehingga penulis dapat menyelesaikan tugas akhir ini.

2. Kedua orang tua penulis yang sudah banyak memberikan dukungan, baik itu dukungan moril maupun materil, semangat, motivasi dan kasih sayang kepada penulis.

3. Ibu Dian Dharmayanti, S.T.,M.Kom. selaku Dosen Pembimbing yang telah banyak memberikan bimbingan, dukungan serta memberikan pengarahan selama proses penyusunan tugas akhir ini sehingga tugas akhir ini dapat terwujud dengan baik.

4. Bapak Adam Mukharil Bachtiar, S.Kom., M.T selaku reviewer yang telah banyak memberikan dan arahan selama penyusunan tugas akhir ini.

5. Ibu Rani Susanto, S.kom.,M.Kom. selaku reviewer yang telah banyak memberikan dan arahan selama penyusunan tugas akhir ini.

6. Bapak Ir.Taryana Suryana, M.Kom., selaku dosen wali penulis.

(3)

iv

8. Saudara kandung penulis yang telah banyak memberikan dukungan, motivasi, saran dan kasih sayang kepada penulis.

9. Muhammad Dani Rusdan selaku sahabat penulis yang telah banyak membantu dalam pembuatan aplikasi yang dibangun.

10. Ekky Patria Kencana yang telah banyak memberikan masukan dan arahan yang sangat berarti bagi penulis.

11. Gilar Purwita Subagja selaku sahabat yang telah banyak membantu penulis dalam penyusunan tugas akhir ini.

12. Teman seperjuangan Kelas IF-3 yang telah memberikan motivasi dan dukungan kepada penulis.

13. Semua pihak yang terlibat yang ikut membantu dalam penyusunan tugas akhir ini yang tidak bisa penulis sebutkan satu per satu.

Penyusunan tugas akhir ini jauh dari kata sempurna dan masih banyak kekurangan, oleh karena itu kritik dan saran yang membangun sangat diharapkan untuk pengembangan kea rah yang lebih baik. Penulis mengharapkan tugas akhir ini dapat bermanfaat bagi semua orang, bagi penulis khususnya serta bagi pembaca umumnya.

Bandung, 27 Februari 2016

(4)

v

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... xi

DAFTAR SIMBOL ... xiii

DAFTAR LAMPIRAN ... xvi

BAB 1 PENDAHULUAN ... 1

1.7 Metode Pembangunan Perangkat Lunak ... 4

1.8 Sistematika penulisan ... 5

BAB 2 TINJAUAN PUSTAKA ... 7

2.1 Universitas Pendidikan Indonesia ... 7

2.1.1 Sejarah Universitas Pendidikan Indonesia ... 7

2.1.2 Perpustakaan Universitas Pendidikan Indonesia ... 10

2.2 Landasan Teori ... 11

(5)

vi

BAB 3 ANALISIS DAN PERANCANGAN ... 27

3.1 Deskripsi Umum ... 27

3.1.1 Analisis Masalah ... 27

3.1.2 Analisis Database yang Sedang Berjalan ... 27

3.1.3 Rutinitas Table ... 30

3.1.4 Analisis Query ... 33

3.1.5 Analisis Kebutuhan Data ... 36

3.1.6 Konversi Database MySQL ke MongoDB ... 37

3.2 Analisis Kebutuhan Non-Fungsional ... 40

3.2.1 Analisis Kebutuhan Perangkat Keras ... 41

3.2.2 Analisis Kebutuhan Perangkat Lunak ... 41

3.2.3 Analisis Pengguna ... 41

3.3 Analisis Kebutuhan Fungsional ... 42

3.3.1 Use Case Diagram... 42

3.3.2 Use Case Skenario ... 42

3.3.3 Activity Diagram ... 52

3.3.4 Sequence Diagram ... 74

3.3.5 Class Diagram ... 85

3.4 Perancangan Sistem ... 86

3.4.1 Perancangan Antarmuka ... 86

3.4.2 Jaringan Semantik ... 102

BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 105

4.1 Implementasi Sistem ... 105

4.1.1 Implementasi Perangkat Keras ... 105

4.1.2 Implementasi Perangkat Lunak ... 105

4.1.3 Implementasi Basis Data... 106

4.1.4 Implementasi Database MySQL ... 106

4.1.5 Implementasi DBMS MongoDB ... 106

4.1.6 Impementasi Antarmuka ... 107

4.1.7 Implementasi Penggunaan Query MoggoDB ... 108

(6)

vii

(7)

121

DAFTAR PUSTAKA

[1] Firdausillah, Fahri, Hidayat, Erwin Yudi, Dewi, Ika Novita; “NOSQL:

latar belakang, konsep, dan kritik”. 2012. Jurnal Ilmiah, Seminar Nasional

Teknologi Informasi & Komunikasi Terapan 2012 (Semantik 2012) Semarang, 23 Juni 2002.

[2] Lewrence, R; “Intergration and Virtualization of Relational SQL and NoSQL System Including MySQL MongoDB” Las Vegas 10-13 Maret 2014

[3] Riojackers, John; “Bridging SQL and NoSQL”. Master theses 2012

[4] Tauro, Clerence J.M,;S.,Aravindh; B, Shreeharsha A, “Comparative Study of the new Generation, Agile, Scalability, High Performance NoSQL

Databases” 2012. International Jurnal of Computer Aplication (0975-888)

volume 48-no20, June 2012.

[5] Ernawati, Heni; Penerapan Document Oriented Database Dalam Pembuatan Simulasi Sistem Dapodik Dengan MongoDB dan Php. Jurnal 2012

[6] Tiwari, Shashank; Profesional NoSQL” Canada 2011

(8)
(9)

1 BAB 1

PENDAHULUAN

1.1 Latar Belakang

Universitas pendidikan Indonesia Adalah sebuah perguruan tinggi negeri yang didirikan untuk meyiapkan guru yang bermutu dan bertaraf universitas untuk meningkatkan kualitas pendidikan yang akan merintis terwujudnya masyarakat yang sejahtera. Universitas Pendidikan Indonesia memiliki e-library yang cukup besar untuk menunjang kegiatan belajar mengajar.

Universitas pendidikan Indonesia saat ini masih menggunakan sistem basis data relasional, kendala yang dialami oleh Universitas Pendidikan Indonesia adalah dalam skalabilitas yang berimbas pada performa, yakni ukuran data yang semakin besar dari waktu ke waktu sedangkan konsistensi dan kecepatan tetap diperlukan untuk pengolahan data. Berdasarkan studi literarur terhadap jurnal ilmiah NoSQL: Latar belakang, Konsep dan Kritik yang disusun oleh Fahri Firdausillah, dkk [1] ditemukan fakta bahwa kompleksitas data yang saling berelasi antara banyaknya entitas dapat mengurangi performa pengolahan. Sedangkan untuk mendapatkan peningkatan performa basis data relasional sangat terbatas karena cara yang dapat dilakukan adalah dengan cara upgrade komponen perangkat keras dalam nodeserver.

Sebagai contoh pada Universitas Pendidikan Indonesia kasus yang ditemukan adalah kesulitan dalam pemeliharaan basis data dan perihal kecepatan dalam pengolahan data, hal ini dikarenakan statisnya basis data yang dimiliki, sehingga secara spesifik hal ini berimbas pada pengolahan query yang memerlukan waktu lebih lama dalam pengolahan data.

Berdasarkan studi literarur yang dilakukan [1] juga terhadap Intergration and Virtualization of Relational SQL and NoSQL System Including MySQL

(10)

fleksibilitas terhadap kecepatan pengolahan data, besarnya ukuran data dan jenis data yang digunakan dengan tetap menggunakan aturan konsistensi yang terdapat pada basis data relasional.

Berdasarkan uraian yang telah dipaparkan sebelumnya, maka dipilih topik penelitian “Penerapan document oriented database NoSQL dalam pembuatan e-library Universitas Pendidikan Indonesia menggunakan MongoDB dan Php”.

1.2 Rumusan Masalah

Berdasarkan latar belakang yang dipaparkan sebelumnya, maka rumusan masalah yang ditemukan adalah bagaimana cara menerapkan design basis data yang dinamis sehingga pemeliharaan dan pengolahan data yang dilakukan akan mudah dan cepat dengan menggunakan non-relational NoSQL MongoDB pada e-library Universitas Pendidikan Indonesia.

1.3 Maksud Dan Tujuan

Adapun maksud dari penelitian ini adalah untuk menerapkan pemodelan basis data non-relational NoSQL MongoDB sebagai sistem managemen basis data pada e-library Universitas Pendidikan Indonesia. Sedangkan tujuan dalam penelitian ini adalah :

1. Mengatasi kesulitan yang dialami perpustakaan Universitas Pendidikan Indonesia dalam pemeliharaan basis data dengan menggunakan pemodelan basis data NoSQL MongoDB.

2. Meminimalkan waktu yang diperlukan dalam pengolahan data yang dimiliki oleh perpustakaan Universitas Pendidikan Indonesia.

1.4 Batasan Masalah

Dalam penelitian ini, perlu diberikan beberapa batasan masalah agar mempermudah saat melakukan perancangan. Adalah sebagai berikut :

(11)

3

2. Pemodelan non-relasional NoSQL yang akan diterapkan dilatarbelakangi oleh sudut pandang pengaksesan query pembacaan yang digunakan oleh sistem

3. Sampel query yang akan digunakan dalam penelitian ini meliputi query pengolahan data katalog dan anggota.

4. Parameter pengujian yang dilakukan yakni hanya terhadap proses transaksi pengolahan data khususnya pembacaan data.

5. Analisis yang digunakan berdasarkan OOP dan model fungsional menggunakan UML

1.5 Metode Penelitian

Metodologi penelitian R&D (Research and Development)adalah suatu proses atau langkah-langkah untuk mengembangkan suatu produk baru, atau menyempurnakan produk yang telah ada, yang dapat dipertanggungjawabkan. Metodelogi penelitian ini menggunakan tiga metode yaitu : (Sujadi, 2002)

1.5.1 Metode Penelitian

Metode ini dilakukan guna menambah pengetahuan yang diperlukan untuk mencapai tujuan, yaitu Studi Pustaka.

1. Studi Literatur

Metode penelitian yang dilakukan dengan cara mencari dan mempelajari buku, artikel, jurnal, skripsi, maupun sumber-sumber tertulis lainya.

2. Analisis Database yang digunakan

Melakukan analisis terhadap database yang sudah dipakai oleh perpustakaan Universitas Pendidikan Indonesia pada website otomasi perpustakaan universitas pendidikan indonesia

3. Wawancara

(12)

1.6 Metode Pembangunan Perangkat Lunak

Pembangunan aplikasi ini menggunakan metode waterfall untuk pengembangan perangkat lunaknya, proses – proses tersebut yaitu (Puntambekar, 2007) :

1. Requirment Analysis

ini adalah fase di mana kebutuhan dikumpulkan dengan berfokus pada perangkat lunak. Para analis harus memahami domain informasi, fungsi dan antarmuka. kebutuhan sistem dan perangkat lunak diidentifikasi, didokumentasikan dan ditinjau oleh pelanggan. Setelah menyelesaikan kebutuhan, kemudian didokumentasikan dengan baik

2. Design

Kebutuhan diidentifikasi di analisis kebutuhan kemudian dirubah menjadi model rancangan/desain. Desain harus selesai sebelum tahap coding dimulai.

3. Coding

Coding dapat dilakukan dengan menerjemahkan desain ke dalam bentuk yang dapat dibaca mesin. Penggunaan bahasa pemograman yang tepat adalah aktivitas terpenting dalam fase ini.

4. Testing

Pengujian adalah kegiatan di mana kesalahan dalam program diidentifikasi dan dihapus. Selama pengujian itu perlu untuk menguji masukan apakah menghasilkan keluaran yang benar atau tidak. Pengujian lengkap diperlukan untuk mengungkap semua kesalahan yang mungkin.

5. Maintenance

(13)

5

Gambar 1.1 Waterfall Model

(Puntambekar, 2007)

1.7 Sistematika penulisan

Sistematika penulisan skripsi ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan skripsi ini adalah sebagai berikut :

BAB 1 PENDAHULUAN

Menguraikan tentang latar belakang permasalahan, mencoba merumuskan inti permasalahan yang dihadapi, menentukan maksud dan tujuan penelitian, yang kemudian diikuti dengan pembatasan masalah, metodologi penelitian, metode pambangunan perangkat lunak serta sistematika penulisan.

BAB 2 TINJAUAN PUSTAKA

Membahas tempat penelitian dan berbagai konsep dasar serta teori-teori yang berkaitan dengan topik penelitian yang dilakukan dan hal-hal yang berguna dalam proses analisis permasalahan serta tinjauan terhadap penelitian-penelitian serupa yang telah pernah dilakukan sebelumnya. BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini terbagi menjadi dua bagian yaitu analisis dan perancangan sistem. Bagian analisis sistem yaitu deskripsi masalah, analisis kasus, analisis masalah, analisis kebutuhan, selain itu terdapat perancangan sistem yang

Requirement

(14)

terbagi menjadi perancangan komponen, perancangan berorientasi objek, dan perancangan antarmuka untuk aplikasi yang akan dibangun sesuai dengan hasil analisis yang telah dibuat.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Menjelaskan implementasi dari hasil analisis dan perancangan yang telah dibuat ke dalam bentuk aplikasi pemograman, kemudian dilakukan pengujian terhadap aplikasi yang telah dibangun untuk memastikan bahwa aplikasi dapat berjalan secara efektif sesuai yang diinginkan.

BAB 5 KESIMPULAN DAN SARAN

(15)

7 BAB 2

TINJAUAN PUSTAKA

2.1 Universitas Pendidikan Indonesia

2.1.1 Sejarah Universitas Pendidikan Indonesia

Universitas Pendidikan Indonesia didirikan pada tanggal 20 Oktober 1954 di Bandung, diresmikan oleh mentri pendidikan pengajaran Mr. Muhammad Yamin. Semula bernama Perguruan Tinggi Pendidikan Guru (PTPG), didirikan dengan latar belakang sejarah pertumbuhan bangsa yang menyadari bahwa upaya mendidik dan mencerdaskan bangsa merupakan bagian penting dalam mengisi kemerdekaan. Beberapa alas an didirikannya PTPG antara lain :

Pertama, setelah Indonesia mencapai kemerdekaannya, bangsa Indonesia sangat haus akan pendidikan. Kedua, perlunya disiapkan guru yang bermutu dan bertaraf universitas untuk meningkatkan kualitas pendidikan yang akan merintis terwujudnya masyarakan yang sejahtera.

Gedung Utama UPI bermula dari puing sebuah villa yang bernama villa isola, merupakan sebuah gedung bekas peninggalan masa sebelum Perang Dunia II. (Pada masa perjuangan melawan penjajah gedung ini pernah dijadikan markas para pejuang kemerdekaan). Puing puing itu dibangun kembali dan kemudian menjelma menjadi sebuah gedung bernama Bumi Siliwangi yang megah dengan gaya arsitekturnya yang asli.

Bumi Siliwangi menjadi tempat pertama kali bagi Pemuda mendapatkan gemblengan pendidikan guru dan tingkat universitas. Sebagai realisasi keputusan Mentri Pendidikan Pengajaran dan Kebudayaan Republik Indonesia (Nomor 35742 tanggal 1 September 1954 tentang pendirian PTPG/Perguruan Tinggi Pendidikan Guru)

PTPG dipimpin oleh seorang dekan yang membawahi beberapa jurusan dan atau balai yakni :

- Ilmu Pendidikan

(16)

- Bahasa dan Kesusastaan Indonesia - Bahasa dan Kesusastraaan Inggris - Sejarah Budaya

- Pasti Alam

- Ekonomi dan Hukum Negara - Balai Penelitian Pendidikan

Sejalan dengan keputusan Mentri Pendidikan, Pengajaran dan Kebudayaan No. 40718/S pada saat itu, yang menyatakan bahwa PTPG dapat berdiri menjadi perguruan tinggi dalam universitas, maka seiring dengan berdirinya Universitas Padjajaran (UNPAD), maka pada tanggal 25 November 1958 PTPG diintegrasikan menjadi fakultas utama Universitas Padjajaran dengan nama Fakultas Keguruan dan Ilmu Pendidikan (FKIP)

Untuk memantapkan sistem pengadaan tenaga guru dan tenaga kependidikan, berbagai kursus yang ada pada saat itu, yaitu pendidikan guru BI dan BII. Diintegrasikan kedalam FKIP melalui Surat Keputusan Mentri Pendidikan Dan Kebudayaan No. 6 tahun 1961. Selanjutnya FKIP Berkembang menjadi FKIP A dan FKIP B. pada saat yang sama, berdiri pula Institut Pendidikan Guru (IPG), yang mengakibatkan adanya dualisme dalam Lembaga Pendidikan Guru. Untuk menghilangkan dualisme tersebut, pada tanggal 1 Mei 1963, yang melebur FKIP dan IPG menjadi Institut Keguruan dan Ilmu Pendidikan (IKIP) sebagai satu satunya lembaga pendidikan guru tingkat Universitas. FKIP A, FKIP B dan IPG yang ada di Bandung akhirnya menjadi Institut Keguruan dan Ilmu Pendidikan Bandung (IKIP Bandung).

(17)

9

Peranan IKIP Bandung di Tingkat Nasional semakin Menonjol, setelah pemerintah menetapkan bahwa Ikip Bandung menjadi IKIP Pembina yang diserahi tugas membina IKIP di luar pulau Jawa, yaitu IKIP cabang Banda Aceh, Palembang, Palangkaraya dan Banjarmasin. Sesuai dengan kebijaksanaan Departemen Pendidikan dan Kebudayaan pada awal tahun 1970an secara bertahap ekstension tersebut ditutup dan cabang cabang IKIP di daerah menjadi Fakultas di lingkungan daerah masing-masing.

Untuk meningkatkan mutu pengajar, pada tahun 1970 IKIP Bandung membuka Program Pos Doktoral melalui pembentukan Lembaga Pendidikan Pos Doktoral (LPPD) PPS yang mengelola Program S2 dan S3. Pada tahun 1976 LPPD berubah menjadi Fakultas Sekolah Paska Sarjana dan pada tahun 1991 menjadi Program Paska Sarjana.

Penataan Program Pendidikan tinggin yang dilakukan oleh pemerintah dengan menerapkan multiprogram dan multistrata, ditindaklanjuti IKIP Bandung dengan membuka Program Diploma Kependidikan, untuk meningkatkan kualifikasi guru SD menjadi lulousan DII, tahun ajaran 1990/1991. Diselenggarakannya Diploma DII Pendidikan Guru Sekolah Dasar. Selain diselenggarakannya di Kampus Bumi Siliwangi Program ini juga diselenggarakan di Unit Pelaksana Program (UUP) pada beberapa sekolah eks SPG yang diintegrasikan ke IKIP. Guna meningkatkan kualifikasi Guru Taman Kanak-kanak atau Play Group pada tahun 1996/1997 IKIP Bandung membuka Program DII PTGK.

Seiring dengan kebijakan Pemerinatah dibidang pendidikan tinggi yang memberikan perluasan mandate bagi Lembaga Pendidikan Tenaga Kependidikan (LPTK) yang harus memenuhi tuntutan perubahan serta mengantisipasi segala kemungkinan dimasa yang akan datang, IKIP Bandung diubah menjadi Universitas Pendidikan Indonesia melalui keputusan Presiden RI No.124 tahun 1999 tertanggal 7 Oktober 1999.

(18)

memberi keyakinan kepada Pemerintah bahwa UPI telah dapat berdiri sendiri dan dapat diberikan tanggung jawab yang lebih besar. Dengan kepercayaan ini, melalui surat Pemerintah No. 6 tahun 2004 UPI diberi Otonomi dan menjadi Perguruan Tinggi Badan Hukum Milik Negara (PT BHMN)

Pengembangan dan peningkatan UPI tidak saja berorientasi pada bidang akademik, tetapi juga dalam berbagai bidang termasuk pemantapan konsep dan rencana pembangunannya. Melalui bantuan Islamic Development Bank (IDB) telah merancang dan menata pembangunan gedung kampus yang megah, modern dan representative sebagai penunjang kegiatan belajar mengajar bermodalkan kemampuan yang dimiliki. Universitas Pendidikan Indonesia bertekad menjadikan lembaga pendidikan ini terdepan dan menjadi Universitas Pelopor dan Unggul.

2.1.2 Perpustakaan Universitas Pendidikan Indonesia

Perpustakaan UPI lahir pada tanggal 20 Oktober 1954 dibawah naungan Perguruan Tinggi Pendidikan Guru (PTPG), di hotel Homann Jl. Asia Afrika Bandung tahun 1954. Perpustakaan pada tahun 1954 memiliki koleksi berjumlah 8000 eksemplar untuk melayani kebutuhan 214 mahasiswa yang tergabung kedalam 7 jurusan. Lokasi yang berada dihotel dirasa kurang sesuai untuk kegiatan akademik, sehingga lokasi dipindahkan ke PPI Lembang, dengan luas ruangan 195 m2. Pada waktu itu perpustakaan memiliki memiliki koleksi berjumlah sekitar 25000 judul buku.

Tahun 1963 perpustakaan dipindahkan ke gedung baru II (gedung FPBS) yang luasnya 480 m2. Pada tahun 1969 perpustakaan dipindahkan lagi ke gedung garnadi dengan menempati lahan seluas 750 m2.

(19)

11

rancangannya akan mampu menampung koleksi total sejumlah 1.000.000 eksemplar, serta menerima pengunjung sejumlah 5000 orang setiap harinya

.

2.2 Landasan Teori

2.2.1 Database

Database adalah merupakan kumpulan informasi bermanfaat yang diorganisasikan kedalam sebuah aturan yang khusus. Informasi ini adalah data yang telah diorganisasikan ke dalam bentuk yang sesuai dengan kebutuhan seseorang. [3]

Menurut Ramez Elmasri [4] mendefinisikan basis data lebih dibatasi pada arti implicit yang khusus, yaitu:

- Basis Data merupakan penyajian suatu aspek dari dunia nyata (real world) - Basis data merupakan kumpulan data dari berbagai sumber yang secara

logika mempunyai arti implisit, sehingga data yang terkumpul secara acak dan tanpa mempunyai arti tidak dapat disebut basis data.

- Basis data perlu dirancang, dibangun dan data dikumpulkan untuk suatu tujuan. Basis data dapat digunakan oleh beberapa user dan beberapa aplikasi yang sesuai dengan kepentingan user.

Dari beberapa definisi tersebut, dapat dikatakan bahwa basis data mempunyai berbagai sumber data dalam pengumpulan data, bervarisi derajat interaksi kejadian dari dunia nyata, dirancang dan dibangun agar dapat digunakan oleh beberapa user untuk berbagai kepentingan [5]

(20)

2.2.2 NoSQL

NoSQL adalah sistem managemen basis data non-relational, pengambilan informasi yang lebih cepat dari database dan portable. NoSQL pada dasarnya berasal dari sistem database RDB. Database ini biasanya berinteraksi dengan sistem operasi UNIX. Database NoSQL adalah mereka yang non-relational, open source, didiatribusikan di dunia serta memiliki kinerja tinggi dengan cara linear yang terukur. Database non-relational tidak mengatur data dalam tabel terkait. Database NoSQL adalah open source, sehingga setiap orang dapat melihat source code secara bebas, memperbaharuinya sesuai dengan kebutuhan dan kompilasi.

NoSQL dikembangkan pertama kali pada tahun 1998 oleh Carlo Strozi, kemudian pada tahun 2009, Eric Evans memperkenalkan kembali NoSQL.

Konsep NoSQL 2.2.2.1

Menurut Eric Brewer [6], NoSQL didasarkan pada teori Consistency, Availability, Partition-Tolerance (CAP). Consistency Availability (CA) berseberangan dengan Partition-Tolerance dan berhubungan dengan replikasi.

Consistency Partition- Tolerance (CP) berseberangan dengan Availability dalam penyimpanan data. Availability Partition-Tolerance (AP) dimana system mencapai kondisi eventual consistency melalui replikasi dan verifikasi yang konsisten dalam node yang telah terbagi – bagi. Dalam basis data NoSQL, penerapan konsep tersebut diterjemahkan dalam empat konsep dasar, yaitu Non-Relational, MapReduce, Schema Free, dan Horizontal Scaling.

1) Non-Relational

Konsep Non-Relational dalam basis data NoSQL meliputi hirarki, graf, dan basis data berorientasi obyek yang sudah terlebih dahulu ada sejak tahun 1960 sebelum akhirnya basis data relasional muncul pada tahun 1970 [7]. Penggunaan basis data non-relational kembali merebak seiring dengan bertambahnya aplikasi berbasis web yang memerlukan banyak penyimpanan data. Meskipun memiliki kelemahan pada konsistensi dan redundansi data, namun basis data non-relasional dapat menyelesaikan beberapa permasalahan terkait dengan avaibility, dan

(21)

13

pada sisi aplikasi, sedangkan basis data nonrelational hanya bertugas memanipulasi penyimpanan saja.

2) MapReduce

MapReduce merupakan model pemrograman yang diadaptasi dari pemrograman fungsional yang diimplementasikan untuk mengolah dataset yang sangat besar. Tujuan dari MapReduce adalah merancang suatu abstraksi baru yang memungkinkan pengguna untuk membuat antarmuka pemrograman sederhana dan menyembunyikan detail yang rumit dari pararelisasi, fault-tolerance, distribusi data, dan load balancing dalam pustaka pemrogramannya. Hasilnya menunjukkan bahwa penerapan MapReduce dapat menyederhanakan antarmuka pemrograman yang dapat mendukung paralelisasi dan distribusi komputasi skala besar secara otomatis [8]

Pemrograman dengan MapReduce telah sukses diterapkan penggunaannya oleh Google untuk berbagai tujuan, salah satunya adalah Google indexing. Dalam kinerjanya, Google menerapakan ribuan mesin yang bekerja pada ratusan

terabytes data dengan lokasi server yang tersebar di beberapa lokasi. Jenis arsitektur seperti ini dapat mengurangi waktu kinerja yang diperlukan. Pembangunan arsitektur Google dengan menggunakan MapReduce memerlukan waktu hanya dalam beberapa jam saja dibandingkan dengan tidak menerapkan

MapReduce yang memerlukan waktu selama berbulan bulan. Penggunaan library

dalam MapReduce memiliki beberapa keuntungan seperti load balancing, optimasi perangkat penyimpanan yang nantinya akan meningkatkan keefisiensian sistem dan kemudahan dalam penggunaannya. Mudahnya, MapReduce bekerja dengan membagi proses menjadi dua fase, yaitu tahap map dan tahap reduce. Seorang programmer dapat memanfaatkan dua fungsi ini bersama fungsi key-value pairs sebagai input dan output untuk mencapai semua fase [9]

3) Schema-free

(22)

tabel, kolom, primary dan foreign key, join, dan relasi [10]. Dalam pengembangan basis data relasional, developer/database administrator harus berhati-hati dalam menentukan bagaimana tabel saling berelasi dan field yang ada didalam setiap tabel. Karena perubahan skema dalam RDBMS dapat menimbulkan masalah ketergantungan dan integritas, seperti timbulnya kolom null dan relasi kunci yang tidak cocok. Hal ini bukan masalah dalam NoSQL karena adanya penerapan

schemafree. Setiap dokumen bertanggung jawab terhadap isinya sendiri, maksutnya null value dapat dihilangkan dalam beberapa baris, dan field baru dapat didefinisikan dalam setiap dokumen secara indpenden [10]. Salah satu produk basis data NoSQL yang menerapkan fitur schema-free adalah Cassandra. Dalam Cassandra, pengembang hanya perlu mendefinisikan keyspace sebagai pertimbangan container dan contains column families. Keyspace hanya digunakan sebagai logical namespace yang dapat dimasukkan dalam configurations dan hold column families. Column families artinya sebuah nama untuk relasi data dan hirarki kolom (memungkinkan penyisipin tabel dalam kolom). Disamping itu, kita hanya perlu menambahkan data dalam tabel, menggunakan kolom, tanpa menentukan kolomnya terlebih dahulu. Dalam Cassandra kita hanya perlu mendefinisikan tabel namespace dan hirarki kolom didalamnya, memodelkan dan mendesain tabel join adalah masalah dalam basis data relasional bukan NoSQL.

Manfaat lain dalam penggunaan schema-free adalah penghematan dalam media penyimpanan. Dalam basis data relasional, setiap field yang ada dalam tabel harus mempunyai nilai, walaupun nilai itu null. Model data schema free

artinya setiap baris memungkinkan memiliki nilai sebanyak yang telah didefinisikan dalam tiap fields, dan tidak perlu menggunakan nilai yang memang tidak diperlukan. Kelemahan dalam penggunaan schema free adalah memunculkan lemahnya pendefinisian struktur yang menungkinkan terjadinya penggunaan basis data yang tidak konsisten. Jika tujuan pembangunan basis data didasarkan pada konsistenti yang ketat, seperti wiki, document management systems, discussion forums, blogs, dan support management systems, basis data relasional masih merupakan pilihan yang tepat [10].

(23)

15

Horizontal scaling memungkinkan basis data dijalankan pada beberapa server untuk meningkatkan kemampuan perangkat penyimpanan dan meningkatkan efisiensi waktu. Hal ini memerlukan kemampuan dinamis pemartisian data dalam serangkaian node (seperti storage hosts) dalam suatu cluster server. Kemampuan untuk meningkatkan kemampuan dengan menambahkan beberapa komputer sangatlah penting dilakukan untuk data yang jumlahnya banyak, karena vertical scaling dilakukan dengan meningkatkan kemampuan spesifikasi single server

(misalnya penambahan prosesor, memori, dan peralatan penyimpanan) terbatas untuk dilakukan dan lebih mahal [11].

Horizontal scaling berarti memungkinkan dilakukannya penambahan server dalam satu jaringan dan user tidak sadar jika ada hardware yang diganti dari sisi server (transparent). Ada beberapa teknik partisi yang digunakan dalam basis data untuk melakukan horizontal scaling, salah satunya adalah consistent hashing yang digunakan dalam Cassandra dan Amazon Dynamo Kunci dari menerapkan

consistent hashing adalah membuat suatu lingkaran atau “ring”. Setiap node

dalam sistem yang ditandai dengan random value dalam suatu space yang merepresentasikan posisi dari ring. Suatu kunci item ditandai dengan sebuah node

untuk memperoleh posisinya pada ring, kemudian berpindah menuju node

selanjutya yang sudah ditandai. Node memerankan peranan penting sebagai koordinator untuk kunci yang akan digunakan dalam route request. Kemudian, setiap node menjadi tanggung jawab dari daerah yang ada di ring diantara noder

dan node dalam ring sebelumnya. Pejelasan detail mengenal Dynamo dijelaskan oleh DeCandia dkk [11].

Model Data NoSQL 2.2.2.2

NoSQL merupakan basis data non relasional dengan schema-free yang memunculkan pertanyaan bagaimana NoSQL dapat melakukan partisi untuk data yang berukuran besar, melakukan query, replikasi data, dan mendukung adanya konsistensi. Bagian ini berisi penjelasan empat model data NoSQL, yaitu column-oriented, document-column-oriented, object-oriented dan graph-oriented [6].

(24)

Penerepan column-oriented terdapat dalam Casssandra. Cassandra

menggunakan distribusi multidimensional map indexed dengan sebuah key. Baris kunci yang sering digunakan dalam Cassandra adalah string dengan panjang 16-36 bytes. Setiap kolom digabungkan menjadi sebuah coloumn families. Wei Kang [6] menerapkan beberapa konsep dalam penerapan column-oriented. Suatu kolom unit atomic dari informasi didukung oleh Cassandra yang diekspresikan dengan nama value. Super-column merupakan gabungan dari kolom dengan nama yang umum dan digunakan untuk pemodelan tipe data yang komplek. Baris secara unik mengidentifikasikan data yang terdapat dalam column dan super-column. Dalam

Cassandra baris dapat dikenali dengan sebuah kunci. Column Family merupakan bagian dari suatu unit abstraksi yang berisi baris kunci yang tergabung dalam

column dan super column yang memiliki struktur data yang tinggi. Keyspace

merupakan level teritnggi dari unit informasi yang terdapat dalam Cassandra. Kumpulan column families sebenarnya merupakan subordinat dari satu keyspace. Pada intinya model data column-oriented memungkinkan suatu aplikasi secara bebas untuk mengembangkan bagaimana informasi disusun berdasarkan suatu desain schema.

2) Document-Oriented

Database berorientasi dokumen adalah sebuah program komputer yang dirancang untuk menyimpan, mengambil, dan mengelola informasi berorientasi dokumen, juga dikenal sebagai data semi-terstruktur. Database berorientasi dokumen adalah salah satu kategori utama database NoSQL dan popularitas istilah "database dokumen-berorientasi" (atau "toko dokumen") telah berkembang dengan penggunaan istilah NoSQL itu sendiri. Berbeda dengan database relasional dan gagasan mereka "Tabel" dan "Hubungan" (antara Tabel), sistem ini dirancang di sekitar gagasan abstrak dari "Dokumen".

Contoh penerapan model data document-oriented terdapat dalam CouchDB

yang dibangun oleh IBMTM. Basis data yang memiliki model data document-oriented sangat bermanfaat untuk suatu domain yang bentuk masukannya dokumen yang tidak terstruktur seperti web pages, wikis, discussion forums, dan

(25)

17

dokumentasi yang berisi beberapa atribut dan nilai dengan masing-masing id yang unik dan metadata. CouchDB tidak pernah melakukan overwrite document, melainkan menambahkan dokumen baru ke basis data bila diperlukan seperti ketika terjadi proses update.[6]

3) Object-Oriented

Basis data berorientasi objek adalah model basis data dimana informasi direpresentasikan dalam bentuk objek yang digunakan dalam pemrograman berorientasi obyek. OrientDB adalah contoh dari basis data object-oriented. Dokumen OrientDB yang ada dalam suatu cluster, dapat berupa fisik, logis atau

in-memory, yang digunakan untuk menyimpan link ke dalam data. Cluster adalah cara yang sangat umum untuk mengelompokkan record, hal ini merupakan suatu konsep yang tidak ada dalam basis data relasional. Cara ini dapat mengelompokkan semua record pada jenis tertentu, atau dengan nilai-nilai tertentu. OrientDB menggunakan segmen data untuk menyimpan isi record. Segmen data mirip dengan file physical cluster yang menggunakan dua atau lebih

file, yaitu satu atau beberapa file dengan ekstensi "oda" (Orient Data) dan hanya satu file dengan ekstensi "odh" (Orient data Holes) [16].

4) Graph-Oriented

Basis data grafik (GraphDB) adalah basis data yang menggunakan struktur grafik yang berisi node, edge, dan property untuk mewakili dan menyimpan informasi. GraphDB diperlukan untuk data grafik yang berskala besar, terutama yang dipergunakan oleh para peneliti biologi jaringan dan situs jaringan sosial, seperti Facebook, dan Twitter. GraphDB memetakan secara langsung objek ke aplikasi dan lebih intuitif untuk menggambarkan data set asosiatif. Beberapa keuntungan dari GraphDB adalah [16]: Intuitive, dimengerti oleh pikiran manusia, yaitu menggambarkan entitas dan hubungan sebagai grafik masalah umum yang akrab dengan manusia; Elemental untuk ilmu komputer, yaitu grafik, terutama grafik pohon (seperti binary-tree, B+ tree, red-black tree) berfungsi sebagai struktur data dasar dalam ilmu komputer dan berbagai masalah (shortest path dan

(26)

yaitu pemodelan ER ke model jejaring sosial selalu dikelilingi oleh grafik baik di computer ataupun dalam kenyataan.

2.2.3 MongoBD

MongoDB adalah dokumen database yang memberikan kinerja tinggi (high performance), ketersediaan tinggi (high avability) dan skalabilitas yang mudah

(easy scalability).

Tipe Data 2.2.3.1

Format penulisan pada MongoDB lebih dikenal dengan nama BSON (Binary JSON). Ada beberapa keuntungan BSON daripada JSON, diantaranya adalah JSON tidak dapat menerima data dengan tipe date, sedangkan BSON dapat. JSON tidak dapat membedakan data integer, double dan float, dia hanya memiliki data dengan tipe data number (Double-precision floating-point format) sedangkan BSON dapat membedakannya, selain itu juga ada beberapa tipe data seperti symbol, regex, dan code yang tidak ada dalam JSON tapi ada di BSON. Tipe data yang di support oleh MongoDB :

1) Null : Tipe data ini untuk merepresentasikan null value atau ketidaksediaan key sebuah data.

2) Boolean : Hanya ada dua nilai dari boolean, true atau false

3) 64-bit floating point number : Pada shell mongodb, semua number akan di ubah ke bentuk ini 64-bit floating point number.

4) String : String mongodb sudah menggunakan encoding unicode atau UTF8.

5) Object id : Objek id yang pasti ada pada tiap document, berukuran 12-byte dan akan digenerate otomatis saat pembuatan document.

6) date

7) regular expression: Sebuah key document juga bisa berisi regular expression (regex).

(27)

19

10) Array : Merupakan kumpulan dari beberapa value, tiap value dalam satu array boleh berbeda tipe datanya.

11) embedded document : Tipe data ini memiliki arti dokumen yang memiliki atau embbed document lain.

Pengelolaan Data 2.2.3.2

1) Pendekatan Replication

MongoDB mendukung replikasi, selain itu konfigurasi replikasi pada MongoDB sangatlah mudah jika dibandingkan sistem basis data RDBMS (IMHO). Hal ini membuat pemilik sistem yang memiliki traffic membaca tinggi (seperti portal berita, forum dan blog) akan sangat terbantu ketika sistemnya akan menggunakan replikasi.

Adanya database NoSQL seperti MongoDB yang mencoba untuk menyelesaikan permasalahan ini. Disini, Data tidak ditulis/dibaca dari database dengan menggunakan bahasa SQL, tetapi menggunakan metode object-oriented yang lebih disukai oleh developers. Kelebihan lainnya adalah adanya dukungan adanya banyaknya tipe index yang berbeda beda untuk lookupsterhadap data tertentu. Mereka juga memiliki kemampuan clustering secara default.

2) Sharding

Sharding adalah metode untuk menyimpan data pada beberapa mesin yang berbeda. MongoDB menggunakan sharding untuk mendukung

deployment pada data set yang sangat besar dan operasi dengan

throughput yang tinggi. 3) Security and Authentication

(28)

Kedalaman” adalah untuk memastikan tidak ada poin kegagalan yang dapat dieksploitasi dalam deployment, yang dapat memungkinkan penyusup atau pihak yang tidak dapat dipercaya untuk mengakses data yang tersimpan dalam database MongoDB.

2.2.4 HTML

Sebuah file HTML merupakan file teks biasa yang mengandung tag-tag HTML. Karena merupakan file teks, maka HTML dapat dibuat dengan menggunakan teks editor yang sederhana, misalnya Notepad. Dapat juga menggunakan HTML editor yang bersifat Visual, misalnya Frontpage.

Untuk menandai bahwa sebuah file teks merupakan file HTML, maka cirri yang paling nampak jelas adalah ekstensi filenya, yaitu .htm atau .html.

StrukturDasar pemakaian head yang benarakan meningkatkan kegunaan suatu dokumen HTML. Isi bagianhead-kecuali judul dokumen-tidak akan terlihat oleh pembaca dokumen tersebut.

Elemen-elemen pada bagian head akan mengerjakan tugas-tugas sebagai berikut:

- Menyediakan judul dokumen

- Menjembatani hubungan antar dokumen

- Memberitahu browser untuk membuat form pencarian - Menyediakan metode untuk mengirim pesan ke tipe browser

(29)

21

akan ditampilkan, mulai dari teks, gambar, sound, dan lain-lain, akan ditempatkan di bagian ini. Seperti telah disebutkan diatas, bagian BODY diawali oleh tag<BODY> dan ditutup </BODY>.

Untuk mempermudah pembacaan kembali kode-kode HTML, kadang-kadang ditambahkan komentar kedalam sebuah dokumen. Agar komentar tidak dapat dibaca pada browser, maka harus digunakan tanda khusus, yaitu <!—dan diakhiri dengan tanda-->

2.2.5 CSS

CSS (Cascading Style Sheet) adalah sebuah cara untuk memisahkan isi dengan layout dalam halaman-halaman web, CSS digunakan untuk mempersingkat penulisan tag HTML seperti font, color, text dan table menjadi lebih ringkas sehingga tidak terjadi perulangan tulisan. CSS mengendalikan beberapa komponen dalam sebuah web sehingga akan lebih terstruktur dan seragam. Penggunaan CSS dalam sebuah web akan lebih fleksibel dalam penampilannya dan juga akan meminimalkan penggunaan tag yang berpengaruh kedalam ukuran file. Meskipun CSS telah didukung oleh kebanyakan browser saat ini, penerjemah tiap browser untuk menampilkan CSS akan berbeda-beda.

Dalam pembuatan document web menggunakan style CSS dikenal adanya aturan atau struktur penulisan baku agar style css yang dibuat dapat tampil dengan baik dalam document web. Strukturnya adalah

(30)

penulisan sintaknya, penulisan sintak tersebut terbagi kedalam tiga bagian.Yaitu selector, property dan value.

Ada beberapa teknik cara penempatan CSS dalam HTML, yaitu :

1. Inline Style

Inline syle adalah CSS yang dibuat dalam sebuah tag HTML yang hanya berlaku untuk document yang diapitnya saja. Teknik ini digunakan pada pemformatan khusus pada sebuah element dalam document web. Penulisannya cukup hanya menambahkan atribut style dalam tag HTML tersebut.

2. Internal Style

Internal style adalah CSS yang dibuat dan diletakan dalam HTML, pada teknik ini style diletakan pada tengah tag antara tag <head> dan </head>, aturan dalam style ini diatur sedemikian rupa untuk digunakan pada suatu tempat maupun untuk keseluruhan situs.

3. External Syle

Suatu teknik yang digunakan untuk memanggil style CSS pada file CSS yang menggunakan perintah “link rel” yang berfungsi untuk menghubungkan kedalam sebuah style CSS external dengan nama yang sudah ditentukan.

Contoh: <link rel=”stylesheet” type=”text/CSS” href=”default.css”

Dari contoh tersebut, menghubungkan sebuah document HTML dengan sebuah style external dengan nama default.css yang telah dibuat sebelumnya, sehingga style tersebut dihubungkan untuk memformat tampilan dalam dokumen HTML tersebut

2.2.6 PHP

(31)

23

nama sebagai PHP/FI Version 2. FI berasal dari paket Rasmus yang mana merupakan html interpreter untuk data form. Pada hasil kombinasi tersebut juga ditambah dukungan terhadap mSQL.PHP/FI terus berkembang dan banyak orang mulai memberikan kontribusi dalam pengembangannya.

Pada tahun 1996 PHP/FI diperkirakan telah digunakan 15,000 situs web didunia, dan pada pertengahan 1997 jumlah ini berkembang melebihi 50,000.Pada pertengahan 1997 juga terjadi perubahan pada PHP dimana berubah menjadi proyek yang didukung oleh team yang lebih terorganisasi.Parsernya ditulis ulang oleh Zeev Suraski dan Andi Gutmans dan parser baru inilah yang membentuk basis untuk PHP versi 3.Banyak kode utility dari PHP/FI yang di masukkan ke PHP dan banyak diantaranya telah selesai ditulis kembali.

Sekarang baik PHP/FI atau PHP telah diikutsertakan dalam sejumlah produk komersil seperti C2's StrongHold web server dan RedHat Linux.Suatu perkiraan yang konservatif didasarkan dari hasil ekstrapolasi terhadap angka yang diperoleh dari NetCraft, PHP diperkirakan telah digunakan oleh lebih dari 150,000 situs diseluruh dunia.Dan secara perspektif, angka ini lebih besar dibandingkan dengan server yang menjalankan Netscape's flagship Enterprise server di Internet.

PHP diawali dengan <? Dan di akhiri dengan ?> <?php

echo "Hello, Nama saya PHP ";

?>

2.2.7 Analisis Berorientasi Objek

Analisis dan disain berorientasi objek adalah cara baru dalam memikirkan suatu masalah dengan menggunakan model yang dibuat menurut konsep sekitar dunia nyata. Dasar pembuatan adalah objek, yang merupakan kombinasi antara struktur data dan perilaku dalam satu entitas.

(32)

Karakteristik Objek 2.2.7.1

1) Objek

- Identitas berarti bahwa data diukur mempunyai nilai tertentu yang membedakan entitas disebut Objek.

- Objek dapat kongkrit, seperti halnya arsip dalam sistem, atau konseptual seperti kebijakan penjadualan dalam multiprocessing pada sistem operasi. - Setiap objek mempunyai sifat yang melekat pada identitasnya.

- Dua objek dapat berbeda walaupun bila semua nilai atributnya identik. 2) Klass

- Kelas merupakan gambaran sekumpulan Objek yang terbagi dalam atribut, operasi, metode, hubungan, dan makna yang sama.

- Suatu kegiatan mengumpulkan data (atribut) dan perilaku (operasi) yang mempunyai struktur data sama ke dalam satu grup.

- Kelas Objek merupakan wadah bagi Objek. Dapat digunakan untuk menciptakan Objek.

- Objek mewakili fakta/keterangan dari sebuah kelas

Unified Modeling Language 2.2.7.2

Unified Modeling Language (UML) adalah sebuah bahasa yang berdasarkan grafik/gambar untuk memvisualisasikan, menspesifikasikan, membangun dan pendokumentasian dari sebuah sistem pengembangan software berbasis Object Oriented (OO)

1) Hubungan / Relationship

- Dependency, adalah hubungan semantik antara dua benda/things yang mana sebuah benda berubah mengakibatkan benda satunya akan berubah pula. Umumnya sebuah dependency digambarkan sebuah panah dengan garis terputus-putus.

(33)

25

sebagian. Umumnya association digambarkan dengan sebuah garis yang dilengkapi dengan sebuah label, nama, dan status hubungannya.

- Generalizations, adalah menggambarkan hubungan khusus dalam obyek anak/child yang menggantikan obyek parent / induk. Dalam hal ini, obyek anak memberikan pengaruhnya dalam hal struktur dan tingkah lakunya kepada obyek induk. Digambarkan dengan garis panah.

- Realizations, merupakan hubungan semantik antara pengelompokkan yang menjamin adanya ikatan diantaranya. Hubungan ini dapat diwujudkan diantara interface dan kelas atau elements, serta antara use cases dan collaborations. Model dari sebuah hubungan realization.

2) Bagan / Diagram

UML sendiri terdiri atas pengelompokkan diagram-diagram sistem menurut aspek atau sudut pandang tertentu. Diagram adalah yang menggambarkan permasalahan maupun solusi dari permasalahan suatu model. UML mempunyai 9 diagram, yaitu; use-case, class, object, state, sequence, collaboration, activity, component, dan deployment diagram. - Use CaseDiagram, menggambarkan sekelompok use cases dan aktor yang

disertai dengan hubungan diantaranya. Diagram use cases ini menjelaskan dan menerangkan kebutuhan / requirement yang diinginkan/ dikehendaki user/pengguna, serta sangat berguna dalam menentukan struktur organisasi dan model dari pada sebuah sistem.

- Class Diagram, yang memperlihatkan struktur statis dari kelas actual didalam sistem.

- Object Diagram, yang merupakan varian dari kelas diagram yang memperlihatkan lebih detail banyaknya obyek yang mengintantiasi (instances) kelas.

- State Diagram, yang memperliatkan semua keadaan (state) yang dapat dimiliki oleh kelas dan event yang dapat merubah keadaan tersebut.

(34)

- Collaboration Diagram, yang memperlihatkan kolaborasi dinamik antar objek tanpa memperhatikan aspek waktu.

- Activity Diagram, yang memperlihatkan aliran urutan aktifitas.

- Component Diagram, yang memperlihatkan struktur fisik dari source code dalam terminology code components. Komponen berisi informasi tentang logical class dapat berupa komponen source code, komponen biner atau komponen yang dapat dieksekusi.

(35)

27 BAB 3

ANALISIS DAN PERANCANGAN

3.1 Deskripsi Umum

Pengerjaan tugas akhir ini adalah menerapkan database nosql terhadap e-library Universitas Pendidikan Indonesia, khususnya pada otomasi perpustakaan upi. Kemudian dilakukan pengujian performa database nosql dengan database

mysql.

3.1.1 Analisis Masalah

Universitas Pendidikan Indonesia mempunyai mahasiswa yang sangat banyak, sehingga untuk menunjang kegiatan belajar mahasiswa perpustakaan digital Universitas Pendidikan Indonesia harus mampu menyajikan data dalam jumlah yang banyak pula.Salah satu faktor yang dapat memenuhi hal tersebut adalah penggunaan database yang tepat.

Otomasi Perpustakaan Universitas Pendidikan Indonesia masih menggunakan database mysql dimana database mysql mempunyai kendala pada penanganan data dalam jumlah yang besar.

3.1.2 Analisis Database yang Sedang Berjalan

Analisis database dilakukan untuk mengetahui seberapa besar permasalahan yang terdapat pada sistem database perpustakaan, sehingga proses analisis dapat menghasilkan sebuah informasi.

Diagram Relasi 3.1.2.1

(36)
(37)

29

Daftar Tabel 3.1.2.2

Database yang digunakan otomasi perpustakaan Universitas Pendidikan Indonesia ialah RDBMS mysql.Struktur tabel dari otomasi perpustakaan online UPI mempunyai 33 tabel.Database otomasi perpustakaan upi terlihat pada gambar 3.1.

Tabel 3. 1 Struktur Table Database Otomasi Perpustakaan UPI

Tabel Jumlah Baris Keterangan

Absen 2.413 Absen Kehadiran

Admin 2 Admin Perpustakaan

Biblio 36.877 Buku

biblio_copy 68.245 Status buku

biblio_field 445.454 Kopian buku

biblio_hold 5 Buku yang ditahan

biblio_statu_dm 9 Status Pinjaman Buku

biblio_status_hist 268.783 Peminjaman

checkout_privs 5 Status Checkout Matrial

collection_dm 9 Sanksi Keterlambatan

Klasifikasi 0 Tabel baru dari member dan member

klasifikasi

Kunjung 38.141 Kunjungan Mahasiswa1

kunjung1 20 Kunjungan Mahasiswa2

material_type_dm 4 Jenis Material

material_usmarc_xref 0 Xref material

mbr_classify_dm 4 Klasifikasi Member

Member 32.982 Member Perpustakaan

member_account 1.591 Akun Member

member_fields 61.737 Asal Member

member_fields_dm 3 Klasifikasi Asal member

Pengunjung 727 Pengunjung Perpustakaan

Session 71 Batas Waktu Online Admin

Setting 1 Pengaturan identitas perpustakaan

Staff 31 Staff Perpustakaan

Status 0 Tabel Baru dari buku dan status buku

Tema 0 Tabel baru dari tema dan admin

(38)

Tipe_buku 0 Tabel baru dari buku dan jenis material

Ttd 0 Tabel baru dari kinjungan dan absen

usmarc_block_dm 10 Buku yang diblok

usmarc_indicator_dm 642 Indikator Blok buku

usmarc_subfield_ 1.678 Elemen Kerusakan Buku

usmarc_tag_dm 175 Elemen Kerusakan Buku

3.1.3 Rutinitas Table

Rutinitas table merupakan aktifitas data pada table table dari database otomasi perpustakaan UPI, aktifitas table tersebut dirangkum sebagai rutinitas yang sering hingga jarang dilakukan. Rutinitas table yang diambil pada bulan juni.

Tabel 3.2 Rutinitas Penggunaan

Table Database UPI pada bulan juni

Rutinitas tersebut merupakan rangkuman rutinitas harian dari penggunaan tabel yang dirangkum kedalam empat periode selama satu bulan.

(39)

31

Keterangan: total pengaksesan 0 tidak ada pengaksesan (~), total pengaksesan 1-30 = jarang, dan total pengaksesan lebih dari 1-30 = sering.

Berdasarkan rutinitas dari penggunaan table pada tabel 3.2, maka rutinitas

table database otomasi perpustakaan UPI disajikan pada tabel 3.3.

Tabel 3. 3 Runititas table database otomasi perpustakaan UPI.

No Nama Tabel Read Upadate Delete

1 Member Sering Jarang Jarang 2 Member_fields Sering Jarang Jarang 3 Member_fields_dm Jarang Jarang Jarang 4 Mbr_clasiffy_dm Jarang Jarang Jarang 5 Member_account Sering Tidak ada Tidak ada 6 Klasifikasi ~ ~ ~

7 Tipe_transaksi ~ ~ ~

(40)

12 Biblio_field Jarang Sering Jarang 13 Material_type_dm Sering Tidak ada Tidak ada 14 Biblio_status_hits Jarang Jarang Jarang

15 Status ~ ~ ~ 26 Pengunjung Sering Jarang Jarang 27 Session Jarang Jarang Jarang

28 Ttd ~ ~ ~

29 usmarc_block_dm Jarang Jarang Jarang 30 usmarc_indicator_dm Jarang Jarang Jarang 31 usmarc_subfield_ Jarang Jarang Jarang 32 usmarc_tag_dm Jarang Jarang Jarang

Berdasarkan informasi yg didapat pada tabel 3.3, maka analisis yang didapat

a. Data yang dihasilkan terpusat pada tabel member, biblio, staff, maka tabel member, biblio, staff, perpus_seting, pinjam, denda dan konten merupakan sebuah collection.

b. Berdasarkan data pada tabel 3.3, dari 32 tabel database tersebut rutinitas yang sering dilakukan untuk read 12 tabel, update 3 tabel dan

(41)

33

analisis query read data untuk mengoptimalkan proses read data pada aplikasi yang akan dibangun.

3.1.4 Analisis Query

Analisis ini bertujuan untuk meganalisa bagaimana Query MySQL serta Query MongoDB dalam menampilkan data perpustakaan. Sebagai contoh penggunaan query diambil pada pencarian data anggota.

Pencarian data 3.1.4.1

Query ini bertujuan untuk memperoleh informasi data anggota perpustakaan.

Table yang digunakan dalam query ini adalah member dan staff.

a. Query pencarian data MySQL

Query MySQL untuk memanggil data dimana kebutuhan data berasal dari satu tabel.

mysql_query(mysql_fetch_array("select * from

katalog where kode_buku="101""))

Berdasarkan query tersebut dilakukan perhitungan jumlah karakter, maka pada query tersebut terdapat 70 karakter

Query MySQL untuk memanggil data dimana kebutuhan data berasal dari dua tabel menggunakan join.

“$sql = $this->mkSQL("select member.*, staff,

userfname from member"."left join staf on

member.last_change_userid = staff.userid"."where mbrid=%N ", $mbrid);

(42)

b. Query pencarian data MongoDB

Query yang digunakan oleh MongoDB dalam pemanggilan data

db.katalog.find( { "kode_buku" : "101" } )

Berdasarkan perhitungan karakter query tersebut, diperoleh sebanyak 42 karakter.

Query MongoDB untuk kebutuhan data yang berasal dari dua

collection dalam MongoDB sama. Hal ini disebabkan skema mongodb bersifat dinamis, maka pada collection katalog bisa disisipkan dokumen dari collection anggota.

Insert Data 3.1.4.2

a. Query Insert data Mysql

$query="insert into katalog values('kode_buku' :

'101','judul_buku' : 'Dev C','pengarang' :

'andre','jenis_buku' : 'sirkulasi','penerbit':

'elang','tahun_terbit' : '2010','stok':

'10','deskripsi' : 'basic programming',

'tanggal_update': '01/February/2016','tanggal':

'01/February/2016')";

$exe=mysql_query($query);

Berdasarkan query tersebut dilakukan perhitungan jumlah karakter, maka pada query tersebut terdapat 288 karakter.

b. Query insert data Mongodb

db.katalog,insert {

"kode_buku" : "101", "judul_buku" : "Dev C", "pengarang" : "andre", "jenis_buku" : "sirkulasi", "penerbit" : "elang",

"tahun_terbit" : "2010", "stok" : "10",

"deskripsi" : "basic programming", "tanggal_update" : "01/February/2016", "tanggal" : "01/February/2016"

(43)

35

Berdasarkan query tersebut dilakukan perhitungan jumlah karakter, maka pada query tersebut terdapat 250 karakter.

Update Data 3.1.4.3

a. Query update mysql

$query= update katalog set 'kode_buku' :

'101','judul_buku' : 'Dev C','pengarang' :

'andre','jenis_buku' : 'sirkulasi','penerbit':

'elang','tahun_terbit' : '2010','stok':

'10','deskripsi' : 'basic

programming','tanggal_update':

'01/February/2016','tanggal': '01/February/2016'; $exe=mysql_query($query,$conn);

Berdasarkan query tersebut dilakukan perhitungan jumlah karakter, maka pada query tersebut terdapat 288 karakter.

b. Query update mongodb

db.katalog,update(

{ "kode_buku" : "101" }, { $set{

"judul_buku" : "Dev C", "pengarang" : "andre", "jenis_buku" : "sirkulasi", "penerbit" : "elang",

"tahun_terbit" : "2010", "stok" : "10",

"deskripsi" : "basic programming", "tanggal_update" : "01/February/2016", "tanggal" : "01/February/2016"

}

Berdasarkan query tersebut dilakukan perhitungan jumlah karakter, maka pada query tersebut terdapat 258 karakter.

Delete Data 3.1.4.4

a. Query delete data mysql

Delete from katalog where kode_buku=101;

(44)

b. Query delete data mongodb

db.katalog.remove{ "kode_buku" : "101" }

Berdasarkan query tersebut dilakukan perhitungan jumlah karakter, maka pada query tersebut terdapat 36 karakter

Berdasarkan hasil perhitungan karakter dari setiap query, maka dapat diperoleh kesimpulan bahwa dengan memakai mongodb dapat mempersingkat proses pembacaan karena jumlah karakter dalam mongodb lebih sedikit dibandingkan dengan jumlah karakter pada mysql.

3.1.5 Analisis Kebutuhan Data

Berdasarkan sifat NoSQL yang bersifat schemaless, berarti mendefinisikan kebutuhan data secara sederhana, kemudian dapat langsung membuat database NoSQL MonggoDB, Analisis kebutuhan data diperlukan untuk proses penerapan yang akan dilakukan, penggunaan tabel pada RDBMS MySQL mencerminkan kebutuhan data untuk pemodelan database NoSQL MongoDB. Adapun analisis kebutuhan data yang dimaksud dapat dilihat pada tabel 3.3

Tabel 3. 2 Tabel Kebutuhan Data

No Data Tabel yang digunakan

1 Anggota member, member_fields, member_fields_dm, mbr_classify_dm, member_account, klasifikasi,

tipe_transaksi

2 Buku (Katalog) biblio, material_type_dm, collection_dm, biblio_status_dm, biblio_copy, status, tipe_buku,

biblio_field, biblio_hold, biblio_status_hits.

3 Staff Staff, admin, tema, theme.

(45)

37

1. Data Kebutuhan Penglolaan Anggota

Data kebutuhan pengelolaan Anggota yaitu tabel member, member_fields, member_fields_dm, mbr_classify_dm, member_account, klasifikasi,

tipe_transaksi.Contoh kebutuhan data pengolahan anggota yaitu

- Pencarian anggota, table yang digunakan adalah member, mbr_clasiffy_dm dan klasifikasi

- Penambahan anggota, table yang digunakan adalah member, member_fields_dm, mbr_clasiffy_dm.

- Pengelolaan tipe anggota, table yang digunakan adalah mbr_classify_dm, member dan klasifikasi.

2. Data Kebutuhan Pengelolaan Buku

Data kebutuhan pengelolaan buku yaitu table biblio, material_type_dm, collection_dm, biblio_status_dm, biblio_copy, status, tipe_buku, biblio_field,

biblio_hold, biblio_status_hits.Contoh kebutuhan Pengelolaan buku yaitu : - Pencarian Katalog, table yang digunakan adalah biblio,

material_type_dm, biblio_status_dm, biblio_copy, status, tipe_buku.

- Pengembalian buku, table yang digunakan adalah biblio, biblio_copy

- Penambahan Bibliografi, table yang digunakan adalah biblio, material_type_dm dan type_buku.

- Pengelolaan tipe material, table yang digunakan adalah

material_type_dm, biblio dan type_buku

2. Data Kebutuhan Pengelolaan Staff

Data kebutuhan pengelolaan Staff yaitu tableStaff, admin, tema, theme, Setting. Contoh kebutuhan pengelolaan staff yaitu :

- Pengelolaan staff admin, table yang digunakan adalah staff dan admin

- Pengelolaan informasi perpustakaan, table yang digunakan adalah admin, setting

(46)

3.1.6 Konversi Database MySQL ke MongoDB

Berdasarkan proses analisis sebelumnya, pertimbangan terhadap analisis kebutuhan data menghasilkan rangkuman collection yang terbentuk, collection

merupakan koleksi dari beberapa dokumen. Collection diibaratkan sama dengan

table pada RDBMS. beberapa collection yang terbentuk diantaranya

a. Collection katalog yang didapat berdasarkan hasil analisis terhadap kebutuhan data pada halaman pencarian (user), pencarian katalog (admin), sirkulasi pengembalian (admin), katalog bibbliografi baru (admin), tipe material, koleksi, pengaturan pinjaman (admin).

b. Collection anggota yang didapat berdasarkan hasil analisis terhadap kebutuhan data pada halaman sirkulasi pencarian anggota, tambah anggota, admin staf admin, tipe anggota.

c. Collection staff yang didapat berdasarkan hasil analisis terhadap kebutuhan data halaman setting.

Analisis ini menghasilkan tiga collection dengan model document oriented

adapun daftar collection NoSQL MonggoDB untuk sistem otomasi perpustakaan Universitas Pendidikan Indonesia disajikan pada tabel 3.4.

Tabel 3. 3 Daftar Collection NoSQL MonggoDB

Collection Dokumen References

Katalog Pencarian user, pencarian catalog, sirkulasi pengembalian, bibliografi baru, tipe material, koleksi.

biblio, material_type_dm, collection_dm,

biblio_status_dm, biblio_copy, status,

tipe_buku, biblio_field, biblio_hold,

biblio_status_hits

Anggota Pencarian anggota, tambah anggota, staff admin, tipe

Staff Setting setting Staff, admin, tema, theme, Setting

(47)
(48)
(49)

41

Tiga collection diatas dibuat dengan menggunakan konsep document oriented database yang memang managemen datanya hanya menggunakan array, tidak menggunakan table ataupun reqord.

3.2 Analisis Kebutuhan Non-Fungsional

Analisis kebutuhan non-fungsional merupakan analisis yang dibutuhkan untuk menentukan spesifikasi kebutuhan sistem. Spesifikasi ini juga meliputi elemen atau komponen apa saja yang dibutuhkan untuk sistem yang akan dibangun sampai pada pengimplementasian dari sistem tersebut. Pada analisis kebutuhan sistem non-fungsional ini dijelaskan analisis mengenai hardware, software, dan brainware.

3.2.1 Analisis Kebutuhan Perangkat Keras

Perangkat keras yang digunakan dalam menerapkan database NoSQL MongoDB dapat dilihat pada tabel 3.5

Tabel 3. 4 Tabel Kebutuhan Perangkat Keras

Nama Perangkat Spesifikasi

Processor Dual Core 1.0 GHz

RAM 4 Gb

HDD 500 Gb

3.2.2 Analisis Kebutuhan Perangkat Lunak

Perangkat lunak yang dibutuhkan dalam menerapkan database NOSQL MonggoDB dapat dilihat pada tabel 3.6

Tabel 3. 5 Tabel Kebutuhan Perangkat Lunak

Nama Perangkat Lunak Spesifikasi

Sistem Operasi Windows, Mac OS, Linux Web Server NodeJS v0.10.32

Database Server Localhost XAMPP, MonggoDB

(50)

3.2.3 Analisis Pengguna

Sistem Otomasi Perpustakaan yang akan dibangun memiliki target pengguna, untuk user selaku pengunjung ditentukan minimal seorang yang bisa menjalankan computer dan untuk admin ditentukan minimal seorang database administrator yang biasa mengelola sebuah database.

3.3 Analisis Kebutuhan Fungsional

Analisis kebutuhan membahas perancangan sistem yang dibangun dalam bentuk analisis diagram UML(Unified Modeling Language). UML digunakan sebagai alat untuk menganalisis kebutuhan fungsional terhadap sistem yang akan dibangun.

3.3.1 Use Case Diagram

Use case Diagram menunjukan interaksi antara Use case dan dua actor yaitu user dan admin.

(51)

43

3.3.2 Use Case Skenario

Bagian use case memiliki scenario yang menunjukan proses apa saja yang terjadi.

a. Skenario Login

Tabel 3. 6 Skenario Login

Use Case Name Login

Goal In Context Menampilkan Tampilan Aplikasi

Preconditions Menampilkan Input text

Successful Condition Berhasil menampilkan halaman aplikasi

Failed End Condition Menampilkan pesan gagal login

Primary Actor Admin

Secondary Actor -

Trigger Pengguna mengisi form username dan password

Main Flow Step Action

1 Pengguna mengisi form username dan password

2 Sistem melakukan Validasi dan Verifikasi 3 Sistem menampilkan tampilan aplikasi

Extensions Step Branching Action

3.1 Menampilkan pesan gagal login

b. Skenario Pencarian Katalog

Tabel 3. 7 Skenario Pencarian Katalog

Use Case Name Pencarian Katalog

Goal In Context Menampilkan Data Katalog

Preconditions Menampilkan tampilan awal

Successful Condition Berhasil menampilkan data katalog

Failed End Condition Menampilkan pesan data tidak ditemukan

Primary Actor Admin

Secondary Actor -

Trigger Pengguna melkukan request katalog

Main Flow Step Action

1 Pengguna melakukan request katalog 2 Sistem menampilkan daftar katalog 3 Pengguna mengisi data katalog 4 Sistem mencari data katalog

5 Sistem menampilkan data yang ditemukan

(52)

5.1 Menampilkan pesan data tidak ditemukan

c. Skenario Tambah Katalog

Tabel 3. 8 Skenario Tambah Katalog

Use Case Name Tambah katalog

Goal In Context Menambah Data katalog

Preconditions Menampilkan menu katalog untuk pengguna

Successful Condition Berhasil mmenambah menu katalog

Failed End Condition Menampilkan pesan gagal

Primary Actor Admin

Secondary Actor -

Trigger Pengguna melakukan request tambah katalog

Main Flow Step Action

1 Pengguna melakukan request tambah katalog

2 Sistem menampilkan input text 3 Pengguna mengisi data katalog 4 Pengguna memilih action simpan 5 Menampilkan pesan sukses

6 Sistem menampilkan menu katalog

Extensions Step Branching Action

5.1 Menampilkan pesan gagal

d. Skenario Hapus Katalog

Tabel 3. 9 Skenario Hapus Katalog

Use Case Name Hapus katalog

Goal In Context Menghapus data katalog

Preconditions Menampilkan daftar katalog untuk pengguna

Successful Condition Berhasil menghapus data katalog

Failed End Condition data katalog gagal dihapus

Primary Actor Admin

Secondary Actor -

Trigger Pengguna melakukan request katalog

Main Flow Step Action

1 Pengguna melakukan request katalog 2 Sistem menampilkan pesan konfirmasi

penghapusan

3 Menghapus data katalog

Extensions Step Branching Action

Gambar

Gambar 3. 1 Diagram Relasi Database Otomasi Perpustakaan UPI
Gambar 3. 5 Activity Diagram Tambah Katalog
Gambar 3. 7 Activity Diagram Detail Katalog
Gambar 3. 8 Activity Diagram Daftar Peminjaman
+7

Referensi

Dokumen terkait

Dengan adanya Kerangka Acuan Kerja (KAK) yang disiapkan sebagai petunjuk dan arahan bagi konsultan perencana yang akan melaksanakan pekerjaan DED peningkatan dan

(1) Negara Republik Indonesia melakukan penambahan penyertaan modal ke dalam modal Perusahaan Umum (PERUM) Pembangunan Perumahan Nasional (PERUMNAS) yang didirikan di Jakarta

 Melakukan perlombaan lompat jauh dengan menggunakan peraturan yang dimodifikasi dengan menerapkan gerak fundamental lompat jauh (awalan, tolakan, melayang di

Sesuai dengan perumusan masalah serta tujuan penelitian jadi kerangka pemikiran antara Risiko Kredit, Profitabilitas, Loan to Deposit Ratio dan Ukuran Bank

Data tentang Prestasi Belajar Mapel PAI di SD Negeri Kandang Panjang 01 Pekalongan dilihat berdasarkan nilai raport siswa pada semester genap tahun

Tujuan pada penelitian ini adalah : untuk mengetahui pengaruh gaya kepemimpinan, iklim organisasi dan penilaian kinerja terhadap kepuasan kerja Satuan Polisi Pamong

A09.0 Penyakit Infeksi usus lainya A02 Infeksi salmonela lainya A04 Infeksi Usus karena bakteri lain A05 Keracunan makanan karena bakteri lain A07 Penyakit usus karena protozoa

Akibatnya, hasil belajar peserta didik kurang memuaskan.Berdasarkan hasil wawancara terhadap beberapa peserta didik, mereka mengatakan bahwa pelajaran fisika sangat sulit