Tampilkan postingan dengan label Database. Tampilkan semua postingan
Tampilkan postingan dengan label Database. Tampilkan semua postingan

Senin, 10 Maret 2014

EF Code First Create Database




Halo, berjumpa lagi dengan saya, kali ini saya akan menulis tentang menggunakan Entity Framework Code First untuk meneruskan tulisan kenalan dengan Entity Framework, tidak akan terlalu ribet hanya koneksi ke-database saja dan membuat database + table menggunakan code first. Pada tulisan kita kali ini kita akan membuat sebuah console application agar simple.

Kita create new project di visual studio. pilih console application 

Setelah create new project kita add entity framework nuGet 

Kemudian kita tambahkan sebuah class baru, beri nama People.cs. kelas ini akan menjadi table dari database yang akan kita buat nanti.


kita tambahkan attribut [Key] pada property Id sebagai penanda bahwa property tersebut adalah sebuah primary key. 

Setelah itu kita akan buat sebuah class Context. Class context ini berfungsi sebagai penghubung ke database untuk lebih jelasnya bisa baca disini


dalam class PeopleContext code public DbSet Peoples { get; set; } berfungsi agar ketika program dijalankan maka EF akan memetakan (mapping) class People menjadi table didalam database.

EF akan dijalankan ketika program berjalan, untuk itu kita akan menambahkan beberapa baris code pada class Program, buat seperti ini


Database.SetInitializer(new DropCreateDatabaseIfModelChanges());  berfungsi membuat inisialisasi database. dan DropCreateDatabaseIfModelChanges() akan men-drop database ketika ada perubahan pada model. 

Database  hanya akan dibuat ketika class context dipanggil/dipakai. Oleh karena itu kita tambahkan code  using (var db = new PeopleContext())
            {
                db.Database.Initialize(false);
            }

 db.Database.Initialize(false) berarti bahwa kita akan men-skip proses insialisasi apabila proses tersebut telah terjadi. apabila kita ubah nilai false menjadi true, maka proses inisialisasi akan terjadi meskipun proses tersebut telah terjadi sumber. Sebenarnya ada cara lain menggunakan Package Manager Console, tapi karena saya tidak mengerti terlalu tahu jadi saya gunakan metode seperti ini

Proses yang terakhir adalah menambahkan connection string pada file App.config. Tambahkan code dibawah pada App.config


Kemudian kita build dan jalankan program. 

Apakah berhasil? bagaimana melihat table yang telah kita buat. Untuk melihat table yang telah kita buat, pada server explorer kita pilih connect to database, kemudian kita isikan server dan database yang telah kita buat 

Hasil database yang telah kita buat akan muncul. lalala yeyeye.



Mungkin cukup sekian tulisan singkat kali ini, terima kasih sudah datang


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


Kamis, 26 Desember 2013

Kenalan Dengan Entity Framework


Libur-libur gini daripada bengong mending kita nulis blog lagi. Tulisan kali ini akan membahas tentang Entity Framework. Apa itu Entity Framework (EF)? EF adalah sebuah object-relational mapper yang memungkinkan .Net Developer untuk bekerja dengan relational data (database) menggunakan domain-specific object. (sumber). Penggunaan EF bertujuan mengurangi penggunaan data-access code yang biasa ditulis developer. 

 Sebelum melangkah jauh kita akan membahas tentang database terlebih dahulu. Sebuah model database adalah sebuah abstraksi dari real-world information yang akan ditampilkan. Seorang developer harus membuat sebuah second level dari abstraksi tersebut dikarenakan sebuah aplikasi tidak dapat melihat data tersebut seperti yang database lihat. Terkadang mendefinisikan second-level ini terkadang lebih sulit dari pada membuat database membutuhkan sebuah gambaran dari real-world, EF membantu developer untuk membuat gambaran tersebut. EF menggunakan graphical presentation dari data sehingga developer dapat melihat relationship antar table.

EF merupakan sebuah  Microsoft ActiveX Data Object .Net (ADO.NET) technology extension yang membuat memungkinkan kita untuk meng-Integrasikan database yang kita buat dengan IDE untuk membuat beberapa code yang dibuthkan dalam koneksi antara aplikasi dan database secara otomatis. Jadi ga percuma punya IDE yang harganya sampai puluhan ribu USD (pantesan aja banyak yang bajak) .

 Langsung saja kita buat aplikasi EF menggunakan visual studio 2012. kita create new project pilih windows Form Application berinama SimpleEF


pilih View|Other Windows|Data Source. kemudian pilih Add New Data Source. maka akan muncul dialog box seperti dibawah ini


Pilih Database, lalu next, muncul dialog box selanjutnya, pilih Entity Data Model. lalu next


Pada dialog box selanjutnya pilih empty model, kemudian finish



lalu akan muncul sebuah window kosong bernama  Model1.edmx seperti dibawah ini, pada solution explorer juga akan terdapat item Model1.edmx. pada windows inilah kita akan membuat entity-entity yang akan digunakan.




