Final Project PBKK 2023

Final Project PBKK 2023

Nama : Nadya Zuhria Amana

NRP : 5025211058

Kelas : PBKK A


Referensi Paper :  https://jurnal.unived.ac.id/index.php/jmi/article/view/1121


  1. Buatlah deskribsi studi kasus aplikasi ditinjau dari MVC nya (individu)

Studi kasus yang akan dibahas adalah aplikasi sistem informasi jadwal dokter menggunakan framework CodeIgniter. Aplikasi ini akan dibangun untuk memenuhi kebutuhan masyarakat untuk mendapatkan informasi jadwal dokter secara akurat.

Dari Segi MVC, aplikasi ini akan dibagi menjadi tiga komponen utama, yaitu:
 
  • Model: Komponen ini bertanggung jawab untuk mengelola data aplikasi, seperti data dokter, jadwal praktek, dan pasien.
  • View: Komponen ini bertanggung jawab untuk menampilkan data aplikasi kepada pengguna.
  • Controller: Komponen ini bertanggung jawab untuk menerima input dari pengguna dan mengarahkannya ke komponen model atau view yang sesuai.

Berikut adalah penjelasan dari masing-masing komponen:
  • Model

Model bertanggung jawab untuk mengelola data aplikasi. Data tersebut akan disimpan di database. Model akan menyediakan fungsi-fungsi untuk mengakses dan memanipulasi data di database.

Dalam aplikasi sistem informasi jadwal dokter, model akan menyediakan fungsi-fungsi untuk:
Mendapatkan daftar dokter,  Mendapatkan jadwal praktek dokter,  Menambahkan jadwal praktek dokter,  Mengubah jadwal praktek dokter, Menghapus jadwal praktek dokter

  • View

View bertanggung jawab untuk menampilkan data aplikasi kepada pengguna. View akan menggunakan bahasa markup, seperti HTML, CSS, dan JavaScript, untuk menampilkan data.

Dalam aplikasi sistem informasi jadwal dokter, view akan menampilkan halaman-halaman berikut:
Halaman beranda,  Halaman daftar dokter, Halaman jadwal praktek dokter, Halaman tambah jadwal praktek dokter, Halaman ubah jadwal praktek dokter, dan Halaman hapus jadwal praktek dokter

  • Controller

Controller bertanggung jawab untuk menerima input dari pengguna dan mengarahkannya ke komponen model atau view yang sesuai. Controller juga bertanggung jawab untuk menangani logika bisnis aplikasi.

Dalam aplikasi sistem informasi jadwal dokter, controller akan menangani fungsi-fungsi berikut:
Menerima input dari pengguna,  Mengarahkan input ke model atau view yang sesuai, Menangani logika bisnis aplikasi

Implementasi Aplikasi


Aplikasi sistem informasi jadwal dokter akan dibangun menggunakan framework CodeIgniter. Framework CodeIgniter akan menyediakan komponen-komponen MVC yang dibutuhkan untuk membangun aplikasi.

Berikut adalah langkah-langkah untuk mengimplementasikan aplikasi sistem informasi jadwal dokter menggunakan framework CodeIgniter:
  • Buat proyek baru di CodeIgniter.
  • Tambahkan library yang diperlukan, seperti database dan form validation.
  • Buat model, view, dan controller sesuai dengan rancangan yang telah dibuat.
  • Buat koneksi ke database.
  • Implementasikan logika bisnis di controller.

2. Buatlah rancangan umum arsitektur atau fitur yang ada dalam aplikasi (individu)


Arsitektur

Aplikasi sistem informasi jadwal dokter akan menggunakan arsitektur MVC. Arsitektur MVC membagi aplikasi menjadi tiga komponen utama, yaitu:
  • Model: Komponen ini bertanggung jawab untuk mengelola data aplikasi.
  • View: Komponen ini bertanggung jawab untuk menampilkan data aplikasi kepada pengguna.
  • Controller: Komponen ini bertanggung jawab untuk menerima input dari pengguna dan mengarahkannya ke komponen model atau view yang sesuai.
Fitur
  • Halaman beranda
Halaman beranda akan menampilkan daftar dokter yang tersedia. Daftar dokter akan diurutkan berdasarkan nama atau spesialisasi.
 
  • Halaman daftar dokter

Halaman daftar dokter akan menampilkan informasi detail tentang suatu dokter, seperti nama, spesialisasi, alamat, dan jadwal praktek.
 
  • Halaman jadwal praktek dokter

Halaman jadwal praktek dokter akan menampilkan jadwal praktek suatu dokter. Jadwal praktek akan diurutkan berdasarkan tanggal dan waktu.
 
  • Halaman tambah jadwal praktek dokter

