Pada tutorial sebelumnya saya pernah menulis mengenai cara menginstall mongodb dan ngulik sedikit , pada tutorial ini saya akan coba membahas bagaimana mongodb ini dalam membuat aplikasi. Sedikit mengulas mengenai mongodb, mongodb bersifat collection oriented, data-data disimpan dalam bentuk collection, saya asumsikan driver mongodb telah terinstall di webserver, jika belum dapat baca di sini.
Dalam tutorial kali ini kita akan membuat beberapa file yaitu :
-
config.php => berisi skrip untuk melakukan koneksi ke database mongodb
-
list_artikel.php => berisi daftar-daftar artikel yang ada di collection blog
-
add_artikel.php => untuk melakukan penambahan artikel
-
edit_artikel.php => untuk melakukan pengeditan artikel
-
delete_artikel.php => untuk menghapus artikel
config.php
1
2
3
4
5
6
7
8
| <?php //mongo connection $connection = new Mongo(); $db = $connection ->selectDB( 'Blogdb' ); //collection Blogdb $blog = $connection ->Blogdb->artikel; ?> |
untuk membuat koneksi database dan membuat database
di mongodb cukup simple, variabel $connection berisi object baru dari
mongodb, variabel koneksi kemudian di gunakan untuk membuat database
dengan method selectDb('nama_db'), selanjutnya kita akan membuat
collection bernama 'Artikel', dimasukkan ke variabel $blog,
selanjutnya...
list_artikel.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <html> <head></head> <body> <a href= "add_artikel.php" >Tambah Artikel</a><br/> <?php include ( 'config.php' ); $listartikel = $db ->artikel->find(); foreach ( $listartikel as $id => $b ){ echo "<h2>" . $b [ 'judul' ]. " </h2><a href='edit_artikel.php?id=" . $id . "'>[Edit]</a> | " . "<a href='delete_artikel.php?id=" . $id . "'>[Delete]</a>" ; echo "<p>" . $b [ 'tanggal' ]. "<br/>" . $b [ 'isi' ]. "</p>" ; } ?> </body> </html> |
Data dari database mongodb diakses menggunakan
method 'find()', jika mengkases 1 data 'findOne()', jika kita
membutuhkan kondisi data yang diakses kita bisa menambahkan kondisi
dalam bentuk array contoh : 'find(array('judul'=>'titan'))' dan ini
case sensitive, untuk proses query lebih lengkapnya bisa di liat di
manual mongodb.
kembali kepenjelasan kode diatas, data di foreach dan variabel $id
untuk mengambil id atau primary key klo dalam istilah RDBMS dalam
mongodb konsep primary key berupa id unik dari object yang telah di
encrypt, dengan key object ['_id']. Selanjutnya data di ambil sesuai
dengan key array. untuk memberikan kondis pada primary key ini harus
bersifat object contoh : array( '_id' => new MongoId($id))add_artikel.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <html> <head></head> <body> <h1>Tambah Artikel</h1> <form action= "add_artikel.php" method= "POST" > <label>Judul</label> : <input type= "text" name= "judul" /><br/> <label>Artikel</label> : <textarea name= "isi" cols= '20' rows= '10' ></textarea><br/> <input type= 'submit' value= 'Post' /> </form> </body> </html> <?php include ( 'config.php' ); if (! empty ( $_POST )){ $date = date ( 'd/F/Y' ); $judul = $_POST [ 'judul' ]; $isi = $_POST [ 'isi' ]; $new_artikel = array ( 'judul' => $judul , 'isi' => $isi , 'coments' => '' , 'tanggal' => $date ); $blog ->insert( $new_artikel ); } ?> |
file ini berisi form untuk menambahkan artikel
berserta pemorosesnya, proses pengambilan data seperti biasa menggunakan
method 'POST', pada file config.php kita telah membuat variabel '$blog'
berisi koneksi yang menuju database 'blogdb' dan collection 'artikel'.
variabel ini kita gunakan untuk menujuk method mongodb agar lebih simple
pada proses insert data, '$blog->insert()', Data yang dimasukkan ke
collection artikel dalam bentuk array, pada file add_artikel.php
menggunakan variabel '$new_artikel', setelah proses insert database
berhasil halaman kemudian di redirect ke list_artikel.php
edit_artikel.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| <html> <head></head> <body> <?php include ( 'config.php' ); $id = new MongoId( $_GET [ 'id' ]); $detil = $blog ->findOne( array ( '_id' => $id )); ?> <h1>Edit Artikel</h1> <form action= "edit_artikel.php" method= "POST" > <input type= "hidden" name= "id" value= "<?php echo $_GET['id']?>" /> <label>Judul</label> : <input type= "text" name= "judul" value= "<?php echo $detil['judul']?>" /><br/> <label>Artikel</label> : <textarea name= "isi" cols= '20' rows= '10' ><?php echo $detil [ 'isi' ]?></textarea><br/> <input type= 'submit' value= 'Post' /> </form> </body> </html> <?php if (! empty ( $_POST )){ $id = $_POST [ 'id' ]; $date = date ( 'd/F/Y' ); $judul = $_POST [ 'judul' ]; $isi = $_POST [ 'isi' ]; $blog ->update( array ( '_id' => new MongoId( $id )), array ( '$set' => array ( 'judul' => $judul , 'isi' => $isi , 'tanggal' => $date ))); } ?> |
dalam proses editing data di mongodb, tetap kita
membutuhkan primary key dari data tersebut, kita menyisipkan variabel
$id dalam method GET pada link edit artikel, method untuk melakukan
proses updating data menggunakan method
'update(array(kondisi),array('$set'=>array('judul'=>'isi'=>$artikel)))'.
ada beberapa tipe update dalam mongodb '$set' untuk memperbaharui data
atau menambahkan data baru pada data tersebut. '$push' untuk menyisipkan
data pada array mongodb., pada proses editing ini kita menggunakan tipe
$set karena bertujuan untuk mengupdat data
delete_artikel.php
1
2
3
4
5
6
| <?php include ( 'config.php' ); $criteria = array ( '_id' => new MongoId( $_GET [ 'id' ])); $blog ->remove( $criteria ); ?> |
untuk melakukan proses penghapusan data sangat simpel menggunakan method 'remove($kondisi)'.
saya coba benchmark sendiri simple crud menggunakan
database mongodb ini, ternyata memang perfomance yang dihasilkan lebih
cepat dibnding menggunakan rdbms sperti mysql atau yg lainnya. Akan
tetapi mungkin penerapan mongodb ini harus tepat sasaran, karena mongodb
mungkin sulit digunakan pada sistem yang membutuhkan integritas data
tinggi.
No comments:
Post a Comment