Implementasi MVC Model View Controller

password: delisah host: localhost Untuk passwordnya disesuaikan dengan password pada saat penginstalan MYSQL. Terlihat ada 3 pengisian password yaitu pada development, test, production. Dari ketiga database tersebut penggunaannya tergantung dengan kebutuhan. Penamaan pada MYSQLnya adalah namadatabase_development, namadatabase_test, namadatabase_production. Pada tahap pengembangan ini database yang digunakan adalah development sedangkan yang test digunakan ketika proses tes aplikasi dan yang Production ketika proses produksi.

4.4 Implementasi MVC Model View Controller

Aplikasi katalog online ini dibangun dengan menggunakan metode MVC Model View Controller yang merupakan metode baru dalam membangun aplikasi berbasis WEB. Adapun cara kerjanya sebagai berikut: halaman interaksi yang merupakan bentuk dari View akan mengirimkan request ke controller sesuai dengan input aksi yang diberikan user. Controller merespon aksi dari view dengan cara berkomunikasi dengan model. Komunikasi dapat berupa mengakses, mengubah, menambah data yang tersimpan oleh model. Controller akan memanggil view yang sesuai untuk selanjutnya ditampilkan sebagai output yang dapat dilihat oleh user.

4.4.1 Implementasi Controller

Controller mewakili control flow logic. Keputusan mengenai view mana yang harus dipanggil untuk menampilkan data tertentu, bagian mana dari model yang harus diupdate ditangani oleh controller. Berperan sebagai perantara dari aplikasi dan mengambil tiap request. Lalu memanggil model yang cocok untuk meng-update atau mengambil data. Setelah itu memilih view yang cocok untuk menampilkan data. Berikut ini potongan program controller pada user_controller: class UserController ApplicationController layout standard def list users = User.find :all end def show user = User.findparams[:id] end def new case request.method when :post user = User.newparams[:user] if user.save redirect_to :controller = user, :action = list end end end def create user = User.newparams[:user] if user.save redirect_to :controller = book, :action = sukses else render :action = new end end def edit user = User.find:first, :conditions = [login = ?, params[:login]] end def update user = User.findparams[:id] if user.update_attributesparams[:user ] redirect_to :action = show, :id =user else render :action = edit end end def delete User.findparams[:id].destroy redirect_to :action = list end def login if session[:user]=User.authenticateparams[:user][:login ],params[:user][:password] if params[:user][:password ] == 21071988 redirect_to :controller = book elsif params[:user][:status ] == dosen redirect_to:controller=book,:action=list else params[:user][:status ] == mahasiswa redirect_to:controller=book,:action=list end else render:text = Login Ulang end end def logout reset_session redirect_to :controller = book end end Penjelasan untuk setiap action adalah sebagai berikut: A. Action List Yang dapat melihat profil semua anggota hanya administrator. Sedangkan anggota hanya dapat melihat profil mereka sendiri bukan anggota lain. Action list tidak berkomunikasi dengan model. Action list ini akan memanggil list.rhtml pada view. Yang akan digunakan untuk menampilkan daftar anggota dalam sistem. B. Action Show Action show digunakan ketika anggota ingin melihat profilnya. Action show pada user_controller akan memanggil show.rhtml pada view yang akan menampilkan form lihat profil anggota. C. Action New dan action create Untuk dapat masuk ke halaman anggota maka harus mendaftar terlebih dahulu. Dengan mengisi data pada form pendaftaran. Action new dan action create ini yang mengatur proses pendaftaran. Berkomunikasi dengan model untuk validasi inputan user. Action new ini akan memanggil new.rhtml pada view untuk form pendaftaran. D. Action edit dan action update Action edit dan action create digunakan untuk mengubah profil anggota. Action edit ini akan memanggil edit.rhtml pada view untuk menampilkan form yang akan digunakan oleh user untuk mengubah profil mereka. Pada form pendaftaran dan form ubah profil memiliki tampilan yang sama dan isian-isiannya juga sama. Untuk pengaturan validasi pada proses ubah profil sama dengan pada saat proses pendaftaran mulai dari pengaturan form tidak boleh kosong, pengaturan email dan lain-lainnya. E. Action Delete Action delete ini digunakan untuk menghapus anggota dalam sistem pada user_controller tanpa komunikasi dengan model. Tetapi berkomunikasi dengan active record untuk menghapus nama dalam database. Action delete ini tidak memanggil rhtml pada view. F. Action Login Halaman ini digunakan oleh para anggota yang sudah melakukan pendaftaran sebelumnya yang nantinya akan digunakan untuk melakukan login. Pada implementasi login ini diatur oleh action login pada user_controller. Untuk pembagian hak aksesnya dibagi menjadi 3 bagian. Untuk administrator ditentukan dengan passwordnya yaitu 21071988 jadi apabila login dengan password 21071988 maka akan dialihkan ke halaman administrator. Untuk anggotanya terbagi menjadi 2 yaitu anggota sebagai dosen dan anggota sebagai mahasiswa. Dalam login ditentukan dengan status apabila statusnya dosen maka akan dialihkan pada halaman anggota dosen tetapi apabila statusnya mahasiswa maka akan dialihkan ke halaman anggota mahasiswa. Apabila user dalam memasukkan login dan passwordnya salah maka akan muncul peringatan login ulang. Untuk tampilan halaman loginnya diletakkan pada halaman standard.rhtml yang ada pada di directory appviewlayoutstandard.rhtml. Yang tampilannya diatur dengan CSS.

