Senin, 24 Desember 2012


PENDEKATAN DAN ARSITEKTUR WEB SEMANTIK

 Banyak yang melihat semantic web sebagai evolusi yang tepat dari World Wide Web. Ide ini didasarkan pada kenyataan saat ini, bahwa ada banyak konten online di web bagi manusia untuk menemukan informasi yang relevan tanpa bantuan mesin cerdas. Para pendukung untuk pengembangan menuju web semantik yang dipimpin oleh Tim Berners-Lee mengidentifikasi tiga pilar pendukung (Berners-Lee et al. 2001).  Pertama, mark up-semantik (pemasok informasi), yaitu mereka yang memproduksi isi web, akan menyediakan semantik mark up halaman web di masa depan. Kedua, agen perangkat lunak cerdas (yang mampu menarik kesimpulan dari isi) harus dikembangkan untuk mencari dan memproses seperti semantik mark up halaman Web. Dan ketiga, ontologi komputasi - produsen isi web dan agen perangkat lunak harus berkomitmen untuk pemahaman yang disepakati bersama, umumnya dikenal sebagai ontologi, untuk membuat isi juga dimengerti untuk mesin. Menurut pembagian tugas, kita bisa mengidentifikasi tiga teknologi inti: The markup semantik menggunakan XML sebagai format pembawa dan RDF (Resource Description Framework) sebagai format encoding pertama tingkat semantik untuk menemukan dan menggambarkan isi web. Semantik ontologi kami setujui untuk dikodekan dalam RDF-kode dengan menggunakan bahasa deskripsi khusus (tingkat kedua) yaitu Ontologi Web Language (OWL). Jadi, OWL berbasis mark up-semantik tertanam dalam RDF, yang pada gilirannya dikodekan dalam XML. Para agen perangkat lunak harus memahami setidaknya satu ontologi, bisa mencari atau meminta isi web yang mungkin menarik bagi pengguna akhir sesuai dengan ontologi agen dan pencarian istilah, akhirnya membentuk komponen aktif dari Semantic Web. Secara keseluruhan, Semantic Web tidak diragukan lagi karena masih dalam masa pertumbuhan, namun banyak peneliti dan teknologi dari industri lingkungan yang berpikir bahwa itu adalah teknologi yang menjanjikan untuk masa depan yang akan memiliki pengaruh besar, terutama pada "pencari informasi/pengetahuan" akan menggunakan WWW dalam pekerjaan mereka, di tahun-tahun yang akan mendatang.

Senin, 01 Oktober 2012

ARSITEKTUR APLIKASI WEB


1.  Perbedaan antara pattern dan framework
Pattern adalah solusi umum yang dapat digunakan kembali pada permasalahan umum yang sering terjadi pada software design. Design pattern bukan desain final yang dapat ditransformasikan secara langsung kedalam kode. Ini hanyalah deskripsi atau template untuk mengetahui bagaimana menyelesaikan permasalahan yang dapat digunakan pada berbagai macam situasi yang berbeda. Design pattern dari object-oriented secara tipikal menunjukkan hubungan dan interaksi antara kelas dan objek tanpa menspesifikasikan kelas atau objek dari aplikasi final yang terlibat didalamnya.
Fremework adalah sekumpulan fungsi, class, dan aturan-aturan. Berbeda dengan library yang sifatnya untuk tujuan tertentu saja, framework bersifat menyeluruh mengatur bagaimana kita membangun aplikasi.
Framework memungkinkan kita membangun aplikasi dengan lebih cepat karena sebagai developer kita akan lebih memfokuskan pada pokok permasalahan sedangkan hal-hal penunjang lainnya seperti koneksi database, form validation, GUI, dan security; umumnya telah disediakan oleh framework. Disamping itu dengan aturan-aturan yang jelas dan harus dipatuhi, aplikasi kita lebih solid, more readable, dan kolabarasi dalam tim dapat lebih mudah dilaksanakan.

