Aplikasi Sistem Manajemen Nilai Mahasiswa dengan Menggunakan Java Spring Boot Sederhana

Aplikasi Sistem Manajemen Nilai Mahasiswa dengan Menggunakan Java Spring Boot Sederhana

Penulis : Muhammad Hilman Ansory 
Editor Cover dan Teks : Theresia Artha G

 

Assalamu’alaikum Warahmatullahi Wabarakatuh, Salam Sejahtera untuk kita semua.

 

kali ini gausah pantun ya, bosen wkwk

 

Halo, sobat HIMASIS! gimana kabarnya nih? ???? aman lah yaa
Kalau sebelumnya kita belajar membuat aplikasi sederhana dengan Java Native, kali ini kita naik level! Kita akan membangun Aplikasi Sistem Manajemen Nilai Mahasiswa menggunakan Spring Boot Sederhana.

Kenapa Spring Boot?
Spring Boot adalah sebuah framework berbasis Java yang mempermudah pengembangan aplikasi, khususnya aplikasi web, dengan menyediakan konfigurasi bawaan yang sederhana namun powerful. Framework ini mendukung pembuatan REST API untuk komunikasi data, memungkinkan integrasi langsung dengan berbagai database seperti H2, MySQL, atau PostgreSQL, serta mendorong penerapan konsep Object Oriented Programming (OOP) dan arsitektur berlapis (Layered Architecture). Dengan Spring Boot, developer tidak hanya dapat membangun aplikasi lebih cepat, tetapi juga lebih terstruktur, skalabel, dan mudah dikembangkan sesuai kebutuhan.

2. Konsep Dasar yang Digunakan

  • Entity → Representasi tabel database dalam bentuk class.

  • Repository → Berisi query otomatis untuk CRUD (Create, Read, Update, Delete).

  • Service → Menangani logika bisnis (misalnya menghitung rata-rata nilai).

  • Controller → Mengatur request dari client (HTTP API). 

  • Database → Sebuah tempat untuk menyimpan data

3. Perancangan Aplikasi

Aplikasi ini terdiri dari 4 bagian utama:

  1. Entity Mahasiswa → Menyimpan informasi mahasiswa (nama, nim).

  2. Entity Nilai → Menyimpan nilai mahasiswa untuk beberapa mata kuliah.

  3. Repository + Service → Mengatur penyimpanan & logika bisnis.

  4. Controller → Menyediakan REST API untuk input & lihat data.

4. Implementasi Kode

A. Entity Mahasiswa

import jakarta.persistence.*;
import java.util.List;
import lombok.*;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor @Entity // Menandakan bahwa class ini adalah representasi tabel di database public class Mahasiswa { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) // Auto increment untuk id private Long id; private String nama; private String nim; @OneToMany(mappedBy = "mahasiswa", cascade = CascadeType.ALL) // Relasi one-to-many dengan entity Nilai private List nilaiList; // Getter, Setter, Constructor }

Penjelasan:
Entity Mahasiswa digunakan untuk merepresentasikan tabel mahasiswa di database.
Relasi @OneToMany menandakan bahwa satu mahasiswa dapat memiliki banyak nilai (satu ke banyak).

B. Entity Nilai