Halaman tambah jadwal praktek dokter akan digunakan untuk menambahkan jadwal praktek dokter baru. Pengguna harus mengisi form dengan informasi jadwal praktek yang diinginkan.
 
  • Halaman ubah jadwal praktek dokter

Halaman ubah jadwal praktek dokter akan digunakan untuk mengubah jadwal praktek dokter yang sudah ada. Pengguna harus mengisi form dengan informasi jadwal praktek yang baru.
 
  • Halaman hapus jadwal praktek dokter

Halaman hapus jadwal praktek dokter akan digunakan untuk menghapus jadwal praktek dokter. Pengguna harus memilih jadwal praktek yang ingin dihapus.

3. Rancang desain databasenya (individu)


Rancangan Desain Database


CDM : 


PDM :




Tabel dokter

Tabel dokter akan menyimpan informasi tentang dokter, seperti nama, spesialisasi, alamat, dan nomor telepon.
KolomTipe DataKeterangan
id_dokterintPrimary key
nama_doktervarchar(255)Nama dokter
spesialisasivarchar(255)Spesialisasi dokter
alamatvarchar(255)Alamat dokter
nomor_teleponvarchar(255)Nomor telepon dokter


Tabel jadwal_praktek

Tabel jadwal_praktek akan menyimpan informasi tentang jadwal praktek dokter, seperti tanggal, waktu, dan ketersediaan.
KolomTipe DataKeterangan
id_jadwal_praktekintPrimary key
id_dokterintForeign key ke tabel dokter
tanggaldateTanggal jadwal praktek
waktutimeWaktu jadwal praktek
tersediabooleanKetersediaan jadwal praktek

Tabel berita

Tabel berita akan menyimpan informasi tentang berita yang diterbitkan oleh sistem informasi. 

KolomTipe DataKeterangan
id_beritaintPrimary key
judul_beritavarchar(255)Judul berita
isi_beritatextIsi berita
tanggal_terbitdateTanggal terbit berita
penulisvarchar(255)Penulis berita

Tabel artikel

Tabel artikel akan menyimpan informasi tentang artikel yang diterbitkan oleh sistem informasi. 

KolomTipe DataKeterangan
id_artikelintPrimary key
judul_artikelvarchar(255)Judul artikel
isi_artikeltextIsi artikel
tanggal_terbitdateTanggal terbit artikel
penulisvarchar(255)Penulis artikel

Tabel admin

Tabel admin akan menyimpan informasi tentang admin sistem informasi. 

KolomTipe DataKeterangan
id_adminintPrimary key
nama_adminvarchar(255)Nama admin
usernamevarchar(255)Username admin
passwordvarchar(255)Password admin
level_aksesintLevel akses admin

Implementasi

Desain database ini dapat diimplementasikan menggunakan berbagai jenis database, seperti MySQL, PostgreSQL, atau Oracle. Untuk implementasi menggunakan MySQL, berikut adalah perintah untuk membuat tabel-tabel yang dibutuhkan:

SQL
CREATE TABLE jadwal (
  id_jadwal INT NOT NULL AUTO_INCREMENT,
  id_dokter INT NOT NULL,
  tanggal DATE NOT NULL,
  waktu TIME NOT NULL,
  tersedia BOOLEAN NOT NULL,
  PRIMARY KEY (id_jadwal),
  FOREIGN KEY (id_dokter) REFERENCES dokter (id_dokter)
);

CREATE TABLE berita (
  id_berita INT NOT NULL AUTO_INCREMENT,
  judul_berita VARCHAR(255) NOT NULL,
  isi_berita TEXT NOT NULL,
  tanggal_terbit DATE NOT NULL,
  penulis VARCHAR(255) NOT NULL,
  PRIMARY KEY (id_berita)
);

CREATE TABLE artikel (
  id_artikel INT NOT NULL AUTO_INCREMENT,
  judul_artikel VARCHAR(255) NOT NULL,
  isi_artikel TEXT NOT NULL,
  tanggal_terbit DATE NOT NULL,
  penulis VARCHAR(255) NOT NULL,
  PRIMARY KEY (id_artikel)
);

CREATE TABLE admin (
  id_admin INT NOT NULL AUTO_INCREMENT,
  nama_admin VARCHAR(255) NOT NULL,
  username VARCHAR(255) NOT NULL,
  password VARCHAR(255) NOT NULL,
  level_akses INT NOT NULL,
  PRIMARY KEY (id_admin)
);

3. Buat desain front end (individu)



