Pemrograman Python sudah mendukung pengembangan aplikasi berbasis
MVC, beberapa aplikasi dan framework berbasis Python populer saat ini
yang sudah mendukung MVC dengan Python antara lain wxPython, Django
dan Web2py.
Terinspirasi dengan artikel wxPython
yang mengulas teknik pembuatan aplikasi berbasis MVC, dengan tulisan
ini saya bermaksud sedikit berbagi bagaimana menggunakan teknik MVC
sederhana dalam pemrograman Python.
Tapi sebelum kita mulai tidak ada salahnya kita ulas sedikit apa itu yang dimaksud MVC.
Dikutip dari Wikipedia,
Model-View-Controller atau MVC adalah sebuah metode untuk membuat sebuah
aplikasi dengan memisahkan data (Model) dari tampilan (View) dan cara
bagaimana memprosesnya (Controller). Dalam implementasinya kebanyakan
framework dalam aplikasi website adalah berbasis arsitektur MVC. MVC
memisahkan pengembangan aplikasi berdasarkan komponen utama yang
membangun sebuah aplikasi seperti manipulasi data, antarmuka pengguna,
dan bagian yang menjadi kontrol dalam sebuah aplikasi web.
Model,
Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang
membantu seseorang dalam pengelolaan basis data seperti memasukkan data
ke basis data, pembaruan data dan lain-lain.
View, View adalah bagian yang mengatur tampilan ke pengguna. Bisa di katakan berupa halaman web.
Controller,
Controller merupakan bagian yang menjembatani model dan view.
Controller berisi perintah-perintah yang berfungsi untuk memproses suatu
data dan mengirimkannya ke halaman web.
Dibawah ini adalah contoh pengaplikasian teknik MVC yang mungkin 'teramat sangat' sederhana. Sebelum Anda memulai pastikan di PC atau laptop Anda sudah terinstall Python (dan IDLE), berikut contoh kodenya :
class Model:
def __init__(self):
self.kata="\"Text from Model\""
self.data=[]
def tampil1(self):
self.tambahkata()
return self.data
def tampil2(self):
self.kata="\"Simple Model View Controller\""
self.tambahkata()
return self.data
def tambahkata(self):
self.data.append(self.kata)
class View:
def nampil1(self,data):
print "\n\rData pertama : " + data[0]
def nampil2(self,data):
print "\n\rData kedua : " + data[1]
def nampilsemua(self,data):
print "\n\rTampilkan semua data :"
if len(data)>0:
for d in data:
print d
class Controller:
def __init__(self):
self.model=Model()
self.view=View()
self.teks=""
def tampilKata1(self):
self.teks=self.model.tampil1()
self.view.nampil1(self.teks)
def tampilKata2(self):
self.teks=self.model.tampil2()
return self.view.nampil2(self.teks)
def semuaKata(self):
return self.view.nampilsemua(self.model.data)
def tanpaView(self):
print "\n\r\"Accessing Controller directly without View\""
def main():
app=Controller()
app.tampilKata1()
app.tampilKata2()
app.semuaKata()
app.tanpaView()
if __name__ == '__main__':
main()
Bila tidak ada kesalahan berikut hasil keluarannya :
Data pertama : "Text from Model"
Data kedua : "Simple Model View Controller"
Tampilkan semua data :
"Text from Model"
"Simple Model View Controller"
"Accessing Controller directly without View"
No comments:
Post a Comment