Anda di halaman 1dari 30

LAPORAN PRAKTIKUM

PEMROGRAMAN OBJEK 2

MODUL 8

Aplikasi Berbasis Teks

7 Mei 2020

Nama : Yesi Sofia


NIM : 3411181140
Kelas :B

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN INFORMATIKA

UNIVERSITAS JENDERAL ACHMAD YANI

2020
DAFTAR ISI
DAFTAR ISI .............................................................................................................................................. i
BAB I ......................................................................................................................................................... 1
PEMBAHASAN ........................................................................................................................................ 1
BAB 2 ......................................................................................................................................................... 1
EKSEKUSI PROGRAM DAN HASIL ANALISA ................................................................................. 1
2.1 Program 8-1 ................................................................................................................................ 1
A. Program 8-1a. StandartInput.java ................................................................................................ 1
B. Program 8-1b. Input.java ............................................................................................................. 2
2.2 Program 8-2 ................................................................................................................................ 2
A. Program 8-2. Addition.java ......................................................................................................... 2
B. Tugas 8-1 .................................................................................................................................... 3
2.3 Program 8-3 ................................................................................................................................ 8
A. Program 8-3 GreetUser.java ........................................................................................................ 8
2.4 Program 8-4 ................................................................................................................................ 9
2.5 Program 8-5 .............................................................................................................................. 10
A. Program 8-5 WriteFile.java ....................................................................................................... 10
2.6 Program 8-6 .............................................................................................................................. 12
A. Program 8-6 FileReading.java ................................................................................................... 12
2.7 Program 8-7 .............................................................................................................................. 14
A. Program 8-7 FileAndDirectoryInfo.java ................................................................................... 14
2.8 Program 8-8 .............................................................................................................................. 16
A. Program 8-8 CreateTextFile.java .............................................................................................. 16
2.9 Program 8-9 .............................................................................................................................. 18
A. Program 8-9 ReadTextFile.java ................................................................................................ 18
BAB 3 ....................................................................................................................................................... 21
TUGAS AKHIR ...................................................................................................................................... 21
3.1 Program ReadWrite.java ........................................................................................................... 21
DAFTAR PUSTAKA ................................................................................................................................ ii

i
BAB I

PEMBAHASAN

BAB 2

EKSEKUSI PROGRAM DAN HASIL ANALISA


