PEMROGRAMAN
BERORIENTASI OBJEK (PBO)
“I/O Stream
& GUI”
MODUL
9 & 10
Disusun Untuk Memenuhi Tugas Praktikum
Pemrograman Berorientasi Objek (PBO)
Dosen Pembimbing : Dede Irawan, M.Kom
Disusun
Oleh:
IYAS
SONA (20160910021)
SI-A
2016
UNIVERSITAS
KUNINGAN
Jln.
Cut Nyak Dhien No. 36A Cijoho Kuningan, Jawa Barat
Tlp/Fax.
(0232)874824
KATA
PENGANTAR
Alhamdulilah, puji syukur saya haturkan kehadirat
Allah SWT. Atas rahmat-Nya lah saya dapat menyelesaikan makalah ini dengan
baik.
Tak lupa saya juga haturkan terima kasih yang
sebesar-besarnya kepada semua pihak yang telah mendukung dan membantu dalam
menyelesaikan makalah ini. Saya menyadari bahwa Makalah ini memang belum
mencapai kesempurnaan, masih banyak kekurangan-kekurangan yang harus diperbaiki.
Untuk itu, saya sebagai penyusun mengharapkan kritik dan saran yang membangun
dari para pembaca agar dapat memperbaiki dalam penulisan Makalah yang saya buat
selanjutnya. Akhirnya saya sebagai penyusun berharap, semoga Makalah yang saya
buat dapat menambah wawasan kepada saya pada khususnya dan kepada para pembaca
pada umumnya.
Kuningan, Januari 2019
Iyas Sona
i
Modul 9
(I/O Stream)
A. Dasar Teori
Stream dapat didefinisikan sebagai sequence data baik dari sumber data atau
tujuan data. Pada Java I/O stream terdapat dua buah stream yang digunakan yaitu
stream karakter dan stream byte. Sesuai dengan namanya, strem byte digunakan
untuk menyimpan informasi data dalam bentuk byte. Sedangkan stream karakter
digunakan untuk proses I/O yang melibatkan data- data dalam bentuk karakter.
Stream karakter menggunakan karakter Unicode. Dalam Java, stream didefinisikan
dengan menggunakan empat kelas abstrak yaitu: InputStream,
OutputStream, Reader, Writer.
InputSream dan OutputStream merupakan kelas abstrak yang dirancang sebagai
kelas induk untuk kelas – kelas yang termasuk dalam kategori stream byte.
Sedangkan Reader dan Writer merupakan kelas abstrak yang akan diturunkan
menjadi kelas baru dalam kategori stream karakter. Melalui proses pewarisan (inheritance),
semua kelas yang diturunkan dari kelas InputStream dan Reader memiliki method
read() untuk melakukan pembacaan data. Sedangkan kelas yang diturunkan dari
kelas OutputStream dan Writer memiliki method write() yang digunakan untuk
melakukan penulisan data.
Menggunakan kelas Byte stream atau Character stream? Dari referensi yang
saya baca, jika kita bekerja dengan data bukan binary, maka
sebaiknya kita menggunakan kelas-kelas yang diturunkan dari kelas Reader dan
Writer (Character stream).
B.
Post Test
Hasil Running :
Modul 10
(GUI)
A.
Dasar Teori
Graphic User Interface (GUI) adalah adalah
suatu aplikasi dalam Java yang berbasis grafik.GUI membuat hasil dari suatu
program tampak menarik dan nyaman ketika digunakan oleh para user serta
kemudahan penggunaan program.Java menyediakan dua kelas untuk GUI yaitu AWT (
Abstract Windowing Toolkit) dan Swing.
1. AWT ( Abstract Windowing Toolkit)
AWT terdapat package java.awt. Package
java.awt berisi komponen-komponen GUI yang bersifat platform sistem
operasi.Tampilan dari java.awt menyesuaikan dengan sistem operasi sehingga
mengakibatkan dependensi sistem.Kelas yang terdapat pada package java.awt
seperti component, container, window, frame, panel dan dialog.
2. Swing
Swing terdapat pada package javax.swing.
Package javax.swing dapat diaplikasikan pada platform sistem
operasi.Implementasi Swing dalam program dapat menggunakan class yang sudah
terdapat pada package javax.swing yaitu JFrame, JDialog, JOption, JApplet.
B. Post Test
Source Kode :
package M9_10;
import javax.swing.*;
import
java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
public class PT10 extends
JFrame implements ActionListener {
JLabel lblNim = new JLabel();
JLabel lblNama = new JLabel();
JLabel lblKelas = new JLabel();
JTextField txtNim = new JTextField();
JTextField txtNama = new JTextField();
JTextField txtKelas = new JTextField();
JButton btnProses = new
JButton();
JButton btnHapus = new JButton();
public PT10(){
setLayout(null);
setSize(300, 200);
setVisible(true);
setTitle("Post Test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
lblNim.setText("NIM");
lblNim.setBounds(10, 20, 80, 20);
add(lblNim);
lblNama.setText("NAMA");
lblNama.setBounds(10, 50, 80, 20);
add(lblNama);
lblKelas.setText("KELAS");
lblKelas.setBounds(10, 80, 80, 20);
add(lblKelas);
txtNim.setBounds(70, 20, 130, 20);
add(txtNim);
txtNama.setBounds(70, 50, 130, 20);
add(txtNama);
txtKelas.setBounds(70, 80, 130, 20);
add(txtKelas);
btnProses.setText("Tampil");
btnProses.setBounds(20, 120, 100, 20);
btnProses.addActionListener(this);
add(btnProses);
btnHapus.setText("Hapus");
btnHapus.setBounds(150, 120, 100, 20);
btnHapus.addActionListener(this);
add(btnHapus);
}
public static void main(String[] args) {
PT10 f1 = new PT10();
}
@Override
public void actionPerformed(ActionEvent a)
{
if
(a.getActionCommand().equals("Tampil")){
txtNim.setText("20160910021");
txtNama.setText("Iyas Sona");
txtKelas.setText("SI2016A");
}else{
txtNim.setText(" ");
txtNama.setText(" ");
txtKelas.setText(" ");
}
}
}
·
Hasil run
Tugas Individu Gabungan Modul 9 &10
Tugas,java
Source Kode :
package M9_10;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
class Biodata_Mahasiswa extends JFrame implements ActionListener{
//buat Label
JLabel lblbio=new
JLabel("Biodata Mahasiswa");
JLabel lblnim=new
JLabel("NIM");
JLabel lblnama=new
JLabel("Nama");
JLabel lblalmt=new
JLabel("Alamat");
JLabel lbljk=new
JLabel("Jenis Kelamin");
JLabel lblprod=new
JLabel("Program Studi");
JLabel lbljrs=new
JLabel("Jurusan");
//buat Textfield
JTextField tfnim=new
JTextField(50);
JTextField tfnama=new
JTextField(100);
//buat textarea
JTextArea taalmt=new
JTextArea();
//buat radiobtn
JRadioButton rbpria=new
JRadioButton("Pria");
JRadioButton rbwanita=new
JRadioButton("Wanita");
//buat combobox
JComboBox cbprod=new
JComboBox();
JComboBox cbjrs=new
JComboBox();
//buat button
JButton bsimpan=new
JButton("Simpan");
JButton bbcdata=new
JButton("Baca Data");
JButton bkeluar=new
JButton("Keluar");
public Biodata_Mahasiswa(String
title){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 500);
setLayout(null);
setTitle(title);
setVisible(true);
//tampilkan
getContentPane().add(lblbio);
lblbio.setBounds(120, 15,
300, 35);
lblbio.setFont(new
Font("Arial",Font.PLAIN,30));
getContentPane().add(lblnim);
lblnim.setBounds(40, 70, 50,
20);
getContentPane().add(tfnim);
tfnim.setBounds(150, 70, 150,
20);
getContentPane().add(lblnama);
lblnama.setBounds(40, 110,
50, 20);
getContentPane().add(tfnama);
tfnama.setBounds(150, 110,
250, 20);
getContentPane().add(lblalmt);
lblalmt.setBounds(40, 150,
60, 20);
getContentPane().add(taalmt);
taalmt.setBounds(150, 150,
300, 90);
getContentPane().add(lbljk);
lbljk.setBounds(40, 260, 80,
20);
getContentPane().add(rbpria);
rbpria.setBounds(145, 260,
80, 20);
getContentPane().add(rbwanita);
rbwanita.setBounds(300, 260,
80, 20);
getContentPane().add(lblprod);
lblprod.setBounds(40, 300,
110, 20);
getContentPane().add(cbprod);
cbprod.addItem("S1");
cbprod.addItem("D3");
cbprod.setBounds(150, 300,
90, 20);
getContentPane().add(lbljrs);
lbljrs.setBounds(40, 340, 60,
20);
getContentPane().add(cbjrs);
cbjrs.addItem("Sistem
Informasi");
cbjrs.addItem("Teknik
Informatika");
cbjrs.addItem("Manajemen
Informatika");
cbjrs.setBounds(150, 340,
160, 20);
getContentPane().add(bsimpan);
bsimpan.setBounds(45, 400,
100, 25);
bsimpan.addActionListener(this);
getContentPane().add(bbcdata);
bbcdata.setBounds(195, 400,
100, 25);
bbcdata.addActionListener(this);
getContentPane().add(bkeluar);
bkeluar.setBounds(345, 400,
100, 25);
bkeluar.addActionListener(this);
}
public void tulisfile() throws
IOException{
String
namafile="bio.txt";
String
nim=tfnim.getText();
String
nama=tfnama.getText();
String
alamat=taalmt.getText();
String
jk=rbpria.getActionCommand();
String prodi=cbprod.getName();
String
jurusan=cbjrs.getName();
FileOutputStream
outFile=new FileOutputStream(namafile);
String
pesanberhasil="Data Berhasil Dimasukan";
try{
DataOutputStream
outStream=new DataOutputStream(outFile);
outStream.writeUTF(nim);
outStream.writeUTF(nama);
outStream.writeUTF(alamat);
outStream.equals(prodi);
outStream.equals(jurusan);
outStream.close();
JOptionPane.showMessageDialog(rootPane, pesanberhasil);
}
catch(IOException e){
System.out.println("IOERROR"+ e.getMessage()+"\n");
}
}
public void bacafile() throws
IOException{
String
namafile="bio.txt";
String nim=tfnim.getText();
String nama=tfnama.getText();
String
alamat=taalmt.getText();
String pesanfilenf="File
Tidak Ada";
try{
FileInputStream
inFile=new FileInputStream(namafile);
DataInputStream
inStream=new DataInputStream(inFile);
nim=inStream.readUTF();
nama=inStream.readUTF();
alamat=inStream.readUTF();
inStream.close();
}
catch (FileNotFoundException
e){
JOptionPane.showMessageDialog(rootPane, pesanfilenf);
}
catch (IOException ex){
System.out.println("IOERROR :
"+ex.getMessage()+"\n");
}
}
public void
actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("Simpan")){
try {
tulisfile();
} catch (IOException ex) {
Logger.getLogger(Biodata_Mahasiswa.class.getName()).log(Level.SEVERE,
null, ex);
}
}else{
tfnama.setText("");
tfnim.setText("");
taalmt.setText("");
}
if(e.getActionCommand().equals("Baca Data")){
try {
bacafile();
} catch (IOException ex) {
Logger.getLogger(Biodata_Mahasiswa.class.getName()).log(Level.SEVERE,
null, ex);
}
}else{
}
}
public static void main(String[]
args) {
new
Biodata_Mahasiswa("Form Biodata Mahasiswa");
}}
·
Hasil Run
Saat klik button simpan
File yang telah di buat






