Dreams are renewable. No matter what our age or condition, there are still untapped possibilities within us and new beauty waiting to be born.

-Dale Turner-

Kamis, 29 Desember 2011

APPLIKASI WEB


PENGERTIAN APLIKASI

Aplikasi berasal dari kata application  yang artinya penerapan, lamaran, penggunaan. Secara  istilah aplikasi adalah : program siap pakai yang direka untuk melaksanakan suatu fungsi bagi pengguna atau aplikasi yang lain dan dapat digunakan oleh sasaran yang dituju.

PENGERTIAN APLIKASI WEB


Pada awalnya aplikasi web dibangun dengan hanya menggunakan bahasa yang disebut HTML  (HyperText  Markup  Langauge).  Pada  perkembangan  berikutnya,  sejumlah skrip dan objek  dikembangkan untuk memperluas kemampuan HTML seperti PHP dan ASP pada skrip dan Apllet pada objek. Aplikasi Web dapat dibagi menjadi dua jenis yaitu aplikasi web statis dan dinamis.

Web statis dibentuk dengan menggunakan HTML. Kekurangan aplikasi seperti ini  terletak pada keharusan untuk memelihara program secara terus menerus untuk mengikuti  setiap  perkembangan  yang  terjadi.  Kelemahan  ini  diatasi  oleh  model aplikasi web dinamis. Pada aplikasi web dinamis, perubahan informasi dalam halaman web  dilakukan  tanpa  perubahan  program  tetapi  melalui  perubahan  data.  Sebagai implementasi,  aplikasi  web  dapat dikoneksikan  ke  basis  data  sehingga  perubahan informasi  dapat  dilakukan  oleh  operator  dan  tidak  menjadi  tanggung  jawab  dari webmaster.

Arsitektur aplikasi web meliputi klien, web server, middleware dan basis data. Klien  berinteraksi dengan  web  server.  Secara  internal,  web  server  berkomunikasi dengan middleware dan middleware yang berkomunikasi dengan basis data. Contoh middleware  adalah PHP  dan  ASP.  Pada mekanisme  aplikasi  web  dinamis,  terjadi tambahan proses yaitu server menerjemahkan kode PHP menjadi kode HTML. Kode PHP yang diterjemahkan oleh mesin PHP yang akan diterima oleh klien.(Abdul Kadir,
2009)

WEB SERVER


Web server adalah sebuah bentuk server yang khusus digunakan untuk menyimpan halaman website atau hompage. Komputer dapat dikatakan web server jika komputer tersebut memiliki  suatu program server yang disebut Personal Web Server (PWS). PWS ini difungsikan agar  halaman web yang ada didalam sebuah komputer server dapat dipangggil oleh komputer klien. Macam-macam web server antara lain adalah:

 WORLD WIDE WEB (WWW)
