UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006
ANALISIS DAN PERANCANGAN WEB SEVICE DAN HIBERNATE ( APLIKASI DALAM DATA PROVIDER SAHAM )
RAYMON RAINTJUNG
0600644141
ANTHONY LESMANA
0600649092
FABIO TESTY
0600668085
Abstrak Tujuan dari penulisan ini adalah untuk membuat aplikasi data provider saham yang dapat menyajikan data ke aplikasi client dengan platform, hardware, dan bahasa pemrograman yang berbeda-beda. Metodologi yang digunakan untuk mengembangkan aplikasi ini adalah dengan menggunakan metode Analisis dan Perancangan yang meliputi analisa ORM dan Web Service, serta perancangan aplikasi server sebagai penyedia data saham. Adapun hasil yang dicapai dalam sistem penelitian ini adalah sebuah aplikasi data provider saham yang dapat menyediakan data-data saham kepada berbagai aplikasi client pada platform, hardware, dan bahasa pemrograman yang berbeda-beda. Dengan penerapan aplikasi data provider saham yang menggunakan web service dan ORM, diharapkan para developer dapat membuat aplikasi enterprise dengan berbasikan RAD (Rapid Application Development) dan mudah untuk di-maintenance.
Kata Kunci : Analisis, Perancangan, Web Service, Hibernate.
iv
PRAKATA
Puji syukur kami panjatkan kepada Tuhan Yang Maha Esa, karena atas rahmat dan karunia-Nya lah, kami dapat menyelesaikan penyusunan skripsi ini dalam rangka memenuhi persyaratan penyelesaian Jenjang Strata-1 di Universitas Bina Nusantara, Jakarta. Tidak lupa kami sampaikan terima kasih kepada orang tua kami atas segala dukungan, nasehat, petunjuk, doa, saran dan bimbingan serta kesempatan yang telah diberikan selama penulisan skripsi ini. Rasa terima kasih juga kami tujukan kepada : 1. Orang tua kami yang telah mendukung kami secara tidak langsung dalam pembuatan skripsi ini. 2. Rektor Universitas Bina Nusantara, Prof. Dr. Drs. Gerardus Polla, M. App.Sc. 3. Dekan Fakultas Ilmu Komputer Universitas Bina Nusantara, Ir.Sablin Yusuf,M.Sc,M.Comp.Sc 4. Ketua Jurusan Teknik Informatika, H. Muhammad Subekti, BE, M. Sc. 5. Sekretaris Jurusan Teknik Informatika, Fredy Purnomo, S.Kom., M.Kom. 6. Bapak Wiedjaja, S.Kom, selaku dosen pembimbing yang telah banyak meluangkan waktu untuk memberikan pengarahan, nasehat, saran, kritik, dan perhatian yang besar serta masukan yang sangat berharga dalam penyusunan skripsi ini. 7. Dosen-dosen Universitas Bina Nusantara, yang telah membimbing selama perkuliahan sehingga banyak memberikan masukan kepada kami untuk menyelesaikan skripsi ini.
v
8. Teman-teman dan semua pihak yang tidak dapat disebutkan satu persatu yang telah membantu dengan memberikan saran, nasehat, dorongan, semangat, dan kritik yang membangun serta bantuan lain baik langsung maupun tidak langsung. Dalam skripsi ini, kami menyadari masih adanya kekurangan. Oleh karena itu kami masih membuka kritik dan saran yang membangun demi kesempurnaan skripsi ini. Akhirnya dengan segala kerendahan hati, kami berharap semoga skripsi ini dapat berguna dan bermanfaat bagi pihak-pihak yang memerlukannya.
Jakarta, Januari 2006
Penulis
vi
DAFTAR ISI Halaman Judul Luar ....................................................................................................... i Halaman Judul Dalam .................................................................................................... ii Halaman Persetujuan Hardcover .................................................................................... iii Abstrak ........................................................................................................................... iv Prakata ............................................................................................................................ v Daftar Isi ........................................................................................................................ vii Daftar Tabel ................................................................................................................... xii Daftar Gambar ................................................................................................................xiv
BAB 1 PENDAHULUAN 1.1 Latar Belakang .......................................................................................... 1 1.2 Ruang Lingkup .......................................................................................... 2 1.3 Tujuan dan Manfaat .................................................................................. 3 1.4 Metodologi ................................................................................................ 3 1.5 Sistematika Penulisan ............................................................................... 4 BAB 2 LANDASAN TEORI 2.1 Saham ........................................................................................................ 6 2.2 J2EE ........................................................................................................... 7 2.3 System Architecture .................................................................................. 8 2.3.1 Arsitektur 2-Tier ............................................................................... 9 2.3.2 Arsitektur 3-Tier .............................................................................. 10 2.3.3 Arsitektur n-Tier ............................................................................... 11
vii
2.3.4 Arsitektur Enteprise .......................................................................... 13 2.4 Penerapan MVC ........................................................................................ 15 2.4.1 Model …………..……..................................................................... 15 2.4.1.1 The Paradigm Mismatch…………..…… ............................... 16 2.4.1.2 Alternatif-alternatif pada Persistence Layer…………..…….. 26 2.4.1.3 Object Relational Mapping (ORM)…………..…… .............. 29 2.4.1.3.1 Apa itu ORM?…………..…… .......................................... 30 2.4.1.3.2 Permasalahan-permasalahan Umum ORM…………..…..32 2.4.1.3.3 Mengapa ORM?…………..…… ....................................... 34 2.4.1.3.4 Hibernate…………..…… .................................................. 36 2.4.2 View……..……..…… ...................................................................... 37 2.4.3 Controller…………..…… ................................................................ 38 2.5 HTTP (Hyper Text Transfer Protocol)…………..……............................ 38 2.6 Common Gateway Interface(CGI)…………..…….................................. 40 2.7 Java Servlets…………..…….................................................................... 40 2.8 Java Server Pages(JSP) ............................................................................. 41 2.9 JSP Tags…………..…… .......................................................................... 42 2.10 Java Beans…………..……..................................................................... 42 2.11 Java Server Faces…………..…… .......................................................... 44 2.12 Web Service…………..…… .................................................................. 49 2.12.1 Karakteristik Web Service…………..…… ................................... 51 2.12.2. Teknologi-teknologi Utama Pada Web Service…………..……... 53 BAB 3 ANALISIS DAN PERANCANGAN SISTEM 3.1 Spesifikasi Rumusan Rancangan ............................................................... 56 viii
3.2 Analisis Masalah .......... ............................................................................. 57 3.2.1 Penggunaan SQL dalam Java ........................................................... 57 3.2.2 Pengembangan Aplikasi Interface dan MVC dalam Web ............... 58 3.2.3 Penyajian Data dan Integritas Aplikasi ............................................ 59 3.2.3 Analisis Data Provider Saham ......................................................... 59 3.3 Usulan Pemecahan Masalah...................................................................... 60 3.3.1 Object Relational Mapping(ORM) .................................................. 60 3.3.2 Java Server Faces ............................................................................. 61 3.3.3 Web Service...... ............................................................................... 66 3.4 Perancangan Aplikasi Server .................................................................... 67 3.4.1 Gambaran Umum .............................................................................. 67 3.4.2 UseCase dari Sistem Aplikasi Saham ............................................... 68 3.4.3 Class Diagram dari Sistem Aplikasi Saham...................................... 72 3.4.4 Sequence Diagram ............................................................................ 82 3.4.4.1 Sequence Register .................................................................... 82 3.4.4.2 Sequence Update Account ....................................................... 83 3.4.4.3 Sequence Download Data ........................................................ 84 3.4.4.4 Sequence Penyajian Data ......................................................... 85 3.5 Spesifikasi Modul Aplikasi Server ........................................................... 86 3.5.1 Spesifikasi Modul Download Data .................................................. 86 3.5.2 Spesifikasi Modul Registrasi ............................................................ 87 3.5.3 Spesifikasi Modul Update Account .................................................. 87 3.5.4 Spesifikasi Modul Penyajian Data ................................................... 88 3.6 Perancangan Layar
................................................................................ 89 ix
3.7 Perancangan Basis Data ............................................................................ 90 3.7.1 Tabel Master User …………..…… .................................................. 90 3.7.2 Tabel Master Stock …………..…… ................................................ 91 3.8 Perancangan ORM............... ................................................................... ...92 3.8.1 Tipe Data Hibernate .......................................................................... 98 3.8.2. Generator Class pada Hibernate....................................................... 99 3.9. Perancangan Web Service.......................................................................100 BAB 4 IMPLEMENTASI DAN EVALUASI 4.1 Implementasi Sistem..... .......................................................................... .102 4.1.1 Kebutuhan Perangkat Keras........................................................... .102 4.1.2 Kebutuhan Perangkat Lunak..... ..................................................... .103 4.2 Cara Pneggunaan Aplikasi Data Provider Saham.....................................104 4.2.1 Proses Registrasi...... ...................................................................... .104 4.2.1.1 Halaman Login...................................................................... .105 4.2.1.2 Halaman Register...... ............................................................ .105 4.2.1.3 Halaman Utama..................................................................... 106 4.2.2 Proses Pembuatan Web Service.................................................... . 108 4.2.3 Proses Gambaran Web Service.......................................................111 4.2.3.1 Fungsi-fungsi yang disediakan dalam Web Service.............. 111 4.2.3.2 Return Value dan Parameter dari fungsi yang disediakan oleh Web Service..................................................112 4.2.3.3 Definisi Tipe Data Baru pada Web Service............................113 4.2.3.4 Lokasi pengaksesan Web Service...........................................115 4.2.3.5 Metode pengaksesan Web Service..........................................115 x
4.2.4 Proses Pengaksesan Data melalui Web Service...............................116 4.3 Evaluasi.....................................................................................................120
BAB 5 KESIMPULAN DAN SARAN 5.1 Simpulan ................................................................................................ 125 5.2 Saran ....................................................................................................... 126 DAFTAR PUSTAKA………………………………………………………………...127 RIWAYAT HIDUP…………………………………………………………………..128
xi
DAFTAR TABEL
Tabel 2.11.1. JSF Core Tags
46
Tabel 2.11.2 JSF HTML Tags
46
Tabel 2.11.3 Basic HTML Tag Attributes
47
Tabel 2.11.4 HTML Pass-Through Attributes
48
Tabel 2.11.5 DHTML Event Attributes
49
Tabel 3.4.2.2 Use Case Description dari Use Case Download Data
68
Tabel 3.4.2.3 Use Case Description dari Use Case Registrasi
68
Tabel 3.4.2.4 Use Case Description dari Use Case Update Account
69
Tabel 3.4.2.5 Use Case Descrption dari Use Case Penyajian Data
70
Tabel 3.7.1.1 Master user
90
Tabel 3.7.1.2 Contoh Tabel User
90
Tabel 3.7.2.1 Tabel User Stock
91
Tabel 3.7.2.2 Contoh Tabel Stock
91
Tabel 3.8.1.1 Tabel Java Primitive Mapping Types
97
Tabel 3.8.1.2 Tabel Date and Time Mapping Types
97
Tabel 3.8.1.3 Tabel Large Object Mapping Types
98
Tabel 3.8.1.4 Tabel Various JDK Mapping Types
98
Tabel 3.8.2.1 Tabel Generator Class
99
xii
Tabel 4.3.1 Uji Kecepatan Data untuk 1 Concurrency User
119
Tabel 4.3.2 Uji Kecepatan Data untuk 5 Concurrency User
119
Tabel 4.3.3 Uji Kecepatan Data untuk 10 Concurrency User
120
Tabel 4.3.4 Uji Kecepatan Data untuk 15 Concurrency User
120
Tabel 4.3.5 Uji Kecepatan Data untuk 20 Concurrency User
121
Tabel 4.3.6 tabel Perbandingan Concurrency User dengan Rata-rata Waktu Pengaksesan
121
xiii
DAFTAR GAMBAR
Gambar 2.2.1.1 Arsitektur 2-Tier
8
Gambar 2.2.2.1 Arsitektur 3-Tier
10
Gambar 2.2.3.1 Arsitektur n-Tier
11
Gambar 2.2.4.1 Arsitektur Enterprise
13
Gambar 2.3.1.1.1 UML class diagram sederhana untuk entity user dan billing details
15
Gambar 2.3.1.1.2 User memiliki class Address
17
Gambar 2.3.1.1.3 Penggunaan inheritance untuk strategi billing yang berbeda
19
Gambar 2.1.1.1 Hubungan SOAP, UDDI, dan WSDL
54
Gambar 3.4.1.1 Gambaran Umum Rancangan Aplikasi Server
66
Gambar 3.4.2.1 Use Case Diagram
67
Gambar 3.4.3.1 Class Diagram Aplikasi Data Provider Saham
71
Gambar 3.4.3.2 Class User
72
Gambar 3.4.3.3 Class Stock
73
Gambar 3.4.3.4 Class StockDownloader
74
Gambar 3.4.3.5 Class YahooStockDownloader
74
Gambar 3.4.3.6 Class DownloadSchedulerJob
76
Gambar 3.4.3.7 Class DownloadScheduler
76
Gambar 3.4.3.8 Class StockCore
77
Gambar 3.4.3.9 Class UserBackingBean
79
Gambar 3.4.3.10 Class HibernateUtil
80 xiv
Gambar 3.4.4.1.1 Sequence Diagram Register
82
Gambar 3.4.4.2.1 Sequence Diagram Update Account
83
Gambar 3.4.4.3.1 Sequence Diagram Download Data
84
Gambar 3.4.4.4.1 Sequnce Diagram Penyajian Data
85
Gambar 3.6.1 Halaman Login
88
Gambar 3.6.2 halaman Register
88
Gambar 3.6.3 Halaman Utama
89
Gambar 4.2.1.1 Halaman Login
104
Gambar 4.2.1.2 Halaman Register
105
Gambar 4.2.1.3 Halaman Utama
106
Gambar 4.2.4.1 Contoh Tampilan Aplikasi Client
118
Grafik 4.3.7 Grafik Kenaikan Rata-rata Laman Waktu Pengaksesan
122
xv