Skip to main content

University Database System

Implementasi sebuah sistem database dengan menggunakan OOP dan disertai oleh File Handling, terdapat 8 rancangan class :


  1. Database (Class yang memiliki kemiripan dengan CRUD system)
  2. MainMenu (Menu utama tempat user berinteraksi)
  3. PeminjamanBuku (Class Peminjaman yang dapat dimodifikasi)
  4. MataKuliah (Class MataKuliah yang dapat dimodifikasi)
  5. Orang (Class yang menjadi parent dari Pegawai, Dosen, Mahasiswa)
  6. Pegawai
  7. Dosen
  8. Mahasiswa

Source Code (*yang dicantumkan adalah source code inti, source code yang sifatnya dinamis. Selain Database, MainMenu, Orang, PeminjamanBuku, dan MataKuliah)

Database
import java.io.File;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.BufferedReader;
import java.util.Scanner;
/**
 *
 *
 * @author Satria Ade Veda Karuniawan
 * @version 0.1
 */
public class Database
{
    public Database()
    {

    }
   
    public void Add(String text, String filepath) throws IOException
    {
        String endofline = "\r\n";
        FileWriter fw = new FileWriter(filepath + ".txt", true);
        fw.write(text + endofline);
        fw.close();
    }
   
    public void Read(String filepath, int content) throws IOException
    {
        BufferedReader reader;
        try{
            reader = new BufferedReader(new FileReader(filepath + ".txt"));
            String line = reader.readLine();
            while(line != null)
            {
                for(int a = 1; a < content + 1; a++)
                {
                    System.out.println(a + " : " + line);
                    line = reader.readLine();
                }
                System.out.println("");
            }
            reader.close();
        }catch(FileNotFoundException ex){
            ex.printStackTrace();
        }
    }
   
    public void Match(String target, String filepath, int content) throws IOException
    {
        BufferedReader reader;
        try{
            reader = new BufferedReader(new FileReader(filepath + ".txt"));
            String line = reader.readLine();
            //int content = 3;
            while(line != null)
            {
                if(line.equals(target))
                {
                    System.out.println(line);
                    for(int a = 1; a < content + 1; a++)
                    {
                        System.out.println(a + " : " + line);
                        line = reader.readLine();
                    }
                    System.out.println("");
                }
                else{
                    line = reader.readLine();
                }
            }
            reader.close();
        }catch(FileNotFoundException ex){
            ex.printStackTrace();
        }
    }
   
    public void Delete(String target, String filepath, int content) throws IOException
    {
        //Step 1
        BufferedReader reader;
        FileWriter fw;
        try{
            reader = new BufferedReader(new FileReader(filepath + ".txt")); //Read Original File
            fw = new FileWriter(filepath + "duplicate.txt"); //Write Duplicate File
           
            String line = reader.readLine();
            //int content = 3; //Banyak data
            while(line != null)
            {
                if(line.equals(target))
                {
                    for(int a = 0; a < content; a++)
                    {
                        line = reader.readLine();
                    }
                }
                else
                {
                    String endofline = "\r\n";
                    fw.write(line + endofline);
                    line = reader.readLine();
                }
            }
            reader.close();
            fw.close();
        }catch(FileNotFoundException ex){
            ex.printStackTrace();
        }
       
        BufferedReader reader2;
        FileWriter fw2;
        //Step 2
        try{
            reader2 = new BufferedReader(new FileReader(filepath + "duplicate.txt")); //Scan Duplicate File
            fw2 = new FileWriter(filepath + ".txt"); //Delete and Rewrite Original File
           
            String line = reader2.readLine();
            //int content = 3; //Banyak data
           
            while(line != null)
            {
                String endofline = "\r\n";
                fw2.write(line + endofline);
                line = reader2.readLine();
            }
        }catch(FileNotFoundException ex){
            ex.printStackTrace();
        }
    }
   
}


MainMenu
import java.io.File;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.BufferedReader;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;
/**
 *
 *
 * @author Satria Ade Veda Karuniawan
 * @version 0.1
 */
public class MainMenu
{
    private int choice;
    private Database dobject;
    private PeminjamanBuku pbobject;
    private MataKuliah mkobject;
    private Pegawai pgobject;
    private Dosen dsobject;
    private Mahasiswa mhsobject;
   
    public MainMenu()
    {
        dobject = new Database();
        pbobject = new PeminjamanBuku();
        mkobject = new MataKuliah();
        pgobject = new Pegawai();
        dsobject = new Dosen();
        mhsobject = new Mahasiswa();
        main();
    }
   
