Simulasi Mesin ATM |
Disini saya akan coba berbagi atau mencoba berbagi ilmu yang saya tahu (cuma dikit sih yang saya tau, selebihnya hasil kerja kelompok..hehhe)..buat temen temen yang mungkin sedikit pusing mencari cara membuat simulasi mesin ATM dengan mengunakan neatbean, atau yang pastinya dapet tugas dari dosen nah saya coba share codeingnya dikit-dikit..selebihnya usaha sndiri ya...
memang kalo dikasih tugas tiba-tiba bisa jadi semangat ato malah jadi tambah males buat ngerjainnya...tapi yang masih punya semnagat buat belajar yuk kita liat dikit-dikit....
di simulasi mesin ATM ini saya membuat 4 class dalam package Simulasi;
class pertama, class nasabah:
package Simulasi;
@author pj
public class Nasabah {
private String nama;
private Tabungan tabungan= new Tabungan();
private String[] line;
Nasabah[] tab;
int currentId=0;
Nasabah(){}
@return the nama
public String getNama() {
return nama;
}
@param nama the nama to set
public void setNama(String nama) {
this.nama = nama;
}
@return the tabungan
public Tabungan getTabungan() {
return tabungan;
}
@param tabungan the tabungan to set
public void setTabungan(Tabungan tabungan) {
this.tabungan = tabungan;
}
public Nasabah(String nama, Tabungan t){
}
}
setelah kita selesai membuat class Nasabah, kita coba membuat 1 class lagi dengan nama misalkan Tabungan.
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
package Simulasi;
@author pj
public class Tabungan {
private int saldo;
private String idTabungan;
private String password;
Tabungan(){}
@return the saldo
public int getSaldo() {
return saldo;
}
@param saldo the saldo to set
public void setSaldo(int saldo) {
this.saldo = saldo;
}
@return the idTabungan
public String getIdTabungan() {
return idTabungan;
}
@param idTabungan the idTabungan to set
public void setIdTabungan(String idTabungan) {
this.idTabungan = idTabungan;
}
@return the password
public String getPassword() {
return password;
}
@param password the password to set
public void setPassword(String password) {
this.password = password;
}
public Tabungan(String id,String pass,int saldo){
}
}
setelah class Tabungan juga sudah dibuat, kita mencoba membuat lagi class misalnya class Rumus;
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
package Simulasi;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;
import javax.swing.JOptionPane;
@author pj
public class Rumus { // 3 tambah final
private Nasabah tabungan;
private String[] line;
private Nasabah[] tab;
private int currentId=0;
@return the tabungan
public Nasabah getTabungan() {
return tabungan;
}
@param tabungan the tabungan to set
public void setTabungan(Nasabah tabungan) {
this.tabungan = tabungan;
}
@return the line
public String[] getLine() {
return line;
}
@param line the line to set
public void setLine(String[] line) {
this.line = line;
}
@return the tab
public Nasabah[] getTab() {
return tab;
}
@param tab the tab to set
public void setTab(Nasabah[] tab) {
this.tab = tab;
}
@return the currentId
public int getCurrentId() {
return currentId;
}
@param currentId the currentId to set
public void setCurrentId(int currentId) {
this.currentId = currentId;
}
public Rumus(String val) throws FileNotFoundException, IOException{
bacafile(val);
tab= new Nasabah[10];
for(int i=0;i< line.length;i++){
if(line[i]==null){
break;
}
tab[i]= new Nasabah();
StringTokenizer st= new StringTokenizer(getLine()[i]);
tab[i].getTabungan().setIdTabungan(st.nextToken());
tab[i].setNama(st.nextToken());
tab[i].getTabungan().setPassword(st.nextToken());
tab[i].getTabungan().setSaldo(Integer.parseInt(st.nextToken()));
}
}
public void bacafile(String val) throws FileNotFoundException, IOException{
BufferedReader reader;
File f;
setLine(new String[10]);
f= new File(val);
reader = new BufferedReader(new FileReader(f));
int i=0;
while (true){
getLine()[i] = reader.readLine();
if( getLine()[i]==null){
break;
}
i++;
}
}
public int cekId(String id){
String a=id;
int x=1;
for(int x1=0;x1<a.length();x1++){
if(a.charAt(x1)==' ')
x++;
}
if(x==2){
StringTokenizer st=new StringTokenizer(id);
String idTabungan= st.nextToken();
String password= st.nextToken();
for(int i=0;i<getLine().length;i++){
if( getLine()[i]==null){
break;
}
if(idTabungan.equals(getTab()[i].getTabungan().getIdTabungan()) && password.equals(getTab()[i].getTabungan().getPassword())){
setCurrentId(i);
return 1;
}
}
}
return 0;
}
public String namaNasabah(){
return getTab()[getCurrentId()].getNama();
}
public int cekSaldo(){
return getTab()[getCurrentId()].getTabungan().getSaldo();
}
public void ambiluang(int ambil){
if( ambil < getTab()[getCurrentId()].getTabungan().getSaldo() ){
int saldo =getTab()[getCurrentId()].getTabungan().getSaldo()- ambil;
getTab()[getCurrentId()].getTabungan().setSaldo(saldo);
}else{ JOptionPane.showMessageDialog(null, "maaf saldo anda tidak mencukupi");
}
}
public void simpanuang(int simpan){
int saldo=getTab()[getCurrentId()].getTabungan().getSaldo()+ simpan;
getTab()[getCurrentId()].getTabungan().setSaldo(saldo);
}
public void transfer(String tran){
StringTokenizer st= new StringTokenizer(tran);
String id =st.nextToken();
int uangTran = Integer.parseInt(st.nextToken());
int cek=0;
int i;
for(i = 0; i < line.length; i++){
if(tab[i] != null) {
if (id.equals(tab[i].getTabungan().getIdTabungan())){
cek++;
String inpMenu = JOptionPane.showInputDialog("Nama : " + tab[i].getNama() + "\nID Tabungan : " + tab[i].getTabungan().getIdTabungan() + "\nJumlah Transfer : " + uangTran + "\n1> Lanjut. 0> Batal");
if (inpMenu.equals("1")){
if (uangTran < getTab()[getCurrentId()].getTabungan().getSaldo()){
int saldo = tab[currentId].getTabungan().getSaldo()-uangTran;
tab[currentId].getTabungan().setSaldo(saldo);}
else{ JOptionPane.showMessageDialog(null, "maaf anda salah memasukan nominal");
}
}else{
JOptionPane.showMessageDialog(null, "Transfer Terhadap " + tab[i].getNama() + " Telah Anda Batalkan");
return;
}
break;
}
}
else{
JOptionPane.showMessageDialog(null, "Nasabah Dengan ID " + id + "Belum Terdaftar");
break;
}
}
}
}
fungsi dari class rumus ini bertujuan untuk pengkondisian class tabungan dan nasabah, setelah 3 class telah kita buat...baru kita buat main class nya.....atau class untuk menjalankannya...
main class :
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
package tugas_oop_kar_erwiin;
import java.io.IOException;
import javax.swing.JOptionPane;
@author pj
public class Simulasi {
@param args the command line arguments
public static void main(String[] args) throws IOException {
Rumus atm=new Rumus("data.txt");
String id =JOptionPane.showInputDialog("masukan rek tabungan dan password");
int cek = atm.cekId(id);
String inMenu;
if(cek==0){
JOptionPane.showMessageDialog(null,"format yang anda masukan salah","login",JOptionPane.ERROR_MESSAGE);
}else{
do{
inMenu=JOptionPane.showInputDialog(null,"Selamat datang"+atm.namaNasabah()
+"\nMenu"+"\n1.Cek Saldo"+"\n2. Ambil Uang"+"\n3. Simpan Uuang"+"\n4. Transfer Uang"+"\n5. Selesai");
if(inMenu.equals("1")){
JOptionPane.showMessageDialog(null,"Saldo anda"+atm.cekSaldo());
}else if(inMenu.equals("2")){
String inAmbil = JOptionPane.showInputDialog("masukan uang yang ingin ditarik");
int ambil= Integer.parseInt(inAmbil);
atm.ambiluang(ambil);
}else if(inMenu.equals("3")){
String inSimpan = JOptionPane.showInputDialog("masukan uang yang ingin ditarik");
int simpan= Integer.parseInt(inSimpan);
atm.simpanuang(simpan);
}else if(inMenu.equals("4")){
String inTrans = JOptionPane.showInputDialog("MAsukan Rekening Tujuan dan Nominal");
atm.transfer(inTrans);
}else{
JOptionPane.showMessageDialog(null, "Terima Kasih");
System.exit(0);
}
}while(true);
}
}
}
Setelah main class sudah selelsai lalu kita run untuk melihat hasilnya....^_^..
Apabila aplikasi sudah jalan akan muncul seperti diatas, bila kita masukan kode tabungan beserta password maka akan muncul
Disini menu pilihan dari transaksi yang akan dilakukan…apabila kita ketik angka 4 (menu transfer) maka akan muncul…
Maka akan muncul menu memeasukan rek tabungan beserta nominal yang akan ditransfer..
Apabila setelah memasukan akan muncul pilihan 1(lanjut) 0(batal)…
Nah ini aplikasi yang munculnya sangat sederrhana,….tapiiiiiiiiiiiiiiiiiiiiiiiiii…bikinnya bener bener jelimet ..ehehehehe…ya maklum masih belajar,,…mudah-mudahan dengan berbagi ilmu sedikit ini bias membantu pencerahan sedikit….mudah mudahan bermanfaat.. ^_^
oh ia satuhal jangan sampe lupa bikin file ".txt" untuk membuat data nasabahnya juga ya....biar buat baca datanya...
nah ada 1 hal.....inget ya temen temen sy disini berbagi bertujuan untuk merangsang logika temen temen, jadi kalo bisa jangan asal copas...pasti ga bakal jalan..saya hanya membantu sedikit aja..selebihnya temen temen yang berusaha...semangatttttttt............