Menu Tab

KOMPAS.com - Edukasi

Jumat, 08 Mei 2009

Data Access Object pada PRADO

Setelah kita mempelajari tentang SQL Statement pada MySQL sekarang kita akan belajar tentang Data Access Object (DAO) pada PRADO. Perlu diperhatikan didalam penggunaan koneksi database dalam PRADO selalu mengunakan PHP Data Objects (PDO) sehinga kita harus memastikan bahwa modul PDO telah aktif dalam Server kita dengan mengceknya terlebih dahulu. Jika PDO telah terinstall maka akan tampak tampilan pada gambar 10.1 sebagai berikut:



Gambar 10.1  Konfigurasi PDO Aktif

Seperti tampak pada gambar 10.1 bahwa PDO telah diaktif, untuk mengetahui konfigurasinya dengan mengakses http://localhost:8081/xampp/phpinfo.php pada browser Anda. Di mana PDO pada server penulis dapat menangani database berjenis MS SQL, MySQL, dan SQLite 2.

Setelah PDO aktif sekarang waktunya kita mengkonfigurasi aplikasi kita dengan melakukannya pada file “application.xml”, untuk menghubungkan database dengan PDO pada ADO kita dapat menggunakan beberapa parameter koneksi yaitu:

  1. MySQL: mysql:host=ALAMAT_SERVER_DB;dbname=NAMA_DB

  2. SQLite: sqlite:/path/tod/dbfile

  3. ODBC: odbc:NAMA_ODBC


Setelah kita mengetahui parameter koneksi kini saatnya kita membuat parameter dalam “application.xml” yang kita letakkan setelah “<services>”, adapun codenya adalah sebagai berikut:

<parameters>

<parameter id="myDSN" value="mysql:host=localhost;dbname=modul9" />

<parameter id="myUser" value="root" />

<parameter id="myPass" value="" />

</parameters>

Kemudian jangan lupa untuk melakukan include/import class TParameterModule pada path kita dengan menuliskan “System.Util.ParameterModule” serta tidak lupa untuk memasukkan kelas untuk mengakses database “System.Data.*”, adapun data “application.xml” secara lengkap tampak pada listing berikut:

<?xml version="1.0" encoding="utf-8"?>

<application id="modul10" mode="Debug">

<paths>

<using namespace="System.Web.*" />  

<using namespace="System.Web.UI.*" />

<using namespace="System.Data.*" />

<using namespace="System.Util.TParameterModule" />

</paths>

<modules />

<services>

<service id="page" class="TPageService" BasePath="Application.App_Page" DefaultPage="Index" />                                             

</services> 

<parameters>

<parameter id="myDSN" value="mysql:host=localhost;dbname=modul9" />

<parameter id="myUser" value="root" />

<parameter id="myPass" value="" />

</parameters>

</application>

Disini kita mengunakan database yang telah kita buat pada Modul 9 sebelumnya. Sehinga program kita nanti dapat berkomunikasi dengan database yang telah kita buat sebelumnya. Setelah itu kita akan membuat UI pada ”Index.page” adapun source codenya adalah sebagai berikut:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Modul 10</title>

</head>

<body>

<com:TForm ID="mod10">

<h1>Menampilkan data Login</h1>

<com:TDataGrid ID="dgView" AutoGenerateColumns="false" AllowPaging="true" DataKeyField="user_login" HeaderStyle.BackColor="black" HeaderStyle.ForeColor="white" ItemStyle.BackColor="#BFCFFF" ItemStyle.Font.Italic="true" AlternatingItemStyle.BackColor="#E6ECFF">

<com:TBoundColumn HeaderText="Username" HeaderStyle.Wrap="false" DataField="user_login" />

<com:TBoundColumn HeaderText="Password" HeaderStyle.Wrap="false" DataField="password_login" />

<com:TBoundColumn HeaderText="Kode Role" HeaderStyle.Wrap="false" DataField="kd_role" />

</com:TDataGrid>

</com:TForm>

</body>

</html>


Sedangkan untuk logic controlnya yaitu ”Index.php” adalah sebagai berikut:

<?php

class Index extends TPage {

 private $_conn; 

 public function OnLoad($param){

  parent::OnLoad($param);

  try {

   $this->_conn = new TDbConnection($this->Application->Parameters['myDSN'],

    $this->Application->Parameters['myUser'],

    $this->Application->Parameters['myPass']);

   $this->_conn->Active = true;



   $sql = "SELECT * FROM tblLogin";

   $dr = $this->_conn->createCommand($sql)->query();

   $rows = $dr->readAll();



   if(!$this->Page->IsPostBack){

    $this->dgView->DataSource = $rows;

    $this->dgView->dataBind();

   }

  }

  catch(Exception $e){

   die($e);

  }

 }



 public function __destruct(){

  $this->_conn->Active = false;

 }

}

?>


Disini fungsi OnLoad($param) dalam Visual Basic sama dengan Form_Load sehinga proses datagrid pada TDataGrid dapat kita diproses pada awal proses dimana ada perintah !$this->Page->IsPostBack untuk menghandle pemrosesan hanya dilakukan pada awal kali proses jika halaman mengalami refresh maka tidak akan dilakukan penulisan ulang, untuk function __ destruct() merupakan function dari PHP 5 (Chapter 59. General Information, PHP Manual) yang berfungsi untuk menutup koneksi database. Adapun hasil dari program kita tampak pada gambar 10.2



Gambar 10.2  Hasil dari tampilan program

Dimana hasil diatas bisa kita modifikasi sesuai keinginan kita di dalam mengembangkan aplikasinya. Untuk modul berikuntya kita akan belajar insert, update, dan delete dengan ADO.

1 komentar: