YayBlogger.com
BLOGGER TEMPLATES

Kamis, 26 Desember 2013

Algoritma Struktur Data - Single Linked List




Algoritma dan Struktur Data

PemrogDas - PROGRAM DENGAN OPERASI FILE




A.    Definisi Masalah

Buatlah sebuah program dengan 6 pilihan menu, dengan ketentuan sebagai berikut:
1. Input Data: Memasukkan mahasiswa dengan jumlah sesuai keinginan user (maksimal 10). Data berupa NIM, NAMA, nilai Tugas, UTP, dan UAP, kemudian menulis pada file txt (nama bebas), dengan tambahan nilai rata-rata per mahasiswa
2. Tampilkan Data: Menampilkan seluruh data yang terdapat pada file txt 3. Hapus Data: Menghapus sebuah baris pada file txt dengan parameter indeks baris tertentu
4. Edit Data: Mengubah sebuah baris pada file txt dengan parameter indeks baris tertentu, dan juga baris baru yang di inputkan (berupa NIM, NAMA, nilai Tugas, UTP, dan UAP)
5. Statistik: Menentukan nilai maksimum dan minimum pada kelas dari setiap nilai (Tugas, UTP, UAP)
6. Simpan Data dan Keluar: Menyimpan semua pada file txt dan keluar dari program

B. Screenshoot

C. Source Code
 

import java.io.*;
import java.util.Scanner;
public class Bab6 {
    static int jum_mhs;
    static String[][] data = new String[100][100];

    public static void main(String[] args) throws Exception {
        Scanner masukan = new Scanner(System.in);
        int pilih;
        do {
            System.out.println("\nMenu Utama\n");
            System.out.println("1.Input Data");
            System.out.println("2.Tampilkan Data");
            System.out.println("3.Hapus Data");
            System.out.println("4.Edit Data");
            System.out.println("5.Statistik");
            System.out.println("6.Keluar");
            System.out.print("Masukkan Pilihan Anda : ");
            pilih = masukan.nextInt();
            switch (pilih) {
                case 1:
                    Input();
                    break;
                case 2:
                    Tampil();
                    break;
                case 3:
                    Hapus();
                    break;
                case 4:
                    Edit();
                    break;
                case 5:
                    Statistik();
                    break;
                case 6:
                    Exit();
                    break;
            }
        } while (pilih != 100);
    }

    public static void Input()throws Exception {
        File filea = new File("a.txt");
        BufferedWriter fOut = new BufferedWriter(new FileWriter(filea));
        Scanner masukan = new Scanner(System.in);
        System.out.print("Masukkan jumlah mahasiswa: ");
        jum_mhs = masukan.nextInt();
        for (int i = 0; i < jum_mhs; i++) {
            System.out.print("Masukkan data mahasiswa ke-" + (i + 1) + " : ");
            data[i][0] = masukan.next();
            data[i][1] = masukan.next();
            data[i][2] = masukan.next();
            data[i][3] = masukan.next();
            data[i][4] = masukan.next();
        }

        for (int i = 0; i < jum_mhs; i++) {
            String tugas = data[i][2];
            int tgs = Integer.parseInt(tugas);
            String utp = data[i][3];
            int tp = Integer.parseInt(utp);
            String uap = data[i][4];
            int ap = Integer.parseInt(uap);

            double rata = (tgs + tp + ap) / 3;
            String rata2 = String.valueOf(rata);
            data[i][5] = rata2;
        }
        for (int i = 0; i < jum_mhs; i++) {
                String data2 = data[i][0] + "\t" + data[i][1] + "\t" + data[i][2] + "\t" + data[i][3] + "\t" + data[i][4] + "\t" + data[i][5];
                String temp = data2;
                fOut.write(data2);
                fOut.newLine();
            }
        fOut.close();

    }

    public static void Tampil() {
        File filea = new File("a.txt");
        try {
            int i = 0;
            BufferedReader fIn = new BufferedReader(new FileReader(filea));
            String strLine;
            while ((strLine = fIn.readLine()) != null) {
                i++;
                System.out.println(strLine);
            }
            fIn.close();
        }
        catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }

    public static void Hapus()throws Exception {
        File filea = new File("a.txt");
        BufferedWriter fOut = new BufferedWriter(new FileWriter(filea));
        Scanner masukan = new Scanner(System.in);
        System.out.print("masukkan indek data yang ingin dihapus : ");
        int hapus = masukan.nextInt();
        for (int i = 0; i < jum_mhs; i++) { 
           if (i == hapus) {
                data[i][0] = null;
                data[i][1] = null;
                data[i][2] = null;
                data[i][3] = null;
                data[i][4] = null;
                data[i][5] = null;

                data[i][0] = data[i + 1][0];
                data[i][1] = data[i + 1][1];
                data[i][2] = data[i + 1][2];
                data[i][3] = data[i + 1][3];
                data[i][4] = data[i + 1][4];
                data[i][5] = data[i + 1][5];
                jum_mhs--;
            }
        }
        for (int i = 0; i < jum_mhs; i++) {
                String data2 = data[i][0] + "\t" + data[i][1] + "\t" + data[i][2] + "\t" + data[i][3] + "\t" + data[i][4] + "\t" + data[i][5];
                String temp = data2;
                fOut.write(data2);
                fOut.newLine();
            }
        fOut.close();
        System.out.println();

    }

    public static void Edit()throws Exception {
        File filea = new File("a.txt");
        BufferedWriter fOut = new BufferedWriter(new FileWriter(filea));
        Scanner masukan = new Scanner(System.in);
        System.out.print("masukkan indek data yang ingin diedit : ");
        int edit = masukan.nextInt();
        for (int i = 0; i < jum_mhs; i++) {
            if (i == edit) {
                data[i][0] = null;
                data[i][1] = null;
                data[i][2] = null;
                data[i][3] = null;
                data[i][4] = null;
                data[i][5] = null;
                System.out.print("Masukkan data mahasiswa ke-" + (i + 1) + " : ");
                data[i][0] = masukan.next();
                data[i][1] = masukan.next();
                data[i][2] = masukan.next();
                data[i][3] = masukan.next();
                data[i][4] = masukan.next();

                String tugas = data[i][2];
                int tgs = Integer.parseInt(tugas);
                String utp = data[i][3];
                int tp = Integer.parseInt(utp);
                String uap = data[i][4];
                int ap = Integer.parseInt(uap);

                double rata = (tgs + tp + ap) / 3;
                String rata2 = String.valueOf(rata);
                data[i][5] = rata2;
            }
        }
        for (int i = 0; i < jum_mhs; i++) {
                String data2 = data[i][0] + "\t" + data[i][1] + "\t" + data[i][2] + "\t" + data[i][3] + "\t" + data[i][4] + "\t" + data[i][5];
                String temp = data2;
                fOut.write(data2);
                fOut.newLine();
            }
        fOut.close();

    }

    public static void Statistik() {
        int mint = 101, maxt = 0, minutp = 101, maxutp = 0, minuap = 101, maxuap = 0;
        int tmp, tmp1, tmp2;
        for (int i = 0; i < jum_mhs; i++) {
            tmp = Integer.parseInt(data[i][2]);
            if (tmp < mint) {
                mint = tmp;
            } else if (tmp > maxt) {
                maxt = tmp;
            }
        }
        for (int j = 0; j < jum_mhs; j++) {
            tmp1 = Integer.parseInt(data[j][3]);
            if (tmp1 < minutp) {
                minutp = tmp1;
            } else if (tmp1 > maxutp) {
                maxutp = tmp1;
            }
        }
        for (int k = 0; k < jum_mhs; k++) {
            tmp2 = Integer.parseInt(data[k][4]);
            if (tmp2 < minuap) {
                minuap = tmp2;
            } else if (tmp2 > maxuap) {
                maxuap = tmp2;
            }
        }
        System.out.println("Nilai maksimum tugas : " + maxt);
        System.out.println("Nilai minimum tugas : " + mint);
        System.out.println("Nilai maksimum utp: " + maxutp);
        System.out.println("Nilai minimum utp : " + minutp);
        System.out.println("Nilai maksimum uap : " + maxuap);
        System.out.println("Nilai minimum uap : " + minuap);

    }

    public static void Exit() throws Exception {
        File filea = new File("a.txt");
        BufferedWriter fOut = new BufferedWriter(new FileWriter(filea));
        for (int i = 0; i < jum_mhs; i++) {
                String data2 = data[i][0] + "\t" + data[i][1] + "\t" + data[i][2] + "\t" + data[i][3] + "\t" + data[i][4] + "\t" + data[i][5];
                String temp = data2;
                fOut.write(data2);
                fOut.newLine();
            }
        fOut.close();
        System.out.println();
        System.exit(0);
    }

}