World Wide web (www) atau web merupakan sumber daya yang sangat popular dan dapat  digunakan untuk memperoleh  data atau bahkan melakukan transaksi  seperti memperoleh  informasi bahkan melakukan perdagangan. Secara teknis,  web  adalah sebuah sistem dimana informasi dalam bentuk teks, gambar, video, suara dan lain-lain yang tersimpan dalam sebuat Internet Webmaster yang dipresentasikan dalam bentuk hypertext.  Informasi  dalam  bentuk   teks  umumnya  ditulis  dalam  format  HTML (Hypertext Markup Language). Informasi lainnya disajikan dalam bentuk grafis dalam format GIF, JPG, PNG, suara dalam format AU, WAV dan objek multimedia lainnya seperti MIDI, Shockwave, Quicktime Movie, 3D World.
Sebagai dokumen hypertext, dokumen-dokumen di web dapat memiliki link dengan  dokumen  lain,  baik  yang  tersimpan dalam  webmaster  yang  sama ataupun webmaster  lainnya.  Link memudahkan para pengakses web berpindah dari halaman satu ke halaman lainnya, dan berkelana dari satu server ke server lainnya. Kegiatan penelusuran halaman web  ini biasanya diistilahkan sebagai browsing, dan ada juga yang menyebutnya sebagai surfing. Web dapat diakses oleh perangkat lunak web cliect yang secara populer disebut browser. Browser membaca halaman-halaman web yang tersimpan dalam webmaster melalui   protokol   yang   disebut   HTTP   (Hypertext   Transfer  Protocol).   Di   saat perkembangan WWW ada dua browser web yang populer yaitu Internet Explorer (IE) dan   Netscape  Navigator.  Browser  web  adalah  software  yang  digunakan  untuk menampilkan informasi dari server web. Software ini kini telah dikembangkan dengan menggunakan   user   interface   grafis,   sehingga   pemakai   dapat   dengan   mudah melakukan ‘point dan click untuk pindah antar dokumen
Saat ini bermunculan browser  web  lain  yang turut meramaikan persaingan untuk  merebut para pengguna Internet. Di antara browser web  yang telah banyak digunakan pada saat peluncurannya adalah MSN, Opera dan Mozilla Firefox. Diantara browser web ini terdapat kelebihan dan kekurangan sehingga pengguna dapat memilih sesuai keinginan dan kemudahan yang ditawarkan.(Dharma Oetomo Sutedjo, 2008)

SEARCH ENGINE


Search engine adalah salah satu fasilitas internet yang dijalankan melalui browser untuk mencari informasi yang diinginkan. Search engine menampung database dari situs-situs yang berada diseluruh dunia yang jumlahnya milyaran halaman web, cukup dengan memasukkan kata kunci maka search engine akan menampilkan beberapa link situs  disertai  keterangan  singkat.  Search  engine  yang  sangat  terkenal  antara  lain adalah Google, namun masih banyak search engine lain yang dapat digunakan seperti Altavista, MSN, Yahoo Search dan lain-lain.(Janner Simarmata, 2009)


HYPERTEXT TRANSFER PROTOCOL (HTTP)


 Hypertext Transfer Protocol adalah suatu protocol yang menentukan aturan yang perlu diikuti oleh web browser dalam menyediakan dokumen yang diminta browser. HTTP bekerja  diatas   protocol  TCP   (Transmission   Control   Protocol)   yang  menjamin sampainya data ditujuan dalam urutan yang benar. Bila suatu kesalahan terjadi selama proses pengiriman, pihak pengirim akan mendapat pemberitahuan bahwa telah terjadi kesalahan.
 
 PERSONAL HOME PAGE (PHP)



PHP adalah singkatan dari Personal Home Page yang merupakan bahasa standar yang digunakan  dalam dunia  website. PHP adalah bahasa pemrograman yang berbentuk script  yang diletakkan didalam web server. Ada beberapa pengertian tentang PHP, akan tetapi  PHP  dapat  diartikan  sebagai  Hypertext  Preeprocessor.  Ini merupakan bahasa yang hanya dapat berjalan pada server yang hasilnya dapat ditampilkan pada klien.  Interpreter  PHP  dalam  mengeksekusi  kode  PHP  pada  sisi  server  disebut serverside, berbeda dengan mesin maya  Java yang mengeksekusi program pada sisi klien (client-server).(Kasiman Peranginangin, 2009)

METODOLOGI PENGEMBANGAN APLIKASI WEB

