PEMBUATAN WEBSITE DENGAN KONSEP SOCIAL COMMERCE DAN DOCUMENT-ORIENTED NOSQL SEBAGAI FASILITAS BERBAGI INFORMASI 1
Adi Kurniawan (10107041) Dr. Lussiana E.T.P., SSi., MT. 1 Mahasiswa Sistem Informasi Universitas Gunadarma
[email protected] 2 Dosen & Staff Universitas Gunadarma
[email protected] 2
ABSTRAK Semakin berkembangnya konsep web 2.0 dalam dunia teknologi informasi menghasilkan berbagai inovasi dalam pengembangan website, salah satu contoh dari inovasi tersebut seperti munculnya konsep social commerce yang merupakan gabungan antara social network dan e-commerce. Namun, sebuah website social commerce cenderung memiliki struktur data yang relatif dinamis dan berkembang menjadi semakin kompleks. Adapun website yang mengadopsi konsep social commerce sebagai fasilitas berbagi informasi tentang tempat makan seperti dalam penelitian ini juga tidak terlepas dari masalah tersebut. Untuk itu, penelitian ini bertujuan untuk memberikan solusi manajemen data bagi sebuah website yang menggunakan konsep social commerce dengan mengimplementasikan konsep baru yang sedang berkembang yaitu document-oriented NoSQL. Adapun tahapan yang dilakukan pada penelitian ini antara lain analisis sistem, perancangan sistem, serta pembuatan dan pengujian website. Berdasarkan hasil pengujian dalam penelitian ini, document-oriented NoSQL MongoDB menyimpan data dalam bentuk document yang sifatnya schemaless. Dengan demikian dapat disimpulkan bahwa penggunaan document-oriented NoSQL dapat menjadi alternatif solusi manajemen data bagi website social commerce dengan struktur data yang lebih dinamis dan tidak terpaku pada pendefinisian skema yang umumnya relatif statis seperti pada relational database. Kata kunci: website, social commerce, document-oriented nosql, mongodb, lithium framework ABSTRACT The development of web 2.0 in information technology produces many innovation in website development. One example of those innovations is the emmergence of social commerce which is a combination between social network and e-commerce. However, a social commerce website tend to have a relatively dynamic data structure and becomes increasingly complex. It also applies to the website being build on this research which is using the concept of social commerce as a facility to share information about dining places. To overcome this situation, this research was conducted to implements the newly developing concept document-oriented NoSQL as an alternative data 1
management system solution for a website using the concept of social commerce site. Research consists of several phase such as system analysis, system design, and implementation and testing. Based on testing phase in this research, document-oriented NoSQL MongoDB store data in the form of schemaless document. It can be concluded that the document-oriented NoSQL can be used as an alternative data management solutions for social commerce website with a more dynamic data structures while not as fixated on a relatively static schema definition as relational databases does. Keyword : website, social commerce, document-oriented nosql, mongodb, lithium framework PENDAHULUAN Dalam dunia teknologi informasi, dikenal sebuah teknologi yang disebut dengan web 2.0 dimana kemunculannya merupakan awal dari penggunaan internet yang lebih bersifat sosial. Maksudnya adalah teknologi web 2.0 tersebut merubah persepsi penggunaan internet dari interaksi pemberian informasi satu arah menjadi sebuah media berbagi informasi antar pengguna. Awalnya informasi yang ada di website hanya berasal dari pihak pengembang website. Namun saat ini, hampir setiap pengguna internet bisa menjadi penyedia informasi atau konten, bukan hanya pihak pengembang website itu sendiri. Berkembangnya fasilitas blog, forum dan social network juga telah mengubah paradigma internet menjadi sebuah wadah second life di dunia maya. Salah satu contoh social network yang terkenal adalah Facebook, dengan jumlah pengguna yang terhitung lebih dari 39 juta di Indonesia (sumber: CheckFacebook.com, Agustus 2011). Perkembangan web 2.0 terutama konsep social network tersebut dapat dimasukkan ke dalam sebuah website e-commerce untuk menarik banyak pelanggan serta memberi suasana baru dalam hal promosi. Pelanggan bisa disuguhi dengan berbagai fitur social network pada suatu website e-commerce seperti fasilitas komentar terhadap suatu produk tertentu, pemberian rating, diskusi dengan pelanggan lain, dan sebagainya. Beberapa konsep ini cukup menjanjikan mengingat saat ini pelanggan lebih cerdas dalam memberikan komentar tentang produk tertentu. Penggabungan antara social network dan e-commerce ini bisa disebut sebagai social commerce. Lebih lengkapnya menurut Wikipedia, social commerce adalah bagian dari ecommerce yang melibatkan penggunaan media sosial, media online yang mendukung interaksi sosial dan sumbangan pengguna, untuk membantu dalam promosi, pembelian dan penjualan online produk dan jasa. Tak hanya sebatas itu, Google Maps milik Google Inc. juga memberikan kontribusi tersendiri bagi dunia internet pada umumnya dan social commerce khususnya. Seorang pemilik usaha bisa menunjukkan lokasi tempat usahanya dengan menyisipkan peta dari Google Maps sehingga calon pelanggan mendapatkan akses visual berupa peta lokasi dari tempat tersebut.
2
Namun sepadan dengan perkembangannya, website social commerce yang juga mengandung konsep user-generated content dari web 2.0 dapat memiliki konten dengan kompleksitas hubungan antar entitas yang cukup tinggi, serta kemungkinan perkembangan skema struktur data yang relatif dinamis mengikuti kebutuhan ketersediaan informasi. Untuk itu, dapat digunakan sebuah metode baru dalam manajemen data dengan menggunakan document-oriented NoSQL yang sifatnya schemaless. Pemanfaatan document-oriented NoSQL dapat menjadi poin tambahan dalam mengembangkan basis data yang lebih dinamis dan tidak terpaku pada skema awal yang relatif statis. Sehingga tidak diperlukan tahapan normalisasi untuk struktur data seperti yang biasa dilakukan apabila menggunakan relational database pada umumnya. Kemudian, apabila terjadi perubahan perlakuan terhadap informasi yang disediakan website, tidak diperlukan pendefinisian skema ulang karena NoSQL akan beradaptasi dengan perubahan struktur data di layer aplikasi tersebut. Dengan berlandaskan pada perkembangan teknologi diatas, penelitian ini bertujuan untuk membuat website social commerce dengan memanfaatkan documentoriented NoSQL sebagai solusi manajemen data. Website berguna sebagai fasilitas berbagi informasi antar pengguna tentang berbagai place (tempat makan), dish (menu sajian), dan promo (promosi), serta pemberian review oleh pengguna terhadap suatu place, dish, ataupun promo tertentu. TINJAUAN PUSTAKA Web 2.0 Web 2.0 merupakan evolusi dari web 1.0 yang merupakan cikal bakal dari web. Web 1.0 ini dirancang oleh Tim Berners-Lee pada tahun 1989 dengan konten yang sifatnya read-only, non-interaktif, dan statis, serta frekuensi update informasi yang rendah. Adapun istilah Web 2.0 ini berkaitan dengan aplikasi web yang memfasilitasi pertukaran informasi yang partisipatif, interoperabilitas, user-generated content, dan kolaborasi di World Wide Web. Sebuah situs Web 2.0 memungkinkan pengguna untuk berinteraksi dan berkolaborasi satu sama lain dalam dialog media sosial sebagai pencipta (prosumers) dari user-generated content dalam komunitas virtual. Berbeda dengan website di mana pengguna (konsumen) yang secara pasif melihat konten yang dibuat untuk mereka. Contoh Web 2.0 diantaranya termasuk social network, blog, wiki, video sharing, aplikasi web, mashup dan folksonomi. Salah satu dari hasil pengembangan konsep web 2.0 yaitu konsep social commerce. Saat ini juga telah dirintis pengembangan web 3.0 yang merupakan evolusi dari web 2.0 dan biasa disebut sebagai semantic web. Semantic Web merupakan sebuah proyek yang bertujuan untuk membuat media universal untuk pertukaran informasi dengan menempatkan dokumen dengan konten yang computer-processable meaning (semantics) di World Wide Web. 3
Social Commerce Konsep dasar dari website yang dibuat dalam penelitian ini adalah social commerce. Menurut Wikipedia, social commerce merupakan subset dari e-commerce yang melibatkan penggunaan media sosial, media online yang mendukung interaksi sosial dan sumbangan pengguna, untuk membantu dalam promosi, pembelian dan penjualan online produk dan jasa. Ringkasnya, social commerce adalah penggunaan social network dalam konteks e-commerce. Istilah social commerce diperkenalkan oleh Yahoo! pada November 2005 untuk menggambarkan satu set kolaboratif alat belanja online seperti daftar pilihan, rating pengguna dan user-generated content-sharing informasi produk secara online dan fitur saran. Konsep sosial commerce dikembangkan oleh David Beisel sekitar tahun 2005 untuk menunjukkan konten advertorial yang sifatnya user-generated di salah satu website e-commerce, dan oleh Steve Rubel dimanfaatkan untuk memasukkan alat-alat kolaborasi e-commerce yang memungkinkan pembeli untuk mendapatkan saran dari orang terpercaya, menemukan barang-barang dan jasa dan kemudian membelinya. Dengan mengadopsi konsep social commerce yang merupakan salah satu bagian dari web 2.0, data dan informasi yang ada pada suatu website biasanya akan lebih variatif dan kompleks. Oleh karena itu, terdapat beberapa alternatif manajemen data yang salah satunya adalah dengan memanfaatkan konsep baru NoSQL Document-oriented NoSQL NoSQL merupakan sebuah konsep mengenai penyimpanan data non-relasional. NoSQL bukan berati no SQL, melainkan not only SQL. Berbeda dengan model basis data relasional yang selama ini digunakan, NoSQL menggunakan beberapa metode yang berbeda-beda. Metode-metode tersebut di antaranya adalah key-value stores, tableoriented, document-oriented, dan graph-oriented. Dalam penelitian ini, metode yang digunakan adalah document-oriented. Metode document-oriented menjanjikan pendekatan yang lebih fleksibel untuk perubahan skema. Dalam relational database, setiap perubahan ke model data berakibat program perlu dimodifikasi, kemudian disesuaikan dengan perubahan skema. Pada database yang relatif besar, skema perubahan itu sendiri mungkin melibatkan penambahan ratusan node database. Dalam sebuah document-oriented, aplikasi dapat memodifikasi struktur document kapan pun diinginkan. Metode document-oriented memiliki beberapa fitur yang mendorong skalabilitas. Karena semua data yang diperlukan untuk operasi sebagian besar didapatkan dari satu dokumen, tidak ada kebutuhan untuk melakukan join atau transaksi multi-objek. Salah satu document-oriented database NoSQL yang handal adalah MongoDB.
4
MongoDB MongoDB (dari kata “humongous”) adalah sebuah Document-Oriented Database Open Source. MongoDB merupakan salah satu database noSQL. MongoDB tidak mengenal tabel, kolom dan baris jadi tidak ada schema dalam MongoDB (schemaless). Unit terkecil dari MongoDB adalah document, sedangkan kumpulan dari document adalah collection. Dalam database relasional, document ibarat record dan collection seperti sebuah tabel. Document dalam MongoDB dapat memiliki atribut yang berbeda-beda dengan document yang lainnya walaupun berada dalam satu collection yang sama. Berikut ini analogi lengkapnya : 1. database merupakan kumpulan dari collection 2. collection merupakan kumpulan dari document 3. document terdiri dari field 4. field adalah pasangan key-value 5. key adalah nama field(string) 6. value bisa berupa : a. string, integer, float, timestamp, binary, dst., b. embedded document, atau c. array MongoDB ini ditulis menggunakan C++, beberapa fitur yang dimiliki oleh MongoDB yaitu document-oriented storage, full index support, replication & high availability, auto-sharding, querying, fast in-place updates, map/reduce, gridFS, commercial support. MongoDB memberikan dukungan penuh dalam pengembangan website berbasis PHP dengan menggunakan driver. Sebaliknya, komunitas PHP juga telah membuat sejumlah library untuk lebih mudah mengembangkan website dengan menggunakan MongoDB dan mengintegrasikannya dengan framework. Salah satu framework PHP yang memiliki dukungan terhadap pengembangan website menggunakan MongoDB adalah Lithium Framework. Lithium Framework Lithium merupakan framework PHP yang mendukung pengembangan aplikasi web secara RAD (Rapid Application Development). Lithium bekerja dilingkungan PHP 5.3 atau lebih dan berfokus pada kualitas, kecepatan, dan fleksibilitas. Lithium mengadopsi konsep Object Oriented dan MVC untuk pengembangan website. Konsep MVC membagi sebuah halaman website secara logika menjadi tiga bagian yaitu Model, View, dan Controller. Model adalah sebuah class yang berguna untuk interaksi dengan struktur data seperti database. Kemudian View adalah file PHP biasa (bukan class) yang bertindak sebagai interface atau dengan kata lain tampilan yang di-render oleh web browser. Sedang Controller merupakan sebuah class yang berfungsi sebagai penghubung antara Model dengan View, juga berguna untuk mengatur alur logika dari website. 5
Lithium memahami penyimpanan terdistribusi dan caching, sistem antrian, micro-dispatch framework, dan dukungan terintegrasi untuk database berorientasi dokumen seperti CouchDB dan MongoDB, bersama database relasional seperti like MySQL dan PostgreSQL. Beberapa fitur yang dimiliki oleh Lithium diantaranya adalah: 1. Unit Testing yang terintegrasi 2. Aspect Inspired Filter System 3. Document Oriented Data Sources 4. Automatic Output Escaping 5. Dukungan plugin yang ekstensibel 6. Static Model berorientasi objek 7. Dukungan alami untuk database NoSQL. METODE PENELITIAN Dalam Metode Penelitian diuraikan prosedur yang dilakukan dalam penelitian dimana secara garis besar dibagi menjadi tiga tahap yaitu analisis sistem, perancangan, dan implementasi. Analisis sistem menitikberatkan pada pendefinisian konsep website seperti apa yang ingin dibuat. Kemudian dalam tahap perancangan lebih menjelaskan mengenai desain dari website mulai dari rancangan model data yang dipakai, peta situs, serta rancangan tampilan website. Dalam tahapan prosedur pembuatan website, mencakup tahapan pembuatan website berdasarkan analisis dan perancangan yang telah dibuat sebelumnya. Sedangkan prosedur pengujian menjabarkan prosedur pengujian terhadap beberapa fitur utama yang ada pada website. Analisis Sistem Tahapan pertama dalam metode penelitian yaitu mendefinisikan konsep website yang dibuat beserta fungsi-fungsi apa saja yang terdapat pada website. Secara umum, website dirancang untuk digunakan sebagai media sharing dimana pengguna saling berbagi informasi mengenai pengalaman mereka saat mengunjungi dan mencoba menu yang terdapat di tempat makan tertentu. Informasi tersebut dinamakan dengan review yang dapat berisi pendapat, kritik, masukan, atau sekedar cerita untuk dibagi dengan pengguna lain. Sedangkan tempat makan yang dimaksud bisa berupa restoran, kafetaria, ataupun tempat makan sederhana disisi jalan. Dalam penelitian ini tempat makan tersebut disebut sebagai place. Review dari pengguna itu sendiri bisa ditujukan terhadap suatu place, dish (menu sajian), ataupun promo (promosi) yang terdapat pada place tersebut. Pengguna sebelumnya diharuskan untuk melakukan registrasi untuk mendaftarkan dirinya dengan menggunakan email atau dengan melakukan integrasi ke account Facebook milik mereka.
6
Kemudian dengan mengadopsi konsep user-generated content dimana sebagian besar konten dihasilkan oleh pengguna, pengguna diberikan kebebasan untuk menambahkan place dish, ataupun promo tertentu dengan tetap mempertahankan konsistensi data dengan melakukan verifikasi seperti antisipasi kerangkapan data. Pengguna juga diharuskan memberikan beberapa informasi tertentu. Contohnya seperti pada penambahan place, pengguna diminta memberikan informasi berupa nama, kategori, lokasi, serta informasi lainnya yang terkait dengan place tersebut agar pengguna lain bisa mencerna informasi mengenai place tersebut dengan lebih baik. Penambahan place ini juga berguna jika pengguna ingin memberikan review sedangkan place tersebut belum ada dalam website. Selain itu, pengguna juga diberikan fasilitas untuk menjalin pertemanan dan berkirim pesan ke pengguna lain. Tidak hanya review, pengguna juga bisa memberikan tanggapan berupa rating terhadap place, dish, atau promo tertentu. Perancangan Sistem Setelah mendeskripsikan konsep website yang dibangun, maka selanjutnya dibutuhkan beberapa rancangan dasar seperti rancangan model data, peta situs dan juga rancangan tampilan a. Rancangan Model Data Pada dasarnya penelitian ini bertujuan untuk mengimplementasikan penggunaan konsep document-oriented noSQL dengan menggunakan MongoDB. Dipilih MongoDB karena memiliki konsep document yang schemaless, kemudahan penggunaan, kecocokan dalam pengembangan aplikasi berbasis web. Selain itu MongoDB juga memiliki dukungan terhadap bahasa pemrograman PHP, komunitas, dan resource informasi yang cukup luas. Konsep dasar penyimpanan data dalam MongoDB berbeda dengan konsep dari Relational database. Pada MongoDB data disimpan bukan dalam bentuk record, melainkan dalam sebuah document. Document-document tersebut digabungkan ke dalam sebuah collection. Analogi ini sama seperti record dalam tabel. Pada dasarnya tidak diperlukan pendefinisian skema seperti pada relational database, semua data bisa dimasukkan ke dalam document sesuai kehendak dan dikelompokkan dalam satu collection. Namun dalam penggunaannya, tetap memerlukan standarisasi skema untuk kemudahan pengembangan, konsistensi logika aplikasi, kemudahan, dan kecepatan pencarian atau query, serta antisipasi limit ukuran per document yang telah diatur oleh MongoDB sebesar 16MB (untuk versi 1.7/1.8). Sesuai dengan permasalahan yang telah didefinisikan sebelumnya, website membutuhkan beberapa collection diantaranya adalah users, messages, places, dishes, promos, dan reviews. Masing-masing collection berisi kumpulan document yang berkaitan. Contohnya collection users, merupakan collection dari document user yang berisi informasi dari masing-masing pengguna yang telah terdaftar dalam website, dan di dalam MongoDB collection tersebut disimpan dalam bentuk jamak yaitu dengan nama users. 7
b. Peta Situs Berikut ini merupakan rancangan dari peta situs dari website dalam penelitian ini.
Gambar 1. Peta Situs Pada Gambar 1 terlihat bahwa website memiliki beberapa halaman utama seperti halaman Places, Place Detail, Add Place, Dishes, Dish Detail, Add Dish, Promos, Promo Detail, Add Promo, Login, Register, Profile, Dashboard, Messages, dan Message Detail. c. Rancangan Tampilan Setelah mendesain peta situs, maka dapat dibuat rancangan tampilan dari halaman-halaman yang ada pada peta situs secara lebih detail. Sebagai contoh adalah halaman awal (Homepage). Gambar 2 berikut ini adalah rancangan dari tampilan halaman awal atau homepage.
8
Gambar 2. Rancangan Halaman Awal (Homepage) Sesuai rancangan pada Gambar 2, halaman ini berisi informasi place, dish, dan promo dengan rating tertinggi, serta review terbaru. Selain itu terdapat juga peta (Place Map) yang menampilkan sebaran dari place yang telah ditambahkan oleh para pengguna. Prosedur Pembuatan dan Pengujian Tahapan ini menguraikan tentang prosedur pembuatan website, serta prosedur pengujian dengan mengacu pada hasil analisis dan rancangan yang telah dibuat. a. Prosedur Pembuatan Website Prosedur untuk pembuatan website dibuat berdasarkan pada hasil analisa dan perancangan halaman website yang telah didefinisikan sebelumnya. Adapun prosedur pembuatan website sebagai berikut : 1. Membuat Halaman Register 2. Membuat Halaman Login 3. Membuat Halaman Dashboard 4. Membuat Halaman Profile 5. Membuat Halaman Messages 6. Membuat Halaman Message Detail 7. Membuat Halaman Places 9
8. Membuat Halaman Add Place 9. Membuat Halaman Place Detail 10. Membuat Halaman Dishes 11. Membuat Halaman Add Dish 12. Membuat Halaman Place Dishes 13. Membuat Halaman Dish Detail 14. Membuat Halaman Promos 15. Membuat Halaman Add Promo 16. Membuat Halaman Place Promos 17. Membuat Halaman Promo Detail 18. Membuat Halaman Select Place 19. Membuat Halaman Awal (Homepage) 20. Membuat Halaman Users b. Prosedur Pengujian Website Pengujian dilakukan terhadap fungsi-fungsi yang merupakan fitur utama pada website. Pengujian dimaksudkan untuk melihat keberhasilan website dalam mengimplementasikan fitur-fitur utama yang ada pada website. Adapun fitur yang di ujikan diantaranya adalah : 1. Fitur Pencarian Dilakukan pengujian terhadap pencarian place (tempat makan), dish (menu sajian), dan promo (promosi) dengan beberapa kemungkinan kondisi untuk memastikan fitur ini bekerja dengan baik dan menghasilkan informasi yang dicari setepat mungkin. 2. Fitur Login Pengujian dilakukan dengan menggunakan beberapa data untuk memastikan fitur login bekerja sebagaimana mestinya baik untuk login dengan form ataupun dengan account Facebook. 3. Fitur Register Pengujian dilakukan terhadap fitur registrasi dengan menggunakan form dan account Facebook. 4. Fitur Penambahan Place Pengujian dilakukan dengan menambahkan place baru dengan berbagai kondisi tertentu. 5. Fitur Penambahan Dish Sama seperti pengujian fitur penambahan place, pada tahap ini pengujian dilakukan dengan menambahkan dish baru dengan berbagai kondisi. 6. Fitur Penambahan Promo Sama seperti pengujian fitur penambahan place dan dish, pengujian dilakukan terhadap proses penambahan promo. 7. Fitur Pemberian Review Pengujian dilakukan pada fitur pemberian review untuk place, dish, dan juga promo. 8. Fitur Friend Request dan Approval Pengujian dilakukan dengan menguji fitur Friend Request dan Approval atau 10
Permintaan Pertemanan dan Persetujuan, menggunakan beberapa account. 9. Fitur Pengiriman Pesan Pengujian dilakukan terhadap proses pengiriman pesan antar pengguna. HASIL PERANCANGAN DAN PENGUJIAN Hasil Analisis Sistem Hasil dari tahapan analisis sistem berupa fitur-fitur utama yang diimplementasikan ke dalam website sesuai dengan rincian analisis yang telah diuraikan sebelumnya. Adapun fitur-fitur tersebut diantaranya adalah fitur pencarian, fitur login, fitur register, fitur penambahan place, fitur penambahan dish, fitur penambahan promo, fitur pemberian review, fitur friend request dan approval (permintaan dan persetujuan pertemanan), dan fitur pengiriman pesan. Hasil Perancangan Model Data Hasil perancangan model data pada bab sebelumnya berupa beberapa class Model yang mengatur interaksi antara data yang tersimpan dalam MongoDB dengan website sesuai dengan collection masing-masing. Adapun model yang dihasilkan diantaranya adalah model Users, Places, Dishes, Promos, Messages, Reviews, dan Reports. Model tersebut menggunakan sebuah konsep ActiveRecord dimana interaksi dengan database di enkapsulasi ke dalam beberapa function, dan field yang ada pada document di database di abstraksikan menjadi atribut dari class tersebut. Hasil Pembuatan Website Hasil dari pembuatan website mengacu pada hasil analisis dan rancangan yang telah didefinisikan pada bagian sebelumnya. Website yang dihasilkan, pembuatannya mengikuti konsep pengembangan website dari Lithium dimana website dibuat dengan menggunakan konsep OOP (berorientasi objek) dan MVC (Model View Controller). Hasil dari pembuatan controller diantaranya UsersController, PlacesController, DishesController, PromosController, PagesController, dan MessagesController. Masing-masing controller memiliki function yang mengakomodir halaman dan fungsi website sesuai dengan karakteristik dari halaman tersebut. Adapun halaman-halaman pada website yang dibuat seluruhnya dibuat berdasar pada controller dan model yang telah didefinisikan. Sebagai contoh, UsersController memiliki sebuah function dengan nama login, yang dipanggil apabila terdapat page request atau halaman yang berfungsi untuk melakukan proses login. Controller tersebut memerlukan interaksi dengan database saat melakukan penyimpanan hasil registrasi pengguna. Interkasi ini ditangani oleh model Users, sehingga controller harus secara eksplisit memanggil dan menggunakan fungsi dari model tersebut. Sebagai contoh yaitu halaman Place Detail. Hasil dari pembuatan halaman ini berupa halaman yang di-render oleh function view dari PlacesController. Pada function ini bukan hanya model Places yang dipanggil dan digunakan fungsinya, tetapi juga 11
model lain seperti Dishes, Promos, dan Reviews. Masing-masing model digunakan untuk mencari data dari document masing-masing yang terkait dengan place yang ingin dilihat informasi detailnya. Place sendiri diidentifikasi oleh function view dengan parameter id dari objek request yang diterima. Kemudian dikirimkan ke model Places sebagai kriteria pencarian. Setelah didapatkan place yang dimaksud, kemudian dilakukan pencarian terhadap dish, promo, dan review yang dimiliki oleh place tersebut. Gambar 3 berikut ini merupakan hasil tampilan dari halaman Place Detail dari sebuah place tertentu yang diambil sebagai contoh.
Gambar 3. Hasil Tampilan Halaman Place Detail 12
Pada Gambar 3 terlihat ada beberapa menu favorit yang dimiliki place tersebut dalam bentuk mini galeri lengkap dengan harga dan rating yang dimiliki. Selain itu juga terdapat beberapa review yang diberikan pengguna terhadap place tersebut. Pada masing-masing review juga ditampilkan nilai rating yang diberikan pengguna sesuai dengan kategorinya. Pada bagian promotion, masih belum ada informasi yang ditampilkan dikarenakan belum ada pengguna yang memberikan informasi mengenai promosi yang mungkin ada pada place tersebut. Kemudian juga ditampilkan alamat dari place tersebut dalam bentuk peta Google Maps beserta marker sebagai penunjuk lokasinya. Hasil Pengujian Website Fitur yang diujikan diantaranya adalah fitur pencarian terhadap place (tempat makan), dish (menu sajian), dan promo (promosi), kemudian fitur login untuk pengguna, registrasi, penambahan place, penambahan dish, penambahan promo, pemberian review, friend request dan approval (permintaan dan persetujuan pertemanan), serta pengiriman pesan. Pengujian dilakukan dengan menggunakan beberapa data yang mungkin untuk mengukur keberhasilan pembuatan website terhadap fitur-fitur yang dijelaskan sebelumnya 1. a.
Hasil Pengujian Fitur Pencarian Pencarian Place Fitur ini merupakan fitur pencarian place yang terdapat pada halaman Places. Pencarian ditangani oleh model Places terhadap collection places di MongoDB. Fitur ini bekerja dengan pengguna memberikan kata kunci (keyword) dan lokasi pencarian (location) serta memilih kategori place (category). Berikut ini tabel pengujian untuk pencarian place. Tabel 1 Hasil Pengujian Pencarian Place Data yang diujikan Hasil Keyword : Location : Category : Keyword : bakso Location : Category : Keyword : bakso Location : cibinong Category : Keyword : Location : cibinong
Hasil berupa semua document place yang ada pada sistem. Hasil berupa beberapa document yang mengandung kata bakso di field name atau description. Kemudian memiliki field category yang bernilai all. Hasil berupa beberapa document yang mengandung kata bakso di field name atau description. Kemudian mengandung kata cibinong di field street atau city pada embedded document address. Dan memiliki field category yang bernilai all. Hasil berupa beberapa document yang mengandung kata cibinong di field street atau city pada embedded document address. Dan memiliki field category yang 13
Category : Keyword : Location : cibinong Category : restaurant Keyword : bakso Location : cibinong Category : restaurant
bernilai all. Hasil berupa beberapa document yang mengandung kata cibinong di field street atau city pada embedded document address. Dan memiliki field category yang bernilai restaurant. Hasil berupa beberapa document yang mengandung kata bakso di field name atau description. Kemudian mengandung kata cibinong di field street atau city pada embedded document address. Dan memiliki field category yang bernilai restaurant.
Dari Tabel 1 disimpulkan bahwa fitur pencarian place berhasil memberikan hasil pencarian berupa sejumlah document place sesuai dengan pencarian dan ditampilkan dalam bentuk list. Kemudian disertakan kategori, informasi gambar, nama place, deskripsi, alamat, rating, dan link untuk memberikan review. Kata kunci (keyword) digunakan untuk pencarian terhadap field name dan description. Lokasi (location) digunakan oleh sistem untuk melakukan pencarian terhadap field street dan city dalam embedded document address. Category dipakai untuk melakukan pencarian terhadap field category. b. Pencarian Dish Fitur ini berguna untuk melakukan pencarian terhadap dish yang terdapat di halaman Dishes. Pencarian ditangani oleh model Dishes terhadap collection dishes di MongoDB. Fitur ini bekerja dengan pengguna memberikan kata kunci (keyword) serta memilih kategori harga dish ( price category). Dari pengujian disimpulkan bahwa fitur pencarian dish berhasil memberikan hasil pencarian berupa sejumlah document dish sesuai dengan pencarian dan ditampilkan dalam bentuk list beserta nama dish, nama place, informasi gambar, harga, deskripsi, rating, dan link untuk memberikan review. Kata kunci (keyword) digunakan untuk pencarian terhadap field name dan description. Price Category dipakai untuk melakukan pencarian terhadap field price. c. Pencarian Promo Fitur ini berguna untuk melakukan pencarian terhadap promo yang terdapat di halaman Promos. Pencarian ditangani oleh model Promos terhadap collection promos di MongoDB. Fitur ini bekerja dengan pengguna memberikan kata kunci (keyword). Berikut ini tabel pengujian untuk pencarian promo. Dari pengujian disimpulkan bahwa fitur pencarian promo berhasil memberikan hasil pencarian berupa sejumlah document promo sesuai dengan pencarian dan ditampilkan dalam bentuk list beserta judul promo, nama place, informasi gambar, deskripsi, informasi tambahan, periode berlangsungnya promo, rating, dan link untuk memberikan review. Kata kunci (keyword) digunakan untuk pencarian terhadap field title dan description.
14
2. a.
Hasil Pengujian Fitur Registrasi Registrasi Dengan Form Fitur ini merupakan fitur registrasi dengan menggunakan form di halaman Register atau dari User Panel dibagian pojok kanan atas website. Dari pengujian dapat disimpulkan bahwa fitur registrasi dengan menggunakan form berhasil berfungsi sebagai mana mestinya. Untuk melakukan proses registrasi, pengguna hanya bisa melakukan registrasi satu kali dengan email dan username yang sama. Pengguna harus mengisi form registrasi yang tersedia dengan mengisi username yang sifatnya unik dan hanya berupa alfanumerik, serta email yang formatnya valid, dan password dengan kombinasi alfanumerik. b. Registrasi Dengan Facebook Merupakan fitur registrasi dengan menggunakan tombol Login Facebook di halaman Register atau dari User Panel dibagian pojok kanan atas website. Untuk dapat menggunakan fitur ini, dibutuhkan beberapa syarat untuk dipenuhi diantaranya adalah sebagai berikut : Pengguna belum melakukan login ke dalam website dan harus melakukan login kedalam Facebook terlebih dahulu agar sistem bisa mendapatkan session dari Facebook. Pengguna harus melakukan konfirmasi persetujuan terhadap aplication permission sebagai syarat agar sistem bisa terintegrasi dengan account Facebook pengguna. Proses registrasi dengan account Facebook ini sangat bergantung pada koneksi ke Facebook untuk mendapatkan session-nya. Namun masih bisa diatasi apabila sewaktu-waktu terdapat error dengan menggunakan registrasi menggunakan form. 3. a.
Hasil Pengujian Fitur Login Login Dengan Form Fitur ini merupakan fitur login dengan menggunakan form web biasa di halaman Login atau dari User Panel dibagian pojok kanan atas website. Dari pengujian dapat disimpulkan bahwa fitur login dengan menggunakan form ini berhasil bekerja dengan baik dengan syarat data pengguna harus sudah ada dalam database atau dengan kata lain pengguna harus sudah terdaftar atau sudah melakukan registrasi. Kemudian bila pengguna memasukkan email atau password yang salah, maka sistem tidak mengijinkan otentikasi dan pengguna tidak bisa melakukan login. b. Login Dengan Facebook Fitur ini merupakan fitur login dengan menggunakan tombol Login Facebook di halaman Login atau dari User Panel dibagian pojok kanan atas website. Untuk dapat menggunakan fitur ini, dibutuhkan beberapa syarat untuk dipenuhi diantaranya adalah sebagai berikut :
15
Pengguna belum melakukan login ke dalam website dan harus melakukan login kedalam Facebook terlebih dahulu agar sistem bisa mendapatkan session dari Facebook. Pengguna harus melakukan konfirmasi persetujuan terhadap aplication permission sebagai syarat agar sistem bisa terintegrasi dengan account Facebook pengguna.
4. a.
Hasil Pengujian Fitur Friend Request dan Approval Friend Request Fitur ini bisa diakses pada halaman Profile milik pengguna lain yang belum menjadi teman. Dari hasil pengujian, pada document user milik pengguna (sebagai pengirim permintaan pertemanan) ditambahkan satu embedded document pada field friendlist. Jika field friendlist itu sendiri belum ada dalam skema document, maka MongoDB akan otomatis membuatkannya. Kemudian pada document user milik pengguna lain (yang menerima permintaan pertemanan) juga ditambahkan embedded document pada field friendlist sama seperti pada document pengguna (yang mengirimkan permintaan pertemanan). Selain itu, pada document juga dilakukan operasi increment terhadap field friendRequests dengan operator $inc yang dimiliki MongoDB. b. Request Approval Fitur konfirmasi permintaan pertemanan atau request approval ini bisa diakses pada halaman Dashboard milik pengguna (yang telah login ke dalam website) berupa link pada daftar pengguna lain yang mengirimkan permintaan pertemanan (friend request). Setelah proses request approval berhasil, sistem mencari data dari embedded document di field friendlist pada document user milik pengguna (yang menerima permintaan pertemanan) yang menyimpan data permintaan pertemanan dari pengguna lain (yang mengirimkan permintaan pertemanan). Embedded document diidentifikasi dengan mencocokkan id dari pengguna lain dengan field friend_id di embedded document tersebut. Setelah menemukan embedded document yang dimaksud, nilai dari field approved di embedded document tersebut dirubah menjadi true dan dilakukan operasi decrement terhadap field friendRequest. Kemudian dilakukan operasi increment terhadap field friendsCount. Sama seperti pada document user milik pengguna yang menerima permintaan pertemanan. Pada document user milik pengguna yang mengirimkan permintaan pertemanan juga dilakukan pencarian embedded document dengan kriteria friend_id pada embedded document sama dengan id dari pengguna yang menerima permintaan pertemanan.
16
Setelah didapatkan embedded document yang dimaksud, lalu dilakukan perubahan pada field approved pada embedded document tersebut. Kemudian, dilakukan operasi increment terhadap field friendsCount. 5.
Hasil Pengujian Fitur Pengiriman Pesan Fitur ini berguna bagi pengguna (sender) untuk berkirim pesan ke pengguna lain (receiver). Berikut ini tabel pengujian untuk pengiriman pesan. Adapun hasil dari penambahan pesan disimpan pada field messages yang merupakan array dari embedded document yang juga terletak di dalam embedded document conversation. Hal ini menunjukkan kemampuan MongoDB dalam mengorganisir skema document yang sifatnya nested. Fitur ini bisa diakses dengan dua cara, yaitu dengan mengunjungi halaman Profile milik teman pengguna, kemudian menggunakan link send message. Link tersebut membawa pengguna ke halaman baru yang berisi form untuk mengirimkan pesan. Cara lainnya yaitu melalui halaman Messages Detail dimana terdapat juga form untuk pengiriman pesan ke lawan bicara. Untuk pengaksesan fitur pengiriman pesan lewat halaman Message Detail, pengguna sudah harus mengirim pesan sebelumnya atau dikirimkan oleh pengguna lain. Ini disebabkan karena pada dasarnya halaman ini adalah halaman yang menunjukkan rincian dari perbincangan pengguna dengan temannya. 6.
Hasil Pengujian Fitur Penambahan Place Fitur ini berguna bagi pengguna yang ingin menambahkan place baru ke dalam website. Berikut ini tabel pengujian untuk menambah place. Tabel 2 Hasil Pengujian Penambahan Place Data yang diujikan Hasil Name : Waroeng Spesial Sambal Description : Buka dari Senin-Jumat 11.0022.00 dan Sabtu 11.0023.00.harga mulai dari Rp 1.500 - Rp 30.000.Waroeng SS menawarkan menu yang terdiri dari 31 jenis sambal , 21 lauk, 11 jenis sayur dan 24 jenis minuman tombo pedes. Category : Restaurant Tags : Makanan Pedas
Penambahan place berhasil dan hasil dari penambahan place berupa document (dalam bentuk JSON) sebagai berikut. { "_id": ObjectId("4e432d523033fa1f50000001"), "address": { "street": "Jl.Margonda Raya No.518H", "city": " Depok", "additional": "Samping Hotel Bumi Wiyata", "location": { "lat": -6.3808417, "lng": 106.8305548 }, }, "category": "restaurant", "contributor": { "id": ObjectId("4e348c224bc93ffc67000000"), 17
Telp : 0217871603/08112251500
"name": "Adi Kurniawan" }, "created": ISODate("2011-07-29T09: 00: 00.0Z"), "description": "jakarta sebelah pojok", "highestPrice": "30000", "id": "Waroeng-Spesial-Sambal", "lowestPrice": "1500", "name": "Waroeng Spesial Sambal", "tags": { "0": "Makanan Pedas" }, "telp": "0217871603\/08112251500", "updated": ISODate("2011-07-29T09: 00: 00.0Z"), "website": "waroengss.com"
Website : waroengss.com Price Range Lowest Price : 1500 Highest Price : 30000 Address City : Depok Street : Jl.Margonda Raya No.518H Additional info : Samping Hotel Bumi Wiyata
}
7.
Hasil Pengujian Fitur Penambahan Dish Fitur ini berguna bagi pengguna yang ingin menambahkan dish baru dari dish tertentu ke dalam website. Berikut ini tabel pengujian untuk menambah dish. Tabel 3 Hasil Pengujian Penambahan Dish Data yang diujikan Hasil Name : Sambal Tempe Price : 2000 Description : Sambal ulekan tempe Tags : sambal NonHalal : false Favorite Menu : true
Penambahan dish baru berhasil dn hasil dari penambahan dish tersebut berupa document (dalam bentuk JSON) sebagai berikut. { "_id": ObjectId("4e4330683033fa1e4a000000"), "name": "Sambal Tempe", "price": 2000, "description": "Sambal ulekan tempe", "nonhalal": false, "isFavoriteDish": true, "tags": "sambal,tempe", "placeId": ObjectId("4e432d523033fa1f50000001"), "placeName": "Waroeng Spesial Sambal", "contributor": { "id": "4dff17703033fa086b000000", "name": "Adi Kurniawan" }, "id": "Sambal-Tempe", "created": ISODate("2011-08-11T01: 29: 12.799Z"), "updated": ISODate("2011-08-11T01: 29: 12.799Z") } 18
8.
Hasil Pengujian Fitur Penambahan Promo Fitur ini berguna bagi pengguna yang ingin menambahkan promo baru dari place tertentu ke dalam website. Berikut ini tabel pengujian untuk menambah promo. Tabel 4 Hasil Pengujian Penambahan Promo Data yang diujikan Hasil Title : Sambal tempe gratis selama Ramadhan Description : Gratis sambal tempe untuk setiap pembelian minimal Rp 120.000 Additional Information : Tidak berlaku kelipatan, sambal hanya sambal tempe Tags : gratis, promo ramadhan Promo Period Promotion Start : 11/09/2011 Promotion Closed : 18/09/2011 NonHalal : false
Penambahan promo berhhasil dan hasil dari penambahan promo tersebut berupa document (dalam bentuk JSON) sebagai berikut. { "_id": ObjectId("4e4333ff3033fae03c000000"), "title": "Sambal tempe gratis selama Ramadhan", "description": "Gratis sambal tempe untuk setiap pembelian minimal Rp 120.000", "info": "Tidak berlaku kelipatan, sambal hanya sambal tempe", "tags": "gratis,promo ramadhan", "period": { "from": "11\/09\/2011", "to": "18\/09\/2011" }, "placeId": ObjectId("4e432d523033fa1f50000001"), "placeName": "Waroeng Spesial Sambal", "contributor": { "id": "4dff17703033fa086b000000", "name": "Adi Kurniawan" }, "id": "Sambal-tempe-gratis-selama-Ramadhan", "created": ISODate("2011-08-11T01: 44: 31.6Z"), "updated": ISODate("2011-08-11T01: 44: 31.6Z") }
Favorite Menu : true
9.
Hasil Pengujian Fitur Pemberian Review Penambahan review bisa dilakukan terhadap place, dish, ataupun promo. hasil proses penambahan review berupa sebuah document review baru di collection reviews. Skema dari document review yang disimpan disesuaikan dengan objek yang diberikan review. Sebagai contoh, seperti yang telah dijelaskan pada bab sebelumnya, skema untuk rating berbeda antara ketiga objek. Place memiliki empat kategori rating, dish tiga kategori rating, dan promo satu kategori rating.
19
PENUTUP Berdasarkan hasil yang diperoleh dari hasil pengujian, didapatkan beberapa simpulan diantaranya sebagai berikut. Penggunaan konsep document-oriented NoSQL menggunakan MongoDB, dapat menjadi alternatif solusi manajemen data bagi website yang mengimplementasikan konsep social commerce sebagai fasilitas berbagi informasi khususnya tempat makan. Dengan menggunakan konsep document-oriented NoSQL ini, kompleksitas dari struktur data yang ada dapat diatasi dengan karakter document yang sifatnya schemaless, sehingga dapat dikembangkan website dengan struktur data yang lebih dinamis dan tidak terpaku pada pendefinisian skema yang relatif statis seperti pada relational database. Adapun website telah memenuhi konsep social commerce dengan dilengkapi berbagai fitur yang mampu mendukung fungsi website sebagai media berbagi informasi. Fitur-fitur website tersebut diantaranya adalah pencarian terhadap place (tempat makan), dish (menu sajian), dan promo (promosi), kemudian fitur login untuk pengguna, registrasi, penambahan place, penambahan dish, penambahan promo, pemberian review, friend request dan approval (permintaan dan persetujuan pertemanan), serta pengiriman pesan. Namun, website yang dibuat dalam penelitian ini memiliki keterbatasan yang terletak pada kelemahan dari konsep user-generated content dimana data yang ditambahkan oleh pengguna bisa saja berbeda terhadap kondisi yang sebenarnya dalam dunia nyata dikarenakan subjektifitas dari pengguna itu sendiri. Berdasarkan pada keterbatasan yang disebutkan sebelumnya, bisa dilakukan berbagai alternatif pengembangan untuk mengatasi subjektifitas pengguna. Salah satu alternatif tersebut berupa dibentuknya tim yang bertugas melakukan validasi terhadap informasi yang ditambahkan oleh pengguna. Namun, alternatif tersebut tidaklah sepenuhnya absolut benar dan efektif. Luasnya cakupan dan kondisi yang mungkin terjadi berkaitan dengan informasi tersebut bisa mengorbankan efisiensi waktu dan tenaga. Untuk itu, validasi sebaiknya hanya dilakukan terhadap beberapa place (tempat makan) yang memang secara resmi bergabung dengan pengembang website. DAFTAR PUSTAKA [1] Chodorow, Kristina. 2010. MongoDB: Developer Zone. http://www.MongoDB.org/display/DOCS/Developer+Zone. [2] Chodorow, Kristina., Dirolf, Mike. 2010. MongoDB: The Definitive Guide. O'Reilly Media. [3] Marsden, Paul. 2009. The 6 Dimensions of Social Commerce: Rate and Reviewed. http://socialcommercetoday.com/the-6-dimensions-of-social-commerce-rated-andreviewed. [4] Wikipedia. September, 2007. Social Commerce. http://en.wikipedia.org/wiki/Social_commerce. 20
[5]
Wikipedia. Maret, 2006. Social shopping: Four Categories of Social Shopping. http://en.wikipedia.org/wiki/Social_shopping#Four_categories_of_social_shoppin g. [6] Wikipedia. September, 2010. Web 2.0. http://en.wikipedia.org/wiki/Web_2.0. [7] UnionOfRad. 2011. Beginnings for Lithium's full-fledged documentation effort. http://dev.lithify.me/drafts/source/branches/master/en. [8] Perras, Joël, Abele, Nate. 2010. Lithium: The Framework for People Who Hate Frameworks. http://www.slideshare.net/nateabele/lithium-the-framework-forpeople-who-hate-frameworks. [9] Pirtle, Mitch. September, 2010. PHP, Lithium and MongoDB. Mongo Boston. Boston, MA [10] Beisel, David. December, 2005. (The Beginnings of) Social Commerce. http://genuinevc.com/archives/2005/12/6/the-beginnings-of-social-commerce.html
21