Rabu, 11 Desember 2019

FP


Final Project EAS
Pemrograman Berorientasi Objek




Risky Aswi Narni                 05111740000014
I nyoman Yoga Mahottama 05111740000159

a. Pengertian

JavaFX adalah kumpulan package graphic dan media yang memungkinkan developer untuk membuat aplikasi desktop. JavaFX dirilis untuk menggantikan Swing sebagai pustaka standar GUI untuk Java SE. JavaFX menyediakan pengaturan grafis dan media API dan memanfaatkan Graphical Processing Unit modern melalui akselerasi perangkat keras grafis. JavaFX juga menyediakan interface yang dapat digunakan pengembang untuk menggabungkan animasi grafis dan UI controls.

Penggunaan JavaFX dengan teknologi berbasis JVM seperti Java, Groovy dan JRuby. Jika pengembang memilih untuk JavaFX, tidak ada kebutuhan untuk belajar teknologi tambahan, seperti pengetahuan sebelumnya dari salah satu teknologi yang disebutkan di atas akan cukup baik untuk mengembangkan RIA menggunakan JavaFX.
 


b. Implementasi

Pembuatan Aplikasi “Toko Mandiri” Menggunakan 4 class yaitu penjualan, pembelian, Database, Bukti
Memiliki fitur -fitur:
a.       Aplikasi kasir
b.      Input ke Database
c.       Hapus data
d.      Update Data
 



c. Sourcode
-pembelian

import javafx.application.Application;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.scene.layout.StackPane;
import javafx.collections.*;
import javafx.scene.paint.*;
import javafx.scene.text.*;
import javafx.scene.Group;
import java.util.Random;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import java.io.FileInputStream;

public class Pembelian extends Application
{
    Text textDaftar = new Text("Daftar: ");
    Text textKasir = new Text("Kasir :");
    Text KodeBarang = new Text("");
    Text textBiaya = new Text("");
    Text textJumlah = new Text("");
    Text textTotalBayar = new Text("");
    Text NamaBarang = new Text("");
    Text BiayaBarang = new Text("");
    Text TotalBiayaText = new Text("");
    TextField textFieldJumlah = new TextField ();
    ObservableList optionsKasir = FXCollections.observableArrayList(
        "Awin",
        "Yoga"
       
    );
    final ComboBox comboBoxKasir = new ComboBox(optionsKasir);
    ObservableList optionsBarang = FXCollections.observableArrayList(
        "1",
        "2",
        "3",
        "4",
        "5"
    );
    final ComboBox comboBoxBarang = new ComboBox(optionsBarang);
   
    private int TotalBiaya;
    private int Biaya;
       
    @Override
    public void start(Stage stage) throws Exception
    {
       Scene scene = new Scene(new Group(), 500, 350);
       stage.setTitle("Toko Mandiri");
       textDaftar.setFont(Font.font(18));
           
       textKasir.setFont(Font.font(18));
       KodeBarang.setFont(Font.font(18));
       textBiaya.setFont(Font.font(18));
       textJumlah.setFont(Font.font(18));
       textTotalBayar.setFont(Font.font(18));
       
        GridPane grid = new GridPane();
        grid.setVgap(10);
        grid.setHgap(10);
        grid.setPadding(new Insets(10, 10, 10, 10));
      
       
       grid.add(new Label("Menyediakan: "), 0, 0);
       Button buttong = new Button("Lihat");
       grid.add(buttong, 1,0);
       
       buttong.setOnAction(this::buttonClicks);
       
        grid.add(new Label("Petugas: "), 0, 1);

        grid.add(comboBoxKasir, 1,1);
        grid.add(new Label("Id: "), 0, 2);
        grid.add(comboBoxBarang, 1,2);
       
        EventHandler event =
                  new EventHandler() {
            public void handle(ActionEvent e)
            {
                if(comboBoxBarang.getValue() == "1")
                {
                    NamaBarang.setText("Lolipop");
                    BiayaBarang.setText("Rp2500");
                    Biaya = 2500;
                }
                else if(comboBoxBarang.getValue() == "2")
                {
                    NamaBarang.setText("Air Mineral");
                    BiayaBarang.setText("Rp3000");
                    Biaya = 3000;
                }
                else if(comboBoxBarang.getValue() == "3")
                {
                    NamaBarang.setText("Chiki");
                    BiayaBarang.setText("Rp3000");
                    Biaya = 3000;
                }
                 else if(comboBoxBarang.getValue() == "4")
                {
                    NamaBarang.setText("Permen");
                    BiayaBarang.setText("Rp500");
                    Biaya = 500;
                }
                else if(comboBoxBarang.getValue() == "5")
                {
                    NamaBarang.setText("Choclate");
                    BiayaBarang.setText("Rp3000");
                    Biaya = 3000;
                }
                     
            }
        };
     
        
        comboBoxBarang.setOnAction(event);
      
        grid.add(new Label("Nama Barang: "), 0, 3);
        grid.add(NamaBarang, 1,3);
        
        grid.add(new Label("Harga Barang: "), 0, 4);
        grid.add(BiayaBarang, 1,4);
        
        grid.add(new Label("Jumlah Barang: "), 0, 5);
        grid.add(textFieldJumlah, 1,5);
       
        EventHandler eventJumlah = new EventHandler() {
            public void handle(ActionEvent e)
            {
                 TotalBiaya = Integer.parseInt(textFieldJumlah.getText()) * Biaya;
                 TotalBiayaText.setText("Rp"+Integer.toString(TotalBiaya));
            }
        };
       
        textFieldJumlah.setOnAction(eventJumlah);
       
        grid.add(new Label("Total Bayar: "), 0, 6);
        grid.add(TotalBiayaText, 1,6);
       
       Text title=new Text("toko Mandiri");
       title.setFont(Font.font(36));
       Button buttons = new Button("cetak");
       grid.add(buttons, 3,7);
       buttons.setOnAction(this::buttonClick);
       
       Group root = (Group)scene.getRoot();
       root.getChildren().add(grid);
       stage.setScene(scene);
       stage.show();
         
    buttong.setOnAction(new EventHandler() {
    @Override public void handle(ActionEvent ee){
        Penjualan p = new Penjualan();
        p.setVisible(true);
    }
});
       
    }
    
