Posted by : Unknown Tuesday, December 10, 2013

ARSITEKTUR MVC DALAM YII FRAMEWORK



MVC (Model-View-Controller) adalah salah satu tipe arsitektur aplikasi. Yii menggunakan MVC. Struktur aplikasi yang menggunakan arsitektur MVC, akan dibagi menjadi tiga bagian.
M = Model = Bagian yang mendefinisikan hubungan antar data dalam DB dan aturan yang harus diikuti saat menyimpan data ke DB. Hal ini juga memberi kita alat untuk membaca / menyimpan data dari / ke DB.
V = View = Bagian yang digunakan hanya untuk menampilkan data kepada pengguna. Ia tidak menulis ke DB atau menghitung hal-hal sulit. View hanya menerima data dan menampilkannya menggunakan HTML, CSS, JS, dll.
C =  Controller = Bagian yang memproses dan merubah data, menangani tindakan pengguna, memutuskan, menjumlah, berpikir dan memanggil model dan menampilkan … It simply acts! atau lakukan sesuatu!

. Controller dapat membaca / menulis data dari / ke database hanya melalui Model. Controller juga mengevaluasi input pengguna, menggabungkan dengan data, menghitung nilai-nilai baru … dan mengirimkan keluaran dan hasil ke View dan DB. Melihat format data yang diberikan dan menampilkannya. (Misalnya menampilkan tabel-tabel dll)
Seperti yang kita lihat, Controller adalah titik pusat. Dia bosnya. Apa pun yang anda lakukan – Controller akan memprosesnya dan memutuskan apa yang harus dilakukan selanjutnya. Meminta data yang sesuai dari DB dan melakukan apa yang Anda ingin lakukan. Kita bisa melihat bahwa Model dan View tidak melakukan apa-apa, kecuali diminta. Dalam beberapa kasus, Model dan View tidak harus digunakan.
Jadi mari kita fokus pada Controller sekarang.
1. Controller
Controller dimulai (dan kodenya dijalankan) setiap kali anda memasukkan alamat di browser. Dalam kode, anda dapat membaca data dari POST, GET atau variabel SESSION, bekerja dengan DB, dll. Bila anda menggunakan arsitektur MVC (dalam Yii framework), alamat memiliki format khusus. Mereka menggunakan parameter yang menentukan controller mana yang akan digunakan. (bagian mana dari web yang ingin anda memasuki)
Anda dapat memiliki banyak controller. Setiap controller dapat digunakan untuk bekerja di bagian yang berbeda dari web anda. Satu controller dapat bekerja dengan account pengguna, satu lagi dengan produk yang anda jual, dll. Contoh alamat web ketika anda menggunakan MVC :
www.myweb.com/index.php?r=myController
Parameter “r” menunjukkan bahwa anda ingin menggunakan controller bernama “myController“. Dan di sini kita bisa melihat kelebihan khusus lain dari MVC (atau Yii). Alamat hanya berisi index.php. Tidak ada file lainnya. Semua navigasi dilakukan oleh “r” parameter dan controller.
2. Action
Controller dapat memiliki satu atau lebih sub-controller. Masing-masing melakukan hal berbeda. Misalnya, jika controller kita bekerja dengan “pengguna” maka satu sub-controller dapat digunakan untuk menghapus pengguna, satu lagi dapat menambah pengguna, yang ketiga untuk merubahan (menyunting) isinya … Sub-pengendali/sub-controller ini disebut Actions. Anda dapat (harus) menentukan tindakan/action menggunakan parameter ”r”. Seperti kita lihat di atas, controller ditentukan seperti ini: “?r=myController“. Jika controller kita punya action yang disebut “myAction“, dan jika kita ingin menjalankannya, kita akan menulis alamat ini:
www.myweb.com/index.php?r=myController/myAction
Kita bisa menulis ulang alamat ini misalnya seperti ini:
www.myweb.com/index.php?r=users/edit
Jika anda tidak menentukan action dan hanya menjalankan controller seperti ini “?r=myController” maka aksi default/default action yang akan dijalankan. Default action harus ditentukan dalam controller menggunakan fungsiactionIndex().
3. Model
Model adalah hal yang sangat sederhana dalam Yii. Anda tidak harus menulis satu barispun kode, model dapat dibuat secara otomatis menggunakan command line. Setiap tabel di DB memiliki model tersendiri. Model ini memiliki nama yang sama (atau serupa) seperti tabelnya. Setiap model memiliki 2 fungsi penting. Cari data dan Simpan data. Itu saja yang biasanya kita perlukan. Bila anda perlu membaca data dari DB ke controller, anda hanya menulis sesuatu seperti:
ModelName.FindAll()
dan hanya itu. Tidak perlu query SQL, tidak perlu fetching array (seperti yang anda harus lakukan di PHP). Itulah keuntungan dari Yii dan Yii menggunakan akses berorientasi objek untuk DB. Bila anda ingin menulis ke table, perintahnya terlihat seperti ini:
ModelName.column = value;
… 
ModelName.Save()
Hanya itu saja.
Hal lain yang model sediakan adalah hubungan/relation. Relasi ini memungkinkan anda untuk “tunnel” melalui satu tabel ke tabel yang lain. Yang penting ada Foreign Keys. Relasi misalnya sesuatu seperti SQL Join. Ketika setiap karyawan dalam tabel karyawan memiliki ID departemen masing-masing, Anda dapat dengan mudah mendapatkan info tentang departemen ini dengan menulis sesuatu seperti ini:
$employee->department->departmentName
Dimana $employee adalah satu karyawan tertentu yang dipilih berdasarkan beberapa kriteria, kata department adalah nama dari relasi (mengarah dari model milik employees ke model milik departements) dandepartmentName adalah kolom dalam di tabel departements.
4. View
Seperti yang saya tulis di atas, view tidak memiliki kecerdasan. Dia hanya menerima data dari Controller dan menampilkannya. Ini adalah satu-satunya tempat di mana kita menggunakan HTML, CSS, JavaScript dll. Kita tentu saja dapat menggunakan FORs, WHILEs, Ifs, models … Tetapi satu-satunya tujuannya adalah untuk menampilkan data ke pengguna.
Koreksi: Described View adalah view yang ideal. Dalam prakteknya, kadang-kadang lebih mudah bagi pemula untuk tidak mengirimkan data langsung dari controller ke view, tapi membaca data dari DB di View (menggunakan model) dan menampilkannya.

{ 1 comments... read them below or add one }

  1. Kalau bisa, bikin postingan juga mengenai pembangunan aplikasi sederhana menggunakan YII Framework :D
    Nice Post...

    ReplyDelete

- Copyright © 2013 Laboratorium Pemrograman dan Basis Data -Metrominimalist- Powered by Blogger - Designed by Johanes Djogan -