Skip to main content

Membuat Project

info

Materi ini dibuat pada tahun 2025, jika dikemudian hari ada perubahan/update silahkan menyesuaikan.

1️⃣ Inisialisasi Proyek

Gunakan Spring Initializr untuk membuat struktur proyek dengan cepat. Pilih pengaturan berikut:

  • Project: Maven (atau Gradle).
  • Language: Java (Versi 17 atau 21).
  • Spring Boot Version: 4.x.x.
  • Dependencies:
    • Spring Data JPA: Untuk akses database melalui Hibernate.
    • MySQL Driver: Driver JDBC untuk koneksi ke MySQL.

2️⃣ Konfigurasi Database

Setelah proyek diunduh dan dibuka di IDE (seperti IntelliJ IDEA, Eclipse, VSCode atau Netbeans), buka file src/main/resources/application.properties dan tambahkan konfigurasi berikut:

spring.datasource.url=jdbc:mysql://localhost:3306/nama_databases
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.username=user_mysql
spring.datasource.password=password_user_mysql
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect

# turn off spring boot banner (optional)
spring.main.banner-mode=off

logging.level.root=warn

3️⃣ Membuat Model / Entity

Buat kelas Java dan tandai dengan anotasi @Entity agar Hibernate memetakannya ke tabel database.

Kita akan membuat entity Student yang nantinya akan dimapping / dipetakan ke dalam database dengan nama table student:

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;

@Entity
@Table(name = "student")
public class Student {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(name = "first_name")
private String firstName;

@Column(name = "last_name")
private String lastName;

@Column(name = "email")
private String email;

public Student() {
}

public Student(String firstName, String lastName, String email) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public String getLastName() {
return lastName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

@Override
public String toString() {
return "Student [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + ", email=" + email + "]";
}
}

4️⃣ Membuat Main App

Disini kita akan membuat main application yang nantinya akan kita jalankan di Command Line. Update Main Application Spring Boot seperti

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class Application {

public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}

// Method ini akan mencetak di command line
@Bean
public CommandLineRunner commandLineRunner(String... args) {
return runner -> {
System.out.println("Hello World");
};
}
}

5️⃣ Verifikasi Koneksi

Jalankan aplikasi melalui kelas utama (Main Class). Jika konfigurasi benar, Hibernate akan mencetak log pembuatan tabel di konsol, dan aplikasi akan terhubung ke MySQL.

Hibernate: create table student (id bigint not null auto_increment, email varchar(255), first_name varchar(255), last_name varchar(255), primary key (id)) engine=InnoDB
Hello World

Cek ke dalam database:

mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| student |
+------------------+
1 row in set (0.00 sec)

mysql> describe student;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | bigint | NO | PRI | NULL | auto_increment |
| email | varchar(255) | YES | | NULL | |
| first_name | varchar(255) | YES | | NULL | |
| last_name | varchar(255) | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)