  public static void main(String[] args) {
        Application.launch(args);
    }

    private void buttonClicks(ActionEvent ee)
    {
      Penjualan p = new Penjualan();
    }
    private void buttonClick(ActionEvent event)
    {
       Bukti c = new Bukti(NamaBarang, textFieldJumlah.getText(), TotalBiayaText);
       c.show();
    }
}

-penjualan
import java.awt.Component; import java.awt.Dimension; import java.awt.HeadlessException; import java.awt.Toolkit; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.sql.ResultSet; import java.sql.SQLException; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; public class Penjualan extends javax.swing.JFrame { private ResultSet result; private Connection conek; private Statement state; public void koneksi() { try { Class.forName("com.mysql.jdbc.Driver"); conek=DriverManager.getConnection("jdbc:mysql://localhost:3306/daftarbarangg", "root", ""); state=conek.createStatement(); } catch (ClassNotFoundException | SQLException e) { JOptionPane.showMessageDialog(null, e); } } public Penjualan() { setTitle("Toko Mandiri"); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = getSize(); setLocation( (screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); Display(); koneksi(); tabel(); } private void empty() { id.setText(""); nama.setText(""); merk.setText(""); stok.setText(""); hrg.setText(""); id.requestFocus(); } public void tabel(){ DefaultTableModel x = new DefaultTableModel (); x.addColumn("ID Barang"); x.addColumn("Nama Barang"); x.addColumn("Merk"); x.addColumn("Stok"); x.addColumn("Harga"); tbl.setModel(x); try { result=state.executeQuery("select * from barang"); while (result.next()) { x.addRow(new Object[]{ result.getString("ID_Barang"), result.getString("Nama_Barang"), result.getString("Merk"), result.getString("Stok"), result.getString("Harga") } ); } }catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } private void Display() { id= new javax.swing.JTextField(); nama= new javax.swing.JTextField(); merk= new javax.swing.JTextField(); stok= new javax.swing.JTextField(); hrg= new javax.swing.JTextField(); Cari = new javax.swing.JButton(); Reset = new javax.swing.JButton(); Simpan = new javax.swing.JButton(); Hapus = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); tbl = new javax.swing.JTable(); Ganti = new javax.swing.JButton(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jLabel1.setText("ID Barang"); jLabel2.setText("Nama Barang"); jLabel3.setText("Brand"); jLabel4.setText("Stok"); jLabel8.setText("Harga"); Simpan.setText("Simpan"); Simpan.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt){ SimpanActionPerformed(evt); } } ); Hapus.setText("Hapus"); Hapus.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { HapusActionPerformed(evt); } } ); tbl.setGridColor(new java.awt.Color(0, 0, 0)); jScrollPane1.setViewportView(tbl); Ganti.setText("Ganti"); Ganti.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { GantiActionPerformed(evt); } } ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 554, Short.MAX_VALUE) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(Simpan) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(Ganti) .addGap(14, 14, 14) .addComponent(Hapus)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, 43, Short.MAX_VALUE) .addComponent(jLabel8, javax.swing.GroupLayout.DEFAULT_SIZE, 43, Short.MAX_VALUE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(id, javax.swing.GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE) .addComponent(nama) .addComponent(merk) .addComponent(stok) .addComponent(hrg)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(Reset, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(Cari, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(0,0,0) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 276, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 276, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 276, javax.swing.GroupLayout.PREFERRED_SIZE))))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(17, 17, 17) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(id, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(Cari) .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(nama, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(Reset)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(merk, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel4) .addComponent(stok, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel8) .addComponent(hrg, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) ) .addGroup(layout.createSequentialGroup() .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel7))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(Simpan) .addComponent(Hapus) .addComponent(Ganti)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 229, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(24, 24, 24)) ); pack(); } private void ResetActionPerformed(java.awt.event.ActionEvent evt) { empty(); } private void GantiActionPerformed(java.awt.event.ActionEvent evt) { koneksi(); try { state.executeUpdate("update barang set" +" ID_Barang='"+id.getText()+"'," +" Nama_Barang='"+nama.getText()+"'," +" Merk='"+merk.getText()+"'," + "Stok='"+stok.getText()+"'," + "Harga='"+hrg.getText()+"'" + " where " + "ID_Barang='"+id.getText()+"'" ); empty(); tabel(); JOptionPane.showMessageDialog(null, "Data Terupdate"); }catch (SQLException | HeadlessException e) { JOptionPane.showMessageDialog(null, "Data Belum Lengkap : "+e); } } private void HapusActionPerformed(java.awt.event.ActionEvent evt) { koneksi(); try { state.executeUpdate("delete from barang where " + "ID_Barang='"+id.getText() +"'" ); empty(); tabel(); JOptionPane.showMessageDialog(null, "Berhasil Dihapus"); } catch (HeadlessException | SQLException e) { JOptionPane.showMessageDialog(null, "Gagal Dihapus/Koneksi Terputus "+e); } } private void SimpanActionPerformed(java.awt.event.ActionEvent evt) { koneksi(); try { state.executeUpdate("insert into barang values (" + "'" + id.getText()+"'," + "'" + nama.getText()+"'," + "'" + merk.getText()+"'," + "'" + stok.getText()+ "'," + "'" + hrg.getText()+ "')" ); empty(); tabel(); JOptionPane.showMessageDialog(null, "Data Tersimpan"); } catch (SQLException | HeadlessException e) { JOptionPane.showMessageDialog(null, "Data KurangLengkap"); } } public static void main(String args[]) { try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(Penjualan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(Penjualan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(Penjualan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(Penjualan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Penjualan().setVisible(true); } }); } private javax.swing.JButton Cari; private javax.swing.JButton Ganti; private javax.swing.JButton Hapus; private javax.swing.JButton Reset; private javax.swing.JButton Simpan; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextField id; private javax.swing.JTextField nama; private javax.swing.JTextField merk; private javax.swing.JTable tbl; private javax.swing.JTextField stok; private javax.swing.JTextField hrg; }
-bukti