Metodologi adalah cara-cara yang digunakan oleh seseorang secara rutin dalam menyelesaikan suatu pekerjaan. Itu menurut pemahaman saya. Kata metodologi banyak digunakan dalam manajemen proyek. Karena kesuksesan proyek juga ditentukan oleh pemilihan metodologi yang akan digunakan dalam proyek itu. Demikian juga dalam proyek pengembangan aplikasi website kita memerlukan metodologi yang tepat agar dapat menghasilkan aplikasi web sesuai yang diinginkan.
Dalam dunia software engineering, metodologi paling klasik terdiri dari 5 fase yaitu:
  1. Fase requirement atau penelusuran kebutuhan, pada fase ini kita mencari tau sebenarnya apa sih yang dibutuhkan, tujuan dari suatu proyek pengembangan aplikasi, dan seperti apa hasil yang diinginkan.
  2. Fase analisa, pada tahapan ini berdasarkan hasil penelusuran kebutuhan maka kita akan memutuskan seperti apa aplikasi yang ingin dibuat, feature apa saja yang diperlukan, masalah yang kemungkinan kita hadapi, apa saja yang kita perlukan dalam proses pengembangan, dsb.
  3. Fase perancangan, pada tahapan ini kita akan membuat rencana atau rancangan mengenai aplikasi yang akan dibuat berdasarkan hasil analisa sebelumnya. Misalnya berdasarkan hasil analisa kita akan membuat aplikasi dengan beberapa feature, nah kita perlu merancang table database yang kira-kira diperlukan untuk feature tersebut. Selain itu sesuai dengan hasil analisa kita membuat tampilan dari aplikasi. Struktur aplikasi yang dibutuhkan kayak bagaimana, fungsi apa saja yang akan dibuat, dsb.
  4. Fase pengembangan, tahapan implementasi hasil dari analisa dan perancangan. Pada tahap ini kita akan menulis kode program sesuai yang telah direncanakan sebelumnya pada fase perancangan. Pada tahapan ini juga dilakukan pengujian terhadap suatu fungsi apakah telah berjalan sesuai yang diinginkan.
  5. Fase installasi, setelah memastikan bahwa semua fungsi telah berjalan baik dan telah memenuhi kriteria yang diinginkan pada fase requirement maka aplikasi akan si setup pada server atau komputer yang akan digunakan untuk menjalankan aplikasi ini.
Fase diatas adalah fase standar yang bersifat dinamis. Tidak selamanya tiap fase yang dilewati akan ditinggalkan. Terkadang kita perlu kembali ke fase sebelumnya untuk memperbaiki kekurangan yang ada. Beberapa fase juga ada yang digabungkan agar lebih sederhana atau dipisahkan agar lebih detail.
Itu tadi metodologi klasik dalam proyek pengembangan aplikasi. Bagaimana dengan proyek pengembangan aplikasi web. Pada dasarnya karena sama-sama mengembangkan aplikasi maka metodologi diatas juga dapat digunakan. Namun terkadang kita memerlukan metodologi khusus yang bagi kita lebih nyaman. Saya sendiri memiliki metode tersendiri dalam proses pengembangan aplikasi web. Namun sebenarnya mengadopsi metodologi diatas namun dengan beberapa perubahan atau hanya perubahan kata-kata agar cocok dengan cara saya.
Berikut adalah metodologi pengembangan web yang biasa saya gunakan:
  1. Fase requirement, sama dengan metodologi diatas. Pada fase ini saya mencoba mencari tahu beberapa pertanyaan berikut:
    • apa yang dibutuhkan?
    • apa tujuan dari aplikasi ini?
    • apa yang ingin dicapai?
    • apakah ada referensi atau contoh?
    • siapa sasaran penggunaan aplikasi ini?
