Spesifikasi Aplikasi Web News Portal
1. Gambaran Umum Sistem
Aplikasi News Portal adalah sistem publikasi berita online yang memungkinkan:
A. Pengguna umum
-
Melihat daftar berita
-
Membaca detail berita
-
Melihat kategori
-
Melakukan pencarian
B. Admin
-
Login ke dashboard
-
Mengelola berita (CRUD)
-
Mengelola kategori
-
Mengelola pengguna/editor
-
Mengunggah gambar berita
Aplikasi menggunakan arsitektur 3 tier:
-
Presentation Layer: HTML, CSS, JavaScript
-
Application Layer (Business Logic): PHP
-
Data Layer: MySQL
2. Modul Utama Sistem
A. Presentation Layer (Front End)
Menggunakan HTML + CSS + JS
Modul Front-End
-
Home Page
-
Daftar berita terbaru
-
Slider headline news
-
Highlight kategori
-
-
News Detail Page
-
Judul berita
-
Isi berita
-
Tanggal publikasi
-
Penulis
-
Gambar utama
-
-
Category Page
-
Daftar berita berdasarkan kategori
-
-
Search Page
-
Kolom pencarian
-
Hasil pencarian berita
-
-
Login Page
-
Form login untuk admin/editor
-
Validasi sisi klien (JavaScript)
-
3. Application Layer (Back-End / Business Logic)
Ditulis dalam PHP
Modul Back-End
-
Authentication Module
-
Login admin/editor
-
Validasi akun
-
Manajemen session
-
-
News Management Module
-
Tambah berita
-
Edit berita
-
Hapus berita
-
Upload featured image
-
Set kategori
-
-
Category Management Module
-
Tambah kategori
-
Edit kategori
-
Hapus kategori
-
-
User Management Module (opsional)
-
Tambah admin/editor
-
Edit user level
-
Reset password
-
-
Image Upload Module
-
Validasi ukuran file
-
Validasi ekstensi (jpg, png, webp)
-
Penyimpanan ke folder
/uploads/
-
-
API Response Module (opsional)
-
Menghasilkan response JSON untuk AJAX
-
4. Data Layer (MySQL Database)
Struktur Tabel News Portal
1. Tabel users
Untuk admin atau editor.
| Field | Type | Description |
|---|---|---|
| id | INT (PK, AI) | ID user |
| username | VARCHAR(50) | Nama login |
| password | VARCHAR(255) | Password (bcrypt) |
| fullname | VARCHAR(100) | Nama lengkap |
| role | ENUM('admin','editor') | Hak akses |
| created_at | DATETIME | Timestamp |
2. Tabel categories
Kategori berita.
| Field | Type |
|---|---|
| id | INT (PK, AI) |
| name | VARCHAR(100) |
| slug | VARCHAR(120) |
| description | TEXT |
3. Tabel news
Tabel utama untuk berita.
| Field | Type | Description |
|---|---|---|
| id | INT (PK, AI) | |
| category_id | INT (FK) | Kategori berita |
| title | VARCHAR(200) | Judul berita |
| slug | VARCHAR(220) | URL slug |
| content | TEXT | Isi berita |
| image | VARCHAR(255) | Nama file gambar |
| author_id | INT (FK -> users.id) | Penulis |
| published_at | DATETIME | Waktu publish |
| status | ENUM('draft','published') | Status berita |
| created_at | DATETIME | Dibuat |
| updated_at | DATETIME | Diubah |
4. Tabel comments (opsional)
| Field | Type |
|---|---|
| id | INT (PK, AI) |
| news_id | INT (FK) |
| name | VARCHAR(100) |
| VARCHAR(150) | |
| comment | TEXT |
| created_at | DATETIME |
5. Alur Kerja Sistem (Workflow)
A. Admin Side
-
Admin login melalui
/admin/login -
Sistem memvalidasi username & password
-
Admin menuju dashboard:
-
Menambahkan berita baru
-
Mengatur kategori
-
Mengelola pengguna
-
-
Data dikirim ke Application Layer (PHP)
-
PHP memvalidasi dan menyimpan ke MySQL
-
Halaman front-end otomatis membaca data terbaru
B. User Side
-
User mengakses beranda
-
Front-end mengambil data berita (Query MySQL → PHP → HTML)
-
User memilih berita tertentu
-
System menampilkan detail berita
-
User dapat membaca tanpa login
6. Fitur Tambahan Opsional
-
Pagination berita
-
Sistem komentar
-
Notifikasi publish
-
Mode dark/light (CSS)
-
Panel analytics
-
API JSON untuk mobile app









