Anda di halaman 1dari 45

SPRING BOOT

Spring Framework
• Spring Framework Fundamental
• Spring Boot
• Instalasi dan setting Netbeans untuk Spring Boot
• Praktikum pemrograman Spring Boot
Spring Framework
• Merupakan framework open source berbasis Java yang menyediakan
infrastruktur secara komprehensif untuk develop java enterprise dengan
mudah dan cepat
• Dikembangkan oleh Rod Johnson dengan lisensi Apache 2.0 Juni 2003
• Fitur Spring
• Open Source
• Lighweight and fast
• Model View Controller
• Object Relational mapping
• AOP (Aspect Oriented Programming) Support
• IOC (Inversion of Control) atau DI (Dependency Injection)
Spring Framework Runtime
Keterangan lengkap tentang
arsitektur dasar Spring
framework runtime dapat
dibaca di :
https://www.tutorialspoint.com
/spring/spring_architecture.htm
Spring Framework MVC
• Kerangka kerja Spring Web MVC menyediakan arsitektur Model-View-
Controller (MVC) dan komponen yang siapt digunakan untuk
mengembangkan aplikasi web yang fleksibel dan loosely coupled
• Pola MVC menghasilkan pemisahan konsentrasi dari aspek aplikasi
(logika input, logika bisnis, dan logika UI), dengan sifat loosely coupling
• Model mengenkapsulasi data dari aplikasi dan secara umum terdiri dari POJO
• View bertanggung jawab untuk menampilkan data dari model dan secara
umum dirupakan dalam bentuk output HTML yang dapat dibuka oleh klien
• Controller bertanggung jawab untuk memproses permintaan
pengguna dan membangun model yang sesuai dan meneruskannya
ke view untuk ditampilkan
Spring Framework MVC

Kerangka kerja Spring-


view-controller (MVC)
model Web dirancang di
sekitar DispatcherServlet
yang menangani semua
permintaan dan respons
HTTP
Spring Framework MVC
• Alur dalam pemrosesan permintaan HTTP yang masuk ke
DispatcherServlet
1. Setelah menerima permintaan HTTP, DispatcherServlet meminta
HandlerMapping menghubungi Controller yang sesuai
2. Controller menerima permintaan dan memanggil metode service yang
sesuai berdasarkan metode GET atau POST yang digunakan, metode service
akan menetapkan data Model berdasarkan logika bisnis yang ditentukan
dan mengembalikan nama View ke DispatcherServlet
3. DispatcherServlet akan dibantu oleh ViewResolver untuk mengambil
tampilan View yang sesuai dengan permintaan tersebut
4. Setelah View selesai, DispatcherServlet meneruskan data Model
ke View yang akhirnya diberikan pada browser untuk ditampilkan
Object Relational Mapping
• Object Relational Mapping (ORM) adalah suatu metode/teknik
pemrograman yang digunakan untuk mengkonversi data dari
lingkungan bahasa pemrograman berorientasi objek (OOP) dengan
lingkungan database relasional
• ORM tersebut bertugas sebagai penghubung dan sekaligus
mempermudah kita dalam membuat aplikasi yang menggunakan
database relasional agar menjadikan tugas kita lebih efisien
Object Relational Mapping
• Kelebihan dari ORM
• Mempercepat pengembangan program contohnya, mengurangi perulangan
kode query, memudahkan pemakaian karena tabel-tabel terepresentasikan
dalam bentuk objek
• Membuat akses data menjadi lebih abstrak dan portable
• Hal ini dikarenakan ORM menghandle pen-generate-an syntax SQL berdasarkan vendor
database-nya
• Mensupport pengkapsulan business rule pada lapisan Data Access
• Men-generate boilerplate code (unit kode yang reusable) untuk fungsi dasar
CRUD (Create, Read, Update, Delete)
• Library ORM pada Java : Hibernate, Top Link, Eclipse Link,
Open JPA, MyBatis
Object Relational Mapping

ORM melakukan
pemetaan objek pada
lingkungan pemrograman
berorientasi objek dengan
tabel yang berada di
database dengan sistem
korespondensi satu-satu
( 1 objek untuk 1 tabel)
Inversion of Control
• IoC atau dikenal juga dengan dependency injection merupakan
sebuah konsep yang banyak digunakan oleh berbagai macam
framework untuk membantu programer dalam mengatur
ketergantungan antara masing-masing komponen
• Dalam konsep IoC aliran kontrol akan diatur secara terpusat yang
biasanya diletakan dalam container
• Pemrogram tidak perlu lagi mengetahui bagaimana dan kapan sebuah
komponen dapat digunakan, semua kontrol akan dikendalikan oleh
IoC
• Inversion of Control adalah prinsip dalam rekayasa perangkat
lunak yang digunakan untuk mengontrol objek atau bagian dari
program yang ditransfer ke wadah atau kerangka kerja
IOC di Spring

