Sabtu, 05 Januari 2019

Modul 9 dan 10 (I/O Stream & GUI)



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










1 komentar:

  1. Stream byte digunakan untuk memberikan atau menyimpan informasi data dalam bentuk byte, misalnya untuk menulis dan membaca file biner. Sedangkan stream karakter pada proses I/O melibatkan data-data berbentuk karakter, misalnya proses baca/tulis ke suatu file teks, dengan menggunakan karakter Unicode.

    BalasHapus