Anda di halaman 1dari 5

KONSEP MVC (Model, View, Controller) DALAM MEMBATASI AKSES APLIKASI BERBASIS WEB

A. LATAR BELAKANG Dunia pemrograman website mengenal banyak sekali bahasa pemrograman yang bisa digunakan. Sewaktu memasuki pemrograman berbasis web, seorang programmer akan mengenal terlebih dahulu sebuah bahasa pemrograman website statis atau client side yaitu HTML dan CSS. Kecenderungan HTML dan CSS yang hanya sebagai bahasa pemrograman untuk merancang tampilan, memaksa programmer untuk mengenal bahasa pemrograman berbasis web lain yang bisa digunakan untuk merancang sebuah sistem yang dilengkapi dengan tampilan. Bahasa pemrograman berbasis web tersebut lebih sering dikenal bahasa pemrograman website dinamis atau server side. Walaupun hingga saat ini HTML sudah mencapai versi 5 dan CSS versi 3, HTML dan CSS tetaplah sebuah bahasa pemrograman yang bersifat sebagai penghias tampilan website. Salah satu bahasa pemrograman website dinamis yang ada sampai saat ini adalah PHP (Hypertext Preprocessor). Saat ini PHP mencapai versi 6 dengan perubahan yang sangat signifikan dari versi terdahulunya PHP versi 4. PHP versi 6 memiliki fasilitas yang hampir sama dengan PHP versi 5, terdapat beberapa penghilangan keyword untuk menjaga keamanan dan kestabilan bahasa pemrograman. Penulis menggunakan PHP versi 5 untuk mensimulasikan aplikasi berbasis web. Pada awalnya PHP tidak dirancang untuk berbasis objek melainkan berbasis prosedural. PHP versi 5 ke atas memiliki dukungan OOP (Object Oriented Programming) yang lebih baik. PHP yang bersifat open source memungkinkan pengembangan bahasa pemrograman berlangsung cepat. Hal ini terlihat dari banyaknya situs situs yang menyediakan kelas kelas dalam bahasa PHP. Seorang programmer yang mengenal PHP versi 5 ke atas tentunya akan sangat terbantu dengan adanya kelas - kelas ini. Programmer dapat mengembangkan sistem tidak dari nol melainkan dari penyesuaian kelas dengan sistem. Namun banyak pula programmer menciptakan fungsi fungsi dan kelas kelas sendiri untuk pengembangan sistemnya dengan alasan kemudahan dalam pengembangan. Hal ini terkadang akan menjadi bumerang bagi programmer itu sendiri apabila sistem sudah ditinggalkan selama berbulan bulan bahkan bertahun tahun. Programmer harus menguji dan memahami ulang sistem untuk pengembangan lanjutan. Hal ini akan diperparah apabila klien atau pengguna sistem ingin menggabungkan sistem dengan aplikasi pihak ketiga. Kendala lain yang mungkin terjadi apabila sistem dikembangkan secara berkelompok. Alur kerja dan pembagian komponen sistem awal haruslah jelas. Konsep MVC dapat digunakan untuk menjawab kendala kendala tersebut. Dengan adanya MVC, programmer dapat memisahkan antara logika pembuatan kode dengan tampilan website. Penggunaan MVC menyebabkan sistem besar lebih terstruktur dan lebih sederhana. Secara sederhana konsep MVC terdiri dari tiga bagian yaitu model, view dan controller. Konsep MVC dapat ditemukan pula dalam framework PHP Codeigniter, CakePHP dan Symfony B. PERMASALAHAN Adapun permasalahan yang diangkat dalam tulisan adalah penggunaan konsep MVC dalam membatasi hak akses aplikasi berbasis web. Penulis mencontohkan pembatasan hak akses berupa aplikasi sederhana berbasis web untuk membatasi jumlah download user atau pengguna. C. LANDASAN TEORI 1. Model View Controller (MVC) MVC adalah sebuah pola perancangan yang mengizinkan pengembangan untuk memisahkan kode kode ke dalam 3 (tiga) kategori yaitu : Model Merepresantiskan struktur data dari website yang bisa berupa basis data maupun data lain, misalnya dalam bentuk file teks atau file xml. Biasanya di dalam model akan berisi kelas dan fungsi untuk mengambil, melakukan update dan menghapus data website. Karena sebuah website biasanya menggunakan basis data dalam menyimpan

data maka bagian Model biasanya akan berhubungan dengan perintah-perintah query SQL. Model bisa dibilang khusus digunakan untuk melakukan koneksi ke basis data. Oleh karena itu, logika-logika pemrograman yang berada didalam model juga harus yang berhubungan dengan basis data. Misalnya saja pemilihan kondisi tetapi untuk memilih melakukan query yang mana. View Merupakan informasi yang ditampilkan kepada pengunjung website. Sebisa mungkin di dalam View tidak berisi logika-logika kode tetapi hanya berisi variablel - variabel yang berisi data yang siap ditampilkan. View bisa dibilang adalah halaman website yang dibuat menggunakan HTML dengan bantuan CSS atau JavaScript. Di dalam view jangan pernah ada kode untuk melakukan koneksi ke basis data. View hanya dikhususkan untuk menampilkan data-data hasil dari model dan controller. Controller Controller merupakan penghubung antara Model dan View. Di dalam Controller inilah terdapat kelas dan fungsi-fungsi yang memproses permintaan dari View ke dalam struktur data di dalam Model. Controller juga tidak boleh berisi kode untuk mengakses basis data. Tugas controller adalah menyediakan berbagai variabel yang akan ditampilkan di view, memanggil model untuk melakukan akses ke basis data, menyediakan penanganan error, mengerjakan proses logika dari aplikasi serta melakukan validasi atau cek terhadap input.

