i
TUGAS AKHIR
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
Oleh : Jimmy Gozali
045314068
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ii A THESIS
Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Teknik Degree
In Informatics Engineering
By: Jimmy Gozali
045314068
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SAINS AND TECHNOLOGY SANATA DHARMA UNIVERSITY
vi
Berubahlah untuk maju, karena perubahan
yang baik mendekatkan kita pada
kesuksesan.
Jangan bergantung pada orang lain,
karena nasib kita ada di tangan kita
sendiri bukan di tangan orang lain.
Pasrahkan hidup kepada Tuhan, karena
Tuhan pasti akan memberikan yang
vii
Internet dan handphone merupakan sesuatu yang umum digunakan pada
zaman sekarang. Dengan adanya internet, user dapat melakukan apa saja yang diinginkan khususnya mengumpulkan gambar menjadi satu kesatuan foto album
online. Begitu juga dengan handphone yang memiliki fitur kamera, user dapat
melakukan pengambilan gambar kapanpun dan dimanapun. Kendala yang dihadapi user adalah apabila memori handphone mulai penuh dan user kesulitan memindahkan gambar ke dalam sebuah komputer. Untuk itu dibutuhkan suatu aplikasi yang dapat mengirimkan gambar dari handphone ke dalam komputer dengan media internet yaitu “Aplikasi Client Foto Album Online”.
“Aplikasi Client Foto Album Online” bertujuan untuk memudahkan para pengguna foto album online mengupload foto menggunakan handphone ke dalam
web “Sistem Foto Album Online”. Aplikasi ini dibuat dengan menggunakan pemrograman Pemrograman J2ME dan PHP & MySQL. Untuk melakukan upload
atau pengiriman foto, user harus register terlebih dahulu dalam web “Sistem Foto Album Online” dengan mendaftarkan sebagai user anggota web tersebut. Selanjutnya proses upload dilakukan melalui media handphone tertentu yang support Java dan bisa akses GPRS (WAP).
Hasil akhir yang diperoleh adalah suatu sistem “Aplikasi Client Foto Album Online” yang dapat berjalan baik menggunakan handphone Sony Ericsson
viii
internet, user can do anything they want to, including to take pictures and submit them to make an online collection. Like wise handphone with camera, user can take pictures anywhere and anytime. The problem is when the memory almost get full and user can’t transfering pictures to a computer. Thats why we need an application which can transfering pictures from handphone to computer with using internet, also called “Aplikasi Client Foto Album Online”.
“Aplikasi Client Foto Album Online” supposed to give an easy way for online photo album users to uploading pictures from their handphone into “Sistem Foto Album Online” site. This application is made using J2ME and PHP & MySQL programming language. For uploading or submit pictures, user have to be registered at “Sistem Foto Album Online” site as a member. Next step, they can do uploading process on their hanphone with supported by Java and GPRS (WAP) connection.
ix
Puji syukur kepada Tuhan Yang Maha Esa atas berkat, rahmat, karunia dan
bimbingan-Nya sehingga penulis dapat menyelesaikan skripsi dengan judul
”Aplikasi Client Foto Album Online”.
Penyusunan skripsi ini tidak terlepas dari bantuan, bimbingan serta dukungan
dari berbagai pihak yang sangat bermanfaat bagi penulis. Maka pada kesempatan ini
penulis mengucapkan banyak terima kasih kepada:
1.
Ir. Greg. Heliarko S.J., S.S., B.S.T., M.A., M.Sc., selaku dekan Fakultas
Teknik Universitas Sanata Dharma.
2.
Agnes Maria Polina, S.Kom., M.Sc., selaku dosen Pembimbing Akademik
dan dosen pembimbing skripsi yang telah membimbing dan memberikan
pengarahan selama penyusunan skripsi.
3.
Para dosen Universitas Sanata Dharma, khususnya dosen jurusan Teknik
Informatika yang telah memberikan bekal pengetahuan kepada penulis.
4.
Pak Bele dan Mas Danang yang telah membantu selama menggunakan
fasilitas lab.
5.
Mas Lilik dan mas Pristo yang telah memberikan inspirasi kepada saya pada
saat menyelesaikan skripsi ini.
6.
Fransindhu Njoo, Dicky, Willy, Aceng, Eka, Maman, Andy, Feri, Adi, Budi,
Tono, Junaidi, Handi, kris terima kasih atas dukungan dan bantuan yang telah
x
terima kasih atas persahabatannya yang masih terjalin selama ini.
Penulis berharap semoga skripsi ini dapat berguna bagi semua pihak pada
umumnya dan bermanfaat bagi mahasiswa/i Teknik Informatika pada khususnya.
Akhir kata penulis menyadari bahwa skripsi ini jauh dari sempurna, untuk itu penulis
mengharapkan kritik dan saran yang membangun. Terima kasih dan God bless you.
Yogyakarta, Januari 2009
xi
Halaman Judul Bahasa Inggris ... ii
Halaman Persetujuan... iii
Halaman Pengesahan ...iv
Halaman Persembahan ...v
Halaman Motto...vi
Abstraksi ... vii
Abstract ... viii
Kata Pengantar ... ix
Daftar Isi... ...xi
Daftar Gambar...xvi
Pernyataan Keaslian Karya ... xix
Bab I PENDAHULUAN...1
1.1 Latar Belakang Masalah...1
1.2 Rumusan Masalah ...3
1.3 Batasan Masalah...3
1.4 Tujuan Penelitian ...4
1.5 Metodologi Penelitian ...4
1.6 Sistematika Penulisan ...7
BAB II LANDASAN TEORI... ...9
xiii
2.2.4 Paket ...29
2.2.5 Hak Akses ...30
2.2.6 Pewarisan(Inheritance) ...31
2.2.7 Poliforfisme(Polymorphism) ...31
2.2.8 Kelas Abstrak ...33
2.2.9 Kelas Objek dan Kelas Class ...33
2.2.10 Interface ...33
2.3 Rekayasa Perangkat Lunak Berorientasi Objek ...34
2.3.1 Use Case Diagram ...34
2.3.2 Activity Diagram ...37
2.3.3 Sequence Diagram ...37
2.3.4 Class Diagram ...38
BAB III ANALISIS DAN DESAIN SISTEM...39
3.1 Analisa Sistem ...39
3.1.1 Gambaran Sistem ...39
3.1.2 Konsep Kerja Sistem ...40
3.1.3 Use Case Diagram...41
3.1.4 Activity Diagram...42
3.1.5 Sequence Diagram ...49
xiv
3.2.2 Perancangan User Interface ... ...55
BAB IV IMPLEMENTASI SISTEM ...63
xv
xvi
Gambar 2.1 Contoh Use Case Diagram ...34
Gambar 2.2 Contoh hubungan Association (gabungan) ...36
Gambar 2.3 Contoh hubungan extend ...36
Gambar 2.4 Contoh hubungan depends on ...36
Gambar 2.5 Entity Object ...37
Gambar 2.6 Interface Object ...38
Gambar 2.7 Control Object ...38
Gambar 3.1 Konsep Kerja Sistem ...40
Gambar 3.2 Use Case Diagram Aplikasi Client Foto Album Online ...41
Gambar 3.3 Activity Diagram Browse Image untuk Proses Upload ...43
Gambar 3.4 Activity Diagram Take Photo untuk Proses Upload ...45
Gambar 3.5 Activity Diagram View ...47
Gambar 3.6 Activity Diagram Login ...48
Gambar 3.7 Sequence Diagram Browse Image untuk Proses Upload ...50
Gambar 3.8 Sequence Diagram Take Photo untuk Proses Upload ...51
Gambar 3.9 Sequence Diagram View...52
Gambar3.10 Sequence Diagram Login ...53
Gambar 3.11 Class Diagram ...54
Gambar 3.12 Desain Tampilan Awal...55
Gambar 3.13 Desain Tampilan Pilihan ...55
xvii
Gambar 3.18 Desain Pesan Interaksi ...58
Gambar 3.19 Desain Pengambilan Gambar ...59
Gambar 3.20 Desain Tampilan Gambar ...60
Gambar 3.21 Desain Form Login ...60
Gambar 3.22 Desain Pesan Interaksi ...60
Gambar 3.23 Desain Login untuk View ...61
Gambar 3.24 Desain Tampilan Utama untuk View ...62
Gambar 4.1 Tampilan Awal Aplikasi ...65
Gambar 4.2 Halaman Tampilan Utama ...66
Gambar 4.3 Halaman Help untuk Tampilan Utama ...67
Gambar 4.4 Halaman Menu Upload ...68
Gambar 4.5 Halaman Help untuk Menu Upload ...69
Gambar 4.6 Halaman Menu Browse Image...70
Gambar 4.7 Halaman Help untuk Menu Browse Image ...71
Gambar 4.8 Tampilan Foto yang sesuai dengan Ketentuan Aplikasi ...72
Gambar 4.9 Peringatan apabila File yang Dipilih bukan Image ...72
Gambar 4.10 Peringatan apabila Ukuran Foto Telalu Besar untuk Ditampilkan ..72
Gambar 4.11 Halaman Menu Take Picture ...75
Gambar 4.12 Halaman Help Menu Take Picture ...78
xviii
Gambar 4.15 Tampilan Pesan Apabila Proses Upload Berhasil ...81
Gambar 4.16 Tampilan Pesan Apabila File yang Diupload sudah ada...81
Gambar 4.17 Tampilan Login untuk View ...87
Gambar 4.18 Tampilan Aplikasi Foto Album Online ...90
1
PENDAHULUAN
1.1. Latar Belakang Masalah
Saat ini kemajuan di bidang internet bukan menjadi hal yang biasa lagi di kalangan umum. Internet sekarang seakan-akan telah menjadi teman hidup yang tidak bisa terlepaskan dari kehidupan sehari-hari. Para pengguna internet dapat melakukan apa saja dengan media internet
tersebut karena media ini hampir dapat menyediakan apa saja yang diinginkan maupun yang dibutuhkan oleh pengguna tersebut. Sebagai contoh dalam pengaksesan file image atau gambar yang ada di internet. Para user dapat mencari file gambar apa saja yang mereka inginkan baik itu gambar artis, animasi, 3D, dan lain sebagainya. Apalagi didukung juga banyaknya forum-forum maupun website sekarang yang menyediakan file
-file gambar apa saja yang diinginkan.
Para user dapat dengan mudah mengumpulkan gambar-gambar yang diinginkan. Masalahnya adalah para user tidak mudah menyimpannya atau mengumpulkannya sebagai satu kesatuan foto album di internet itu sendiri.
Dilain pihak, kemajuan teknologi khususnya dalam bidang mobile
phone berkembang cepat sekali. Sebuah produk handphone yang
diketahui bahwa sekarang ini hampir semua handphone yang dikeluarkan memiliki kamera, karena fitur ini sangat menarik bagi para pengguna
handphone sehingga laku keras di pasaran.
Kadang-kadang pengguna handphone berkamera tidak semuanya bisa secara leluasa menggunakan kamera handphonenya. Hal ini diakibatkan oleh memori dari handphone yang terbatas serta keterbatasan dari pengguna handphone yang tidak semuanya memiliki komputer pribadi sendiri. Apabila pada saat memori handphone mulai penuh tetapi pengguna handphone masih ingin melakukan pengambilan foto dan tidak mau melakukan hapus foto sebelum memindahkan terlebih dahulu file foto yang ada dalam handphone ke media penyimpanan lainnya seperti komputer, maka hal ini akan menjadi kendala bagi pengguna handphone
berkamera meskipun tidak semuanya mengalami kendala tersebut.
Dalam tugas akhir ini, aplikasi yang dibuat penulis telah didukung oleh web yang telah dibuat oleh penulis lain dan web inilah yang nantinya menerima dan menyimpan foto yang telah diupload oleh aplikasi handphone.
Dari latar belakang itulah maka penulis tertarik untuk melanjutkan mengembangkan aplikasi client foto album online dengan handphone menggunakan pemrograman Java 2 Micro Edition (J2ME),PHP dan
Dengan adanya aplikasi ini, user dapat dengan mudah mengirimkan atau mengupload foto melalui melalui handphone ke web yang sudah dibuat.
1.2. Rumusan Masalah
Beberapa rumusan masalah yang muncul dalam pembuatan aplikasi ini adalah sebagai berikut :
1. Bagaimana mengembangkan aplikasi client untuk mengupload foto ke “Sistem Foto Album Online” dengan menggunakan pemrograman
J2ME?
2. Seberapa jauh aplikasi ini dapat dijalankan di berbagai handphone
(Nokia N-70, Sony Ericsson Z550i, Sony Ericsson K810i)?
1.3. Batasan Masalah
Beberapa batasan masalah dalam pembuatan aplikasi ini adalah sebagai berikut :
1. Sistem yang dikembangkan adalah aplikasi client untuk upload foto yang dijalankan atau running menggunakan mobile phone.
2. Tidak mengembangkan web server “Sistem Foto Album Online”. 3. Karakteristik “Aplikasi Client Foto Album Online” yaitu:
a. File gambar yang dapat diupload bertipe JPG.
c. File foto yang diupload mempunyai default kategori pribadi atau private.
d. Aplikasi yang dibuat ini menggunakan pemrograman Java 2
Micro Edition (J2ME), serta pemrograman PHP dan MySQL.
e. Pada penelitian ini tidak dibahas mengenai biaya pembayaran maupun biaya hosting.
4. Aplikasi ini diuji coba pada handphone Nokia N-70, Sony Ericsson
Z550i, dan Sony Ericsson K810i.
1.4. Tujuan Penelitian
Tujuan dari penelitian ini adalah :
Membuat suatu aplikasi yang dapat mendukung dan membantu para pengguna handphone berkamera untuk mengupload foto secara online.
1.5. Metodologi Penelitian
Dalam penyusunan tugas akhir ini ada beberapa langkah yang digunakan diantaranya
1. Studi Literatur
2. Melakukan pengembangan Perangkat Lunak dengan metode Rekasaya Perangkat Lunak berorientasi objek yaitu :
a) Aktivitas Analisis Objek
i. Menganalisa kebutuhan sistem dengan menggunakan use
case diagram.
ii. Memodelkan alur kerja sebuah proses dan urutan aktivitas dalam sebuah proses ke dalam bentuk activity diagram dan tetap mengacu kepada use casediagram.
iii. Menjelaskan interaksi objek yang disusun dalam suatu urutan waktu dengan menggunakan sequence diagram. iv. Memasukkan objek-objek yang ada ke dalam suatu class
diagram.
b) Perancangan Berorientasi Objek
Merupakan langkah multiproses yang memusatkan kerja pada perancangan sistem secara umum seperti perancangan user interface.
c) Pemrograman Berorientasi Objek
d) Pengujian Berorientasi Objek
Pengujian berorientasi objek dimaksudkan untuk menguji apakah hasil yang telah dibuat sudah sesuai dengan rancangan yang diinginkan dan mencari segala kesalahan yang mungkin terjadi. Proses pengujian yang dilakukan yaitu:
i. Memindahkan file .jar atau .jad ke dari komputer ke
handphone yang supportjava dan bisa koneksi GPRS.
ii. Melakukan penginstalan file .jar atau .jad di
handphone.
iii. Menjalankan “Aplikasi Client Foto Album Online” dan mencoba mengupload sebuah foto ke web “Sistem Foto Album Online”.
iv. Ulangi langkah 1-3 coba dengan menggunakan
handphone Nokia N-70, Sony Ericsson Z550i, dan
Sony Ericsson K810i.
1.6. Sistematika Penulisan
Sistematika penulisan dalam karya ini adalah :
BAB I PENDAHULUAN
Berisikan latar belakang masalah, rumusan masalah, batasan masalah, tujuan penelitian, metodologi penelitian, dan sistematika penelitian dari karya ini.
BAB II LANDASAN TEORI
Berisikan teori-teori yang dipakai dalam penyusunan Tugas Akhir ini, meliputi Java 2 Micro Edition (J2ME), Pemrograman Berorientasi Objek, Rekayasa Perangkat Lunak Berorientasi Objek.
BAB III ANALISA DAN PERANCANGAN SISTEM
Berisikan analisa sistem yang akan dibuat, pengidentifikasian masalah, cara mengatasi masalah, serta perancangan disain proses, dan userinterface.
BAB IV IMPLEMENTASI SISTEM
Berisikan implementasi dari analisa dan perancangan yang ada pada bab III.
BAB V ANALISA HASIL IMPLEMENTASI
BAB VI PENUTUP
9
LANDASAN TEORI
Pada Bab II ini berisi teori-teori yang mendukung untuk implementasi sistem. Ada 3 materi yang ditulis di bab II ini yaitu Java 2 Micro Edition (J2ME) yang berisi fungsi-fungsi dari J2ME itu sendiri, pemrograman berorientasi objek yang berisi teknik-teknik dan prinsip-prinsip menggunakan objek dalam suatu pemrograman, dan rekayasa perangkat lunak berorientasi objek yang berisi cara-cara membuat perangkat lunak dengan metode berorientasi objek dan keunggulan yang dimiliki.
2.1. Java 2 Micro Edition (J2ME) 2.1.1. Java 2 Micro Edition
Java 2 Micro Editon (J2ME) merupakan subset dari J2SE yang ditujukan untuk implementasi pada peralatan embedded system dan
handheld yang tidak mampu mendukung secara penuh implementasi
menggunakan J2SE. Embedded system adalah produk-produk dengan komputer mikro berada di dalamnya, namun aplikasi yang bisa dimanfaatkan dari peralatan tersebut sangatlah spesifik.
2.1.1.1. Jenis Aplikasi J2ME
Saat ini terdapat dua jenis aplikasi dari J2ME, yaitu :
1. Walled garden application, yaitu aplikasi yang berdiri sendiri atau
standalone yang berjalan pada handphone tanpa perlu mengakses
sumber data eksternal melalui jaringan pembawa atau carrier network. Contoh dari aplikasi ini adalah kalkulator atau single player games. 2. Network aware application atau aplikasi yang berinteraksi dengan jaringan. Tidak seperti aplikasi yang pertama, aplikasi ini memiliki kemampuan untuk mengakses sumber data eksternal. Contohnya aplikasi email yang berada di handphone, aplikasi ini untuk mendapatkan kembali data alamat-alamat yang tersimpan melalui jaringan dan pengiriman email berbagai alamat melalui jaringan data.
2.1.1.2. J2MEConfiguration
J2ME dapat dibagi dalam configuration dan profile. J2ME
configuration adalah spesifikasi yang secara detail menjelaskan tentang
sebuah virtual machine dan kumpulan API-API dasar yang dapat digunakan dalam kelas-kelas tertentu dari sebuah peralatan. J2ME
configuration mendefinisikan lingkungan kerja J2ME runtime. Oleh
karena setiap handheld devices memiliki fitur-fitur yang berbeda-beda,
J2ME configuration ini dirancang untuk menyediakan library standart
Ada 2 kategori J2ME configuration saat ini, yaitu :
a. Connected Limited Device Configuration (CLDC)
Adalah konfigurasi untuk peralatan wireless dengan kapasitas memori yang kecil dan koneksi jaringan yang tidak tetap atau terputus-putus seperti pager, handphone, dan Personal Digital Assistants (PDA). Salah satu spesifikasi profilenya adalah mobile information device
profile. Kategori yang digolongkan dalam CLDC dapat digunakan pada
handphone seperti Nokia, Samsung Java Phone, Motorola i85s,
Organizer atau PDA seperti PALM, Pocket PC, dan two way pagers.
Memori yang dipakai berukuran 160-512 kilobytes.
b. Connected Device Configuration (CDC)
CDC digunakan untuk peralatan dengan kapasitas memori yang lebih besar dengan koneksi jaringan yang lebih kokoh contohnya pada set-top
boxes dan peralatan internet. Konfigurasi ini diperuntukan bagi peralatan
wireless dengan resource memori yang lebih besar paling sedikit 2
megabytes, konektivitas ke beberapa tipe jaringan.
2.1.1.3. J2ME Profile
J2ME Profile menyediakan implementasi-implementasi tambahan
Ada 5 kategori J2ME Profile saat ini, yaitu (Antonius Aditya Hartanto,2003) :
a. Mobile Information Device Profile (MIDP) yang menyediakan
library-library Java untuk implementasi dasar antarmuka (GUI),
implementasi jaringan (networking), database, dan timer.
b. FoundationProfile (FP)
c. PersonalProfile
d. RMIProfile
e. PersonalDigitalAssistanceProfile
2.1.1.4. Keuntungan Penggunaan J2ME Pada Peralatan Wireless
Keuntungan dari penggunaan J2ME ini akan mengurangi latensi selama koneksi antara komunikasi perangkat keras di sisi user dengan
server, tampilan di layar perangkat komunikasi user semakin dipercaya
dengan animasi-animasi grafis yang menarik, interaksi user dengan sistem semakin meningkat, penggunaan bahasa markup tidak dibatasi dalam hal tampilan ke pengguna, aplikasi berbasis browser dapat bekerja dengan baik pada daerah yang tidak terjangkau dengan sinyal provider
layanan komunikasi bergerak.
2.1.2 J2ME Wireless Toolkit
Setelah instalasi J2ME telah berhasil, maka untuk pengembangan aplikasi wireless akan banyak berurusan dengan emulator dan tidak akan berurusan langsung dengan perangkatnya. Menudefaultdeviceselection
digunakan untuk memilih default emulator yang akan digunakan saat mencoba aplikasi wireless Java nantinya. Masing-masing emulator
memiliki karakteristik tersendiri, namun memiliki fitur standar sebagai sebuah handheld. Sehingga akan dapat menghasilkan hasil yang lebih baik untuk banyak handheld dengan memilih emulator yang sesuai.
2.1.2.2. Menu Ktoolbar
Menu ini merupakan menu utama dari aplikasi untuk pengembangan Java MIDP atau dikenal MIDlet. Ktoolbar merupakan lingkungan pengembangan minimal yang disediakan oleh J2ME
WirelessToolkit untuk pengembangan MIDlet.
2.1.3. Aplikasi MIDlet
2.1.3.1. Arsitektur Aplikasi MIDlet
Dalam pengembangan aplikasi MIDlet, proyek yang dibuat terdiri atas direktori-direktori berikut :
1. Src : berisi file-file kode Java
2. Bin : berisi file-file JAD, JAR, dan manifest
3. Lib : berisi file-file kelas Java yang diperlukan dalam format JAR
4. Res : berisi file-file resource
Istilah-istilah penting dalam daur hidup sebuah MIDlet yaitu :
a. ApplicationManagementsoftware (AMS)
AMS ini merupakan software atau program bawaan yang ada dalam perangkat handheld tersebut yang mengatur manajemen MIDlet yang ada.
b. MIDlet
Merupakan aplikasi yang dijalankan pada sebuah perangkat
handheld. MIDlet tidak berinteraksi langsung dengan hardware dari
handphone, Palm, atau perangkat handheld lain, melainkan berinteraksi
melalui application management software. AMS inilah yang akan menerima sinyal dari MIDlet bahwa MIDlet akan dijalankan atau berhenti.
c. MIDletstates
Merupakan status dari sebuah MIDlet. Ada 3 status MIDlet yaitu :
a.) Paused
Status ini terjadi jika MIDlet selesai diinisialisasikan dan tidak melakukan aksi apapun, status ini tidak boleh sedang mengunci sebuah file untuk ditulis yang menyebabkan proses lain tidak bisa menulis ke file tersebut.
Status MIDlet merupakan Paused apabila :
2. Dari status Active, kemudian berhasil memanggil fungsi
MIDlet.pauseApp() dan MIDlet.notifyPaused()
3. Dari status Active, ketika akan start() terjadi kesalahan berupa
exception:MIDletStateChangeException
b.) Active
Status ini terjadi jika MIDlet sedang aktif/berjalan dengan normal, yaitu setelah memanggil fungsi MIDlet.startApp().
c.) Destroyed
Status ini terjadi jika MIDlet berhenti berjalan (exit), sehingga seluruh sumber daya yang digunakan akan dibebaskan. Status ini berhasil jika dilakukan pemanggilan fungsi MIDlet.destroyApp() atau
MIDlet.notifyDestroyed().
2.1.3.2. Eksekusi Sebuah MIDlet
Urutan eksekusi sebuah MIDlet adalah sebagai berikut :
1. AMS (Application Management Software) menginisialisasi sebuah
objek MIDlet, sehingga MIDlet berada pada status Paused.
2. Ketika AMS memutuskan bahwa MIDlet sudah waktunya dijalankan, maka AMS memanggil fungsi MIDlet.startApp() sehingga MIDlet akan mulai aktif berfungsi.
3. Ketika AMS memutuskan bahwa MIDlet harus dinonaktifkan sementara, maka AMS akan memanggil fungsi MIDlet.pauseApp()
Ketika AMS memutuskan bahwa MIDlet harus dinonaktifkan selamanya, maka AMS akan memanggil fungsi MIDlet.destroyApp()
sehingga alokasi memori yang digunakan oleh MIDlet yang bersangkutan akan dibersihkan.
2.1.4. Pemrograman Graphic User Interface (GUI) pada MIDlet
Perangkat handheld memiliki teknik pemrograman GUI yang berbeda dengan teknik pemrograman yang umumnya digunakan pada aplikasi pada komputer. Fungsi-fungsi untuk GUI akan ditangani oleh
MIDP (Mobile Information Device Profile).
2.1.4.1. Jenis Fungsi-Fungsi API pada MIDP untuk GUI
Ada 2 level yang disediakan oleh MIDP untuk pembuatan GUI
yaitu :
1. Highlevel : aplikasi MIDlet akan lebih portabel dengan banyak
perangkat handheld yang berbeda. Jadi aplikasi MIDlet dijalankan dengan handheld lain maka hasilnya akan sama. Kelas-kelas untuk manajemen pemrograman ini akan diturunkan dari
javax.microedition.lcdui.Screen.
2. Lowlevel : pada level ini akan didapatkan fungsionalitas yang lebih
spesifik ke jenis handheld yang digunakan. Jadi apabila digunakan
handheld yang tidak sesuai dengan aplikasi tersebut maka aplikasi tidak
ini diimplementasikan oleh kelas javax.microedition.lcdui.Canvas dan
javax.microedition.lcdui.Graphics.
2.1.4.2. Model Pemrograman GUI pada MIDP
2.1.4.2.1. Bekerja dengan Screen
Ada 3 tipe screen pada MIDlet yaitu :
1. Complex Screen Object
Tipe ini mengatur komponen-komponen GUI yang sudah tidak bisa ditambahi oleh komponen screen yang lain. Contohnya screen yang berisi objek ListBox untuk meminta masukan user, tidak akan bisa diisi dengan objek lain.
2. Generic Screen Object
Tipe ini mengatur komponen-komponen GUI Form, yang bisa ditambahi komponen screen yang lain.
3. Low Level Screen Object
Tipe ini digunakan oleh subkelas javax.microedition.lcdui.Graphics
dan javax.microedition.lcdui.Screen.
Objek screen memiliki 4 jenis objek turunan yang umum digunakan yakni TextBox, Alert, Choicegroup, dan Form. Kelas
javax.microedition.lcdui.Screen merupakan kelas abstrak dengan dua
karakteristik yaitu objek screen bisa memiliki title dan ticker.
Ticker merupakan teks yang berjalan pada bagian atas layar aplikasi MIDlet. Sebuah ticker dapat ditempatkan pada objek-objek turunan kelas Screen. Fungsi-fungsi yang penting dalam kelas Ticker
adalah :
1. Konstruktor yang dipakai untuk menginisialisasi objek Ticker Public Ticker(String str) {
Syncronized(Display.LCDUILock) {
setupText(str);
}
}
2. Parameter str merupakan teks yang akan ditampilkan Ticker p = new Ticker(“Your Text”)
3. Public void setString(String str);
Untuk menetapkan teks yang akan ditampilkan sebagai ticker.
4. Public String getString();
Menghasilkan teks yang ditampilkan oleh objek Ticker yang sedang aktif pada objek screen.
2.1.4.2.3. TextBox
Kelas textbox merupakan kelas turunan dari kelas abstrak
javax.microedition.lcdui.Screen. TextBox menyediakan media untuk
Public TextBox(String title, String text, int maxSize, int constraints)
Parameter-parameternya sebagai berikut :
1. String title : untuk memberikan title pada Screen.
2. String text : untuk memberikan nilai awal pada TextBox.
3. Int maxSize : untuk memberikan batasan maksimal jumlah karakter
yang bisa diterima oleh TextBox.
4. Int constraints : nilai-nilai yang bisa digunakan dalam parameter
ini adalah :
Textfield.ANY : bisa memasukkan sembarang karakter teks
Textfield.EMAILADDR : bisa memasukkan alamat email
Textfield.NUMERIC : bisa memasukkan teks berupa angka saja
Textfield.PHONENUMBER : bisa memasukkan teks yang berupa
nomor telepon
Textfield.URL : bisa memasukkan teks berupa alamat web atau
URL lain
Textfield.PASSWORD : bisa memasukkan password dengan
karakter tertentu (‘*’)
2.1.4.3. Bekerja dengan Form
Bekerja dengan form memungkinkan untuk menampilkan beberapa komponen GUI semacam daftar pilihan, masukan teks (textbox) dalam suatu layar. Form diimplementasikan oleh kelas
komponen-komponen yang disebut item dalam suatu layar. Item yang dimaksud adalah textfield, images, date fields, gauge, dan choice groups. Ada 2 konstruktor form yang digunakan :
Public Form(String title) menyediakan sebuah form dengan judul
form seperti parameter title yang diberikan.
Public Form(String title, Item[] items) mendefinisikan item-item
apa saja yang akan ada di form yang dibuat.
2.1.4.3.1. Kelas Item (javax.microedition.lcdui.Item)
Komponen-komponen yang bisa diletakkan dalam sebuah form
merupakan komponen yang memiliki kelas yang merupakan kelas turunan dari kelas abstrak javax.microedition.lcdui.Item.
2.1.4.4. Graphics 2.1.4.4.1. Teks
Setelah menetapkan warna sesuai yang diinginkan, maka akan ditambahkan teks pada layar dengan fungsi drawString() sebagai berikut :
Public void drawString(String str, int x, int y, int anchor)
Menambahkan sebuah string pada posisi x dan y, dengan aturan posisi sesuai nilai anchor. Nilai anchor merupakan gabungan dari konstanta statik pada kelas javax.microedition.lcdui.Graphics :
BASELINE : meletakkan sebuah teks rata tengah
BOTTOM : meletakkan sebuah teks rata bawah dengan
nilai-nilai berikut ini :
LEFT : meletakkan sebuah teks rata kiri
CENTER : meletakkan sebuah teks rata tengah secara
horisontal
RIGHT : meletakkan sebuah teks rata kanan
Contohnya untuk menulis teks “Hello World” pada koordinat (0,0) yang posisinya akan rata kiri dan pada posisi atas digunakan ;
drawString(“Hello Worls”, 0,0, g.LEFT|g.TOP);
Fungsi-fungsi yaitu getHeight() dan stringWidth() memberikan informasi tentang tinggi font dan lebar string.
Fungsi drawChar() bisa menuliskan sebuah karakter dengan :
Public void drawChar(char c, str, int x, int y, int anchor);
Menambahkan sebuah karakter pada posisi x dan y, dengan aturan posisi sesuai nilai anchor. Nilai anchor ini sama dengan aturan nilai
anchor pada fungsi drawString().
2.1.4.5. J2ME Untuk Koneksi Internet Dengan Protokol HTTP
Interface javax.microedition.io.HTTPConnection digunakan untuk
interkoneksi antara J2ME pada ponsel dengan sumber daya internet
closed. Sedangkan metode yang digunakan untuk mengakses web antara lain : GET, POST, dan HEAD.
Beberapa konstanta dalam javax.microedition.io.HTTPConnection
yang berkaitan dengan kode respon HTTP oleh webserver ke klien web
antara lain :
1. public static final int HTTP_OK
Kode status 200 merupakan status bahwa permintaan layanan sukses diproses.
2. public static final int HTTP_CREATED
Kode status 201 merupakan status bahwa permintaan layanan sukses diproses dan sumber daya yang diminta berhasil dibuat.
3. public static int HTTP_ACCEPTED
Kode status 202 merupakan status bahwa informasi meta pada header respon HTTP bukan merupakan definitive set sebagaimana pada server asal.
4. public static int HTTP_NO_CONTENT
Kode status 204 merupakan status bahwa permintaan layanan berhasil diproses tapi tidak ada data body pada respon HTTP yang diberikan ke klien web.
5. public static int HTTP_BAD_REQUEST
Kode status 400 merupakan status gagal proses karena format permintaan layanan HTTP salah sintaksnya.
Kode status 404 merupakan status gagal proses karena sumber daya yang diinginkan tidak ditemukan.
7. public static int HTTP_INTERNAL_ERROR
Kode status 500 ini diberikan jika terjadi gagal proses karena ada kesalahan sistem pada web server.
8. public static int HTTP_GATEWAY_TIMEOUT
Kode status 504 ini diberikan jika web server bertindak sebagai
proxyserver atau gatewayHTTP dan gagal mendapatkan respon setelah
menunggu beberapa waktu tertentu dari server web asli yang akan diakses.
Urutan langkah-langkah untuk melakukan transaksi berbasis HTTP
dengan J2ME adalah sebagai berikut : a. Melakukan setup koneksi :
Hal yang dilakukan dengan membuat sebuah interface
javax.microedition.io.HTTPConnection sebagai berikut :
HTTPConnection c;
String url = HTTP://www.kayong.or.id;
c = (HTTPConnection)Connector.open(url);
Jika koneksi berhasil, akan dihasilkan sebuah interfaceHTTPConnection
yang siap dipakai untuk melakukan transaksi HTTP. Jika tidak, akan dilempar beberapa exception berikut :
Exception ini menunjukkan bahwa parameter yang dilewatkan pada
Connector.open() tidak valid. Misalnya, parameter null dimasukan
pada Connector.open().
2. ConnectionNotFoundException
Exception ini didefinisikan pada javax.microedition.io dan
menunjukkan bahwa koneksi gagal dilakukan karena protokol pada
URL yang diberikan tidak dikenal atau sumber daya yang diakses tidak ditemukan.
3. IOException
Exception ini merupakan standar exception yang menunjukkan
berbagai kesalahan proses I/O-input/output karena kesalahan sistem atau kesalahan lain yang bisa di-trace kemudian dengan fungsi
printStackTrace().
Dalam keadaan status setup, kita hanya berhak menggunakan fungsi :
1. public void setRequestMethod(String methodname)
2. public void setRequestProperty(String key, String Value)
Fungsi setRequestMethod() digunakan untuk menentukan kita akan menggunakan metode apa untuk melakukan permintaan HTTP, apakah
HEAD, POST, atau GET. Secara default metode yang digunakan adalah
GET, jadi tanpa melakukan pemanggilan secara eksplisit terhadap fungsi ini otomatis aplikasi akan menggunakan metode GET untuk transaksi
c.setRequestMethod()(HTTPConnection.GET); c.setRequestMethod()(HTTPConnection.POST);
c setRequestMethod()(HTTPConnection.HEAD);
Jika web server mendukung metode yang lain, bisa pula digunakan
PROPFIND yang umum digunakan untuk DAVwebpublishing :
c.setRequestMethod()(“PROPFIND”);
Pada penjelasan protokol HTTP, telah didefinisikan beberapa properti pada header permintaan HTTP dari klien ke web server, misalnya
“Accept”, “User-Agent”, “Host”, dan sebagainya. Properti ini ditetapkan
menggunakan fungsi setRequestProperty() semacam ini :
c.setRequestMethod()(“Accept”,”text/plain; */*”);
c setRequestMethod()(“User-Agent”,”eBdesk Mobile App”);
c setRequestMethod()(“Host”,www.ebdesk.com);
Setelah lengkap menentukan properti dan metode permintaan akses
HTTP, maka kita siap untuk memasuki transaksi baca tulis dengan web
server, dengan status connected.
b. Melakukan transaksi baca tulis dengan webserver.
Ketika terjadi transaksi baca tulis dengan web server status
connected terjadi ketika dilakukan pemanggilan fungsi berikut dari
interfaceHTTPConnection :
1. Public void InputStream openInputStream() throws IOException
2. Public void OutputStream openOutputStream() throws IOException
4. Public String getType()
5. Public String getEncoding()
6. Public String getHeaderField(int n) throws IOException
7. Public int getHeaderFieldInt(String name, int def) throws
IOException
8. Public long getHeaderFieldDate(String name, int def) throws
IOException
9. Public int getResponseCode() throws IOException
10.Public String getResponseMessage() throws IOException
c. Melakukan penutupan transaksi dengan fungsi close() setelah selesai melakukan proses baca tulis dengan webserver.
2.2. Pemrograman Berorientasi Objek
2.2.1 Kelas
Setiap program java, agar bisa berjalan, minimal memiliki satu buah kelas. Oleh karena itulah Java sering disebut sebagai bahasa pemrograman berorientasi objek murni. Kriteria-kriteria untuk melahirkan struktur kelas, yaitu:
1) Field data
Field data, menyatakan informasi yang dibawa kelas. Kita dapat menambahkan atribut pada field data dengan menambahkan dua kata kunci, yaitu final dan static atau kombinasi keduanya, di antara atribut akses dan tipe data. Final berarti field data itu bernilai tetap, tidak dapat diubah-ubah. Sedangkan atribut static berarti hanya ada satu copy dari variabel/field data itu dalam memori, yaitu dalam kelas. Variabel ini seperti ini disebut sebagai variabel kelas, karena hanya dimiliki oleh kelas (ingat jumlahnya hanya satu dalam memori). Setiap objek dari kelas hanya dapat mengakses variabel ini dengan merujuknya, tidak memiliki kopiannya.
2) Method
3) Constructor
Construtor, digunakan untuk menciptakan objek dari kelas. Jika Anda tidak mendefinisikan konstruktor untuk kelas yang Anda buat, kompiler akan menggunakan konstruktor default, yang tidak melakukan apapun (misalnya menginisialisasi nilai field) ketika Anda menginstansiasikan objek. Konstruktor mirip dengan method (menerima parameter, memiliki blok, dapat dioverload) namun ia memiliki ciri khusus, yaitu:
a. Namanya harus sama dengan nama kelas. b. Ia tidak mengembalikan nilai/tipe tertentu,
bahkan void sekalipun.
Dalam body setiap method dan konstruktor terdapat suatu variabel implisit, yaitu variabel yang tidak nampak dalam definisi kelas, tetapi sebenarnya ada. Variabel ini adalah this, digunakan oleh kompiler untuk merujuk objek yang memanggil method atau konstruktor itu. Dalam Java kita diperbolehkan untuk melakukan deklarasi dan definisi ulang suatu method yang sudah ada (sudah dideklarasikan dan didefinisikan). Hal ini dapat dilakukan dengan syarat sebagai berikut:
a. Jumlah parameter tidak sama atau sama tetapi dengan susunan tipe parameter yang berbeda.(memungkinkan kompiler untuk menentukan dengan pasti method mana yang dipanggil oleh objek)
2.2.2 Overloading Method
Keuntungan dari overload adalah kita dapat menggunakan satu nama untuk beberapa method yang operasinya berbeda namun masih dalam satu ‘tema’. Kata kunci static tidak hanya dapat diterapkan pada field atau variabel saja, tapi juga pada method dan suatu blok kode. Karena method dipanggil oleh objek dari kelas di mana method itu didefinisikan, jadi harus ada objek yang memanggil. Namun method yang memiliki atribut static dapat dipanggil tanpa lewat objek, tetapi langsung dari kelas. 2.2.3 Method Main
Method main merupakan method khusus dalam kelas yang menjadi tempat berjalannya suatu program java. Oleh karena itu, dalam satu program Java pasti hanya ada satu kelas yang memiliki method main ini. Atribut method main adalah:
a. public sehingga dapat diakses dari luar kelas.
b. static sehingga dapat dipanggil meski objeknya tidak diinstansiasi.
c. void karena main tidak mengembalikan nilai apapun. Method main menerima argumen berupa array of string, yaitu String [] args.
2.2.4 Paket
2.2.5 Hak Akses
Sisi penting lain dari pemrograman berorientasi objek adalah pengaturan pengaksesan data. Oleh karena itu hak akses (kata kunci public, protected, private) menjadi hal yang benar-benar penting untuk Anda pahami. Berikut adalah saran-saran dari Ivon Horton untuk pemberian hak akses pada komponen-komponen kelas:
a. Untuk kelas dalam suatu paket yang tidak publik (sehingga tidak dapat diakses dari luar paket), Anda dapat merasa aman untuk mengizinkan kelas yang masih dalam satu paket untuk mengakses data dari kelas ini.
b. Jika Anda memiliki data yang bersifat final (tidak dapat diubah-ubah nilainya, jika data itu berupa field atau tidak dapat diturunkan jika data ini berupa kelas) dan data ini kemungkinan sangat berguna jika diakses dari luar kelas, Anda dapat mendeklarasikannya dengan public.
2.2.6 Pewarisan (Inheritance)
Salah satu konsep terpenting dalam pemrograman berorientasi objek adalah konsep pewarisan, di mana Anda menciptakan kelas baru dari satu atau lebih kelas yang sudah ada. Konsekuensinya adalah terjadi pewarisan field/method tertentu dari kelas yang sudah ada sebelumnya (superclass/baseclass) kepada kelas yang baru (subclass). Oleh karena itu kelas yang baru/kelas turunan akan sangat mirip dengan kelas induknya sehingga jika anda ingin kelas turunan berbeda dengan induknya, Anda harus menambahkan field atau method baru pada kelas ini. Anda dapat membuat kelas turunan dengan kata kunci extends. Adanya sejumlah hak akses menyebabkan munculnya sejumlah aturan dalam pewarisan data. Data pada kelas induk yang memiliki atribut public dan protected akan diwariskan dan akhirnya dapat diakses oleh kelas turunan/kelas anak. Sedangkan data yang beratribut private tidak akan diwariskan. Adapun data-data tanpa atribut pengaksesan akan diwariskan pada kelas-kelas turunan yang berada dalam satu paket.
2.2.7 Poliforfisme (Polymorphism)
Anda harus mendefinisikan method yang akan dipanggil ini dalam kelas induk. Beberapa syarat yang harus dipenuhi agar operasi polymorphism dapat berlangsung adalah:
a. Method dari kelas turunan yang akan dieksekusi, dipanggil oleh objek dari kelas induk.
b. Method ini harus merupakan member dari kelas induk. c. Nama method di kelas induk harus sama dengan yang
ada di kelas turunan.
d. Tipe yang dikembalikan juga harus sama.
e. Atribut akses dari method di kelas turunan tidak boleh lebih terbatas dari yang ada di kelas induk.
Oleh karena itu, langkah-langkah untuk membuat polymorphism adalah: a. Deklarasikan method yang akan di-polymorphism-kan
dalam body kelas induk.
b. Definisikan method ini dalam kelas induk sebagai method yang tidak melakukan apapun (hanya terdiri dari ‘{‘ dan ‘}’).
c. Dalam tiap kelas turunan dari kelas induk, definisikan ulang method tadi dengan memastikan atribut aksesnya tidak lebih terbatas dari atributnya yang ada di kelas induk.
2.2.8 Kelas Abstrak
Kelas abstrak adalah kelas yang terdiri dari satu atau lebih method yang dideklarasikan namun tidak didefinisikan. Method seperti ini disebut method abstrak.
2.2.9 Kelas Objek dan kelas Class
Setiap kelas dalam program Java adalah kelas turunan dari kelas Object. Oleh karena itu variabel dari tipe Object dapat menangani objek dari kelas apapun. Hal ini akan sangat berguna jika Anda akan mengenali tipe suatu objek. Kelas object juga memiliki beberapa method, dua di antaranya sangat penting untuk diketahui, yaitu:
a. toString() berfungsi untuk mengembalikan string yang berupa nama kelas dari objek yang memanggil method ini diikuti tan ‘@’ dan representasi heksadesimal dari objek ini dalam memori.
b. getClass() berfungsi untuk mengembalikan objek dari tipe Class.
Tipe Class memiliki beberapa method public, di antaranya adalah getName() yang akan mengembalikan sebuah string yang merepresentasikan nama kelas dari mana objek itu berasal.
2.2.10 Interface
Proses pemakaian atau pendefinisian ini disebut sebagai implementasi. Konstanta/nilai pada interface secara default bersifat static, final, dan public, sedangkan method-nya bersifat public dan abstract (karena harus didefinisikan lagi dalam kelas yang mengimplementasi interface ini).
2.3 Rekayasa Perangkat Lunak Berorientasi Objek
2.3.1 Use Case Diagram
Use case diagram adalah diagram yang menggambarkan interaksi
antara sistem dengan sistem eksternal dan pengguna. Dengan kata lain, secara grafis menggambarkan siapa yang akan menggunakan sistem dan dengan cara apa pengguna mengharapkan untuk berinteraksi dengan sistem. Contoh use case diagram dapat ditunjukkan pada gambar di bawah ini
Pada use case ada 2 hal yang menjadi faktor penting yaitu :
I. Actor
Actor adalah segala sesuatu yang perlu berinteraksi dengan sistem untuk pertukaran informasi. Ada 4 macam tipe actor/pelaku :
i. Primarybusiness actor (pelaku bisnis utama)
Adalah stakeholder yang terutama mendapatkan keuntungan dari pelaksanaan use case diagram.
ii. Primary system actor (pelaku sistem utama)
Adalah stakeholder yang secara langsung berhadapan dengan sistem untuk menginisiasi atau memicu kegiatan atau sistem.
iii. External server actor (pelaku server eksternal)
Adalah stakeholder yang melayani kebutuhan pengguna
use-case.
iv. External receiving actor (pelaku penerima eksternal)
Adalah stakeholder yang bukan pelaku utama, tapi meneriam nilai yang terukur atau teramati dari use-case.
II. Relationship (hubungan)
Ada beberapa jenis hubungan pada use case diagram yaitu:
i. Association (gabungan) : hubungan antara pelaku/aktor dengan use case di mana terjadi interaksi di antara mereka.
ii. Extend : hubungan antara extension use case dan use case
yang diperluas.
iii. Depends on : hubungan untuk mengetahui use case mana yang memiliki ketergantungan pada use case lain. Gambar 2.2 Contoh hubungan association(gabungan)
2.3.2 Activity Diagram
Activity diagram adalah sebuah diagram yang dapat digunakan
untuk menggambarkan secara grafis aliran proses bisnis, langkah-langkah sebuah use case atau logika behaviour (metode) object. Diagram ini serupa dengan flowchart dimana secara grafis diagram ini menggambarkan aliran sekuensial dari kegiatan entah itu proses bisnis atau sebuah use case. Diagram ini berbeda dari flowchart di mana diagram ini menyediakan sebuah mekanisme untuk menggambarkan kegiatan yang tampak secara paralel. Karena itu, diagram ini sangat berguna untuk memodelkan kegiatan yang akan dilakukan saat sebuah operasi dieksekusi.
2.3.3 Sequence Diagram
Sequence diagram adalah sebuah diagram yang dapat digunakan
untuk menjelaskan interaksi objek yang disusun dalam suatu urutan waktu. Dalam sequence diagram ada beberapa macam objek :
1) Entiy Object : sebuah objek yang berisi informasi yang
berhubungan dengan bisnis yang bersifat menetap dan disimpan pada sebuah database.
2) Interface Object : sebuah objek yang menyediakan peralatan di mana pengguna dapat mengantarmuka dengan sistem tersebut.
3) Control Object : objek yang berisi logika aplikasi yang bukan
merupakan tanggung jawab entity objek. Contoh logika tersebut adalah aturan dan perhitungan bisnis yang melibatkan banyak objek. Control object mengkoordinasi pesan antara objek antarmuka objek dan objek entiti dan sekuensi di mana pesan terjadi.
2.3.4 Class Diagram
Class diagram adalah gambar grafis mengenai struktur objek statis
dari suatu sistem, menunjukkan kelas-kelas objek yang menyusun sebuah sistem dan juga hubungan antara kelas objek tersebut. Pada class diagram
akan menyisipkan multiplicity, hubungan generalisasi / spesialisasi, dan hubungan agregasi.
Gambar 2.6 Interface Object
39
ANALISA DAN DESAIN SISTEM
Pada Bab III ini membahas mengenai analisa yang dibutuhkan untuk perancangan sistem agar memudahkan dalam implementasi sistem. Pokok pembahasan dari bab III adalah :gambaran sistem, konsep kerja sistem, use case
diagram, activity diagram, sequence diagram, class diagram, perancangan User
Interface.
3.1. Analisa Sistem 3.1.1 Gambaran Sistem
Sistem aplikasi untuk client ini digunakan untuk mengupload file
webserver melalui handphone.
Jadi, gambaran sistem ini adalah :
1. User menginstall aplikasi ke dalam handphone yang berkamera
(optional) dan support java.
2. Handphone yang dipakai adalah handphone yang terdapat fasilitas
GPRS sehingga aplikasi ini dapat terhubung dengan internet untuk melakukan uploadfile ke webserver.
alui handphone.
Jadi, gambaran sistem ini adalah :
3. User menginstall aplikasi ke dalam handphone yang berkamera
Browse Image
4. Handphone yang dipakai adalah handphone yang terdapat fasilitas
GPRS sehingga aplikasi ini dapat terhubung dengan internet untuk
atau user juga bisa melakukan pengambilan gambara secara langsung dengan menggunakan kamera handphone / Take
Picture. Setelah user memilih foto yang akan diupload dan
menekan tombol upload maka aplikasi akan mengirimkan foto tersebut ke web server dan secara otomatis web server akan memberikan response kepada aplikasi apakah foto yang
diupload berhasil masuk ke database server atau tidak.
Aplikasi Client Server
2) Selain proses upload foto, aplikasi juga menyediakan menu
View untuk melihat langsung web “Sistem Foto Album Online”. Setelah user memilih menu View maka aplikasi akan mengirimkan request kepada server dan server akan memberikan response kepada aplikasi.
3.1.3 Use Case Diagram
Aplikasi Client Foto Album Online
Upload
User
Browse Im age
Take Picture
View
Login <<extend>>
<<extend>> <<extend>>
3.1.4 Activity Diagram
Activity diagram memodelkan alur kerja (workflow) sebuah proses
bisnis dan urutan aktivitas dalam suatu proses. Berikut ini adalah activity
1. Activity Diagram Browse Image untuk Proses Upload
menampilkan foto-foto yang ada di dalam direktori handphone
menampilkan foto yang telah terpilih dalam ukuran besar
melakukan proses upload
menerima inputan login
menampilkan pesan error
menampilkan pesan bahwa foto telah terkirim
kembali ke tampilan Upload
Apakah login berhasil?
Tidak berhasil Berhasil
Gambar 3.3 adalah activity diagram dari use case Browse Image untuk proses Upload. Pada saat user memasuki list browse image maka sistem akan menampilkan kumpulan foto yang ada di dalam direktori handphone. Apabila
2. Activity DiagramTake Picture untuk Proses Upload
pesan error menampilkan pesan bahwa gambar telah terkirim
kembali ke
menyajikan proses pengambilan foto dengan kamera handphone yang tersedia. Pada saat user menekan tombol Capture maka sistem akan mengambil foto yang diinginkan. Untuk dapat melanjutkan proses selanjutnya, user diminta untuk mengisikan nama file yang ada di bagian bawah foto. Apabila nama file tersebut
kosong maka sistem akan menampilkan pesan error dan sistem akan meminta
user untuk kembali mengisikan nama file. Jika nama file tidak kosong maka sistem akan menampilkan proses login sebelum gambar itu diupload. Apabila
user memasukkan username dan password salah maka sistem akan menampilkan
pesan error dan kembali ke tampilan upload. Tetapi apabila user memasukkan
username dan password benar maka sistem akan menampilkan pesan bahwa
3. Activity Diagram View
masukkan username dan password
memvalidasi username dan password
menampilkan pesan error
menampilkan foto-foto yang telah terupload apakah username dan password benar ?
benar salah
menampilkan tampilan login
kembali ke tampilan view
Gambar 3.5 adalah activity diagram dari use case view. Activity
diagram view ini berguna agar user dapat melihat foto yang telah diupload
sudah ada atau belum. Untuk itu proses pertama yang dilakukan adalah sistem akan menerima inputan login dari user. Apabila login yang dilakukan oleh user berhasil maka sistem akan menampilkan foto-foto yang telah
terupload dan kembali ke tampilan view, apabila login yang dilakukan oleh
user tidak berhasil maka sistem akan menampilkan pesan error dan kembali
ke tampilan view.
4. Activity Diagram Login
menampilkan tampilan login
menerima masukkan username dan password
memvalidasi username dan password
masuk ke proses selanjutnya menampilkan
pesan error
Apakah username dan password benar?
Salah Benar
Gambar 3.6 adalah activity diagram dari use case login. Proses ini diawali dengan menampilkan tampilan login, kemudian akan menunggu pemakai memasukkan username dan password. Selanjutnya sistem akan memeriksa apakah data masukan benar atau tidak. Jika data yang dimasukkan benar, sistem akan masuk ke proses selanjutnya, jika salah sistem akan menampilkan pesan kesalahan.
3.1.5 Sequence Diagram
Sequence diagram digunakan untuk menjelaskan interaksi objek
yang disusun dalam suatu urutan waktu. Diagram ini secara khusus berasosiasi dengan use case. Sequence diagram memperlihatkan tahap demi tahap apa yang seharusnya terjadi untuk menghasilkan sesuatu di dalam use case.
Berikut ini adalah sequence diagram pada sistem yang mengacu pada
1. Sequence Diagram Browse Image untuk Proses Upload
: (user) : Browse Im age : dis play foto
: insert username dan password : rs_user
1: commandAction( )
2: openData()
3: login(us ername,pas sword : String)
4: getRecord(record id : int)
5: showAlert()
Gambar 3.7 adalah proses Browse Image untuk melakukan upload. User
melakukan command action untuk dapat masuk ke tampilan browse image. Tampilan browse image menampilkan kumpulan-kumpulan foto yang tersimpan
di handphone, untuk dapat melakukan upload maka user harus memasukkan
username dan password yang benar. Dalam proses ini sistem akan mencocokkan
data yang dimasukkan user dengan record yang ada didalam databasewebserver. Apabila cocok maka proses upload akan berhasil, tapi apabila tidak cocok maka sistem akan menampilkan pesan error.
Gambar 3.7. Sequence Diagram Browse Image
2. Sequence Diagram Take Picture untuk Proses Upload
: Take Picture
User : Capture Image : Insert Filename : insert username dan password
: handphone : rs_user 1: commandAction()
2: TakePictureAsData()
3: InsertData()
4: showAlert()
5: InsertDataToRecord()
Gambar 3.8 adalah proses Take Picture untuk melakukan upload. User melakukan
command action untuk dapat masuk ke tampilan Take Pictrue. Tampilan take
Picture membuka kamera handphone untuk mengambil gambar dan mengisikan
nama file, apabila nama file kosong maka sistem menampilkan pesan error, jika nama file tidak kosong maka sistem akan menampilkan proses login, untuk dapat melakukan upload maka user harus memasukkan username dan password yang benar. Dalam proses ini sistem akan mencocokkan data yang dimasukkan user
dengan record yang ada didalam databasewebserver. Apabila cocok maka proses
upload akan berhasil, tapi apabila tidak cocok maka sistem akan menampilkan
pesan error.
3. Sequence Diagram View
: user : view
: rs_user : display foto yang telah diupload
1. login(username,password : String)
2. getRecord(record id : int)
3. showData()
4. showAlert()
Gambar 3.9 adalah proses untuk melakukan view. User melakukan proses login dulu baru bisa melakukan view. Dengan demikian user harus memasukkan username dan password yang benar. Dalam proses ini sistem mencocokkan data yang dimasukkan user dengan record yang ada dalam
database. Apabila cocok maka sistem akan menampilkan kumpulan foto-foto
user, tapi apabila tidak cocok maka sistem akan menampilkan pesan error.
4. Sequence Diagram Login
: user : login : rs_user
1. login(username, password : String)
2. getRecord(record id : int)
3. showAlert()
Gambar 3.10 adalah proses untuk melakukan login. Proses ini akan menampilkan tampilan login terlebih dahulu, kemudian akan menunggu pemakai memasukkan username dan password. Selanjutnya sistem akan mengambil data login dari record store dan melakukan validasi data login
yang dimasukkan pemakai dengan data login dari record store. Sistem akan menampilkan pesan kesalahan jika masukan dari pemakai salah.
3.2 Desain / Perancangan Sistem Canvas, Screen, Displayable, FileBrowser dan Midlet. Sedangkan Take Picture, Browse Image, View, Login adalah kelas-kelas utama dari J2ME.
3.2.2 Perancangan User Interface Desain Tampilan Awal
Pada gambar 3.12 adalah desain untuk tampilan awal pada aplikasi foto album online. Dari gambar 3.12 sistem akan langsung menampilkan Menu Pilihan seperti yang ada pada gambar 3.13. Pada gambar 3.13 terdapat 2 list pilihan yaitu “UPLOAD” dan “VIEW”. Apabila user
memilih list “UPLOAD” maka sistem akan menampilkan form
“UPLOAD” yaitu form untuk masuk ke tampilan upload seperti pada
gambar 3.14 dan apabila user memilih list “VIEW” maka sistem akan menampilkan form “VIEW” yaitu form untuk masuk ke tampilan view
seperti pada gambar 3.23. Pilih OK jika user ingin memasuki form
“UPLOAD” atau “VIEW”. Pilih Exit jika user ingin keluar dari aplikasi.
Gambar 3.12 Desain Tampilan Awal Gambar 3.13 Desain Menu Pilihan
Application of Online Photo Album for Client
PICTURE
VIEW
Ok Exit
UPLOAD
Pada gambar 3.14 adalah desain form tampilan “UPLOAD”.
Desain tampilan “UPLOAD” terdiri dari 2 menu yaitu form “BROWSE
IMAGE” yang akan ditampilkan pada gambar 3.15 dan form “TAKE
PICTURE” yang akan ditampilkan pada gambar 3.19. Pilih OK jika
ingin memilih “BROWSE IMAGE” atau “TAKE PICTURE” dan pilih Back jika ingin kembali ke tampilan sebelumnya.
Desain Upload
Gambar 3.14 Desain Menu jika memilih Menu
Upload TAKE PICTURE
Ok Back
BROWSE IMAGE
Application of Online Photo Album for Client
Username :
gambar-gambar tersebut merupakan gambar-gambar yang siap untuk
Pada gambar 3.16 menunjukkan proses selanjutnya dari gambar 3.15. Setelah memilih Select maka proses selanjutnya adalah menampilkan gambar yang akan diupload dalam ukuran yang lebih besar. Pada desain ini juga terdapat 2 pilihan yaitu Upload untuk
mengupload langsung gambar tersebut dan Back untuk kembali ke
proses sebelumnya untuk pemilihan gambar yang akan diupload.
Setelah memilih Upload maka proses selanjutnya dapat dilihat pada gambar 3.17. User harus mengisikan username dan password untuk dikirimkan juga ke web server agar foto yang dikirim dapat disimpan sesuai user yang mengirim. Pilih Ok jika username dan password telah diisi dan pilih Back jika ingin kembali form “UPLOAD”.
Pada gambar 3.18 menunjukkan pesan interaksi kepada user. Apabila foto telah terkirim maka pesan yang diberikan adalah “File has been Save in Server”, dan sebaliknya apabila foto tidak terkirim maka akan diberikan pesan error. Pilih Ok jika ingin mengulangi melakukan
Gambar 3.18 Desain Pesan Interaksi
File has been Save in Server
Ok Back
upload gambar dan pilih Back jika ingin kembali ke tampilan
“UPLOAD”.
Desain Take Picture
Gambar 3.19 adalah lanjutan dari gambar 3.14 jika user memilih
“TAKE PICTURE” dan gambar 3.19 merupakan desain mengambil
gambar yang akan diupload melalui kamera handphone. Apabila user
ingin mengambil gambar yang akan diinginkan maka user harus menekan tombol Capture dan menekan tombol Back apabila user ingin kembali ke form “UPLOAD”. Setelah user menekan tombol Capture maka aplikasi melanjutkan proses selanjutnya yang ada pada gambar 3.20.
Gambar 3.19 Desain Pengambilan Gambar
PHOTO
Back Capture