2.1 Program 8-1
A. Program 8-1a. StandartInput.java
Source code

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class StandartInput {


public static void main(String[]args) throws IOException {
System.out.println("Hi, what's your favorit
character?");
char favChar;
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
favChar = (char)br.read();
System.out.println(favChar + " is a good choice!");
}
}

Hasil eksekusi Program

Analisis
Program di atas merupakan contoh program yang untuk menginputkan data dari
keyboard menggunakan bufferdReader. BufferedReader itu sendiri adalah suatu

1
perintah yg disediakan oleh java untuk melakukan proses input output data user dari
keyboarrd.program diatas pertama akan menampilkan sebuah teks, kemudian pada
program tersebut memiliki perintah untuk memasukan karakter secara bebas, hasil
input dari keyboard tersebut akan ditampilkan.

B. Program 8-1b. Input.java


Source code

import java.io.IOException;

public class Input {


public static void main(String[]args) throws IOException {
char i;
System.out.println("Masukan Karakter : ");
i = (char) System.in.read();
System.out.println("Anda Memasukan "+i);
}
}

Hasil eksekusi Program

Analisis
Pada program ini menggunakan system,.in.read() sebagai proses input. Pada program
tersebut kita akan secara bebas melakukan input namun yang ditampilkan hanya satu
karakter yang diinput.

2.2 Program 8-2


A. Program 8-2. Addition.java
Source code

import java.util.Scanner;

2
public class Addition {
public static void main(String[]args) {
Scanner input = new Scanner(System.in);
int num1,num2,sum;
System.out.print("Masukan nilai integer pertama = ");
num1 = input.nextInt();
System.out.print("Masukan nilai integer kedua = ");
num2 = input.nextInt();
sum = num1 + num2;
System.out.println("Hasil penjumlahannya adalah "+sum);
}
}

Hasil eksekusi Program

Analisis
Pada program di atas hampir sama sebelumnya namun perbedaannya terletak pada saat
ketika kita melakukan input data tersebut akan disimpan kedalam variabel teretentu dan
akan diolah sehingga menghasilkan nilai tertentu. Proses pengolahan data tersebut
merupakan penjumlahan nilai pertama dan nilai kedua. Proses input yang digunakan
memiliki perbedaan dimana pada program ini kita hanya menggunakan class Scanner.

B. Tugas 8-1
Source code
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.swing.*;

3
public class AverageValue extends JFrame {
public Button average;
public JTextField
txtValue1,txtValue2,txtValue3,txtValue4,txtValue5;
public JLabel
lbl_Value1,lbl_Value2,lbl_Value3,lbl_Value4,
lblHasil,title,lbl_Value5;
public static double sum;
private final AverageValue self = this;

public AverageValue() {
JFrame frame = new JFrame("Rata-Rata Nilai");
frame.setSize(300, 400);
frame.setLayout(null);
title = new JLabel("Hitung Rata-rata");
title.setFont(new Font("Arial", Font.BOLD, 18));
title.setBounds(75, 10, 150, 30);

//Atur posisi lblValue dan txtValue


lbl_Value5 = new JLabel("Nilai ke 1 :
");
lbl_Value5.setBounds(25, 50, 100, 30);
txtValue5 = new JTextField("0");
txtValue5.setBounds(150, 50, 100, 30);

txtValue5.setHorizontalAlignment(SwingConstants.CENTER)
;
lbl_Value1 = new JLabel("Nilai ke 2 :
");
lbl_Value1.setBounds(25, 90, 100, 30);
txtValue1 = new JTextField("0");
txtValue1.setBounds(150, 90, 100, 30);

txtValue1.setHorizontalAlignment(SwingConstants.CENTER)
;
lbl_Value2 = new JLabel("Nilai ke 3 :
");
lbl_Value2.setBounds(25, 130, 100, 30);

4
txtValue2 = new JTextField("0");
txtValue2.setBounds(150, 130, 100, 30);

txtValue2.setHorizontalAlignment(SwingConstants.CENTER)
;
lbl_Value3 = new JLabel("Nilai ke 4 :
");
lbl_Value3.setBounds(25, 170, 100, 30);
txtValue3 = new JTextField("0");
txtValue3.setBounds(150, 170, 100, 30);

txtValue3.setHorizontalAlignment(SwingConstants.CENTER)
;
lbl_Value4 = new JLabel("Nilai ke 5 :
");
lbl_Value4.setBounds(25, 210, 100, 30);
txtValue4 = new JTextField("0");
txtValue4.setBounds(150, 210, 100, 30);

txtValue4.setHorizontalAlignment(SwingConstants.CENTER)
;

//Atur posisi button


average = new Button("Average");
average.setBounds(100, 250, 100, 30);

//Atur posisi hasil


lblHasil = new JLabel();
lblHasil.setBounds(100, 300, 100, 30);

lblHasil.setHorizontalAlignment(SwingConstants.CENTER);
frame.getContentPane();
frame.add(title);
frame.add(lblHasil);
frame.add(txtValue1);
frame.add(lbl_Value1);
frame.add(lbl_Value2);
frame.add(txtValue2);

5
frame.add(lbl_Value3);
frame.add(txtValue3);
frame.add(lbl_Value4);
frame.add(txtValue4);
frame.add(average);
frame.add(txtValue5);
frame.add(lbl_Value5);
frame.setVisible(true);

//Action Button
average.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent
arg0) {
sum = 0;
double v1,v2,v3,v4,v5;

try {
v1 =
Double.parseDouble(txtValue1.getText());
v2 =
Double.parseDouble(txtValue2.getText());
v3 =
Double.parseDouble(txtValue3.getText());
v4 =
Double.parseDouble(txtValue4.getText());
v5 =
Double.parseDouble(txtValue5.getText());
}catch (NumberFormatException e) {

JOptionPane.showMessageDialog(self, "Please enter a


valid number for value.",
"Input Error",
JOptionPane.ERROR_MESSAGE);
return;
}
double sum = (v1+v2+v3+v4+v5)/5;

6
lblHasil.setText(new
Double(sum).toString());
}
});
}

public static void main(String[] args) throws


IOException {
AverageValue rata2 = new AverageValue();
double rata,totalDev;
int jumlah;
String v1,v2,v3,v4;
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
System.out.print("Masukan jumlah data : ");
jumlah = Integer.parseInt(br.readLine());
rata = 0;
String data[] = new String[jumlah];
for (int j = 0; j < jumlah; j++) {
System.out.printf("Masukan nilai ke-%d :
",j+1);
data[j] = br.readLine();
rata += (Double.parseDouble(data[j]));
}
rata=rata/jumlah;
System.out.printf("Hasil rata : %.2f%n%n",rata);
rata2.lblHasil.setText(new
Double(rata).toString());

System.out.println("Menghitung deviasi");
totalDev = 0;

for (int i = 0; i < jumlah; i++) {

totalDev+=Math.pow(Double.parseDouble(data[i])-rata,2);
}
totalDev= Math.sqrt(totalDev/(jumlah-1));

7
System.out.printf("Hasil Deviasi Standar =
%.2f",totalDev);
}
}

Hasil eksekusi program

2.3 Program 8-3


A. Program 8-3 GreetUser.java
Source code

import java.io.*;
public class GreetUser {
public static void main(String args[]) throws IOException {
System.out.println("Hi, what's your name?");
String name;
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
name = br.readLine();
System.out.println("Nice to meet you, " + name + "!
:)");
}

Hasil eksekusi program

8
Analisis
Untuk melakukan input pada program adalah menggunakan BufferdReader dimana
ketika input maka akan ditampung kedalam variabel name dan kemudian variabel
tersebut akan dipanggil sehingga menghasilkan output tertentu berupa apa yang kita
inputkan.

2.4 Program 8-4


A. Program 8-4 ReadFile.java
Source code

import java.io.*;

public class ReadFile {


public ReadFile() {

public static void main(String [] args) throws IOException {


System.out.println("What is the name of the file to
read from ?");
String filename;
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
filename = br.readLine();
System.out.println("Now reading from "+ filename + ". .
.");
FileInputStream fis = null;
try {
fis = new FileInputStream(filename);
} catch (FileNotFoundException ex){
System.out.println("File not found.");
}

try {
char data;
int temp;
do {
temp = fis.read();

9
data = (char) temp;
if(temp != -1) {
System.out.print(data);
}
} while(temp != -1);
} catch(IOException ex) {
System.out.println("Problem in reading file from
the file.");
}

}
}

Hasil eksekusi Program

Analisis
Program diatas merupakan program untuk membaca file pada folder tertentu, awalnya
kita akan melakukan input file apa yang akan dibaca pada program tersebut, setelah
kita melakuakan input maka data hasil input akan dibandingkan dengan file yang lain
di folder yang sama. Jika file tersebut ada makan akan melakukan program selanjut nya
jika tidak maka program akan berakhir karena catch hanya akan menampilkan “File
not Found”.

2.5 Program 8-5


A. Program 8-5 WriteFile.java
Source code
import java.io.*;
public class WriteFile {
public static void main(String args[]) throws IOException
{
System.out.println("What is the name of the file
to be written to?");
String filename;

10
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
filename = br.readLine();
System.out.println("Enter data to write to " +
filename + "...");
System.out.println("Type q$ to end.");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(filename);
}
catch (FileNotFoundException ex)
{
System.out.println("File cannot be
opened for writing.");
}
try {
boolean done = false;
int data;
do {
data = br.read();
if ((char)data == 'q') {
data = br.read();
if ((char)data == '$') {
done = true;
}
else {
fos.write('q');
fos.write(data);
}
}
else {
fos.write(data);
}
}
while (!done);
}
catch (IOException ex) {

11
System.out.println("Problem in reading from
the file.");
}
}

Hasil eksekusi Program

Analisis
Pada program di atas merupakan contoh bagaimna membuat sebuah file serta isi dari
file tersebut, awalnya kita akan dituntut untuk melakukan input data kemudian data
tersebut akan diproses untuk melakukan pembuatan file. Ketika proses membuat file
tersebut berhasil maka akan dilanjutkan pada proses pengisian data pada file yang telah
dibuat. Untuk mengakhiri pengisian kita perlu melakan penginputan data “q$”.
sehingga ketika q$ ditekan maka proses pembuatan file dan pengisian data telah selesai
dilakukan.

2.6 Program 8-6


A. Program 8-6 FileReading.java
Source code

/*
* 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.

12
*/
package modul8;

/**
*
* @author Yessi Sofia
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.EOFException;
import java.io.IOException;
import java.io.File;

public class FileReading {


public static void main(String[] args)
{
String line = "", fileContent = "";
try
{
BufferedReader fileInput = new BufferedReader (new
FileReader(new File("C:\\Users\\Yessi
Sofia\\Documents\\NetBeansProjects\\modul8\\src\\modul8\\coba.txt")
));
line = fileInput.readLine();
fileContent = line + "\n";
while(line != null)
{
line = fileInput.readLine();
if(line != null) fileContent += line + "\n";
}
fileInput.close();
}
catch (EOFException eofe)
{
System.out.println("No more lines to read.");
System.exit(0);
}
catch (IOException ioe)

13
{
System.out.println("Error reading file.");
System.exit(0);
}
System.out.println(fileContent);
}

Hasil eksekusi program

Analisis
Program diatas merupakan contoh membaca data file menggunakan path pada file
tertentu. Proses pembacaan data dilakukan secara line to line dimana data Angga.txt
akan dibaca secara baris perbasris dan nantinya akan disimpan kedalam variabel
fileContent. FileContent terdiri dari beberapa line dan nantinya variabe tersebut akan
ditampilkan di console.

2.7 Program 8-7


A. Program 8-7 FileAndDirectoryInfo.java
Source code
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Scanner;

public class FileAndDirectoryInfo{

14
public static void main(String[] args) throws
IOException{
Scanner input = new Scanner(System.in);
System.out.println("Enter file or directory
name:");
Path path = Paths.get(input.nextLine());
if(Files.exists(path)){
System.out.printf("%n$s exists%n",
path.getFileName());
System.out.printf("%s a directory%n",
Files.isDirectory(path) ? "ls" : "ls not");
System.out.printf("%s an absolute path%n",
path.isAbsolute() ? "is" : "is not");
System.out.printf("Last modified: %s%n",
Files.getLastModifiedTime(path));
System.out.printf("size: %s%n",
Files.size(path));
System.out.printf("Path: %s%n", path);
System.out.printf("Absolute path: %s%n",
path.toAbsolutePath());

if (Files.isDirectory(path)){
System.out.printf("%nDirectory
contents:%n");
DirectoryStream<Path> directoryStream =
Files.newDirectoryStream(path);
for (Path p : directoryStream)
System.out.println(p);
}
} else {
System.out.printf("%s does not exist%n",
path);
}
}
}

Hasil eksekusi program


15
Analisis
File yang terdapat pada program di atas dapat memiliki informasi melalui method-
method tertentu. Method-method tersebut diantaranya adalah getFileName()
mendapatkan nama file, isDirectory untuk membedakan apakah sebuah file atau
directory, getLastModifiedTime(path) untuk menampilkan waktu modified terhadap
file tersebut, Files.size(path) untuk menampilkan ukuran file dll.

2.8 Program 8-8


A. Program 8-8 CreateTextFile.java
Source code
import java.io.FileNotFoundException;
import java.lang.SecurityException;
import java.util.Formatter;
import java.util.FormatterClosedException;
import java.util.NoSuchElementException;
import java.util.Scanner;

public class CreateTextFile {


private static Formatter output;
public static void main(String[] args)
{
openFile();
addRecords();
closeFile();
}

16
public static void openFile()
{
try {
output = new Formatter("clients.txt");
} catch (SecurityException se) {
System.err.println("Write permission
denied. Terminating.");
System.exit(1);
} catch (FileNotFoundException fe) {
System.err.println("Error opening file.
Terminating.");
System.exit(1);
}

public static void addRecords()


{
Scanner input = new Scanner(System.in);
System.out.print("%s%n%s%n? " + "Enter account
number, first name, last name, and balance."+
"\nEnter end-of-file
indicator to end input.");

while(input.hasNext())
{
try
{
output.format(" " +input.nextInt()+ "
" +input.next()+ " " +input.next()+ " " +input.nextDouble());
}
catch (NoSuchElementException ee)
{
System.err.println("Invalid input,
please try again.");
input.nextLine();
}
System.out.print("? ");

17
}

public static void closeFile()


{
if(output != null)
output.close();
}

Hasil eksekusi program

Analisis
Pada program diatas akan membuat sebuah file dan nantinya akan melakukan pengisian
data terhadap file tersebut. Setiap kali kita memasukkan data, data yang lama akan
hilang dan akan diganti dengan dat yang baru kita inputkan. Variabel variabel yang di
inputkan dari keyboard antara Account, First Name, Last Name, dan Balance.

2.9 Program 8-9


A. Program 8-9 ReadTextFile.java
Source code
import java.io.IOException;

18
import java.lang.IllegalStateException;
import java.nio.file.Paths;
import java.util.NoSuchElementException;
import java.util.Scanner;

public class ReadTextFile {


private static Scanner input;
public static void main(String[] args)
{
openFile();
readRecords();
closeFile();
}

public static void openFile()


{
try
{
input = new
Scanner(Paths.get("clients.txt"));
}
catch (IOException e)
{
System.err.println("Error opening file.
Terminating.");
System.exit(1);
}

public static void readRecords()


{
System.out.print("%-10s%-12s%-12s%n? " +
"Accouunt" + "First namae" + "Last name" + "Balance");

try
{
while(input.hasNext())

19
{
System.out.print("%-10d%-12s%-
12s%10.2f%n? " + input.nextInt() + input.next() + input.next()
+ input.nextDouble());
}
}
catch (NoSuchElementException ee)
{
System.err.println("File improperly
formed. Terminating.");
}
catch (IllegalStateException ie)
{
System.out.print("Error reading form
file. Terminating.");
}
}

public static void closeFile()


{
if(input != null)
input.close();
}

Hasil eksekusi program

Analisis
Program diatas adalah program untuk membaca sebuah file dimana program diatas
akan membaca record-record yang terdapat pada file tersebut dan menampilkan record-
record yang ada pada file tersebut.

20
BAB 3

TUGAS AKHIR
3.1 Program ReadWrite.java
Source code
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

public class ReadWrite extends javax.swing.JFrame{


private JFileChooser dialog = new JFileChooser();

public ReadWrite() {
initComponents();
}

private void initComponents() {

jButton1 = new javax.swing.JButton();


jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_C
LOSE);
setTitle("Read and Write File");

jButton1.setText("Create File");
jButton1.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setText("Read File");

21
jButton2.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

jButton3.setText("Close");
jButton3.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});

jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.A
lignment.TRAILING)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addComponent(jButton2)
.addGap(18, 18, 18)
.addComponent(jButton3)))
.addContainerGap())
);
layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap()

22
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 154, Short.MAX_VALUE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RE
LATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.A
lignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2)
.addComponent(jButton3))
.addContainerGap())
);

pack();
}

private void
jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}

private void
jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
jTextArea1.setText(null);
int returnVal = dialog.showOpenDialog(this);

if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = dialog.getSelectedFile();
try{
FileInputStream fstream = new
FileInputStream(file);
DataInputStream in = new
DataInputStream(fstream);
BufferedReader br = new BufferedReader(new
InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null){
StringTokenizer st = new
StringTokenizer(strLine, ",");
jTextArea1.setText(jTextArea1.getText() +
st.nextToken() +"\n");
}
in.close();
}catch (Exception e){
System.err.println("Error: " +
e.getMessage());
}

} else {
JOptionPane.showMessageDialog(null, "Batal Buka
File ..");
}
}

private void
jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

23
int returnVal = dialog.showSaveDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = dialog.getSelectedFile();
try {
file.createNewFile();
PrintWriter out = new PrintWriter(new
BufferedWriter(new FileWriter(file)));
out.print(jTextArea1.getText());
out.flush();
} catch (IOException ex) {
System.err.println("Error: " +
ex.getMessage());
}
} else {
JOptionPane.showMessageDialog(null, "Batal Create
File ..");
}

public static void main(String args[]) {


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ReadWrite().setVisible(true);
}
});
}
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
}

Hasil eksekusi program


Write file

Read File

24
Analisis
Program ini diperintahkan untuk membaca dan menulis file dalam satu program yang
berbasis GUI yang didalamnya memakai JFrame,JButton, dan JTextArea untuk classnya
menggunakan BufferedReader, package java.io, exception,inputStream, outputStream.

25
Bab 4
TUGAS GIT
Membuat Project modul 8

Graph

26
27
DAFTAR PUSTAKA

Yuniarti.R.[2020].Pemrograman Objek II

ii

Anda mungkin juga menyukai