a. Halaman Login




b. Halaman Sign Up





c. Halaman Landing Page





d. Halaman Jadwal



e. Halaman Admin


4. Tentukan Control yang akan mengandle logika back end.

Pada sistem informasi jadwal dokter, controller yang akan menangani logika back end adalah sebagai berikut:

  • AuthController

Controller ini bertanggung jawab untuk menangani proses autentikasi dan otorisasi user.

  • JadwalDokterController

Controller ini bertanggung jawab untuk menangani proses CRUD jadwal dokter.

  • BeritaController

Controller ini bertanggung jawab untuk menangani proses CRUD berita.

  • ArtikelController

Controller ini bertanggung jawab untuk menangani proses CRUD artikel.

Berikut adalah contoh kode untuk controller AuthController:

PHP
class AuthController
{
    public function login()
    {
        // Cek username dan password
        $username = $_POST['username'];
        $password = $_POST['password'];

        $user = User::where('username', $username)->first();
        if ($user && $user->password === $password) {
            // Login berhasil
            $token = $user->createToken();
            return response()->json([
                'token' => $token,
            ]);
        } else {
            // Login gagal
            return response()->json([
                'error' => 'Username atau password salah',
            ], 401);
        }
    }

    public function logout()
    {
        // Logout user
        Auth::user()->token()->revoke();

        // Redirect ke halaman login
        return redirect('/login');
    }
}

Kode tersebut akan menangani proses login user. Pertama, controller akan memeriksa apakah username dan password yang dikirimkan oleh user valid. Jika valid, maka controller akan membuat token untuk user tersebut. Token tersebut kemudian akan dikembalikan ke user dalam bentuk JSON.

Selain controller, logic back end juga dapat ditangani oleh service. Service adalah class yang menyediakan fungsi-fungsi yang dapat digunakan oleh controller.

Pada sistem informasi jadwal dokter, service yang dapat digunakan adalah sebagai berikut:

  • JadwalDokterService

Service ini menyediakan fungsi-fungsi untuk mengelola jadwal dokter, seperti membuat, memperbarui, menghapus, dan mencari jadwal dokter.

  • BeritaService

Service ini menyediakan fungsi-fungsi untuk mengelola berita, seperti membuat, memperbarui, menghapus, dan mencari berita.

  • ArtikelService

Service ini menyediakan fungsi-fungsi untuk mengelola artikel, seperti membuat, memperbarui, menghapus, dan mencari artikel.

Berikut adalah contoh kode untuk JadwalDokterService:

PHP
class JadwalDokterService
{
    public function create(array $data)
    {
        // Buat jadwal dokter baru
        $jadwal_dokter = new JadwalDokter();
        $jadwal_dokter->fill($data);
        $jadwal_dokter->save();

        // Kembalikan jadwal dokter yang baru dibuat
        return $jadwal_dokter;
    }

    public function update(int $id, array $data)
    {
        // Cari jadwal dokter
        $jadwal_dokter = JadwalDokter::find($id);

        // Perbarui jadwal dokter
        $jadwal_dokter->fill($data);
        $jadwal_dokter->save();

        // Kembalikan jadwal dokter yang telah diperbarui
        return $jadwal_dokter;
    }

    public function delete(int $id)
    {
        // Cari jadwal dokter
        $jadwal_dokter = JadwalDokter::find($id);

        // Hapus jadwal dokter
        $jadwal_dokter->delete();
    }

    public function search(array $filters)
    {
        // Buat query
        $query = JadwalDokter::query();

        // Terapkan filter
        foreach ($filters as $key => $value) {
            if ($value !== null) {
                $query->where($key, $value);
            }
        }

        // Kembalikan hasil pencarian
        return $query->get();
    }
}

Kode tersebut akan menyediakan fungsi-fungsi untuk membuat, memperbarui, menghapus, dan mencari jadwal dokter.

5. Implementasikan rancangan yang sudah dibuat menggunakan Framework NET, CI ataupun Framework Google (pilih salah satu - bisa kelompok maks 3)


6. Buat video presentasinya, upload di youtube, dan didokumentasikan di blog.

Pengumpulan terakhir 16 Des 2023 pukul 08.00 , di dokumentasi di blog masing-masing, dan mengisi lembar monitoring dengan judul "Final Project Pemrograman Berbasis Kerangka Kerja". Tidak lupa membuat koment link pekerjaan di halaman post ini.





Link Referensi  

Soal : https://fajarbaskoro.blogspot.com/2023/12/final-project-pbkk-2023-kelas-dan-b.html


Posting Komentar

Lebih baru Lebih lama