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..09bc0e5 --- /dev/null +++ b/H071191001/README.md @@ -0,0 +1,31 @@ +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 + + • 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