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:
- 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.
- 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.
- 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.
- 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.
- 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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.