Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri...
Click here to load reader
Transcript of Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri...
Pemrograman Java dengan Spring 4
Pemrograman Java dengan Spring 4
Feri Djuandi
PENERBIT PT ELEX MEDIA KOMPUTINDO
Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan pertama kali oleh Penerbit PT Elex Media Komputindo Kelompok Gramedia, Anggota IKAPI, Jakarta 2016 [email protected]
716050873 ISBN: 978-602-02-8668-6
Dilarang keras menerjemahkan, memfotokopi, atau memperbanyak sebagian atau seluruh isi buku ini tanpa izin tertulis dari penerbit. Dicetak oleh Percetakan PT Gramedia, Jakarta Isi di luar tanggung jawab percetakan
vii
Daftar Isi Kata Pengantar ............................................................................. v Daftar Isi .................................................................................... vii
BAB 1 MEMPERSIAPKAN SISTEM................................. 1
1.1 Memeriksa Instalasi Java.......................................................4 1.2 Mempersiapkan Maven ........................................................6 1.3 Membuka Proyek Maven.....................................................10
BAB 2 MENGENAL SPRING......................................... 13
2.1 Inversion of Control dan Dependency Injection ......................14 2.2 Arsitektur Spring ................................................................18 2.3 Proyek Spring dengan Maven..............................................23 2.4 Mengenal pom.xml ............................................................27 2.5 Membuat Aplikasi yang Pertama .........................................31 2.6 Mengemas Proyek Maven ...................................................36
BAB 3 LEBIH LANJUT DENGAN DEPENDENCY INJECTION .......................................................40
3.1 Setter Injection dan Constructor Injection...............................40 3.2 Autowiring dengan XML......................................................50 3.3 Autowiring dengan Annotation ............................................69
BAB 4 AKSES DATABASE DENGAN JDBC STANDAR ...86
4.1 Mempersiapkan Database ..................................................87 4.2 Akses Database dengan JDBC.............................................87 4.3 Menggunakan JdbcTemplate .............................................100 4.4 Menggunakan JdbcDaoSupport .........................................109
viii
BAB 5 INTEGRASI SPRING DAN HIBERNATE ........... 119
5.1 Memulai Hibernate...........................................................120 5.2 Operasi Batch .................................................................143 5.3 Mengenal Hibernate Query Language................................144
5.3.1 Klausa FROM................................................................145 5.3.2 Klausa AS.....................................................................145 5.3.3 Klausa SELECT ..............................................................146 5.3.4 Klausa WHERE .............................................................146 5.3.5 Klausa ORDER BY..........................................................146 5.3.6 Klausa GROUP BY.........................................................147 5.3.7 Menggunakan Parameter ...............................................147 5.3.8 Klausa UPDATE .............................................................148 5.3.9 Klausa DELETE ..............................................................148 5.3.10 Klausa INSERT ..............................................................148
5.4 Menjalankan Native SQL..................................................149
BAB 6 APLIKASI MODEL-VIEW-CONTROLLER .......... 154
6.1 Mengenal Konsep MVC....................................................154 6.1.1 Controller .....................................................................157 6.1.2 Model ..........................................................................158 6.1.3 View ............................................................................158
6.2 Aplikasi Web dengan MVC ..............................................158
BAB 7 BEKERJA DENGAN FORM............................... 184
7.1 Validasi pada Form..........................................................185 7.2 Tag Spring-form ...............................................................209
7.2.1 Tag Checkbox...............................................................209 7.2.2 Tag Checkboxes............................................................211 7.2.3 Tag Errors.....................................................................213 7.2.4 Tag Form......................................................................215 7.2.5 Tag Hidden ..................................................................216 7.2.6 Tag Input ......................................................................217 7.2.7 Tag Label .....................................................................219 7.2.8 Tag Option...................................................................220 7.2.9 Tag Options..................................................................222 7.2.10 Tag Password ...............................................................223 7.2.11 Tag Radiobutton............................................................225
ix
7.2.12 Tag Radiobuttons...........................................................227 7.2.13 Tag Select ....................................................................228 7.2.14 Tag Textarea.................................................................230
BAB 8 APLIKASI MVC DENGAN DATABASE ...............233
8.1 Operasi CRUD.................................................................234 8.2 Hibernate dengan MS SQL Server......................................262
8.2.1 Instalasi JDBC Driver MS SQL Server ...............................262 8.2.2 Konfigurasi Koneksi Database.........................................263
8.3 Mengemas Aplikasi Web..................................................266
BAB 9 INTEGRASI SPRING DENGAN MYBATIS.........270
9.1 Mengenal MyBatis ...........................................................271 9.2 Aplikasi dengan MyBatis ..................................................274 9.3 Memanggil Stored Procedure ............................................289
BAB 10 MEMBANGUN WEB SERVICES........................292
10.1 Perjalanan Sistem Terdistribusi ...........................................292 10.2 Mengenal Web Services...................................................298 10.3 REST pada Spring ............................................................301 10.4 Membuat Konsumer Web Services .....................................313 10.5 Konsumer Non-Java..........................................................320
BAB 11 LEBIH LANJUT DENGAN RESTFUL WEB SERVICES .......................................................324
11.1 CRUD pada Web Services ................................................324 11.2 Membuat Konsumer CRUD ................................................344 11.3 Integrasi Spring dengan Jersey ..........................................351
BAB 12 PENUTUP .......................................................375
Tentang Penulis .........................................................................377
1
Mempersiapkan Sistem
Pada masa kini, istilah framework bagi seorang programmer komputer
bukanlah sesuatu yang asing. Framework di dalam sebuah bahasa
pemrograman komputer, secara umum bisa dijabarkan sebagai sebuah
kerangka kerja yang mengatur pembuatan aplikasi, berdasarkan:
1. Struktur program. Framework mengatur pola atau cara pemrog-
raman mengikuti struktur yang ditetapkan oleh framework tersebut.
Pada saat menggunakan sebuah framework, seorang programmer
tidak bisa sesukanya membuat program mengikuti caranya sendiri,
tetapi dia harus mengikuti struktur dan aturan baku yang dibuat di
dalam framework itu. Cara ini mengarahkan semua programmer
supaya bekerja mengikuti pola yang seragam. Walaupun kesannya
kaku, namun sesungguhnya manfaat positifnya jauh lebih besar
daripada kebebasan yang dikorbankan.
Pertama, pola kerja yang dibakukan itu tentunya adalah hasil riset
dan pengalaman kolektif para pembuat framework itu sehingga
dihasilkan sekumpulan best practices yang sudah teruji dan terjamin
kualitasnya. Dengan demikian, baik programmer junior maupun
senior, diarahkan untuk menggunakan teknik pemrograman yang
serupa sehingga celah perbedaan tingkat keterampilan dan penge-
tahuan akan dipersempit. Pastinya perbedaan level keduanya tetap
ada sesuai jam terbang yang mereka miliki, namun siklus pembela-
jarannya bisa dipersingkat dengan menggunakan framework.
2
Kedua, framework memungkinkan program ditulis dengan gaya yang
konsisten. Hal ini akan memudahkan para programmer secara
kolaboratif melakukan pengembangan dan pemeliharaan aplikasi,
bahkan oleh programmer lain yang bukan pembuat program awalnya
karena satu sama lain bisa membaca kode programnya dengan relatif
mudah. Cara ini menghindari ketergantungan pada satu orang
programmer, dan memungkinkan satu sama lain mengambil alih
pekerjaan tersebut. Hal ini tidak berarti memberangus kebebasan
programmer untuk berkreasi, namun dalam konteks ini, kesera-
gaman memang sungguh-sungguh dibutuhkan.
2. Kumpulan komponen. Sebuah framework berisi sekumpulan kom-
ponen atau library yang siap digunakan oleh programmer. Karena
sudah tersedia di dalam framework maka programmer bisa langsung
menggunakannya. Hal ini sangat menguntungkan, baik dari sisi
tenaga maupun dari sisi waktu pengembangan yang dipersingkat.
Komponen yang siap digunakan itu (reusable) menghindarkan upaya
untuk pembuatan yang berulang-ulang pada setiap proyek aplikasi.
Selalu ada harga yang harus dibayar untuk setiap pengembangan
sebuah komponen: tenaga dan waktu. Dibutuhkan jalan yang
panjang untuk membuat komponen, melakukan uji coba, memper-
baiki cacat dan membuat dokumentasi, sampai komponen tersebut
teruji stabil dan berfungsi baik dalam berbagai kondisi. Istilah "re-
invent the wheel" adalah ungkapan yang sering digunakan untuk
menggambarkan situasi ini. Seseorang sudah menemukan roda di
masa lampau, jadi kita tidak perlu berkali-kali menemukan kembali
roda itu lagi dari nol -kita tinggal menggunakannya karena ia sudah
ada.
Spring adalah sebuah framework yang dibuat untuk bahasa pemrograman
Java. Spring dapat digunakan untuk membangun aplikasi Java, baik yang
berbentuk aplikasi console (aplikasi berbentuk teks seperti DOS yang
3
dijalankan pada command shell), aplikasi GUI (aplikasi yang memiliki
tampilan grafikal seperti Windows), maupun aplikasi web yang berjalan
pada browser. Spring adalah framework yang banyak mendapat tempat di
hati para programmer Java. Ada banyak artikel, buku, dokumentasi,
referensi, forum yang bertebaran di Internet membahas Spring. Juga ada
begitu banyak aplikasi-aplikasi komersial hingga yang setingkat enterprise
ditulis menggunakan Spring. Hal ini pastinya sangat membesarkan hati
karena menandakan perusahaan-perusahaan menaruh kepercayaan besar
pada framework ini sebagai landasan pengembangan aplikasi-aplikasi
bisnisnya. Tentu saja selain Spring, ada beberapa framework Java lainnya
yang cukup terkenal, seperti JSF dan Struts. Dan semua itu masing-
masing memiliki keunikan dan kelebihan tersendiri.
Versi pertama dari Spring framework dibuat oleh Rod Johnson yang
dirilis bersamaan dengan publikasi bukunya yang berjudul "Expert One-
on-One J2EE Design and Development" diterbitkan oleh Wrox di bulan
Oktober 2002. Framework tersebut dirilis di bawah lisensi Apache 2.0 dan
bersifat open source sehingga bebas untuk digunakan oleh siapa pun tanpa
dipungut biaya. Kode program Spring framework bersifat publik dan
bebas untuk digunakan, serta dimodifikasi dari versi aslinya. Hingga hari
ini, Spring telah dikembangkan belasan tahun oleh komunitas pengguna
Spring. Versi-versi yang lebih baru telah dirilis, serta semakin diper-
lengkapi dari waktu ke waktu. Ada banyak programmer yang berkon-
tribusi di dalam proyek ini sehingga versi Spring saat ini sudah jauh
berkembang dari versi yang ditulis oleh Rod Johnson pertama kali. Spring
framework versi 4.2.0 dirilis pada bulan Juli 2015, dan versi framework
inilah yang menjadi acuan untuk penulisan buku ini.
Bagian pertama buku ini dimaksudkan untuk memberikan pengenalan
Spring framework dan dasar-dasarnya secara sederhana, dengan harapan
konsep framework ini dapat dipahami secara mudah. Bagian-bagian
4
selanjutnya akan membahas penggunaan Spring untuk membangun
aplikasi-aplikasi Java, disertai contoh-contoh kode program.
Sistem yang menjadi acuan pada pembahasan buku ini adalah:
• Sistem operasi: MS Windows
• Java IDE: Eclipse
• Application Server: Apache Tomcat
Tentu saja ini bukan aturan baku. Anda bebas untuk menggunakan
sistem yang sesuai dengan kebiasaan, misalnya sistem operasi Linux atau
Mac OS daripada MS Windows. Demikian pula Integrated Development
Environment (IDE) yang digunakan, bisa berbeda dari yang digunakan
oleh penulis, misalnya NetBeans. Untuk application server pun, Anda
memiliki kebebasan menggunakan sistem yang berbeda, seperti JBoss atau
GlassFish. Bagaimana cara mendapatkan dan menginstal Java, Eclipse,
serta Tomcat, tidak akan dibahas pada bagian ini. Diasumsikan semua
perangkat lunak itu sudah ada di dalam komputer kerja, dan sekarang
siap digunakan. Sebelum beranjak lebih jauh, mari kita melakukan peme-
riksaan sistem terlebih dahulu untuk memastikan instalasi telah dilakukan
dengan benar.
1.1 Memeriksa Instalasi Java
Java yang digunakan pada pembahasan buku ini adalah versi 1.7. Anda
dapat juga menggunakan versi yang lebih baru. Versi Java minimum yang
dapat digunakan dengan Spring 4.x adalah 1.6. Berikut ini langkah-
langkah pemeriksaan instalasi Java.
1. Pastikan variabel sistem yang bernama JAVA_HOME sudah dibuat
dan menunjuk ke folder di mana lokasi Java diinstal.
• Jalankan Control Panel System Advanced System Settings.
• Klik tombol Environment Variables.
5
Gambar 1.1 Konfigurasi Environment Variables.
Jika variabel tersebut tidak ditemukan pada bagian variabel sistem
atau variabel user, silakan membuatnya sendiri secara manual dengan
tombol New. Atau, jika variabel tersebut menunjuk ke folder yang
salah, silakan mengubahnya menggunakan tombol Edit.
Gambar 1.2 Konfigurasi variabel sistem.
377
Tentang Penulis
FERI DJUANDI adalah seorang praktisi Teknologi Informasi, lulus dari
sebuah perguruan tinggi pada jurusan Teknik Elektro. Berpengalaman
dalam pengembangan perangkat lunak (desktop, web dan mobile),
Data warehouse & Business Intelligence, integrasi sistem multi-platform,
jaringan komputer dan keamanan, Project Management, Systems
Development Life Cycle, Business Continuity Management & Disaster
Recovery Planning, Lean Six-sigma.
Penulis berkarier sebagai profesional di industri jasa keuangan,
distribusi & logistik, dan saat ini menekuni pengembangan bisnis di
bidang kesehatan. Di waktu senggangnya penulis tetap aktif menulis
dan melakukan riset berbagai teknologi terkini seperti mobile
programming, cloud computing, dan big data.
Penulis dapat dihubungi pada alamat email:
378
Sertifikasi:
Fellow Life Management Institute, oleh Life Office Management Association (LOMA), Amerika Serikat.
Associate Customer Service, oleh LOMA.
Associate Reinsurance Administration, oleh LOMA.
Microsoft Certified System Engineer, oleh Microsoft.
Microsoft Certified Database Administrator, oleh Microsoft.
Certified PowerBuilder Developer, oleh Powersoft.
Publikasi:
"Jurus Baru Pemrograman SQL Server 2005" diterbitkan oleh PT Elex Media Komputindo, November 2006.
"Tips & Trik SQL Server 2000" diterbitkan oleh PT Elex Media Komputindo, November 2004.
"Tips & Trik PowerBuilder" diterbitkan oleh PT Elex Media Komputindo, Maret 2003.
"Pemrograman PowerBuilder 8.0 dengan SQL Server 2000" diterbitkan oleh PT Elex Media Komputindo, November 2002.
"SQL Server 2000 untuk Profesional" diterbitkan oleh PT Elex Media Komputindo, Juli 2002.
"Pemrograman pada Pocket PC" diterbitkan oleh PT Elex Media Komputindo, September 2001.
Berbagai artikel komputer di www.tobuku.com.
Catatan:
Untuk melakukan pemesanan buku, hubungi Layanan Langsung PT Elex Media Komputindo: Gramedia Direct Jl. Palmerah Barat No. 29-37, Jakarta 10270 Telemarketing/CS: 021-53650110/1 ext: 3901/3902/3292/3427