Kamis, 09 Januari 2014

MongoDB ASP MVC

 Sebelumnya apa sih itu mongoDB? apakah database yang dibuat oleh orang jawa? buka, mongoDB adalah NoSQL Database. MoongoDB adalah Non relational database, yang menyimpan data dalam bentuk JSON

Apasih keunggulan dari mongoDB? kelebihan mongoDB antara lain
  1. MongoDB merupakan sistem basis data yang menggunakan konsep key-value, yaitu setiap dokumen dalam MongoDB pasti memiliki key. Saat membuat dokumen tanpa menggunakan sebuah primary key, secara otomatis MongoDB akan memberikan sebuah key. Key-value ini berperan penting karena membuat sistem basis data pada MongoDB semakin lebih cepat dibandingkan dengan non key-value seperti RDBMS.
  2. MongoDB mendukung replikasi. Repiklasi ini dapat membuat pemilik sistem yang memiliki trafik membaca tinggi akan sangat terbantu ketika sistemnya menggunakannya.
  3. MongoDB juga mendukung Sharding. Sharding digunakan ketika memiliki website yang sudah sangat besar jumlah penggunaannya, datanya dapat mencapai jutaan giga byte. Dengan penggunakan sharding ini akan dikerjakan dengan membaris-baris data dengan per regional.
  4. MongoDB mendukung modul pemograman MapReduce. Yaitu sebuah konsep yang sangat fenomenal yang pernah dikeluarkan oleh Google dan saat ini banyak diimplementasikan seperti pada Apache Hadoop. MapReduce membantu ketika melakukan operasi agregasi. Dimana semua entry datangnya dari collection dan outputnya akan menjadi collection juga. Pada MySQL biasanya menggunakan query Group By.
  5. MongoDB mendukung bahasa pemograman C, C++, C#, Erlang, Haskell, Java, JavaScript, .NET (C#F#, PowerShell), Lips, PHP, Python, Ruby, dan Scala.
  6. Cross-platform. MongoDB akan dapat digunakan di Windows, Linux, OS X, dan Solarus.
  7. Proses CRUD (create, read, update, dan delete) terasa ringan.
  8. GridFS. GridFS ini digunakan untuk menyimpan data yang sangat besar.   

Cukup basa-basinya :p, untuk mendapatkan mongoDB kita bisa download disini, untuk cara install bisa lihat vidio ini 


Setelah selesai install mongo, kita akan mencoba memasukan data kedalam database. yang pertama kita lakukan adalah menjalankan database server dari mongo. Buka Command Prompt, jalankan sebagai administrator. ketikan mongod pada command prompt.



Mongodb akan berjalan pada default port-nya yaitu port 27017. Setelah server berjalan kita akan coba memasukan data base. buka kembail command prompt baru, jalankan sebagai administrator. ketikan mongo
 Secara default mongo mempunyai sebuah database bernama test, kita akan memasukan data pada database ini.

pada mongodb data yang dimasukan berupa sebuah Collection, collection adalah kumulan dari Json document yang bisa digunakan secara langsung pada mongodb. kita akan membuat sebuah collection bernama persons. untuk memasukan data pada kita tulis seperti gambar dibawah ini



gambar diatas mengandung arti bahwa kita memasukan sebuah data pada collection person yang berisi name dengan value "Ridwan" dan bahasa dengan value "C#". kita masukan lagi data baru


kita mempunyai dua buah data pada collection person dengan nama "Ridwan" dan "Fansuri". Untuk melihat data tersebut, kita tulis db.persons.find().pretty() pada cmd seperti gambar dibawah


Kita telah memiliki data pada database, selanjutnya adalah menampilkan data tersebut. Kita akan menampilkan data tersebut menggunakn ASP MVC. buat project ASP MVC 4, berinama yang anda suka.
Setelah buat project kita add MongoDbdriver menggunakan nuget package 


Driver telah terpasang, sekarang tinggal kita tampilkan data dari mongoDB

Add sebuah class baru pada model, beri nama Person tuliskan seperti code dibawah


  public class Person
    {
        public ObjectId _id { get; set; }
        public string name { get; set; }
        public string bahasa { get; set; }
    }
Kemudian kita akan menghubungkan database dengan aplikasi. kita tambahkan sebuah variable pada appSetting di webconfig, tuliskan seperti ini



Kita akan mebuat sebuah Repository Class untuk menghubungkan aplikasi dengan database. Tambahkan sebuah folder baru pada project, beri nama Repository. Pada folder tersebut tambahkan class baru, beri nama HomeRepository. Tuliskan code dibawah pada class HomeRepository

  public static class HomeRepository
    {
        static readonly MongoServer Server = MongoServer.Create(ConfigurationManager.AppSettings["connectionString"]);
        private static MongoDatabase _myDb = Server.GetDatabase("test");

        public static List GetPersons()
        {
            var persons = _myDb.GetCollection("persons");
            var personList = persons.FindAll().Select(person => new Person()
                {
                    _id = person._id, bahasa = person.bahasa, name = person.name
                }).ToList();

            return personList;
        }  

    }

class ini kita buat static agar kita tidak perlu meng-inisialisai kelas tersebut. Class ini terdapat sebuh method bernama GetPersons() yang akan mengembalikan sebuah list Person.

setelah HomeRepository dibuat. sekarang kita akan menampilkan data tersebut kedalam halaman web. Buka HomeController, rubah action index menjadi seperti dibawah

 public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
            var model = HomeRepository.GetPersons();
            return View(model);
        }
Action tersebut mengirimkan model berupa List kedalam halaman Index. untuk menampilkan pada halaman Index, kita ubah code pada halaman Index pada view home menjadi seperti dibawah ini

Kita coba build dan jalankan. makan akan data yang telah kita simpan akan ditampikan pada halaman home

Mungkin cukup sekian tulisan kali ini, project-nya bisa di download disini