Rabu, 10 Juli 2019

FSA&Grammar Automata UAS


                Nama    : Muhammad Sidiq Jaelani Pangestu
                Kelas     : 05TPLM003
NIM       : 161021450502
1.      Pengertian Finite State Automata (FSA)
Finite state automata adalah mesin abstrak berupa sistem model matematika dengan masukan dan keluaran diskrit yang dapat mengenali bahasa paling sederhana (bahasa reguler) dan dapat diimplementasikan secara nyata.
Finite State Automata (FSA) adalah model matematika yang dapat menerima input dan mengeluarkan output yang memiliki state yang berhingga banyaknya dan dapat berpindah dari satu state ke state lainnya berdasarkan input dan fungsi transisi. Finite state automata tidak memiliki tempat penyimpanan/memory, hanya bisa mengingat state terkini.
Finite State Automata dinyatakan oleh pasangan 5 tuple, yaitu:
M=(Q , Σ , δ , S , F )
Q = himpunan state
Σ = himpunan simbol input
δ = fungsi transisi δ : Q × Σ
S = state awal / initial state , S
∈ Q
F = state akhir, F
⊆ Q
Karakteristik Finite Automata
a.       Setiap Finite Automata memiliki keadaan dan transisi yang terbatas.
b.      Transisi dari satu keadaan ke keadaan lainnya dapat bersifat deterministik atau non-deterministik.
c.       Setiap Finite Automata selalu memiliki keadaan awal.
d.      Finite Automata dapat memiliki lebih dari satu keadaan akhir.
jika setelah pemrosesan seluruh string, keadaan akhir dicapai, artinya otomata menerima string tersebut.

Setiap FSA memiliki:
a.       Himpunan berhingga (finite) status (state)
- Satu buah status sebagai status awal (initial state), biasa dinyatakan q0.
- Beberapa buah status sebagai status akhir (final state).
b.      Himpunan berhingga simbol masukan.
c.       Fungsi transisi Menentukan status berikutnya dari setiap pasang status dan sebuah simbol masukan.


Mesin Abstrak FSA
Diagram :

Deskripsi format penulisan M({Q,Σ,δ,S,F}):
1.      Q = (q0,q1,q2,q3,q4,q5)                                               
2.      Σ = (0,1)
3.      δ = is described as
δ
0
1
q0
q0
-
q1
q1
q1,q4
q2
-
q3
q3
q3
q5,q4
q4
q1
-
q5
-
-

4.      S = q0 is the start
5.      F = q
Uji input :


2.      Pengertian Grammar
Grammar adalah bentuk mesin abstrak yang dapat diterima (accept) untuk membangkitkan suatu kalimat otomata berdasarkan suatu kalimat berdasarkan suatu aturan tertentu.
Mesin Abstrak Grammar
Tata bahasa Grammar di definisikan dengan 4 Tupel, G = ({V,T,P,S}) dimana :
V =Humpinan symbol variable / non terminal
T =Himpunan symbol terminal
P =kumpulan aturan produksi
S = Simbol awal


Jadi q2 = (S) lewat jalur b menuju q4 = (E) ditulis S => bE
Secara formal dapat ditulis :
V = {S,E,A,B,C}
T = {a,b}
P = { S => bE, E=> A| B, E => aA | b,A=> b| C=>a}
S = S (Start)



 

Selasa, 09 Januari 2018

Aplikasi Penjualan Sepatu Sederhana Terintegrasi Database

Assalammualaikum, Wr.Wb. selamat pagi teman, pagi ini saya akan memperkenalkan aplikasi penjualan sepatu sederhana dan terintegrasi ke database, yang saya buat dengan menggunakan program aplikasi netbean.
Aplikasi ini nantinya akan menghitung jumlah harga yang harus dibayarkan dan mencatatnya kedalam data base.


Setelah membuka aplikasi, anda tinggal menginput kode produk, bahan, merk, ukuran, harga, dan banyaknya.  Seperti contoh dibawah berikut 


Berikutnya kita hanya perlu mengklik tombol hitung, maka secara otomatis, aplikasi akan menghitung total keseluruhan harga item. Sepeti gambar dibawah






 Langkah berikutnya , kita hanya perlu menyimpanya ke dalam database  dengan cara mengklik tombol simpan, apabila berhasil maka akan tampil gambar di bawah ini .


 
Jika sudah berhasil, maka kita hanya perlu mengklik tombol convert dan melihat table data transaksi yang tersimpan di database