Spring Container
“menyuntik” objek –
objek dalam aplikasi
untuk menjadi objek
yang memiliki tanggung
jawab tertentu

Kontrol dari objek


langsung berasal dari
hasil injeksi
Spring Boot
• Spring-boot adalah sebuah framework yang merupakan kompilasi dari
beberapa elemen library spring framework
• Spring-boot diciptakan dengan tujuan untuk memudahkan para pengguna
spring framework agar dapat :
• Mudah membuat aplikasi berbasiskan spring framework
• Kontainer web aplikasi seperti tomcat, jetty atau undertow sudah terintegrasi di
dalamnya
• Menyediakan sebuah skema 'tinggal pakai' untuk menyederhanakan developer jika
menggunakan maven dalam proses development-nya
• Memungkinkan pengkonfigurasian spring framework semudah mungkin
• Menyediakan fitur-fitur yang siap pakai pada saat produksi, seperti metrics, health
checks, dan konfigurasi yang bisa ditempatkan diluar aplikasi
• Tidak menggunakan xml sebagai konfigurasi spring-nya
Spring Ecosystem
Spring Boot vs Spring

Spring Boot adalah versi Spring yang


“bundle dan portabel”
Maven
• Apache Maven adalah Java Build Tools yang menggunakan konsep
Project Object Model (POM)
• POM tersebut berisi informasi dan konfigurasi yang digunakan Maven
untuk membuat project
• Pada dasarnya POM adalah sebuath XML File yang terdapat di dalam project
Maven dan di dalam File inilah konfigurasi dari project kita berada
• Maven sudah include di dalam versi IDE JAVA terbaru
Kelebihan Maven
• Dengan Maven kita cuma akan membuat sebuah project yang bisa di buka banyak IDE
• Dengan begitu kita hanya buat satu buah project yang bisa dibuka oleh Netbeans atau Eclipse
tanpa masalah
• Dengan Maven kita tidak perlu bingung menyusun struktur susunan folder yang ada,
karena Maven akan otomatis membuatkannya, berbeda kalo kita buat project di
Eclipse atau Netbeans, susunan project akan berbeda antar satu IDE dan IDE yang
lain, bahkan terkadang IDE yang sama berbeda susunan foldernya contoh: project
Netbeans Java Application berbeda dengan Web Application susunan foldernya
padahal masih IDE yang sama
• Kita tidak perlu pusing mencari framework atau library yang dibutuhkan karena
Mavenlah yang akan mencarikan kita lewat repository-nya
• Untuk yang satu ini kita butuh koneksi internet dan repo itu akan disimpan dalam folder .m2 ,
proses download nya hanya 1 kali untuk library yang sama
Berkas POM
Isi Berkas POM
• Identifier project
• groupId : nama organisasi / perusahaan pembuat
• artifactId : nama modul / project
• version : versi project
• Contoh identifier library mysql
• groupId : mysql
• artifactId : mysql-connector-java
• version : 5.1.25
• Dependensi project. Pilihan scope dependency:
• compile : digunakan (diimport) dalam main source dan akan di-include dalam produk akhir, ini adalah pilihan default,
kalau scope dikosongkan, artinya compile
• runtime : tidak digunakan dalam source code (tidak diimport), tapi disertakan dalam produk akhir, contoh: library
MySQL
• test : digunakan (diimport) dalam test source, tapi tidak digunakan di main source, tidak diinclude dalam produk
akhir, contoh: library JUnit.
• provided : digunakan (diimport) dalam main source, tapi tiak disertakan dalam produk akhir, biasanya karena sudah
disediakan oleh container tempat aplikasi dijalankan, contoh: library javax.servlet
Menambahkan Dependency di
POM.XML
Untuk menambahkan library baru dari spring boot, buka file POM.XML, kemudian sisipkan diantara tag
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>namalibrary</artifactId>
<dependency>
Praktikum Coding
Instalasi Java dan Netbeans
• JDK yang diperlukan minimum JDK 8, tapi tidak disarankan JDK 14
• Netbeans minimum 8
• Slide ini menggunakan Netbeans 11 dan JDK 13
• Untuk melakukan pemrograman Spring, maka kita memerlukan server
Apache Tomcat
• Sediakan koneksi internet, karena Maven dependency bersifat online
Setting Netbeans untuk Spring Boot

