diff --git a/H071191013/Item Store/ItemStore-H071191013/.classpath b/H071191013/Item Store/ItemStore-H071191013/.classpath new file mode 100644 index 0000000..cc8c2c8 --- /dev/null +++ b/H071191013/Item Store/ItemStore-H071191013/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/H071191013/Item Store/ItemStore-H071191013/.project b/H071191013/Item Store/ItemStore-H071191013/.project new file mode 100644 index 0000000..c39400b --- /dev/null +++ b/H071191013/Item Store/ItemStore-H071191013/.project @@ -0,0 +1,17 @@ + + + ItemStore-H071191013 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + \ No newline at end of file diff --git a/H071191013/Item Store/ItemStore-H071191013/.settings/org.eclipse.jdt.core.prefs b/H071191013/Item Store/ItemStore-H071191013/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..82245cc --- /dev/null +++ b/H071191013/Item Store/ItemStore-H071191013/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=12 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=10 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=12 diff --git a/H071191013/Item Store/ItemStore-H071191013/bin/app/DataSource.class b/H071191013/Item Store/ItemStore-H071191013/bin/app/DataSource.class new file mode 100644 index 0000000..4c52de3 Binary files /dev/null and b/H071191013/Item Store/ItemStore-H071191013/bin/app/DataSource.class differ diff --git a/H071191013/Item Store/ItemStore-H071191013/bin/app/Item.class b/H071191013/Item Store/ItemStore-H071191013/bin/app/Item.class new file mode 100644 index 0000000..4402225 Binary files /dev/null and b/H071191013/Item Store/ItemStore-H071191013/bin/app/Item.class differ diff --git a/H071191013/Item Store/ItemStore-H071191013/bin/app/Item.txt b/H071191013/Item Store/ItemStore-H071191013/bin/app/Item.txt new file mode 100644 index 0000000..d0cf0f9 --- /dev/null +++ b/H071191013/Item Store/ItemStore-H071191013/bin/app/Item.txt @@ -0,0 +1,9 @@ +0;Penggaris;4000;Untuk Menggaris +1;Pulpen;3000;Untuk Menulis +2;Tipe-X;4500;Untuk Menghapus +3;Buku;5000;Untuk Tempat Menulis +4;Jangkar;2000;Untuk Membuat Lingkaran +5;Tisu;7500;Untuk Membersihkan +6;Krayon;12000;Untuk Mewarnai +7;Kamus;35000;Untuk Mencari Kata +8;Kalkulator;40000;Untuk Membantu Menghitung \ No newline at end of file diff --git a/H071191013/Item Store/ItemStore-H071191013/bin/app/Main.class b/H071191013/Item Store/ItemStore-H071191013/bin/app/Main.class new file mode 100644 index 0000000..e14d1ee Binary files /dev/null and b/H071191013/Item Store/ItemStore-H071191013/bin/app/Main.class differ diff --git a/H071191013/Item Store/ItemStore-H071191013/bin/app/Owner.txt b/H071191013/Item Store/ItemStore-H071191013/bin/app/Owner.txt new file mode 100644 index 0000000..5cb010f --- /dev/null +++ b/H071191013/Item Store/ItemStore-H071191013/bin/app/Owner.txt @@ -0,0 +1,5 @@ +Luffy;30000;0:10-1:11-3:10-4:10-5:10-2:1- +Zoro;50000;2:8-3:8-4:8-5:7-6:5- +Sanji;50000;2:3-3:2-4:2-5:10-6:10- +Nami;55000;1:13-2:14-3:20-4:30- +Usopp;50000;0:15-1:12-3:15-4:18-5:15-6:12-7:7-8:19- \ No newline at end of file diff --git a/H071191013/Item Store/ItemStore-H071191013/bin/app/Penawaran.class b/H071191013/Item Store/ItemStore-H071191013/bin/app/Penawaran.class new file mode 100644 index 0000000..e24ce93 Binary files /dev/null and b/H071191013/Item Store/ItemStore-H071191013/bin/app/Penawaran.class differ diff --git a/H071191013/Item Store/ItemStore-H071191013/bin/app/Player.class b/H071191013/Item Store/ItemStore-H071191013/bin/app/Player.class new file mode 100644 index 0000000..ce9585f Binary files /dev/null and b/H071191013/Item Store/ItemStore-H071191013/bin/app/Player.class differ diff --git a/H071191013/Item Store/ItemStore-H071191013/bin/app/Player.txt b/H071191013/Item Store/ItemStore-H071191013/bin/app/Player.txt new file mode 100644 index 0000000..b7a3df6 --- /dev/null +++ b/H071191013/Item Store/ItemStore-H071191013/bin/app/Player.txt @@ -0,0 +1,4 @@ +Rafli;30000;1:1-; +Ikhsan;98000;2:1-; +Alif;90000;1:1-; +Richard;72000;1:2-; \ No newline at end of file diff --git a/H071191013/Item Store/ItemStore-H071191013/bin/app/Store.class b/H071191013/Item Store/ItemStore-H071191013/bin/app/Store.class new file mode 100644 index 0000000..de64a4e Binary files /dev/null and b/H071191013/Item Store/ItemStore-H071191013/bin/app/Store.class differ diff --git a/H071191013/Item Store/ItemStore-H071191013/bin/app/Store.txt b/H071191013/Item Store/ItemStore-H071191013/bin/app/Store.txt new file mode 100644 index 0000000..82070cb --- /dev/null +++ b/H071191013/Item Store/ItemStore-H071191013/bin/app/Store.txt @@ -0,0 +1,5 @@ +0;Alfamart;0;Selamat Datang di Alfamart +1;Sunny Go;0;All For One +2;Baratie;0;Barang Berkualitas Harga Terjangkau +3;Arlong Park;0;Berkilau Tapi Bukan Emas +4;Merry Go;0;All in One \ No newline at end of file diff --git a/H071191013/Item Store/ItemStore-H071191013/bin/app/StoreOwner.class b/H071191013/Item Store/ItemStore-H071191013/bin/app/StoreOwner.class new file mode 100644 index 0000000..949eff9 Binary files /dev/null and b/H071191013/Item Store/ItemStore-H071191013/bin/app/StoreOwner.class differ diff --git a/H071191013/Item Store/ItemStore-H071191013/bin/app/StoreStar.class b/H071191013/Item Store/ItemStore-H071191013/bin/app/StoreStar.class new file mode 100644 index 0000000..c5785b7 Binary files /dev/null and b/H071191013/Item Store/ItemStore-H071191013/bin/app/StoreStar.class differ diff --git a/H071191013/Item Store/ItemStore-H071191013/bin/app/User.class b/H071191013/Item Store/ItemStore-H071191013/bin/app/User.class new file mode 100644 index 0000000..163d9fd Binary files /dev/null and b/H071191013/Item Store/ItemStore-H071191013/bin/app/User.class differ diff --git a/H071191013/Item Store/ItemStore-H071191013/src/app/DataSource.java b/H071191013/Item Store/ItemStore-H071191013/src/app/DataSource.java new file mode 100644 index 0000000..276d349 --- /dev/null +++ b/H071191013/Item Store/ItemStore-H071191013/src/app/DataSource.java @@ -0,0 +1,141 @@ +package app; + +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 DataSource { + + StoreOwner[] owners = getOwners(); + private String baca (String namaFile) { + Path path = Paths.get("src/app/"+namaFile); + String fileContent = null; + try { + fileContent = new String(Files.readAllBytes(path), StandardCharsets.ISO_8859_1); + } catch (IOException e) { + e.printStackTrace(); + } + return fileContent; + } + //getPlayer + public Player[] getPlayer() { + String inputPlayer = baca("Player.txt"); + String inputItem = baca("Item.txt"); + String[] playerContent = inputPlayer.split("\\r?\\n"); + String[] itemContent = inputItem.split("\\r?\\n"); + Player[] player = new Player[playerContent.length]; + for (int i = 0; i < playerContent.length; i++) { + ArrayList item = new ArrayList<>(); + Item itemPenawaran = null; + String[] modifContent = playerContent[i].split(";"); + if(modifContent[2].equals("")||modifContent[2].equals("null")){} + else { + String[] daftarItem = modifContent[2].split("-"); + for (int j = 0; j < daftarItem.length; j++) { + String[] items = daftarItem[j].split(":"); + String[] spekItem = itemContent[Integer.parseInt(items[0])].split(";"); + item.add(new Item(Integer.parseInt(spekItem[0]), spekItem[1], Integer.parseInt(spekItem[2]), Integer.parseInt(items[1]), spekItem[3])); + } + } + String[] itemP = new String[2]; + itemP[1]=String.valueOf(-1); + if(modifContent.length!=4){} + else{ + itemP = modifContent[3].split(":"); + String[] spekItem2 = itemContent[Integer.parseInt(itemP[0])].split(";"); + itemPenawaran = new Item(Integer.parseInt(spekItem2[0]),spekItem2[1], Integer.parseInt(spekItem2[2]),1, spekItem2[3]); + } + player[i] = new Player(modifContent[0], Integer.parseInt(modifContent[1]), item, itemPenawaran, Integer.parseInt(itemP[1])); + } + return player; + } + //getStore + public StoreOwner[] getOwners() { + String inputStore = baca("Owner.txt"); + String inputItem = baca("Item.txt"); + String[] storeContent = inputStore.split("\\r?\\n"); + String[] itemContent = inputItem.split("\\r?\\n"); + owners = new StoreOwner[storeContent.length]; + for (int i = 0; i < storeContent.length; i++) { + ArrayList item = new ArrayList<>(); + String[] modifContent = storeContent[i].split(";"); + String[] daftarItem = modifContent[2].split("-"); + for (int j = 0; j < daftarItem.length; j++) { + String[] items = daftarItem[j].split(":"); + String[] spekItem = itemContent[Integer.parseInt(items[0])].split(";"); + item.add(new Item(Integer.parseInt(spekItem[0]),spekItem[1], Integer.parseInt(spekItem[2]), Integer.parseInt(items[1]), spekItem[3])); + } + owners[i] = new StoreOwner(modifContent[0], Integer.parseInt(modifContent[1]), item); + } + return owners; + } + public Store[] getStore(){ + String inputStore = baca("Store.txt"); + String[] storeContent = inputStore.split("\\r?\\n"); + Store[] store = new Store[storeContent.length]; + for (int i = 0; i < storeContent.length; i++) { + String[] modifContent = storeContent[i].split(";"); + store[i] = new Store(owners[Integer.parseInt(modifContent[0])], modifContent[1], Integer.parseInt(modifContent[2]), modifContent[3]); + } + return store; + } + public void saveData(Store[] updateStores, StoreOwner[] updateOwner, Player[] updatePlayer){ + Path playerPath = Paths.get("src/app/Player.txt"); + Path storePath = Paths.get("src/app/Store.txt"); + Path ownerPath = Paths.get("src/app/Owner.txt"); + String[] store = new String[updateStores.length]; + String[] player = new String [updatePlayer.length]; + String[] owner = new String [updateOwner.length]; + for(int i=0;i items; + static int indexUser; + public static void main(String[] args) { + players = dataSource.getPlayer(); + owners = dataSource.getOwners(); + stores = dataSource.getStore(); + mainMenu(); + } + //main Menu + public static void mainMenu(){ + + System.out.println(" -Item Store- "); + System.out.println("1. Mulai\n2. Keluar"); + System.out.print("Input Nilai : "); + + int inp = sc.nextInt(); + sc.nextLine(); + switch (inp){ + case 1: + startMenu(); + break; + case 2: + return; + default: + System.out.println("Input Salah"); + mainMenu(); + } + } + + //start Menu + public static void startMenu(){ + System.out.println("-----------------------------"); + System.out.println(" PILIH USER "); + System.out.println("-----------------------------"); + //daftar player + int indexO = 1; + for (int i=0;i "); + int inp = sc.nextInt(); + if(inp==index){ + saveData(); + } + //jika store owner yang terpilih + else if(inp>=indexO){ + storeAction(inp-indexO); + //jika player yang terpilih + }else { + playerAction(inp-1); + } + + } + + //playerAction + public static void playerAction(int i){ + players[i].action(); + items = players[i].getItems(); + System.out.print("> "); + String input = sc.next(); + switch (input){ + case "i": + System.out.println("-----------------------------"); + System.out.println("Item Ditawarkan"); + if(players[i].getPenawaran().getItemDitawarkan()==null){ + }else{ + System.out.printf("%s dgn harga Rp.%d\n", players[i].getPenawaran().getItemDitawarkan().getName(), players[i].getPenawaran().getHargaPenawaran()); + } + System.out.println("-----------------------------"); + if(!items.isEmpty()){ + System.out.println(" Pilih Item "); + players[i].showItems(); + } + else { + System.out.println("TIdak ada Item"); + System.out.println("-----------------------------"); + } + System.out.println(" [k] kembali"); + System.out.println("-----------------------------"); + System.out.print("> "); + String inp = sc.next(); + if(inp.equals("k")){ + playerAction(i); + } + itemAction(i, (Integer.parseInt(inp)-1)); + break; + case "t": + marketPlace(i); + break; + case "p": + penawaranPlayer(i, 1); + playerAction(i); + break; + case "b": + players[i].createStore(); + break; + case "h": + delete(i,"p"); + System.out.println("User Berhasil Di Hapus"); + startMenu(); + break; + case "k": + startMenu(); + break; + default : + playerAction(i); + } + } + //item action + private static void itemAction(int indexPlayer, int indexItem) { + System.out.println("-----------------------------"); + System.out.println(" "+items.get(indexItem).getName()); + System.out.println("-----------------------------"); + System.out.println("[j]Jual | [i]Info | [k]Kembali"); + System.out.println("-----------------------------"); + System.out.print("> "); + String inp = sc.next(); + switch (inp){ + case "j": + playerSellItem(indexItem, indexPlayer); + playerAction(indexPlayer); + break; + case "i": + System.out.println("-----------------------------"); + System.out.println(" "+items.get(indexItem).getInfo()); + System.out.println("-----------------------------"); + itemAction(indexPlayer, indexItem); + break; + case "k": + playerAction(indexPlayer); + break; + default: + itemAction(indexPlayer, indexItem); + } + } + + //ownerAction + public static void storeAction(int i){ + owners[i].action(); + System.out.print("> "); + String input = sc.next(); + switch (input){ + case "m": + stores[i].myStore(); + modifMyStore(i); + storeAction(i); + break; + case "p": + penawaranPlayer(i, 0); + storeAction(i); + break; + case "h": + delete(i,"s"); + System.out.println("User Berhasil Di Hapus"); + startMenu(); + break; + case "k": + startMenu(); + break; + default : + storeAction(i); + } + } + //player market place + public static void marketPlace(int nowPlayer){ + System.out.println("-----------------------------"); + System.out.println(" PUSAT PENJUALAN"); + System.out.println("-----------------------------"); + for (int i=0;i "); + int inp = sc.nextInt(); + buyFromStore(inp-1, nowPlayer); + } + //store market + public static void marketPlaceStore(int my){ + System.out.println("-----------------------------"); + System.out.println(" PUSAT PENJUALAN"); + System.out.println("-----------------------------"); + int index = 0; + for (int i=0;i "); + int input = sc.nextInt()-1; + input=input>=my?input+1:input; + storeFromStore(my, input); + } + + //modif store + public static void modifMyStore(int i){ + System.out.print("> "); + String inp = sc.next();sc.nextLine(); + switch (inp){ + case "o": + System.out.println("-----------------------------"); + System.out.println(" BUAT MOTTO "); + System.out.println("-----------------------------"); + System.out.print("> "); + String inp1 = sc.nextLine(); + stores[i].myMotto(inp1); + storeAction(i); + break; + case "m": + marketPlaceStore(i); + break; + case "b": + storeAction(i); + break; + default: + modifMyStore(i); + } + } + + //delete akun + public static void delete(int i, String tipe){ + if(tipe.equals("p")){ + for(int j=i;j "); + String input = sc.next(); + if(input.equals("k")){ + storeAction(nowPlayer); + } + int inp = Integer.parseInt(input); + System.out.println("Jumlah Pembelian"); + System.out.print("> "); + int sum = sc.nextInt(); + System.out.println("-----------------------------"); + Item sell = owners[from].getItem(inp - 1); + int itemPrice = sum > 5 ? (sell.getPrice() * 80 / 100) * sum : (sell.getPrice() * sum); + if (itemPrice <= owners[nowPlayer].getMoney() && sell.getKuantitas()>=sum) { + owners[nowPlayer].setMoney((owners[nowPlayer].getMoney())- itemPrice); + owners[from].setMoney(owners[from].getMoney() + itemPrice); + owners[nowPlayer].setItem(sell.getId(), sell.getName(), sell.getPrice(), sell.getInfo(),sum); + owners[from].getItem(inp - 1).setKuantitas(sell.getKuantitas() - sum); + stores[from].setPenjualan(stores[from].getPenjualan()+1); + storeFromStore(nowPlayer,from); + } else if(sell.getKuantitas() "); + String input = sc.next(); + if(input.equals("b")){ + playerAction(nowPlayer); + } + int inp = Integer.parseInt(input); + Item sell = owners[from].getItem(inp-1); + if(sell.getPrice()<=players[nowPlayer].getMoney()){ + players[nowPlayer].setMoney((players[nowPlayer].getMoney())-(sell.getPrice())); + owners[from].setMoney(owners[from].getMoney()+sell.getPrice()); + players[nowPlayer].setItem(sell.getId(),sell.getName(),sell.getPrice(),sell.getInfo(),1); + owners[from].getItem(inp-1).setKuantitas(sell.getKuantitas()-1); + System.out.println("-----------------------------"); + System.out.printf("(!) %s\n\tMembeli %s\n\tDari %s Store\n",players[nowPlayer].getName(),sell.getName(),stores[from].getName()); + System.out.println("-----------------------------"); + playerAction(nowPlayer); + }else{ + System.out.println("-----------------------------"); + System.out.println(" (!) Maaf Uang anda tidak cukup\n (!) Pembelian Gagal"); + System.out.println("-----------------------------"); + playerAction(nowPlayer); + + } + } + public static void penawaranPlayer(int ind, int tipe){ + System.out.println(" DAFTAR PENAWARAN"); + boolean kosong = true; + int index = 0; + int[] nowIndex = new int[players.length]; + for(int i=0;i "); + int input = sc.nextInt()-1; + if(input>index){ + penawaranPlayer(ind, tipe); + } + input = nowIndex[input]; + Item item = players[input].getPenawaran().getItemDitawarkan(); + penawaranDiterima(ind, tipe, players[input], item); + } + } + public static void playerSellItem(int ind, int i) { + if (players[i].getPenawaran().getItemDitawarkan() == null) { + System.out.println("Harga Penawaran"); + System.out.print("> "); + int harga = sc.nextInt(); + if (harga < 0 || harga >= 200000) { + System.out.println("Harga Tidak Wajar"); + playerSellItem(ind, i); + } + players[i].takeItemToPenawaran(ind, harga); + } + else{ + System.out.println("(!)Player Hanya Boleh\nMemiliki 1 Penawaran"); + } + } + + public static void penawaranDiterima(int indexPlayerAktif, int tipe, Player playerPenawar, Item item){ + if(tipe==1){ + if(players[indexPlayerAktif].getMoney() items, Item itemPenawaran, int hargaItem) { + super(name, money, items); + penawaran = new Penawaran(); + if(itemPenawaran!=null){ + penawaran.setItem(itemPenawaran); + penawaran.setPrice(hargaItem); + } + + } + + @Override + public void action() { + System.out.println("-----------------------------"); + System.out.println(" "+getName().toUpperCase()); + System.out.println(" Status : Player"); + System.out.println("-----------------------------"); + System.out.println(" Cash Rp."+ getMoney()); + System.out.println("-----------------------------"); + System.out.println("[i] Item"); + System.out.println("[t] Toko"); + System.out.println("[p] Penawaran Player"); + System.out.println("[b] Buat Toko"); + System.out.println("[h] Hapus Akun"); + System.out.println("[k] Kembali"); + System.out.println("-----------------------------"); + } + + public void createStore(){} + public void takeItemToPenawaran(int indexitem, int price){ + if(items.get(indexitem)!=null&&penawaran.getItemDitawarkan()==null){ + penawaran.setItem(items.get(indexitem)); + penawaran.setPrice(price); + items.remove(indexitem); + } + } + public Penawaran getPenawaran(){ + return penawaran; + } + public void kosongkanPenawaran(){ + penawaran = new Penawaran(); + } +} \ No newline at end of file diff --git a/H071191013/Item Store/ItemStore-H071191013/src/app/Player.txt b/H071191013/Item Store/ItemStore-H071191013/src/app/Player.txt new file mode 100644 index 0000000..b7a3df6 --- /dev/null +++ b/H071191013/Item Store/ItemStore-H071191013/src/app/Player.txt @@ -0,0 +1,4 @@ +Rafli;30000;1:1-; +Ikhsan;98000;2:1-; +Alif;90000;1:1-; +Richard;72000;1:2-; \ No newline at end of file diff --git a/H071191013/Item Store/ItemStore-H071191013/src/app/Store.java b/H071191013/Item Store/ItemStore-H071191013/src/app/Store.java new file mode 100644 index 0000000..e1f4e7b --- /dev/null +++ b/H071191013/Item Store/ItemStore-H071191013/src/app/Store.java @@ -0,0 +1,69 @@ +package app; +import java.util.ArrayList; + +public class Store{ + private String name; + private String motto = ""; + private int penjualan; + private int star; + private StoreOwner owner; + public Store(StoreOwner owner, String name, int penjualan, String motto){ + this.owner = owner; + this.name = name; + this.penjualan = penjualan; + this.motto = motto; + myStar(); + } + public void setPenjualan (int penjualan){ + this.penjualan = penjualan; + } + public int getPenjualan(){ + return penjualan; + } + public void myMotto(String motto) { + this.motto = motto; + } + public void myStar() { + if(penjualan<=1){ + star = 1; + }else if(penjualan<=3){ + star = 2; + }else if(penjualan<=5){ + star = 3; + }else if(penjualan<=7){ + star = 4; + }else { + star = 5; + } + } + public String getName(){ + return name; + } + public String getMotto (){ + return motto; + } + public int getStar(){ + myStar(); + return star; + } + public StoreOwner getOwner(){ + return owner; + } + public void myStore(){ + ArrayList items = owner.getItems(); + System.out.println("-----------------------------"); + System.out.println("\tMY STORE "); + System.out.println("-----------------------------"); + System.out.println("Name : "+name); + System.out.println("Star : "+star); + System.out.println("-----------------------------"); + for(int i=0;i items) { + super(name, money, items); + } + @Override + public void action() { + System.out.println("-----------------------------"); + System.out.println(" "+getName().toUpperCase()); + System.out.println(" Status : Store Owner"); + System.out.println("-----------------------------"); + System.out.println(" Modal Rp.: "+ getMoney()); + System.out.println("-----------------------------"); + System.out.println("[m] Tokoku"); + System.out.println("[p] Penawaran Player"); + System.out.println("[h] Hapus Akun"); + System.out.println("[k] Kembali"); + System.out.println("-----------------------------"); + } +} \ No newline at end of file diff --git a/H071191013/Item Store/ItemStore-H071191013/src/app/StoreStar.java b/H071191013/Item Store/ItemStore-H071191013/src/app/StoreStar.java new file mode 100644 index 0000000..b602f95 --- /dev/null +++ b/H071191013/Item Store/ItemStore-H071191013/src/app/StoreStar.java @@ -0,0 +1,5 @@ +package app; +interface StoreStar { + void myStar(); + void myMotto(String motto); +} diff --git a/H071191013/Item Store/ItemStore-H071191013/src/app/User.java b/H071191013/Item Store/ItemStore-H071191013/src/app/User.java new file mode 100644 index 0000000..e301b92 --- /dev/null +++ b/H071191013/Item Store/ItemStore-H071191013/src/app/User.java @@ -0,0 +1,71 @@ +package app; +import java.util.ArrayList; +public class User { + protected String name; + protected int money; + protected ArrayList items; + //konstruktor User + public User(String name, int money, ArrayList items2){ + this.money = money; + this.name = name; + this.items = items2; + } + //set money + public void setMoney(int money){ + this.money = money; + } + //getter + public String getName (){ + return name; + } + public ArrayList getItems (){ + checkItem(); + return items; + } + public Item getItem(int i){ + return items.get(i); + } + public int getMoney(){ + return money; + } + + //polymerpisme action + public void action(){}; + + //Item modif + public void showItems (){ + checkItem(); + int i=0; + System.out.println("-----------------------------"); + for (Item myItem:items){ + i++; + System.out.printf("[%d] %s \n\tHarga : Rp.%d \n\tStock : %d\n",i,myItem.getName(),myItem.getPrice(), myItem.getKuantitas()); + System.out.println("-----------------------------"); + } + } + public void checkItem(){ + for (int i=0;i - Berkas project berupa `.java` dimana *satu class satu file*. - > - Struktur Project dapat menggunakan Struktur Maven, Gradle, Eclipse dan sejenisnya -5. **Push** berkas project anda ke repositori hasil *fork* pada *branch* **NIM** anda. -6. Buat **Pull Request** untuk **Merge** *branch* **NIM** dengan *branch* **master** pada repositori ini. - -## Aturan Project Mid - -1. Setiap orang memilih salah satu dari tema *project* yang telah disediakan. -2. *Project* yang dibuat harus memiliki semua konsep dari materi yang telah dipelajari (*Class & Object - Polymorphism*). -3. Deskripsi dari tema *project* menjelaskan mengenai gambaran dan *minimum requirement*, yang berarti project yang anda buat minimal memenuhi *requirement* tersebut. -4. Fitur *project* anda boleh dimodifikasi dan ditambahkan, selama syarat no. 3 terpenuhi. -5. Jika *project* anda membutuhkan penyimpanan data, gunakan package *java.nio* untuk baca-tulis file. -6. Didalam direktori **NIM** anda, buat file **README.md** yang menjelaskan mengenai *project* anda termasuk : - - Spesifikasi *Project* - - Alur Kerja - - Contoh *input-output*, jika ada - - Bagian dari project anda yang menerapkan konsep *object oriented* - - Jika ada konsep *object oriented* yang tidak anda gunakan, jelaskan mengapa - - Hal-hal yang ingin di*improve* kedepannya mengenai project yang anda buat - - dll -7. Lakukan *commit* disetiap perubahan yang anda lakukan selama membuat *project*, hal ini akan menjadi *log* aktifitas dan bukti bahwa project tersebut adalah orisinil dari anda, sertakan *commit message* yang jelas dan deskriptif, *commit message* dapat menggunakan bahasa indonesia ataupun inggris, mengenai tata cara *commit* yang baik, sialahkan baca artikel berikut : [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/). -8. *Project* yang dibuat harus memiliki *Main Class* yang terdapat *main method* untuk simulasi *project* anda. - -9. Jika anda memiliki tema sendiri diluar dari tema yang disediakan, silahkan didiskusikan terlebih dahulu di grup. - -## Tema *Project* - -### Pet Clinic - -- Sistem Penitipan dan Jual Beli Hewan Peliharaan -- Setiap *Pet* yang dititipkan, memiliki *Owner* -- Setiap *Pet* hanya memiliki 1 *Owner*, dan *Owner* dapat memiliki lebih dari 1 *Pet* -- Setiap *Pet* memiliki status, titipan atau dijual -- Setiap *Owner*, memiliki data pribadi, seperti nama, alamat, no. telepon, dll -- Terdapat aktifitas untuk menitipkan, membeli, atau menjual *Pet* -- Untuk aktifitas menitipkan, terdapat jadwal penitipan dan pengembalian -- Terdapat aktifitas melihat daftar *Pet* Keseluruhan, yang dititipkan, dan yang dijual -- Terdapat aktifitas untuk melihat detail dari sebuah *Pet*, termasuk spesifikasi dari *Pet* tersebut, struktur spesifikasi dari *Pet* bergantung pada jenisnya (Ayam, Kucing, Anjing, dll) -- Untuk data pribadi dari *Owner*, hanya dapat dilihat oleh *Owner* itu sendiri, Pemilik *Pet Clinic* atau pegawai dari *Pet Clinic* - -### TO DO List - -- Sistem untuk Mencatat Jadwal Kegiatan yang akan dilakukan -- Daftar kegiatan dimiliki oleh satu *User* -- Setiap kegiatan memiliki deskripsi -- Setiap kegiatan memiliki jadwal mulai dan jadwal selesai -- Setiap Kegiatan memiliki status selesai, sedang dikerjakan, dan belum dikerjakan -- Setiap Kegiatan memiliki prioritas -- *User* hanya dapat melihat daftar kegiatan yang dibuatnya -- *User* dapat menampilkan daftar kegitan berdasarkan jadwal, prioritas, atau status -- *User* dapat menghapus dan menambah kegiatan - -### Bank - -- Sistem Bank Sederhana -- Terdapat Bank -- 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 - -### Library - -- Sistem Peminjaman Buku Perpustakaan -- Terdapat *User* -- Terdapat daftar *User* yang berkunjung -- *User* dapat mengambil buku untuk dibaca -- *User* yang ingin meminjam buku, harus menjadi *Member* perpustakaan -- Setiap buku memiliki detail buku yang memuat jenis buku, penulis, penerbit, jumlah halaman, dll -- Aktifitas peminjaman buku memiliki jadwal peminjaman dan jadwal pengemblian -- Jika *User* mengembalikan buku setelah jadwal pengembalian, maka akan dikenai denda yang dihitung perhari -- Terdapat log yang berisi daftar proses peminjaman -- *User* dapat melihat riwayat buku yang dibaca dan buku yang dipinjaman -- Riwayat yang dapat dilihat oleh user, hanya riwayat milikinya - -### Item Store - -- Sistem Jual Beli Item -- Terdapat *Store*, masing-masing *Store* memiliki *Owner* dan daftar *Item* yang dijual -- Setiap *Item* memiliki harga, kuantitas, dan detail -- Terdapat *User*, yang dapat berperan sebagai *Player*, *Store Owner*, atau keduanya -- Setiap *User* memiliki Uang -- Setiap *User* dapat memiliki lebih dari 1 *Item* -- Terdapat Aktifitas Membeli dan Menjual -- Jika *User* membeli *Item*, maka daftar itemnya bertambah, namun jika *Item* yang dibeli telah ada dalam daftarnya, maka yang bertambah adalah kuantitas dari *Item* tersebut -- Aktifitas membeli hanya dapat terjadi jika uang dari *User* mencukupu harga *Item* -- Uang dari *User* akan bertambah jika menjual *Item* -- Proses Jual Beli *Item* dapat dilakukan antar *Player-Player*, *Player-Store*, atau *Store-Store* - -### Burger Store - -- Sistem Penjualan *Hamburger* -- Terdapat Pesanan, setiap Pesanan dapat memilki lebih dari 1 item -- Terdapat beberapa jenis *Humburger*, setiap jenis memiliki harga *default* -- Terdapat *Addition* sperti *Drink*, *Ketchup*, *Potato*, *Tomato*, dll -- Setiap *Addition* memiliki harga -- Setiap Pesanan *Hamburger*, dapat memiliki lebih dari 1 *Addition* -- *Addition* dapat ditambahkan sekaligus atau satu persatu -- Harga akhir pesanan bergantung pada harga *Hamburger* yang dipesan beserta *Addition*nya - -### Academic System - -- Sistem Informasi Akademik Sederhana -- Terdapat Mahasiswa, Dosen, dan Matakuliah -- Setiap Mahasiswa dapat mengambil beberapa Matakuliah -- Setiap Matakuliah memiliki SKS dan Dosen Pengajar -- Jumlah SKS Matakuliah yang dapat diambil oleh Mahasiswa tidak boleh melebihi batas maksismum SKS Mahasiswa tersebut -- Setiap Mahasiswa memiliki 1 Dosen Pembimbing -- Dosen Pembimbing dapat memilki lebih dari 1 Mahasiswa bimbingan -- Dosen Pembimbing dapat melihat daftar Mahasiswa bimbingannya beserta detail dari Mahasiswa tersebut, termasuk mengenai Matakuliah yang diambil -- Setiap Mahasiswa dapat melihat detail dari daftar Matakuliah yang diambil -- 1 Matakuliah hanya dapat diambil 1 kali -- Terdapat aktifitas untuk melihat nilai IPS -- Setiap Mahasiswa hanya dapat melihat data miliknya +# Item Store Project + +H071191013 +Rafli Fathur Rachman + +Project ini berbasis jual beli item antara Player dan Store Owner +Setiap Player dan Store Owner memiliki uang dan memiliki lebih dari 1 item +dimana keduanya memiliki user masing-masing yang tersimpan dalam file Owner.txt dan Player.txt +- Untuk Item = Setiap Item memiliki Nama, Harga dan Detail dari item tersebut +- Untuk Player = Setiap Player memiliki Nama, Uang dan Item. player dapat membeli item di store dan dapat menjual Item mereka di daftar penawaran. Player dapat juga menentukan harga Item untuk dijual +- Untuk Store = Setiap Store memiliki Owner dimana juga Store mempunyai motto untuk Storenya + +Skema Jalannya Project +Ketika dijalankan maka akan muncul perintah +1. Mulai +2. Keluar +tekan 1 kemudian mengarah ke user yang telah disediakan +setelah memilih user maka terdapat perintah Item, Toko, Penawaran Player, Buat Toko, Hapus Akun dan Kembali untuk membeli item kita mengarah ke toko untuk membeli beberapa Item yang diinginkan dan sebagainya + +Hal yang dimprove ingin membuat project ini dalam bentuk JavaFX \ No newline at end of file