import javafx.application.Application;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.scene.layout.StackPane;
import javafx.collections.*;
import javafx.scene.paint.*;
import javafx.scene.text.*;
import javafx.scene.Group;
import java.util.Random;
 
public class Bukti
{
    private Text NamaBarang = new Text(""),TotalHargaText = new Text("");
    private String jumlahBeli;
    public Bukti(Text namaBarang, String jumlah, Text TotalHarga)
    {
        NamaBarang = namaBarang;
        TotalHargaText = TotalHarga;
        jumlahBeli = jumlah;
    }
    public void show()
    {
       Stage stage = new Stage();
       Scene scene = new Scene(new Group(), 500,500);
       stage.setTitle("Nota Pembelian");
       
       GridPane grid = new GridPane();
       grid.setVgap(10);
       grid.setHgap(15);
       grid.setPadding(new Insets(10, 10, 10, 10));
       grid.add(new Label("Toko Mandiri"),0,0);
       grid.add(NamaBarang,0,1);
       grid.add(new Label(jumlahBeli),1,1);
       grid.add(new Label("Harga"),0,2);
       
       grid.add(TotalHargaText,1,2);
       
       Group root = (Group)scene.getRoot();
       root.getChildren().add(grid);
       stage.setScene(scene);
       stage.show();
    }
}
-Database

import java.sql.*;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;

    public class Database {
        
        static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
        static final String DB_URL = "jdbc:mysql://localhost/";

        static final String USER = "root";
            static final String PASS = "";
   
     public static void main(String[] args) {
       
       Connection conn = null;
       Statement stmt = null;
                
                try{
                //STEP 2: Daftarkan JDBC driver
                Class.forName("com.mysql.jdbc.Driver"); //driver JDBC

                //STEP 3: Koneksi ke database
                System.out.println("Koneksi ke database...");
                conn = DriverManager.getConnection("jdbc:mysql://localhost/","root", "");

                //STEP 4: tambahkan ke Query
                System.out.println("Membuat database...");
                stmt = conn.createStatement();
                
                //STEP 5 : membuat database
                String sql = "CREATE DATABASE daftarbarangg";
                stmt.executeUpdate(sql);

                System.out.println("Database berhasil dibuat...");
               
                //membuat table pada database yang dibuat
                
                //STEP 1: mengkoneksikan database yang telah dibuat diatas
                System.out.println("Sedang koneksi ke database yang terpilih...");
                conn = DriverManager.getConnection("jdbc:mysql://localhost/daftarbarangg","root" ,"");
                System.out.println("Koneksi ke database berhasil...");
      
                //STEP 2: Tambahkan ke Query
                System.out.println("Membuat Table pada Database...");
                stmt = conn.createStatement();
                
                //STEP 3: Membuat Field-Field pada Table barang
                String tab = "CREATE TABLE barang " +
                   "(ID_Barang INTEGER not NULL, " + //Field id barnang type Integer
                   " Nama_Barang VARCHAR(255), " +  //field nama barang type VARCHAR Lenght 255
                   " Merk VARCHAR(255), " + //field merk type Varchar lenght 255
                   " Stok INTEGER, " + //field stok type integez
                   " Harga INTEGER, " +//field harga type integez
                   " PRIMARY KEY ( ID_Barang ))"; //id barang sebagai Primary Key

                   stmt.executeUpdate(tab);
                   System.out.println("Table berhasil dibuat pada database yang terpilih...");
                   
                }catch(SQLException se){
                    //Menangani kesalahan untuk JDBC
                    se.printStackTrace();
                }catch(Exception e){
                    //Menangani kesalahan pada Class.forName
                    e.printStackTrace();
                }finally{
               //akhir dari program yang digunakan
                        try{
                            if(stmt!=null)
                            stmt.close();
                        }catch(SQLException se2){
                        }
                        
                        try{
                            if(conn!=null)
                            conn.close();
                        }catch(SQLException se){
                            se.printStackTrace();
                        }
   }
   System.out.println("Selesai");
}
} 
d.Langkah kerja
 