Setelah muncul windows model1.edmx kita akan menambahkan entity. klik toolbox entitiy seperti gambar dibawah ini.
Drag and drop entity pada windows model1.edmx

\
Maka akan muncul sebuah diagram class seperti gambar diatas. kita rename entitas tersebut dari entity mencadi Customer, dan properti Id menjadi CustomerID


Untuk menambahkan property baru pada entity, klik kanan pada entity|Add new|Scalar Property
tambahkan hingga menjadi seperti ini


Property-property yang kita buat akan memilki tipe string sebagai default, untuk merubahnya tinggal klik kanan pada property yang akan diubah, pilih properties (Alt+Enter). Akan muncul window seperti dibawah. untuk merubah tipe data, kita pipih pada kolom Type menjadi tipe data yang kita inginkan. 


Setelah membuat diagram ini apakah kita sudah bisa menjalankan aplikasi? belum, bahkan databasenya belum kita buat. untuk membuatnya kita klik kanan pada window diagram, pilih Generate Database From Model. pilih New Connection


Karena kita menggunakan SQLExpress pada visual studio 2012, kita isikan seperti pada gambar dibawah. server kita gunakan (localdb)\v.11.0, Gunakan Windows Authentification untuk log on, dan Tulis TestCustomer pada database name. lalu oke.


Setelah pilih Oke. maka visual studio akan meminta permission untuk membuat database karena database tersebut belum pernah dibuat/ belum exist, pilih oke. akan muncul windows berisi script DDL untuk membuat database dan table customer pada database. kita pilih finish. 



Akan muncul dialog box untuk koneksi ke database, setelah oke maka mucul windows Model1.edmx.sql yang berisi perintah2 sql. kita klik segitiga hijau pada windows tersebut. maka secara otomatis kita akan mengeksekusi perintah-perintah sql tersebut melalui visual studio.




Setelah selesai maka akan terbentuk database TestCustomer dan table Customers seperti gambar dibawah ini.



Sekarang tinggal bagaimana cara kita menjalankan aplikasi. kita buat form 1 agar menjadi seperti ini


Beri nama masing-masing button, btnCount,btnAdd,btnDelete,dan btnQuit

kita definisikan Model1Container1 (di aplikasi anda mungkin Model1Container) sebagai tempat menyimpan informasi dari database

public partial class Form1 : Form
    {
        private Model1Container1 ThisContainer;
        public Form1()
        {
            InitializeComponent();

            //intantiate the container
            ThisContainer = new Model1Container1();
        }
Double klik pada button Count. tuliskan code berikut

 private void buttonCount_Click(object sender, EventArgs e)
        {
            //display the number of database records
            MessageBox.Show("There are " + ThisContainer.Customers.Count().ToString() + " record");
        }
Double klik pada button Delete. tuliskan code berikut
  private void buttonDelete_Click(object sender, EventArgs e)
        {
            //obtain the first record
            Customer thisCustomer = null;
            if (ThisContainer.Customers.Any())
            {
                thisCustomer = ThisContainer.Customers.First();
            }
            else
            {
                //display error message if there are no records to delete
                MessageBox.Show("No records to delete");
                return;
            }

            //delete it
            ThisContainer.Customers.Remove(thisCustomer);
            ThisContainer.SaveChanges();

            // Inform the user. 
            MessageBox.Show("Deleted " + thisCustomer.CustomerID.ToString());
        }
Double klik pada button Add. tuliskan code berikut
  private void buttonAdd_Click(object sender, EventArgs e)
        {
            //create a new record
            Customer thisCustomer = ThisContainer.Customers.Create();

            // Add some random data. 
            Random ThisValue = new Random(DateTime.Now.Millisecond);
            thisCustomer.FirstName = ThisValue.Next().ToString();
            thisCustomer.LastName = ThisValue.Next().ToString();
            thisCustomer.AddressLine = ThisValue.Next().ToString();
            thisCustomer.City = ThisValue.Next().ToString();

            // Add a new record.  
            ThisContainer.Customers.Add(thisCustomer);
            ThisContainer.SaveChanges();

            // Inform the user. 
            MessageBox.Show("Added " + thisCustomer.CustomerID.ToString());
        }

Double klik pada button Add. tuliskan code berikut
   private void buttonQuit_Click(object sender, EventArgs e)
        {
            // Save the database. 
            ThisContainer.SaveChanges();

            // End the program. 
            Close();
        }
Setelah selesai tekan F5 pada IDE, maka aplikasi yang kita buat akan berjalan kemudian coba klik Add, maka kita akan memasukan data pada table Custumer seperti yang telah kita tuliskan pada event di btnAdd Data yang kita tuliskan akan masuk pada table Customer seperti gambar dibawah.



Mungkin cukup sekian tulisan kali ini, semoga bermanfaat dan cobalah explorer lagi. Terima kasih