BAB I PENDAHULUAN
1.1 Latar Belakang Masalah Perusahaan teknologi pengembang perangkat lunak Archon Infinity yang berpusat di Jakarta ini sudah menggunakan berbagai teknologi termasuk database. Database yang sering dipakai adalah MySQL. Namun data bertambah dan jumlahnya mencapai hingga ribuan berikut kelipatannya. Bila dibandingkan dengan perusahaan besar seperti google dan facebook sering menangani masalah banyaknya jumlah data yang mereka tangani seperti video dan akun media sosial dari seluruh dunia. Menurut dari para komentator di media Quora bahwa youtube dan google search sudah menggunakan
teknologi
database
NoSQL
seperti
bigtable
dan
facebook
menggunakan Hadoop, Cassandra dan Mencachedb. Sedangkan Archon Infinity belum pernah menggunakan NoSQL manapun. Sebenarnya ada beberapa hal yang perlu menjadi pertimbangan perusahaan yaitu seperti apa pola database yang akan dipakai karena jenis dan kemampuannya berbeda-beda, berikutnya dokumentasinya lengkap atau tidak karena perusahaan tidak mau memakai teknologi tanpa dokumentasi pengembangan yang lengkap atau setengah-setengah dan terakhir adalah kemampuan database tersebut dan apakah database NoSQL tersebut gratis atau berbayar
atau
ada
kemungkinan
memiliki
sebuah
kelemahan
ungkapnya.
Memperhatikan dari sebuah teknologi NoSQL pada kesempatan ini perlu diteliti lebih I-1
I-2
lanjut mengenai bagaimana mengembangkan ke dalam aplikasi percobaan dan menganalisis segala kelemahan dan kelebihannya. Sebelum menjelajahi pengetahuan tentang NoSQL ada beberapa jenis – jenis keluarga nosql database yang terbagi ke dalam beberapa kategori seperti; a. unresolved
dan
uncategorized
(KribyBase,
Tokutek,
Recutils,
FileDB,
CodernityDB) b. kategori scientific dan specialized DB (bayesdb & gpudb) c. kategori related nosql yg lain (IBM lotus, extremeDB, RDM embedded, ISIS family, Moonshadow, VaultDB, Yserial) d. kategori streaming series (axibase, influxdata, pipelinedb, kdb+) e. kategori event sourcing (event store, eventsourcing for java) f. kategori multivalue database (u2, openinsight, tigerlogic pick, reality, openqm dll) g. kategori multidimensional (globals, intersystems cache, gt.m, scidb, minim db, rasdaman, daggerdb) h. kategori xml (emc documentum xdb, exist, sedna, basex, qizx, berkeley db xml) i. kategori grid & cloud database (crate data, oracle coherence, gigaspaces, gemfire, infinispan, queplix, hazelcast) j. kategori object database (versant, db4o, objectivity, gemstone/s, starcounter, perst, velocitydb, hss database, zodb, magma, neo, saqodb, jade, sterling, marcellodb, morantex, eyedb, framerd, ninja database pro, ndatabase, picolisp, acid-state, objectdb, coreobject)
I-3
k. kategori multimodel (arangodb, orientdb, datomic, gundb, cortexdb, alchemydb, wonderdb, rockalldb, foundationdb) l. kategori graph (neo4j, rangodb, orientdb, infinite graph, sparksee, titan, infogrid, hypergrid, hypergraphdb, graphbase, trinity, allegrograph, brightstardb, big data, meronymy, whitedb, onyx database, openlink virtuoso, vertexdb, flockdb, weaver, brightstardb, execom iog, fallen 8) m. kategori keyvalue (dynamodb, redis, leveldb, berkeleydb, dan lainnya) n. kategori document store (mongodb, elasticsearch, couchbase server, couchdb, rethinkdb dkk) o. kategori wide column store (hadoop, cassandra, mapr, hortonworks, accumulo dan lainnya) [1]. Masalah yang perlu diuji adalah menganalisa performance teknologi NoSQL untuk mengenal performance khususnya Redis. Dikarenakan teknologi Redis masih tergolong baru dan belum banyak dipakai oleh pengembang aplikasi. Dari karakteristik NoSQL ada dua hal yang menjadi tinjauan, pertama meninjau cara menampilkan data di NoSQL karena NoSQL tidaklah terstruktur, tidak berbentuk seperti SQL yang biasanya yang menampilkan tabel data schema. Kedua performa apabila menyimpan data lebih banyak di dalam NoSQL. Pada penelitian ini mengangkat tentang mengukur performa dari sistem yang sama, bahasa yang sama namun berbeda dari segi database dengan bentuk dua aplikasi [2]. Maka dari itu dibentuk sebuah aplikasi todo list, salah satu aplikasi sebagai uji penelitian dalam membentuk yang lebih terstruktur, kompleks dan efisien untuk
I-4
mengukur kualitas data NoSQL dengan membandingkan aplikasi yang seperti biasa dikembangkan oleh para developer yaitu MySQL. Membentuk tampilan yang minimalis dan juga menyusun ke dalam beberapa kategori agar mudah dalam mendata yang dibutuhkan oleh pengguna. Dengan menggunakan teknologi javascript framework sebagai alat pengembangan aplikasi dan menggunakan database Redis NoSQL dan Xampp MySQL sebagai database yang akan diukur kualitasnya. Dengan adanya solusi ini, diharapkan bisa dipakai dengan mengembangkan proyek sesuai hasil yang diharapkan. Berdasarkan uraian diatas, maka disusun suatu laporan tugas akhir yang berjudul “Perbandingan Analisis Aplikasi Database NoSQL Redis dan SQL mySQL”.
1.2 Perumusan Masalah Berdasarkan uraian latar belakang yang ada maka dirumuskan masalah yaitu; a. Bagaimana performance bila mengembangkan aplikasi di database Redis jika dibandingkan dengan MySQL ? b. Apakah NoSQL Redis memiliki kelemahan apabila dibandingkan dengan SQL mySQL ?
1.3 Batasan Masalah Agar penelitian yang dilakukan sesuai dengan tujuan yang diinginkan, maka penulis membatasi masalah yang akan dibahas, sebagai berikut;
I-5
a. Menggunakan dataset nama mahasiswa Carnegie Mellon University b. Aplikasi yang dibuat menggunakan Javascript Framework. c. Desain perancangan menggunakan flowchart. d. Hanya mengukur dan mempelajari sampai dimana letak kemampuan NoSQL Redis bila dibandingkan dengan MySQL. e. Mempelajari cara menampilkan data dari database NoSQL Redis. f. Hanya membangun aplikasi sederhana sebagai pembanding antara MySQL dan NoSQL Redis sebagai uji penelitian.
1.4 Tujuan dan Manfaat Penelitian 1.4.1 Tujuan Adapun tujuan penelitian tugas akhir ialah sebagai berikut; a. Menentukan perbandingan performance untuk mengukur batas kemampuan NoSQL bila dibandingkan mySQL. b. Mencari kelemahan dalam database NoSQL Redis bila dibandingkan SQL mySQL.
1.4.2 Manfaat Manfaat dari penelitian tugas akhir ini adalah; a. Bisa menjadi bukti bahwa dari hasil penelitian jika mengembangkan sebuah aplikasi dengan menggunakan database NoSQL lebih baik daripada MySQL.
I-6
b. Bisa dikembangkan lebih lanjut untuk operasi pengembangan ke skala lebih besar. c. Lebih hemat dan fleksibel karena teknologi NoSQL ini bisa dipakai bila dikembangkan dalam aplikasi hanya diperlukan keahlian object oriented programming-nya saja dan tentunya NoSQL ini rata-rata gratis.
1.5 Metode Penelitian Dalam pelaksanaan tugas akhir ini, metode penelitian yang digunakan meliputi metode pengumpulan data dan metode pengembangan sistem.
1.5.1 Metode Pengumpulan Data Metode pengumpulan data yang digunakan sebagai berikut; 1. Wawancara Wawancara dilakukan secara langsung dengan melakukan semacam diskusi kepada kolega di kantor Archon Infinity dengan membahas topik mengenai revolusi teknik pengembangan aplikasi dengan menggunakan NoSQL dan mengumpulkan data yang bisa didapatkan untuk dikembangkan. 2. Studi Pustaka Studi pustaka ini dilakukan dalam mempelajari berbagai referensi yang berhubungan dengan perancangan desain aplikasi dengan menganalisis teknik NoSQL dan MySQL.
I-7
3. Observasi Observasi dilakukan untuk mempelajari dan memahami permasalahan mengenai pengembangan dengan menggunakan NoSQL.
1.5.2 Metode Pengembangan Sistem Menurut
pandangan
dari
Ivan
Masdewinto,
perancangan
dan
pembangunan sistem yang digunakan dalam tugas akhir ini yaitu menggunakan perancangan metode yang meliputi [25]; 1. Planning Aktivitas perancangan ini dibutuhkan untuk menentukan sumber daya, perkiraan waktu pengerjaan, dan informasi lainnya yang dibutuhkan untuk pengembangan software. 2. Analysis Risk Aktivitas analisis resiko ini dijalankan untuk menganalisis baik resiko secara teknikal. 3. Engineering Aktivitas yang dibutuhkan untuk membangun satu atau lebih representasi dari aplikasi secara teknikal. 4. Construction & release Aktivitas yang dibutuhkan untuk develop software, testing, instalasi dan penyediaan user / customer support seperti training penggunaan software serta dokumentasi seperti buku manual penggunaan software.
I-8
1.6 Sistematika Penulisan Sistematika penulisan yang akan dibahas dalam tugas akhir ini terbagi dalam beberapa bab yang akan dibahas ialah sebagai berikut; BAB I PENDAHULUAN Bab ini menjelaskan tentang latar belakang masalah, rumusan masalah, batasan masalah, tujuan dan manfaat penelitian, metode penelitian, dan sistematika penulisan. BAB II LANDASAN TEORI Bab ini menjelaskan tentang literatur atau teori – teori yang berhubungan dengan pembuatan aplikasi. BAB III ANALISIS SISTEM Bab ini membahas tentang kebutuhan fungsional dan kebutuhan nonfungsional dari sistem yang akan dibangun. BAB IV PERANCANGAN SISTEM Bab ini membahas tentang tahap perancangan dari sistem yang akan dibuat yang meliputi pemodelan sistem dan perancangan user interface. BAB V IMPLEMENTASI & PENGUJIAN Bab ini akan membahas mengenai lingkungan implementasi, tampilan antarmuka aplikasi, dan pengujian aplikasi.
I-9
BAB VI PENUTUP Bab ini berisi tentang kesimpulan yang didapat dari aplikasi ini, serta saransaran mengenai aplikasi ini sebagai rencana pengembangan aplikasi ini untuk lebih baik.