Setelah memperoleh jawaban dari pertanyaan itu maka saya baru memulai fase berikutnya.
  1. Fase penentuan feature dan fungsi, pada tahapan ini berdasarkan hasil penelusuran kebutuhan dari aplikasi maka saya menentukan feature dan fungsi apa saja yang akan dibuat untuk memenuhi kebutuhan yang ada. Feature dibagi menjadi feature utama atau bagian besar terlebih dahulu baru kemudian didefenisikan menjadi bagian yang lebih kecil. Misalnya pada aplikasi CMS salah satu feature utama adalah blog, kemudian feature blog didefenisikan seperti feature tagging, category, comment, dsb. Pada tahapan ini yang perlu diperhatikan adalah apakah daftar feature dan fungsi yang dibuat telah memenuhi kebutuhan yang diinginkan.
  2. Fase pengumpulan data, konten, gambar, dan file lain yang dibutuhkan dalam pengembangan aplikasi. Berdasarkan daftar feature dan fungsi yang akan dikembangkan maka saya akan mengumpulkan data-data dan file yang diperlukan untuk feature dan fungsi tersebut.
  3. Fase analisa dan perancangan, pada tahapan ini saya mencoba menganalisa data yang telah dikumpulkan pada tahapan sebelumnya dan menuangkan hasil analisa kedalam sebuah rancangan. Misalnya berdasarkan feature yang ada maka saya merancang tabel database yang dibutuhkan oleh tiap feature. Berdasarkan konten dan data  yang ada saya juga melakukan perancangan tampilan aplikasi. Selain itu saya juga menyusun struktur aplikasi seperti menu, sitemap, dsb.
  4. Fase coding, pada tahapan ini saya memulai menulis kode program. Biasanya dimulai dengan mengubah template dari file image Firework ke html. Setelah itu membuat kerangka aplikasi seperti struktur folder dan file dan memulai pengembangan fungsi untuk tiap feature.
  5. Fase setup and testing, pada tahapan ini saya melakukan setup di server dimana aplikasi web nanti akan akan dijalankan. Tentu setelah melakukan testing di komputer lokal terlebih dahulu dan memastikan bahwa semua fungsi berjalan baik. Pada server juga akan dilakukan testing untuk memastikan aplikasi dapat berjalan baik pada server tersebut. Pada tahapan ini juga akan dilakukan beta test dimana beberapa orang akan mencoba menggunakan aplikasi dan memberikan komentar atau feedback terkait dengan fungsi aplikasi.
  6. Fase launching, pada fase ini setelah dipastikan aplikasi berjalan baik pada server maka saya akan melakukan sosialisasi baik di dunia nyata atau maya. Beberapa diantaranya adalah melakukan posting di forum, aplikasi social Network seperti facebook, membuat posting di blog, dan sosialisasi lainnya.
Itulah metodologi yang saya gunakan dalam pengembangan aplikasi web. Seperti sebelumnya tiap fase tidak bersifat mengikat tapi sebisa mungkin mengikuti alur yang ada. Sebenarnya metodologi diatas juga saya adaptasi dari salah satu metode Agile Development yaitu Feature Driven Development(FDD). FDD merupakan metode pengembangan aplikasi yang mengfokuskan pada feature atau fungsi yang ingin dikembangkan.
Pada dasarnya metodologi dikembangkan untuk membuat hasil suatu pekerjaan menjadi lebih baik. Namun tentu metodologi yang anda gunakan harus sesuai dengan diri anda sendiri. Gunakan metodologi yang paling nyaman menurut anda dan lihat apakah hasil yang dicapai lebih baik. Bila tidak pertimbangkan metodologi lain namun tetap cocok dengan anda.

DIAGRAM PERBEDAAN APLIKASI WEB KONVENSIONAL, WEB SEMANTIC DAN WEB SERVICE

Perbedaan konsep antara aplikasi web konvensional, web semantic dan web service. Di artikel ini saya mencoba untuk mendefinisikan antara ketiga istilah tersebut menurut apa yang saya pahami. Jelas sekali, membutuhkan masukan dari rekan-rekan lain untuk lebih menyempurnakan blok diagram saya ini.
Pada prinsipnya ketiga istilah teknologi tersebut dasarnya adalah memecah peran/fungsi proses/aplikasi menjadi 3 bagian yang masing-masing dapat dijalankan pada satu mesin yang sama atau berbeda mesin yang terhubung dalam satu jaringan dan protokol yang sama. Aplikasi web, yang mungkin sering kita dengar sebagai penyatuan PHP, MySQL dan Apache, atau arsitektur J2EE, atau ASP.net, SQLServer, dan IIS, atau yang lain adalah sebuah aplikasi yang berjalan di sebuah web server yang dapat menerima permintaan dan memprosesnya (dengan atau tanpa akses database) untuk mengembalikan dokumen berupa HTML/CSS/JavaScript ke peminta (dalam hal ini kita sering menggunakan web Browser). Aplikasi ini saya sebut sebagai aplikasi web konvensional yang dapat ditunjukkan pada gambar 1.


