Lingkungan Pengembangan Aplikasi Internet

advertisement
Pemrograman Internet Mobile
Antonius Rachmat C, S.Kom, M.Cs
Lingkungan Pengembangan Aplikasi Internet
Masalah
• HTTP bersifat stateless
• Jika kita belanja pada situs e-commerce misal
www.amazon.com dan kita membeli beberapa buku
dan memasukannya kedalam basket chart
• Kemudian kita berpindah halaman yang lain untuk
melihat buku yang lain
• Bagaimana amazon dapat mengingat buku apa saja
yang sudah kita beli yang ada dalam basket saja yang
sudah kita beli yang ada dalam basket chart?
• Bagaimana kita menyimpan state dari request ke
request yang lain
Lalu?
• Apakah bisa menggunakan log file yang dicatat
dalam web server?
– Tetapi HTTP bersifat anonymous
• Web Server tidak tahu user siapa yang sedang
terkoneksi ke web server / mengakses web
• Web Server hanya dapat mencatat IP komputer
saja, user agents, halaman apa yg diakses
– Bagaimana kalau koneksinya melalui proxy?
Solusi
• Menggunakan session ID
• Yaitu menambahkan ID tertentu pada
alamat URL dari semua halaman yang
diakses
• http://www.amazon.com/exec/obidos/ASIN
/1588750019/103 9609966 7089404
• Biru = nomer ISBN
• Hijau = session ID
Solusi
• Solusi lain yang ditawarkan adalah dengan
menggabungkan semua content yg ada di
basket chart melalui HTTP GET
• Namun HTTP GET: maksimal panjang 255
karakter untuk browser versi lama
• Session:
– Masalah ini timbul jika user mengakses web sites
tidak harus login terlebih dahulu
– Jika sudah melalui login, web server dapat membuat
nama session secara spesifik sessuai dengan user
name nya
Cookies
• Cookies adalah mekanisme umum dimana
server side connection (CGI script) dapat
menyimpan dan mengambil informasi
pada sisi client (client side)
• Bagaimana cara kerjanya?
– Setelah user menambahkan buku kedalam
shopping cart, server akan menuliskan
– Set-Cookie: cart_contents=1588750019;
path=/
Masalah Cookies
• Keterbatasan untuk menyimpan cookies dalam browser
– Tidak boleh lebih 20 cookies untuk web server yang sama
– Ukuran setiap cookies tidak boleh lebih dari 4 kilobytes
• Informasi yang disimpan di cookies akan Informasi yang
disimpan di cookies akan dikirimkan kembali ke web
server setiap kali page diload
• Jika file cookies besar dan jumlahnya banyak (misal 80
Kilobytes untuk 20 cookies)
• Tidak portabel untuk user
– Jika user berganti komputer maka data cookies yang sudah ada
tidak tersimpan pada komputer yang baru
• User juga bisa mendisable cookies untuk privacy
Server side storage
• Cara yang paling tepat adalah
menggunakan RDBMS (relational
database management system)
• Dapat melakukan perintah create, insert,
update, delete, dan select (query)
• Mengatasi masalah concurency
• Adanya declarative query language (SQL)
Langkah Pengembangan
• Mengembangkan data model, informasi apakah yang
akan disimpan dan bagaimana informasi tersebut akan
ditampilkan
• Mengembangkan legal transaction (perintah yang
diijinkan) pada model (table) tersebut (insert, update)
• Mendisain page flow, bagaimana user berinteraksi
dengan sistem, perintah apa yang boleh dilakukan user /
halaman yg boleh diakses boleh dilakukan user /
halaman yg boleh diakses
• Mengimplementasikan individual pages, menulis script
(HTML dan bahasa server side) dan query script (HTML
dan bahasa server side) dan query information (data
model)
Aplikasi yg menggunakan webdb
•
•
•
•
•
•
•
•
•
E-Commerce
Resource libraries
Catalogs
Directories (Yellow Pages)
Online Shopping
Online Auctions
Training Courses
Survey
Financial Analysis
Desain Web
• Website sudah menjadi seperti software
• Dari ‘document delivery’ menjadi ‘business
process automation’
• Software Engineering method dapat
diterapkan pada Website development
• Dapat membantu mengatur proses
sehingga bisa dikontrol, meminimalkan
resiko dari kegagalan proyek
Perkembangan Aplikasi Web
• Website statis
– Hanya kumpulan HTML, image, table, frame
• Website statis dgn interaktivitas form
– Sudah menggunakan java script
• Website dengan dynamic data acess
– Sudah menggunakan client dan server side programming
language
– Tergantung tujuannya
– Bisa dibuat umum, seperti CMS
• Web Application
– Seperti facebook, wikipedia, silverlight, google earth, google
office
• Web Mobile Application
– Sama seperti web dinamis dan web application, namun
ditampilkan di mobile
Web yg direkayasa secara benar
• Correct : website dapat dikatakan correct jika website
tersebut dapat berfungsi dengan baik dan bebas dari
error / error free (dilakukan testing)
• Testable : sebelum di deploy harus dilakukan proses
testing terlebih dahulu yang terdiri dari beberapa level
testing untuk memastikan website tersebut sesuai
dengan requirement dan bebas error
• Maintable : website harus mudah untuk dimaintain,
mudah untuk melakukan perubahan terhadap suatu
websites
• Portable : website yang portable adalah website yang
bisa dijalankan di berbagai platform dan dapat di
tampilkan dengan baik di semua browser (cross
browser)
Web yg direkayasa secara benar
• Scalable : Website yang scalable adalah website yang
mudah untuk dikembangkan (ditambah fungsi baru,
feature baru, bertambahnya user dll) bertambahnya
user, dll)
• Reusable : website yang komponen-komponen atau
fungsi-fungsinya dapat digunakan kembali
(pemrograman menggunakan konsep OOP)
• Robust dan Reliable : mengacu pada kualitas
implementasi secara teknis dan visual (banyak gambar,
dll) bagaimana website tersebut dapat digunakan oleh
user (masalah bandwith, dan kondisi jaringan)
• Efficient : Performa yang baik terutama dalam delivery
datanya (penanganan server dan network)
Web yg direkayasa secara benar
• Readable : Source File program yang dibuat
dapat dipahami dengan baik oleh programmer
lain
• Well Documented : Website yang
terdokumentasi dengan baik (spec,flowchart,
document, perubahan)
• Appropriately Presented : tampilan / user
interface juga harus mendukung tujuan dari
web agar menarik user (untuk marketing /
promo, brand image)
Kesulitan
• Complexity : Webiste dapat menjadi sangat
kompleks, tantangan terbesar adalah adanya
fungsi-fungsi baru yang terus ditambahkan pada
website (sulit pada proses pengembangan)
• Changebility : Website memerlukan perubahan
yang terus menerus, sehingga membuat proses
pengembangan website menjadi komplek
• Biasanya kode yang ditulis untuk project web
skala kecil berupa “spaghetti code”
Kesulitan
• Invisibility : proses pengembangan website
tidak bisa diukur kemajuannya.
– Client mungkin ingin melihat sampai mana proses
pengembangan website yang dibuat / progress (mis:
halaman apa saja yang sudah jadi, fungsi-fungsi apa
saja yang sudah jadi)
• Unrealistic Schedules : jadwal yang tidak
realistis (mis: deadline terlalu cepat), kita harus
memperhitungkan resiko yang dapat muncul
pada proses pengembangan web (management
risk)
Piramida
Proses pengembangan
• Pendekatan Deduktif (Top-Down)
– menentukan tujuan
– buat spesifikasi
– rancang sesuai spesifikasi
– implementasikan rancangan
– test
– ‘publikasikan’
• Process Model membantu proses
pembuatan web dengan cepat dan akurat.
Pengembangan Web RAD
• RAD = Rapid Application Development
– BBBB => Buat, Buang, Buat Baru
•
•
•
•
Tidak ada standarisasi baku
Tanpa perancangan / diskusi
Proses pembuatan cepat
Dianjurkan untuk skala kecil
Pengembangan Web: Waterfall
Model
•
•
•
•
Mempunyai banyak tahap
Dikerjakan oleh kelompok besar / team
Sangat terstruktur
Proses lama unt perancangan
Desain Waterfall
Environmental Requirements
• Walaupun sistem requirements berbeda-beda,
tergantung dari jenis web site, tetapi semua site
harus memperhatikan requirement dari sistem
end-user (browser, kecepatan koneksi, besar
monitor, dll).
• Untuk mengetahui platform target dapat
digunakan asumsi umum, sample survey atau
berdasarkan analisa laporan statistik.
• Dapat juga digunakan hasil ‘perjanjian’ antar
perancang Web. Mis. Resolusi layar 800 x 600
pixel
Content Requirements
• Berisi daftar informasi yang akan
ditampilkan pada suatu web site berikut
formatnya.
– Apa yang harus dimuat?
– Berapa banyak yang harus dimuat?
Functional Requirements
• Menyatakan apa yang akan dilakukan oleh
suatu web site, bukan bagaimana web site
tersebut melakukannya.
• Functionality requirements harus detail.
• Tergantung kasus proyeknya
Design
• Design struktur informasi atau dokumen
menentukan bagaimana informasi bisa
dicocokkan dengan struktur halaman web.
• Informasi seringkali disimpan dalam dokumen
yang cukup panjang. Sebaliknya, dalam
perancangan web, web cenderung memiliki
banyak link antar halaman web tersebut.
• Perancangan ini masuk akal karena pemakai
web biasanya hanya membaca sebagian kecil
dari semua halaman yang tersedia dalam yg
website. Oleh karena itu, informasi harus
dipecah menjadi bagian kecil dengan link-link.
Link Structure
Link Structure
Link Structure
Structure Link
Ingat
• Pengembang website tidak mengetahui
peralatan yang digunakan oleh pengguna,
– Misal: pada waktu perancangan tidak ada informasi
sama sekali dari pengguna browser informasi sama
sekali dari pengguna browser apa yang nanti akan
digunakan untuk mengakses website mengakses
website
• Banyak faktor selain keadaan software di client
ikut mempengaruhi keberhasilan sebuah
website, terutama kondisi jaringan yang
digunakan, kecepatan jaringan tidak bisa
dipredikasi karena tergantung banyak faktor
(traffic padat atau tidak, kecepatan koneksi, dll)
Ingat
• Website biasanya document oriented dibandingkan
software yang process oriented (lebih berfokus pada
process / komputasi).
• Dalam perancangan web harus sangat diperhatikan
bahwa informasi dalam dokumen dipresentasikan
dengan menarik dan jelas sehingga lebih dimengerti
oleh pengguna
• Penampilan halaman web sangat penting untuk
penerimaan atau penolakan oleh pengguna. Halaman
pertama (index/default) pada web yang dianggap tidak
menarik akan menyebabkan orang tidak menyebabkan
orang tidak akan berkunjung lagi
Prinsip desain web
1. Building For User
– Anda bukan pengguna
– Pengguna bukan seorang designer
– Pengguna memiliki karakteristik yang berbeda
2. Utility & Usability
– Utility : kegunaan/fungsionalitas suatu web
– Usability : kemampuan pengguna
memanipulasi web sehingga pengguna
memperoleh apa yang diperlukannya.
Prinsip desain web
3. Correctness
– HTML benar
– Gambar tampil sesuai dengan yang diharapkan
– Elemen-elemen yang interaktif (JavaScript, CGI, dll)
dapat berfungsi dengan benar
– Navigasi sistem tidak ada kesalahan (broken link)
4 Know and respect the Web and Internet 4. Know
and respect the Web and Internet medium
constraint (Browser, bandwidth, programming,
protocol)
Prinsip desain web
5. Web Site harus mengikuti prinsip-prinsip GUI
– Disesuaikan dengan tampilan windows
– Pakai prinsip-prinsip yang telah dikenal pengguna
6. Web site yang baik memiliki sistem navigasi
yang jelas
– Untuk meningkatkan navigasi diperlukan suatu
struktur yang tepat
– Alat bantu: site map, search engines, site index, help
system.
7. Look matter
– Tampilan visual sangat mempengaruhi persepsi awal
pengguna mengenai suatu web.
Desain tips
• Buatlah Website yang dapat digunakan semua orang
• Buatlah website yang bisa dijalankan di semua browser
• Buatlah halaman web dng memperhatikan setting
browser pengguna
• Buatlah website dengan teknologi yang paling
compatible
• Buatlah website yang cepat diakses
–
–
–
–
Buat halaman yang cepat diload
Buat agar halaman cepat ditampilkan
Pakai format citra ang efisien
Buat website yang mudah dimengerti
Desain tips
• Buatlah website yang mudah digunakan
– Mempunyai bantuan navigasi
– Menggunakan Bread Crumb
• Buat halaman web bebas dari penyusunan yang kacau
• Halaman utama harus dapat ditampilkan / diload dengan
cepat
• Halaman harus mudah dibaca (gunakan font yg mudah
dibaca, ukuran font harus cukup besar, warna teks dan
background hrs cocok, format hrs konsisten)
• Hindari penggeseran (scrolling) lebih dari yang betulbetul diperlukan
– Terutama scroll ke samping
Desain tips
• Sebuah site harus user friendly baik untuk pengguna
lama maupun pengguna baru
• Pakai menu yang bisa dimengerti dan tidak begitu
panjang
• Struktur link hendaknya menggunakan campuran
Narrow Hierarchy dan Wide Hierarchy
• Jangan memaksa pengguna untuk registrasi kalau tidak
berguna
• Dalam setiap halaman yang penting cantumkan hak
cipta dan informasi siapa yang harus hak cipta dan
informasi siapa yang harus dihubungi jika ada
pertanyaan
• Untuk website yang besar (lebih dari 100 hal) sebaiknya
menyediakan fasilitas pencarian kata yang bersifat lokal
– Dapat juga dibuat sitemap
NEXT
• WAP
Download