Operasi database adalah salah satu fasilitas yang mutlak harus ada dalam sebuah framework MVC. Pada tulisan kali saya akan mengulas bagaimana membuat class Model dan fungsi-fungsi untuk operasi database.

Dalam pemrograman PHP terdapat beberapa cara untuk mengoperasikan database khususnya mysql, antara lain menggunakan metode klasik yaitu dengan memanfaatkan fungsi bawaan (mysql_connect, mysql_select_db, mysql_query). Codeigniter merupakan salah satu contoh framework MVC yang memanfaatkan operasi klasik ini(http://www.codeigniter.com).

Selain operasi database klasik diatas, saat ini sudah tersedia modul PHP Data Object (PDO). PDO didesain mampu men-support banyak engine database misalnya MySql, Oracle, PostgresSQL, Ms Sql server dsb. PDO mendukung pemrograman berorientasi object (OOP), sehingga syntax pemrogramannya lebih sistematis dan mudah digunakan. Sayangnya tidak semua web hosting telah mengaktifkan modul PDO, bahkan ada juga web hosting yang tidak menyediakan modul PDO ini. Salah satu framework yang memanfaatkan operasi database PDO adalah Obullo (http://www.obullo.com).

Memang operasi database klasik maupun PDO mempunyai kelebihan dan kelemahan. Oleh karena itu pada framework ini sengaja saya sediakan dua-duanya. Jadi nantinya programmer bisa memilih, bisa menggunakan operasi database klasik atau PDO.

Tole : “Pakdhe..pakdhe, kalau framework sampean ini mendukung  dua operasi database apa tidak semakin berat kerja server-nya Pakdhe?”
Pakdhe : “Ya tidaklah Tole, kan nantinya programmer milih salah satu, dan ketika salah satu operasi tadi dipilih operasi yang lain tidak di-load, jadi tidak berat kerja server-nya”
Tole :”O..gitu to Pakdhe,ya sudah Pakdhe, tak simaknya dulu ntar nanti kita buktikan ya Pakdhe…kerja servernya berat apa tidak”

Pada implementasinya, sengaja saya gunakan design pattern factory, adapter dan driver. Hal ini bertujuan agar framework ini fleksibel dan mudah untuk digunakan oleh programmer yang lain. Untuk lebih memudahkan dalam pembuatan program, sengaja operasi database ini saya letakkan pada folder system/database. Adapun susunan direktori operasi database ini, terlihat seperti gambar disamping ini.

Driver database yang saya sediakan hanya mysql. Dilain waktu saya akan menambahkan driver untuk database lain misalnya Oracle, MS SQL Server, Postgres SQL dan sebagainya. Tentunya masing-masing driver tersebut mendukung operasi klasik dan PDO.

1. Factory
Jika kita baca di bukunya Gang of Four “Design Patterns: Elements of Reusable Object-Oriented Software”, factory ini tergolong dalam kreasional desain. Factory tersebut perlu kita buat ketika kita perlu mendefinisikan sebuah tipe data/class (kita sebut kreator)  yang berfungsi untuk membuat objek dari tipe data/class yang berbeda (kita sebut produk).  Tujuannya adalah agar pengguna tidak perlu capek-capek mempelajari class produk tadi. Pada framework ini yang disebut factory adalah class db_factory sedangkan yang disebut class produk adalah db_adapter. Dalam literatur lain, saya menemukan ada sistem dependency injection. Sistem dependency injection ini lebih sederhana dibandingkan dengan factory. Oleh karena itu dalam pembuatan program kali ini saya memanfaatkan dependency injection dalam membangun class database factory. Dibawah ini contoh source code class db_factory

2. Adapter
Telah saya sebutkan diatas, operasi database dalam framework ini mendukung banyak driver database. (mysql, oracle ms-sql server dsb). Sebenarnya masing-masing driver tersebut cara penggunaannya tentu berbeda antara satu dengan yang lain. Oleh karena itu kita perlu design pattern adapter agar pengguna tidak perlu memikirkan bagaimana cara mengoperasikan masing-masing driver tersebut.

Gambar disamping menunjukkan desain sistem db_factory dan db_adapter yang sudah saya jelaskan sebelumnya.

Fungsi/method callDB pada class db_factory ini nantinya akan dipanggil pada fungsi database yang ada di class loader. Untuk lebih jelasnya silakan anda lihat contoh source code yang saya sertakan. Ingat class loader ini terdapat pada folder core.

Coba anda perhatikan method yang terdapat pada db_adapter, disitu terdapat metode-metode untuk mengoparesikan database seperti pencarian (select), penambahan (insert), perubahan (update) dan penghapusan (delete) data. Saya temukan dibeberapa contoh framework, method-method ini ada yang menyebutnya dengan istilah active record. Dibeberapa buku design pattern active record ini sudah diakui sebagai salah satu pola dalam design pattern. Dibawah ini contoh source code class db_adapter.

3. Driver

OK, selanjutnya mari kita lanjutkan untuk membahas class driver. Ingat class driver ini merupakan tata cara pengoperasian database yang sesungguhnya. Gambar dibawah ini menjelaskan struktur desain sistem driver database.

Berikut ini contoh source code class mysql native.

Berikut ini contoh source code class mysql_pdo (operasi database PDO)

Sampai disini pembahasan mengenai operasi database sudah selesai. Selanjutnya coba saya jelaskan bagaimana cara menjalankan contoh program yang saya sertakan.

Pertama-tama anda siapkan dulu database-nya. Caranya buka phpmyadmin, kemudian buat database baru dengan nama blogkomputer. Setelah itu silakan anda buat table content seperti contoh dibawah ini.

Setelah table-nya selesai anda buat, jangan lupa isikan contoh datanya. Ini saya sertakan query untuk mengisi data table content tersebut.

Langkah kedua coba anda buka file database.php, yang terdapat pada folder application/config, kemudian lakukan pengaturan (setting) konfigurasi database. Lihat contoh dibawah ini.

Cukup sampai disini, kedepan akan saya bahas bagaimana membuat library, helper serta menambah error handling.

Selamat mencoba, semoga ada guna dan manfaatnya

Sumber disadur dari : http://blogkomputer.com/data-tutorial-membangun-sistem-database.html

Recent search terms:

  • source code php lppm
Eko Heri Susanto

Eko Heri Susanto

Direktur Riset at Techno Visindo Ekatama
Lulusan S2 Teknik Informatika ITS Surabaya. Saat ini Eko Heri Susanto bekerja sebagai dosen di STIKOM PGRI Banyuwangi. Kegiatan sehari-hari selain mengajar adalah melakukan penelitian dan pengabdian kepada masyarakat.Sejak bulan Juli 2012 sampai dengan sekarang, Eko Heri Susanto diberi mandat oleh Ketua STIKOM PGRI Banyuwangi untuk mengisi jabatan sebagai Kepala Bagian Lembaga Penelitian dan Pengabdian kepada Masyarakat (Kabag. LPPM) di Kampus STIKOM PGRI Banyuwangi. Kompetensi yang dikuasainya adalah Rekayasaya Perangkat Lunak, tehnik pemrograman komunikasi data, pemrograman web dan tehnik pemrograman perangkat bergerak (mobile).

Selain bekerja sebagai Dosen, Eko Heri Susanto tergabung dengan tim Techno Visindo Ekatama (Tendotama).

Selain melalui email dan telephon, Eko Heri Susanto juga bisa dihubungi di Facebook. Ungkapan terimakasih dan salam hormat disampaikan oleh Eko Heri Susanto kepada para pembaca artikel di tendotama.com. Semoga tulisan-tulisannya dapat membawa manfaat bagi kita semua.
Eko Heri Susanto