2.  Jelaskan tentang MVC dan Struts
Model-View-Controller atau MVC adalah sebuah metode untuk membuat sebuah aplikasi web dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). Dalam implementasinya kebanyakan framework  dalam apilaksi website  adalah berbasis arsitektur  MVC. MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, antarmuka pengguna, dan bagian yang menjadi kontrol dalam sebuah aplikasi web.
Bagian dari MVC :
  1. Model, Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu seseorang dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data dan lain-lain.
  2. View, View adalah bagian yang mengatur tampilan ke pengguna. Bisa di katakan berupa halaman web web.
  3. Controller, Controller merupakan bagian yang menjembatani model dan view. Controller berisi skrip-skrip php yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web.
Dengan menggunakan metode MVC maka aplikasi akan lebih mudah untuk dirawat dan dikembangkan. Untuk memahami metode pengembangan aplikasi menggunakan MVC diperlukan pengetahuan tentang pemrogram berorientasi objek (Object Oriented Programming).
Struts adalah Frame Work Open Source yang di pakai untuk membangun aplikasi berbasis Web. yang sudah terinstregasi dengan standard technologi seperti Servlet, Java Beans dan Java Server Pages. Struts memiliki banyak keuntungan bagi pengembang web aplikasi. Juga sangat cocok dalam penerapan MVC di aplikasi berbasis web.

Senin, 24 September 2012

TINGKATAN PEMODELAN APLIKASI WEB

Tingkatan-Tingkatan Pada Pemodelan Aplikasi Web, diantaranya sebagai berikut:
  1. Content :
    Informasi dan logik aplikasi dibawah aplikasi web. Tujuan dari model content adalah definisi eksplisit dari struktur informasi.
  2. Hypertext :
    Penstrukturan content ke dalam node-node dan link antar node. Model struktur hypertext hanya mereferensi content yang bersesuaian.
  3. Presentation :
    User Interface atau Layout Halaman (page)
    Aplikasi Web yang menyediakan user interface hypertext-oriented saja tetapi mempunyai himpunan data besar butuh fokus pada pemodelan content dan struktur hypertext.
    Sebaliknya, aplikasi web yang presentation-oriented, misalnya corporate portal atau online shopping, akan sangat membutuhkan pemodelan presentasi.

Sabtu, 15 September 2012

REKAYASA KEBUTUHAN APLIKASI WEB

REKAYASA KEBUTUHAN APLIKASI WEB

  • Pendahuluan
  • Fundamental
  • Tantangan rekayasa kebutuhan (Requirement Engineering, RE) dalam web engineering
  • Asas rekayasa kebutuhan aplikasi web
  • Adaptasi metode RE untuk pengembangan aplikasi web
  • Harapan ke depan

A. PENDAHULUAN

  • Kebutuhan atau persyaratan sistem memegang peranan kunci dalam proyek pengembangan aplikasi web.
  • RE berurusan dengan prinsip, metode dan tool untuk mengidentifikasi, menggambarkan, memvalidasi, dan mengelola kebutuhan di dalam pengembangan sistem.
B. FUNDAMENTAL
  • Kebutuhan tidak dihasilkan secara otomatis tetapi harus diidentifikasi dalam aktifitas engineering.
  • Terlambat memperbaiki kerusakan dapat menyebabkan kerugian s.d 200 kali dibandingkan masalah diidentifikasi dan dikoreksi sejak awal
  • Pengumpulan dan menyaringan kebutuhan adalah fungsi utama insinyur software bagi pelanggan.
  • Masih sedikit pengalaman dalam aplikasi web dibandingkan domain lain. Kebutuhan diperoleh, didokumentasikan dan dikelola secara sangat tidak sistematis.
  • 16% dari aplikasi web 100% memenuhi kebutuhan, 53% tidak memenuhi kemampuan yang dibutuhkan.
C. DARI MANA KEBUTUHAN HADIR?
  • Stakholder: orang atau organisasi yang yang mempunyai pengaruh langsung atau tak langsung pada kebutuhan dalam pengembangan sistem(pelanggan, pengguna dan pengembang).
  • Stakeholder bagi aplikasi web termasuk penulis content, pakar bidang terkait, pakar usability atau profesional pemasaran.
D. KATEGORI KEBUTUHAN
  • Fungsional: kemampuan dan layanan yang diberikan sistem.
  • Non-fungsional: menggambarkan tingkat kualitas yang diinginkan (“Berapa aman?”, “Berapa usable?”).
  • Batasan: kondisi yang tak dapat dinegosiasikan tetapi mempengaruhi proyek. Misal: tingkat keterampilan dari tim pengembangan, anggaran yang tersedia, tanggal delivery atau infrastruktur komputer.
