ii
Taufik, dan Hidayah-Nya yang telah diberikan kepada penulis sehingga dapat
menyelesaikan Skripsi ini dengan baik.
Dalam menyelesaikan Skripsi ini, penulis berpegang pada teori serta
bimbingan dari para dosen pembimbing Skripsi. Dan berbagai pihak yang banyak
membantu hingga terselesaikannya Skripsi ini. Skripsi merupakan salah satu syarat
bagi mahasiswa untuk menyelesaikan program studi Sarjana Strata Satu (S-1) di
Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Pembangunan
Nasional “Veteran” Jawa Timur.
Terwujudnya Skripsi ini adalah berkat usaha, kerja keras serta dukungan dari
berbagai pihak. Dan tanpa menghilangkan rasa hormat, penulis mengucapkan banyak
terima kasih kepada pihak-pihak yang telah membantu penulis antara lain:
1. Prof. Dr. Ir. Teguh Soedarto, MP Selaku Rektor UPN “Veteran” Jawa Timur.
2. Ir. Sutiyono, MT Selaku Dekan Fakultas Teknologi Industri UPN “Veteran”
Jawa Timur.
3. Basuki Rahmat,S.Si,MT Selaku Kepala Jurusan Teknik Informatika UPN
“Veteran” Jawa Timur dan dosen pembimbing I yang telah giat meluangkan
iii
kesempatan penyusun untuk berkreasi dalam proses pembuatan Skripsi ini.
5. Bapak dan Ibu dosen Teknik Informatika yang telah memberikan ilmunya kepada
penulis selama kuliah.
6. Ayahanda tercinta, yang merupakan lelaki terhebat yang pernah aku temui dan
ibunda tersayang yang juga merupakan perempuan yang kesabarannya tiada
bandingnya didunia ini. Kakak satu-satunya yang sangat menyayangi aku, terima
kasih atas semuanya, aku tidak akan bisa seperti ini tanpa keluargaku. Aku
beruntung terlahir dikeluarga ini,,,
7. Teman-teman kos, mbak ve makasih mbak sudah menemaniku selama aku dalam
keadaan terjatuh serta membuat bangkit kembali , mbak fiky makasih mbak
sudah menemaniku melewati malam-malam yang pernah sangat sulit kulalui , tak
lupa juga orang yang pernah menjadi sangat spesial buatku, yang hampir 4 tahun
menemaniku selama di Surabaya kemanapun kakiku melangkah, selalu ada
disaat aku membutuhkan, dan selalu memberi semangat selama aku kuliah, didin
makasih semangatnya,,,,makasih semuanya tanpa bantuan kalian semua aku tidak
akan bisa seperti ini,,,
8. Teman-teman kuliah khususnya,,,,,tatik makasih banyak waktunya buatku, mas
iv
asrofi, azziz, doni, bowo, dapit, wahyu, jempoll, broto, mamik, dan teman-teman
lain yang tak bisa disebutkan satu persatu makasih semua atas persahabatan yang
begitu indah selama kuliah……anak-anak IK angkatan 07 deddy, faris, ipam
DKK, anak-anak TF lainnya angkatan 07 mbah ,menotz, tony, rizal, ibet, wahyu,
aping, DKK makasih semua atas bantuan semangat dan doanya, sukses bwt
semuanya,,,,,
9. Teman- teman mahasiswa dan teman-teman diluar kampus yang tak bias saya
sebutkan satu persatu,,,,,terimakasih atas semua dukungan selama ini dan
terimakasi atas pertemanannya……
Penulis menyadari bahwa penulisan ini masih jauh dari kesempurnaan,
karena tiada gading yang tak retak. Oleh sebab itu, penulis mengharapkan kritik dan
saran yang bersifat membangun guna terciptanya kesempurnaan penulisan ini
selanjutnya. Semoga penulisan ini dapat menambah wawasan serta ilmu pengetahuan
bagi siapa saja yang membacanya.
Surabaya, Juni 2010
v
1.7.Sistematika Penulisan ... 10
BAB II TINJAUAN PUSTAKA ... 12
2.1.Bahasa Pemrograman Ruby ... 12
2.1.1.Sejarah Ruby ... 12
2.1.2.Kelebihan Ruby ... 13
2.1.3.Variabel... 13
2.1.4.Array ... 14
2.1.5.Hash ... 15
2.1.6.Control structure ... 16
2.1.7.Method ... 18
2.1.8.Classes... 18
vi
2.2.1.7.1 Paradigma Rails ... 26
2.2.1.7.2 MVC (Model View Controller) ... 26
2.3.Sejarah Internet ... 32
2.3.1.World Wide Web (WWW) ... 33
2.3.2.Hypertext Transfer Protocol (HTTP)... 33
2.3.3.Web Server... 34
2.4.OOP (Object Oriented Programming) ... 34
2.5.UML... 35
2.6.CSS ... 37
2.6.1.Tentang CSS ... 37
2.6.2.Keuntungan menggunakan CSS ... 37
2.6.3.Cara penulisan CSS... 37
vii
3.2.1.J Use Case Tambah Kategori Buku... 49
3.2.1.K Use Case Hapus Kategori Buku... 49
3.2.1.L Use Case Ubah Profil... 49
3.2.1.M Use Case Lihat Anggota ... 49
3.2.1.N Use Case Unduh Video... 49
3.2.1.O Use Case Tambah Video... 49
3.2.1.P Use Case Tambah Kategori Video... 50
3.2.1.Q Use Case Hapus Kategori Video ... 50
3.2.1.R Use Case Tambah Jurusan ... 50
3.2.1.S Use Case Hapus Jurusan ... 50
3.2.1.T Use Case Tambah Fakultas... 50
3.2.1.U Use Case Hapus Fakultas... 50
3.2.1.V Use Case Pencarian... 51
3.2.1.W Use Case Tambah Komentar Buku... 51
viii
3.2.2.D Diagram Aktivitas Tambah Buku ... 54
3.2.2.E Diagram Aktivitas Pendaftaran... 54
3.2.2.F Diagram Aktivitas Ubah Buku ... 56
3.2.2.G Diagram Aktivitas Hapus Buku ... 57
3.2.2.H Diagram Aktivitas Ubah Anggota ... 58
3.2.2.I Diagram Aktivitas Hapus Anggota... 59
3.2.2.J Diagram Aktivitas Tambah Kategori Buku ... 60
3.2.2.K Diagram Aktivitas Ubah Profil ... 60
3.2.2.L Diagram Aktivitas Lihat Anggota... 62
3.2.2.M Diagram Aktivitas Hapus Kategori Buku ... 62
3.2.2.N Diagram Aktivitas Unduh Video ... 63
3.2.2.O Diagram Aktivitas Tambah Kategori Video ... 63
3.2.2.P Diagram Aktivitas Tambah Video ... 64
3.2.2.Q Diagram Aktivitas Hapus Kategori Video... 65
3.2.2.R Diagram Aktivitas Tambah Jurusan ... 66
3.2.2.S Diagram Aktivitas Pencarian ... 66
3.2.2.T Diagram Aktivitas Hapus Jurusan ... 68
3.2.2.U Diagram Aktivitas Tambah Fakultas ... 68
3.2.2.V Diagram Aktivitas Hapus Fakultas ... 69
3.2.3.Perancangan UML ... 71
3.2.4.Pembuatan Model, View dan Controller... 75
3.2.5.Pemetaan relasi tabel ke dalam Model ... 76
3.2.5.1.Relasi model Fakultas dengan Jurusan ... 77
3.2.5.2.Relasi jurusan dengan category ... 77
ix
3.2.5.8.Relasi model User dengan Comment ... 79
3.2.5.9.Relasi model User dengan Commentvideo... 80
3.2.5.10.Relasi model Book dengan User ... 80
3.2.5.11.Relasi Relasi model Video dengan User ... 81
3.2.6.Spesifikasi Kebutuhan Sistem ... 81
3.2.6.1.Level Pengguna dan Hak Akses ... 81
3.2.6.2.Alur Sistem Website ... 82
3.3.Perancangan Antar Muka ... 83
3.3.1.Halaman Utama ... 84
3.3.2.Pendaftaran ... 85
3.3.3.Login ... 85
3.3.4.Halaman Anggota Mahasiswa ... 86
3.3.5.Halaman Anggota Dosen ... 86
3.3.6.Halaman Pencarian ... 87
3.3.7.Halaman Tambah buku ... 87
3.3.8.Halaman Tambah Video ... 88
3.3.9.Halaman Tambah Jurusan... 89
3.3.10.Halaman Tambah Fakultas ... 90
BAB IV IMPLEMENTASI PERANGKAT LUNAK ... 91
4.1.Lingkungan Pemrograman... 91
4.2.Lingkungan uji coba ... 91
4.3.Implementasi Proses ... 92
4.4.Implementasi (MVC) Model View Controller ... 93
4.4.1.Implementasi Controller ... 93
x
anggota... 101
4.5.3.Form Tampilan Halaman Jurusan untuk bukan anggota... 101
4.5.4.Form Tampilan Halaman kategori Buku Untuk Bukan Anggota ... 102
4.5.5.Form Tampilan Halaman detail buku ... 102
4.5.6.Form Tampilan Halaman Cari Buku ... 103
4.5.7.Form Tampilan Halaman Pendaftaran Anggota Baru ... 103
4.5.8.Form Tampilan Halaman detail video untuk buka anggota... 104
4.5.9.Form Tampilan Halaman kategori Video Untuk Bukan Anggota ... 105
4.5.10.Form Tampilan Halaman Utama Anggota... 105
4.5.11.Form Tampilan Halaman kategori buku untuk anggota mahasiswa dan anggota dosen ... 107
4.5.12.Form Tampilan Halaman kategori video untuk anggota mahasiswa dan anggota dosen ... 107
4.5.13.Form Tampilan Halaman Buku untuk anggota dosen dan anggota administrator ... 108
4.5.14.Form Tampilan Halaman Video Untuk Anggota Dosen Dan Anggota Administrator ... 109
4.5.15.Form Tampilan Halaman Pendaftaran Untuk Anggota Administrator ... 109
4.5.16.Form Tampilan Halaman Daftar User ... 110
xi
Anggota Adminstrator ... 112
BAB V UJI COBA... 113
5.1.Lingkungan Uji Coba ... 113
5.2.Skenario Uji Coba ... 114
5.3.Pelaksanaan Uji Coba ... 118
5.3.1.Pelaksanaan Uji Coba Halaman Utama ... 118
5.3.2.Pelaksanaan Uji Coba Halaman Anggota ... 120
5.3.3.Pelaksanaan Uji Coba Login ... 121
5.3.4.Pelaksanaan Uji Coba Halaman Pendaftaran... 121
5.3.5.Pelaksanaan Uji Coba Daftar Semua Anggota ... 123
5.3.6.Pelaksanaan Uji Coba Halaman Lihat Profil Anggota ... 123
5.3.7.Pelaksanaan Uji Coba Halaman Hapus Anggota ... 124
5.3.8.Pelaksanaan Uji Coba Halaman Daftar Fakultas ... 125
5.3.9.Pelaksanaan Uji Coba Halaman Ubah Fakultas... 126
5.3.10.Pelaksanaan Uji Coba Halaman Lihat Fakultas ... 126
5.3.11.Pelaksanaan Uji Coba Halaman Hapus Fakultas ... 127
5.3.12.Pelaksanaan Uji Coba Halaman Tambah Fakultas ... 128
5.3.13.Pelaksanaan Uji Coba Halaman Daftar Buku ... 128
5.3.14.Pelaksanaan Uji Coba Halaman Ubah Kategori Buku... 129
5.3.15.Pelaksanaan Uji Coba Halaman Hapus Kategori Buku... 130
xii
Video ... 136
5.3.21.Pelaksanaan Uji Coba Halaman Hapus Kategori Video ... 136
5.3.22.Pelaksanaan Uji Coba Halaman Lihat Kategori Video ... 137
5.3.23.Pelaksanaan Uji Coba Halaman Tambah Kategori Video ... 138
5.3.24.Pelaksanaan Uji Coba Halaman Tambah Video ... 138
5.3.25.Pelaksanaan Uji Coba Halaman Pencarian Buku ... 140
5.3.26.Pelaksanaan Uji Coba Halaman Pencarian Video ... 141
5.3.27.Pelaksanaan Uji Coba Halaman Penambahan Komentar ... 142
5.3.28.Pelaksanaan Uji Coba Halaman Unduh Buku ... 143
5.3.29.Pelaksanaan Uji Coba Halaman Unduh Video ... 144
BAB VI PENUTUP ... 145
6.1.Kesimpulan ... 145
6.2.Saran ... 146
xiii
Gambar 3.2. Diagram Aktivitas Login ... 52
Gambar 3.3. Diagram Aktivitas Lihat Deskripsi Buku... 53
Gambar 3.4. Diagram Aktivitas Unduh Buku... 53
Gambar 3.5. Diagram Aktivitas Tambah Buku ... 54
Gambar 3.6. Diagram Aktivitas Pendaftaran ... 56
Gambar 3.7. Diagram Aktivitas Ubah Buku... 56
Gambar 3.8. Diagram Aktivitas Hapus Buku ... 57
Gambar 3.9. Diagram Aktivitas Ubah Anggota... 58
Gambar 3.10. Diagram Aktivitas Hapus Anggota ... 59
Gambar 3.11. Diagram Aktivitas Tambah Kategori Buku ... 60
Gambar 3.12. Diagram Aktivitas Ubah Profil ... 61
Gambar 3.13. Diagram Aktivitas Lihat Anggota... 62
Gambar 3.14. Diagram Aktivitas Hapus Kategori Buku ... 62
Gambar 3.15. Diagram Aktivitas Unduh Video ... 63
Gambar 3.16. Diagram Aktivitas Tambah Kategori Video ... 63
Gambar 3.17. Diagram Aktivitas Tambah Video ... 65
Gambar 3.18. Diagram Aktivitas Hapus Kategori Video ... 65
Gambar 3.19. Diagram Aktivitas Tamah Jurusan... 66
Gambar 3.20. Diagram Aktivitas Pencarian ... 67
Gambar 3.21. Diagram Aktivitas Hapus Jurusan... 68
Gambar 3.22. Diagram Aktivitas Tambah Fakultas ... 69
Gambar 3.23. Diagram Aktivitas Hapus Fakultas ... 69
Gambar 3.24. Diagram Aktivitas Tambah Komentar Buku ... 70
xiv
Gambar 3.28. Gambar Tampilan Halaman Login... 86
Gambar 3.29. Gambar Tampilan Halaman Anggota Mahasiswa ... 86
Gambar 3.30. Gambar Tampilan Halaman Anggota Dosen ... 87
Gambar 3.31. Gambar Tampilan Halaman Pencarian ... 87
Gambar 3.32. Gambar Tampilan Halaman Tambah Buku ... 88
Gambar 3.33. Gambar Tampilan Halaman Upload Buku... 88
Gambar 3.34. Gambar Tampilan Halaman Tambah Video ... 89
Gambar 3.35. Gambar Tampilan Halaman Tambah Jurusan... 89
Gambar 3.36. Gambar Tampilan Halaman Tambah Fakultas ... 90
Gambar 4.1. Tampilan Halaman Utama ... 100
Gambar 4.2. Tampilan Halaman Fakultas untuk bukan anggota... 101
Gambar 4.3. Tampilan Halaman Jurusan untuk bukan anggota ... 101
Gambar 4.4. Tampilan Halaman Kategori untuk bukan anggota ... 102
Gambar 4.5. Tampilan Halaman detail buku untuk bukan anggota... 102
Gambar 4.6 Tampilan Halaman Pendaftaran Anggota Baru ... 103
Gambar 4.7. Tampilan Halaman Pendaftaran Anggota Baru berhasil... 104
Gambar 4.8. Tampilan Halaman detail video ... 104
Gambar 4.9 Tampilan Halaman kategori video untuk bukan anggota ... 105
Gambar 4.10. Tampilan Halaman anggota ... 106
Gambar 4.11. Tampilan Halaman Kategori buku untuk anggota dosen dan anggota mahasiswa ... 107
Gambar 4.12. Tampilan Halaman Kategori video anggota mahasiswa dan anggota dosen ... 107
Gambar 4.13 Tampilan Halaman buku untuk anggota dosen... 108
xv
Gambar 4.19. Tampilan Halaman Tambah Jurusan... 112
Gambar 5.1. Pengujian Halaman Utama... 114
Gambar 5.2. Pengujian Halaman anggota... 120
Gambar 5.3. Pengujian Login ... 121
Gambar 5.4. Hasil Pengujian Login Dengan Inputan Salah ... 121
Gambar 5.5. Hasil Pengujian Pendaftaran Anggota Baru... 122
Gambar 5.6. Hasil Pengujian Pendaftaran Dengan Inputan Yang Salah ... 122
Gambar 5.7. Hasil Pengujian Pendaftaran Dengan Inputan Yang Benar ... 123
Gambar 5.8. Hasil Pengujian Daftar Semua Anggota ... 123
Gambar 5.9. Hasil Pengujian Lihat Profil Anggota... 124
Gambar 5.10. Konfirmasi Hapus Anggota... 124
Gambar 5.11. Hasil Pengujian Daftar Fakultas login administrator ... 125
Gambar 5.12. Hasil Pengujian Daftar Fakultas login anggota dosen dan Mahasiswa ... 125
Gambar 5.13. Hasil Pengujian ubah fakultas... 126
Gambar 5.14. Hasil Pengujian Lihat Fakultas Login Administrator ... 126
Gambar 5.15. Hasil Pengujian Lihat Fakultas Login Anggota Dosen dan Mahasiswa ... 127
Gambar 5.16. Konfirmasi Hapus Fakultas... 127
Gambar 5.17. Hasil Pengujian Tambah Fakultas... 128
Gambar 5.18. Hasil Pengujian Daftar Buku Login Administrator ... 128
Gambar 5.19. Hasil Pengujian Daftar Buku Login Anggota Dosen dan Mahasiswa ... 129
Gambar 5.20. Hasil Pengujian Ubah Kategori... 129
xvi
Gambar 5.25. Hasil Pengujian Form Tambah Buku... 134
Gambar 5.26. Hasil Pengujian Form Upload Buku ... 134
Gambar 5.27. Pesan Sukses Tambah Buku... 135
Gambar 5.28. Hasil Pengujian Daftar Video Login Anggota Administrator.... 135
Gambar 5.29. Hasil Pengujian Daftar Video Login Anggota Dosen dan Mahasiswa ... 135
Gambar 5.30. Hasil Pengujian Ubah Kategori Buku ... 136
Gambar 5.31. Konfirmasi Hapus Kategori Buku... 137
Gambar 5.32. Hasil Pengujian Lihat Kategori Login Administrator... 137
Gambar 5.33. Hasil Pengujian Lihat Kategori Video Login Anggota Dosen dan Mahasiswa ... 137
Gambar 5.34. Hasil Pengujian Tambah Kategori Video ... 138
Gambar 5.35. Hasil Pengujian Form Tambah Buku... 139
Gambar 5.36. Hasil Pengujian Form Upload Buku... 140
Gambar 5.37. Pesan Sukses Tambah Video ... 140
Gambar 5.38. Form Pencarian Buku ... 140
Gambar 5.39. Pengujian Form Pencarian Buku ... 140
Gambar 5.40. Hasil Pencarian Buku... 141
Gambar 5.41. Hasil Pengujian Form Pencarian Video... 141
Gambar 5.42. Hasil Pencarian Video... 142
Gambar 5.43. Hasil Pengujian Form Tambah Komentar ... 142
Gambar 5.44. Hasil Pengujian Form Hasil Tambah Komentar... 143
Gambar 5.45. Hasil Pengujian Unduh Buku... 143
xvii
i
ABSTRAK
Dalam kegiatan perkuliahan di UPN “Veteran” Jawa Timur. Mahasiswa memerlukan banyak referensi untuk menyelesaikan tugas, PKL maupun skripsi yang diberikan oleh dosen. Dengan memanfaatkan perkembangan teknologi tersebut, sekarang telah tersedia banyak referensi untuk membantu dalam menyelesaikan berbagai kesulitan mahasiswa dalam bentuk buku elektronik (e-book) dan video. Banyaknya e-book dan video yang tersedia maka penempatan atau penyimpanannya menjadi tidak rapi. Sehingga tidak sedikit mahasiswa yang kebingungan untuk mencari dan ingin mengunduhnya.
Di UPN Veteran “Jawa Timur” terdapat banyak fakultas dengan berbagai jurusan. Dengan demikian e-book dan video yang banyak tersebut perlu ditata dan dikelompokkan berdasarkan kategori dari jurusan masing-masing fakultas tersebut dengan menggunakan suatu aplikasi berupa “Aplikasi Katalog Online UPN “Veteran” Jawa Timur Berbasis Framework Ruby On Rails Dengan Menggunakan Metode (MVC) Model View Controller”. Dengan adanya aplikasi ini diharapkan dapat membantu berbagai kesulitan mahasiswa dalam kuliahnya.
Website Katalog Online ini merupakan sarana untuk menyampaikan
informasi e-book dan video kepada mahasiswa UPN “Veteran” Jawa Timur. Untuk itu website ini sebaiknya mempunyai kemudahan untuk memperbaharui informasi dan user friendly. Website ini dirancang menggunakan konsep Web 2.0, perangkat lunak yang digunakan ialah Ruby on Rails dan MySQL 5.0.27. Dengan konsep Web 2.0 diharapkan lebih banyak keterlibatan pengguna dalam pembuatan buku dan video.
Kata kunci : e-book, Video, Web 2.0, Kategori, Katalog, Framework, Website,
Userfriendly
1
1.1 Latar Belakang Masalah
Perkembangan informasi teknologi saat ini berkembang dengan pesat.
Penggunaan website dalam menyampaikan informasi sangatlah membantu dan
bermanfaat bagi lembaga-lembaga atau perusahaan-perusahaan. Penyampaian
informasi dengan website tidak membutuhkan waktu yang lama dan dapat
dilakukan darimana saja. Tidak dibatasi oleh tempat,waktu dan biaya. Proses
mendapatkan informasi dari website juge lebih up to date. Informasi yang
ditampilkan dan disajikan dapat berubah seiring jalannya waktu sehingga
informasi yang disajikan tidak ketinggalan zaman atau terlambat. Kemudahan ini
yang membuat website sebagai sarana informasi yang digemari user saat ini.
Salah satu contohnya dalam kegiatan perkuliahan di UPN “Veteran” Jawa
Timur. Mahasiswa memerlukan banyak referensi untuk menyelesaikan tugas,
PKL maupun skripsi yang diberikan oleh dosen. Dengan memanfaatkan
perkembangan teknologi tersebut, sekarang telah tersedia banyak referensi untuk
membantu dalam menyelesaikan berbagai kesulitan mahasiswa dalam bentuk
buku elektronik (e-book) dan video.
Banyaknya e-book dan video yang tersedia maka penempatan atau
penyimpanannya menjadi tidak rapi. Sehingga tidak sedikit mahasiswa yang
Veteran “Jawa Timur” terdapat banyak fakultas dan di dalam fakultas itupun
terdapat berbagai macam jurusan.
Dengan demikian e-book dan video yang banyak tersebut perlu ditata dan
dikelompokkan berdasarkan kategori dari jurusan masing-masing fakultas tersebut
dengan menggunakan suatu aplikasi berupa “Aplikasi Katalog Online UPN
“Veteran” Jawa Timur Berbasis Framework Ruby On Rails Dengan Menggunakan Metode (MVC) Model View Controller”.
Membangun web sites yang powerful dari awal akan sangat menyita
sumber daya, baik tenaga, biaya maupun waktu. Perkembangan web content
management system (CMS) saat ini semakin meningkat. Aplikasi web CMS
didasari oleh perpindahan data melalui web browser kebasisdata dan begitu juga
sebaliknya. Perpindahan data tersebut harus efisien dan aman. Suatu web
framework berguna untuk menghubungkan antara basis data dan web browser.
Saat ini berkembang berbagai macam framework open source yang dapat
membantu proses pembangunan web sites menjadi lebih cepat sehingga sumber
daya yang dibutuhkan menjadi tidak terlalu banyak.
Beberapa web framework di antaranya .NET, cakePHP, CI (CodeIgniter), prado, symfony, zend, akelos. Akan tetapi untuk pengembangan aplikasi, .NET
dibutuhkan biaya yang tidak sedikit. Masalahnya adalah bagaimana jika suatu
developer untuk kalangan menegah ke bawah ingin membuat suatu web aplikasi
basisdata. Ruby on Rails adalah web framework yang dapat mengatasi masalah
tersebut. Dalam Tugas Akhir ini akan dibuat suatu website katalog online dengan
Ruby on Rails (disingkat Rails) adalah web framework yang dibuat dengan
bahasa pemrograman Ruby . Dengan Rails dapat dibuat suatu aplikasi web dengan
cepat, mudah, dan terstruktur. Adapun Rails merupakan bahasa pemrograman
baru di Indonesia, sehingga literatur-literatur maupun buku-buku tentang Rails
masih jarang. Diharapkan tulisan ini dapat menambah literatur tentang
pemrograman Rails di Indonesia.
1.2 Perumusan Masalah
Berdasarkan latar belakang yang dipaparkan di atas, maka dapat dirumuskan
permasalahan dari Tugas Akhir adalah sebagai berikut :
1. Bagaimana cara mengatur dan menyimpan e-book dan video yang
banyak dan tertata dengan rapi berdasarkan kategori dari jurusan
masing-masing fakultas di UPN ”Veteran” Jawa Timur?
2. Bagaimana membuat sebuah Aplikasi Online Katalog sehingga semua
mahasiswa UPN ”Veteran” Jawa Timur dapat menggunakan darimana
dan kapan saja?
3. Bagaimana cara menampilkan interface yang mudah dimengerti oleh
1.3 Batasan Masalah
Agar tidak terlalu menyimpang dari rumusan masalah yang telah penulis
buat, maka dalam pembuatan Tugas Akhir ini, ruang lingkup permasalahan hanya
akan dibatasi pada:
1. Aplikasi ini hanya digunakan oleh pengunjung yang sudah terdaftar dalam
aplikasi ini. Jika belum terdaftar maka harus melakukan pendaftaran
terlebih dahulu.
2. Aplikasi ini berisi katalog e-book dan video referensi yang dapat diunduh
secara gratis oleh pengunjung.
3. Yang dapat menambah e-book dan video hanya anggota sebagai dosen dan
administrator, sedangkan anggota sebagai mahasiswa hanya dapat
mengunduhnya saja.
4. Buku yang dapat diunduh dalam format PDF dan video yang diunduh
dalam format AVI.
5. Sistem yang dibuat untuk aplikasi katalog ini adalah berbasis framework.
Bahasa pemrograman yang digunakan adalah Ruby On Rails dengan
MySQL sebagai databasenya.
1.4 Tujuan
Mengacu pada perumusan masalah, tujuan yang hendak dicapai dalam
Untuk membuat aplikasi online katalog bertujuan untuk mengatur
penempatan e-book dan video berdasarkan kategori dari jurusan masing-masing
fakultas di UPN “Veteran” Jawa Timur sehingga dapat memberikan kemudahan
bagi para pengunjung serta dapat mengunduh secara gratis e-book dan video yang
dibutuhkan.
1.5 Manfaat
Manfaat dari Tugas Akhir “Aplikasi Katalog Online UPN “Veteran”
Jawa Timur Berbasis Framework Ruby On Rails Dengan Menggunakan Metode (MVC) Model View Controller” ini terbagi menjadi 3 yaitu bagi
pengguna, bagi universitas dan bagi penulis adalah sebagai berikut:
a. Bagi Pengguna
Mempermudah memperoleh referensi dalam menyelesaikan tugas,
PKL dan skripsi dapat efisiensi waktu dan kemudahan akses, dapat
diakses dimana saja dan kapan saja dengan memanfaatkan perkembangan
media internet serta mempermudah dalam proses pencarian karena telah
dikelompokkan berdasarkan kategori dari masing-masing jurusan
berdasarkan fakultasnya..
b. Bagi Universitas
Sebagai tambahan perbendaharaan perpustakaan dan bahan
masukan bagi penelitian lebih lanjut dengan topik yang sama serta
memberikan tambahan untuk dapat digunakan sebagai tambahan ilmu
c. Bagi Penulis
Dapat dijadikan suatu perbandingan antara penggunaan framework
dengan CMS, sehingga dapat menambah wawasan yang sangat penting
bagi penulis di masa yang akan datang.
1.6 Metodologi Penulisan
Metode adalah cara yang dipergunakan untuk mencapai suatu tujuan
(Surachmad, 1976). Adapun metode yang dipakai adalah:
1. Library Research
Library Research adalah pengumpulan dokumen-dokumen,
referensi-referensi, buku-buku, sumber dari internet, atau sumber-sumber lain yang
diperlukan untuk merancang dan mengimplementasikan aplikasi. Tujuannya
untuk mendukung teori-teori yang berkaitan dengan masalah yang muncul.
Studi ini dilakukan dengan mencari sekaligus mempelajari beberapa literatur
dan artikel mengenai katalog online dan bahasa pemrograman Ruby On Rails.
Mempelajari program aplikasi yang sudah ada untuk memberikan gambaran
yang jelas mengenai aplikasi katalog online, sebagai acuan dalam
2. Analisa dan Perancangan Sistem
Setelah tahap Library Research dibuat deskripsi umum sistem serta
dilakukan analisa kebutuhan sistem. Dalam melakukan perancangan awal
sistem hal-hal yang dilakukan adalah sebagai berikut:
Pembuatan perancangan sistem arsitektur
Merupakan gabungan dari proses-proses dan praktek-praktek untuk
menghasilkan sebuah sistem yang efektif.
Pembuatan alur web site sistem
o Diagram Bisnis Use Case
Diagram bisnis use case menunjukkan interaksi antara use case
bisnis, aktor bisnis, dan pekerja bisnis dalam sebuah organisasi.
Diagram ini akan menggambarkan model lengkap tentang apa yang
perusahaan lakukan, siapa saja yang ada dalam organisasi dan siapa
yang ada di luar organisasi. Dengan diagram ini, dapat secara cepat
memberikan informasi tingkat tinggi tentang bisnis apa yang
organisasi.
o Diagram Use Case
Menggambarkan bagaimana seseorang menggunakan sistem .
Mempunyai tujuan khusus yaitu untuk mendokumentasikan beberapa
ada di dalam sistem) dan hubungan antar mereka.. Sehingga dengan
menggambarkan diagram usecase akan dapat melihat fungsionalitas
yang akan disediakan oleh sistem, siapa saja yang berinteraksi dengan
sistem, serta dapat mengetahui ruang lingkup yang akan dibuat.
o Diagram Aktivitas
Diagram Aktivitas merupakan sebuah cara untuk memodelkan
aliran kerja (workflow) dari bisnis use case dalam bentuk grafik.
Diagram ini menunjukkan langkah-langkah di dalam aliran kerja,
titik-titik keputusan di dalam aliran kerja, siapa yang bertangggung jawab
menyelesaikan masing-masing aktivitas dan obyek-obyek yang
diigunakan dalam aliran kerja.
o Diagram Kelas
Diagram kelas merupakan alat perancangan terbaik untuk tim
pengembang perangkat lunak. Diagram tersebut membantu
mendapatkan struktur sistem sebelum menuliskan kode program,
membantu untuk memastikan bahwa sistem adalah rancangan terbaik.
Diagram kelas digunakan untuk menampilkan kelas-kelas atau
paket-paket di dalam sistem dan relasi antar mereka, memberikan gambaran
secara statis dari sistem yang dibuat. Diagram ini digunakan untuk
mengambangkan kelas, Case tool rational rose berguna untuk
Pembuatan Perancangan Antar Muka
Pembuatan perancangan antar muka ini dibuat untuk merancang
halaman aplikasi yang berinteraksi langsung dengan pengguna agar
aplikasi tersebut menjadi userfriendly untuk berinteraksi dengan pengguna
serta dapat bermanfaat bagi pengguna khususnya mahasiswa UPN
”Veteran” Jawa Timur yang membutuhkan banyak referensi untuk
kuliahnya.
3 Pembuatan Sistem
Pada tahap ini merupakan tahap yang paling banyak memerlukan
waktu karena model dan rancangan aplikasi yang telah dibuat
diimplementasikan dengan menggunakan framework Ruby On Rails .
4. Uji Coba
Uji coba ini dilakukan dalam rangka untuk memastikan apakah
aplikasi yang telah selesai dibuat telah sesuai dengan yang direncanakan
dalam tahap analisa dan perancangan sistem serta dievaluasi untuk kelayakan
pemakaian aplikasi dengan mempertimbangkan kemungkinan kesalahan yang
terjadi.
5. Penyusunan Buku Skripsi
Pada tahap ini merupakan tahap terakhir dari pengerjaan Skripsi. Buku
penyusunan buku ini diharapkan dapat memudahkan pembaca yang ingin
menyempurnakan dan mengembangkan aplikasi lebih lanjut.
6. Revisi
Revisi bertujuan untuk mengatasi kesalahan pada saat uji coba berlangsung.
1.7 Sistematika Penulisan
Sistematika yang digunakan dalam penulisan skripsi ini dibagi dalam
beberapa bab dan sub bab. Adapun pembagian babnya adalah sebagai berikut:
Bab I Pendahuluan
Berisi latar belakang yaitu uraian tentang landasan pemikiran
timbulnya suatu masalah yang mendorong untuk melakukan
penelitian,perumusan masalah, pembatasan masalah, tujuan,
manfaat, metodologi penulisan dan sistematika penulisan yang
digunakan dalam laporan skripsi ini.
Bab II Tinjauan Pustaka
Pada bab kedua akan dijelaskan mengenai landasan teori yang
terkait dengan skripsi ini. Semua penjelasan meliputi pembahasan
bahasa pemrograman Ruby, Framework Ruby On Rails termasuk
didalamnya pembahasan mengenai metode yang digunakan,
sejarah internet, OOP (Object Oriented Programming), UML,
Bab III Analisa Dan Perancangan Sistem
Pada bab ketiga diuraikan mengenai desain sistem yang akan
dibuat, arsitektur sistem, diagram use case, diagram aktivitas,
diagram kelas, dan perancangan antar muka dari aplikasi yang akan
dibuat. Dari sini akan terlihat bagaimana alur dari sistem nantinya
yang akan dibuat.
Bab IV Uji Coba
Bab ini menjelaskan mengenai lingkungan uji coba, skenario uji
coba dan pelaksanaan uji coba.
BAB V Penutup
Pada bab kelima berisi kesimpulan dari program yang telah
diimplementasikan dan dievaluasi sehingga pada akhirnya
diberikan beberapa kemungkinan untuk pengembangan dari
aplikasi yang dibuat serta saran.
DAFTAR PUSTAKA
12
2.1 Bahasa Pemrograman Ruby
Ruby adalah bahasa pemrograman scripting yang berorientasi obyek.
Tujuan dari ruby adalah menggabungkan kelebihan dari semua bahasa-bahasa
pemrograman scripting yang ada di dunia. Ruby ditulis dengan bahasa
pemrograman C dengan kemampuan dasar seperti Perl dan Python[4].
2.1.1 Sejarah Ruby
Ruby pertama kali dibuat oleh seorang programmer Jepang bernama
Yukihiro Matsumoto. Pada tahun 1993 Yukihiro ingin membuat sebuah bahasa
pemrograman scripting yang memiliki kemampuan orientasi obyek. Pada saat itu
pemrograman berorientasi obyek sedang berkembang tetapi belum ada bahasa
pemrograman scripting yang mendukung pemrograman obyek[1].
Penulisan Ruby dimulai pada Februari 1993 dan pada Desember 1994
dirilis versi alpha dari Ruby. Pada awal perkembangan Ruby, Yukihiro menulis
Ruby sendiri sampai pada tahun 1996 sudah terbentuk komunitas Ruby yang
banyak mengontribusikan perkembangan Ruby[1].
Saat ini Ruby telah berkembang tidak hanya di Jepang, tetapi diseluruh
dunia. Bulan Agustus tahun 2006, Macintosh telah melakukan kerja sama dengan
mengintegrasikan Ruby on Rails pada Mac OS X v10.5 Leopard yang akan
2.1.2.1.2 Kelebihan Ruby
Sintaks sederhana.
Memiliki exception handling yang baik.
Bahasa Pemrograman Berorientasi Objek.
Mengusung konsep single inheritance.
Open source, siapa saja dapat menggunakannya dengan cuma-cuma dan
dapat ikut berpartisipasi mengembangkannya.
Memiliki garbage collector yang secara otomatis akan menghapus
informasi tak terpakai dari memori [2].
2.1.3 Variabel
Untuk mendeklarasikan variabel dalam Ruby tidak perlu mendefinisikan
tipe data seperti pada bahasa pemrograman Java atau C. Variabel dapat langsung
digunakan contoh:
irb> a = 3 irb> b = 2 irb> a + b => 5
Tidak hanya tipe data numerik saja melainkan tipe data string dapat
didefinisikan secara langsung.
irb> saya = "sedang menulis" => "sedang menulis"
irb> saya.class => String
irb> saya.length => 14
Dalam pemrograman Ruby terdapat istilah simbol. Simbol adalah
konstanta pengganti string. Untuk mendefinisikan simbol digunakan tanda ”:”.
a =:test.
Beberapa aturan penulisan variabel dalam Ruby.
a. Variabel lokal, dimulai dengan huruf kecil. Contoh: admin, e-book
b. Variabel global, dimulai dengan tanda dollar $. Contoh: $admin,
$e-book
c. Konstanta dan class, dimulai dengan huruf besar. Contoh: Admin,
E-book
d. Instance variables, dimulai dengan tanda @. Contoh: @admin,
@e-book
e. Class variables, dimulai dengan tanda @@. Contoh: @@admin [6]
2.1.4 Array
Dalam pemrograman Ruby inisialisasi array disimbolkan dengan tanda [ ].
Sama seperti bahasa pem rograman lain elemen ke-0 menunjukkan data pertama
dalam array [6].
irb> kecepatan = [5000, 15000, 30000, 60000, 100000] => [5000, 15000, 30000, 60000, 100000]
irb> kecepatan[0] => 5000
irb> kecepatan[2] => 30000
Ruby memiliki cara lain untuk memasukkan nilai pada data string array
dengan perintah %w( ).
irb> warna = %w( red green blue black )
=> ["red", "green", "blue", "black"]
irb> warna[0]
=> "red"
=> "black"
Dalam array, Ruby juga memiliki methods yang berguna untuk
mengetahui manajemen informasi pada array.
a. empty? akan mengembalikan nilai true jika array kosong.
irb> warna.empty?
=> false
b. size akan mengembalikan nilai berupa data numerik jumlah elemen
pada suatu array
irb> warna.size => 4
c. first dan last akan mengembalikan nilai berupa elemen pertama dan
terakhir.
irb> warna.first
=> "red"
irb> warna.last
=> "black"
d. delete akan menghapus nilai elemen pada elemen dan mengembalikan
nilai tersebut.
irb> warna.delete "red"
=> "red"
irb> warna
=> ["green", "blue", "black"]
2.1.5 Hash
Hash merupakan jenis lain tempat penyimpanan data dalam Ruby. Hash
mempunyai sebuah key yang mempunyai satu nilai (value). Sebuah hash dapat
Ketika mendefinisikan sebuah hash, diperlukan spesifikasi sebuah key dengan
perintah key => value.
irb> warna_mobil = { irb> 'kitt' => 'hitam', irb> 'herbie' => 'putih', irb> 'batmobile' => 'hitam', irb> 'larry' => 'hijau' irb> }
=> {"kitt"=>"hitam", "herbie"=>"putih", "batmobile"=>"hitam","larry"=>"hijau"}
Untuk contoh di atas didefinisikan sebuah hash bernama warna_mobil
dengan masing-masing key dan value. Untuk key 'herbie' mempunyai value 'putih'.
Untuk mengambil nilai key yang ada dalam hash digunakan.
irb> warna_mobil['herbie']
=> "putih" [6]
2.1.6 Control structure
Dalam pemrograman Ruby juga mengenal struktur kontrol program yang
biasa digunakan oleh bahasa pemrograman lain.
a. If structure: Digunakan dalam kondisi bersyarat. Sintaksnya:
if ”syarat”
”jika kondisi terpenuhi lakukan ini”
end
if ”syarat”
”jika kondisi terpenuhi lakukan ini”
else
”jika tidak terpenuhi lakukan ini”
Jika terdapat 2 syarat
if ”syarat pertama”
”jika syarat pertama terpenuhi lakukan ini”
elseif ”syarat kedua”
”jika syarat pertama tidak
terpenuhi dan kedua terpenuhi lakukan ini”
else
”jika syarat pertama dan kedua tidak terpenuhi”
end
b. Unless structure: Digunakan dalam kondisi bersyarat. Adapun unless
kebalikan dari if.
Unless ”syarat”
”jika syarat tidak terpenuhi lakukan ini”
end
c. Loops structure: Ruby menyediakan fasilitas untuk perulangan dengan
perintah while, until dan for.
while Car.count < 10 Car.new
puts "A new car instance was created." end
until Car.count == 10 Car.new
puts "A new car instance was created." end
Kedua pernyataan while dan until di atas menghasilkan keluaran
2.1.7 Method
Sebuah method dideklarasikan dengan menggunakan keyword def dan
diakhiri dengan end. Sebagai contoh :
def coba_method(name) puts "coba #{name}" end
a = "Jaya!" coba_method(a)
coba_method("Dunks!")
Ketika dieksekusi, program diatas akan mengahasilkan output sebagai
berikut:
coba Jaya!
coba Dunks!
Untuk me-return sebuah nilai, hanya perlu menuliskan nilai (atau variable)
tersebut di dalam method.
def kali_dua(nilai_awal) kali_dua = nilai_awal * 2 kali_dua
end
kali_dua = kali_dua(4) puts "kali dua #{kali_dua}"
Hasil eksekusi dari program ini adalah:
kali dua 8
Sebenarnya bisa saja menggunakan keyword return untuk mereturn sebuah
nilai dari method. Namun, di sini hanya ingin menunjukkan alternatif dari cara
tersebut [6].
2.1.8 Classes
Deklarasi sebuah kelas dimulai dengan class dan diakhiri dengan end.
Sebagai contoh akan membuat sebuah kelas Mahasiswa .
class Mahasiswa
@npm = npm end
def cetak_info
puts "Nama: #{@nama}" puts "NPM: #{@npm}" end
end
Instance variable dari sebuah kelas dideklarasikan dengan ‘@’ yang akan
membuatnya bisa diakses oleh semua instance method yang ada di kelas tersebut.
Namun instance variable tersebut tidak akan bisa diakses dari luar kelas. Untuk
bisa melakukan itu perlu membuat accessor method. Dengan menambahkan
kedua method pada kelas yang telah dibuat.
def nama=(nama_baru) @nama = nama_baru end
def nama @nama end
Bisa juga menguji method ini dengan melakukan pemanggilan method
seperti dibawah ini.
mhs = Mahasiswa.new("Si Bocung","1203000439") mhs.cetak_info
mhs.nama = "Si Bocah" # mengubah nama menjadi Si Bocah mhs.cetak_info
nama = mhs.nama # method ini akan mereturn Si Bocah sebagai nama
puts nama
Namun untuk mendefinisikan method setter dan getter bagi setiap variable
adalah pekerjaan yang melelahkan. Oleh karena itu Ruby menyediakan method
attr_accessor() untuk memudahkan.
attr_accessor :npm
attr_accessor :nama
Selain accessor method ada lagi yang akan sering ditemukan di Rails,
yaitu class
method.
puts “Saya Mahasiswa” end
Method ini diakses dengan diawali oleh nama kelasnya.
Mahasiswa.whatami # akan mencetak Saya Mahasiswa [6]
2.1.9 Sistem operasi yang didukung
Linux
Microsoft Windows 95/98/XP/NT/2000/2003/Vista
MacOS X v10.5 Leopard
BeOS
OS/2
Unix
MorphOS
Acorn RISC OS
Syllable
Symbian OS
2.2 Framework Ruby On Rails
Skripsi merupakan sarana pengembangan diri dari semua kemampuan saat
ini. Maka dicarilah topik yang jarang ditulis oleh mahasiswa sehingga dapat
2.2.1 Ruby On Rails dan Framework Lainnya
Membangun web sites yang powerful dari awal akan sangat menyita
sumber daya, baik tenaga, biaya maupun waktu. Saat ini berkembang berbagai
macam framework open source yang dapat membantu proses pembangunan web
sites menjadi lebih cepat sehingga sumber daya yang dibutuhkan menjadi tidak
terlalu banyak.
2.2.1.1 CakePHP
CakePHP, adalah sebuah framework atau kerangka kerja untuk membuat
aplikasi CRUD (Create, Read, Update, Delete) berbasis bahasa pemrograman
PHP. CakePHP juga menjadi salah satu framework pilihan yang memungkinkan
seorang developer web untuk membuat sebuah aplikasi dengan karakter
pengembangan RAD (Rapid Application Development), yang memungkinkan
untuk digunakan dan dikembangkan menjadi aplikasi lain yang lebih kompleks.
CakePHP masih satu trah dan mempunyai hubungan darah yang cukup erat
dengan Ruby on Rails, sebuah framework pemrograman Ruby.
Kelebihan:
Dukungan terhadap AJAX, ORM
Automagic function seperti validasi input, dll, yang mempercepat coding
Support PHP4 dan PHP5
Disamping mempunyai kelebihan, cake PHP juga mempunyai kekurangan.
Kekurangannya adalah sebagai berikut.:
Manual yang ada tidak selengkap CI.
Butuhwaktu belajar yang lebih lama untuk menguasai framework ini
dibanding CI. Tapi jika sudah benar-benar mengerti, banyak kelebihan
dibanding CI. Beberapa situs menyarankan untuk belajar dan terbiasa dulu
dengan CodeIgniter baru kemudian mempelajari CakePHP [2]
2.2.1.2 CodeIgniter
CodeIgniter merupakan framework aplikasi web yang juga menggunakan
bahasa scripting PHP. CodeIgniter dikembangkan bagi programmer PHP yang
membutuhkan toolkit yang sederhana dan elegan untuk membuat aplikasi web
dengan fitur yang lengkap. CodeIgniter dapat membantu developer web yang
terbiasa dengan PHP untuk melakukan coding dengan lebih baik, lebih mudah,
dan lebih disiplin.
Kelebihan
Mudah digunakan dan tidak memerlukan konfigurasi yang rumit
Fungsi-fungsi pendukung yang cukup lengkap
Mendkung PHP4 dan PHP5
Dokumentasi yang sangat bagu, friendly dan didukung oleh forum, wiki, dan
Kekurangan
Tidak mendukung AJAX, dan ORM
Meyediakan dan memisahan file-file dalam MVC pattern, tapi masih
memberikan kebebasan user untuk melanggar aturan MVC [2].
2.2.1.3 PRADO
PRADO (PHP Rapid Application Development Object-oriented)
merupakan framework yang berbasis komponen dan pemrograman yang bersifat
event-driven. PRADO juga dikembangkan menggunakan bahasa scripting PHP.
Fitur-fitur dari PRADO diantaranya adalah object-oriented dan code yang sangat
reusable, pemrograman berbasis event-driven, pemisahan antara lapisan presentasi
dan logik, AJAX-enabled web component, dll [2].
2.2.1.4 Symfony
Kelebihan:
Dukungan terhadap AJAX, ORM
Kompatibel dengan berbagai macam database
Banyak library dan fungsi symfony yang sudah tersedia. Bahkan hampir
mendekati CMS sehingga ada yang mengatakan ”Symphony is a CMS with a
heart of a framework”.
Kekurangan:
Relatif butuh waktu lama untuk mengerti framework ini
Instalasi dan konfigurasinya cukup rumit [2]
2.2.1.5 Zend
Kelebihan:
Dukungan terhadap AJAX, ORM
Berdasarkan informasi dari situs resminya, disebutkan bahwa fokus dari Zend
Framework ini adalah untuk membangun aplikasi berbasis Web dan untuk
memudahkan dalam mengakses API dari berbagai vendor seperti Google,
Amazon, Yahoo!, dan Flickr
Kekurangan:
Tidak mendukung PHP4
Manual yang ada kurang mengakomodasi kebutuhan
Performanya relatif lambat (mungkin karena banyaknya library)
Konon katanya Framework ini hanya cocok untuk orang dengan skill PHP
yang sudah sangat tinggi [2].
2.2.1.6 Akelos
Merupakan Framework yang relatif baru dengan kemampuan yang handal
dan lengkap. Akelos juga mempunyai kelebihan dan kekurang yang juga sama
Kelebihan
Dukungan terhadap PHP4, PHP5, AJAX, ORM (cukup lengkap dan cukup
mengakomodasi semua kebutuhan yang umum dari aplikasi php)
Kekurangan
Kurang adanya dukungan komunitas. Mungkin karena masih relatif baru
Beberapa forum mengatakan bahwa framewok ini cukup banyak memakan
memory [2]
2.2.1.7 Ruby On Rails
Ruby on Rails atau yang biasa disingkat RoR merupakan sebuah
framework open-source. Rails dikembangkan oleh David Heinemeier Hansson
menggunakan bahasa pemrograman Ruby. Selain Rails masih banyak framework
open source yang dibuat dengan bahasa Ruby, antara lain JRuby dan Xruby [4].
Rails dirancang untuk mempercepat pembuatan aplikasi web, karena memiliki
aturan-aturan yang rapi dan terstruktur. Bahkan sang pembuat Rails mempunyai
harapan Rails akan mampu bersaing dengan .NET dan Java.
Kelebihan Ruby On Rails:
lebih rapi dan terstruktur
Terdapat active record sehingga memudahkan pemrograman database
Scaffolding yang membuat cepat
2.2.1.7.1 Paradigma Rails
Di dalam pengembangan aplikasi menggunakan Rails terdapat dua buah
paradigma yang dikenal dengan convention over configuration dan don't repeat
yourself. Paradigma convention over configuration mengarahkan web
programmer untuk menggunakan segala sesuatu yang sudah menjadi konvensi di
dalam konfigurasi Rails [1]. Misalnya pemberian nama dari suatu tabel basisdata.
Rails menganjurkan nama tabel sebaiknya kata benda jamak dari model yang
dimiliki. Sebagai contoh jika model dengan nama recipe maka tabel dalam
basisdata sebaiknya bernama recipes. Nama tabel yang berbeda bisa dipakai akan
tetapi harus dilakukan pemetaan secara manual dari model recipe ke tabel recipes.
Paradigma don't repeat yourself berarti data atau informasi ditempatkan
dalam satu alamat yang konstan[1]., sehingga para progammer tidak perlu
menginisialisasikan suatu alamat baru untuk menampung sementara data tersebut.
Sebagai contoh untuk mendefinisikan suatu tabel dari basisdata, kolom-kolom
dari basisdata tidak perlu diinisialisasi ketika membuat class yang diinginkan.
Karena Ruby dapat berkomunikasi langsung dengan kolom-kolom pada tabel
basisdata melalui modul ActiveRecord.
2.2.1.7.2 MVC (MODEL VIEW CONTROLLER)
Kembali pada tahun 1979, Trygve Reenskaug dating dengan arsitektur
baru untuk pengembangan aplikasi. Pada perancangan ini aplikasi terdiri dari 3
komponen yaitu model, view dan controller.
Model bertanggung jawab untuk memelihara status aplikasi.
Kadang-kadang statusnya adalah selamanya dan akan disimpan diluar aplikasi yaitu
database. Suatu model lebih dari satu data untuk menyelenggarakan semua aturan
bisnis yang berlaku untuk data ity. Sebagai contoh jika diskon tidak diterapkan
pada pesanan misalnya 20% maka model akan melakukan batasan itu. Ini bisa
dilakukan dengan mangimplementasikan aturan bisnis di dalam model. Tidak ada
yang lain pada aplikasi yang dapat membuat data invalid. Model bertindak
sebagai penjaga pintu penampungan data.
View bertanggung jawab sebagai penghubung dengan user, biasanya
didasarkan data di dalam model. Sebagai contoh suatu toko online mempunyai
daftar produk untuk ditampilkan pada katalog. Daftar ini akan diakses dengan
model, tetapi akan menjadi view yang mengakses daftar dari model dan format
untuk pemakai terakhir. Walaupun view menyajikan user dengan berbagai inputan
data, view sendiri tidak pernah menangani masalah data tersebut. Cara kerja view
adalah akan dilaksanakan sekali ketika data ditampilkan. Mungkin akan ada
banyak view yang mengakses data model yang sama, tetapi untuk tujuan yang
berbeda. Dalam toko online, view menampilkan informasi produk pada suatu
halaman katalog dan view yang lain digunakan oleh administrator untuk
menambah dan mangubah produk.
Controller menerima kejadian dari dunia luar (biasanya inputan user),
saling berhubungan dengan model dan menampilkan view yang sesuai ke user.
Model,view controller bersama-sama membentuk suatu arsitektur yang
Gambar 2.1 Arsitektur (MVC) Model View Controller
Keterangan:
1) Browser mengirim permintaan
2) Controller berhubungan dengan model
3) Controller meminta view yang sesuai
4) View ditampilkan dalam browser
MVC awalnya diharapkan untuk aplikasi GUI konvensional, dimana
dalam pengembangannya ditemukan pemisah untuk mendorong sedikit
penggabungan. Yang pada akhirnya dibuat kode yang lebih mudah untuk ditulis
dan dipelihara. Masing-masing konsep atau tindakan dinyatakan pada suatu
tempat terkena. Menggunakan MVC seperti membangun skyscropper dengan
girders yang telah siap sebagai tempatnya. Itu menjadi lebih mudah untuk
mengolahnya dengan suatu struktur yang telah tersedia [7].
Pada dunia perangkat lunak sering mengabaikan gagasan baik dari masa
lalu ketika bertemu dengan masa depan. Ketika pengembangan pertama dimulai
dengan menghasilkan aplikasi web, ingin kembali untuk menulis program yang
mencampur presentasi, akses database, logika bisnis, even handling pada suatu
percobaan arsitektur untuk aplikasi web yang mencerminkan 20 tahun lalu dalam
MVC. Hasilnya adalah framework seperti web object,dan penampilan javaserver.
Rails menerapkan suatu struktur untuk aplikasi ini. Mengembangkan
model, view, controller dalam sebagai fungsi yang terpisah dan menggabungkan
bersama-sama ketika dieksekusi. Kelebihan Rails bahwa prosesnya didasarkan
pada penggunaan yang cerdas sehingga tidak harus menulis metadata untuk semua
pekerjaan. Ini adalah filosofi Rails yang dikenal dengan konsep Convention Over
Configuration.
Dalam aplikasi Rails, untuk pertamanya permintaan dikirim untuk
diteruskan. Akhirnya akan mengidentifikasikan suatu metode (dinamakan action
dalam Rails) suatu tempat di kode controller. Action mungkin akan
memperhatikan data yang diminta, itu bisa saling berhubungan dengan model dan
mungkin akan menyebabkan action lain untuk dilibatkan juga. Secepatnya action
menyiapkan informasi untuk view ketika membalas kembali kepada user.
Rails memegang suatu permintaan yang datang. Yang ditunjukkan pada
gambar di bawah ini. Dalam contoh ini, aplikasi sebelumnya menampilkan
halaman katalog produk dan user memilih tombol add to cart. Tombol ini
menghubungkan ke http//my.url/store/add_to_cart/123 dimana add_to_cart adalah
Gambar 2.2 Rails dan MVC
Komponen routing menerima permintaan yang datang dan segera memilih
bagian. Dalam kasus yang sederhana, akan diambil contoh untuk alur pertama,
toko adalah nama controller dan bagian kedua add_to_cart sebagai nama action
dan 123 adalah konvensi yang mengacu di dalam parameter internal yang
dinamakan id. Sebagai hasil dari semua analisis, router mengetahui harus memilih
metode add_to_cart pada controller yaitu kelas storecontroller [7].
Metode add_to_cart memegang permintaan user. Dalam hal ini, akan
ditemukan ketika user berbelanja (yang mana adalah suatu objek yang diatur oleh
model). Hal itu juga meminta model untuk menemukan informasi pada produk
dengan id 123. kemudian belanja untuk menambahkan suatu produk ke dalam
keranjangnya (lihat bagaimana model digunakan untuk keperluan jalur semua data
bisnis. Controller memberikan kepada apa yang harus dilakukan dan model
mengatahui bagaimana untuk melakukan itu).
Sekarang keranjang belanja memasukkan produk baru. Dapat dilihat pada
disusun terlebih dahulu sedemikian rupa sehingga view mempunyai akses ke
obyek cart dari model. Konvensi membantu menggabungkan bagian view dengan
memberi action.
Dengan mengikuti ketetapan konvensi akan ditemukan bahwa kode akan
menjadi lebih mudah untuk dikembangkan dan dipelihara. Nampak seperti suatu
perdagangan dengan relasi yang bagus dan teratur [7].
ACTIVE RECORD
Secara umum pada aplikasi ini semua informasi akan disimpan dalam
suatu relational database. Sistem akan menyimpan pesanan item dan detail dari
pelanggan kedalam tabel database.
Controller pada Rails adalah pusat logis dari aplikasi. Mengatur interaksi
antara user,view dan model. Bagaimanapun rails memegang kebanyakan dari
interaksi dibelakang layer. Kode yang ditulis berkonsentrasi pada fungsi level
aplikasi. Ini membuat kode controller Rails sangat mudah untuk dikembangkan
dan dipelihara [7] .
Modul ActionPack
Modul ini dibagi menjadi dua bagian, yaitu ActionController dan
ActionView. ActionController memegang peranan penting dalam suatu aplikasi
web. Fungsi dari modul ini adalah mengontrol permintaan dari browser kemudian
berkomunikasi dengan model untuk mendapatkan data lalu mengirimkan view
yang bersesuaian dengan permintaan dari browser. Bisa saja controller langsung
mengirimkan view jika permintaan dari browser tidak berhubungan dengan
dengan model. ActionView menangani isi dari halaman-halaman web yang akan
ditampilkan ke browser client [7].
Modul ActionMailer
Modul ini memfasilitasi programmer web untuk mengirimkan e-mail dari
sistem yang dibuat, ke alamat e-mail yang dituju atau menerima e-mail.
Kegunaannya adalah antara lain, untuk notifikasi user ketika menjadi anggota
sebuah aplikasi web.[7]
2.3 Sejarah Internet
Dua bulan berselang setelah Neil Amstrong melangkah di bulan, terjadi
suatu langkah yang besar di UCLA, sewaktu komputer pertama dikoneksikan ke
ARPANET. ARPANET mengkoneksikan empat site, diantaranya UCLA, SRI,
UC, dan University of Utah. Pada tahun 1977, terdapat lebih seratus mainframe
dan komputer mini yang terkoneksi ke ARPANET yang sebagian besar masih
berada di Universitas. Dengan adanya fasilitas ini, memungkinkan dosen-dosen
dan mahasiswa dapat saling berbagi informasi satu dengan yang lainnya tanpa
perlu meninggalkan komputer mereka. Aplikasi internet yang pertama kali
ditemukan adalah FTP, menyusul kemudian e-mail dan telnet. E-mail menjadi
aplikasi yang paling populer di masa ARPANET.
Pada tahun 1984 jumlah host di internet melebihi 1000 buah. Pada tahun
itu pula diperkenalkan DNS (Domain Name System) yang mengganti fungsi tabel
nama host. Sistem domain inilah yang sampai saat ini digunakan untuk
menjangkau Australia dan Selandia Baru pada tahun 1989. Dua tahun kemudian
aplikasi di internet bertambah dengan diciptakannya WAIS (Wide Area
Information Server), Gopher, dan WWW(World Wide Web).
2.3.1 World Wide Web (WWW)
Secara sederhana World Wide Web adalah sekumpulan komputer yang
menyediakan berbagai layanan informasi (disebut server) dan didalamnya terdapat
sekumpulan komputer yang terintegrasi satu sama lainnya dengan menggunakan
jaringan telekomunikasi yang rumit sehingga mereka dapat berkomunikasi dengan
cepat. Dalam World Wide Web dikenal istilah client-server, yaitu merupakan
hubungan komunikasi yang dibangun antara web site sebagai sumber informasi
dan client sebagai pengguna komputer.
World Wide Web (WWW) merupakan layanan yang terdapat didalam
internet, dalam WWW ini dimungkinkan untuk membuat halaman web yang
terdiri dari teks, suara, gambar, animasi ataupun gambar video sekalipun.
2.3.2 Hypertext Transfer Protocol (HTTP)
Hypertext Transfer Protocol (HTTP) merupakan protokol yang berguna
untuk mengirim data dari web server ke web browser. Protokol ini mengirim
dokumen web yang ditulis atau berformat HTM. Contoh tampilan atau tulisan http
pada saat sedang menjelajahi internet, yaitu sebagai berikut.
http://www.Coolfree.com
Dengan tulisan tersebut http akan langsung mengirim alamat web kedalam
web browser guna menampilkan skrip-skrip yang ada dalam web tersebut.
informasi-informasi yang ditampilkan oleh web yang ditulis alamatnya yaitu
Microsoft.
2.3.3 Web Server
Web Server adalah sebuah bentuk server yang khusus digunakan untuk
menyimpan halaman website atau home page. Komputer dapat dikatakan sebuah
web server jika komputer tersebut memiliki suatu program server yang disebut
Personal Web Server (PWS). PWS ini difungsikan agar halaman web yang ada di
dalam sebuah komputer server dapt dipanggil oleh komputer client
Macam-macam web server :
1. Apache (Open Source)
2. Xitami
3. IIS
4. PWS
2.4 OOP (Object Oriented Programming)
Object Oriented Programming atau disingkat OOP adalah istilah yang
sangat populer akhir-akhir ini di dunia pemrograman. Bahasa pemrograman
modern biasanya mendukung pendekatan OOP untuk membangun software. OOP
menggunakan klasifikasi, relasi dan property pada objek di sistem untuk
membantu pembangunan program.
Bagi pemula, logika pemrograman OOP mungkin sedikit rumit. Tidak
OOP mempunyai prospek yang cerah untuk menyelesaikan pekerjaan-pekerjaan
yang cukup komplek.
Beberapa istilah pada OOP:
1. Abstraksi (abstraction)
2. Pewarisan (inheritance)
3. Banyak bentuk (polymorphism)
4. Pembungkusan (encapsulation)
5. Pengiriman pesan (message sending)
6. Assosiasi (assosiasion)
7. Agregasi (aggregation)
2.5 UML
UML (United Modelling Language) merupakan system arsitektur yang
bekerja dalam OOAD ( object irientex analysis and design) dengan satu bahasa
konsisten untuk menentukan visualisasi, mangkonstruksi, dan
mendokumentasikan artifact yang terdapat dalam system software.
Notasi UML: dibuat sebagai kolaborasi dari Grady Booch, DR. James
Rumbough, Ivar Jacobson, Rebecca Wirfs-Brock, Peter Yourdon, dan lainnya.
Jacobson menulis tentang pendefinisian persyaratan-persyaratan system yang
disebut usecase. Juga mengembangkan sebuah metode untuk perancangan sistem
yang disebut Object Oriented Software Enginnering (OOSE) yang berfokus pada
analisis BOOCH, Rumbough dan Jacobson. Semuanya bekerja di Rational
Simbol UML, mirip dengan Booch, notasi OMT dan juga ada kemiripan dengan n
otasi lainnya.
UML menyediakan beberapa diagram visual yang menunjukkan berbagai
aspek dalam sistem. Ada beberapa diagram yang disediakan dlama UML antara
lain:
Diagram use case (usecase diagram): Menyajikan interaksi antara use case
dengan aktor.
Diagram aktivitas (activity diagram): Menggambarkan aliran fungsionalitas
sistem (aliran bisnis/aliran kejadian)
Diagram sekuensial (sequence diagram): menggambarkan aliran
fungsionalitas dalam sistem
Diagram kolaborasi (collaboration diagram): menunjukkan informasi yang
sama persis dengan sekuensial tapi dalam bentuk dan tujuan yang berbeda.
Diagram Kelas (class diagram) : menunjukkan interaksi antara kelas dengan
sistem.
Diagram statecart (statecart diagram): menyediakan sebuah cara untuk
memodelkan bermacam-macam keadaan yang mungkin dialami oleh obyek.
Diagram komponen (component diagram) : menunjukkan model secara fisik
komponen software pada sistem dan hubungan antar mereka.
Diagram deployment (deployment diagram) : menampilkan rangkaian fisik
2.6 CSS
Dengan menggunakan CSS, kita dapat menambahkan style kedalam
halaman HTML. Secara umum, CSS (Cascading Style Sheet) berfungsi untuk
menjembatani kelemahan HTML saat harus menciptakan desain web yang kaya
unsur, seperti desain link yang tanpa garis, tidak selalu berwarna biru, posisi teks
yang bisa diatur sedemikian rupa tanpa harus menggunakan tabel, dan lain
sebagainya.
2.6.1 Tentang CSS
CSS (Cascading Style Sheet) adalah standard pembuatan dan pemakaian
style untuk dokumen terstruktur , CSS digunakan untuk mempersingkat penulisan
tag HTML seperti font,color,text, dan table menjadi lebih ringkas sehingga tidak
terjadi pengulangan tulisan.
2.6.2 Keuntungan menggunakan CSS
• Memisahkan presentastion sebuah dokumen dari content document itu
sendiri.
• Mempermudah dan Mempersingkat pembuatan dan pemeliharaan
dokumen web
• Mempercepat proses rendering/pembacaan HTML.
2.6.3 Cara penulisan CSS
Inline style sheet: penulisan didalam elemen HTML
Embedded Style Sheet: penulisan CSS didalam dokumen HTML dan
Linked Style Sheet: penulisan skrip CSS dihalaman berbeda atau
terpisah dari html.
2.6.4 CSS Background
Property background. Background-color
Contoh:
Body {
Background-color : green;
}
2.6.5 CSS Font
Property Font. Font-family
P {
Font-family : Arial,Helvetica;
}
2.6.6 CSS Teks
Property teks
color
P {
color :red;
}
2.6.7 CSS List
List-style-type(nilai:disc,circle,square,lower-roman,upper-roman,none,
lower- alpha,upper-alpha)
Ul {
List-style-type : disc ;
}
2.6.8 CSS Border
Property Border
border-style(nilai:none,dotted,dashed,solid,double,groove,ridge,inset,
outset)
.b1 {
Border-style-type : groove ;
}
2.6.9 Margin dan Padding
Margin : pengaturan batas atas,bawah,kanan,kiri pada halaman web
Body {
Margin-top : 4cm;
Margin-right : 3cm;
Margin-bottom :3cm;
Margin-left : 4cm;}
2.7 MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen berbasis data
Berbeda dengan proyek-proyek seperti Apache, dimana MySQL dimiliki
dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, yang memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia
dan satu orang Finlandia yang mendirikan MySQL AB adalah David Axmark,
Allan Larsson, dan Michael "Monty" Widenius.
2.7.1 Kelebihan MySQL
MySQL merupakan Relational Database Management System (RDBMS)
yang didistribusikan secara gratis di bawah lisensi GPL (General Public
License). Dimana setiap orang bebas untuk menggunakan MySQL, namun tidak
boleh dijadikan produk turunan yang bersifat closed source atau komersial.
MySQL sebenarnya merupakan turunan salah satu konsep utama dalam database
sejak lama, yaitu SQL (Structured Query Language).
SQL (Structured Query Language) adalah sebuah konsep operasi
database, terutama untuk pemilihan atau seleksi dan pemasukan data, yang
memungkinkan operasi data dikerjakan dengan mudah secara otomatis.
Kehandalan suatu sistem database (DBMS) diketahui dari cara kerja
optimizer-nya dalam melakukan proses perintah SQL (Structured Query Language), yang
dibuat oleh user maupun program aplikasinya.
Sebagai database server, MySQL dikatakan lebih unggul dibandingkan
database server lainnya dalam query data. Hal ini terbukti untuk query yang
dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih
cepat dari PostgreSQL dan lima kali lebih cepat dibandingkan Interbase. Selain
a. Open Source. MySQL didistribusikan secara open source (gratis), di
bawah lisensi GPL (General Public License).
b. Multi user. MySQL dapat digunakan oleh beberapa user dalam waktu
yang bersamaan tanpa mengalami masalah atau konflik.
c. Column types. MySQL memiliki tipe kolom, seperti signed/unsigned
integer, float, double, char, text, date, timestamp, dan lain-lain.
d. Command dan functions. MySQL memiliki operator dan fungsi secara
penuh yang mendukung perintah Select dan Where dalam query.
e. Clients dan tools. MySQL dilengkapi dengan tools yang dapat digunakan
untuk administrasi database.
f. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam
42
Pada bab sebelumnya telah dibahas teori pendukung yang diperlukan
untuk Tugas Akhir ini. Selanjutnya akan dibahas mengenai Analisa dan
Perancangan sistem “Aplikasi Katalog Online UPN “Veteran” Jawa Timur
Berbasis Framework Ruby On Rails Dengan Menggunakan Metode (MVC) Model View Controller”. Dapat disimpulkan bahwa Analisa dan Perancangan
Sistem adalah suatu proses memahami sistem kemudian merancang sistem
tersebut yang bertujuan agar dapat mengatasi berbagai masalah yang terjadi.
3.1 Analisa Proses
Keterbatasan waktu, tenaga dan biaya untuk menyelesaikan tugas, PKL,
maupun skripsi yang diberikan dosen menjadi latarbelakang masalah dalam
pembuatan aplikasi ini. Dibuat kategori-kategori sebagai penyimpanan dan
penempatan e-book dan video sehingga memudahkan mahasiswa dalam
mencarinya.
Aplikasi yang akan dibuat pada skripsi ini merupakan sebuah aplikasi
katalog online yang berisi buku dan video. Data-data yang diolah berupa buku
dengan format PDF dan video dengan format AVI. Data tersebut diolah oleh
dosen UPN “Veteran” JawaTimur. Sebenarnya sudah banyak aplikasi seperti ini,
tetapi aplikasi katalog online ini difokuskan pada bahasa pemrogramannya yaitu
menggunakan metode Model View Controller untuk proses input dan output data.
Katalog online ini dengan menggunakan Ruby On Rails yang Object Oriented
terbagi atas beberapa modul yang saling terkait membentuk 4 bagian halaman
utama.
Di UPN “Veteran” Jawa Timur terdiri atas beberapa fakultas yang pada
masing-masing fakultas terdiri dari beberapa jurusan. Serta dari beberapa jurusan
tersebut terbagi atas beberapa kategori yang terbagi menjadi 2 yaitu kategori
video dan kategori buku.
Dari analisa permasalahan yang telah dilakukan maka akan dirancang
suatu aplikasi dengan melakukan perancangan dan pembuatan diagram. Hal
tersebut dilakukan untuk menggambarkan arus data dalam aplikasi secara
terstruktur dan jelas, serta menggambarkan proses yang terjadi pada aplikasi,
sehingga dapat menjadi sarana dokumentasi sistem yang baik.
Cara kerja dari “Aplikasi Katalog Online UPN “Veteran” Jawa Timur
Berbasis Framework Ruby On Rails Dengan Menggunakan Metode (MVC)
Model View Controller” ini adalah sebagai berikut: mahasiswa UPN harus
terdaftar terlebih dahulu sebagai anggota pada katalog ini, dengan kata lain yang
dapat menjadi anggota hanya mahasiswa UPN selain itu tidak dapat daftar
menjadi anggota. Anggota dibagi menjadi 2 yaitu anggota sebagai dosen dan
anggota sebagai mahasiswa. Perbedaannya terletak pada hak akses aplikasi yang
akan dijelaskan kemudian. Setelah terdaftar maka akan dapat melakukan sesuai