1. Run Program menampilka halaman yang diakses kasir
 
2. Kasir menginput jumlah barang
3. Sistem menghitung jumlah Harga


4. Mencetak total pembelian



5. Klik lihat untuk menampilkan halaman admin mengedit, delete, menambah



 

Rabu, 27 November 2019

KUIS

Membuat aplikasi POS sederhana
Input:
-Petugas Kair
-Kode Barang
-Nama Barang
-Harga
-Jumlah Pembelian

Output:
-Total Bayar
-Bukti

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
public class POS {
    JFrame frameList = null;
    JPanel panel = null;
 
    JTextField txtKodeKasir = null;
    JTextField txtKodeBarang = null;
    JTextField txtNamaBarang = null;
    JTextField txtHarga = null;
    JTextField txtJumlahBarang = null;
 
    JFrame framePrint = null;
    JPanel panelList = null;
   
    public static void main(String[] args){
        POS gui = new POS();
        gui.list();
    }
 
    public void list(){
        frameList = new JFrame();
        frameList.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        panel = new JPanel();
 
        JLabel lblKodeKasir = new JLabel("Kode Kasir:");  
        txtKodeKasir = new JTextField(20);
 
        JLabel lblKodeBarang = new JLabel("Kode Barang:");
        txtKodeBarang = new JTextField(20);
 
        JLabel lblNamaBarang = new JLabel("Nama Barang:");
        txtNamaBarang = new JTextField(20);
 
        JLabel lblHarga = new JLabel("Harga:");
        txtHarga = new JTextField(20);
       
        JLabel lblJumlahPembelian = new JLabel("Jumlah Barang:");
        txtJumlahBarang = new JTextField(20);
       
        JButton btnSubmit = new JButton("Print");
        btnSubmit.addActionListener(new SubmitListener(this));
       
        panel.add(lblKodeKasir);
        panel.add(txtKodeKasir);
        panel.add(lblKodeBarang);
        panel.add(txtKodeBarang);
        panel.add(lblNamaBarang);
        panel.add(txtNamaBarang);
        panel.add(lblHarga);
        panel.add(txtHarga);
        panel.add(lblJumlahPembelian);
        panel.add(txtJumlahBarang);
       
        panel.add(btnSubmit);        
        frameList.getContentPane().add(BorderLayout.CENTER,panel);
 
        frameList.setSize(250,500);
        frameList.setVisible(true);
    }
   
    public void sendMessage(String msg) {
        JOptionPane.showMessageDialog(null,msg);
    }
   
    public void printBarang(POS pos) {
        String petugasKasir = pos.txtKodeKasir.getText();
        String kodeBarang = pos.txtKodeBarang.getText();
        String namaBarang = pos.txtNamaBarang.getText();
        String harga = pos.txtHarga.getText();
        String jumlahPembelian = pos.txtJumlahBarang.getText();
        int totalHarga = Integer.parseInt(harga) * Integer.parseInt(jumlahPembelian);
 
        pos.framePrint = new JFrame();
        pos.framePrint.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pos.panelList = new JPanel();
       
        JLabel lblKodeKasir = new JLabel("Kode Kasir: " + pos.txtKodeKasir.getText()+"\n");  
        JLabel lblKodeBarang = new JLabel("Kode Barang: " + pos.txtKodeBarang.getText());
        JLabel lblNamaBarang = new JLabel("Nama Barang: " + pos.txtNamaBarang.getText());
        JLabel lblHarga = new JLabel("Harga: Rp. " + pos.txtHarga.getText());
        JLabel lblJumlahPembelian = new JLabel("Jumlah Barang: " + pos.txtJumlahBarang.getText());
        JLabel lblTotalBayar = new JLabel("Total Bayar: Rp. " + (Integer.parseInt(harga) * Integer.parseInt(jumlahPembelian)));
 
        pos.panelList.add(lblKodeKasir);
        pos.panelList.add(lblKodeBarang);
        pos.panelList.add(lblNamaBarang);
        pos.panelList.add(lblHarga);
        pos.panelList.add(lblJumlahPembelian);
        pos.panelList.add(lblTotalBayar);
 
        pos.framePrint.getContentPane().add(BorderLayout.CENTER, pos.panelList);
 
        pos.framePrint.setSize(210,500);
 
        pos.frameList.setVisible(false);
        pos.framePrint.setVisible(true);
 
    }
   