Install Plugin Spring Boot di


Netbeans:
1. Tools->Plugin->Available Plugin
2. NB SpringBoot
3. Install (centang)
4. Restart Netbeans
1. Membuat Project Spring Maven:
->New Project
->Maven
->Spring Boot Initialzr project

Netbeans versi baru


->New Project
->Java with Maven
->Spring Boot Initialzr project
2. Konfigurasi Project Properties

default package project

nama project

versi project

deskripsi project

Sesuaikan versi Java yang


terinstall di komputer
3. Dependency Project

Untuk membuat web


sederhana, kita
memerlukan dependency
web. Sehingga, centang
web lalu next

Di versi Netbeans baru,


namanya tertulis Spring
Web
4. Directory tempat menyimpan Project

5. Project akan mendownload dependency yang dipilih tadi


Karena menggunakan Maven Project, otomatis semua dependency (library) dari project
akan selalu diupdate. Jika tidak ada di local disk, maka akan men-download dahulu
library-nya secara otomatis ketika connect ke internet.
Directory default tempat library Spring
Framework disimpan

Username PC kalian
Praktikum 1 : Hello World
• Spring Boot menggunakan konsep Spring MVC, maka kita perlu
membuat :
• Controller
• Model
• View
• Namun dalam project Hello World kita buat sedehana tanpa Model
karena tidak ada data disini
Membuat Main Class melakukan konfigurasi secara
otomati berdasarkan dependency
yang digunakan. Hanya boleh
digunakan satu kali dan itu ada di
method main()
anotasi untuk menunjukkan
bahwa class ini adalah controller

ketika di run, maka class


Main.class akan dijalankan.

buka browser, masukkan


localhost:8080/
maka spring boot akan menampilkan
nya dengan annotation @ResponBody
dimana akan menampilkan “Hello, ini
halaman home”
Output ketika di run, akan menunjukan
bahwa server berjalan dengan benar.

Hasilnya jika kita mengakses browser


dengan url localhost:8080/
Jangan lupa stop dahulu sebelum run dari source code yang sudah di edit.
Jika tidak di stop, tomcat kadang menjadi crash.

Jika crash buka Tomcat dengan cmd lalu ketikkan:


directoryTomcat/bin/shutdown.bat

Namun jika masih tetap error, solusinya adalah restart PC


Praktikum 2 : Model View Controller
• Spring Boot menggunakan konsep Spring MVC, maka kita perlu
membuat :
• Controller
• Model
• View
• Dalam project ini kita buat MVC sederhana tanpa koneksi database
• Controller akan dibuat menjadi REST Controller sehingga fungsi dari
Controller dapat dijadikan Web Service
Review : Web Service
• Web Service merupakan standard yang digunakan untuk pertukaran data antar
aplikasi atau sistem.
• Kenapa memerlukan standard?
• Karena setiap aplikasi yang melakukan pertukaran data bisa ditulis menggunakan
bahasa pemrograman yang berbeda atau berjalan pada platform yang berbeda.
• Contoh implementasi Web Service antara lain:
SOAP(Simple Object Access Protocol) dan
REST (Representational State Transfer)
Review : REST
• Arsitektur REST memiliki 6 konstrain untuk diterapkan:
• 1. Client-Server
• 2. Statless (tidak ada data client yang disimpan selama proses komunikasi)
• 3. Dapat di cache
• 4. Sistem berlapis
• 5. Code on Demand (Optional)
Review : REST
• Konsep dari REST
• REST Server
menyediakan jalur untuk akses resource atau data
• REST client
melakukan akses resource, kemudian menampilkannya atau
menggunakannya

Resource yang dihasilkan berupa teks, namun formatnya bisa bermacam-macam.

Umumnya menggunakan format JSON dan XML


Review : REST
• Salah satu kelebihan Framework Web adalah clean URL
Menggunakan URI untuk mengakses resource. Berikut merupakan
method yang digunakan:
GET: untuk resource yang hanya perlu di read saja
PUT : digunakan untuk create resource baru
DELETE : untuk menghapus resource
POST : update resource
Membuat Model
Membuat Service
Membuat Controller
Membuat Main
Response: Berupa JSON
Response: Berupa XML

Anda mungkin juga menyukai