Implementasi Model Implementasi Model View Controller MVC

development ,sedangkan yang test digunakan ketika proses tes aplikasi dan yang Production ketika proses produksi. Untuk melakukan pengecekan apakah database dapat berjalan atau tidaknya adalah dengan membuka alamat http:localhost:3000 .

4.3 Implementasi Model View Controller MVC

Didalam framework rails ini pada dasarnya menggunakan penerapan metode MVC yang merupakan metode dalam membangun website aplikasi. Adapun cara kerjanya sebagai berikut: halaman interaksi yang merupakan bentuk dari View akan mengirimkan request ke controller sesuai dengan action 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 index dan file yang sesuai, untuk selanjutnya ditampilkan pada user interface sebagai output yang dapat dilihat oleh user. Pada implementasinya MVC dapat dibuat satu persatu atau bisa juga dibuat dengan sekaligus dengan memanfaatkan fasilitas eksekusi scaffold, yaitu ruby scriptgenerate scaffold table name in singular name of the controller, misalnya : ruby scriptgenerate scaffold member

4.3.1 Implementasi Model

Model mewakili data yang diproses oleh suatu aplikasi. Menyediakan suatu link penyimpanan data . Untuk menambahkan pemetaan hubungan antar Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. kelas pada setiap model, misalnya pada model Member member.rb , didalamnya akan terlihat kode berikut: class Member ActiveRecord::Base has_many :events validates_length_of :login, :within = 3..40 validates_length_of :password, :within = 5..40 validates_presence_of:login,:email,:password, :password_confirmation, :salt validates_uniqueness_of :login, :email validates_confirmation_of :password validates_format_of :email, :with = [\s]+?: [-a-z0-9]+\.+[a-z]{2,}i, :message = Invalid email attr_protected :id, :salt attr_accessor :password, :password_confirmation def self.random_stringlen generate a random password consisting of strings and digits chars=a..z.to_a + A..Z.to_a + 0..9.to_a newpass = 1.uptolen { |i| newpass chars[randchars.size-1] } return newpass end def password=pass password=pass self.salt = Member.random_string10 if self.salt? self.hashed_password=Member.encryptpassword, self.salt end def self.encryptpass, salt Digest::SHA1.hexdigestpass+salt end def self.authenticatelogin, pass u=find:first, :conditions=[login = ?, login] return nil if u.nil? return u if Member.encryptpass, u.salt==u.hashed_password nil end def send_new_password new_pass = Member.random_string10 self.password = self.password_confirmation = new_pass self.save Notifications.deliver_forgot_passwordself.email, self.login, new_pass end end Dari code diatas, maka dapat dijelaskan bahwa, terdapat beberapa pengecekan kecocokan validasi yang tampak yaitu jumlah dan baris yang data Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. diisikan, tinggkat uniquity. Selain itu yang tampak pada code tersebut direlasikan dengan event hal_many pada member dan belong_to pada models event yang dalam hal ini adalah untuk proses booking, enskripsi password, dan newpassword.

4.3.2 Implementasi View