Belajar Entity Relationship Diagram: Studi kasus Sistem Manajemen Proyek

Hello, spirit off learning. Dalam sebuah proyek kita tentu tidak akan asing dengan bagaimana kita diberikan tugas berdasarkan proyek yang akan digarap. Namun mungkin ada beberapa dari kamu yang tidak terlalu familiar dengan bagaimana manajemen sebuah proyek terbuat. Mari kita telusuri cara sebuah Sistem Manajemen Proyek bekerja.

Entitas

Dalam pembuatan entitas tentu kita harus menentukan objek yang terlibat didalam Sistem Manajemen Proyek juga kita dapat mengambil beberapa objek seperti Karyawan, Tugas, dan Proyek. Dengan 3 poin itu kita mendapatkan sebuah gambaran apa saja yang diperlukan dan dalam pembuatan entitas. Kita juga memerlukan hal lain untuk pelengkap seperti Tugas dari Karyawan itu sendiri dan Anggota Tim yang terlibat dalam suatu Proyek.

ERDSistemManajemenProyek_BuildWithAngga

Atribut

Dalam pembuatan atribut kamu perlu memerhatikan bahwa atribut yang akan disertakan kedalam entitas juga dapat berhubungan dengan Entitas lain dengan tanda dari Foreign Key (FK). Kita bisa melihat beberapa atribut yang dibuat.

  • Proyek
ERDSistemManajemenProyek_BuildWithAngga
  • Tugas (Tugas dari Proyek)
ERDSistemManajemenProyek_BuildWithAngga
  • Anggota Tim
ERDSistemManajemenProyek_BuildWithAngga
  • Karyawan
ERDSistemManajemenProyek_BuildWithAngga
  • Tugas Karyawan
ERDSistemManajemenProyek_BuildWithAngga

Hubungan antar Entitas

Dengan kita membuat atribut yang menjadi jembatan agar setiap entitas dapat terhubung, pada tahap ini kita harus menjabarkan seperti apa Hubungan antar Entitas terjalin:

  • Setiap proyek dapat memiliki banyak tugas (One-to-Many).
  • Setiap tugas terhubung ke satu proyek (Many-to-One).
  • Setiap proyek dapat memiliki banyak anggota tim (One-to-Many).
  • Setiap anggota tim terhubung ke satu proyek (Many-to-One).
  • Setiap anggota tim adalah satu karyawan (Many-to-One).
  • Setiap karyawan dapat memiliki banyak tugas karyawan (One-to-Many).
  • Setiap tugas karyawan terhubung ke satu tugas (Many-to-One).

Kita juga bisa menambahkan Hubungan antar Entitas yang terjalin, sebagai ulasan singkat. One-to-Many berarti ada satu entitas yang berhubungan dengan banyak entitas, sedangkan Many-to-One sebaliknya.

ERDSistemManajemenProyek_BuildWithAngga

Contoh Penerapan dalam SQL

-- Tabel Proyek
CREATE TABLE Proyek (
    ProjectID INT PRIMARY KEY AUTO_INCREMENT,
    ProjectName VARCHAR(100) NOT NULL,
    StartDate DATE,
    EndDate DATE,
    Status ENUM('Not Started', 'In Progress', 'Completed') DEFAULT 'Not Started'
);

-- Tabel Karyawan
CREATE TABLE Karyawan (
    EmployeeID INT PRIMARY KEY AUTO_INCREMENT,
    FullName VARCHAR(100) NOT NULL,
    Email VARCHAR(100),
    PhoneNumber VARCHAR(15),
    Department VARCHAR(100)
);

-- Tabel Tugas
CREATE TABLE Tugas (
    TaskID INT PRIMARY KEY AUTO_INCREMENT,
    ProjectID INT,
    TaskName VARCHAR(100) NOT NULL,
    Description TEXT,
    StartDate DATE,
    EndDate DATE,
    Status ENUM('Not Started', 'In Progress', 'Completed') DEFAULT 'Not Started',
    FOREIGN KEY (ProjectID) REFERENCES Proyek(ProjectID)
);

-- Tabel Anggota Tim
CREATE TABLE AnggotaTim (
    TeamMemberID INT PRIMARY KEY AUTO_INCREMENT,
    ProjectID INT,
    EmployeeID INT,
    Role VARCHAR(100),
    FOREIGN KEY (ProjectID) REFERENCES Proyek(ProjectID),
    FOREIGN KEY (EmployeeID) REFERENCES Karyawan(EmployeeID)
);

-- Tabel Tugas Karyawan
CREATE TABLE TugasKaryawan (
    EmployeeTaskID INT PRIMARY KEY AUTO_INCREMENT,
    TaskID INT,
    EmployeeID INT,
    AssignedDate DATE,
    CompletionDate DATE,
    Status ENUM('Not Started', 'In Progress', 'Completed') DEFAULT 'Not Started',
    FOREIGN KEY (TaskID) REFERENCES Tugas(TaskID),
    FOREIGN KEY (EmployeeID) REFERENCES Karyawan(EmployeeID)
);

Kesimpulan

Sistem Manajemen Proyek yang dirancang ini memiliki ERD yang mencakup entitas utama seperti Proyek, Tugas, Anggota Tim, Karyawan, dan Tugas Karyawan, yang masing-masing memiliki karakteristik dan hubungan yang jelas satu sama lain. ERD ini memungkinkan sistem mengelola informasi proyek, tugas, anggota tim, dan tanggung jawab karyawan dengan efektif. Dengan menggunakan implementasi SQL yang disediakan, tabel-tabel yang diperlukan dapat dibuat dan dihubungkan dengan baik. Sistem Manajemen Proyek yang baik membantu mengatur tugas, melacak kemajuan proyek, dan mengelola sumber daya manusia, yang pada akhirnya akan menghasilkan peningkatan produktivitas dan keberhasilan proyek.

Jika kamu mengalami kesulitan dalam beberapa hal yang perlu kamu kuasai, kamu bisa mengikuti rekomendasi Kelas Online Mastering Coding Interview | BuildWithAngga. Jangan berhenti disini saja mari perluas wawasan kita dalam dunia Coding.