Menggunakan Yii Framework dengan Oracle
September 25th, 2011, Written by: | Categories: Tutorial, Yii Framework

Untuk artikel kali ini, kita akan membahas dasar pemograman Yii bagi yang belum pernah mencobanya. Penulis akan memaparkan cara membuat aplikasi dengan menggunakan database Oracle. Tentu saja apabila Anda menggunakan MySQL ataupun SQLite tidak akan ada perbedaan yang mencolok, karena sebenarnya perbedaan hanya terletak di file konfigurasi Yii dan beberapa fitur yang tidak dimiliki atau dimiliki Oracle.

Yii Framework

Yii Framework yang cepat, aman dan profesional

Mungkin yang menjadi pertanyaan adalah mengapa penulis sengaja memilih Oracle sebagai DBMS aplikasi padahal umumnya orang menggunakan MySQL atau Sqlite. Alasannya sederhana, tutorial untuk mempelajari dasar-dasar Yii dengan MySQL sudah terdapat di mana-mana. Oleh karena itu, penulis percaya tanpa menambah topik yang sama bukanlah ide yang baik. Oracle sendiri baru-baru ini didukung oleh Yii, sehingga diperkirakan tidak banyak orang yang menyadarinya. Oleh karena itu, menurut penulis artikel ini diharapkan pengguna Oracle yang ingin menggunakan Yii Framework memiliki arah.

Jika Anda masih belum menginstal Yii Framework, maka Anda bisa membaca terlebih dahulu bagaimana menginstall Yii framework.

Sebelum memulai penjelasan maka penulis akan memaparkan terlebih dahulu apa yang akan dibuat. Kita akan mencoba membuat aplikasi guestbook. Di mana setiap pengunjung website bebas untuk meninggalkan pesan mereka ke halaman website kita. Jadi setiap ada dapat tamu meninggalkan komentar, komentar mereka akan langsung ditampilkan. Tetapi sang pemilik website bisa melakukan perubahan pada data yang diberikan oleh user ataupun menghapusnya.

Environment pengembangan aplikasi penulis kali ini dilakukan di Windows 7, dengan aplikasi WAMP dan database Oracle Express Edition 10g. Oleh karena itu, apabila terdapat perbedaan aplikasi atau OS, harus disesuaikan.

Skema database yang kita gunakan sangat sederhana. Kita hanya cukup memerlukan satu buah tabel yang akan kita namakan sebagai tbl_guestbook. Di dalam tbl_guestbook terdapat

id NUMBER(19,0)
name VARCHAR2(100)
content VARCHAR2(2000)
email VARCHAR2(256)
website VARCHAR2(256)
ip_address VARCHAR2(15)
created_time DATE

dengan “id” sebagai primary key. Perhatian bahwa tipe data yang ditulis ini merupakan tipe data Oracle. Jika menggunakan tipe data yang lain cukup disesuaikan saja. Misalnya VARCHAR2 Oracle adalah sama dengan VARCHAR MySQL. NUMBER dari Oracle dapat diganti dengan BIGINT atau INT dari MySQL.

Setelah semua analisa dilakukan saatnya kita melakukan konstruksi. Pertama-tama kita memanfaatkan aplikasi yiic untuk mengkonstruksi kerangka aplikasi kita. Buka command dan pindah ke folder framework Yii. Setelah itu ketik
yiic.bat webapp ../guestbook

Di sini saya menyuruh yiic untuk membuat sebuah kerangka projek bernama guestbook. Ketika kita mengetik sintaks di atas, akan muncul pertanyaan apakah kita yakin. Kita cukup tulis “Y” dan tekan enter. Akhirnya folder guestbook pun sudah muncul. Perhatian sebelumnya bahwa yiic.bat hanya menulis php.exe. Sedangkan komputer penulis tidak tahu letak lokasi php.exe ada di mana oleh karena itu, penulis harus mengganti isi yiic.bat pada baris 19 menjadi:
if "%PHP_COMMAND%" == "" set PHP_COMMAND=c:/wamp/bin/php/php5.3.4/php.exe