4.4.2 Implementasi Model

Model mewakili data yang diproses oleh suatu aplikasi. Menyediakan suatu link kepenyimpanan data .Berikut ini adalah potongan program model pada model user. class User ActiveRecord::Base validates_presence_of :login, :password, :email ,:nama_depan,:nama_belakang,:alamat,:tempat_lahir,:message =Harus Diisi validates_confirmation_of :email validates_uniqueness_of :password, :login ,:message =Sudah Digunakan validates_format_of :email,:with = [\s]+?:[-a-z0- 9]+\.+[a-z]{2,}i,:message =Penulisan Email Anda Salah has_many :books has_many :videos has_many :comments has_many :commentvideos def self.authenticatelogin,password find:first, :conditions = [login = ? and password = ?,login, Digest::SHA1.hexdigestpassword] end def password=value write_attributepassword, Digest::SHA1.hexdigestvalue end end Terlihat terdapat validasi untuk inputan user, relasi dan pengenkripsian password. Berikut ini penjelasannya: A. Pengecekan validasi inputan user 1 Apakah tidak ada yang kosong? Yaitu pada login, password, email, nama depan, nama belakang, alamat, tempat lahir. Jika masih ada yang kosong maka akan muncul pesan ”harus diisi” 2 Apakah pengisian email dengan konfirmasi dari email sudah benar? Jika masih berbeda akan muncul pesan. 3 Apakah unik? Yaitu pada pengisian password dan login. Jika sudah ada yang menggunakan maka akan muncul pesan ”Sudah digunakan” 4 Apakah penulisan format untuk email sudah benar? Untuk jenis karakter yang boleh digunakan dan tidak boleh digunkan sudah ditentukan. Jika tidak sesuai dengan format 5 Berikut ini adalah gambar modelnya: 6 penulisan email yang sudah ditentukan akan muncul pesan kesalahan ”Penulisan email anda salah” B. Relasi Pada relasi tersebut di atas terdapat has_many:comments. Sedangkan pada model di comment belongs_to:user. Maksudnya adalah seorang anggota dapat menulis beberapa komentar pada sebuah buku, tetapi satu komentar hanya dapat ditambahkan oleh seorang anggota. Berdasarkan penjelasan tersebut maka hubungan tabel antara users dan comment adalah satu banding banyak. C. Pengenkripsian Password Pada pendaftaran ini password yang dimasukkan dienkripsi dengan menggunakan metode SHA1.

4.4.2 Implementasi View

View merupakan representasi visual dari user interface atau tampilan dari suatu aplikasi. Untuk implementasi view akan dipanggil sesuai dengan action dari controllernya.

4.5 Implementasi Aplikasi Desain Antar Muka