Pages

Tuesday, May 4, 2010

Web Application vs Desktop Application

I. Aplikasi WEB

Dalam rekayasa perangkat lunak, suatu aplikasi web (bahasa Inggris: web application ) adalah suatu aplikasi yang diakses menggunakan penjelajah web melalui suatu jaringan seperti Internet atau intranet. Ia juga merupakan suatu aplikasi perangkat lunak komputer yang dikodekan dalam bahasa yang didukung penjelajah web (seperti HTML, JavaScript, AJAX, Java, dll) dan bergantung pada penjelajah tersebut untuk menampilkan aplikasi.

Aplikasi web menjadi populer karena kemudahan tersedianya aplikasi klien untuk mengaksesnya, penjelajah web, yang kadang disebut sebagai suatu thin client (klien tipis). Kemampuan untuk memperbarui dan memelihara aplikasi web tanpa harus mendistribusikan dan menginstalasi perangkat lunak pada kemungkinan ribuan komputer klien merupakan alasan kunci popularitasnya. Aplikasi web yang umum misalnya webmail, toko ritel daring, lelang daring, wiki, papan diskusi, weblog, serta MMORPG.



1.2 Metodologi Pengembangan Aplikasi Web
Posted in Article, IT, Recommended, Web Developer - 4 Comments
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 bisa digunakan:
1. Fase requirement, sama dengan metodologi diatas. Pada fase ini kita mencoba mencari tahu beberapa pertanyaan berikut:
o apa yang dibutuhkan?
o apa tujuan dari aplikasi ini?
o apa yang ingin dicapai?
o apakah ada referensi atau contoh?
o siapa sasaran penggunaan aplikasi ini?
Setelah memperoleh jawaban dari pertanyaan itu maka kita baru memulai fase berikutnya.
2. Fase penentuan feature dan fungsi, pada tahapan ini berdasarkan hasil penelusuran kebutuhan dari aplikasi maka kita 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.
3. 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.
4. Fase analisa dan perancangan, pada tahapan ini kita 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.
5. 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.
6. Fase setup and testing, pada tahapan ini kita 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.
7. Fase launching, pada fase ini setelah dipastikan aplikasi berjalan baik pada server maka kita 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 bisa digunakan 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.

2. Aplikasi Desktop
Aplikasi desktop merupakan aplikasi yang tersedia pada komputer client dan dikontrol penggunaanya oleh user. Aplikasi desktop dijalankan pada drive lokal drive dan tidak memerlukan jaringan atau untuk berfungsi dengan baik, meskipun jika memerlukan koneksi jaringan aplikasi ini juga berfungsi dengan baik.


3. Aplikasi WEB vs Aplikasi Desktop
Mudah diakses
Aplikasi web dapat dengan mudah diakses dari komputer dimana saja asal mempunyai akses intranet maupun internet. Bagi anda yang mobile kemudahan akses ini sangat menguntungkan. Asal punya akses ke komputer, ponsel maupun handheld yag memiliki koneksi internet/intranet maka aplikasi web dapat dimanfaatkan.
Biaya Pemeliharaan Rendah dan Mudah di Upgrade
Aplikasi desktop mengharuskan proses instalasi dan upgrade pada setiap komputer,sedangkan aplikasi web hanya perlu upgrade dan instalasi di satu tempat yaitu server. Perawatan akan lebih mudah/tidak ada sama sekali jika hosting dilakukan diluar / pihak pihak ketiga / hosting sehingga perawatan menjadi tanggung jawab web hosternya.
Meningkatnya Resiko Keamanan
Selalu ada resiko pada sisi keamanan jika menyangkut proses online, bermain game onlien tentunya tidak beresiko ( meski ada ) dibandingkan dengan bertransaksi online, misalnya e-banking, e-commerce dll.
Konektivitas
Aplikasi web sangat bergantung pada konektivitas. Aplikasi kritis dan bisnis yang sangat bergantung pada waktu tidak bisa menerima gangguan yang mungkin muncul pada koneksi misalnya ‘denial of service’ atau gangguan listrik.
Lambat
Aplikasi web yang bergantung pada jaringan internet mungkin saja beoperasi lebih lambat jika dibandingkan dengan aplikasi desktop yang berjalan pada harddisk lokal. Kecepatan mungkin bervariasi tergantung berapa user yang mengakses aplikasi.
Backup dan Ownership
Kita pun harus yakin bahwa jika hosting dipihak ketiga maka pihak ketiga akan mem-backup data dengan baik. Dan harus dinyatakan dengan jelas dalam MoU tentang siapa pemilik data dan harus ada pencegahan dari kemungkinan penggunaan data oleh web hoster.
Power Builder .Net
Penggunaan Power Builde Versi 11.0 kita mempunyai pilihan aplikasi/target aplikasi yang akan digunakan oleh user, yaitu Web Form, Windows Form atau Windows Form With Smart Client Feature.
.Net Web Form :
• Keuntungan: Tidak memerlukan instalasi pada sisi klien, Mudah diupgrade,Jangkauan lebih luas
• Kerugian:Harus online, Respons lebih lambat
Windows Form / Client Server:
• Keuntungan: User sudah berpengalaman,Respons cepat, Tersedia resource client misalnya untuk animasi 3D, Kemampuan berjalan offline, Cocok untuk intensive data entri
• Kerugian: Memerlukan instalasi di klien, Sulit dalam upgrade
.Net Windows Form With Smart Client Feature
• Keuntungan sama dengan Windows Form hanya lebih mudah untuk proses upgrade dan intalasi
• Kerugiannya adalah perlunya instalasi untuk pertama kali.








Referensi

• http://www.martinbauer.com/articles/fdd_web_development
• http://www.sitepoint.com/article/successful-development/
• http://www.greynium.com/services/web-development-methodology.html

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.