javaku

Sabtu, 24 Desember 2011

PROGRAM ADMINISTRASI

import java.io.*;
import java.util.*;
public class Administrasi{
final static int pjg=1000;
static class Mhs{String namaMatkul, indeks; int nilai,sks; };
static Mhs[] mahasiswa=new Mhs[pjg];
static int jumlahData;
static Scanner key=new Scanner(System.in);
static PrintStream tulisFile=null;
static Scanner bacaFile=null;
static String namaFile="";
static boolean fileAda, dataKetemu;
static int posisi;
static double IPK;

public static void main(String[] args){
Menu();
}
static void Menu(){
int pilih=0;
while(pilih!=5){
System.out.println("Menu:\n1.Membuat file baru\n2.Menambah data\n3.Lihat data\n4.edit data\n5.Exit");
System.out.print("Pilihanmu :");
pilih=key.nextInt();
System.out.println(" ");
if(pilih==3){
System.out.println("Menu Lihat data:\n1.Tampil Data\n2.Urut data\n3.Cari data\n4.Hitung IPK\n5.Menu awal");
System.out.print("Pilihanmu :");
pilih=key.nextInt();
System.out.println(" ");
if(pilih==1) Tampil();
else if(pilih==2) Urut();
else if(pilih==3)Cari();
else if(pilih==4)Hitung();
else if(pilih==5) Menu();
} else if(pilih==1){
Tulis();
}else if(pilih==2)Tambah();
else if(pilih==4)Edit();
}
}
//prosedur tulis
static void Tulis(){
System.out.println("Tulis Baru");
System.out.print("Nama File (diisi dengan nama mahasiswa) : ");
namaFile=key.next();
System.out.print("Jumlah matkul : "); jumlahData=key.nextInt();
System.out.println();
for(int i=0;i<jumlahData;i++){
mahasiswa[i]=new Mhs();
System.out.print("Nama Matkul :"); mahasiswa[i].namaMatkul=key.next();
System.out.print("Jumlah SKS :"); mahasiswa[i].sks=key.nextInt();
System.out.print("Indeks :"); mahasiswa[i].indeks=key.next();
}

String s="";
try{tulisFile=new PrintStream(new File(namaFile));
for (int i=0;i<jumlahData;i++){
s=mahasiswa[i].namaMatkul+"\t"+mahasiswa[i].sks+"\t"+mahasiswa[i].indeks;
tulisFile.println(s);}

}catch(FileNotFoundException e){System.out.println("File error");}}
//prosedur Hitung
static void Hitung(){
Baca();
for(int i=0;i<jumlahData;i++){
if(mahasiswa[i].indeks.equalsIgnoreCase("A"))
mahasiswa[i].nilai=4;
else if(mahasiswa[i].indeks.equalsIgnoreCase("B"))
mahasiswa[i].nilai=3;
else if(mahasiswa[i].indeks.equalsIgnoreCase("C"))
mahasiswa[i].nilai=2;
else if(mahasiswa[i].indeks.equalsIgnoreCase("D"))
mahasiswa[i].nilai=1;
else if(mahasiswa[i].indeks.equalsIgnoreCase("E"))
mahasiswa[i].nilai=0;
}
double jumlah=0;
for(int i=0;i<jumlahData;i++){
jumlah=jumlah+mahasiswa[i].sks;
}
double jumlahIP=0;
for(int i=0;i<jumlahData;i++){
jumlahIP=jumlahIP+(mahasiswa[i].sks*mahasiswa[i].nilai);

}
double IPK=jumlahIP/jumlah;
System.out.println("Nama Mahasiswa: "+namaFile);
for(int i=0;i<jumlahData;i++){
System.out.println(mahasiswa[i].namaMatkul + "\t" + mahasiswa[i].sks+"\t"+mahasiswa[i].indeks+"\t"+mahasiswa[i].nilai+"\t"+(mahasiswa[i].nilai*mahasiswa[i].sks));
}
System.out.println("Nilai IPK anda adalah "+IPK);
System.out.println("");

}
//prosedur baca
static void Baca(){
System.out.print("Nama File: ");
namaFile=key.next();
try{bacaFile=new Scanner(new File(namaFile));
int i=0;
while(bacaFile.hasNext()){
mahasiswa[i]=new Mhs();
mahasiswa[i].namaMatkul=bacaFile.next();
mahasiswa[i].sks=bacaFile.nextInt();
mahasiswa[i].indeks=bacaFile.next();
bacaFile.nextLine();
i++;
}
fileAda = true;
jumlahData=i;
}catch(FileNotFoundException e){System.out.println("File Tidak Ada");}
}
//prosedur tampil
static void Tampil(){
Baca();
for(int i=0;i<jumlahData;i++)
System.out.println(mahasiswa[i].namaMatkul + "\t" + mahasiswa[i].sks+"\t"+mahasiswa[i].indeks+"\t"+IPK);
}
//prosedur urut
static void Urut(){
Baca();
if(fileAda){
if(jumlahData>1){
String tempNama, tempNilai;
for(int i=0;i<jumlahData-1;i++){
for(int j=jumlahData-1; j>i; j--){
if(mahasiswa[j].nilai>mahasiswa[j-1].nilai){
tempNama=mahasiswa[j].namaMatkul;
tempNilai=mahasiswa[j].indeks;
mahasiswa[j].namaMatkul=mahasiswa[j-1].namaMatkul;
mahasiswa[j].indeks=mahasiswa[j-1].indeks;
mahasiswa[j-1].namaMatkul=tempNama;
mahasiswa[j-1].indeks=tempNilai;
}
}

}

}
}Tampil();
String s="";
try{tulisFile = new PrintStream (new File (namaFile)); //membuat file harus pake try and catch, dari tulisfile, kalo masuk, maka baru ke for
for(int i=0; i<jumlahData; i++){
s=mahasiswa[i].namaMatkul+"\t"+mahasiswa[i].sks+"\t"+mahasiswa[i].indeks;
tulisFile.println(s);}
}catch(FileNotFoundException e){System.out.println("File Error");}
}
//prosedur cari
static void Cari(){
Baca();
if(fileAda){
System.out.print("Nama Mata Kuliah : ");
String cariNama= key.next();
int i =0;
dataKetemu=false;
while((i<jumlahData)&&(!dataKetemu)){
if(mahasiswa[i].namaMatkul.equalsIgnoreCase(cariNama)) dataKetemu=true;
else i++;}
posisi=i;
if(dataKetemu){
System.out.println("Nama Mata Kuliah : " + mahasiswa[posisi].namaMatkul);
System.out.println("Nilai : " + mahasiswa[posisi].indeks);
}else System.out.println("Nama Mata Kuliah " + cariNama + " Tidak Ada di File" );
}
}
//prosedur tambah
static void Tambah(){
Baca();
System.out.println();
int j=jumlahData;
System.out.print("Jumlah data tambahan : ");
jumlahData=key.nextInt();
jumlahData+=j;
for(int i=j;i<jumlahData;i++){
mahasiswa[i]=new Mhs();
System.out.println("Data ke-"+(i+1));
System.out.println();
System.out.print("Nama Matakuliah : ");
mahasiswa[i].namaMatkul=key.next();
System.out.print("SKS : ");
mahasiswa[i].sks = key.nextInt();
System.out.print("indeks : ");
mahasiswa[i].indeks=key.next();
}
String s="";
try{tulisFile=new PrintStream(new File(namaFile));
for(int i=0;i<jumlahData;i++){
s=mahasiswa[i].namaMatkul+"\t"+mahasiswa[i].sks +"\t" + mahasiswa[i].indeks;
tulisFile.println(s);}
}catch(FileNotFoundException e){System.out.println("File Error");}
}
//prosedur edit
static void Edit(){
Cari();
if(dataKetemu){
System.out.print("Nama Matakuliah : ");mahasiswa[posisi].namaMatkul=key.next();
System.out.print("Nilai Baru : ");mahasiswa[posisi].indeks=key.next();
}
String s=""; //dari sini menginputkan array kedalam file
try{tulisFile = new PrintStream (new File (namaFile));
for(int i=0; i<jumlahData; i++){
s=mahasiswa[i].namaMatkul+"\t"+mahasiswa[i].indeks;
tulisFile.println(s);}
}catch(FileNotFoundException e){System.out.println("File Error");}
}
}


