Framework Ruby On Rails

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 9598XPNT20002003Vista  MacOS X v10.5 Leopard  BeOS  OS2  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 membuka wawasan bagi mahasiswa yang lain

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  Komunitas pengguna yang besar dan forum cukup baik 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 komunitas yang besar 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:  Tidak mendukung PHP4  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 dengan framework-framework yang lainnya. 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  Code generation [2].

2.2.1.7.1 Paradigma Rails

Di dalam pengembangan aplikasi menggunakan Rails terdapat dua buah paradigma yang dikenal dengan convention over configuration dan dont 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 dont 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 hanya bersifat sementara, selama hanya berinteraksi dengan user. 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 dikenal sebagai MVC. Ditunjukkan pada gambar di bawah ini. 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 kode besar, tetapi gagasan dari masa lalu pelan-pelan kembali dan dimulai dengan 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 httpmy.urlstoreadd_to_cart123 dimana add_to_cart adalah action pada aplikasi tersebut dan 123 adalah id internal untuk produk yang dipilih. 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 controller pemakai meminta kode view, tetapi sebelum itu dikerjakan view harus 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 basisdata, atau bisa disebut juga controller menjembatani komunikasi antara view 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