Review Retest UAS PebeO

Ikutin retest UAS PeBeO, 3Juli2009. Penasaran pas kemaren UAS benerannya ndak bisa. Dah kebayar penasarannya tuntas tadi. :D . 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 :D

0 Responses to “Review Retest UAS PebeO”



  1. No Comments Yet

Leave a Reply




nuPunya

nuTukarLink

Tukar Link Yuk, Sahabat !


Copy Link Ini di Blog Anda :
<p align= "center"><a href="http://www.wisnumulyadi.wordpress.com"><img src="http://wisnumulyadi.files.wordpress.com/2009/10/header1.png" border="0" width="70" height="25" title="wisnumulyadi" ></a></p>

nuStats

  • 261 nuHits

nuKategori

nuKomentarTerbaru

tupaitambun on Pengunjung
arkusnandar on Berkenalan Dengan ELiMS
wisnumulyadi on Berkenalan Dengan ELiMS
tupaitambun on Berkenalan Dengan ELiMS
wisnumulyadi on Review UAS PeBeO

nuTemanSeperjuangan