SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika
Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia
RIAN SATRIA PUTRA
10107402
PROGRAM STUDI S1
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
i
DENGAN DUKUNGAN WEB SERVICE
Oleh
RIAN SATRIA PUTRA 10107402
Kurang optimalnya pemanfaatan informasi dan teknologi dalam penyampain informasi seputar lowongan pekerjaan turut menjadi faktor masih tingginya tingkat pengangguran di Indonesia hingga saat ini. Meskipun beberapa perusahaan sudah ada yang menggunakan fasilitas on-line dalam menginformasikan lowongan pekerjaan hal tersebut masih dirasa kurang dan terbatas karena dalam pembuatan aplikasinya masih harus dibatasi pada satu platform atau sistem operasi tertentu. Untuk aplikasi-aplikasi yang sudah ada, pembuatan antara aplikasi server dengan aplikasi client harus menggunakan bahasa pemrograman yang sama, hal ini dirasa kurang efektif.
Penggunaan web service sebagai penyedia layanan memungkinkan aplikasi yang berbeda satu sama lain dapat saling bertukar informasi dengan mudah sehingga penyampaian informasi lowongan pekerjaan tidak terbatas hanya pada satu aplikasi yang dibangun dengan satu bahasa pemrograman dan di atas satu platform saja. Dengan adanya dukungan web service maka apliksi pada sistem lowongan pekerjaan ini dapat saling bertukar informasi dan terintegrasi dengan baik.
Aplikasi yang dibangun pada sistem lowongan yang akan memanfaatkan layanan dari web service adalah aplikasi web dan aplikasi mobile khususnya pada platform Android. Model analisis sistem pada sistem lowongan pekerjaan ini adalah pemodelan berorientasi objek dan peralatan yang digunakan adalah UML (Unified Modeling Language) versi 2.
Oleh karena itu, adanya sistem lowongan pekerjaan dengan dukungan web service ini dapat membantu masyarakat dalam mencari informasi lowongan pekerjaan dan dapat membantu dalam mengurangi tingkat pengangguran di Indonesia.
ii
SERVICES SUPPORT
By
RIAN SATRIA PUTRA 10107402
Less optimal utilization of information and technology in informing about job vacancies have contributed to the factor is still high unemployment in Indonesia to date. Although some companies already are using the facility on-line job in informing those things are still limited because it is less and still making the application must be limited to one platform or operating system specific. For applications that already exist, making the application server to the client application must use the same programming language, it is less effective.
The use of a web service as a service provider allows the applications are different from each other can exchange information easily so that the delivery of job information is not limited to just one application built with a programming language and on top of one platform only. With the support of the same practice on the web service system job is to exchange information and well integrated.
Applications to be built on a system of vacancies that will utilize the services of a web service is a web application and mobile applications in particular on the Android platform. Model analysis of the system on this job vacancy system is object-oriented modeling and the equipment used is UML (Unified Modeling Language) version 2.
Therefore, the job system with web service support can assist people in finding jobs and information can help in reducing the unemployment rate in Indonesia.
iii Assalamu‟alaikum Wr. Wb.
Puji dan syukur kehadirat Allah SWT yang telah memberikan rahmat dan
karunia-nya, serta dengan segenap motivasi, kesabaran, kerja keras dan doa
sehingga pengerjaan skripsi yang berjudul “Pembangunan Sistem Lowongan
Pekerjaan Dengan Dukungan Web Service” dapat diselesaikan dengan baik.
Penyusunan tugas akhir ini merupakan salah satu syarat yang harus
ditempuh dalam menyelesaikan Studi Program Strata 1 Jurusan Teknik
Informatika Fakultas Teknik dan Ilmu Komputer Universitas Komputer
Indonesia.
Penulis menyadari bahwa masih banyak kekurangan dalam menyelesaikan
Tugas Akhir ini, karena terbatasnya ilmu dan pengalaman yang dimiliki penulis,
untuk itu penulis meminta maaf atas segala kekurangan dan kesalahan yang ada,
serta merasa perlunya kritik dan saran dari pihak-pihak lain untuk memperluas
wawasan penulis.
Selama menulis laporan tugas akhir ini, penulis telah mendapatkan banyak
sekali bimbingan dan bantuan dari berbagai pihak yang dengan segenap hati dan
keikhlasan membantu dan membimbing penulis dalam menyelesaikan laporan ini.
Rasa terima kasih yang tak terhingga kepada semua pihak yang telah membantu
iv
1. Kedua orangtua ku yang telah memberikan segalanya dengan tulus, dan
menjadi motivator terbesar bagi penulis, terima kasih atas jasa yang tak
pernah dapat terbalaskan.
2. Kakak dan adikku, kak Deni, kak Iche, kak Pebo, kak Sancay, kak Teddy,
kak Angga, dan adek Arie. Kalian selalu memberikan motivasi sehingga
penulis selalu bisa kembali move on ketika sedang down. Terima kasih atas
dukungannya baik berupa moril maupun materil, U’re the best family that I
ever had guys, thx a lot.
3. My Lovely Raden Vini Primadona, terima kasih karena telah menemani
penulis selama ini, memberikan dorongan, semangat dan kasih sayang yang
tiada henti, yang juga menjadi sahabat dan mendengarkan keluh kesah ketika
penyusunan skripsi ini. Thank’s for be my best.
4. Bapak Galih Hermawan, S. Kom, M.T. selaku pembimbing Skripsi yang
telah memberikan arahan, semangat dan banyak masukan dalam penyusunan
skripsi ini.
5. Bapak Andri Heryandi, S.T., M.T. selaku dosen penguji 1 tugas akhir, yang
telah memberikan masukan dan arahan dalam penyusunan skripsi ini.
6. Ibu Ednawati Rainarli, S.Si., M.Si. selaku dosen penguji 3 tugas akhir , yang
telah memberikan masukan dan arahan dalam penyusunan skripsi ini.
7. Bapak Prof. Dr. Ir Denny Kurniadie, M.Sc. selaku Dekan Fakultas Teknik &
v
9. Bapak Dr. Edi Soeryanto Soegoto selaku Rektor Universitas Komputer
Indonesia.
10. Sahabat seangkatan penyusunan skripsi ini: Fendi Ridwan, Rudi Permaiyana,
Eki Wira Yusnanda, Yugie Nugraha, Arief Rachman M, Tian Dwi Septian
serta sahabat generasi objek: Muhammad Syadzili Khafifi, Said Mukhtar
Hadi, Helmy Yoga Pranata, Risal Hidayat, Sandhi Rachmat Anugrah, Yudha
Yolanda. Terima kasih telah menemani dalam suka dan duka kepada penulis
serta semangat dan bantuan yang diberikan selama perjalanan penyelesaian
skripsi ini.
11. Teman-teman di Jurusan Teknik Informatika angkatan 2007 khususnya kelas
IF-9 terima kasih atas bantuan dan dorongannya selama ini.
12. Semua pihak yang tak dapat penulis sebutkan satu-persatu yang telah
memberikan bantuan, doa, dan dorongan dalam penyusunan skripsi ini.
Tiada kata yang pantas penulis ucapkan selain kata terima kasih yang
sebesar-besarnya kepada semua pihak yang telah membantu pembuatan skripsi
ini, semoga Allah SWT membalas kebaikan yang telah diberikan kepada penulis,
akhirnya penulis berharap semoga skripsi ini bermanfaat bagi kita semua.
Aaamiiin.
Bandung, Juli 2012
vi
DAFTAR ISI
ABSTRAK ... i
ABSTRACK ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... vi
DAFTAR GAMBAR ... xiv
DAFTAR TABEL ... xxvi
DAFTAR SIMBOL ... xxxvii
DAFTAR LAMPIRAN ... xlii BAB I PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Identifikasi Masalah ... 3
1.3 Maksud dan Tujuan ... 4
1.4 Batasan Masalah ... 4
1.5 Metodologi Penelitian ... 5
1.5.1 Pengumpulan data ... 5
1.5.2 Pembangunan Perangkat Lunak ... 6
vii
BAB II LANDASAN TEORI ... 9
2.1 Web service ... 9
2.1.1 Arsitektur Web service ... 9
2.1.2 Jenis-Jenis Web service ... 11
1. Representational State Transfer (REST) ... 11
2. Simple Object Access Protokol (SOAP) ... 12
2.1.3 Web service Definition Language (WSDL) ... 14
2.1.4 UDDI (Uniform Description, Discovery, and Integration) ... 16
2.1.5 JSON ... 16
2.2 PHP ... 21
2.3 Android ... 23
2.3.1 Arsitektur Android ... 24
1. Aplication ... 25
2. Aplication Framework ... 25
3. Libraries ... 26
4. Android Runtime ... 26
5. Linux Kernel ... 27
2.3.2 Siklus Hidup Aplikasi Android ... 27
viii
2.4.1 Sejarah UML ... 31
2.4.2 Diagram UML ... 31
1. Use Case Diagram ... 32
2. Activity Diagram ... 33
3. Sequence Diagram ... 35
4. Class Diagram ... 36
2.5 MySQL ... 36
BAB III ANALISIS DAN PERANCANGAN SISTEM ... 40
3.1 Analisis ... 40
3.1.1 Analisis Masalah ... 40
3.1.2 Analisis Kebutuhan Data... 40
3.1.3 Analisis Kebutuhan Non Fungsional ... 41
3.1.3.1 Analisis Pengguna... 41
3.1.3.2 Analisis Kebutuhan Perangkat Keras ... 44
3.1.3.3 Analisis Kebutuhan Perangkat Lunak... 45
3.1.3.4 Spesifikasi Kebutuhan Perangkat Lunak (SKPL) ... 46
3.1.4 Analisis Sistem ... 50
3.1.4.1 Arsitektur Sistem ... 50
ix
1. Analisis Method Web Service ... 52
3.1.4.3 Analisis WSDL ... 111
3.1.5 Analisis Kebutuhan Fungsional ... 111
3.1.5.1 Analisis Pada Aplikasi Android ... 112
1. Use Case Diagram ... 112
2. Activity Diagram ... 133
3. Sequence Diagram ... 169
4. Class Diagram ... 187
3.1.5.2 Analisis Pada Aplikasi Web ... 189
1. Use Case Diagram ... 189
2. Activity Diagram ... 208
3. Sequence Diagram ... 240
4. Class Diagram ... 250
3.1.5.3 Analisis Pada Web Admin ... 252
1. Use Case Diagram ... 252
2. Activity Diagram ... 265
3. Sequence Diagram ... 287
4. Class Diagram ... 297
x
1. Use Case Diagram ... 298
2. Activity Diagram ... 300
3. Sequence Diagram ... 302
4. Class Diagram ... 302
3.2 Perancangan ... 304
3.2.1 Perancangan Basis Data ... 304
3.2.1.1 Entity Relationship Diagram ... 304
3.2.1.2 Skema Relasi... 305
3.2.1.3 Perancangan Struktur Tabel ... 305
1. Struktur Tabel Pada Server ... 305
3.2.2 Perancangan Struktur Menu ... 312
3.2.2.1 Perancangan Struktur Menu Aplikasi Android ... 312
1. Struktur Menu Pengunjung Umum ... 312
2. Struktur Menu Member Pemberi Kerja... 312
3. Struktur Menu Member Pencari Kerja ... 313
3.2.2.2 Perancangan Struktur Menu Aplikasi Web ... 313
1. Struktur Menu Pengunjung Umum ... 313
2. Struktur Menu Member Pemberi Kerja... 314
xi
3.2.2.3 Perancangan Struktur Menu Web Admin ... 315
3.2.3 Perancangan Antarmuka ... 316
3.2.3.1 Perancangan Antarmuka Android ... 316
3.2.3.2 Perancangan Antarmuka Web User ... 337
3.2.3.3 Perancangan Antarmuka Admin ... 364
3.2.4 Perancangan Jaringan Semantik ... 374
3.2.4.1 Jaringan Semantik Aplikasi Android ... 374
1. Jaringan Semantik Pengunjung Umum ... 374
2. Jaringan Semantik Member Pemberi Kerja ... 375
3. Jaringan Semantik Member Pencari Kerja ... 376
3.2.4.2 Jaringan Semantik Aplikasi Web User ... 376
1. Jaringan Semantik Pengunjung Umum ... 376
2. Jaringan Semantik Member Pemberi Kerja ... 377
3. Jaringan Semantik Member Pencari Kerja ... 378
3.2.4.3 Jaringan Semantik Aplikasi Admin ... 379
BAB IV IMPLEMENTASI DAN PENGUJIAN ... 380
4.1 Implementasi ... 380
4.1.1 Perangkat Lunak Pembangun ... 380
xii
4.1.3 Batasan implementasi... 381
4.1.4 Impementasi Antarmuka ... 382
4.1.5 Implementasi Kelas ... 389
4.1.5.1 Kelas pada web service ... 389
4.1.5.2 Kelas pada aplikasi android ... 389
4.1.5.3 Kelas pada aplikasi web ... 392
4.1.5.4 Kelas pada aplikasi web admin ... 392
4.1.6 Implementasi Basis Data ... 393
4.2 Pengujian Perangkat Lunak ... 396
4.2.1 Pengujian Alpha ... 396
4.2.1.1 Kasus dan Hasil Pengujian Alpha ... 396
1. Pengujian Pada Aplikasi Android ... 396
2. Pengujian Pada Aplikasi Web ... 414
3. Pengujian Pada Aplikasi Web Admin ... 428
4.2.1.2 Kesimpulan Pengujian Alpha ... 436
4.2.2 Pengujian Beta ... 436
4.2.2.1 Kuesioner Pengujian Beta ... 436
1. Pengujian Pada Aplikasi Web ... 437
xiii
4.2.2.2 Kesimpulan Pengujian Beta ... 459
BAB V KESIMPULAN DAN SARAN ... 460
5.1 Kesimpulan ... 460
5.2 Saran ... 461
1
1.1 Latar Belakang
Berdasarkan pengamatan di lapangan, masih banyak organisasi dan
perusahaan yang belum memanfaatkan secara optimal sarana teknologi dan
infornasi untuk menyampaikan lowongan pekerjaan mereka.Padahal sekarang ini,
informasi melalui media teknologi dan informasi dengan dukungan jaringan
internet dapat dengan mudah sampai ke para pencari kerja di luar sana. Hal
tersebut juga mempengaruhi jumlah pengangguran di Indonesia yang sampai
bulan Agustus 2011 tercatat masih sebesar 7,7 juta orang. Data tersebut
berdasarkan data dari BPS (Badan Pusat Statistik) Indonesia [1].
Meskipun beberapa perusahaan sudah ada yang menggunakan fasilitas
on-line dalam menginformasikan lowongan pekerjaan hal tersebut masih dirasa
kurang dan terbatas karena dalam pembuatan aplikasinya masih harus dibatasi
oleh suatu bahasa pemrograman tertentu. Untuk aplikasi-aplikasi yang sudah ada,
pembuatan antara aplikasi server dengan aplikasi client harus menggunakan
bahasa pemrograman yang sama, hal ini dirasa kurang efektif.
Berdasarkan permasalahan tersebut, maka dibutuhkan sebuah layanan
yang mampu mendukung aplikasi client yang dibangun oleh berbagai bahasa
permasalahan tersebut. Pada umumnya sebuah aplikasi memerlukan driver
database agar bisa melakukan koneksi ke sebuah database. Web service dapat
dijadikan sebagai jembatan penghubung antara aplikasi dengan database. Jadi,
dengan memanfaatkan web service sebuah aplikasi tidak lagi memerlukan driver
database dan tidak perlu mengetahui database apa yang digunakan oleh server
serta bagaimana struktur database tersebut. Aplikasi yang ingin mengakses cukup
mengetahui method atau fungsi apa saja yang disediakan oleh web service.
Ada beberapa standar yang bisa digunakan untuk membuat web service,
diantaranya: REST dan SOAP. Standar web service yang akan digunakan dalam
tugas akhir ini adalah SOAP (Simple Object Access Protocol) dengan WSDL
(Web service Definition Language) untuk mendeskripsikannya. Alasan pemilihan
standar SOAP adalah karena SOAP merupakan standar yang berorientasi kepada
service sehingga cocok digunakan pada aplikasi lowongan pekerjaan, selain itu
SOAP juga dikembangkan oleh W3C (World Wide Web Consortium) sehingga
standar ini terus mengalami pengembangan dan penyempurnaan.
Kemajuan teknologi informasi dan penggunaan internet saat ini
menjadikan aplikasi web service suatu aplikasi yang mudah diakses oleh aplikasi
lain dalam sebuah organisasi maupun di luar organisasi menggunakan standar
yang tidak terikat platform (platform-neutral) dan tidak terikat akan bahasa
pemrograman yang digunakan (language-neutral). Dengan adanya web service
yang bertugas sebagai server untuk mengatur lowongan pekerjaan yang tersedia di
sistem ini bisa menjadi salah satu bagian solusi dari masalah komputasi yang
terpisah di atas.
Berdasarkan hal di atas, maka akan dibangun sistem lowongan pekerjaan
yang yang meyediakan informasi berbasis web dan mobile pada platform android
yang menggunakan teknologi web service sebagai server untuk bertukar informasi
serta dengan sebuah web administarator sebagai media pengolahan datanya.
1.2 Identifikasi Masalah
Memperhatikan permasalahan-permasalahan di atas sehingga dapat
diidentifikasikan masalahnya sebagai berikut :
1. Bagaimana membangun sistem lowongan pekerjaan yang memiliki
interoperabilitas antar aplikasi untuk mengatasi penggunaan komputasi
terpisah yang kurang efektif.
2. Bagaimana membangun sistem lowongan pekerjaan yang menyajikan
informasi berbasis web dan mobile application (android) dengan dukungan
web service sebagai jembatan penghubung antara aplikasi dengan database.
3. Bagaimana memberi dukungan web service kepada aplikasi lowongan
pekerjaan.
4. Bagaimana mengimplementasikan metode SOAP (Simple Object Access
1.3 Maksud dan Tujuan
Maksud dari penelitian ini adalah untuk membangun sistem lowongan
pekerjaan berbasis web dan mobile application pada platform android sebagai
media penyebarluasan informasi mengenai lowongan pekerjaan.
Sedangkan tujuan yang akan dicapai dalam penelitian ini adalah :
1. Membangun sistem lowongan pekerjaan yang menyajikan informasi berbasis
web dan mobile application (android) dengan dukungan web service sebagai
jembatan penghubung antara aplikasi dengan database yang menjadikan
sistem ini memiliki interoperabilitas antar aplikasi.
2. Membangun suatu web service dengan standar SOAP yang dideskripsikan
dengan WSDL.
3. Memberi dukungan web service kepada aplikasi lowongan pekerjaan.
4. Memperluas informasi tentang lowongan pekerjaan yang tersedia bagi para
job seeker serta mempermudah bagi perusahaan untuk menginformasikan
lowongan pekerjaan melalui aplikasi lowongan pekerjaan ini.
1.4 Batasan Masalah
Agar dalam penulisan ini tidak menyimpang dari permasalahan dan
sasaran yang akan dicapai, maka ada batasan pada masalah yang dibahas. Batasan
masalah yang ditetapkan dalam skripsi ini adalah:
1. Data lowongan pekerjaan didapat dari website penyedia lowongan pekerjaan
dan juga dari perusahaan yang mendaftarkan diri melalui website user (client).
2. Pada aplikasi mobile android (client) memiliki hampir keseluruhan fitur
3. Sistem lowongan pekerjaan ini terdiri dari web service sebagai server dan
aplikasi web dan mobile pada sisi client dan data lowongan pekerjaan tersebut
diolah dengan mengggunakan sebuah web administrator.
4. Koneksi internet dibutuhkan untuk menjalankan sistem ini.
5. Model analisis sistem adalah pemodelan berorientasi objek dan peralatan yang
digunakan adalah UML (Unified Modeling Language) versi 2.
6. Aspek keamanan aplikasi mobile, web service, serta web admin dan web user
tidak ditangani.
7. Web service yang didukung hanya standar SOAP saja.
1.5 Metodologi Penelitian
1.5.1 Pengumpulan data
Metodologi Penelitian yang digunakan dalam pengumpulan data yang
berkaitan dengan penyusunan skripsi dan pembuatan sistem pencarian ini adalah
sebagai berikut.
1. Studi kepustakaan.
Tahap ini digunakan untuk mencari informasi yang berhubungan dengan
permasalahan yang akan dibahas dengan bersumber pada buku-buku serta
bacaan lain yang kiranya dapat mebantu menyelesaikan pembangunan
aplikasi.
2. Studi dokumentasi.
Dengan mengumpulkan informasi mengenai data yang diperlukan agar lebih
1.5.2 Pembangunan Perangkat Lunak
Pembangunan sistem pencarian ini menggunakan metodologi Waterfall
dengan gambar I.1 sebagai berikut:
1. System Engineering
Rekayasa perangkat lunak merupakan tahapan yang pertama kali dilakukan untuk
merumuskan sistem yang akan dibangun. Hal ini bertujuan untuk memahami
sistem yang akan dibangun.
2. Analysis
Analisis dilakukan terhadap permasalahan yang dihadapi serta untuk menetapkan
kebutuhan perangkat lunak dari aplikasi yang dibangun.
3. Design
Tahap desain merupakan tahap penerjemahan dari data yang telah dianalisis ke
dalam bentuk yang mudah dimengerti oleh pengguna.
4. Coding
Pengkodean merupakan tahap penerjemahan data yang telah dirancang ke dalam
bahasa pemrograman tertentu.
5. Testing
Tahap pengujian dilakukan terhadap perangkat lunak yang telah dibangun. Proses
pengujian berfokus pada logika internal perangkat lunak serta memastikan apakah
hasil yang diinginkan tercapai atau tidak.
6. Maintenance
Pemeliharaan merupakan penanganan dari suatu perangkat lunak yang telah
selesai dibangun sehingga dapat dilakukan perubahan-perubahan atau
1.5.3 Sistematika Penulisan
Adapun sistematika yang akan dilakukan dalam penyusunan skripsi ini
dibagi menjadi lima bab, yaitu sebagai berikut :
BAB I PENDAHULUAN
Bab ini menguraikan mengenai latar belakang masalah, rumusan masalah,
maksud dan tujuan, batasan masalah, metodologi penelitian, dan sistematika
penulisan.
BAB II LANDASAN TEORI
Bab ini membahas berbagai konsep dan dasar-dasar teori mengenai web
service, php, android, uml, dan MySql.
BAB III ANALISIS DAN PERANCANGAN
Bab ini berisi tentang analisis deskripsi sistem, analisis perancangan
fungsional, analisis kebutuhan non fungsional dan perancangan antarmuka dari
perangkat lunak yang akan dibangun.
BAB IV IMPLEMENTASI DAN PENGUJIAN
Bab ini membahas implementasi antarmuka perangkat lunak,
implementasi perangkat keras dan perangkat lunak, pengujian perangkat lunak
(secara subjektif dan alpha) beserta kesimpulan dari hasil pengujian perangkat
lunak yang dibangun.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dan saran yang merupakan jawaban yang
melatar belakangi masalah pada bab 1, dan saran yang nantinya akan berguna bagi
9
2.1 Web service
Web service adalah salah satu bentuk sistem perangkat lunak yang
didesain untuk mendukung interaksi mesin-ke-mesin melalui jaringan. Web
service memiliki interface yang dideskripsikan dalam format yang dapat dibaca
oleh mesin. Sistem-sistem lainnya berinteraksi dengan web service menggunakan
pesan SOAP yang umumnya dikirim melalui HTTP dalam bentuk XML [8].
Definisi diatas diberikan oleh World Wide Web Consortium(W3C) yang
merupakan badan yang menciptakan dan mengembangkan standar web service.
Tetapi secara umum, web service tidak terbatas hanya pada standar SOAP saja.
Salah satu pustaka yang mengulas lengkap tentang web service menyebutkan
definisi yang lebih umum: web service adalah aplikasi yang diakses melalui
internet menggunakan protokol standar internet dan menggunakan XML sebagai
format pesannya.
2.1.1 Arsitektur Web service
Pada gambar diatas, ada tiga komponen yang membuat web service
berjalan. Ketiga komponen itu adalah:
1. Service provider, merupakan pemilik Web service yang berfungsi
menyediakan kumpulan operasi dari Web service.
2. Service requestor, merupakan aplikasi yang bertindak sebagai klien dari Web
service yang mencari dan memulai interaksi terhadap layanan yang
disediakan.
3. Service registry, merupakan tempat dimana Service provider
mempublikasikan layanannya. Pada arsitektur Web service, Service registry
bersifat optional. Teknologi web service memungkinkan kita dapat
menghubungkan berbagai jenis software yang memiliki platform dan sistem
operasi yang berbeda.
2.1.2 Jenis-Jenis Web service
Jenis web service dapat dibagi menjadi dua, yaitu REST dan SOAP.
1. Representational State Transfer (REST)
REST adalah salah satu jenis web service yang menerapkan konsep
perpindahan antar state. State disini dapat digambarkan seperti jika browser
meminta suatu halaman web, maka server akan mengirimkan state halaman web
yang sekarang ke browser. Bernavigasi melalui link-link yang disediakan sama
halnya dengan mengganti state dari halaman web. Begitu pula REST bekerja,
dengan bernavigasi melalui link-link HTTP untuk melakukan aktivitas tertentu,
seakan-akan terjadi perpindahan state satu sama lain. Perintah HTTP yang bisa
digunakan adalah fungsi GET, POST, PUT atau DELETE. Balasan yang
dikirimkan adalah dalam bentuk XML sederhana tanpa ada protokol pemaketan
data, sehingga informasi yang diterima lebih mudah dibaca dan diparsing disisi
client.
Dalam pengaplikasiannya, REST lebih banyak digunakan untuk web
service yang berorientasi pada resource. Maksud orientasi pada resource adalah
orientasi yang menyediakan resource-resource sebagai layanannya dan bukan
kumpulan-kumpulan dari aktivitas yang mengolah resource itu. Alasan mengapa
REST tidak digunakan dalam skripsi ini karena orientasi pada resourcenya itu,
sedangkan aplikasi lowongan pekerjaan membutuhkan pemanggilan metode yang
bisa dikerjakan terhadap kumpulan resource data lowongan. Selain itu, karena
standarnya yang kurang sehingga tidak begitu cocok diterapkan dalam aplikasi
sangat berguna karena berbicara dalam satu bahasa yang sama. Beberapa contoh
web service yang menggunakan REST adalah: Flickr API(Application Program
Interface), YouTube API, Amazon API.
2. Simple Object Access Protokol (SOAP)
SOAP merupakan protokol standar yang ringan dan ditujukan untuk
pertukaran informasi dalam desentralisasi sistem. Protokol ini melakukan
pemanggilan metode dalam bahasa XML (Extensible Markup Language). Namun,
selain itu juga kita dapat menggunakan format pertukaran data lainnya yaitu
JSON (JavaScript Object Notation). Dengan demikian, SOAP adalah suatu
mekanisme yang sederhana untuk melakukan pertukaran struktur dan tipe
informasi dalam lingkungan yang tersebar dan terdistribusi menggunakan
XML/JSON. Dokumen SOAP yang digunakan untuk melakukan request disebut
SOAP request sedangkan dokumen SOAP yang diperoleh dari web service
disebut dengan SOAP response.
Secara garis besar, protocol SOAP dapat dibagi menjadi beberapa bagian
berikut :
a. SOAP Envelope
Untuk mendefinisikan apa yang terdapat dalam pesan (message) yang dikirim,
dan kepada siapa pesan tersebut akan digunakan. Elemen ini merupakan root
dari pesan dan bersifat wajib.
b. SOAP Header
Elemen ini berisi informasi header dan bersifat opsional. Informasi yang ada
c. SOAP Body
Elemen ini berisi panggilan dan merespon informasi. Elemen ini wajib.
d. SOAP Encoding Rules
Mendefinisikan mekanisme serialisasi yang dapat digunakan untuk pertukaran
tipe data yang didefinisikan dari tiap aplikasi.
e. SOAP RPC Representation
Menyediakan suatu standar yang dapat digunakan untuk mewakili remote
procedure call (RPC) dan data hasil kembaliannya.
f. SOAP Binding
Mendefinisikan standar yang digunakan utnuk pertukaran SOAP Envelope
antara peers dengan protokol yang umum untuk transportasi.
Sintaks dari protokol SOAP adalah sebagai berikut :
2.1.3 Web service Definition Language (WSDL)
WSDL merupakan suatu dokumen berbasis XML yang berfungsi untuk
menjelaskan fungsi public dan metode-metode yang tersedia dalam web service.
Selain itu, WSDL juga mengatur end-point pada pesan-pesan yang berisi
dokumen maupun informasi prosedur.
Dokumen WSDL sanagat kompleks, dan memungkinkan untuk
mendeskripsikan end-point serta pesan yang ada pada protokol jaringan. Salah
satu bagian dokumen WSDL yang cukup penting dalam melakukan interaksi
dengan SOAP, HTTP, serta MIME adalah binding.
SOAP dapat berjalan sendiri tanpa bantuan WSDL, tetapi hal ini akan
menyulitkan pengembang di sisi client karena tidak tahu harus mengharapkan
operasi dan bentuk data apa. Karena itu WSDL diciptakan sebagai pendefinisi
sebuah web service. Dalam tugas akhir ini, web service yang dibangun akan
dijabarkan menggunakan WSDL.
Elemen-elemen yang terdapat dalam WSDL adalah sebagai berikut :
1. Elemen Types
Elemen Types menyertakan definisi tipe data yang sesuai untuk pertukaran
message. Untuk meningkatkan operasi dari dalam dan dukungan netral
platform, WSDL sering menggunakan XSD sebagai peraturan sistem dan
memperlakukannya sebagai tipe sistem pada umumnya.
2. Elemen Message
Message terdiri dari satu atau beberapa bagian, dan masing-masing bagian
3. Elemen Port Type
Elemen ini menjelaskan tentang operasi dan abstrak message yang terlibat di
dalamnya. Atribut “name” dari elemen ini menyediakan nama unik di antara
semua jenis port yang didefinisikan pada penutup dokumen WSDL.
4. Elemen Binding
Binding berfungsi untuk menyatukan format message dan detail protokol
untuk operasi. Umumnya ada beberapa nomor binding untuk menentukan tipe
port.
5. Elemen Port
Elemen ini bukanlah elemen port type, namun subelemen dalam elemen
service. Fungsinya untuk mendefinisikan end-point individu melalui alamat
tunggal khusus untuk binding.
6. Elemen service
Kelompok services digunakan untuk mengatur hubungan yang terjadi antara
port. Dengan demikian, elemen-elemen port akan diletakkan dalam group
services.
Sintaks dari dokumen WSDL adakah sebagai berikut :
<binding>
definition of bind……….
</binding>
</definitions>
2.1.4 UDDI (Uniform Description, Discovery, and Integration)
Dalam penerapannya, web service memerlukan sumber dari semua
informasi tentang SOAP message, cara membuat respons, mengumumkan service
yang ada, dan sebagainya. Dengan demikian, aplikasi dapat menggunakannya
untuk mencari WSDL. Untuk memenuhi hal tersebut, diperlukan UDDI yang
menyediakan service untuk mencari informasi yang diperlukan.
UDDI memungkinkan suatu perusahaan untuk mengumumkan detail dari
web service yang tersedia, biasanya melalui kata kunci atau deskripsi. Dengan
adanya UDDI tersebut, kita dapat mengetahui (discover) dimana web service
perusahaan berada.
2.1.5 JSON [3]
JSON (JavaScript Object Notation) adalah format pertukaran data yang
ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan
dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari
Bahasa Pemprograman JavaScript, Standar ECMA-262 Edisi ke-3 – Desember
1999. JSON merupakan format teks yang tidak bergantung pada bahasa
pemprograman apapun karena menggunakan gaya bahasa yang umum digunakan
oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python
dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa
Penulis menggunakan metode JSON dalam pengiriman data yang
dilakukan, karena JSON memiliki beberapa kelebihan - kelebihan dibandingkan
XML, kelebihan – kelebihan tersebut adalah:
1. Format Penulisan
Untuk merepresentasikan sebuah struktur data yang rumit dan
berbentuk hirarkis penulisan JSON relatif lebih terstruktur dan mudah.
2. Ukuran
Ukuran karakter yang dibutuhkan JSON lebih kecil dibandingkan
XML untuk data yang sama. Hal ini tentu berpengaruh pula pada kecepatan
pertukaran data, walaupun tidak signifikan untuk data yang kecil, namun
cukup berarti jika koneksi yang digunakan relatif lambat untuk mengakses
aplikasi web kaya fitur yang memanfaatkan pertukaran data. Di sini JSON
lebih unggul dibandingkan XML, kecuali jika data dikompresi terlebih dahulu
sebelum dikirimkan, perbedaan JSON dan XML yang telah dikompresi
tidaklah signifikan.
3. Browser Parsing
Proses parsing merupakan proses pengenalan token atau bagian-bagian
kecil dalam rangkaian dokumen XML/JSON. Contohnya, terdapat data text dalam
format JSON. Data tersebut harus di-parsing terlebih dahulu sebelum dapat
diakses dan dimanipulasi. Browser parsing berarti proses parsing yang terjadi
pada sisi client/browser.
Melakukan browser parsing pada JSON lebih sederhana dibandingkan
parsing. Sementara dokumen XML di-parsing oleh XMLHttpRequest. Rata-rata
survei menobatkan JSON sebagai pemenang jika diadu kecepatan parsingnya.
JSON terbuat dari dua struktur:
1. Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini
dinyatakansebagai objek (object), rekaman (record), struktur (struct), kamus
(dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau
associative array.
2. Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan bahasa,
hal ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau
urutan (sequence).
Struktur-struktur data ini disebut sebagai struktur data universal. Pada
dasarnya, semua bahasa pemprograman moderen mendukung struktur data ini
dalam bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian
karena format data mudah dipertukarkan dengan bahasa-bahasa pemprograman
yang juga berdasarkan pada struktur data ini. JSON menggunakan bentuk sebagai
berikut:
1. Objek
Objek adalah sepasang nama/nilai yang tidak terurutkan. Objek dimulai
dengan { (kurung kurawal buka) dan diakhiri dengan } (kurung kurawal tutup).
Setiap nama diikuti dengan : (titik dua) dan setiap pasangan nama/nilai dipisahkan
Gambar II. 2 Objek JSON
2. Larik
Larik adalah kumpulan nilai yang terurutkan. Larik dimulai dengan [
(kurung kotak buka) dan diakhiri dengan ] (kurung kotak tutup). Setiap nilai
dipisahkan oleh , (koma).
Gambar II. 3 Larik JSON
3. Nilai
Nilai (value) dapat berupa sebuah string dalam tanda kutip ganda, atau
angka, atau true atau false atau null, atau sebuah objek atau sebuah larik.
Gambar II. 4 Nilai JSON
4. String
String adalah kumpulan dari nol atau lebih karakter Unicode, yang
dibungkus dengan tanda kutip ganda. Di dalam string dapat digunakan backslash
escapes "\" untuk membentuk karakter khusus. Sebuah karakter mewakili karakter
tunggal pada string. String sangat mirip dengan string C atau Java.
5. Angka
Angka adalah sangat mirip dengan angka di C atau Java, kecuali format
oktal dan heksadesimal tidak digunakan.
Gambar II. 6 Angka JSON
2.2 PHP
PHP adalah bahasa skrip dalam server (server-side embedded scripting
language). Artinya, PHP bekerja di dalam HTML dengan tugas membuat isi
dokumen sesuai permintaan. Alur kerja PHP itu sendiri dapat kita lihat pada
gambar II.7.
Database MySQL Result
Web Server Apache
Komputer Pengunjung Web PHP Engine
INTERPRETASI SOURCE CODE
Query
HTML+PHP Source HTML
HTML Requst HTML
Pada gambar di atas tampak alur kerja engine PHP. Pada awalnya, sebuah
komputer pengunjung web melakukan HTTP request terhadap halaman tertentu.
Jika halaman yang di-request tersebut adalah halaman PHP, maka Web Server
Apache akan meneruskan halaman PHP tersebut ke PHP engine. PHP engine akan
melakukan interpretasi terhadap source PHP dalam halaman tersebut, dengan
bantuan dari database jika perlu. Setelah interpretasi selesai, maka PHP akan
mengembalikan hasilnya yang berupa HTML murni (tanpa adanya source PHP
sama sekali) kepada Web Server Apache. Setelah itu Web Server Apache akan
meneruskannya kepada komputer pengunjung web tadi dalam bentuk HTML
yang dapat ditampilkan oleh internet browser.
PHP tidak hanya didesain untuk Web Server Apache dan database
MySQL. Bahkan PHP tidak hanya bisa dipakai untuk halaman web. PHP dapat
berjalan pada hampir semua web server yang mendukung konsep CGI-binary atau
ISAPI module, di antaranya Personal Web Server (PWS) 3 ke atas, Internet
Information Service (IIS) 3 ke atas, Apache, OmniHTTPd 2 ke atas, Oreilly
Website Pro, Xitami, dan Netscape Enterprise Server.
Koneksi database pada PHP amat mudah, cukup dengan menggunakan 2
atau 3 baris perintah saja. Fungsi-fungsi untuk database cukup lengkap, dan
database yang didukung amat banyak, di antaranya MySQL, PostgreSQL, dBase,
DB++, FrontBase, ODBC, Sybase-CT, Oracle, Informix, dan Interbase.
PHP memiliki empat kelebihan utama yang menarik minat banyak pengguna.
1. Practicality. PHP dibuat dengan menitikberatkan pada kepraktisan. Hasilnya,
PHP adalah bahasa pemrograman minimalis, dilihat dari segi kebutuhan
pengguna dan kebutuhan sintaks.
2. Power. PHP memiliki banyak kemampuan, mulai dari kemampuan untuk
terhubung dengan basis data, membuat halaman web dinamis, membuat dan
memanipulasi berkas gambar, Flash dan PDF, berkomunikasi dengan
bermacam protokol seperti IMAP dan POP3, dan masih banyak lagi.
3. Possibility. PHP dapat menyediakan lebih dari satu solusi untuk suatu masalah
4. Price. PHP selalu dirilis kepada publik tanpa ada batasan penggunaan,
modifikasi, atau redistribusi.
2.3 Android
Android merupakan subset perangkat lunak untuk perangkat mobile yang
meliputi sistem operasi, middleware dan aplikasi inti yang di release oleh
GOOGLE [4]. Aplikasi pada platform ini dikembangkan dalam bahasa
pemrograman java. Android sendiri memiliki banyak fitur diantaranya adalah:
Merupakan sebuah Application Framework sehingga programmer dapat
menggunakan beberapa fungsi yang telah disediakan.
Dalvik virtual machine. Tiap aplikasi dalam Android memiliki instance
virtual machine yang dapat bekerja secara efisien dalam lingkungan
memori yang terbatas.
Integrated browser. Web browser berbasis WebKit engine terdapat pada
browser default Android atau pun dapat diintegrasikan dengan aplikasi
Optimized graphics. Library grafis 2D yang kaya dan 3D berbasis
OpenGL ES 1.0 yang mendukung akselerasi hardware.
SQLite. Basis data relasional yang ringan namun sangat powerful.
Media Support. Mendukung berbagai format audio, video, dan gambar
(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
GSM Telephony. Mendukung fungsi komunikasi GSM.
Bluetooth,EDGE, 3G dan WiFi. Mendukung komunikasi pada jaringan
(tergantung hardware).
Kamera, GPS, kompas dan accelerometer. Mendukung berbagai fitur
yang disediakan oleh hardware.
Tools Developer yang lengkap. Termasuk device emulator, tools untuk
debugging, profiling memori dan performa, plugin untuk Eclipse IDE.
2.3.1 Arsitektur Android
Android terdiri dari beberapa stack software yang terdiri dari:
Applications, Application Framework, Libraries, Android Runtime dan Kernel
Gambar II. 8 Arsitektur Platform Android [4].
1. Aplication
Application merupakan program yang langsung berhubungan dengan
user. Baik program yang merupakan bawaan dari Android sendiri maupun
program yang dibuat oleh developer menggunakan bahasa pemrograman java.
Contoh program bawaan dari platform Android sendiri adalah email client,
program SMS, calendar, maps, web browser, contact dan sebagainya.
2. Aplication Framework
Lapisan ini berisi sekumpulan API yang dapat digunakan oleh
programmer maupun core application dari Android. Lapisan ini dirancang untuk
dalam Android dapat berbagi fungsi sehingga aplikasi lain dapat
memanfaatkannya.
3. Libraries
Android mendukung beberapa library C/C++ yang digunakan pada
berbagai komponen Android. Kemampuan ini dapat diakses oleh developer
melalui Android application framework. Beberapa library diantaranya adalah:
System C library. Implementasi library C standar (libc).
Media Libraries. Mendukung berbagai format multimedia (termasuk
MPEG4,H.264, MP3, AAC, AMR, JPG, PNG).
Surface Manager. Mengatur akses ke subsistem display.
LibWebCore. Engine web browser modern.
SGL. Engine grafis 2D.
3D Library. Implementasi OpenGL ES 1.0 yang mendukung akselerasi
hardware.
FreeType. Rendering untuk bitmap dan vector font.
SQLite. Basis data relasional yang kecil namun sangat ampuh.
4. Android Runtime
Tiap aplikasi pada Android memiliki proses-nya masing-masing. Tiap
aplikasi tersebut memiliki instans dari Dalvik virtual machine (VM). Dalvik
virtual machine dirancang agar suatu device dapat menjalankan beberapa VM
secara efisien. Dalvik VM mengeksekusi file dengan format Dalvik Executable
berbasis register, dan dapat menjalankan kelas-kelas yang dikompilasi dengan
bahasa pemrograman java dan ditransformasikan menjadi format .dex. Dalvik VM
sendiri bergantung pada Kernel Linux untuk fungsi dasarnya, seperti threading
dan manajemen memori secara low-level.
5. Linux Kernel
Android menggunakan Kernel Linux versi 2.6 sebagai sistem utama.
Fungsi kernel yang digunakan antara lain untuk keamanan, manajemen memori,
manajemen proses, manajemen jaringan dan driver model. Kernel juga berfungsi
sebagai layer abstrak antara hardware dan lapisan lainnya pada software stack.
2.3.2 Siklus Hidup Aplikasi Android
Pada banyak kasus, tiap aplikasi pada Android masing-masing memiliki
Linux proses. Proses ini diciptakan untuk aplikasi tersebut pada saat kode
program tersebut akan dieksekusi, akan terus berjalan sampai tidak dibutuhkan
lagi dan sistem memerlukan memori untuk aplikasi lain. Konsep dasar program
Android adalah suatu proses pada aplikasi tidak langsung di atur oleh aplikasi
tersebut. Proses tersebut ditentukan oleh sistem melalui kombinasi : informasi
aplikasi bagi sistem, seberapa pentingnya aplikasi tersebut bagi user dan
ketersediaan memori. Contoh kasus life-cycle bug adalah IntentReceiver yang
menciptakan thread pada saat menerima intent pada method onReceiveIntent()
dan selesai dari fungsi tersebut. Setelah fungsi tersebut selesai, sistem
menganggap bahwa IntentReceiver tersebut menjadi tidak aktif sehingga ia
di dalamnya). Oleh karena itu, sistem dapat menghapus proses tersebut kapanpun
apabila dibutuhkan. Hal tersebut akan menghapus semua thread yang berjalan
pada proses tersebut. Solusi masalah ini adalah memakai Service dari
IntentReceiver, sehingga sistem mengetahui bahwa ada suatu yang aktif dalam
proses tersebut.
Sebagai programmer, kita harus mengetahui bagaimana cara yang tepat
untuk merancang aplikasi. Kesalahan pada perancangan akan membuat suatu
aplikasi akan dihentikan oleh sistem pada saat yang tidak diinginkan. Untuk
menentukan proses mana yang akan dihapus pada situasi low memory, Android
memiliki “importance hierarchy” berdasarkan komponen dan state yang sedang
berjalan. Urutan berdasarkan kepentingan tersebut adalah:
1. Foreground process. Adalah suatu proses yang dibutuhkan untuk berinteraksi
dengan user saat ini. Berbagai komponen suatu aplikasi dapat mengakibatkan
proses di dalamnya menjadi foreground proses. Suatu proses dikatakan
foreground apabila memenuhi kondisi sebagai berikut:
Menjalankan Activity pada top screen yang sedang berinteraksi
dengan user (setelah method onResume() dipanggil).
Mempunyai IntentReceiver yang sedang berjalan (method
IntentReceiver.onReceiveIntent() sedang dieksekusi).
Memilik service yang fungsi callback-nya ( Service.onCreate(),
Service.onStart() atau Service.onDestroy()) sedang dieksekusi.
Hanya akan terdapat beberapa proses seperti itu dalam sistem, proses ini
apabila memori tinggal sedikit sehingga proses foreground tidak bisa lagi
berjalan. Hal ini diperlukan untuk menjaga user interface tetap interaktif
dengan user.
2. Visible process. Adalah proses yang memegang Activity yang dapat dilihat
user pada layar tetapi tidak foreground (pada saat method onPause()
dipanggil). Hal ini dapat terjadi, sebagai contoh activity foreground muncul
dengan dialog sehingga activity sebelumnya terlihat di belakangnya. Proses ini
sangat penting dan tidak akan di hapus kecuali untuk menjaga aplikasi
foreground tetap berjalan.
3. Service process. Adalah proses yang memegang Service yang dimulai dengan
method StartService(). Meskipun proses ini secara langsung tidak dapat dilihat
oleh user, biasanya proses ini menjalankan perintah dari user (seperti memutar
lagu, men-download data dari jaringan dan lain-lain). Sistem akan tetap
membiarkan proses ini berjalan selama proses foreground dan visible masih
bisa berjalan.
4. Background process. Adalah proses yang memegang Activity yang saat ini
tidak dapat dilihat oleh user (method onStop() sedang dipanggil). Proses ini
tidak secara langsung mempengaruhi user. Apabila activity life cycle telah
dipenuhi dengan benar, sistem dapat menghapus proses ini sewaktu-waktu
untuk memberikan memori tambahan. Biasanya banyak ditemukan proses
semacam ini, sehingga proses tersebut disimpan dalam LRU (Least Recently
Used) untuk menjaga agar proses yang baru saja dilihat oleh user akan
5. Empty Process. Adalah proses yang tidak memegang suatu komponen yang
sedang aktif. Alasan mengapa membiarkan proses semacam ini adalah untuk
melakukan cache sehingga proses startup menjadi lebih cepat apabila aplikasi
tersebut akan dijalankan kembali. Sistem seringkali menghapus proses
semacam ini untuk mencapai keseimbangan dari system resource antara
cached processes dan kernel caches.
2.4 UML
Unified Modeling Language (UML) adalah bahasa spesifikasi standar
untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat
lunak. Unified Modeling Language (UML) adalah himpunan struktur dan teknik
untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya.
UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok
perangkat tool untuk mendukung pengembangan sistem tersebut. UML mulai
diperkenalkan oleh Object Management Group, sebuah organisasi yang telah
mengembangkan model, teknologi, dan standar OOP sejak tahun 1980-an.
Sekarang UML sudah mulai banyak digunakan oleh para praktisi OOP. UML
merupakan dasar bagi perangkat (tool) desain berorientasi objek dari IBM.
UML adalah suatu bahasa yang digunakan untuk menentukan,
memvisualisasikan, membangun, dan mendokumentasikan suatu sistem informasi.
UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi
objek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson. Namun demikian
UML dapat digunakan untuk memahami dan mendokumentasikan setiap sistem
standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum
dalam industri peranti lunak dan pengembangan sistem.
2.4.1 Sejarah UML
Sampai era tahun 1990 puluhan metodologi pemodelan berorientasi objek
telah bermunculan di dunia. Diantaranya adalah: metodologi booch, metodologi
coad, metodologi OOSE, metodologi OMT, metodologi shlaer-mellor, metodologi
wirfs-brock, dsb. Masa itu terkenal dengan masa perang metodologi (method war)
dalam pendesainan berorientasi objek. Masing-masing metodologi membawa
notasi sendiri-sendiri, yang mengakibatkan timbul masalah baru apabila kita
bekerjasama dengan kelompok/perusahaan lain yang menggunakan metodologi
yang berlainan.
Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang
merupakan tiga tokoh yang boleh dikata metodologinya banyak digunakan
mempelopori usaha untuk penyatuan metodologi pendesainan berorientasi objek.
Pada tahun 1995 direlease draft pertama dari UML (versi 0.8) [7]. Sejak tahun
1996 pengembangan tersebut dikoordinasikan oleh Object Management Group
(OMG – http://www.omg.org).
2.4.2 Diagram UML
UML menyediakan 10 macam diagram untuk memodelkan aplikasi
berorientasi objek, yaitu:
2. Conceptual Diagram untuk memodelkan konsep-konsep yang ada di dalam
aplikasi.
3. Sequence Diagram untuk memodelkan pengiriman pesan (message) antar
objects.
4. Collaboration Diagram untuk memodelkan interaksi antar objects.
5. State Diagram untuk memodelkan perilaku objects di dalam sistem.
6. Activity Diagram untuk memodelkan perilaku Use Cases dan objects di
dalam system.
7. Class Diagram untuk memodelkan struktur kelas.
8. Object Diagram untuk memodelkan struktur object.
9. Component Diagram untuk memodelkan komponen object.
10. Deployment Diagram untuk memodelkan distribusi aplikasi.
1. Use Case Diagram
Use case diagram menggambarkan fungsionalitas yang diharapkan dari
sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan
“bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor
dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke
sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor
adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk
melakukan pekerjaan-pekerjaan tertentu. Sebuah use case dapat meng-include
fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara
umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use
di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat
dihindari dengan cara menarik keluar fungsionalitas yang common. Sebuah use
case juga dapat meng-extend use case lain dengan behaviour-nya sendiri.
Sementara hubungan generalisasi antar use case menunjukkan bahwa use case
yang satu merupakan spesialisasi dari yang lain. Penggambaran Use case diagram
dapat di lihat dalam gambar II.9.
Gambar II. 9 Contoh Use Case Diagram.
2. Activity Diagram
Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem
yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang
mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat
menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.
Activity diagram merupakan state diagram khusus, di mana sebagian besar state
adalah action dan sebagian besar transisi di-trigger oleh selesainya state
menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem)
secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas
dari level atas secara umum.
Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih.
Aktivitas menggambarkan proses yang berjalan, sementara use case
menggambarkan bagaimana aktor menggunakan sistem untuk melakukan
aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi
tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan join) digunakan
titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Activity
diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan
objek mana yang bertanggung jawab untuk aktivitas tertentu. Contoh Activity
diagram dapat di lihat pada gambar II.10.
3. Sequence Diagram
Sequence diagram menjelaskan secara detil urutan proses yang dilakukan
dalam sistem untuk mencapai tujuan dari use case: interaksi yang terjadi antar
class, operasi apa saja yang terlibat, urutan antar operasi, dan informasi yang
diperlukan oleh masing-masing operasi. Contoh sequence diagram dapat di lihat
pada gambar II.11.
4. Class Diagram
Class diagram merupakan diagram yang selalu ada di permodelan sistem
berorientasi objek. Class diagram menunjukkan hubungan antar class dalam
sistem yang sedang dibangun dan bagaimana mereka saling berkolaborasi untuk
mencapai suatu tujuan. Penggambaran class diagram dapat di lihat dalam gambar
II.12.
Gambar II. 12 Contoh Class Diagram.
2.5 MySQL
MySQL merupakan sebuah software yang berguna sebagai suatu database
server yang cukup terkenal. Database server itu sendiri merupakan suatu software
MySQL sebagai suatu database server mempunyai beberapa kemampuan,
salah satunya harus menyediakan suatu sistem manajemen database yang dapat
mengatur bagaimana menyimpan, menambah, mengakses data dan
transaksi-transaksi database lainnya. MySQL cepat sekali berkembang, karena MySQL
merupakan suatu software yang Open Source.
MySQL adalah Relational Database Management System (RDBMS) yang
didistribusikan secara gratis dibawah lisensi GPL (General Public License).
Dimana setiap orang bebas untuk menggunakan MySQL, namun tidak boleh
dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan
turunan salah satu konsep utama dalam database sejak lama, yaitu SQL
(Structured Query Language) [2]. SQL adalah sebuah konsep pengoperasian
database, terutama untuk pemilihan atau seleksi dan pemasukan data, yang
memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.
Keandalan suatu sistem database (DBMS) dapat diketahui dari cara kerja
optimizer-nya dalam melakukan proses perintah-perintah SQL, yang dibuat oleh
user maupun program-program aplikasinya. Sebagai database server, MySQL
dapat dikatakan lebih unggul dibandingkan database server lainnya dalam query
data. Hal ini terbukti untuk query yang dilakukan oleh single user, kecepatan
query MySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan lima kali lebih
MySQL memiliki beberapa keistimewaan, antara lain :
1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi
seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan
masih banyak lagi.
2. Open Source. MySQL didistribusikan secara open source, dibawah lisensi
GPL sehingga dapat digunakan secara cuma-cuma.
3. Multiuse. MySQL dapat digunakan oleh beberapa user dalam waktu yang
bersamaan tanpa mengalami masalah atau konflik.
4. Performance tuning. MySQL memiliki kecepatan yang menakjubkan dalam
menangani query sederhana, dengan kata lain dapat memproses lebih
banyak SQL per satuan waktu.
5. Jenis Kolom. MySQL memiliki tipe kolom yang sangat kompleks, seperti
signed/unsigned integer, float, double, char, text, date, timestamp, dan
lain-lain.
6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh
yang mendukung perintah Select dan Where dalam perintah (query).
7. Keamanan. MySQL memiliki beberapa lapisan sekuritas seperti level
subnetmask, nama host, dan izin akses user dengan sistem perizinan yang
mendetail serta sandi terenkripsi.
8. Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam
skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu
tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung
9. Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan
protocol TCP/IP, Unix socket (UNIX), atau Named Pipes.
10. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada client dengan
menggunakan lebih dari dua puluh bahasa. Meskipun demikian, bahasa
Indonesia belum termasuk di dalamnya.
11. Antar Muka. MySQL memiliki interface (antar muka) terhadap berbagai
aplikasi dan bahasa pemrograman dengan menggunakan fungsi API
(Application Programming Interface).
12. Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)
yang dapat digunakan untuk administrasi basisdata, dan pada setiap
peralatan yang ada disertakan petunjuk online.
13. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam
menangani ALTER TABLE, dibandingkan basisdata lainnya semacam
40
3.1 Analisis
3.1.1 Analisis Masalah
Permasalahan pada penelitian ini adalah masih banyak organisasi dan
perusahaan yang masih belum mengoptimalkan penggunan media teknologi dan
informasi dengan media internet atau online, dan meskipun sudah ada yang
mengunakan fasilitas online hal tersebut masih dirasa kurang efektif karena
pembuatan antara aplikasi server dengan aplikasi klien harus menggunakan
bahasa pemrograman yang sama sehingga dalam pembuatan aplikasinya terbatas
dalam bahasa pemrograman tertentu. Selain itu, bagaimana mengimplementasikan
web service dengan aplikasi web dan android sebagai solusi permasalahan
tersebut.
3.1.2 Analisis Kebutuhan Data
Sistem yang akan dibangun merupakan sistem untuk menginformasikan
lowongan pekerjaan yang tersedia, profil perusahaan yang menyediakan
pekerjaan, serta profil pencari kerja. Untuk aplikasi back end yang dikelola oleh
admin dapat melakukan proses menyetujui publikasi atau penerbitan lowongan
melakukan proses pemanggilan method atau fungsi yang ada pada web service
untuk mendapatkan data lowongan pekerjaan, profil perusahaan, dan profil
pencari kerja. Maka web service harus menyediakan data lowongan pekerjaan,
profil perusahaan, dan profil pencari kerja agar aplikasi web dan android dapat
mengakses data tersebut. Sehingga untuk dibangunnya sistem ini, dibutuhkan data
berupa informasi lowongan pekerjaan yang dikelola oleh admin dan berasal dari
perusahaan yang mendaftarkan diri ke sistem lowongan pekerjaan ini.
3.1.3 Analisis Kebutuhan Non Fungsional
Kebutuhan non fungsional yang dibutuhkan untuk membangun sistem ini
terdiri dari tiga hal, yaitu : kebutuhan perangkat keras, kebutuhan perangkat lunak
dan spesifikasi kebutuhan perangkat lunak (SKPL).
3.1.3.1 Analisis Pengguna
Sistem yang akan dibangun ini digunakan oleh tiga jenis pengguna utama
yaitu admin, pengunjung umum dan pengunjung terdaftar. Admin dapat
melakukan pengelolaan data terhadap aplikasi ini seperti menyetujui untuk
menerbitkan atau publikasi lowongan dari member pemberi kerja atau perusahaan,
hapus lowongan, edit lowongan dan dapat melakukan hapus data pencari dan
pemberi kerja. Pengunjung umum hanya dapat melihat informasi lowongan kerja
dan melakukan registrasi menjadi member atau pengunjung terdaftar (pemberi
kerja atau pencari kerja). Pengunjung terdaftar terbagi menjadi 2 yaitu member
pemberi kerja (Pmk) yang dapat membuat profil perusahaan ketika melakukan
kerja (Pck) dapat melihat informasi lowongan kerja dan informasi perusahaan,
juga membuat profil pribadi ketika melakukan registrasi sebagai member atau
pengunjung terdaftar dan melakukan lamaran pekerjaan.
Tabel III. 1 Karakteristik Pengguna
Pengguna Deskripsi Usia Hak Akses Tingkat
Tabel III. 2 Karakteristik Pengguna (Lanjutan)
Pengguna Deskripsi Usia Hak Akses Tingkat
Pendidikan Pengalaman
Pencari Kerja
Adalah user yang
melakukan
registrasi sebagai
pencari kerja dan
dapat melakukan
pemberi kerja,
mengubah data
Adalah user yang
mengunjungi web
portal, dan belum
3.1.3.2 Analisis Kebutuhan Perangkat Keras
Perangkat keras yang digunakan dalam membangun sistem ini adalah :
1. Processor Intel Core 2 Duo 2.2 GHz
2. Kapasitas RAM 4 GB
3. VGA Card 512 MB
4. Kapasitas Hardisk 160 GB
5. Monitor
6. Lan Card 10/100 Mbps
7. Koneksi internet 256 Kbps
8. Keyboard & Mouse
Spesifikasi kebutuhan perangkat keras (hardware) pada mobile android
yang digunakan untuk menjalankan aplikasi mobile lowongan pekerjaan ini
adalah :
1. Processor 800 MHz
2. Kapasitas RAM 256 MB
3. Memori internal 158 MB
4. Ukuran layar 3,2 inch dengan resolusi HVGA (320x480)
5. Baterai Li-Ion 1350 mAh
Spesifikasi kebutuhan minimal perangkat keras yang digunakan untuk
membangun sistem ini adalah :
1. Processor dengan kecepatan minimal 2 GHz
2. RAM minimal 256 MB
4. Kapasitas Harddisk minimal 40 GB
5. Monitor
6. Lan Card 10/100Mbps
7. Koneksi internet minimal 64 kbps
8. Keyboard & Mouse
3.1.3.3 Analisis Kebutuhan Perangkat Lunak
Perangakat lunak yang diperlukan untuk membangun sistem ini adalah :
1. Java Development Kit versi 5 atau 6 , untuk kompilasi kode – kode program.
2. Java Runtime Edition, sebagai platform untuk menjalankan sistem.
3. Netbeans IDE, sebagai perangkat lunak yang digunakan untuk membangun
web service.
4. Eclipse 3.5, sebagai perangkat lunak yang digunakan untuk membangun
aplikasi client pada android.
5. Adobe Dreamweaver CS5 sebagai perangkat lunak yang digunakan untuk
membangun aplikasi web client.
6. Glassfish, sebagai webserver untuk aplikasi web service.
7. Apache, sebagai webserver untuk aplikasi web.
8. Android SDK, untuk pengembang aplikasi android.
9. Android Development Tool, sebagai plugin android pada eclipse.
3.1.3.4 Spesifikasi Kebutuhan Perangkat Lunak (SKPL)
Pembangunan Sistem Lowongan Pekerjaan Dengan Dukungan Web
Service ini berfungsi sebagai media informasi lowongan kerja dan sarana melamar
kerja. Semua itu akan dilakukan secara online. Fungsi utama perangkat lunak
yang dibangun adalah :
1. Registrasi Member
Proses registrasi member untuk pengunjung yang ingin bergabung
menjadi member aktif di aplikasi Lowongan Pekerjaan dengan menginputkan
data profil member lengkap yang akan disimpan ke dalam database.
2. Login
Proses sebelum masuk ke dalam sistem menu utama admin dan
member. User harus menginputkan data login member atau data login admin
agar masuk kedalam sistem. Kemudian sistem akan mengautentikasi
username dan password user. Jika login valid maka user dapat mengakses
sistem, jika login data tidak valid maka sistem akan memberikan info kepada
user bahwa username atau password tidak ditemukan.
3. Lupa Password
Fasilitas lupa password untuk mengantisipasi jika user admin dan
member lupa password untuk login ke dalam sistem. User hanya
menginputkan alamat email ke dalam sistem dan sistem akan memberikan