Proses Konstruksi
Pertama kita konfigurasikan projek kita di guestbook/config/main.php supaya bisa mengakses Gii dan akses database. Untuk mengaktifkan Gii cukup hapus comment yang terdapat di baris 23 dan 30 di file main.php. Kemudian jangan lupa untuk mengubah password sesuai keinginan.

Langkah berikutnya setting connection string sehingga Yii bisa leluasa mengakses database. Secara default Yii memberikan connection string untuk koneksi ke SQLite, dan terdapat conection string untuk MySQL di bawahnya. Karena penulis menggunakan Oracle, maka penulis mengubah codingnya menjadi:

'db'=>array(
	'connectionString' => 'oci:dbname=//localhost:1521/guestbook',
	'username'=>'guestbook',
	'password'=>'root',
),

Berikutnya mengakses Gii. Dengan mengetik localhost/guestbook/?r=gii
maka akan ditampilkan halaman Gii yang meminta password. Pertama kita memasukkan password yang sudah kita set di file konfigurasi. Kemudian kita melanjutkannya dengan memilih Model. Kita masukkan nama tbl_guestbook, dan nama modelnya kita tetapkan sebagai Guestbook. Kemudian tinggal klik Generate.

Jika kita perhatikan di dalam folder protected/models, sudah terdapat sebuah file bernama guestbook.php. Itulah kelas Active Record untuk tabel tbl_guestbook.

Langkah berikutnya kita membuat tampilan antarmuka supaya pengguna website bisa insert, update dan delete. Masih tetap di halaman Gii, kali ini kita memilih CRUD. CRUD merupakan singkatan dari Create, Read, Update dan Delete. Masukkan nama model yang baru saja kita buat yaitu Guestbook. Setelah selesai klik Generate.

Sekarang untuk mengakses daftar guestbook kita tinggal ketik di URL: localhost/guestbook/?r=guestbook

Kita bahkan bisa menambahnya dengan mengklik Create Guestbook. Tetapi karena untuk membuatnya perlu hak akses, maka kita harus login terlebih dahulu. Untuk login, username “admin” dengan password “admin”. Ini merupakan username dan password default untuk seorang administrator. Di sini secara teoritis kita sudah menyelesaikan hampir 60% dari pekerjaan kita.

Saatnya kita mengatur hak akses supaya semua orang bebas melihat guestbook dan juga sekaligus membuat yang baru. Untuk itu kita buka ke GuestbookController. Kemudian lihat bagian accessRules(), kita ubah menjadi:

	public function accessRules()
	{
		return array(
			array('allow',
				'actions'=>array('index','view','create'),
				'users'=>array('*'),
			),
			array('allow',
				'actions'=>array('update','delete'),
				'users'=>array('admin'),
			),
			array('deny',  // deny all users
				'users'=>array('*'),
			),
		);
	}

Dengan demikian maka hanya user dengan nama “admin” yang bisa melakukan perubahan dan hapus. Sedangkan pengunjung biasa hanya bisa melihat guestbook dan membuat baru. Untuk memahami lebih jelas mengenai access list silahkan lihat di artikel mengenai access list.

Dari langkah yang sudah dijelaskan, maka boleh dikatakan tidak ada satu baris code yang perlu ditulis untuk membuat sistem CRUD. Ini merupakan kelebihan yang dimiliki ketika ingin membuat aplikasi kecil yang sangat bergantung dengan operasi insert, update, delete. Petualangan kita dengan Yii baru dimulai ketika sudah sampai ke tahap bisa menghasilkan CRUD. Mengapa? Pertama itu artinya aplikasi sudah dipastikan memiliki conneciton string yang benar (kalau connection string salah, Gii tidak bisa jalan). Kedua, aplikasi kita jarang hanya sekedar CRUD, oleh karena itu CRUD ini hanya merupakan bagian kecil saja dari keseluruhan aplikasi.

More about: ,

3 Responses to “Menggunakan Yii Framework dengan Oracle”

  1. Terpusat Media

    kalau misal url dari database diambil bukan dari primary keynya gimana ya ??

    misal id=1

    menjadi id =nama-saya-siapa

    giamana ya ?

    Reply

Leave a Reply to Terpusat Media

Click here to cancel reply.