E. DEFINISI KEBUTUHAN
  1. Kondisi atau kemampuan yang dibutuhkan oleh pengguna untuk memecahkan masalah atau mencapai suatu tujuan.
  2. Kondisi atau kemampuan yang harus dipenuhi atau diproses oleh sistem atau komponen sistem untuk memenuhi suatu kontrak, standard, spefisikasi atau dokumen yang ditentukan secara formal lainnya.
  3. Representasi dari kondisi atau kemampuan sebagaimana dalam (1) atau (2). Terdokumentasi.
F. DOKUMEN KEBUTUHAN
Merangkum semua kebutuhan dan batasan yang disetujui antara pengembang dan pelanggan.

G. AKTIFITAS REKAYASA KEBUTUHAN
  • Mencakup pengumpulan, dokumentasi, verifikasi dan validasi, juga manajemen dari kebutuhan sepanjang proses pengembangan.
  • Konsekwensinya:

- Pengumpulan & Negosiasi Kebutuhan

- Dokumentasi Kebutuhan

- Verifikasi & Validasi Kebutuhan

- Manajemen Kebutuhan

H. PENGUMPULAN DAN NEGOISASI
  • “ Kebutuhan tidak terkoleksi dengan mengajukan pertanyaan yang benar”. Kebutuhan merupakan hasil dari proses pembelajaran dan pembangunan kesepakatan.
  • Dalam proses ini, komunikasi antar stakeholders merupakan hal yang sangat penting.
I. DOKUMENTASI KEBUTUHAN
  • Stakeholders’ agreements (kesepakatan para stakeholder) harus disaring dan dideskripsikan dalam requirements document (Dokumen Kebutuhan) secara rinci (detail), formal dan tepat bagi konteks proyek.
  • Deskripsi informal seperti cerita pengguna dan deskripsi semi-formal seperti use case, adalah sangat relevan dalam Web engineering.
J. VALIDASI DAN VERIFIKASI
  • Kebutuhan perlu divalidasi (disahkan) (Apakah kita menetapkan hal-hal yang benar?)
  • dan diverifikasi (dibuktikan) (Apakah kita menetapkan hal-hal secara benar?).
  • Ada beberapa metode konvensional untuk tujuan ini seperti review, inspection atau prototyping.
K. MANAJEMEN KEBUTUHAN
  • Kebutuhan merupakan subyek yang sering berubah
  • Metode dan tool untuk tujuan ini harus mendukung integrasi kebutuhan baru, perubahan kebutuhan yang ada, mengevaluasi pengaruh perubahan dan mengelola hubungan antar kebutuhan.
L. RE DALAM WEB ENGINEERING
Dibandingkan software konvensional:

  • Ada perbedaan dan kemiripan.
  • Sekilas perbedaan terlihat tak berarti (dapat diabaikan) dan diperdebatkan. Jika dilihat lebih dekat ke beberapa pokok, perbedaannya menjadi jelas.
  • Perbedaan akan diperoleh berdasarkan karakteristik dari aplikasi web.
M. TANTANGAN RE WEB ENGINEERING
  1. Multidisciplinary
    Pengembanga aplikasi web melibatkan pakar dari berbagai bidang. Misal: Pakar multimedia, pembuat content, software architecs, pakar usability, ahli database.
  2. Tiadanya Stakeholder
    Banyak stakeholders, seperti pengguna web yang potensial, masih tidak diketahui selama aktifitas RE.
  3. Mengembangnya kebutuhan dan batasan
    Kebutuhan dan batasan (misal property dari deployment platforms atau protokol komunikasi) mudah di definisikan pada software konvensional. Aplikasi web tidak.
  4. Lingkungan operasional sulit diprediksi
    Lingkungan operasional dari aplikasi web sangat dinamis. Sulit diprediksi.
  5. Pengaruh sistem warisan
    Pengembangan aplikasi web dicirikan dengan integrasi berbagai software yang telah ada, baik closed maupun open source
  6. Pentingnya aspek kualitas
    Aspek kualitas menentukan suksesnya aplikasi web (kinerja, keamanan, availability atau usability).
  7. Kualitas user interface
    User interface sangat penting untuk melengkapi definisi dan deskripsi dari kebutuhan.
  8. Kualitas content
    Content web merupakan aspek sangat penting dari aplikasi web.
  9. Kurangnya pengalaman pengembang
    Kurangnya pengalaman memanfaatkan tool pengembagan, standard, bahasa, dll dari teknologi ini dapat menyebabkan kesalahan dalam memperkirakan kejadian dan biaya menerapkan kebutuhan.
  10. Tanggal delivery perusahaan
    Banyak proyek web bersifat proyek design-to-scedhule, dimana semua aktifitas dan keputusan harus memenuhi suatu deadline proyek yang telah di tetapkan.
