Belajar Spring Boot - Memulai Aplikasi Pertama
Episode 3 of 24

Belajar Spring Boot - Memulai Aplikasi Pertama

Episode praktik pertama: membuat project dengan Spring Initializr, memahami struktur direktori standar src/main/java dan src/main/resources, menjalankan aplikasi dengan embedded Tomcat dan jar executable, serta mengelola konfigurasi dasar di application.properties.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Semua teori di dua episode sebelumnya sekarang akan menjadi nyata. Episode 3 adalah titik awal praktik kalian: membuat project Spring Boot pertama dari nol, memahami struktur direktori yang dihasilkan, menjalankan aplikasi dalam beberapa cara, dan membuat endpoint pertama yang benar-benar merespons.

Pastikan environment dari episode 0 sudah siap — JDK 21, Maven wrapper, dan internet untuk mengunduh dependency. Mari kita mulai!

Membuat Project dengan Spring Initializr

Melalui Web UI

Cara paling mudah adalah membuka https://start.spring.io, memilih build tool Maven, bahasa Java, versi Spring Boot 3.4.x, dan Java 21. Tambahkan dependency Spring Web, lalu klik Generate. File ZIP berisi project lengkap akan terunduh — ekstrak dan buka di IDE.

Melalui Command-Line

Untuk pengguna terminal, cara yang setara bisa dilakukan dengan curl ke endpoint starter Spring Initializr. Kita sudah mencobanya di episode 0:

Generate project via curl
curl https://start.spring.io/starter.tgz \
  -d type=maven-project -d language=java \
  -d bootVersion=3.4.1 -d javaVersion=21 \
  -d groupId=com.example -d artifactId=belajar-spring-boot \
  -d name=belajar-spring-boot -d packageName=com.example \
  -d dependencies=web,devtools \
  | tar -xzvf -
cd belajar-spring-boot

Project yang dihasilkan siap dibuka di IDE favorit kalian. Semua baris perintah curl di atas bisa dijalankan berulang — hasilnya project baru dengan nama yang sama akan menimpa folder lama.

Struktur Direktori Standar

Setelah project dibuat, struktur direktori standarnya adalah:

Struktur project Spring Boot
belajar-spring-boot/
├── src/main/java/com/example/
│   └── BelajarSpringBootApplication.java
├── src/main/resources/
│   ├── application.properties
│   └── static/
├── src/test/java/com/example/
│   └── BelajarSpringBootApplicationTests.java
├── pom.xml
└── mvnw
  • src/main/java: kode sumber Java — home dari kelas utama dan semua komponen.
  • src/main/resources: file konfigurasi, template, dan resource statis.
  • src/test/java: kode test dengan JUnit 5.
  • pom.xml: definisi dependency dan konfigurasi build Maven.
  • mvnw: Maven wrapper, memungkinkan build tanpa Maven terinstall global.

Kelas utama BelajarSpringBootApplication berisi @SpringBootApplication dan method main — inilah titik masuk aplikasi yang sudah kita bahas di episode 2.

Menjalankan Aplikasi dengan Embedded Tomcat

Mode Development

Jalankan aplikasi lewat Maven wrapper:

Jalankan aplikasi di development
./mvnw spring-boot:run

Perintah ./mvnw spring-boot:run mengunduh dependency, meng-compile kode, lalu memulai embedded Tomcat. Perhatikan log Started BelajarSpringBootApplication — saat itu aplikasi sudah melayani request di port 8080.

Jar Executable

Untuk production, build aplikasi menjadi jar yang bisa dijalankan:

Build dan jalankan jar
./mvnw clean package
java -jar target/belajar-spring-boot-0.0.1-SNAPSHOT.jar

Maven memproduksi jar executable — jar yang berisi semua dependency dan web server embedded. Inilah keunggulan Spring Boot: satu artefak bisa dijalankan di server mana pun yang memiliki JVM, tanpa install Tomcat.

Membuat Endpoint REST Pertama

Controller Hello World

Buat file baru di src/main/java/com/example bernama HelloController.java:

Endpoint REST pertama
package com.example;
 
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class HelloController {
 
    @GetMapping("/hello")
    public String hello() {
        return "Halo dari Spring Boot!";
    }
}

Annotation @RestController menandai class sebagai controller web, dan @GetMapping memetakan method ke request HTTP GET pada path /hello. Body yang dikembalikan otomatis dikonversi menjadi respons HTTP.

Menguji Endpoint

Mulai ulang aplikasi (atau tunggu auto-restart jika spring-boot-devtools aktif), lalu tes:

Tes endpoint pertama
curl http://localhost:8080/hello

Perintah curl http://localhost:8080/hello harus mengembalikan teks Halo dari Spring Boot!. Selamat — kalian baru saja menjalankan aplikasi web pertama dengan Spring Boot.

Konfigurasi Dasar application.properties

Mengubah Port dan Property Lain

Pusat konfigurasi ada di src/main/resources/application.properties. Formatnya key=value. Contoh konfigurasi dasar:

application.properties dasar
server.port=8081
spring.application.name=belajar-spring-boot
logging.level.com.example=DEBUG
spring.jackson.default-property-inclusion=non_null

Ubah port lalu jalankan ulang — aplikasi sekarang melayani di port 8081. Semua konfigurasi Spring Boot mengikuti pola module.area.nama-property, dan referensi lengkapnya tersedia di Spring Boot Reference Documentation.

Alternatif application.yml

Selain .properties, Spring Boot mendukung format YAML dengan hierarki yang lebih rapi. Contoh konfigurasi yang sama:

application.yml
server:
  port: 8081
spring:
  application:
    name: belajar-spring-boot
logging:
  level:
    com.example: DEBUG

Pilih satu format dan konsisten — kalian tidak boleh memiliki kedua file tersebut bersamaan karena Spring Boot hanya membaca satu. Perbandingan keduanya akan kita bahas lebih dalam di episode 8.

Penutup

Episode 3 menutup fondasi praktik kalian: membuat project dengan Spring Initializr lewat web atau curl, memahami struktur src/main/java, src/main/resources, dan pom.xml, menjalankan aplikasi dengan embedded Tomcat melalui ./mvnw spring-boot:run atau jar executable, membuat endpoint REST pertama, dan mengelola konfigurasi dasar.

Inti yang harus dibawa pulang:

  • Spring Initializr menghasilkan project standar; gunakan web UI atau curl untuk membuatnya.
  • Kelas utama dengan @SpringBootApplication adalah titik masuk aplikasi.
  • ./mvnw spring-boot:run menjalankan aplikasi dengan embedded Tomcat di port default 8080.
  • ./mvnw clean package menghasilkan jar executable untuk production.
  • @RestController dan @GetMapping membuat endpoint REST pertama kalian.
  • application.properties atau application.yml adalah pusat konfigurasi aplikasi.

Di episode 4 selanjutnya kita akan membahas dependency injection dan bean management — konsep bean, annotation @Component, @Service, @Repository, dan @Controller, constructor vs field injection, scope singleton dan prototype, serta lifecycle callbacks. Fondasi ini dipakai di hampir semua episode berikutnya.

Belajar Spring Boot - Memulai Aplikasi Pertama | Belajar Spring Boot