    public class SubmitListener implements ActionListener{
        POS pos;
       
        public SubmitListener(POS pos) {
            this.pos = pos;
        }
       
        public void actionPerformed(ActionEvent event){
            pos.printBarang(pos);
        }
 
    }
 
}
output:

 
 
Java Applet, Java FX

Nama: Risky Aswi Narni
NRP  : 05111740000014

Applet merupakan salah satu jenis program yang dapat dihasilkan oleh bahasa pemrograman Java selain program aplikasi dekstop dan server. Applet Java harus dijalankan melalui web browser, misalnya di Microsoft Internet Explore, Mozilla FireFox, Google Chrome atau browser yang lain. Applet Java dapat disertakan di dalam dokumen HyperText Markup Language (HTML). Dokumen HTML menggunakan tag untuk memberi instruksi ke web browser dan kemudian web browser akan menterjemahkan dan memutuskan bagaimana menampilkan atau memperlakukan konten dari dokumen HTML





import java.awt.*;
public class TesApplet extends java.applet.Applet{
 
    public void paint(Graphics g){
        Font f = new Font("SansSerif", Font.BOLD, 20);
        g.setFont(f);
        g.setColor(Color.BLUE);
 
        int xPusat = this.getSize().width/2;
        int yPusat = this.getSize().height/2;
 
        String s = "Selamat Belajar Java Applet";
        FontMetrics fm = this.getFontMetrics(f);
        int posisiX = xPusat - (fm.stringWidth(s)/2);
        g.drawString("Selamat Belajar java Applet", posisiX, yPusat);
    }
}




JavaFX adalah library Java yang digunakan untuk membangun Rich Internet Applications. Aplikasi yang dikembangkan menggunakan JavaFX dapat berjalan di berbagai perangkat seperti Komputer Desktop, Mobile Phones, TV, Tablet, dll

import javafx.application.Application;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import java.util.Random;
 
/**
 * Write a description of JavaFX class FortuneTeller here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class FortuneTeller extends Application
{
    Text fortune = new Text("");
    String[] fortunes = {"Test javaFx"};
       
    @Override
    public void start(Stage stage) throws Exception
    {
       VBox box=new VBox();
       box.setPadding(new Insets(20));
       box.setSpacing(20);
       box.setAlignment(Pos.CENTER);
       
       Text title=new Text("Hello Fortune Teller");
       title.setFont(Font.font("SanSerif",36));
       box.getChildren().add(title);
       
       Button button = new Button("Klik JavaFx");
       box.getChildren().add(button);
       
       button.setOnAction(this::buttonClick);
       
       Scene scene=new Scene(box,500,250);
       stage.setTitle("Hello JavaFx");
       stage.setScene(scene);
       stage.show();
       
    }
 
    /**
     * This will be executed when the button is clicked
     * It increments the count by 1
     */
    private void buttonClick(ActionEvent event)
    {
       Random rand = new Random();
       fortune.setText(fortunes[rand.nextInt(fortunes.length)]);
    }
}


Rabu, 13 November 2019

PBO-11- Pemrograman GUI 

Login dan Image Viewer

Nama : Risky Aswi Narni

NRP : 05111740000014

Kelas : PBO A 

Login

Diperlukan 1 class dalam membuat Login yaitu:

1. Class Login

--Code--


import javax.swing.*;  
 import java.awt.*;  
 import java.awt.event.*;  
 
 public class Login{  
   String Username = "awaw";  
   String Password = "okk";  
   String msg = " ";  
   private JTextField txtUsername;
   private JPasswordField txtPassword;
   public static void main(String[] args){  
     Login gui = new Login();  
     gui.go();  
   }  
   public void go(){  
     JFrame frame = new JFrame();  
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
     JPanel panel = new JPanel();  
     JLabel lblUsername = new JLabel("Username:");    
     JLabel lblPassword = new JLabel("Password:");  
     txtUsername = new JTextField(20);  
     txtPassword = new JPasswordField(20);  
     JButton btnLogin = new JButton("Login");  
     btnLogin.addActionListener(new LoginListener());  
     JButton btnCancel = new JButton("Cancel");  
     btnCancel.addActionListener(new CancelListener());  
     panel.add(lblUsername);  
     panel.add(txtUsername);  
     panel.add(lblPassword);  
     panel.add(txtPassword);      
     panel.add(btnLogin);
     panel.add(btnCancel);
     frame.getContentPane().add(BorderLayout.CENTER,panel);  
     frame.setSize(300,300);  
     frame.setVisible(true);  
   }  
   public class LoginListener implements ActionListener{  
     public void actionPerformed(ActionEvent event){  
       if(Username.equals(txtUsername.getText())){  
         if(Password.equals(txtPassword.getText())){  
           msg = "Login success!";  
         }else{  
           msg = "Login failed!";  
         }  
       }else{  
         msg = "The username or password incorrect. Please try again!";  
       }    
       JOptionPane.showMessageDialog(null,msg);            
     }  
   }  
   public class CancelListener implements ActionListener{  
     public void actionPerformed(ActionEvent event){  
       txtUsername.setText("");  
       txtPassword.setText("");  
       txtUsername.requestFocus();  
     }  
   }  
 }

  Output:

