Welcome to Abdul Malik Ikhsan's Blog

Array[] (Pra FrameWork 1)

Posted in Tutorial PHP by samsonasik on July 22, 2008

Array, adalah hal yang paling sering kita pakai jika kita menggunakan suatu framework. Salah satu kelebihan framework secara umum adalah dipisahkannya Layer Model, View, dan Controller. Jika dalam JSP, kita memasukkan dalam atribut ( yang bisa menampung Array / ArrayList), di PHP, kita bisa masukkan dalam Array Dinamis, yang bisa menangkap semua tipe data.
Nah, sebelum kita belajar framework, alangkah baiknya kita belajar cara menangkap data itu sendiri dalam Array dinamis.
Pertama, kita buat file conf.php untuk mengisi konfigurasi :

Code:
<?php
/**
* nama file = conf.php
* @author Abdul Malik Ikhsan
* @param none
*/
$server = “localhost”;
$dbtype = “mysql”;
$usr = “root”;
$pwd = “123”;
$db = “praframework”;
?>

Nah, sekarang kita buat file library untuk kondisional konfigurasi yang telah kita buat :

Code:
<?php
/**
* nama file lib.php
* @author Abdul Malik Ikhsan
* @param $query parameter isian Query
*/
?>
<?php include “conf.php” ?>
<?php
function getConn(){
global $server,$usr,$pwd,$db,$dbtype;
switch($dbtype):
case “mysql”:
mysql_connect($server,$usr,$pwd);
mysql_select_db($db);
break;
case “sqlserver”:
mssql_connect($server,$usr,$pwd);
mssql_select_db($db);
break;
endswitch;
}

function dbGetAll($query){
global $server,$usr,$pwd,$db,$dbtype;
$result = array();
switch($dbtype){
case “mysql”:
$rs = mysql_query($query);
while ($rows = mysql_fetch_array($rs)){
$result[] = $rows;
}
break;
case “sqlserver”:
$rs = mssql_query($query);
while ($rows = mssql_fetch_array($rs)){
$result[] = $rows;
}
break;
}
return $result;
}

…………
Sebelum kita melangkah lebih jauh, kita buat dulu tabel2nya, misal tabel provinsi dengan field kode_provinsi dan nama_provinsi , serta table kota yang merupakai detail dari table provinsi dengan field kode_kota, nama_kota, dan kode_provinsi.
The Model :

Code:
<?php
/**
* nama file Model.php
* @author Abdul Malik Ikhsan
* @param $kd parameter isian kota dengan detail kode provinsi = @param
*/
?>
<?php include “lib.php” ?>
<?php
class Model{
//konstruktor
function __construct(){
getConn();
}
function getProvince(){
$privince = array();
$province = dbGetAll(“select * from provinsi”);
return $province;
}
function getCity($kd){
$city = array();
$city = dbGetAll(“select * from kota where kode_provinsi = ‘$kd'”);
return $city;
}
}

…………
The Controller : (Tempat instansiasi kelas menjadi objek dan menampung data sebelum ditampilkan)

Code:
<?php
/**
* nama file Controller.php
* @author Abdul Malik Ikhsan
* @param none
*/
?>
<?php include “Model.php” ?>
<?
$data = array();
// instansiasi kelas Model menjadi objek $prov
$prov = new Model();
//tampung hasil Query seleksi provinsi ke array $data[‘provinsi’]
$data[‘provinsi’] = $prov->getProvince();
//karena kita akan mencoba menyeleksi data kota
//berdasarkan kode provinsi, kita bisa melooping data
//provinsi di sini, kita tampung dalam array $kota
$kota = array();
forEach($data[‘provinsi’] as $p){
$kota[] = $prov->getCity($p[‘kode_provinsi’]);
}
// isi array $data[‘kota’] dengan array tampungan $kota
$data[‘kota’] = $kota;
?>

Nah, sekarang akan kita coba Layer View (Presentation Layer) :

Code:
<?php
/**
* nama file View.php
* @author Abdul Malik Ikhsan
* @param none
*/
?>
<?php include “Controller.php” ?>
<table width=”515″ border=”1″>
<tr>
<td width=”48″>&nbsp;No.</td>
<td width=”70″>&nbsp;Kode Provinsi</td>
<td width=”375″>&nbsp;Nama Provinsi</td>
<td>Kota2nya</td>
</tr>
<?php $i = -1; forEach($data[‘provinsi’] as $prov){ $i++; ?>
<tr>
<td>&nbsp;<?=$i+1?>.</td>
<td>&nbsp;<?=$prov[‘kode_provinsi’]?></td>
<td>&nbsp;<?=$prov[‘nama_provinsi’]?></td>
<td>
<?php forEach($data[‘kota’][$i] as $city){ ?>
&nbsp;<?=$city[‘nama_kota’]?><br>
<?php } ?>
</td>
</tr>
<?php } ?>
</table>

One Response

Subscribe to comments with RSS.

  1. […] Language’ sederhana. Sebelum masuk bahasan ini, anda harus baca dulu bahasan tentang Pra FrameWork 1 dulu, :), Sebenarnya, kita akan membuat aplikasi yang sama, hanya dengan style yang lebih keren. […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: