PENERAPAN MONGODB DAN CODEIGNITER PADA PERMAINAN KOKOLOGY Kartika Kurniarin Program Studi Teknik Informatika Universitas Gunadarma Jl. Margonda Raya No.100 Depok [email protected] ABSTRAK MongoDB merupakan basis data NoSQL yang dikembangkan sejak Oktober 2007 oleh 10Gen dan dirilis publik sejak Februari 2009. MongoDB merupakan NoSQL dengan konsep document oriented. Dalam tiap document MongoDB tidak harus memiliki struktur yang sama. Karakteristik MongoDB yang ini dianggap cocok jika diimplementasikan dengan permainan kokology yang tiap skenarionya memiliki struktur yang berbeda.MongoDB mendukung beberapa bahasa pemrograman antara lain bahasa pemrograman PHP sedangkan Codeigniter merupakan kerangka kerja dengan bahasa pemrograman PHP. Kerangka kerja Codeigniter banyak digunakan oleh pengembang aplikasi berbasis web yang pemula. Untuk untuk mengetahui apakah MongoDB dapat diintegrasikan dengan Codeigniter maka dibuat aplikasi permainan kokology dengan menggunakan MongoDB dan Codeigniter. Kata Kunci : MongoDB, Kokology,Basis Data, Codeigniter, Framework PENDAHULUAN Buku kokology 1 dan 2 telah menjadi salah buku dengan penjualan terbaik karena buku permainan kokology ini mudah dimainkan dan pemain dapat mengenali potensi diri yang tidak disadarinya. Sampai saat ini permainan kokology masih dalam bentuk buku jika permainan kokology dapat dibuat dalam bentuk aplikasi berbasis web maka akan lebih banyak orang yang dapat mengetahui dan memainkan permainan ini. Basis data yang akan digunakan dalam aplikasi ini adalah MongoDB. MongoDB merupakan basis data NoSQL yang dikembangkan sejak Oktober 2007 oleh 10Gen, dirilis publik sejak Februari 2009. MongoDB bisa melakukan proses pencarian lebih cepat ketimbang MySql, tidak perlu membuat struktur tabel, hanya perlu melakukan proses insert maka MongoDB akan otomatis membuatkan struktur tabelnya. Dengan kemudahan yang diberikan maka akan membantu dalam membuat basis data. Dalam tiap document MongoDB tidak harus memiliki struktur yang sama. Karakteristik MongoDB yang ini dianggap cocok jika diimplementasikan dengan permaian kokology yang tiap skenarionya memiliki struktur yang berbeda. Dalam pembuatan aplikasi ini menggunakan kerangka kerja Codeigniter. Codeigniter merupakan kerangka kerja yang banyak digunakan oleh pemula untuk membangun aplikasi berbasis web. Jika MongoDB dapat diintegrasikan dengan Codeigniter maka diharapkan perkembangan apliaksi berbasis web akan menjadi lebih luas. Dengan menggunakan diharapkan pembuatan aplikasi berbasis web ini dapat dibuat dalam waktu yang cukup singkat, karena kerangka kerja sudah berisikan fungsi-fungsi yang sering digunakan dalam pembuatan aplikasi yang berbasiskan web, seperti fungsi basis data, validasi, memasukan dan menampilkan data dari basis data sehingga dapat menghemat waktu dalam menuliskan kode program. . TINJAUAN PUSTAKA NoSQL (Not Only SQL) NoSQL (Not Only SQL) merupakan konsep basis data yang sedang berkembang saat ini. Konsep NoSQL sebenarnya bukan hal baru dalam pemodelan basis data karena konsep yang diterapkan merupakan pengembangan (pembaruan) dari model basis data yang telah ada (model hirarki, jaringan, multidimensional dan berorientasi objek). Konsep yang digunakan adalah berupa penyimpanan data non-relasional yang menggunakan model data distribusi (jaringan) modern. Metode-metode dalam NoSQL menyederhanakan proses yang terjadi dalam sistem basis data relasional. Penyederhanaan proses ini memungkinkan data direplikasi di banyak server secara mudah dan menjamin ketersediaan data. Namun di sisi lain, penyederhanaan proses ini memiliki beberapa efek samping. Beberapa metode tersebut mengurangi integritas data, satu hal yang dijamin oleh basis data relasional. Namun demikian, ada beberapa implementasi NoSQL yang juga telah menyediakan integritas data seperti basis data relasional Menurut Wikipedia, NoSQL adalah sebuah konsep mengenai penyimpanan data non-relasional. Berbeda dengan model basis data relasional yang selama ini digunakan, NoSQL menggunakan beberapa metode yang berbeda-beda. Metode-metode tersebutmenurut Dwight Merriman, salah satu kontributor MongoDB, di antaranya adalah: Key-value stores. Table-oriented Document-oriented Graph-oriented. Tujuan pengembangan NoSQL adalah untuk menyelesaikan berbagai masalah yang tidak bisa ditangani oleh basis data relasional, yaitu masalah skalabilitas untuk pemrosesan data berukuran besar. Jika data yang anda gunakan dalam aplikasi nanti akan berkembang menjadi berukuran besar, maka NoSQL dapat menjadi pertimbangan alternatif sebagai penyimpanan data. Istilah NoSql pertama kali digunakan pada tahun 1998 sebagai nama untuk open source basis data yang ringan tidak mengekspos antarmuka SQL. Penulisnya, Carlo Strozzi, mengklaim bahwa sebagai gerakan NoSql “ berangkat dari model relasional yang lebih tepat disebut NoREL atau sesuatu yang berpengaruh. Istilah ini diperkenalkan kembali pada awal 2009 oleh karyawan Rackspace, Eric Evans, ketika Johan Oskarsson dari Last.fm ingin mengorganisir sebuah acara untuk membahas open source basis data terdistribusi Kokology Kokology diciptakan ahli psikologi Jepang yang bernama Isamu Saito dan Tadahiko Nagao ini. Kokology tidak menggunakan istilah psikologi yang tidak semua orang awam mengerti, permainan kokology ini meminta pemain untuk menjawab pertanyaan seputar topik-topik yang menghibur, seperti warna burung imajinasi yang terbang ke jendela kemudian menyingkapkan apa arti yang jawaban pemain. Isamu Saito, seorang profesor terkemuka di Universitas Rissho dan Waseda di jepang, adalah pengarang beberapa buku terlaris dibidang psikologi dan hubungan. ia adalah pencipta kokology.Tadahiko nagao adalah pemimpin proyek kokology yang ditemukan profesor saito. Kokology telah terjual lebih dari 4 juta eksampler di Jepang. Kokology merupakan kata dalam 2 bahasa yakni Jepang dan Yunani, dalam bahsa Jepang kokoro, pikiran, semangat, perasaan + Yunani, -logia, ilmu. Menurut istilah, kokology adalah suatu permainan psikologi baru yang menarik dan penuh kesenangan untuk menyingkap emosi dan sifat tingkah laku seseorang yang sebenarnya. Skenario kokology berdasarkan prinsip psikologi, kokology meminta pemain menjawab pertanyaan seputar topik2 yang menghibur, seperti warna burung imajinasi yang terbang ke jendela pemain, kemudian apa yang akan pemain katakan akan memiliki makna tertentu. Kokology menawarkan pendekatan unik terhadap penemuan diri. Ketika dimainkan bersama orang lain akan memberikan masukan yang bagus tentang diri sendiri yang tidak pernah diketahui. MongoDB Saat ini muncul konsep baru di bidang teknologi DBMS yang dikenal dengan NoSQL (Not Only SQL). NoSQL adalah DBMS non-relational. Konsep NoSQL yang sedang berkembang saat ini adalah konsep Document Oriented Basis data. Menurut Kristina Chodorow dan Michael Dirolf (penulis, yang juga software engineer asal Amerika Serikat), salah satu DBMS terbaik yang menggunakan konsep Document Oriented Basis data adalah mongoDB. MongoDB merupakan database open source berbasis dokumen (Document-Oriented Database) yang awalnya dibuat dengan bahasa C++. MongoDB sendiri sudah dikembangkan oleh 10gen sejak Oktober 2007, namun baru dipublikasikan pada Februari 2009. Selain karena performanya 4 kali lebih cepat dibandingkan MySQL serta mudah diaplikasikan, karena telah tergabung juga sebagai modul PHP. Dalam konsep MongoDB tidak ada yang namanya tabel, kolom ataupun baris yang ada hanyalah collection sama dengan tabel, document sama dengan record. Data modelnya sendiri disebut BSON dengan struktur mirip dengan JSON. Dengan konsep key-value yang ada pada MongoDB, setiap document otomatis memiliki index id yang unik. Hal ini membantu mempercepat proses pencarian data secara global Alasan Menggunakan MongoDB MongoDB hadir dengan beberapa kelebihan yaitu : Performa yang ditawarkan MongoDB lebih cepat dibandingkan MySQL ini disebabkan oleh memcached dan format dokumennya yang berbentuk seperti JSON Replikasi, adalah fitur yang sangat bermanfaat untuk backup data secara realtime. MongoDB sangat cocok digunakan untuk portal berita ataupun blog, namun belum cocok untuk digunakan pada sistem informasi yang berkaitan dengan keuangan karena MongoDB tidak mendukung transaction SQL Auto-sharding, merupakan fitur untuk memecah database yang besar menjadi beberapa bagian demi optimalisasi performa database. Penggunaannya sendiri sangat berguna ketika Anda memiliki website dengan database yang jutaan baris, sharding akan membantu memecahnya menjadi beberapa bagian MongoDB juga sudah mendukung C, C++, C#, Erlang, Haskell, Java, JavaScript, .NET(C# F#, PowerShell), Lips, Perl, PHP, Python, Ruby dan Scala Cross-platform, sehingga dapat digunakan di Windows, Linux, OS X dan Solaris Proses CRUD (Create, Read, Update, Delete) terasa sangat ringan Map/Reduce, akan sangat membantu ketika kita melakukan operasi agregasi. Dimana semua entry datangnya dari collection dan outputnya pun akan menjadi collection juga. Kalau di MySQL biasanya kita menggunakan query GROUP BY GridFS, spesifikasi yang digunakan untuk menyimpan data yang sangat besar. Pengenalan Kerangka kerja Kerangka kerja dapat diartikan sebagai kerangka kerja, karena dengan kerangka kerja dapat mempermudah programer dalam membangun suatu website atau aplikasi yang berbasis web. Kerangka kerja dapat diartikan sebagai koleksi atau kumpulan potonganpotongan program yang disusun atau diorganisasikan sedemikian rupa, sehingga dapat digunakan untuk membantu membuat aplikasi utuh tanpa harus membuat semua kodenya dari awal. Sebuah kerangka kerja selain menyediakan lingkungan pengembangan sendiri, kerangka kerja juga menyediakan berbagai macam fungsi siap pakai yang bisa digunakan dalam pembuatan website atau aplikasi berbasis web. Fungsi yang terdapat pada kerangka kerja bukan fungsi asli PHP oleh karena itu bentuk fungsinya akan sedikit berbeda. Keuntungan Kerangka kerja Kerangka kerja dibuat dan dirancang untuk mempermudah programer dengan keuntungan sebagai berikut : Waktu pembuatan aplikasi atau website menjadi lebih singkat Kode aplikasi website lebih mudah dibaca karena jumlah barisnya cenderung lebih sedikit. Dalam mengelola website akan lebih mudah karena programer tidak harus fokus dengan seluruh komponen seperti tampilan,basis data dan program utama. Tidak perlu membuat kode penujang apliaksi seperti koneksi basis data,validasi form, GUI dan keamanan Pengenalan dan Keuntungan Kerangka kerja Codeigniter CodeIgniter merupakan salah satu kerangka kerja PHP yang ada. CodeIgniter dikembangkan oleh Rick Ellis. Selain codeigniter juga masih terdapat beberapa kerangka kerja php seperti cake, symphony, yii, zend dan prado Tujuan dari pembuatan kerangka kerja CodeIgniter ini menurut petunjuk penggunaannya adalah untuk menghasilkan kerangka kerja yang akan dapat digunakan untuk pengembangan proyek pembuatan website secara lebih cepat dibandingkan dengan pembuatan website dengan cara koding secara manual, dengan menyediakan banyak sekali pustaka yang dibutuhkan dalam pembuatan website, dengan antarmuka yang sederhana dan struktur logika untuk mengakses pustaka yang dibutuhkan. CodeIgniter membiarkan untuk memfokuskan diri pada pembuatan website dengan meminimalkan pembuatan kode untuk berbagai tujuan pembuatan website. Keuntungan menggunakan kerangka kerja codeigniter adalah sebagai berikut : Gratis. Berjalan di PHP versi 4 dan 5. Ringan dan cepat. Menggunakan MVC. Dokumentasi yang lengkap. Konsep MVC Konsep MVC terdiri dari tiga bagian yaitu Model, View dan Controller. Didalam website dinamis setidaknya terdiri dari 3 hal yang paling pokok, yaitu basis data, logika aplikasi dan cara menampilkan halaman website. 3 hal tersebut direpresentasikan dengan MVC yaitu Model untuk basis data, view untuk cara menampilkan halaman website dan controller untuk logika aplikasi. Model Merepresentasikan struktur data dari website yang bisa berupa basis data maupun data lain, misalnya dalam bentuk berkas teks atau berkas xml. Biasanya didalam model akan berisi kelas dan fungsi untuk mengambil, melakukan update dan menghapus data website. Karena sebuah website biasanya memnggunakan basis data dalam menyimpan data maka bagian model biasanya akan berhubungan dengan perintah-perintah query SQL. View Merupakan informasi yang ditampilkan kepada pengunjung website. Sebisa mungkin didalam View tidak berisi logika-logika kode tetapi hanya berisi variabel-variabel yang berisi data yang siap ditampilkan. View bisa dibilang adalah halaman website yang dibuat menggunakan HTML dengan bantuan CSS atau JavaScript. Controller Controller merupakan penghubung antara Model dan View. Didalam Controller inilah terdapat kelas-kelas dan fungsi-fungsi yang memproses permintaan dari View kedalam struktur data didalam Model. Controller tidak boleh berisi kode untuk mengakses basis data. Tugas controller adalah menyediakan berbagai variabel yang akan ditampilkan di view, memanggil model untuk melakukan akses ke basis data, menyediakan penanganan kesalahan, mengerjakan proses logika dari aplikasi serta melakukan validasi atau cek terhadap input. Fitur Codeigniter Berikut ini adalah fitur-fitur yang terdapat pada codeigniter : Sistem berbasis Model View Controller Kompatibel dengan PHP versi 4 dan versi 5 Ringan dan Cepat. Terdapat dukungan untuk berbagai basis data. Mendukung Active Record Basis data. Mendukung form dan validasi data masukan. Tersedia pengaturan session. Tersedia kelas untuk mengirim email. Tersedia kelas untuk manipulasi gambar (cropping,resizing, rotate dan lain-lain). Tersedia kelas untuk uppanggil berkas. Tersedia kelas yang mendukung transfer via FTP. 1. 2. 3. 4. Mendukung lokalisasi bahasa. Tersedia kelas untuk melakukan pagination Mendukung enkripsi data. Pencatatan kesalahan yang terjadi. Tersedia kelas untuk membuat calendar. Tersedia kelas untuk mengetahui pengguna agent, misalnya tipe browser dan sistem operasi yang digunakan pengunjung. Tersedia kelas untuk pembuatan template website Memiliki helper yang sangat banyak jumlahnya. METODE PENELITIAN Berikut ini adalah tahapan-tahapan penilitian yang dilakukan untuk membuat aplikasi permain kokolgy dengan MongoDB dan Codeigniter. Penelitian Kepustakaan Perencanaan a. Definisi Masalah b. Solusi Alternatif Analisa Analisa yang dilakukan adalah analisa MongoDB dan Codeigniter yang meliputi instalasi dan konsep dasar MongoDB, analisa kebutuhan data untuk skenario permainan kokolgy dan analisa untuk kebutuhan perangkat lunak dan perangkat keras. Perancangan Perancangan yang dibuat meliputi : a. Perancangan UML mengunakan use case diagram, activity diagram dan sequence diagram. b. Perancangan struktur navigasi untuk pemain dan admin c. Perancangan tampilan untuk pemain dan admin 5. Implementasi Pada tahap ini perancangan yang sudah dibuat sebelumnya kaan diimplementasikan ke dalam kerangka kerja Codeigniter dan basis data MongoDB untuk membuat permainan kokology. HASIL DAN PEMBAHASAN Pembuatan aplikasi permainan kokology ini lebih difokuskan untuk memahami konsep document oriented database dan mempelajari cara membuat aplikasi berbasis web menggunakan basis data MongoDB dan kerangka kerja Codeigniter. Setelah mempelajari dan melakukan analisa terhadap MongoDB dan Codeigniter maka diimplementasikan dalam permainan kokology. Dari analisa yanng dilakukan MongoDB dapat diintegrasikan dengan bahasa pemrograman PHP. Karena kerangka kerja Codeigniter merupakan kerangka kerja dengan bahasa pemrograman PHP maka diharapkan MongoDB juga dapat diintegrasikan dengan Codeigniter. Tetapi bentuk perintah pada Codeigniter tidak sama dengan bentuk perintah pada PHP untuk itu dilakukan percobaan untuk mengetahui sejauh mana basis data MongoDB dapat diintegrasikan dengan kerangka kerja Codeigniter. Untuk melakukan percobaan tersebut maka akan diimplemntasikan dalam permainan kokology. KESIMPULAN Penggunaan perintah dasar untuk memanipulasi data dalam basis data MongoDB sudah dapat dilakukan dalam Codeigniter seperti untuk menambah, mengubah, menghapus, menghitung jumlah document di dalam collection serta melakukan penambahan atau pengurangan otomatis. Untuk itu dapat dikatakan bahwa MongoDB sudah dapat diintegrasikan dan berjalan dengan baik pada kerangka kerja Codeigniter. Dari proses pembuatan simulasi ini, dapat dilihat keunggulan dari MongoDB diantaranya adalah basis data yang menggunakan konsep document oriented sehingga untuk menyimpan data yang tidak terstruktur seperti kokology tidak sulit dan tidak menghabiskan memori. Kemudahan lain yang diberikan oleh MongoDB adalah tidak harus membuat struktur data untuk penyimpanan di basis data dan mendefinisikan primary key. Hal ini tentunya akan membantu dalam proses penyimpanan ke basis data. Penggunaan MongoDB ini juga memiliki keterbatasan, diantaranya : Meskipun sudah ada beberapa penyedia layanan host yang sudah menyediakan layanan MongoDB seperti mongolab, tetapi untuk tampilannya masih membingungkan dan tidak user friendly seperti pada penyedia layanan host pada umumnya. MongoHQ juga merupakan salah satu penyedia layanan host untuk MongoDB, tetapi untuk mencoba harus berbayar menggunakan pembayaran internasional seperti visa. Untuk itu penyedia layanan host untuk MongoDB masih sangat terbatas dan saat ini baru tersedia di luar Indonesia. Versi MongoDB yang digunakan pada permaian ini adalah versi 32-bit sehingga hanya dapat menampung data sampai 2,5 GB MongoDB tidak mendukung proses transaksi karena model ini dibangun tanpa relasi, constrain dan transactional process. Oleh karena itu MongoDB sangat tidak cocok jika digunakan untuk membangun sistem berbasis transaksi seperti perbankan, pergudangan, atau akunting. DAFTAR PUSTAKA Anonim, NOSQL DAN RDBMS URL: http://134lq15.wordpress.com/2010/ 04/12/nosql-dan-rdbms/ Akses tanggal 12 Juli 2012 22.38 Anonim,MongoDB , URL: http://en.wikipedia.org/wiki/Mongo DB Akses tanggal 10 Juli 2012 Anonim. CodeIgniter – User’s Guide, URL : http://codeigniter.com/user_guide/, 2012 Dzacko, Haidar, Basis Data (Database). Mangosoft. 2007. Eko Kurniawan Khannedy , Pengenalan Sistem Manajemen Basis Data MongoDB URL: http://stripbandunk.com/2011/10/18/ pengenalan-sistem-manajemenbasis-data-mongodb/. Akses tanggal 20 Juni 2012 Faisal Akib, Berbagai Model Data. URL : http://teknikinformatika.com/ model-data/. Akses tanggal 14 Juli 2012. Fathansyah,Ir, Basis Data, Penerbit Infomatika Bandung,Bandung 1999 Francia Steve, MongoDB and PHP, O'Reilly Media,2012 Nagao Tadahiko,Saito Isamu, Kokology 2, Pustaka Delaprasta, 2007 Seguin Karl,The Little MongoDB Book, AttributionNonCommercial3.0Unported sinaryuda,Pengenalan MongoDB URL : http://www.sinaryuda.web.id/tutoria l/pengenalan-mongodb.html Akses tanggal 11 Juni 2012 Wardana, Menjadi Master PHP dengan Framework Codeigniter, Penerbit Elexmedia, Jakarta,2010