Ketika username dan pass benar


Ketika Username dan pass salah


 

ImageViewer 

Diperlukan 4 class dalam membuat ImageViewer 1.0 yaitu:

1. Class ImageViewer

--Code--

 import java.awt.*;  
	import java.awt.*;  
import java.awt.event.*;  
import java.awt.image.*;  
import javax.swing.*;  
import java.io.File;  
 
 public class imageViewer  
 {  
   // static fields:  
   private static final String VERSION = "Version 1.0";  
   private static JFileChooser fileChooser = new JFileChooser(System.getProperty("user.dir"));  
   // fields:  
   private JFrame frame;  
   private imagePanel imagePanel;  
   private JLabel filenameLabel;  
   private JLabel statusLabel;  
   private ofImage currentImage;   
   /**  
    * Create an ImageViewer show it on screen.  
    */  
   public imageViewer()  
   {  
     currentImage = null;  
     makeFrame();  
   }  
   // ---- implementation of menu functions ----    
   /**  
    * Open function: open a file chooser to select a new image file.  
    */  
   private void openFile()  
   {  
     int returnVal = fileChooser.showOpenDialog(frame);  
     if(returnVal != JFileChooser.APPROVE_OPTION) {  
       return; // cancelled  
     }  
     File selectedFile = fileChooser.getSelectedFile();  
     currentImage = imageFileManager.loadImage(selectedFile);  
     if(currentImage == null) {  // image file was not a valid image  
       JOptionPane.showMessageDialog(frame,  
           "The file was not in a recognized image file format.",  
           "Image Load Error",  
           JOptionPane.ERROR_MESSAGE);  
       return;  
     }  
     imagePanel.setImage(currentImage);  
     showFilename(selectedFile.getPath());  
     showStatus("File loaded.");  
     frame.pack();  
   }  
   /**  
    * Close function: close the current image.  
    */  
   private void close()  
   {  
     currentImage = null;  
     imagePanel.clearImage();  
     showFilename(null);  
   }  
   /**  
    * Quit function: quit the application.  
    */  
   private void quit()  
   {  
     System.exit(0);  
   }  
   /**  
    * 'Darker' function: make the picture darker.  
    */  
   private void makeDarker()  
   {  
     if(currentImage != null) {  
       currentImage.darker();  
       frame.repaint();  
       showStatus("Applied: darker");  
     }  
     else {  
       showStatus("No image loaded.");  
     }  
   }  
   /**  
    * 'Lighter' function: make the picture lighter  
    */  
   private void makeLighter()  
   {  
     if(currentImage != null) {  
       currentImage.lighter();  
       frame.repaint();  
       showStatus("Applied: lighter");  
     }  
     else {  
       showStatus("No image loaded.");  
     }  
   }  
   /**  
    * 'threshold' function: apply the threshold filter  
    */  
   private void threshold()  
   {  
     if(currentImage != null) {  
       currentImage.threshold();  
       frame.repaint();  
       showStatus("Applied: threshold");  
     }  
     else {  
       showStatus("No image loaded.");  
     }  
   }  
   /**  
    * 'Lighter' function: make the picture lighter  
    */  
   private void showAbout()  
   {  
     JOptionPane.showMessageDialog(frame,  
           "ImageViewer\n" + VERSION,  
           "About ImageViewer",  
           JOptionPane.INFORMATION_MESSAGE);  
   }  
   // ---- support methods ----  
   /**  
    * Display a file name on the appropriate label.  
    * @param filename The file name to be displayed.  
    */  
   private void showFilename(String filename)  
   {  
     if(filename == null) {  
       filenameLabel.setText("No file displayed.");  
     }  
     else {  
       filenameLabel.setText("File: " + filename);  
     }  
   }  
   /**  
    * Display a status message in the frame's status bar.  
    * @param text The status message to be displayed.  
    */  
   private void showStatus(String text)  
   {  
     statusLabel.setText(text);  
   }  
   // ---- swing stuff to build the frame and all its components ----  
   /**  
    * Create the Swing frame and its content.  
    */  
   private void makeFrame()  
   {  
     frame = new JFrame("ImageViewer");  
     makeMenuBar(frame);  
     Container contentPane = frame.getContentPane();  
     // Specify the layout manager with nice spacing  
     contentPane.setLayout(new BorderLayout(6, 6));  
     filenameLabel = new JLabel();  
     contentPane.add(filenameLabel, BorderLayout.NORTH);  
     imagePanel = new imagePanel();  
     contentPane.add(imagePanel, BorderLayout.CENTER);  
     statusLabel = new JLabel(VERSION);  
     contentPane.add(statusLabel, BorderLayout.SOUTH);  
     // building is done - arrange the components and show      
     showFilename(null);  
     frame.pack();  
     Dimension d = Toolkit.getDefaultToolkit().getScreenSize();  
     frame.setLocation(d.width/2 - frame.getWidth()/2, d.height/2 - frame.getHeight()/2);  
     frame.setVisible(true);  
   }  
   /**  
    * Create the main frame's menu bar.  
    * @param frame  The frame that the menu bar should be added to.  
    */  
   private void makeMenuBar(JFrame frame)  
   {  
     final int SHORTCUT_MASK =  
       Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();  
     JMenuBar menubar = new JMenuBar();  
     frame.setJMenuBar(menubar);  
     JMenu menu;  
     JMenuItem item;  
     // create the File menu  
     menu = new JMenu("File");  
     menubar.add(menu);  
     item = new JMenuItem("Open");  
       item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, SHORTCUT_MASK));  
       item.addActionListener(new ActionListener() {  
                 public void actionPerformed(ActionEvent e) { openFile(); }  
               });  
     menu.add(item);  
     item = new JMenuItem("Close");  
       item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, SHORTCUT_MASK));  
       item.addActionListener(new ActionListener() {  
                 public void actionPerformed(ActionEvent e) { close(); }  
               });  
     menu.add(item);  
     menu.addSeparator();  
     item = new JMenuItem("Quit");  
       item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, SHORTCUT_MASK));  
       item.addActionListener(new ActionListener() {  
                 public void actionPerformed(ActionEvent e) { quit(); }  
               });  
     menu.add(item);  
     // create the Filter menu  
     menu = new JMenu("Filter");  
     menubar.add(menu);  
     item = new JMenuItem("Darker");  
       item.addActionListener(new ActionListener() {  
                 public void actionPerformed(ActionEvent e) { makeDarker(); }  
               });  
     menu.add(item);  
     item = new JMenuItem("Lighter");  
       item.addActionListener(new ActionListener() {  
                 public void actionPerformed(ActionEvent e) { makeLighter(); }  
               });  
     menu.add(item);  
     item = new JMenuItem("Threshold");  
       item.addActionListener(new ActionListener() {  
                 public void actionPerformed(ActionEvent e) { threshold(); }  
               });  
     menu.add(item);  
     // create the Help menu  
     menu = new JMenu("Help");  
     menubar.add(menu);  
     item = new JMenuItem("About ImageViewer...");  
       item.addActionListener(new ActionListener() {  
                 public void actionPerformed(ActionEvent e) { showAbout(); }  
               });  
     menu.add(item);  
   }  
 }

