Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri...

14

Click here to load reader

Transcript of Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri...

Page 1: Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan
Page 2: Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan

Pemrograman Java dengan Spring 4

Page 3: Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan

Pemrograman Java dengan Spring 4

Feri Djuandi

PENERBIT PT ELEX MEDIA KOMPUTINDO

Page 4: Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan

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

Page 5: Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan

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

Page 6: Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan

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

Page 7: Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan

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

Page 8: Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan

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.

Page 9: Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan

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

Page 10: Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan

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

Page 11: Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan

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.

Page 12: Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan

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.

Page 13: Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan

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:

[email protected]

Page 14: Pemrograman Java dengan Spring 4 - s3.amazonaws.com · Pemrograman Java dengan Spring 4 Feri Djuandi ©2016, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan

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