    public void main()
    {
        System.out.print('\u000C');
        System.out.println("Welcome to ITS Student and Staff Database");
        System.out.println("Command : ");
        System.out.println("1. Manajemen Mahasiswa");
        System.out.println("2. Manajemen Pegawai");
        System.out.println("3. Manajemen Dosen");
        System.out.println("4. Peminjaman Buku");
        System.out.println("5. Exit");
        System.out.print("Choice : ");
        Scanner input = new Scanner(System.in);
        int choice = input.nextInt();
        if(choice == 5)
        {
            return;
        }
        if(choice >= 1 && choice <= 4)
        {
            System.out.print('\u000C');
        }
        else
        {
            System.out.print('\u000C');
            System.out.println("Invalid Input");
            main();
        }
       
        switch(choice)
        {
            case 1:
            ManajemenMahasiswa();
            break;
           
            case 2:
            ManajemenPegawai();
            break;
           
            case 3:
            ManajemenDosen();
            break;
           
            case 4:
            PeminjamanBuku();
            break;
        }
    }
   
    public void ManajemenMahasiswa()
    {
        System.out.print('\u000C');
        System.out.println("Manajemen Mahasiswa");
        System.out.println("Command : ");
        System.out.println("1. Input data");
        System.out.println("2. Read data");
        System.out.println("3. Find data");
        System.out.println("4. Delete data");
        System.out.print("Choice : ");
        Scanner input = new Scanner(System.in);
        int choice = input.nextInt();
       
        switch(choice)
        {
            case 1:
            System.out.print('\u000C');
            System.out.println("-Input Data-");
            try
            {
                String id = input.nextLine();
                System.out.print("NRP : ");
                id = input.nextLine();
               
                System.out.print("Nama : ");
                String nama = input.nextLine();
               
                System.out.print("Departemen : ");
                String departemen = input.nextLine();
               
                mhsobject.Add(id, "mahasiswa");
                mhsobject.Add(nama, "mahasiswa");
                mhsobject.Add(departemen, "mahasiswa");
               
                System.out.println("");
                System.out.println("Press any key to continue...");
                String data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
           
            case 2:
            System.out.print('\u000C');
            System.out.println("-Read Data-");
            try
            {
                mhsobject.Read("mahasiswa", 3);
               
                System.out.println("");
                System.out.println("Data ke - 1 : ID");
                System.out.println("Data ke - 2 : Nama");
                System.out.println("Data ke - 3 : Departemen");
                System.out.println("Press any key to continue...");
                String data = input.nextLine();
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
           
            case 3:
            System.out.print('\u000C');
            System.out.println("-Find Data-");
            try
            {
                String skipper = input.nextLine();
                System.out.print("NRP : ");
                String data = input.nextLine();
                mhsobject.Match(data, "mahasiswa", 3);
               
                System.out.println("");
                System.out.println("Press any key to continue...");
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
           
            case 4:
            System.out.print('\u000C');
            System.out.println("-Delete Data-");
            try
            {
                String skipper = input.nextLine();
                System.out.print("NRP : ");
                String data = input.nextLine();
                mhsobject.Delete(data, "mahasiswa", 3);
               
                System.out.println("");
                System.out.println("Press any key to continue...");
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
        }
    }
   
    public void ManajemenPegawai()
    {
        System.out.println("Manajemen Mahasiswa");
        System.out.println("Command : ");
        System.out.println("1. Input data");
        System.out.println("2. Read data");
        System.out.println("3. Find data");
        System.out.println("4. Delete data");
        System.out.print("Choice : ");
        Scanner input = new Scanner(System.in);
        int choice = input.nextInt();
       
        switch(choice)
        {
            case 1:
            System.out.print('\u000C');
            System.out.println("-Input Data-");
            try
            {
                String data;
                String id = input.nextLine();
                System.out.print("NID : ");
                id = input.nextLine();
               
                System.out.print("Nama : ");
                String nama = input.nextLine();
               
                System.out.print("Departemen : ");
                String departemen = input.nextLine();
               
                pgobject.Add(id, "pegawai");
                pgobject.Add(nama, "pegawai");
                pgobject.Add(departemen, "pegawai");
               
                System.out.println("");
                System.out.println("Press any key to continue...");
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
           
            case 2:
            System.out.print('\u000C');
            System.out.println("-Read Data-");
            try
            {
                pgobject.Read("pegawai", 3);
                System.out.println("");
                System.out.println("Data ke - 1 : ID");
                System.out.println("Data ke - 2 : Nama");
                System.out.println("Data ke - 3 : Departemen");
                System.out.println("Press any key to continue...");
                String data = input.nextLine();
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
           
            case 3:
            System.out.print('\u000C');
            System.out.println("-Find Data-");
            try
            {
                String skipper = input.nextLine();
                System.out.print("NIP : ");
                String data = input.nextLine();
                pgobject.Match(data, "pegawai", 3);
               
                System.out.println("");
                System.out.println("Press any key to continue...");
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
           
            case 4:
            System.out.print('\u000C');
            System.out.println("-Delete Data-");
            try
            {
                String skipper = input.nextLine();
                System.out.print("NIP : ");
                String data = input.nextLine();
                pgobject.Delete(data, "pegawai", 3);
               
                System.out.println("");
                System.out.println("Press any key to continue...");
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
        }
    }
   
    public void ManajemenDosen()
    {
        System.out.println("Manajemen Mahasiswa");
        System.out.println("Command : ");
        System.out.println("1. Input data");
        System.out.println("2. Read data");
        System.out.println("3. Find data");
        System.out.println("4. Delete data");
        System.out.print("Choice : ");
        Scanner input = new Scanner(System.in);
        int choice = input.nextInt();
       
        switch(choice)
        {
            case 1:
            System.out.print('\u000C');
            System.out.println("-Input Data-");
            try
            {
                String data;
                String id = input.nextLine();
                System.out.print("NIDN : ");
                id = input.nextLine();
               
                System.out.print("Nama : ");
                String nama = input.nextLine();
               
                System.out.print("Departemen : ");
                String departemen = input.nextLine();
               
                dsobject.Add(id, "dosen");
                dsobject.Add(nama, "dosen");
                dsobject.Add(departemen, "dosen");
               
                System.out.println("");
                System.out.println("Press any key to continue...");
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
           
            case 2:
            System.out.print('\u000C');
            System.out.println("-Read Data-");
            try
            {
                dsobject.Read("dosen", 3);
                System.out.println("");
                System.out.println("Data ke - 1 : ID");
                System.out.println("Data ke - 2 : Nama");
                System.out.println("Data ke - 3 : Departemen");
                System.out.println("Press any key to continue...");
                String data = input.nextLine();
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
           
            case 3:
            System.out.print('\u000C');
            System.out.println("-Find Data-");
            try
            {
                String skipper = input.nextLine();
                System.out.print("NIDN : ");
                String data = input.nextLine();
                dsobject.Match(data, "dosen", 3);
               
                System.out.println("");
                System.out.println("Press any key to continue...");
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
           
            case 4:
            System.out.print('\u000C');
            System.out.println("-Delete Data-");
            try
            {
                String skipper = input.nextLine();
                System.out.print("NIDN : ");
                String data = input.nextLine();
                dsobject.Delete(data, "dosen", 3);
               
                System.out.println("");
                System.out.println("Press any key to continue...");
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
        }
    }
   
    public void PeminjamanBuku()
    {
        System.out.println("Manajemen Mahasiswa");
        System.out.println("Command : ");
        System.out.println("1. Input data");
        System.out.println("2. Read data");
        System.out.println("3. Find data");
        System.out.println("4. Delete data");
        System.out.print("Choice : ");
        Scanner input = new Scanner(System.in);
        int choice = input.nextInt();
       
        switch(choice)
        {
            case 1:
            System.out.print('\u000C');
            System.out.println("-Input Data-");
            try
            {
                String data;
                String id = input.nextLine();
                System.out.print("ID : ");
                id = input.nextLine();
               
                System.out.print("Tanggal Pinjam : ");
                String nama = input.nextLine();
               
                System.out.print("Tanggal Kembali : ");
                String departemen = input.nextLine();
               
                pbobject.Add(id, "buku");
                pbobject.Add(nama, "buku");
                pbobject.Add(departemen, "buku");
               
                System.out.println("");
                System.out.println("Press any key to continue...");
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
           
            case 2:
            System.out.print('\u000C');
            System.out.println("-Read Data-");
            try
            {
                pbobject.Read("buku", 3);
                System.out.println("");
                System.out.println("Data ke - 1 : ID");
                System.out.println("Data ke - 2 : Tanggal Pinjam");
                System.out.println("Data ke - 3 : Tanggal Kembali");
                System.out.println("Press any key to continue...");
                String data = input.nextLine();
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
           
            case 3:
            System.out.print('\u000C');
            System.out.println("-Find Data-");
            try
            {
                String skipper = input.nextLine();
                System.out.print("ID : ");
                String data = input.nextLine();
                pbobject.Match(data, "buku", 3);
               
                System.out.println("");
                System.out.println("Press any key to continue...");
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
           
            case 4:
            System.out.print('\u000C');
            System.out.println("-Delete Data-");
            try
            {
                String skipper = input.nextLine();
                System.out.print("ID : ");
                String data = input.nextLine();
                pbobject.Delete(data, "buku", 3);
               
                System.out.println("");
                System.out.println("Press any key to continue...");
                data = input.nextLine();
            }catch(IOException ex){
            }
            main();
            break;
        }
    }
}


Orang

/**
 *
 *
 * @author Satria Ade Veda Karuniawan
 * @version 0.1
 */
public class Orang extends Database
{
    private String ID;
    private String Nama;
    private String Departemen;
   
    public Orang()
    {
        ID = "";
        Nama = "";
        Departemen = "";
    }
   
    public String GetA()
    {
        return ID;
    }
   
    public String GetB()
    {
        return Nama;
    }
   
    public String GetC()
    {
        return Departemen;
    }
}


PeminjamanBuku

/**
 *
 *
 * @author Satria Ade Veda Karuniawan
 * @version 0.1
 */
public class PeminjamanBuku extends Database
{
    private String KodeBuku;
    private String WaktuPinjam;
    private String WaktuKembali;
   
    public PeminjamanBuku()
    {
        KodeBuku = "";
        WaktuPinjam = "";
        WaktuKembali = "";
    }
   
    public String GetA()
    {
        return KodeBuku;
    }
   
    public String GetB()
    {
        return WaktuPinjam;
    }
   
    public String GetC()
    {
        return WaktuKembali;
    }
}


MataKuliah

/**
 *
 *
 * @author Satria Ade Veda Karuniawan
 * @version 0.1
 */
public class MataKuliah extends Database
{
    private String KodeKelas;
    private String Tempat;
    private String Dosen;
   
    public MataKuliah()
    {
        KodeKelas = "";
        Tempat = "";
        Dosen = "";
    }
   
    public String GetA()
    {
        return KodeKelas;
    }
   
    public String GetB()
    {
        return Tempat;
    }
   
    public String GetC()
    {
        return Dosen;
    }
}



Sample Simulasi (Masuk menuju Manajemen Mahasiswa)

  • Input data
  • Read data
  • Find data

Design UML

Comments

Popular posts from this blog

Technical Support AI

Technical Support - Artificial Intelligence (*From now on, I'll try my best to explain about all of my Project using English) For this project, I made 3 classes to control the Bot Mechanism (Referencing to Objects-First-with-Java-A-Practical-Introduction-Using-BlueJ-David-J-Barnes pages 155) : InputReader Class (Used for detect or to take any user input) SupportSystem Class (As a main function connecting the user input and database) Responder Class (Handling AI-Output and Its role as 'mini' database) Current Version : 1.2 In the future, I'm expecting to have a bigger Responder's Database and would be separated from the Class itself, so it will be easier to make some modification inside the AI's Database and easier to manage. And then i'll try to improve the UX Design inside, so that the user can have a feeling about how 'Human' this AI. InputReader Class In this class, pretty much the same as how the name of the class is writt

Image Viewer GUI

Implementasi Object-Oriented Programming dari Image Viewer yang berfungsi untuk melakukan load sebuah gambar dan memungkinkan dilakukannya manipulasi gambar. Library Java yang digunakan dalam project ini antara lain : Awt (Event, Image) Swing File IO Class yang diimplementasikan antara lain : ImageViewer (Sebagai main class yang melakukan display image pada aplikasi GUI) ImagePanel (Sebagai class yang menampilkan OFImage serta menambah functionality) ImageFileManager (Sebagai class utility untuk melakukan load image) OFImage (Sebagai class yang mendefinisikan image sebagai object) Source Code ImageViewer import java.awt.*; import java.awt.event.*; import java.awt.image.*; import javax.swing.*; import java.io.File; /**  *  * @author Satria Ade Veda Karuniawan  * @version 1.0  */ public class ImageViewer {     // static fields:     private static final String VERSION = "Version 1.0";     private static JFileChooser fileChooser = new JFi