Tampilan Menu Utama:

Tampilan Menu Membuat File Baru:


Langkah-langkah membuat file baru:
  • Tulis nama file yang akan dibuat (contoh: rina.txt)
  • Isikan jumlah mata kuliah yang akan diisi.
  • Isikan nama mata kuliah.
  • Isikan jumlah sks
  • isikan indeks yang diperoleh.
Tampilan Menu Menambah Data:
Langkah-langkah menambah data:
  • Tuliskan nama file yang akan ditambah datanya
  • Isikan jumlah data yang akan ditambahkan
  • Tuliskan nama mata kuliah yang akan ditambahkan.
  • Tuliskan sks mata kuliah yang akan ditambahkan.
  • Isikan indeks yang diperoleh dari mata kuliah yang akan ditambahkan.
Tampilan Menu Lihat Data:
Tampilan Menu Tampil Data:

Tampilan Menu Urut Data:
Tampilan Menu Cari Data:

Langkah-langkah mencari data:
  • Tulis nama file yang akan dicari
  • Tulis nama mata kuliah yang akan dicari.
Tampilan Menu Hitung IPK:

Tampilan Menu Edit Data:


Langkah-langkah mengedit data:
  • Tulis nama file yang akan di edit
  • Tuliskan nama mata kuliah yang akan diedit.
  • Isikan nilai baru.

1 komentar:

  1. Solingen Optometry Systems
    Solingen Optometry Systems uses standard optical lensing to measure the angle of the ridge titanium wallet lens best titanium flat iron and the columbia titanium pants exposure angle of titanium bikes the titanium muzzle brake optic. The optical lens

    BalasHapus