2. Class ImagePanel 

--Code--

 import java.awt.*;  
import java.awt.*;  
import javax.swing.*;  
import java.awt.image.*;  
 
 public class imagePanel extends JComponent  
 {  
   // The current width and height of this panel  
   private int width, height;  
   // An internal image buffer that is used for painting. For  
   // actual display, this image buffer is then copied to screen.  
   private ofImage panelImage;  
   /**  
    * Create a new, empty ImagePanel.  
    */  
   public imagePanel()  
   {  
     width = 360;  // arbitrary size for empty panel  
     height = 240;  
     panelImage = null;  
   }  
   /**  
    * Set the image that this panel should show.  
    *  
    * @param image The image to be displayed.  
    */  
   public void setImage(ofImage image)   
   {  
     if(image != null) {  
       width = image.getWidth();  
       height = image.getHeight();  
       panelImage = image;  
       repaint();  
     }  
   }  
   /**  
    * Clear the image on this panel.  
    */  
   public void clearImage()  
   {  
     Graphics imageGraphics = panelImage.getGraphics();  
     imageGraphics.setColor(Color.LIGHT_GRAY);  
     imageGraphics.fillRect(0, 0, width, height);  
     repaint();  
   }  

   /**  
    * Tell the layout manager how big we would like to be.  
    * (This method gets called by layout managers for placing  
    * the components.)  
    *  
    * @return The preferred dimension for this component.  
    */  
   public Dimension getPreferredSize()  
   {  
     return new Dimension(width, height);  
   }  
   /**  
    * This component needs to be redisplayed. Copy the internal image  
    * to screen. (This method gets called by the Swing screen painter  
    * every time it want this component displayed.)  
    *  
    * @param g The graphics context that can be used to draw on this component.  
    */  
   public void paintComponent(Graphics g)  
   {  
     Dimension size = getSize();  
     g.clearRect(0, 0, size.width, size.height);  
     if(panelImage != null) {  
       g.drawImage(panelImage, 0, 0, null);  
     }  
   }  
 }

3. Class ImageFileManager

--Code--

 import java.awt.*;  
import java.awt.image.*;  
import javax.imageio.*;  
import java.io.*;  
 
 public class imageFileManager  
 {  
   // A constant for the image format that this writer uses for writing.  
   // Available formats are "jpg" and "png".  
   private static final String IMAGE_FORMAT = "jpg";  
   /**  
    * Read an image file from disk and return it as an image. This method  
    * can read JPG and PNG file formats. In case of any problem (e.g the file  
    * does not exist, is in an undecodable format, or any other read error)  
    * this method returns null.  
    *  
    * @param imageFile The image file to be loaded.  
    * @return      The image object or null is it could not be read.  
    */  
   public static ofImage loadImage(File imageFile)   
   {  
     try {  
       BufferedImage image = ImageIO.read(imageFile);  
       if(image == null || (image.getWidth(null) < 0)) {  
         return null;  
       }  
       return new ofImage(image);  
     }  
     catch(IOException exc) {  
       return null;  
     }  
   }  
   /**  
    * Write an image file to disk. The file format is JPG. In case of any  
    * problem the method just silently returns.  
    *  
    * @param image The image to be saved.  
    * @param file  The file to save to.  
    */  
   public static void saveImage(ofImage image, File file)  
   {  
     try {  
       ImageIO.write(image, IMAGE_FORMAT, file);  
     }  
     catch(IOException exc) {  
       return;  
     }  
   }  
 }