Berikut saya akan berikan tampilan structure database di php myadmin :




Nah itu dia tadi langkah langkah penggunaannya, sekarang saya akan membagikan coding dari aplikasi tadi kepada anda :
private void hitungActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        int harga=Integer.parseInt(txtharga.getText());
        int banyaknya=Integer.parseInt(txtbanyaknya.getText());
        int hasil=harga*banyaknya;
        txttotalharga.setText(""+hasil);

rivate void simpanActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
         try{
            String host  = "jdbc:mysql://localhost:3306/dbjualsepatu",
             user        ="root",
             pass        ="";
          Connection con = (Connection) DriverManager.getConnection(host, user, pass);
  
        int kodeproduk=Integer.parseInt(txtkodeproduk.getText());
        String merk=txtmerk.getText();
        int ukuran=Integer.parseInt(txtukuran.getText());
        String bahan=txtbahan.getText();
        int harga=Integer.parseInt(txtharga.getText());
        int banyaknya=Integer.parseInt(txtbanyaknya.getText());
        int totalbayar=Integer.parseInt(txttotalharga.getText());
       
       
       Statement st=con.createStatement();
       st.executeUpdate("INSERT INTO  tabeljualsepatu  ( kode_produk ,  merk , ukuran,  bahan, harga, banyaknya, total_bayar )"
               + " VALUES ( "+kodeproduk+",'"+merk+"',"+ukuran+" ,'"+bahan+"',"+harga+", "+banyaknya+","+totalbayar+")");
       st.close();
       JOptionPane.showMessageDialog(null,"Berhasil");

        } catch (SQLException err){
        JOptionPane.showMessageDialog(null,err.getMessage());
             
        }


  private void convertActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
             buka_db();
        try {
    
        koneksi.createStatement();
        Map<String, Object> maps = new HashMap<String, Object>();
        JasperReport JRP = JasperCompileManager.compileReport("src/sidiq/jualsepatu.jrxml");
        JasperPrint JFILL = JasperFillManager.fillReport(JRP, maps, koneksi);
        JasperViewer.viewReport(JFILL, false);

    } catch (Exception rptexcpt) {
        JOptionPane.showMessageDialog(null, "Salah Report");
        System.out.println(rptexcpt);
    }



Rabu, 01 November 2017

Penggunaan Aplikasi Penjualan Aksesoris Sepeda Motor

YAMAHA BYSON JARI JARI
Byson Jari Jari gambot



Assalammualaikum warahmatullahi wabarahkatuh. Selamat siang,  ini kali pertamanya saya mengunggah post, di blog saya dan siang ini saya akan memeberikan tutorial kepada anda cara mengoperasikan aplikasi penjualan Toko Aksesoris Sepeda Motor Switch.
Aplikasi ini nantinya akan menunjukan informasi mengenai barang yang akan dijual, seperti foto barang, nama barang, spesifikasi barang, dan juga harga, tentunya aplikasi bisa melakukan perhitungan aritmatika untuk mengetahui berapa total harga untuk banyak barang yang di beli. Tidak hanya itu, aplikasi ini juga akan mewajibkan penggunanya melakukan login terlebih dahulu sebelum menggunakannya, sehingga akan lebih aman.

Sebelum kita memulai, saya akan memberikan script yang saya gunakapan pada aplikasi yang akan kita buat, akan saya mulai dari memberikan script untuk membangun form login :

private void btnhapusActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        txtusername.setText("");
        txtpassword.setText("");
    }                                       

    private void btnexitActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        dispose();
    }






Setelah anda berhasil login, anda akan dibawa menuju tampilan utama, seperti berikut




Setelah muncul menu utama aplikasi, anda hanya perlu mengklik jenis barang yang dibeli, sebagai contoh saya akan memilih spion. Dan akan muncul tampilan seperti gambar berikut.




Pada tampilan diatas, anda akan diberikan informasi mengenai spesifikasi barang, dan harga. Untuk mengetahui total keseluruhan barang yang dibeli, anda hanya perlu memasukan angka pada kolo “banyaknya beli” dan secara otomatis komputer akan menghitung, berapa total harga barang yang dibeli dengan banyaknya barang yang di beli. Seperti gambar di bawah ini.






Setelah selesai, anda bisa mengnklik tombol exit yang telah tersedia, atau bisa menyimpan data transaksi ada dengan menekan tombol “Ctrl+S” atau dengan mengklik menu bar “file -> save”.Sebelum menutup perjumpaan kita, saya akan sangat senang untuk berbagi ilmu, script untuk membangun menubar diatas adalah sebagai berikut

