Ikutin retest UAS PeBeO, 3Juli2009. Penasaran pas kemaren UAS benerannya ndak bisa. Dah kebayar penasarannya tuntas tadi.
. Niy review retest tadi. Ndak sempet step by step, tapi teteup ada penjelasannya kok di komentarnyah, check out.
Review dulu soalnya yup.
———————————————————————————-
Simpan transaksi yang telah dientry ke dalam file “RMD.TXT” (BILL s/d VOUCHER)
Selanjutnya saudara-saudara diminta unutk menampilkan data dari file tersebut dan layout yang diharapkan sebagai berikut :
| NOBILL | AMOUNT | DEBET | CREDIT | VOUCHER |
| XXXX | XXXXXXXXX | XXXXXXXXX | XXXXXXXXX | XXXXXXXXX |
| XXXX | XXXXXXXXX | XXXXXXXXX | XXXXXXXXX | XXXXXXXXX |
| XXXX | XXXXXXXXX | XXXXXXXXX | XXXXXXXXX | XXXXXXXXX |
| XXXX | XXXXXXXXX | XXXXXXXXX | XXXXXXXXX | XXXXXXXXX |
| XXXX | XXXXXXXXX | XXXXXXXXX | XXXXXXXXX | XXXXXXXXX |
| XXXX | XXXXXXXXX | XXXXXXXXX | XXXXXXXXX | XXXXXXXXX |
| Total Amount | : xxxxxxxxxxx |
| Total Amount | : xxxxxxxxxxx |
| Debet | : xxxxxxxxxxx |
| Credit | : xxxxxxxxxxx |
| Voucher | : xxxxxxxxxxx |
| Cash | : xxxxxxxxxxx |
*) Cash = Amount – (debet + credit + voucher)
———————————————————————————-
Nah, jawaban versi Wisnu Mulyadi, bisa dilihat di code berikut ini.
//import clas-clas yang diperlukan
import java.io.FileOutputStream;
import java.io.File;
import java.util.Formatter;
import java.util.Scanner;
public class retest {
//deklarasi scanner untuk pembacaan dari keyboard
private static Scanner bacaInput = new Scanner(System.in);
public static void entry() {
//pemasukan data-data dari keyboard
System.out.println("Entry");
System.out.print("Nobill : ");
//baca nobill dengan tipe data int
int nobill = bacaInput.nextInt();
System.out.print("Amount : ");
//baca amount dengan tipe data long
long amount = bacaInput.nextLong();
System.out.print("Debet : ");
//baca debet dengan tipe data long
long debet = bacaInput.nextLong();
System.out.print("Credit : ");
//baca credit dengan tipe data long
long credit = bacaInput.nextLong();
System.out.print("Voucher : ");
//baca voucher dengan tipe data long
long voucher = bacaInput.nextLong();
//deklarasi formatter
Formatter f;
try {
//menginstantiasikan objek dengan nama f dari Formatter
//dengan parameter berupa instantiasi FileOutputStream
//dengan parameter nama file, dan true (agar bisa diappend)
//append : terus melakukan penambahan pada file text, tidak menimpa
f = new Formatter(new FileOutputStream("RMD.TXT", true));
//untuk melakukan penulisan ke file, digunakan fungsi format
//dengan parameter berupa format dan nilai yang akan dimasukkan
//%d untuk integer juga long
//sedangkan -10 untuk menambahkan spasi setelah penulisan, begitu kira-kira
//sehingga didapatkan format yang rapi
f.format("%-10d %-10d %-10d %-10d %-10d \n", nobill, amount, debet, credit, voucher);
//penutupan aliran data formatter
f.close();
} catch (Exception e) {
System.out.println("Pesan error " + e);
}
}
public static void load() {
//deklarasi scanner
Scanner bacaFile;
System.out.println("Load");
//penulisan header dengan menggunakan printf (request bapak dosen)
//%s untuk String
//-10 untuk penambahan spasi dengan perataan kiri
//10 untuk penambahan spasi dengan peratan kanan
System.out.printf("%-10s %10s %10s %10s %10s \n", "NOBILL", "AMOUNT", "DEBET", "CREDIT", "VOUCHER");
//deklarasi dan inisialisasi total-total
long totalAmount = 0;
long totalDebet = 0;
long totalCredit = 0;
long totalVoucher = 0;
long totalCash = 0;
try {
//baca RMD.TXT dengan menggunakan scanner
bacaFile = new Scanner(new File("RMD.TXT"));
//terus melakukan perulangan selama dalam txt masih menemukan
//adanya karakter / kata
while (bacaFile.hasNext()) {
//format pembacaan disesuaikan dengan apa yang akan dibaca
//nextInt untuk int
//nextLong untuk long
//ditampung terlebih dahulu dalam variabel
//untuk melakukan operasi total
//pembacaan untuk nobill
int nobill = bacaFile.nextInt();
//pembacaan untuk amount dan melakukan pengupdatean variabael
//totalAmount
long amount = bacaFile.nextLong();
totalAmount += amount;
//pembacaan untuk debet dan melakukan pengupdatean variabael
//totalDebet
long debet = bacaFile.nextLong();
totalDebet += debet;
//pembacaan untuk credit dan melakukan pengupdatean variabael
//totalCredit
long credit = bacaFile.nextLong();
totalCredit += credit;
//pembacaan untuk voucher dan melakukan pengupdatean variabael
//totalVoucher
long voucher = bacaFile.nextLong();
totalVoucher += voucher;
//menampilkan masing-masing baris dengen printf dan
////%d untuk int juga long
System.out.printf("%-10d %10d %10d %10d %10d", nobill, amount, debet, credit, voucher);
System.out.println();
}
totalCash = totalAmount - (totalDebet + totalCredit + totalVoucher);
//menampilkan total-total
System.out.printf("%-20s %10d \n", "Total Amount", totalAmount);
System.out.printf("%-20s %10d \n", "Debet", totalDebet);
System.out.printf("%-20s %10d \n", "Credit", totalCredit);
System.out.printf("%-20s %10d \n", "Voucher", totalVoucher);
System.out.printf("%-20s %10d \n", "Cash", totalCash);
} catch (Exception e) {
System.out.println("Pesan error " + e);
}
}
public static void main(String[] args) {
//pengulangan program selamanya
while (true) {
System.out.println("Menu");
System.out.println("1. Entry");
System.out.println("2. Load");
System.out.println("3. Exit");
System.out.print("Pilihan Anda : ");
//pembacaan pilihan menu dari input keyboard
int pilih = bacaInput.nextInt();
switch (pilih) {
case 1:
//perulangan selama pengguna menginputkan huruf E atau e
do {
//pemanggilan fungsi entry
entry();
System.out.print("Inputkan selain E untuk berhenti... );
} while (bacaInput.next().equalsIgnoreCase("E"));
break;
case 2:
//pemanggilan fungsi load
load();
break;
case 3:
//melakukan exit pada program
System.exit(0);
break;
}
}
}
}
Teteup, disediain source codenyah, bisa didownload di sini
Mudah-mudahan bermanfaat, ndak sekarang mungkin pada masa yang akan datang.
Tinggalkan komentar jika anda menemukan kesulitan atau code menimbulkan error. Thanks
0 Responses to “Review Retest UAS PebeO”