4. Class OfImage

--Code--

 import java.awt.*;  
import java.awt.*;  
import java.awt.image.*;  
import javax.swing.*;  
 
 public class ofImage extends BufferedImage  
 {  
   /**  
    * Create an OFImage copied from a BufferedImage.  
    * @parameter image The image to copy.  
    */  
   public ofImage (BufferedImage image)  
   {  
      super(image.getColorModel(), image.copyData(null),  
         image.isAlphaPremultiplied(), null);  
   }  
   /**  
    * Create an ofImage with specified size and unspecified content.  
    * @parameter width The width of the image.  
    * @parameter height The height of the image.  
    */  
   public ofImage(int width, int height)  
   {  
     super(width, height, TYPE_INT_RGB);  
   }  
   /**  
    * Set a given pixel of this image to a specified color. The  
    * color is represented as an (r,g,b) value.  
    * @parameter x The x position of the pixel.  
    * @parameter y The y position of the pixel.  
    * @parameter col The color of the pixel.  
    */  
   public void setPixel(int x, int y, Color col)  
   {  
     int pixel = col.getRGB();  
     setRGB(x, y, pixel);  
   }  
   /**  
    * Get the color value at a specified pixel position.  
    * @parameter x The x position of the pixel.  
    * @parameter y The y position of the pixel.  
    * @return The color of the pixel at the given position.  
    */  
   public Color getPixel(int x, int y)  
   {  
     int pixel = getRGB(x, y);  
     return new Color(pixel);  
   }  
   public void darker()  
   {  
     int height = getHeight();  
     int width = getWidth();  
     for(int y = 0; y < height; y++) {  
       for(int x = 0; x < width; x++) {  
         setPixel(x, y, getPixel(x, y).darker());  
       }  
     }  
   }  
   /**  
    * Make this image a bit lighter.  
    */  
   public void lighter()  
   {  
     int height = getHeight();  
     int width = getWidth();  
     for(int y = 0; y < height; y++) {  
       for(int x = 0; x < width; x++) {  
         setPixel(x, y, getPixel(x, y).brighter());  
       }  
     }  
   }  

   public void threshold()  
   {  
     int height = getHeight();  
     int width = getWidth();  
     for(int y = 0; y < height; y++) {  
       for(int x = 0; x < width; x++) {  
         Color pixel = getPixel(x, y);  
         int brightness = (pixel.getRed() + pixel.getBlue() + pixel.getGreen()) / 3;  
         if(brightness <= 85) {  
           setPixel(x, y, Color.BLACK);  
         }  
         else if(brightness <= 170) {  
           setPixel(x, y, Color.GRAY);  
         }  
         else {  
           setPixel(x, y, Color.WHITE);  
         }  
       }  
     }  
   }  
 }

  output:

 

 


Kamis, 24 Oktober 2019

ETS

ETS
Nama: Risky Aswi Narni
NRP : 05111740000014

i-Kios аԁаƖаh mesin mirip ATM уаnɡ memproses kebutuhan  secara mandiri. i-Kios  tersedia di lebih dari 2.000 toko INDOMARET. i-Kios juga bertujuan untuk mempermudah dalam pembayaran produk digital.

Jika ingin Beli Pulsa (all provider), Bayar Online Shopping, Booking tiket KERETA API, Pesan tiket PESAWAT (Citilink, Air Asia, Garuda, Lion Air, Sriwijaya Air), Pesan tiket KONSER, Pesan produk i-DELIVERY semuanya bisa dilakukan di mesin i-Kios.
Contohnya untuk memesan tiket kereta api, cukup memilih stasiun keberangkatan, stasiun tujuan, tanggal keberangkatan, dan јυmƖаh penumpang. Jangan lupa sediakan kartu identitas ԁаn nomor telepon masing-masing penumpang.
SеtеƖаh ѕеmυа tahapan berhasil dilewati, i-Kios аkаn memberi tаhυ struk bіѕа diambil, dan bayar di kasir sesuai ԁеnɡаn pesanan kita.

Sourcode nya: Source Code i-Kios


Rabu, 02 Oktober 2019

Latihan Inheritance


Nama: Risky Aswi Narni
NRP  : 05111740000014
Kelas : PBO-A

LATIHAN INHERITANCE-DATABASE
database akademik yang merupakan program berbahasa java dengan IDE BlueJ dimana dengan kasus ini menerapkan metode inheritance.
dengan class yang saya buat:
  1. Identitas
  2. Pegawai
  3. Dosen
  4. Mahasiswa
  5. Data
  6. Kelas
  7. Buku
  8. Matakuliah

 


-Class Identitas
-Class Pegawai
-Class Dosen

-Class Mahasiswa


-Class Data


-Class Kelas
-Class Buku
-Class  Matakuliah