private void CustomActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        txtsatuan.setText("1000000");
        txtnama.setText("Custom IRON MAN");
        JLabel label_gambar7=new JLabel(new ImageIcon ("src/gambar/IRON MAN.jpg"));
       
        //k,y,lebar,tinggi
        label_gambar7.setBounds(2,2,2,2);
        label_gambar7.setSize(200,200);
        panel_tempat_gambar.add(label_gambar7);
        panel_tempat_gambar.revalidate();
        panel_tempat_gambar.repaint();
    }                                     

    private void txthapusActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        txtnama.setText("");
        txtjumlah.setText("");
        txtsatuan.setText("");
        txttotal.setText("");
        Fullface.setSelected(false);
        Halfface.setSelected(false);
        Trail.setSelected(false);
        Retro.setSelected(false);
        Custom.setSelected(false);
        Modular.setSelected(false);
        Supermoto.setSelected(false);
        panel_tempat_gambar.removeAll();
    }                                       

    private void FullfaceActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        txtsatuan.setText("500000");
        txtnama.setText("AGV Pista GP R");
        JLabel label_gambar1=new JLabel(new ImageIcon("src/gambar/AGV Pista GP R.jpg"));
       
        //k,y,lebar,tinggi
        label_gambar1.setBounds(0,0,0,0);
        label_gambar1.setSize(200,200);
        panel_tempat_gambar.add(label_gambar1);
        panel_tempat_gambar.revalidate();
        panel_tempat_gambar.repaint();
    }                                       

    private void HalffaceActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        txtsatuan.setText("250000");
        txtnama.setText("KYT Romeo");
        JLabel label_gambar2=new JLabel(new ImageIcon ("src/gambar/KYT Romeo.jpg"));
       
        //k,y,lebar,tinggi
        label_gambar2.setBounds(2,2,2,2);
        label_gambar2.setSize(200,200);
        panel_tempat_gambar.add(label_gambar2);
        panel_tempat_gambar.revalidate();
        panel_tempat_gambar.repaint();
    }                                       

    private void SupermotoActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        txtsatuan.setText("450000");
        txtnama.setText("Snail MX311");
        JLabel label_gambar3=new JLabel(new ImageIcon ("src/gambar/Snail MX311.jpg"));
       
        //k,y,lebar,tinggi
        label_gambar3.setBounds(2,2,2,2);
        label_gambar3.setSize(200,200);
        panel_tempat_gambar.add(label_gambar3);
        panel_tempat_gambar.revalidate();
        panel_tempat_gambar.repaint();
    }                                        

    private void ModularActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        txtsatuan.setText("550000");
        txtnama.setText("MDS Pro Rider");
        JLabel label_gambar4=new JLabel(new ImageIcon ("src/gambar/MDS Pro Rider.jpg"));
       
        //k,y,lebar,tinggi
        label_gambar4.setBounds(2,2,2,2);
        label_gambar4.setSize(200,200);
        panel_tempat_gambar.add(label_gambar4);
        panel_tempat_gambar.revalidate();
        panel_tempat_gambar.repaint();
    }                                      

    private void RetroActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        txtsatuan.setText("300000");
        txtnama.setText("LS2 OF583");
        JLabel label_gambar5=new JLabel(new ImageIcon ("src/gambar/LS2 OF583.jpg"));
       
        //k,y,lebar,tinggi
        label_gambar5.setBounds(2,2,2,2);
        label_gambar5.setSize(200,200);
        panel_tempat_gambar.add(label_gambar5);
        panel_tempat_gambar.revalidate();
        panel_tempat_gambar.repaint();
       
    }                                    

    private void TrailActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        txtsatuan.setText("450000");
        txtnama.setText("GM Cross");
        JLabel label_gambar6=new JLabel(new ImageIcon ("src/gambar/GM Cross.jpg"));
       
        //k,y,lebar,tinggi
        label_gambar6.setBounds(2,2,2,2);
        label_gambar6.setSize(200,200);
        panel_tempat_gambar.add(label_gambar6);
        panel_tempat_gambar.revalidate();
        panel_tempat_gambar.repaint();
    }                                    

    private void txthitungActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        int a=Integer.parseInt(txtsatuan.getText());
        int b=Integer.parseInt(txtjumlah.getText());
        int hasilnya=a*b;
        txttotal.setText(""+hasilnya);

    }