N. ASAS RE APLIKASI WEB
  1. Memahami konteks sistem
    Banyak aplikasi web dikembangkan sebagai solusi teknis terisolasi, tanpa memahami peran dan pengaruhnya dalam konteks besar.
  2. Melibatkan stakeholder
    Success-critical stakeholders atau perwaliannya ada pada inti (heart) dari RE.
  3. Definisi iteratif dari kebutuhan
    Pendekatan waterfall untuk mendefiniskan kebutuhan biasanya tidak bekerja pada lingkungan yang sangat dinamis.
  4. Fokus pada arsitektur sistem
    Memahami arsitektur sistem memudahkan pengembang mengetahui pengaruh dari solusi yang hadir pada kebutuhan dan memperkirakan pengerjaannya.
  5. Orientasi resiko
    Poin penting munculnya resiko:

    • Integrasi dari komponen yang telah ada (existing) ke dalam aplikasi web
    • Prediksi dari aspek kualitas sistem, atau kurang berlengalamannya pengembang.
O. ANTISIPASI RESIKO
  • Penilaian terhadap resiko dilakukan sebelum pelaksanaan kebutuhan.
  • Resiko yang teridentifikasi disesuaikan dengan rangkaian proyek. Pastikan alternatif solusi tidak mengejar.
  • Kelonggaran resiko harus ditempatkan sedini mungkin.
  • Termasuk pembuatan prototipe, untuk menghindari masalah IKIWISI, rilis awal dari aplikasi web untuk mengumpulkan feedback pengguna atau penggabungan awal dari komponen eksternal untuk menghindari masalah integrasi yang terlambat dan berat.
P. TIPE KEBUTUHAN
  1. Kebutuhan fungsional
    Kemampuan dan layanan sistem

    “Pengguna dapat memilih suatu icon untuk menampilkan artikel dalam shopping cart pada waktu tertentu.”
  2. Kebutuhan non fungsional
    Properti dari kamampuan dan level layanan yang diharapkan

    “Aplikasi web akan mendukung setidaknya 2500 pengguna aktif”.
Q. Tipe kebutuhan relevan dengan proyek pengembangan web
  • Kebutuhan fungsional
  • Kebutuhan content
  • Kebutuhan kualitas
  • Kebutuhan lingkungan sistem
  • Kebutuhan evolusi
R. Ciri kualitas
  1. Fungsionality (kemampuan)
    Menggambarkan kehadiran fungsi yang memenuhi properti yang didefinisikan
  2. Reliability (handal)
    Menggambarkan kemampuan produk software untuk memelihara tingkat kinerjanya
  3. Usability
    Menggambarkan upaya yang diperlukan untuk menggunakan suatu produk software
  4. Efficiency
    Menggambarkan rasio antara tingkat kinerja dari produk software dan sumberdayanya
  5. Maintainability
    Menggambarkan upaya yang dibutuhkan untuk mengimplementasikan perubahan terantisipasi dalam produk software
  6. Portability
    Menggambarkan kesesuaian produk software untuk dipindahkan dari satu lingkungan ke lingkungan lain

Rabu, 12 September 2012

Istilah-Istilah dalam Rekayasa Web

Istilah-Istilah dalam Rekayasa Web :

1. 1. Website Engineering :

