# Panduan Import Database ke phpMyAdmin
## Sistem Informasi Manajemen SDM Puskesmas Muara Kumpeh

## Cara Import Database

### Metode 1: Import via phpMyAdmin (Paling Mudah)

1. **Buka phpMyAdmin**
   - Buka browser
   - Akses: `http://localhost/phpmyadmin`
   - Login dengan username: `root` (password biasanya kosong)

2. **Import Database**
   - Klik tab **"Import"** di menu atas
   - Klik tombol **"Choose File"** atau **"Pilih File"**
   - Pilih file: `database/import_phpmyadmin.sql`
   - Pastikan format: **SQL**
   - Klik tombol **"Go"** atau **"Kirim"**
   - Tunggu hingga proses selesai (biasanya beberapa detik)

3. **Verifikasi**
   - Di sidebar kiri, pastikan database `sdm_puskesmas_muara_kumpeh` sudah muncul
   - Klik database tersebut
   - Pastikan semua tabel sudah terbuat (12 tabel)

### Metode 2: Import via Command Line

```bash
mysql -u root -p < database/import_phpmyadmin.sql
```

Atau jika password kosong:
```bash
mysql -u root < database/import_phpmyadmin.sql
```

## Struktur Database

Database akan membuat:

### 12 Tabel Utama:
1. **users** - Data pengguna (3 role: pegawai, kepala_tata_usaha, pimpinan)
2. **user_profiles** - Profil pengguna
3. **pegawai** - Data master pegawai
4. **absensi** - Data absensi
5. **cuti** - Pengajuan dan persetujuan cuti
6. **penilaian_kinerja** - Penilaian kinerja
7. **sessions** - Session management
8. **audit_logs** - Audit trail
9. **permissions** - Daftar permission
10. **role_permissions** - Mapping role ke permission
11. **password_reset_tokens** - Password reset
12. **notifications** - Notifikasi sistem

## Default Users (Sudah Terinput)

Setelah import, Anda akan memiliki 4 user default:

### 1. Pimpinan (Full Access)
- **Username**: `pimpinan`
- **Password**: `admin123`
- **Role**: pimpinan
- **Akses**: Semua fitur termasuk audit log

### 2. Kepala Tata Usaha
- **Username**: `kepala_tu`
- **Password**: `admin123`
- **Role**: kepala_tata_usaha
- **Akses**: Mengelola pegawai, absensi, menyetujui cuti

### 3. Pegawai
- **Username**: `pegawai1`
- **Password**: `admin123`
- **Role**: pegawai
- **Akses**: Melihat data sendiri, mengajukan cuti

### 4. Admin (Pimpinan)
- **Username**: `admin`
- **Password**: `admin123`
- **Role**: pimpinan
- **Akses**: Semua fitur

⚠️ **PENTING**: Ganti semua password default setelah instalasi!

## Role dan Permission

### Pegawai
- Melihat data pegawai sendiri
- Melihat absensi sendiri
- Melihat cuti sendiri
- Mengajukan cuti

### Kepala Tata Usaha
- Semua akses pegawai
- Mengelola data pegawai (CRUD)
- Mengelola absensi
- Menyetujui cuti
- Melihat dan membuat penilaian kinerja
- Melihat laporan

### Pimpinan
- Full access (semua fitur)
- Mengakses audit log
- Mengelola users
- Melihat semua laporan

## Troubleshooting

### Error: "Access denied for user 'root'"
**Solusi**: 
- Pastikan MySQL service berjalan di XAMPP Control Panel
- Coba dengan password kosong
- Atau reset password MySQL

### Error: "Unknown database"
**Solusi**: 
- File SQL akan membuat database otomatis
- Pastikan import dilakukan dengan benar

### Error: "Table already exists"
**Solusi**: 
- Hapus database terlebih dahulu:
  ```sql
  DROP DATABASE IF EXISTS sdm_puskesmas_muara_kumpeh;
  ```
- Lalu import ulang

### Error: "Foreign key constraint fails"
**Solusi**: 
- Pastikan import dilakukan dalam urutan yang benar
- File `import_phpmyadmin.sql` sudah mengatur urutan dengan benar

## Verifikasi Import

Setelah import, jalankan query berikut di phpMyAdmin untuk verifikasi:

```sql
-- Cek jumlah tabel
SHOW TABLES;

-- Cek jumlah users
SELECT COUNT(*) as total_users FROM users;

-- Cek users berdasarkan role
SELECT role, COUNT(*) as jumlah FROM users GROUP BY role;

-- Cek permissions
SELECT COUNT(*) as total_permissions FROM permissions;

-- Cek role permissions
SELECT role, COUNT(*) as jumlah_permission FROM role_permissions GROUP BY role;
```

## Catatan

- Semua password menggunakan bcrypt hash
- Default password untuk semua user: `admin123`
- Database menggunakan charset `utf8mb4` untuk support emoji
- Semua tabel menggunakan engine `InnoDB` untuk support foreign key

## Support

Jika mengalami masalah:
1. Pastikan MySQL/MariaDB berjalan
2. Pastikan file SQL tidak corrupt
3. Cek error log di phpMyAdmin
4. Pastikan user MySQL memiliki privilege untuk create database

