From e77751ca5f939534549154a2e95b531904dba782 Mon Sep 17 00:00:00 2001 From: bilbubble Date: Sun, 29 Mar 2020 16:20:17 +0800 Subject: [PATCH 1/4] added Bank System Programming --- BankSystem/Bank.java | 72 ++++++++++++++++ BankSystem/BankPark.java | 56 +++++++++++++ BankSystem/BankPark.txt | 4 + BankSystem/Main.java | 166 +++++++++++++++++++++++++++++++++++++ BankSystem/README.md | 20 +++++ BankSystem/UserDetail.java | 112 +++++++++++++++++++++++++ H071191001/Bank.java | 72 ++++++++++++++++ H071191001/BankPark.java | 56 +++++++++++++ H071191001/BankPark.txt | 4 + H071191001/Main.java | 166 +++++++++++++++++++++++++++++++++++++ H071191001/README.md | 20 +++++ H071191001/UserDetail.java | 112 +++++++++++++++++++++++++ 12 files changed, 860 insertions(+) create mode 100644 BankSystem/Bank.java create mode 100644 BankSystem/BankPark.java create mode 100644 BankSystem/BankPark.txt create mode 100644 BankSystem/Main.java create mode 100644 BankSystem/README.md create mode 100644 BankSystem/UserDetail.java create mode 100644 H071191001/Bank.java create mode 100644 H071191001/BankPark.java create mode 100644 H071191001/BankPark.txt create mode 100644 H071191001/Main.java create mode 100644 H071191001/README.md create mode 100644 H071191001/UserDetail.java diff --git a/BankSystem/Bank.java b/BankSystem/Bank.java new file mode 100644 index 0000000..e46ee9b --- /dev/null +++ b/BankSystem/Bank.java @@ -0,0 +1,72 @@ +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; + +public class Bank { + + protected ArrayList userDetail = new ArrayList<>(); + protected int index; + protected boolean isUser; + + public void getUserDetails(String directory) throws IOException { + Path file = Paths.get(directory); + String data = new String(Files.readAllBytes(file)); + String[] line = data.split("\n"); + for (int i = 0; i < line.length; i++) { + String[] user = line[i].split(";"); + this.userDetail.add(i, new UserDetail(user[0], user[1], Integer.parseInt(user[2]), + Integer.parseInt(user[3]), user[4], user[5], user[6])); + } + } + + public void printDetails() { + System.out.println("Nama\t\t: " + userDetail.get(index).getName()); + System.out.println("Umur \t\t: " + userDetail.get(index).getAge()); + System.out.println("Alamat \t\t: " + userDetail.get(index).getAddress()); + System.out.println("Email \t\t: " + userDetail.get(index).getEmail()); + System.out.println("Nomor Rekening\t: " + userDetail.get(index).getAccountNumber()); + System.out.println("Jumlah Uang\t: " + "₩ " + userDetail.get(index).getMoneyAmount()); + } + + public void login(String name, String password) { + + } + + public void saving(int amount) { + userDetail.get(index).saving(amount); + } + + public void transfer(int amount, String accountNumber) { + + } + + public void takeMoney(int amount) { + userDetail.get(index).takeMoney(amount); + } + + public void getActivityLog() { + String activityLog = ("" + userDetail.get(index).getActivityLog()).replace("[", "").replace("]", "") + .replace(", ", ""); + System.out.println("\nLog Aktivitas"); + System.out.println(activityLog); + } + + public boolean isUser() { + return isUser; + } + + protected void saveData() throws IOException { + Path file = Paths.get("D:/PBO/bilaTask/BankSystem/BankPark.txt"); + String saveData = ""; + for (int i = 0; i < userDetail.size(); i++) { + saveData += userDetail.get(i).getName() + ";" + userDetail.get(i).getPassword() + ";" + + userDetail.get(i).getAge() + ";" + userDetail.get(i).getMoneyAmount() + ";" + + userDetail.get(i).getEmail() + ";" + userDetail.get(i).getAccountNumber() + ";" + + userDetail.get(i).getAddress() + "\n"; + } + Files.write(file, saveData.getBytes(StandardCharsets.ISO_8859_1)); + } +} \ No newline at end of file diff --git a/BankSystem/BankPark.java b/BankSystem/BankPark.java new file mode 100644 index 0000000..408d075 --- /dev/null +++ b/BankSystem/BankPark.java @@ -0,0 +1,56 @@ +import java.io.IOException; + +public class BankPark extends Bank { + + private String directory = "D:/PBO/bilaTask/BankSystem/BankPark.txt"; + + public BankPark() throws Exception { + getUserDetails(); + } + + public void getUserDetails() throws IOException { + super.getUserDetails(directory); + } + + @Override + public void printDetails() { + super.printDetails(); + } + + @Override + public void saveData() throws IOException { + super.saveData(); + } + + @Override + public void saving(int amount) { + super.saving(amount); + } + + @Override + public void login(String name, String password) { + for (int i = 0; i < userDetail.size(); i++) { + if (userDetail.get(i).getName().equals(name) && userDetail.get(i).getPassword().equals(password)) { + index = i; + System.out.println("---------------------------------------------"); + isUser = true; + return; + } + } + System.out.println("Username atau password salah"); + isUser = false; + } + + @Override + public void transfer(int amount, String accountNumber) { + for (int i = 0; i < userDetail.size(); i++) { + if (userDetail.get(i).getAccountNumber().equals(accountNumber)) { + userDetail.get(i).savingFromTransfer(amount); + userDetail.get(index).transfer(amount, accountNumber, userDetail.get(i).getName()); + return; + } + } + System.out.println("Nomor rekening tidak ditemukan"); + } + +} \ No newline at end of file diff --git a/BankSystem/BankPark.txt b/BankSystem/BankPark.txt new file mode 100644 index 0000000..ee5bb38 --- /dev/null +++ b/BankSystem/BankPark.txt @@ -0,0 +1,4 @@ +bilbubble;susadbans305;19;100000;putrinabila065@gmail.com;202012340321;Jl.S.Saddang +septintan;susadbans305;20;120000;asep@unhas.com;202017921233;Jl.A.Tonro +ghaisis;susadbans305;23;500000;aizchubchub@yahoo.com;20201861273;Jl.Faisal +hyung;susadbans305;24;857400;japas@ymail.com;20204332833;Jl.Alauddin diff --git a/BankSystem/Main.java b/BankSystem/Main.java new file mode 100644 index 0000000..9228ad5 --- /dev/null +++ b/BankSystem/Main.java @@ -0,0 +1,166 @@ +import java.util.Scanner; + +public class Main { + static Scanner sc = new Scanner(System.in); + static boolean done = false; + static BankPark nasabah; + + public static void main(String[] args) throws Exception { + Bank nasabah = new BankPark(); + int amount; + loginMenu(); + System.out.print("Username : "); + String userName = sc.nextLine(); + System.out.print("Password : "); + String password = sc.nextLine(); + + nasabah.login(userName, password); + if (nasabah.isUser()) { + while (!done) { + mainMenu(); + System.out.print("\nInput : "); + userName = sc.next(); + switch (userName) { + case "1": + System.out.println(" MENU TRANSFER "); + System.out.print("Masukkan no rekening tujuan anda : "); + String ok = sc.next(); + password = sc.nextLine(); + System.out.print("Masukkan jumlah nominal yang akan ditransfer : "); + amount = sc.nextInt(); + nasabah.transfer(amount, ok); + backToMainMenu(); + break; + case "2": + System.out.println(" MENU SETOR TUNAI "); + System.out.print("Masukkan jumlah nominal yang akan disetor tunai : "); + amount = sc.nextInt(); + nasabah.saving(amount); + backToMainMenu(); + break; + case "3": + System.out.println(" MENU PENARIKAN TUNAI "); + System.out.print("Masukkan jumlah nominal yang akan ditarik tunai : "); + amount = sc.nextInt(); + nasabah.takeMoney(amount); + backToMainMenu(); + break; + case "4": + nasabah.getActivityLog(); + backToMainMenu(); + break; + case "5": + nasabah.printDetails(); + backToMainMenu(); + break; + case "0": + done = true; + nasabah.saveData(); + return; + default: + System.out.println("Silahkan pilih menu kembali"); + mainMenu(); + System.out.print("Input : "); + userName = sc.nextLine(); + break; + } + } + } else { + for (int i = 0; i < 3; i++) { + if (i == 3) { + System.out.println("Anda sudah melewati batas dari percobaan\nSilahkan coba lagi nanti"); + return; + } + System.out.print("Username : "); + userName = sc.nextLine(); + System.out.print("Password : "); + password = sc.nextLine(); + nasabah.login(userName, password); + if (nasabah.isUser()) { + while (!done) { + mainMenu(); + System.out.print("\nInput : "); + userName = sc.next(); + switch (userName) { + case "1": + System.out.println(" MENU TRANSFER "); + System.out.print("Masukkan no rekening tujuan anda : "); + password = sc.next(); + String accountNumber = sc.nextLine(); + System.out.print("Masukkan jumlah nominal yang akan ditransfer : "); + amount = sc.nextInt(); + nasabah.transfer(amount, accountNumber); + backToMainMenu(); + break; + case "2": + System.out.println(" MENU SETOR TUNAI "); + System.out.print("Masukkan jumlah nominal yang akan disetor tunai : "); + amount = sc.nextInt(); + nasabah.saving(amount); + backToMainMenu(); + break; + case "3": + System.out.println(" MENU PENARIKAN TUNAI "); + System.out.print("Masukkan jumlah nominal yang akan ditarik tunai : "); + amount = sc.nextInt(); + backToMainMenu(); + break; + case "4": + nasabah.getActivityLog(); + backToMainMenu(); + break; + case "5": + nasabah.printDetails(); + backToMainMenu(); + break; + case "0": + done = true; + nasabah.saveData(); + return; + default: + System.out.println("Silahkan pilih menu kembali"); + mainMenu(); + System.out.print("Input : "); + userName = sc.next(); + break; + } + } + } + + } + } + } + + public static void loginMenu() { + System.out.println(" SEALAMAT DATANG DI BANK PARK SEO JOON "); + System.out.println("---------------------------------------------"); + System.out.println(" -Masukkan Username dan Password anda- "); + } + + public static void mainMenu() { + System.out.println(" PILIH TRANSAKSI YANG ANDA INGINKAN "); + System.out.println(" TEKAN EXIT UNTUK PEMBATALAN "); + System.out.println("1.Transfer"); + System.out.println("2.Setor Tunai"); + System.out.println("3.Penarikan Tunai"); + System.out.println("4.Log Aktivitas"); + System.out.println("5.Informasi Detail"); + System.out.println("0.Exit"); + } + + public static void backToMainMenu() { + System.out.println("Lanjutkan ? (y/t)"); + String stopOrContinue = sc.next(); + switch (stopOrContinue) { + case "y": + done = false; + break; + case "t": + done = true; + break; + default: + stopOrContinue = sc.next(); + break; + } + } +} diff --git a/BankSystem/README.md b/BankSystem/README.md new file mode 100644 index 0000000..97bca41 --- /dev/null +++ b/BankSystem/README.md @@ -0,0 +1,20 @@ +Bank + Spesifikasi Project + • Program ini merupakan Sistem Bank Sederhana + • Terdapat Bank yang tersimpan di dalam file (BankPark).txt, Terdapat Nasabah, setiap nasabah dapat memiliki lebih dari 1 akun, namun hanya terdapat 1 akun dalam 1 bank + • Setiap Nasabah memiliki Rekening, jika nasabah memiliki akun dibeberapa bank, maka masing-masing akun memiliki detail rekening yang berbeda-beda + • Nasabah dapat melakukan aktifitas menabung, transfer dan menarik uang + • Aktifitas menabung dan menarik uang hanya dapat dilakukan jika nasabah menggunakan akun yang sesuai dengan bank yang dikunjungi + • Untuk aktifitas transfer, terdapat nasabah lain yang ditransferkan + • Setiap nasabah dapat melihat log aktifitas mereka, log aktifitas dikategorikan berdasarkan aktifitas menabung, menarik, mentransfer dan ditarnsferkan + • Setiap aktifitas diatas hanya dapat dilihat oleh nasabah yang bersangkutan setelah melakukan proses autentikasi + Alur Kerja + Ketika di run maka akan muncul perintah login menggunakan UserName dan password yang terdaftar di (BankPark).txt , setelah itu akan muncul diberikan menu yang bisa dipilih, seperti transfer, informasi detail, penarikan uang dan sebagainya, input harus (1,2,3,4,5,atau 0), tidak boleh salah, jika ada yang salah akan diminta untuk melakukan input baru. + Bagian dari project anda yang menerapkan konsep object oriented + 1. Class dan Objek terdapat pada class UserDetail + 2. Setter dan getter terdapat pada class UserDetail + 3. Encapsulation terdapat pada class BankPark, Bank, UserDetail + 4. Inheritence dan polymorphisme terdapat pada class BankPark + + Hal-hal yang ingin diimprove kedepannya mengenai project Bank + Semoga bisa lebih irit memory jika memungkinkan dan Menerapkan javaFX. diff --git a/BankSystem/UserDetail.java b/BankSystem/UserDetail.java new file mode 100644 index 0000000..e92ed57 --- /dev/null +++ b/BankSystem/UserDetail.java @@ -0,0 +1,112 @@ +import java.util.ArrayList; + +class UserDetail { + private String name; + private int age; + private String address; + private String email; + private String accountNumber; + private int moneyAmount; + private String password; + private ArrayList activityLog = new ArrayList<>(); + int i = 0; + + protected UserDetail(String name, String password, int age, int moneyAmount, String email, String accountNumber, + String address) { + this.name = name; + this.password = password; + this.age = age; + this.address = address; + this.email = email; + this.accountNumber = accountNumber; + this.moneyAmount = moneyAmount; + } + + protected UserDetail() { + + } + + protected void setAccountNumber(String accountNumber) { + this.accountNumber = accountNumber; + } + + protected void setName(String name) { + this.name = name; + } + + protected void setAge(int age) { + this.age = age; + } + + protected void setAddress(String address) { + this.address = address; + } + + protected void setEmail(String email) { + this.email = email; + } + + protected void setPassword(String password) { + this.password = password; + } + + protected void saving(int amount) { + moneyAmount += amount; + activityLog.add(++i + ". Menambah saldo sebanyak : " + amount + "\n"); + } + + protected void takeMoney(int amount) { + if (moneyAmount >= amount) { + moneyAmount -= amount; + activityLog.add(++i + ". Menarik saldo sebanyak : " + amount + "\n"); + } else { + System.out.println("Maaf saldo anda tidak cukup"); + } + } + + protected void transfer(int amount, String accountNumber, String name) { + if (moneyAmount >= amount) { + moneyAmount -= amount; + activityLog.add(++i + ". Transfer ke rekening " + accountNumber + "(" + name + ")" + " Sebanyak : " + amount + + "\n"); + } else { + System.out.println("Maaf saldo anda tidak mencukupi"); + } + } + + protected void savingFromTransfer(int amount) { + moneyAmount += amount; + } + + protected String getName() { + return name; + } + + protected String getPassword() { + return password; + } + + protected int getAge() { + return age; + } + + protected String getAccountNumber() { + return accountNumber; + } + + protected String getAddress() { + return address; + } + + protected String getEmail() { + return email; + } + + protected int getMoneyAmount() { + return moneyAmount; + } + + protected ArrayList getActivityLog() { + return activityLog; + } +} \ No newline at end of file diff --git a/H071191001/Bank.java b/H071191001/Bank.java new file mode 100644 index 0000000..4f34d97 --- /dev/null +++ b/H071191001/Bank.java @@ -0,0 +1,72 @@ +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; + +public class Bank { + + protected ArrayList userDetail = new ArrayList<>(); + protected int index; + protected boolean isUser; + + public void getUserDetails(String directory) throws IOException { + Path file = Paths.get(directory); + String data = new String(Files.readAllBytes(file)); + String[] line = data.split("\n"); + for (int i = 0; i < line.length; i++) { + String[] user = line[i].split(";"); + this.userDetail.add(i, new UserDetail(user[0], user[1], Integer.parseInt(user[2]), + Integer.parseInt(user[3]), user[4], user[5], user[6])); + } + } + + public void printDetails() { + System.out.println("Nama\t\t: " + userDetail.get(index).getName()); + System.out.println("Umur \t\t: " + userDetail.get(index).getAge()); + System.out.println("Alamat \t\t: " + userDetail.get(index).getAddress()); + System.out.println("Email \t\t: " + userDetail.get(index).getEmail()); + System.out.println("Nomor Rekening\t: " + userDetail.get(index).getAccountNumber()); + System.out.println("Jumlah Uang\t: " + "₩ " + userDetail.get(index).getMoneyAmount()); + } + + public void login(String name, String password) { + + } + + public void saving(int amount) { + userDetail.get(index).saving(amount); + } + + public void transfer(int amount, String accountNumber) { + + } + + public void takeMoney(int amount) { + userDetail.get(index).takeMoney(amount); + } + + public void getActivityLog() { + String activityLog = ("" + userDetail.get(index).getActivityLog()).replace("[", "").replace("]", "") + .replace(", ", ""); + System.out.println("\nLog Aktivitas"); + System.out.println(activityLog); + } + + public boolean isUser() { + return isUser; + } + + protected void saveData() throws IOException { + Path file = Paths.get("D:/oop-midtest-2020/H071191001/BankPark.txt"); + String saveData = ""; + for (int i = 0; i < userDetail.size(); i++) { + saveData += userDetail.get(i).getName() + ";" + userDetail.get(i).getPassword() + ";" + + userDetail.get(i).getAge() + ";" + userDetail.get(i).getMoneyAmount() + ";" + + userDetail.get(i).getEmail() + ";" + userDetail.get(i).getAccountNumber() + ";" + + userDetail.get(i).getAddress() + "\n"; + } + Files.write(file, saveData.getBytes(StandardCharsets.ISO_8859_1)); + } +} \ No newline at end of file diff --git a/H071191001/BankPark.java b/H071191001/BankPark.java new file mode 100644 index 0000000..58e5567 --- /dev/null +++ b/H071191001/BankPark.java @@ -0,0 +1,56 @@ +import java.io.IOException; + +public class BankPark extends Bank { + + private String directory = "D:/oop-midtest-2020/H071191001/BankPark.txt"; + + public BankPark() throws Exception { + getUserDetails(); + } + + public void getUserDetails() throws IOException { + super.getUserDetails(directory); + } + + @Override + public void printDetails() { + super.printDetails(); + } + + @Override + public void saveData() throws IOException { + super.saveData(); + } + + @Override + public void saving(int amount) { + super.saving(amount); + } + + @Override + public void login(String name, String password) { + for (int i = 0; i < userDetail.size(); i++) { + if (userDetail.get(i).getName().equals(name) && userDetail.get(i).getPassword().equals(password)) { + index = i; + System.out.println("---------------------------------------------"); + isUser = true; + return; + } + } + System.out.println("Username atau password salah"); + isUser = false; + } + + @Override + public void transfer(int amount, String accountNumber) { + for (int i = 0; i < userDetail.size(); i++) { + if (userDetail.get(i).getAccountNumber().equals(accountNumber)) { + userDetail.get(i).savingFromTransfer(amount); + userDetail.get(index).transfer(amount, accountNumber, userDetail.get(i).getName()); + return; + } + } + System.out.println("Nomor rekening tidak ditemukan"); + } + +} \ No newline at end of file diff --git a/H071191001/BankPark.txt b/H071191001/BankPark.txt new file mode 100644 index 0000000..ee5bb38 --- /dev/null +++ b/H071191001/BankPark.txt @@ -0,0 +1,4 @@ +bilbubble;susadbans305;19;100000;putrinabila065@gmail.com;202012340321;Jl.S.Saddang +septintan;susadbans305;20;120000;asep@unhas.com;202017921233;Jl.A.Tonro +ghaisis;susadbans305;23;500000;aizchubchub@yahoo.com;20201861273;Jl.Faisal +hyung;susadbans305;24;857400;japas@ymail.com;20204332833;Jl.Alauddin diff --git a/H071191001/Main.java b/H071191001/Main.java new file mode 100644 index 0000000..9228ad5 --- /dev/null +++ b/H071191001/Main.java @@ -0,0 +1,166 @@ +import java.util.Scanner; + +public class Main { + static Scanner sc = new Scanner(System.in); + static boolean done = false; + static BankPark nasabah; + + public static void main(String[] args) throws Exception { + Bank nasabah = new BankPark(); + int amount; + loginMenu(); + System.out.print("Username : "); + String userName = sc.nextLine(); + System.out.print("Password : "); + String password = sc.nextLine(); + + nasabah.login(userName, password); + if (nasabah.isUser()) { + while (!done) { + mainMenu(); + System.out.print("\nInput : "); + userName = sc.next(); + switch (userName) { + case "1": + System.out.println(" MENU TRANSFER "); + System.out.print("Masukkan no rekening tujuan anda : "); + String ok = sc.next(); + password = sc.nextLine(); + System.out.print("Masukkan jumlah nominal yang akan ditransfer : "); + amount = sc.nextInt(); + nasabah.transfer(amount, ok); + backToMainMenu(); + break; + case "2": + System.out.println(" MENU SETOR TUNAI "); + System.out.print("Masukkan jumlah nominal yang akan disetor tunai : "); + amount = sc.nextInt(); + nasabah.saving(amount); + backToMainMenu(); + break; + case "3": + System.out.println(" MENU PENARIKAN TUNAI "); + System.out.print("Masukkan jumlah nominal yang akan ditarik tunai : "); + amount = sc.nextInt(); + nasabah.takeMoney(amount); + backToMainMenu(); + break; + case "4": + nasabah.getActivityLog(); + backToMainMenu(); + break; + case "5": + nasabah.printDetails(); + backToMainMenu(); + break; + case "0": + done = true; + nasabah.saveData(); + return; + default: + System.out.println("Silahkan pilih menu kembali"); + mainMenu(); + System.out.print("Input : "); + userName = sc.nextLine(); + break; + } + } + } else { + for (int i = 0; i < 3; i++) { + if (i == 3) { + System.out.println("Anda sudah melewati batas dari percobaan\nSilahkan coba lagi nanti"); + return; + } + System.out.print("Username : "); + userName = sc.nextLine(); + System.out.print("Password : "); + password = sc.nextLine(); + nasabah.login(userName, password); + if (nasabah.isUser()) { + while (!done) { + mainMenu(); + System.out.print("\nInput : "); + userName = sc.next(); + switch (userName) { + case "1": + System.out.println(" MENU TRANSFER "); + System.out.print("Masukkan no rekening tujuan anda : "); + password = sc.next(); + String accountNumber = sc.nextLine(); + System.out.print("Masukkan jumlah nominal yang akan ditransfer : "); + amount = sc.nextInt(); + nasabah.transfer(amount, accountNumber); + backToMainMenu(); + break; + case "2": + System.out.println(" MENU SETOR TUNAI "); + System.out.print("Masukkan jumlah nominal yang akan disetor tunai : "); + amount = sc.nextInt(); + nasabah.saving(amount); + backToMainMenu(); + break; + case "3": + System.out.println(" MENU PENARIKAN TUNAI "); + System.out.print("Masukkan jumlah nominal yang akan ditarik tunai : "); + amount = sc.nextInt(); + backToMainMenu(); + break; + case "4": + nasabah.getActivityLog(); + backToMainMenu(); + break; + case "5": + nasabah.printDetails(); + backToMainMenu(); + break; + case "0": + done = true; + nasabah.saveData(); + return; + default: + System.out.println("Silahkan pilih menu kembali"); + mainMenu(); + System.out.print("Input : "); + userName = sc.next(); + break; + } + } + } + + } + } + } + + public static void loginMenu() { + System.out.println(" SEALAMAT DATANG DI BANK PARK SEO JOON "); + System.out.println("---------------------------------------------"); + System.out.println(" -Masukkan Username dan Password anda- "); + } + + public static void mainMenu() { + System.out.println(" PILIH TRANSAKSI YANG ANDA INGINKAN "); + System.out.println(" TEKAN EXIT UNTUK PEMBATALAN "); + System.out.println("1.Transfer"); + System.out.println("2.Setor Tunai"); + System.out.println("3.Penarikan Tunai"); + System.out.println("4.Log Aktivitas"); + System.out.println("5.Informasi Detail"); + System.out.println("0.Exit"); + } + + public static void backToMainMenu() { + System.out.println("Lanjutkan ? (y/t)"); + String stopOrContinue = sc.next(); + switch (stopOrContinue) { + case "y": + done = false; + break; + case "t": + done = true; + break; + default: + stopOrContinue = sc.next(); + break; + } + } +} diff --git a/H071191001/README.md b/H071191001/README.md new file mode 100644 index 0000000..97bca41 --- /dev/null +++ b/H071191001/README.md @@ -0,0 +1,20 @@ +Bank + Spesifikasi Project + • Program ini merupakan Sistem Bank Sederhana + • Terdapat Bank yang tersimpan di dalam file (BankPark).txt, Terdapat Nasabah, setiap nasabah dapat memiliki lebih dari 1 akun, namun hanya terdapat 1 akun dalam 1 bank + • Setiap Nasabah memiliki Rekening, jika nasabah memiliki akun dibeberapa bank, maka masing-masing akun memiliki detail rekening yang berbeda-beda + • Nasabah dapat melakukan aktifitas menabung, transfer dan menarik uang + • Aktifitas menabung dan menarik uang hanya dapat dilakukan jika nasabah menggunakan akun yang sesuai dengan bank yang dikunjungi + • Untuk aktifitas transfer, terdapat nasabah lain yang ditransferkan + • Setiap nasabah dapat melihat log aktifitas mereka, log aktifitas dikategorikan berdasarkan aktifitas menabung, menarik, mentransfer dan ditarnsferkan + • Setiap aktifitas diatas hanya dapat dilihat oleh nasabah yang bersangkutan setelah melakukan proses autentikasi + Alur Kerja + Ketika di run maka akan muncul perintah login menggunakan UserName dan password yang terdaftar di (BankPark).txt , setelah itu akan muncul diberikan menu yang bisa dipilih, seperti transfer, informasi detail, penarikan uang dan sebagainya, input harus (1,2,3,4,5,atau 0), tidak boleh salah, jika ada yang salah akan diminta untuk melakukan input baru. + Bagian dari project anda yang menerapkan konsep object oriented + 1. Class dan Objek terdapat pada class UserDetail + 2. Setter dan getter terdapat pada class UserDetail + 3. Encapsulation terdapat pada class BankPark, Bank, UserDetail + 4. Inheritence dan polymorphisme terdapat pada class BankPark + + Hal-hal yang ingin diimprove kedepannya mengenai project Bank + Semoga bisa lebih irit memory jika memungkinkan dan Menerapkan javaFX. diff --git a/H071191001/UserDetail.java b/H071191001/UserDetail.java new file mode 100644 index 0000000..e92ed57 --- /dev/null +++ b/H071191001/UserDetail.java @@ -0,0 +1,112 @@ +import java.util.ArrayList; + +class UserDetail { + private String name; + private int age; + private String address; + private String email; + private String accountNumber; + private int moneyAmount; + private String password; + private ArrayList activityLog = new ArrayList<>(); + int i = 0; + + protected UserDetail(String name, String password, int age, int moneyAmount, String email, String accountNumber, + String address) { + this.name = name; + this.password = password; + this.age = age; + this.address = address; + this.email = email; + this.accountNumber = accountNumber; + this.moneyAmount = moneyAmount; + } + + protected UserDetail() { + + } + + protected void setAccountNumber(String accountNumber) { + this.accountNumber = accountNumber; + } + + protected void setName(String name) { + this.name = name; + } + + protected void setAge(int age) { + this.age = age; + } + + protected void setAddress(String address) { + this.address = address; + } + + protected void setEmail(String email) { + this.email = email; + } + + protected void setPassword(String password) { + this.password = password; + } + + protected void saving(int amount) { + moneyAmount += amount; + activityLog.add(++i + ". Menambah saldo sebanyak : " + amount + "\n"); + } + + protected void takeMoney(int amount) { + if (moneyAmount >= amount) { + moneyAmount -= amount; + activityLog.add(++i + ". Menarik saldo sebanyak : " + amount + "\n"); + } else { + System.out.println("Maaf saldo anda tidak cukup"); + } + } + + protected void transfer(int amount, String accountNumber, String name) { + if (moneyAmount >= amount) { + moneyAmount -= amount; + activityLog.add(++i + ". Transfer ke rekening " + accountNumber + "(" + name + ")" + " Sebanyak : " + amount + + "\n"); + } else { + System.out.println("Maaf saldo anda tidak mencukupi"); + } + } + + protected void savingFromTransfer(int amount) { + moneyAmount += amount; + } + + protected String getName() { + return name; + } + + protected String getPassword() { + return password; + } + + protected int getAge() { + return age; + } + + protected String getAccountNumber() { + return accountNumber; + } + + protected String getAddress() { + return address; + } + + protected String getEmail() { + return email; + } + + protected int getMoneyAmount() { + return moneyAmount; + } + + protected ArrayList getActivityLog() { + return activityLog; + } +} \ No newline at end of file From e5bc8e6a27220261634a71db04c98cbc4d286331 Mon Sep 17 00:00:00 2001 From: bilbubble <54440654+bilbubble@users.noreply.github.com> Date: Sun, 29 Mar 2020 16:25:23 +0800 Subject: [PATCH 2/4] Update README.md --- H071191001/README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/H071191001/README.md b/H071191001/README.md index 97bca41..8a025e6 100644 --- a/H071191001/README.md +++ b/H071191001/README.md @@ -1,15 +1,19 @@ -Bank +Bank System + Spesifikasi Project • Program ini merupakan Sistem Bank Sederhana • Terdapat Bank yang tersimpan di dalam file (BankPark).txt, Terdapat Nasabah, setiap nasabah dapat memiliki lebih dari 1 akun, namun hanya terdapat 1 akun dalam 1 bank • Setiap Nasabah memiliki Rekening, jika nasabah memiliki akun dibeberapa bank, maka masing-masing akun memiliki detail rekening yang berbeda-beda • Nasabah dapat melakukan aktifitas menabung, transfer dan menarik uang - • Aktifitas menabung dan menarik uang hanya dapat dilakukan jika nasabah menggunakan akun yang sesuai dengan bank yang dikunjungi + • Aktifitas menabung dan menarik uang hanya dapat dilakukan jika nasabah menggunakan akun yang sesuai dengan bank yang dikunjungi • Untuk aktifitas transfer, terdapat nasabah lain yang ditransferkan • Setiap nasabah dapat melihat log aktifitas mereka, log aktifitas dikategorikan berdasarkan aktifitas menabung, menarik, mentransfer dan ditarnsferkan • Setiap aktifitas diatas hanya dapat dilihat oleh nasabah yang bersangkutan setelah melakukan proses autentikasi Alur Kerja - Ketika di run maka akan muncul perintah login menggunakan UserName dan password yang terdaftar di (BankPark).txt , setelah itu akan muncul diberikan menu yang bisa dipilih, seperti transfer, informasi detail, penarikan uang dan sebagainya, input harus (1,2,3,4,5,atau 0), tidak boleh salah, jika ada yang salah akan diminta untuk melakukan input baru. + Ketika di run maka akan muncul perintah login menggunakan UserName dan password yang terdaftar di (BankPark).txt , + setelah itu akan muncul diberikan menu yang bisa dipilih, seperti transfer, informasi detail, penarikan uang dan sebagainya, + input harus (1,2,3,4,5,atau 0), tidak boleh salah, jika ada yang salah akan diminta untuk melakukan input baru. + Bagian dari project anda yang menerapkan konsep object oriented 1. Class dan Objek terdapat pada class UserDetail 2. Setter dan getter terdapat pada class UserDetail From eae9906da46676a52c0656132ec97ec5409d4762 Mon Sep 17 00:00:00 2001 From: bilbubble <54440654+bilbubble@users.noreply.github.com> Date: Sun, 29 Mar 2020 16:28:00 +0800 Subject: [PATCH 3/4] Update README.md --- H071191001/README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/H071191001/README.md b/H071191001/README.md index 8a025e6..9d78dc8 100644 --- a/H071191001/README.md +++ b/H071191001/README.md @@ -1,24 +1,24 @@ Bank System - Spesifikasi Project +Spesifikasi Project • Program ini merupakan Sistem Bank Sederhana - • Terdapat Bank yang tersimpan di dalam file (BankPark).txt, Terdapat Nasabah, setiap nasabah dapat memiliki lebih dari 1 akun, namun hanya terdapat 1 akun dalam 1 bank - • Setiap Nasabah memiliki Rekening, jika nasabah memiliki akun dibeberapa bank, maka masing-masing akun memiliki detail rekening yang berbeda-beda + • Terdapat Bank yang tersimpan di dalam file (BankPark).txt, Terdapat Nasabah, setiap nasabah dapat memiliki lebih dari 1 akun, namun hanya terdapat 1 akun dalam 1 bank + • Setiap Nasabah memiliki Rekening, jika nasabah memiliki akun dibeberapa bank, maka masing-masing akun memiliki detail rekening yang berbeda-beda • Nasabah dapat melakukan aktifitas menabung, transfer dan menarik uang - • Aktifitas menabung dan menarik uang hanya dapat dilakukan jika nasabah menggunakan akun yang sesuai dengan bank yang dikunjungi + • Aktifitas menabung dan menarik uang hanya dapat dilakukan jika nasabah menggunakan akun yang sesuai dengan bank yang dikunjungi • Untuk aktifitas transfer, terdapat nasabah lain yang ditransferkan - • Setiap nasabah dapat melihat log aktifitas mereka, log aktifitas dikategorikan berdasarkan aktifitas menabung, menarik, mentransfer dan ditarnsferkan - • Setiap aktifitas diatas hanya dapat dilihat oleh nasabah yang bersangkutan setelah melakukan proses autentikasi - Alur Kerja + • Setiap nasabah dapat melihat log aktifitas mereka, log aktifitas dikategorikan berdasarkan aktifitas menabung, menarik, mentransfer dan ditarnsferkan + • Setiap aktifitas diatas hanya dapat dilihat oleh nasabah yang bersangkutan setelah melakukan proses autentikasi + +Alur Kerja Ketika di run maka akan muncul perintah login menggunakan UserName dan password yang terdaftar di (BankPark).txt , - setelah itu akan muncul diberikan menu yang bisa dipilih, seperti transfer, informasi detail, penarikan uang dan sebagainya, - input harus (1,2,3,4,5,atau 0), tidak boleh salah, jika ada yang salah akan diminta untuk melakukan input baru. + setelah itu akan muncul diberikan menu yang bisa dipilih, seperti transfer, informasi detail, penarikan uang dan sebagainya, input harus (1,2,3,4,5,atau 0), tidak boleh salah, jika ada yang salah akan diminta untuk melakukan input baru. - Bagian dari project anda yang menerapkan konsep object oriented +Bagian dari project anda yang menerapkan konsep object oriented 1. Class dan Objek terdapat pada class UserDetail 2. Setter dan getter terdapat pada class UserDetail 3. Encapsulation terdapat pada class BankPark, Bank, UserDetail 4. Inheritence dan polymorphisme terdapat pada class BankPark - Hal-hal yang ingin diimprove kedepannya mengenai project Bank +Hal-hal yang ingin diimprove kedepannya mengenai project Bank Semoga bisa lebih irit memory jika memungkinkan dan Menerapkan javaFX. From cce9da1fcac386884aa849418626e840e22be0fd Mon Sep 17 00:00:00 2001 From: bilbubble <54440654+bilbubble@users.noreply.github.com> Date: Sun, 29 Mar 2020 16:29:06 +0800 Subject: [PATCH 4/4] Update README.md --- H071191001/README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/H071191001/README.md b/H071191001/README.md index 9d78dc8..09bc0e5 100644 --- a/H071191001/README.md +++ b/H071191001/README.md @@ -1,16 +1,23 @@ Bank System -Spesifikasi Project + Spesifikasi Project • Program ini merupakan Sistem Bank Sederhana + • Terdapat Bank yang tersimpan di dalam file (BankPark).txt, Terdapat Nasabah, setiap nasabah dapat memiliki lebih dari 1 akun, namun hanya terdapat 1 akun dalam 1 bank + • Setiap Nasabah memiliki Rekening, jika nasabah memiliki akun dibeberapa bank, maka masing-masing akun memiliki detail rekening yang berbeda-beda + • Nasabah dapat melakukan aktifitas menabung, transfer dan menarik uang + • Aktifitas menabung dan menarik uang hanya dapat dilakukan jika nasabah menggunakan akun yang sesuai dengan bank yang dikunjungi + • Untuk aktifitas transfer, terdapat nasabah lain yang ditransferkan + • Setiap nasabah dapat melihat log aktifitas mereka, log aktifitas dikategorikan berdasarkan aktifitas menabung, menarik, mentransfer dan ditarnsferkan + • Setiap aktifitas diatas hanya dapat dilihat oleh nasabah yang bersangkutan setelah melakukan proses autentikasi -Alur Kerja + Alur Kerja Ketika di run maka akan muncul perintah login menggunakan UserName dan password yang terdaftar di (BankPark).txt , setelah itu akan muncul diberikan menu yang bisa dipilih, seperti transfer, informasi detail, penarikan uang dan sebagainya, input harus (1,2,3,4,5,atau 0), tidak boleh salah, jika ada yang salah akan diminta untuk melakukan input baru.