import jakarta.persistence.*;
import lombok.*;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor @Entity public class Nilai { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private int basisData; private int sistemOperasi; private int pemrogramanJava; @ManyToOne @JoinColumn(name = "mahasiswa_id") // foreign key yang menghubungkan ke tabel mahasiswa private Mahasiswa mahasiswa; // Getter, Setter, Constructor }

Penjelasan:
Entity Nilai menyimpan data nilai mahasiswa untuk beberapa mata kuliah.
Relasi @ManyToOne digunakan karena banyak nilai bisa dimiliki oleh satu mahasiswa.

C. Repository

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface MahasiswaRepository extends JpaRepository<Mahasiswa, Long> {} public interface NilaiRepository extends JpaRepository<Nilai, Long> {}

Penjelasan:
Repository berfungsi sebagai data access layer. Dengan JpaRepository, kita tidak perlu menulis query manual untuk operasi CRUD dasar (Create, Read, Update, Delete). 

D. Service

import org.springframework.stereotype.Service;
import java.util.List;

@Service // Menandakan class ini adalah service (business logic)
public class MahasiswaService {
    private final MahasiswaRepository mahasiswaRepo;
    private final NilaiRepository nilaiRepo;

    public MahasiswaService(MahasiswaRepository mahasiswaRepo, NilaiRepository nilaiRepo) {
        this.mahasiswaRepo = mahasiswaRepo;
        this.nilaiRepo = nilaiRepo;
    }

    // Menambahkan data mahasiswa baru
    public Mahasiswa tambahMahasiswa(Mahasiswa mhs) {
        return mahasiswaRepo.save(mhs);
    }

    // Menambahkan nilai ke mahasiswa tertentu
    public Nilai tambahNilai(Long mahasiswaId, Nilai nilai) {
        Mahasiswa mhs = mahasiswaRepo.findById(mahasiswaId)
                .orElseThrow(() -> new RuntimeException("Mahasiswa tidak ditemukan"));
        nilai.setMahasiswa(mhs);
        return nilaiRepo.save(nilai);
    }

    // Menampilkan semua data mahasiswa
    public List tampilkanData() {
        return mahasiswaRepo.findAll();
    }
}

Penjelasan:
Layer service berfungsi sebagai jembatan antara controller dan repository.
Di sini business logic ditempatkan, misalnya validasi saat menambahkan nilai mahasiswa.

E. Controller

import org.springframework.web.bind.annotation.*;
import java.util.List;

@RestController // Controller berbasis REST
@RequestMapping("/api/mahasiswa") // Base URL untuk endpoint mahasiswa
public class MahasiswaController {
    private final MahasiswaService service;

    public MahasiswaController(MahasiswaService service) {
        this.service = service;
    }

    // Endpoint untuk menambahkan mahasiswa
    @PostMapping
    public Mahasiswa tambahMahasiswa(@RequestBody Mahasiswa mhs) {
        return service.tambahMahasiswa(mhs);
    }

    // Endpoint untuk menambahkan nilai ke mahasiswa tertentu
    @PostMapping("/{id}/nilai")
    public Nilai tambahNilai(@PathVariable Long id, @RequestBody Nilai nilai) {
        return service.tambahNilai(id, nilai);
    }

    // Endpoint untuk menampilkan semua data mahasiswa
    @GetMapping
    public List tampilkanData() {
        return service.tampilkanData();
    }
}

Penjelasan:
Controller berfungsi sebagai gerbang masuk request dari client.
Endpoint disediakan agar aplikasi bisa melakukan operasi seperti menambah mahasiswa, menambah nilai, dan menampilkan data.

5. Cara Menjalankan

  1. Buat project Spring Boot (misalnya lewat Spring Initializr).

    • Tambahkan dependency: Spring Web, Spring Data JPAlombokH2/mysql/postgresql/dll.

  2. Masukkan kode di atas ke dalam struktur project.

  3. Jalankan aplikasi (mvn spring-boot:run atau run di IDE).

  4. Coba akses API:

    • POST /api/mahasiswa → Tambah mahasiswa

    • POST /api/mahasiswa/{id}/nilai → Input nilai mahasiswa

    • GET /api/mahasiswa → Tampilkan semua data

6. Contoh Penggunaan API

Tambah Mahasiswa

Request (POST /api/mahasiswa)

{
  "nama": "Bahlil",
  "nim": "1324020"
}

Input Nilai Mahasiswa

Request (POST /api/mahasiswa/1/nilai)

{
  "basisData": 80,
  "sistemOperasi": 75,
  "pemrogramanJava": 90
}

Tampilkan Data

Response (GET /api/mahasiswa)

[
  {
    "id": 1,
    "nama": "Bahlil",
    "nim": "1324020",
    "nilaiList": [
      { "id": 1, "basisData": 80, "sistemOperasi": 75, "pemrogramanJava": 90 }
    ]
  }
]

7. Kesimpulan

Gimana? lebih mudah bukan? apa lebih sulit? wkwk, sebenarnya tidak ada yang sulit, yang bikin sulit adalah ketika kita tidak mau belajar, anjass kelass. penggunaan Spring Boot dalam membangun sistem manajemen nilai mahasiswa memberikan struktur yang lebih rapi dan skalabilitas yang baik dibandingkan implementasi manual menggunakan array. Dengan dukungan database relasional, data mahasiswa dan nilai dapat dikelola secara persisten dan terorganisir. Selain itu, pemanfaatan REST API memungkinkan aplikasi ini diakses oleh berbagai platform, baik web maupun mobile, sehingga lebih fleksibel dan mudah dikembangkan untuk kebutuhan yang lebih kompleks.

Referensi Tambahan

Untuk yang ingin menggali lebih dalam, berikut beberapa referensi keren yang bisa kamu pelajari:

 

Belajar Spring Boot untuk membangun aplikasi itu ibarat merakit sebuah ekosistem setiap komponen punya peran penting, dan ketika semuanya terhubung dengan baik, hasilnya jadi powerful dan elegan. 

Dengan sistem manajemen nilai mahasiswa ini, kita sudah membuktikan bahwa framework Spring mampu menghadirkan solusi yang lebih rapi, terstruktur, dan siap dikembangkan lebih jauh.

Jangan berhenti di sini! Cobalah eksplorasi fitur tambahan, seperti autentikasi pengguna, laporan nilai dalam bentuk PDF, atau bahkan integrasi dengan aplikasi mobile. Karena di dunia teknologi, batasan sebenarnya hanya sejauh mana kita mau belajar dan berkreasi. 

Demikian HIMASIS ARTIKEL kali ini. Semoga pembahasan tentang Aplikasi Sistem Manajemen Nilai Mahasiswa dengan Spring Boot dapat memberikan inspirasi serta pengetahuan baru bagi sobat pembaca semua.

Terima kasih sudah menyimak sampai akhir, dan tetap ikuti HIMASIS ARTIKEL untuk konten menarik lainnya seputar teknologi dan sistem informasi.
Sampai jumpa di artikel berikutnya, tetap semangat belajar, dan teruslah berinovasi! 

 

#SALAMPERUBAHAN
#BERSATUDALAMKOLABORASI