Gambar 1. Blok Diagram Aplikasi Web Konvensional

Pada aplikasi web konvensional, antara data dan presentasi merupakan sebuah satu blok. Dan di sini biasanya dibubuhkan kode JavaScript (AJAX) atau XUL atau sejenisnya untuk dapat memberikan interaksi yang lebih baik kepada pemakai. Tapi sekali lagi, ini tetap menggabungkan antara dokumen dan data. Jika ada suatu aplikasi lain di luar penyedia layanan aplikasi web ini, ingin mengambil data yang ada dalam dokumen tentu akan sangat kesulitan. Lalu kemudian muncul sebuah konsep yang ingin memisahkan antara dokumen dan data (termasuk metadata) agar dapat memudahkan dalam berinteraksi dengan sistem aplikasi lain di luar domainnya. Konsep Web Semantic pada intinya adalah memberikan kemudahan untuk menyambung dan atau mempertukarkan data antar aplikasi web satu dengan aplikasi web lain. Dengan adanya kemudahan dan kesatuan ini, maka kita dapat membuat aplikasi yang lebih cerdas daripada aplikasi web konvensional. Saya menggambarkan seperti pada gambar 2.


Gambar 2. Blok Diagaram Aplikasi Web Semantic

Untuk penyediaan data, W3C telah menetapkan format baku, yaitu RDF, RSS, ATOM, GRDDL atau FoF. Ketiganya dapat kita gunakan untuk menstrukturkan data dari data yang melekatkan pada dokumen agar mudah untuk di baca oleh mesin. Data ini dapat kita rancang sebagai sebuah data yang tersebar, baik secara tereplikasi, horizontal ataupun vertical partition bahkan cell partition. Dengan konsep Web Semantic, kita dimungkinkan untuk membuat sebuah aplikasi yang lebih cerdas untuk membaca data-data yang ada secara realtime dan online untuk kita olah dan mungkin kita masukkan ke dalam sebuah mesin inferensi dengan menggunakan OWL sebagai representasi pengetahuan ontologi kita. Badan W3C juga telah menyediakan sebuah spesifikasi query terhadap RDF-RDF yang ada, yang disebut dengan SPARQL. Wah banyak sekali ya yang harus dipelajari.
Perkembangan konsep web semantic ini juga dibarengi dengan konsep teknologi Web Service yang mulai mengarah pada konsep baru cloud computing misalnya. Untuk menyediakan Web Service ini, tentu kita akan menyediakan sebuah antarmuka untuk layanan kita yang dapat dijadikan sebagai dasar bagi para pemakai lain untuk meminta layanan kita. Antarmuka ini biasanya kita tulis dengan WSDL. Berdasar WSDL ini kita dapat membangun aplikasi implementasinya dengan bahasa pemrograman yang kita suka dan yang mendukung tentu saja. Web service ini dapat diakses melalui beberapa basis protokol, misal HTTP, FTP, atau SMTP. Sedangkan untuk format pengaksesan dapat menggunakan protokol SOAP, XML-RPC ataupun REST. Untuk sebuah Web Service ini, saya mencoba menggambarkannya seperti pada gambar 3.


Gambar 3. Blok Diagram Web Service

Dengan adanya Web Semantic dan Web Service ini kita dapat membangun sebuah mashup application, yaitu sebuah aplikasi yang menggabungkan data dan layanan yang lain ke dalam satu aplikasi. Contoh yang sangat baik tentang hal ini adalah bagaimana kita membuat aplikasi informasi berdasar lokasi yang kita ambil dari Google Map sekaligus juga dapat menampilkan buku-buku dari layanan Amazon terkait dengan informasi yang kita sajikan tersebut. Menarik bukan.