pembuatan website dengan konsep social...
TRANSCRIPT
1
PEMBUATAN WEBSITE DENGAN KONSEP SOCIAL
COMMERCE DAN DOCUMENT-ORIENTED NOSQL SEBAGAI
FASILITAS BERBAGI INFORMASI
1Adi Kurniawan (10107041)
2 Dr. Lussiana E.T.P., SSi., MT.
1Mahasiswa Sistem Informasi Universitas Gunadarma
[email protected] 2Dosen & Staff Universitas Gunadarma
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
2
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 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.
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.
3
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 document-
oriented 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.
4
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, table-
oriented, 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.
5
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.
6
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.
7
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.
8
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.
9
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
10
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
11
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
12
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
13
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. Hasil Pengujian Fitur Pencarian
a. 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 :
Hasil berupa semua document place yang ada pada
sistem.
Keyword : bakso
Location :
Category :
Hasil berupa beberapa document yang mengandung kata
bakso di field name atau description. Kemudian
memiliki field category yang bernilai all.
Keyword : bakso
Location : cibinong
Category :
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.
Keyword :
Location : cibinong
Hasil berupa beberapa document yang mengandung kata
cibinong di field street atau city pada embedded
document address. Dan memiliki field category yang
14
Category : bernilai all.
Keyword :
Location : cibinong
Category : restaurant
Hasil berupa beberapa document yang mengandung kata
cibinong di field street atau city pada embedded
document address. Dan memiliki field category yang
bernilai restaurant.
Keyword : bakso
Location : cibinong
Category : 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.
15
2. Hasil Pengujian Fitur Registrasi
a. 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. Hasil Pengujian Fitur Login
a. 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 :
16
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. Hasil Pengujian Fitur Friend Request dan Approval
a. 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.
17
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.00-
22.00 dan Sabtu 11.00-
23.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"),
18
Telp :
0217871603/08112251500
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
"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"
}
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")
}
19
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
Favorite Menu :
true
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")
}
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.
20
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-and-
reviewed.
[4] Wikipedia. September, 2007. Social Commerce.
http://en.wikipedia.org/wiki/Social_commerce.
21
[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-for-
people-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