Transcript Slide 1

Frameworks
Lasmedi Afuan, ST.,M.Cs
What is a Framework ?
Pengembangan web bukan sekedar membutuhkan bahasa
pemrograman (scripting) tertentu saja.
Suatu web site didukung oleh sistem kompleks yang
terdiri dari berbagai komponen hardeware dan software
yang berbeda yang tergabung bersama dengan banyak
protokol.
Oleh karenanya dibutuhkan suatu lingkungan yang
memungkinkan kesemuanya itu dapat bekerja bersama
dan berkomunikasi baik dengan antara mereka sendiri
maupun komponen di luar lingkungan mereka.
Lingkungan inilah yang disebut Framework.
What is a Framework ?
Dalam Pengembangan software, Framework didefinisikan
sebagai :
Suatu struktur pendukung yang mana proyek perangkat
lunak lain dapat diorganisasikan dan dikembangkan.
Atau dalam bahasa perangkat lunak, ada dikenal software
framework yang memiliki pengertian :
Desain yang reusable untuk suatu sistem (atau subsistem)
perangkat lunak .
What is a Framework ?
Software framework diperlihatkan sebagai sekumpulan
kelas-kelas abstrak dan cara mereka berkolaborasi untuk
jenis software tertentu.
Dari sini terlihat bahwa semua software framework
merupakan desain berorientasi objek, meskipun desain
sendiri tidak harus diimplementasikan dalam suatu
pemrograman berorientasi objek, namun secara umum hal
itu dilakukan.
Benefits of framework
Beberapa keuntungan menggunakan framework :
1. Lingkungan lengkap untuk pengembangan web site,
hosting, interoperabilitas, security, dan maintenance
sehingga pengembang tidak harus membangun sistem
tang terkustomisasi setiap kali membuat suatu proyek
web.
2. Adanya standar dan konsistensi
3. Komponen software sehingga pengembang dapat
berbagi dan menggunakan ulang kode-kode yang telah
ada tanpa harus membuat lagi fungsionalitas ttt.
4. Model atau arsitektur standar yang memungkinkan
memvisualisasikan bagaimana keseluruhan sistem
bekerja
Benefits of framework
Kebutuhan standarisasi sistem, bahasa, dan protokol
merupakan kekuatan utama di balik konsolidasi industri.
Konsolidasi ini telah menghasilkan beberapa framework
pengembangan web yang utama yakni :
Microsoft .Net, Sun’s Java 2 enterprise edition, dan Open
Source.
Tiap framework memiliki kelebihan dan kekurangan
masing-masing, sehingga perlu berhati-hati dalam
mempertimbangkan dan memilih framework apa yang
akan digunakan.
Microsoft .Net
.Net merupakan framework yang dibuat oleh Microsoft
yang difokuskan pada Rapid Application Development
(RAD), platform independence, dan network transparency.
Menurut Microsoft, .Net terdiri dari berbagai teknologi
yang didesain untuk memfasilitasi rapid development
Internet dan intranet.
.Net memberikan fungsionalitas dan tool-tool baru untuk
API. Inovasi ini memungkinkan pengembang
mengembangkan aplikasi-aplikasi untuk windows dan
web sebaik komponen-komponen dan web service.
Microsoft .Net
.Net terdiri dari 3 bagian utama yakni : Common
Language Runtime, kelas-kelas framework, dan ASP.Net
Adapun 2 komponen utama .Net adalah : Common
Language Infrastucture (CLI) dan Common Language
Runtime (CLR).
CLI merupakan sekumpulan spesifikasi untuk
runtime environment, termasuk tipe sistem yang
umum, base class library, dan machine-independent
intermediate code known as the Common
Intermediate Language(CIL) .
Microsoft .Net
CLR menyediakan suatu platform untuk menjalankan
kode-kode yang sesuai dengan CLI. Dan sebelum CIL
dapat dieksekusi, CLR harus menterjemahkannya menjadi
kode mesin native.
Jika suatu bahasa implementasi men-generate CIL,
bahasa tersebut dapat ditempatkan menggunakan
CLR and kemudian dapat berinteraksi dengan data
yang dihasilkan oleh bahasa.NET lainnya. CLR juga
didesain menjadi operating system independent.
Microsoft .Net
.Net memiliki mekanisme sekurity tersendiri dengan 2
fitur umum yakni : code access security, serta validasi
dan verifikasi. Code access security berdasarkan pada
pembuktian bahwa ia berasosiasi dengan bahasa
assembly tertentu.
Code access security menggunakan pembuktian
untuk menentukan ijin yang diberikan untuk suatu
kode.
Ketika suatu bahasa assembly dijalankan, CLR
melakukan berbagai tes. Dua di antaranya adalah
validasi dan verifikasi
Microsoft .Net
Selama proses validasi, CLR memeriksa apakah bhs
assembly berisi metadata yang valid dan CIL, dan
memeriksa apakah tabel-tabel internal sudah benar.
Mekanisme verifikasi memeriksa apakah kode-kode
mengerjakana sesuatu yang “tidak aman”.
Algortima yang digunakan cukup konservatif, dan
oki kadang-kadang kode yang “aman” tidak
diverifikasi.
Kode yang “tidak aman” hanya akan dieksekusi jika
assembly memiliki ijin 'skip verification', yang mana
secara umum berarti bahwa kode tersebut terinstall
pada mesin lokal.
Microsoft .Net
Beberapa bahasa yang didukung oleh .Net adalah :
1. C# (C-Sharp), bahasa pemrograman berorientasi objek
yg mirip C++ dan Java
2. Visual Basic .Net
3. Beberapa bahasa pihak ketiga :
1. Ada
2. perl
3. PHP
4. COBOL
5. Delphi 8 dan Delphi 2005
6. Fortran
7. IronPython dan boo, berbasis python
8. Smalltalk, dan lain-lain
Sun Microsystem J2EE
Framework java berdasar pada bahasa pemrograman Java.
Dengan menggunakan Java Virtual Machine (JVM) yang
merupakan kompiler bahasa yang universal yang
dapat berjalan pada berbagai sistem operasi. OKI, Sun
mengklaim bahwa Java merupakan Bahasa
pemrograman yang “ Write Once, Run Anywhere”.
J2EE memiliki 2 fitur unik yaitu :
1. JSP (Java Server Pages)
2. JavaBeans
Sun Microsystem J2EE
1.JSP
Dari sisi presentasi, JSP memungkinkan kode Java
ditempelkan pada halaman HTML. Ketika dikompile,
JSP secara dinamis menghasilkan halaman HTML dan
mengirimkannya ke browser.
Dengan JSP dimungkinkan untuk membuat halaman web
yang berisi Java namun menghasilkan HTML biasa yang
ditampilkan secara langsung kepada klien.
Sun Microsystem J2EE
2. JavaBeans
Logika aplikasi J2EE dibungkus menjadi komponenkomponen yang reusable yang disebut Enterprise
JavaBeans (EJBs).
Komponen-komponen ini mengelola state (dengan
menyimpan data) dan menghasilkan fungsi logis (yang
disebut method).
Dengan EJB, mengurangi kompleksitas pengembangan
middleware karena EJB menyediakan secara otomatis
dukungan untuk layanan-layanan seperti konektivitas
database.
Apache Struts
Apache Struts awalnya merupakan proyek di bawah
proyek Apache Jakarta. Saat ini Struts merupkan
proyek papan atas yang merupakan framework Open
source untuk mengembangkan aplikasi J2EE.
Struts menggunakan dan memperluas Java Servlet
API untuk mendorong developers mengadopsi
sebuah arsitektr MVC. Awalnya dibuat oleh Craig
McClanahan dan pada Mei 2000, disumbangkan
untuk Apache Foundation.
Apache Struts
Framework ini memungkinkan desain dan
implementasi dari aplikasi web yang besar ditangani
oleh beberapa kelompok yang berbeda. Dengan kata
lain, desainer,pengembang komponen dan
pengembang lainnya dapat menangani pekerjaan
masing-masing dengan cara bersama-sama atau
sendiri-sendiri.
Struts memiliki fitur I18N (internationalisasi),
powerful custom tag library, tiled displays dan
validasi for. Selain itu juga mendukung berbagai
jenis lapisan presentasi, termasuk JSP,
XML/XSLT,JavaServer Faces (JSF), dan Velocity
dan berbagai lapisan model termasuk JavaBeans and
EJB.
Ruby on Rails
Ruby on Rails (RoR) atau Rails, merupakan
framework aplikasi web open source yang ditulis
dengan Ruby, dan menerapkan arsitektur MVC
(Model-View-Controller)
Rails berusaha keras agar sederhana dan
memungkinkan aplikasi dunia nyata dikembangkan
dengan sedikit baris kode dibandingkan framework
lain dan minimum konfigurasi.
Ruby on Rails
Arsitektur MVC Rails :
Model
Pada orientasi objek, aplikasi web MVC berbasisweb, Model berisi kelas-kelas yang
merepresentasikan tabel-tabel RDBMS.
Pada RoR, kelas-kelas model ditangani melalui
Active Record. Umumnya programmer hanya
membuat subclass dari Active Record, dan program
akan secara otomatis menampilkan tabel-tabel
RDBMS mana yang digunakan dan kolom-kolom
tabel apa yang dimiliki.
Hubungan antar tabel ditentukan dengan perintah
yang sederhana.
Ruby on Rails
Arsitektur MVC Rails :
View
Pada MVC, View merupakan display logic,atau
bagimana data dari kelas-kelas Controller
ditampilkan. Pada aplikasi web, biasanya hal ini
terdiri dari sejumlah kecil kode yang diselangseling dalam HTML.
Views dianggap sebagai sebuah fragment dari
HTML (file .rhtml) dengan Embedded Ruby yang
diselang-seling dengan pure Ruby melalui
Builder.
Ruby on Rails
Untuk setiap method pada controller yang akan
menampilkan keluaran pengguna, dibutuhkan
fragment kode HTML yang kecil.
Layout halaman dijelaskan secara terpisah dari aksi
controller yang menampilkan layout, dan fragmentfragment juga dapat memanggil fragment lainnya
Ruby on Rails
Arsitektur MVC Rails :
Controller
Pada MVC, kelas-kelas Controller merespon
interaksi pengguna dan memanggil logika aplikasi,
yang akan melakukan manipulasi data pada Model
and menampilkan data melalui View.
Pada aplikasi MVC berbasis web, Method-method
Controller dimulai oleh pengguna melalui web
browser.
Ruby on Rails
Implementasi Controller ditangani melalui Rails'
Action Pack, yang memiliki kelas
ApplicationController.
Aplikasi-aplikasi Rails secara sederhana membuat
subclass ApplicationController dan menulis aksi-aksi
yang dibutuhkan sebagai method-method, yang
kemudian dapat diakses melalaui web.
Ruby on Rails
Modul-modul yang terdapat pada Rails di antaranya
adalah Action Mailer untuk pengiriman email dan
Action Web Service for SOAP dan dukungan XMLRPC.
Selain itu juga mendukung Ajax,yakni teknologi
terpisah yang memungkinkan penggunaan Javascript
dan XML untuk memproses query melalui web
browser kepada web server sbg backgroundprocessing tanpa menampilkan halaman web
tambahan.
Ruby on Rails
Untuk pengembangan dan pengujian, web server
yang digunakan biasanya adalah WEBrick yakni web
server ringan yang sudah include dalam Ruby.
Sedangkan untuk produksi, dianjurkan menggunakan
Apache atau Lighthttpd dengan FastCGI.
Adapun RDBMS yang didukung oleh Rails adalah
Mysql,PostgreSQL, SQLite,DB2,Oracle, dan SQL
Server.
Framework untuk PHP
Cukup banyak framework untuk PHP, di antaranya
yakni :
•PRADO :
Framework pemrograman web berbasis komponen
dan even-driven untuk PHP 5.
PRADO merekonsep pengembangan aplikasi web
dengan terminologi komponen, event, dan propertis,
ketimbang menggunakan istilah prosedur, URL, dan
parameter query.
Framework untuk PHP
2. ZNF
Merupakan framework opensource untuk
mengembangkan aplikasi web dengan PHP 5. Idenya
mengambil dari Apache Struts.
Inti dari framework ini merupakan suatu lapisan
kontrol yang flexibel berbasis pada teknologi standar
seperti PHP5 dan XML.
ZNF menggunakan Model2, yg merupakan variasi
dari arsitektur MVC.
Framework untuk PHP
Untuk Model, ZNF dapat berinteraksi dengan
teknologi pengekasesan data standar, seperti
PEAR:DB.
Untuk View, ZNF bekerja dengan baik dengan
Smarty template engine dan XSL Transformation.