Jadi secara singkat urutan dari sebuah request adalah sebagai berikut : user berhubungan dengan View, di mana di dalam View ini semua informasi ditampilkan. Saat user melakukan permintaan atau request, misal klik tombol maka request tersebut akan diproses oleh Controller. Apa yang harus dilakukan, data apa yang diinginkan, apakah ingin melihat data, atau memasukan data atau mungkin melakukan validasi data terlebih dahulu, semua diproses oleh Controller. Kemudian Controller akan meminta Model untuk menyelesaikan request, baik itu melakukan query atau apapun. Dari Model, data akan dikirim kembali untuk diproses lebih lanjut di dalam Controller dan baru dari Controller data akan ditampilkan di View. 2. Codeigniter Framework Codeigniter merupakan salah satu dari sekian banyak framework PHP yang ada. Codeigniter dikembangkan oleh Rick Ellis (http://www.ellislab.com). Tujuan dari pembuatan framework Codeigniter ini menurut user manualnya adalah untuk menghasilkan framework yang akan dapat digunakan untuk pengembangan proyek pembuatan website secara lebih cepat dibandingkan dengan pembuatan website dengan

cara koding secara manual, dengan menyediakan banyak sekali pustaka yang dibutuhkan dalam pembuatan website, dengan antarmuka yang sederhana dan struktur logika untuk mengakses pustaka yang dibutuhkan. Codeigniter membiarkan kita untuk memfokuskan diri pada pembuatan website dengan meminimalkan pembuatan kode untuk berbagai tujuan pembuatan website. Berikut fasilitas fasilitas yang didukung oleh Codeigniter : a. Sistem berbasis Model View Controller b. Kompatibel dengan PHP versi 4. c. Terdapat dukungan untuk berbagai basis data. d. Mendukung Active Record Database. e. Mendukung form dan validasi data masukan. f. Keamanan dan XSS filtering. g. Tersedia pengaturan session. h. Tersedia kelas untuk mengirim email. i. Tersedia kelas untuk manipulasi gambar (cropping,resizing, rotate dan lain-lain). j. Tersedia kelas untuk upload file. k. Tersedia kelas yang mendukung transfer via FTP. l. Mendukung lokalisasi bahasa. m. Tersedia kelas untuk melakukan pagination (membuat tampilan per halaman). n. Mendukung enkripsi data. o. Mendukung benchmarking. p. Mendukung caching. q. Pencatatan error yang terjadi. r. Tersedia kelas untuk membuat calendar. s. Tersedia class untuk mengetahui user agent, misalnya tipe browser dan sistem operasi yang digunakan pengunjung. t. Tersedia kelas untuk pembuatan template website. u. Tersedia kelas untuk membuat trackback. v. Tersedia pustaka untuk bekerja dengan XMP-RPC. w. Menghasilkan clean URL. x. URI routing yang felksibel. y. Mendukung hooks, ekstensi class dan plugin. z. Memiliki helper (fungsi yang dirancang dengan berbasis prosedural) yang sangat banyak jumlahnya. D. PEMBAHASAN 1. Perancangan Aplikasi Aplikasi sederhana berbasis web dibangun menggunakan Web Server Apache versi 2.2.8, bahasa pemrograman PHP versi 5, dan Database Server MySQL versi 5. User diberikan 5 (lima) kali kesempatan untuk mendownload file. Apabila user sudah men-download sebanyak 5 (lima) kali, user tidak dapat lagi melakukan download file. Aplikasi akan mengecek jumlah klik terhadap link download berdasarkan IP (Internet Protocol) Address user dan tanggal. Aplikasi ini dikembangkan secara sederhana dengan menganggap IP Address user tidak disembunyikan dengan IP Proxy. User dapat melakukan download file lagi pada hari berikutnya. Penggunaan konsep MVC dapat dilihat dari alur kerja aplikasi. Ketika user men-klik file yang akan di-download, parameter nama file akan dikirim ke controller. Proses dalam controller adalah memanggil fungsi yang ada dalam model untuk mengecek jumlah klik yang dilakukan oleh user berdasarkan IP Address dan tanggal. Apabila klik belum mencapai 5 (lima) kali, izin download file akan diberikan dan IP Address serta tanggal akan diisikan ke database dengan memanfaatkan fungsi lain dalam model. Jika jumlah klik mencapai 5 (lima) kali, controller akan menampilkan pesan berakhirnya kesempatan untuk download ke view yang dapat dilihat user dan tidak lagi mengeksekusi fungsi penyimpanan IP Address user dan tanggal ke database (model).

2. Implementasi Aplikasi Proses upload file yang dilakukan oleh admin atau pengguna dengan level yang lebih tinggi dapat dilakukan dengan mengetik link index.php/apanel pada Address Bar browser. Berikut tampilan halaman upload :

Penulis sengaja memisahkan halaman upload dan download dengan tujuan membedakan level pengguna walaupun tidak melalui proses login. Berikut tampilan halaman download :

Selama jumlah klik user tidak mencapai 5 (lima) kali, user dapat men-download file.

Apabila jumlah klik mencapai 5 (lima) kali, user akan diberikan pesan berakhirnya download.

Anda mungkin juga menyukai