Suatu proses yang digunakan untuk menciptakan suatu sistem aplikasi berbasis web dengan menggunakan ilmu rekayasa, prinsip-prinsip manajemen dan pendekatan sistematis sehingga dapat diperoleh sistem dan aplikasi web dengan kualitas tinggi. Tujuannya untuk mengendalikan pengembangan, memininalisasi resiko dan meningkatkan sistem berbasis web. Web engineering berbeda dengan software engineering, walupun keduanya melibatkan pemrograman dan pengembangan perangkat lunak. Web engineering memiliki banyak pendekatan, metoda, alat bantu, teknik, dan panduan yang memenuhi persyaratan pembuatan sistem berbasis web.

2. 2. Hypermermedia Engineering :

ü Hipermedia berhubungan dengan objek informasi yang terhubung (linked). Hipermedia akan secara khusus tertarik pada properti sistem arsitektur(seperti web) yang mendukung hypermedia linking, hipermedia link traversal, dan desain hypermedia linked yang besar (seperti situs web), seperti halnya properti naratif dan retorikal dari struktur tautan (link) hipermedia yang spesifik. Area hipermedia meliputi hal-hal berikut:

a. Desain, yaitu teknik2 untuk penstrukturan dan pemisahan ruang informasi ke dalam halaman hipermedia individual.

b. Visualisasi, yaitu teknik2 grafis untuk penyimpanan suatu ikhtisar dari situs web

c. Usabilitas, yaitu teknik2 analisis dan desain untuk meyakinkan situs web agar menjadi lebih efisien jika di gunakan untuk menyelesaikan tugas-tugas yang spesifik.

d. Tool kolaboratif, yaitu tool perangkat lunak yang mengijinkan jaringan hipermedia untuk dikembangkan secara terus menerus dengan berbagai orang yang berasal dari berbagai organisasi.

ü Istilah lain dari Hypermedia yaitu sebuah istilah yang berasal dari hypertext, memperluas link hypertext untuk menyertakan link antara setiap set objek multimedia, termasuk suara, video gerak, dan virtual reality. Hal ini juga dapat berkonotasi tingkat yang lebih tinggi dari pengguna / jaringan interaktivitas dari interaktivitas yang sudah tersirat dalam hypertext. Atau secara sederhana dapat dikatakan sebagai istilah umum yang digunakan untuk mencakup bagaimana isi web konten ditampilkan, (biasanya berupa hypertext atau hypermedia) yang dikirimkan ke pengguna akhir melalui World Wide Web, dengan menggunakan sebuah browser web atau perangkat lunak berbasis web.

3. 3. Document Engineering

Lembar dokumen sebagai ide pelengkap dari informasi dan analisis sistem, bentuk cetak dari elektronik, analisis proses bisnis, dan informatika bisnis yang bekerjasama dalam proses dengan menggunakan sebuah aplikasi sehingga menghasilkan fakta yang sesuai dan dibutuhkan oleh pengguna (human). Dari sebuah penelitian yang dipublikasikan oleh Robert J. Glushko dan Tim McGrath, rekayasa dokumen mencoba menyatukan antara analisis dan perspektif yang berbeda pemodelannya sehingga dapat membantu dalam menentukan, mendesain, dan melaksanakan dokumen serta proses yang berlangsung dan mengkonsumsinya.
Dalam konteks rekayasa dokumen, dokumen umumnya mengacu pada potongan
perintah informasi yang digunakan oleh aplikasi komputer atau layanan web. Ini memiliki relevansi khusus di bidang desain XML.

4. 4. Content Engineering

Merupakan istilah yang digunakan untuk menggambarkan materi ataupun informasi yang ingin disampaikan kepada publik (dipublikasikan), yang bisa dipresentasikan melalui teks, gambar, suara, animasi dan sebagainya. Content mengarah pada materi yang dilihat oleh viewer. Ditinjau dari segi informatika, content adalah suatu istilah untuk menggambarkan informasi, khususnya dalam suatu konteks digital, bisa dalam bentuk halaman web, seperti informasi yang tersimpan dalam file, seperti: teks, gambar, suara, danvideo.

5. 5. Internet Software Engineering

Satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak khususnya bidang internet termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan dan manajemen kualitas. Rekayasa internet adalah pengubahan dunia internet itu sendiri guna mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip rekayasa untuk menghasilkan perangkat lunak (internet) yang dapat bekerja lebih efisien dan efektif untuk pengguna.