- Pendahuluan
- Tujuan Pembuatan Sistem
- Tools yang Digunakan
- Implementasi Singkat
- 1. Membuat Folder Project
- 2. Membuat Database dan Tabel
- 3. Menambahkan Data Pengguna
- 4. Membuat Koneksi Database
- 5. Membuat Halaman Login
- 6. Proses Login dan Session
- 7. Redirect Berdasarkan Role
- 8. Dashboard Admin dan Teknisi
- Kesimpulan dan Pengembangan Selanjutnya
Pendahuluan
Pada pengembangan sistem informasi, fitur login menjadi bagian penting untuk membatasi hak akses pengguna. Setiap pengguna memiliki peran (role) yang berbeda, sehingga sistem harus mampu mengarahkan pengguna ke halaman sesuai dengan hak aksesnya. Pada artikel ini, penulis membahas implementasi sistem login multi role (Admin dan Teknisi)menggunakan PHP dan MySQL berdasarkan studi kasus sistem bengkel.
Tujuan Pembuatan Sistem
Tujuan dari pembuatan sistem ini adalah:
- Menerapkan autentikasi login berbasis role
- Mengelola sesi pengguna dengan aman
- Mengarahkan pengguna ke dashboard sesuai perannya
- Membuat sistem login sederhana namun fungsional
Tools yang Digunakan
- PHP
- MySQL
- XAMPP (Apache & MySQL)
- Text Editor (VS Code)
Implementasi Singkat
Sistem login dibuat menggunakan satu tabel pengguna yang menyimpan username, password, dan role. Setelah pengguna berhasil login, sistem menyimpan data role ke dalam session. Selanjutnya, sistem akan melakukan redirect otomatis ke halaman admin atau teknisi sesuai dengan role yang dimiliki pengguna.
Langkah Praktik Pembuatan Sistem
1. Membuat Folder Project
Langkah pertama adalah membuat folder project pada direktori htdocs dengan nama login_multirole. Folder ini akan menjadi tempat seluruh file sistem login disimpan.
Struktur folder project yang digunakan adalah sebagai berikut:

2. Membuat Database dan Tabel
Setelah folder project berhasil dibuat, langkah berikutnya adalah membuat database menggunakan phpMyAdmin. Database digunakan untuk menyimpan data pengguna yang dapat mengakses sistem.
Database dibuat dengan nama db_login_multirole. Di dalam database tersebut dibuat sebuah tabel bernama users yang berfungsi untuk menyimpan data akun pengguna beserta role-nya.
Struktur tabel users:
- id (Primary Key)
- username
- password
- role
Tabel ini memungkinkan sistem untuk membedakan hak akses antara admin dan teknisi.
Perintah SQL yang digunakan untuk membuat tabel:

3. Menambahkan Data Pengguna
Untuk memastikan sistem login dapat diuji dengan baik, dilakukan penambahan data pengguna secara langsung ke dalam tabel users. Data pengguna ini digunakan sebagai akun uji coba untuk membuktikan bahwa sistem login multi role berjalan dengan benar.
Dua jenis akun yang ditambahkan adalah akun Admin dan akun Teknisi, masing-masing dengan role yang berbeda.
Data pengguna yang ditambahkan:
- Admin
- Username:
admin - Password:
admin123 - Role:
admin
- Username:
- Teknisi
- Username:
teknisi - Password:
teknisi123 - Role:
teknisi
- Username:
Password disimpan dalam bentuk terenkripsi menggunakan fungsi MD5 untuk keperluan praktik.
Perintah SQL untuk menambahkan data pengguna:

4. Membuat Koneksi Database
Agar sistem login dapat mengakses data pengguna, diperlukan koneksi antara aplikasi web dan database MySQL. Koneksi database dibuat dalam satu file terpisah agar mudah digunakan kembali oleh file lain yang membutuhkan akses database.
File koneksi database dibuat dengan nama database.php dan disimpan di dalam folder config.
Kode koneksi database (config/database.php):

5. Membuat Halaman Login
Halaman login berfungsi sebagai antarmuka bagi pengguna untuk memasukkan username dan password. Halaman ini dibuat menggunakan HTML sederhana dan ditempatkan pada folder auth dengan nama file login.php.
Form login akan mengirimkan data ke file proses_login.php untuk diproses lebih lanjut.
Kode halaman login (auth/login.php):

6. Proses Login dan Session
Proses login bertujuan untuk memvalidasi data pengguna yang dimasukkan melalui form login. Proses ini dibuat dalam file proses_login.php dan diletakkan di folder auth.
Pada tahap ini, sistem akan:
- Mengambil data dari form login
- Mencocokkan data dengan database
- Menyimpan informasi pengguna ke dalam session
Kode proses login (auth/proses_login.php):

7. Redirect Berdasarkan Role
Setelah proses login berhasil dan session tersimpan, sistem akan melakukan pengecekan role pengguna. Berdasarkan role tersebut, pengguna akan diarahkan secara otomatis ke halaman dashboard yang sesuai.
Kode redirect ini diletakkan pada bagian akhir file proses_login.php.
Kode redirect berdasarkan role:

8. Dashboard Admin dan Teknisi
Dashboard dibuat terpisah untuk masing-masing role agar hak akses dapat dibatasi dengan baik. Halaman dashboard admin dibuat pada folder admin dengan nama file index.php, sedangkan dashboard teknisi dibuat pada folder teknisidengan nama file index.php.
Setiap dashboard dilengkapi dengan pengecekan session agar tidak dapat diakses tanpa login.
Dashboard Admin (admin/index.php)

Dashboard Teknisi (teknisi/index.php)

Kesimpulan dan Pengembangan Selanjutnya
Berdasarkan hasil praktik yang telah dilakukan, sistem login multi role menggunakan PHP dan MySQL berhasil diimplementasikan dengan baik. Sistem ini mampu membedakan hak akses pengguna berdasarkan peran, yaitu admin dan teknisi, serta mengarahkan pengguna ke halaman dashboard yang sesuai.
Penerapan session pada sistem login memastikan bahwa hanya pengguna yang telah terautentikasi yang dapat mengakses halaman tertentu. Dengan struktur kode yang sederhana dan terpisah berdasarkan fungsinya, sistem ini mudah dipahami dan dapat dikembangkan lebih lanjut sesuai kebutuhan.
Sebagai pengembangan selanjutnya, sistem login ini dapat ditingkatkan dari sisi keamanan dengan menggunakan enkripsi password yang lebih aman, menambahkan fitur manajemen pengguna, serta mengembangkan tampilan antarmuka agar lebih responsif dan menarik.