| Endpoint | Deskripsi | 
|---|---|
| GET /api/mahasiswa | Mendapatkan daftar semua mahasiswa | 
| GET /api/mahasiswa/{id} | Mendapatkan detail mahasiswa berdasarkan ID | 
| POST /api/mahasiswa | Menambahkan mahasiswa baru | 
| PUT /api/mahasiswa/{id} | Mengupdate data mahasiswa berdasarkan ID | 
| DELETE /api/mahasiswa/{id} | Menghapus mahasiswa berdasarkan ID | 
| Parameter | Tipe Data | Deskripsi | 
|---|---|---|
| id | integer | ID unik untuk mahasiswa | 
| nim | string | Nomor induk mahasiswa harus UNIK | 
| nama | string | Nama lengkap mahasiswa | 
| tanggal_lahir | string | Tanggal lahir mahasiswa dalam format YYYY-MM-DD | 
| program_studi | string | Program studi mahasiswa | 
| foto | file | Foto mahasiswa (format: JPG, PNG, maks. 2MB) | 
Response JSON yang diberikan oleh setiap endpoint terdiri dari:
Request:
GET /api/mahasiswa Header Accept: application/json
Response:
{
  "status": "success",
  "data": [
    {
      "id": 1,
      "nim": "1234567890",
      "nama": "John Doe",
      "tanggal_lahir": "1995-08-10",
      "program_studi": "Teknik Informatika",
      "foto": "http://example.com/storage/foto/photo123.jpg"
    },
    {
      "id": 2,
      "nim": "0987654321",
      "nama": "Jane Smith",
      "tanggal_lahir": "1998-03-25",
      "program_studi": "Sistem Informasi",
      "foto": null
    }
  ]
}
    Request:
POST /api/mahasiswa
Header
Accept: application/json
Body
{
  "nim": "1234567891",
  "nama": "Michael Scott",
  "tanggal_lahir": "1990-07-15",
  "program_studi": "Manajemen",
  "foto": "foto.jpg"
}
    Response:
{
  "status": "success",
  "data": {
    "id": 3,
    "nim": "1234567891",
    "nama": "Michael Scott",
    "tanggal_lahir": "1990-07-15",
    "program_studi": "Manajemen",
    "foto": "http://example.com/storage/foto/photo456.jpg"
  },
  "message": "Mahasiswa created successfully"
}
    Request:
PUT /api/mahasiswa/3
Header
Accept: application/json
Body
{
  "nim": "1234567891",
  "nama": "Michael Scott",
  "tanggal_lahir": "1990-07-15",
  "program_studi": "Manajemen",
  "foto": "foto.jpg"
}
    Response:
{
  "status": "success",
  "data": {
    "id": 3,
    "nim": "1234567891",
    "nama": "Michael Scott",
    "tanggal_lahir": "1990-07-15",
    "program_studi": "Manajemen",
    "foto": "http://example.com/storage/foto/new_photo789.jpg"
  },
  "message": "Mahasiswa updated successfully"
}
    Request:
DELETE /api/mahasiswa/3 Header Accept: application/json
Response:
{
  "status": "success",
  "message": "Mahasiswa deleted successfully"
}