Selasa, 14 Mei 2019

Cara koneksi java dengan data base mysql beserta CRUD (Read/select, Insert, Update, dan Delete)

Pertama, kita pastikan sudah menginstall aplikasi xampp, dan telah membuat data base. Disini database yang saya buat bernama “javadbc”. Dan jangan lupa membuat table baru, saya beri nama "identitas" yang berisi 2 kolom yaitu nama dan nim. saya hanya memberikan sedikit gambar, mungkin teman-teman juga sudah sangat faham cara menggunakan aplikasi xampp.




Lalu pada aplikasi Netbeans kita buat kelas koneksi, dan jangan lupa tambahkan library MySQL JDBC Driver, dengan klik kanan pada library >> add library.





Setelah itu kita buka kelas koneksi yang telah kita buat tadi, juga perlu kita import berikut ini :

package TUGAS6;
import java.io.*;
import java.sql.*;

kedua, pada kelas koneksi isikan jdbc driver, url, user, pass, dan lain-lain. Gunanya agar bisa di akses seluruh yang ada pada kelas ini.

public class koneksi {

    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static final String url = "jdbc:mysql://localhost/javadbc";
    static final String user = "root";
    static final String pass = "";

    static InputStreamReader inputStreamReader = new InputStreamReader(System.in);
    static BufferedReader input = new BufferedReader(inputStreamReader);

    public static Connection con;
    public static Statement stm;
    static ResultSet rs;
}





Kita buat method bernama insertIdentitas, yang kita gunakan sebagai proses insert data ke dalam data base, meliputi inputan nama dan nim. 

static void insertIdentitas() {
        try {
           
            // ambil input dari user
            System.out.println("\n=============================");
            System.out.println("Insert ");
            System.out.println("NIM: ");
            int nim = Integer.parseInt(input.readLine().trim());
            System.out.println("Nama: ");
            String nama = input.readLine().trim();

            // query simpan
            String sql = "INSERT INTO identitas (nim, nama) VALUE('%s', '%s')";
            sql = String.format(sql, nim, nama);

            // simpan
            stm.execute(sql);
            System.out.println("Data Berhasil di Tambah ");
        } catch (Exception e) {
            System.err.println("\nInsert gagal" + e.getMessage());
        }

    }



Method yang kedua bernama updateIdentitas, yang kita gunakan untuk memproses update data yang ada pada database. Nanti kita menginputkan nim yang sudah ada dalam database(yang akan kita update), lalu menginputkan nama baru yang akan kita masukkan dalam data tersebut.

static void updateIdentitas() {
        try {
            System.out.println("=============================");
            System.out.println("Update");
            // ambil input dari user
            System.out.println("nim yang mau diedit: ");
            int nim = Integer.parseInt(input.readLine());
            System.out.println("nama baru: ");
            String nama = input.readLine().trim();
          
            // query update
            String sql = "UPDATE identitas SET nama='%s' WHERE nim=%d";
            sql = String.format(sql, nama, nim);

            // update data
            stm.execute(sql);
        System.out.println("Data Berhasil di Update ");
        } catch (Exception e) {
            System.err.println("update gagal" + e.getMessage());
        }
    }


 
Yang ke tiga kita buat method deleteIdentitas, yang kita gunakan untuk memproses delete data dalam database yang ada. Dalam proses delete ini kita hanya menginputkan nim saja.

static void deleteIdentitas() {
        try {
            System.out.println("=============================");
            System.out.println("Delete");
            // ambil input dari user
            System.out.println("nim yg mau di hapus: ");
            int nim = Integer.parseInt(input.readLine());
           
            // buat query hapus
            String sql = String.format("DELETE FROM identitas WHERE nim=%d", nim);

            // hapus data
            stm.execute(sql);
           
            System.out.println("Data telah terhapus...");
        } catch (Exception e) {
            System.err.println("delete gagal" + e.getMessage());
        }
    }
}



Dan yang terakhir adalah pada main, kita disini menuliskan koding untuk proses koneksi dan read data.
Sedangkan  insert, update, dan delete yang kita panggil dari method yang telah kita buat.

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

            con = DriverManager.getConnection(url, user, pass);
            stm = con.createStatement();
            System.out.println("koneksi berhasil;");
           
        } catch (Exception e) {
            System.err.println("koneksi gagal" + e.getMessage());
        }
       
//READ/SELECT 
       
    ResultSet rs = stm.executeQuery("SELECT * FROM identitas");
    System.out.println("\nData Identitas ");
    while (rs.next()){
       
        int nim=rs.getInt("nim");
        String nama=rs.getString("nama");
        System.out.format(nama +" "+nim+"\n ");
    }
    //stm.close();
    insertIdentitas();
    updateIdentitas();
    deleteIdentitas();
    }

berikut adalah hasil outputnya :


 semoga bermanfaat.. :)

KRIPTOGRAFI HILL CHIPPER MENGGUNAKAN MICROSOFT EXCEL


Sebelumnya, ini adalah tugas mata kuliah aljabar linier & matriks saya yang berhubungan dengan bidang komputer. Semoga postingan saya ini bisa membantu teman-teman.



Dalam postingan saya kali ini adalah cara mengaplikasikan kriptografi hill chiper menggunakan Microsoft excel, yang meliputi enkripsi dan deskripsi. 




ENKRIPSI

Enkripsi merupakan proses merubah plain text menjadi bentuk chipper text dengan cara berikut :



Keterangan :
1.       Buat table indeks huruf sebagai rujukan angka yang akan dihitung sesuai dengan huruf yang telah kita masukkan.
Disini saya hanya menggunakan huruf A-Z (huruf capital)
2.       Pada baris kuning horizontal adalah untuk inputan kata(plain text) , sedangkan kolom putih dibawahnya adalah angka masing-masing huruf yang telah diinputkan. Gunanya adalah untuk proses perhitungan matriks untuk mendapatkan chipper text nya.
3.       Kolon abu-abu (key) merupakan kunci yang berupa matriks berordo 2x2 dan akan dikalikan dengan per-2 huruf dari inputan kita. Seperti pada gambar di atas.
4.       Setelah menemukan hasil perkalian matriks , hasilnya di modulo 26 (di dapat dari jumlah huruf yang ada pada kolom indeks huruf adalah berjumlah 26)
5.       Dan yang terakhir adalah hasil dari modulo diubah menjadi huruf (chipper text). Ditunjukkan dengan baris orange.
6.       Rumus pada excel yang saya gunakan adalah VLOOKUP dari table yang dirujuk, rumus perkalian, dan MOD untuk menghitung modulo.





DESKRIPSI

Deskripsi merupakan proses merubah chipper text ke dalam bentuk plain text. Dalam arti lain, deskripsi merupakan proses mendeskripsikan/mengartikan chipper text (kebalikan dari enkripsi).
Caranya adalah sebagai berikut :
 


Keterangan :
1.       Table yang kita gunakan tetap pada seperti pada enkripsi.
2.       Baris berwarna orange disini sebagai chipper text yang akan dideskripsikan ke dalam bentuk plain text. Sedangkan baris berwarna kuning adalah hasil deskripsi yang telah berbentuk plain text.
3.       Proses perkalian, dan modulo tetap sama, akan tetapi yang digunakan untuk mengalikan bukan lagi dari key , melainkan perhitungan pada kolom berwarna coklat (bawah).
4.       K=0 disitu berarti jika k=0 = (1+26*0)/determinan yaitu 3 dan menghasilkan 1/3. K=1 berarti jika k=1 = (1+26*1)/determinan yaitu 3 dan menghasilkan 9. Dan K^-1  disitu berarti jika k^-1 = 9
5.       K^-1 = matriks kunci baris 1 kolom 1 ditukar dengan baris 2 kolom 2, dan baris 1 kolom 2 dengan baris 2 kolom 1 dijadikan negative.
6.       Lali kalikan dan hitung modulonya, hasilnya inilah yang digunakan sebagai perkalian proses deskripsi.
7.       Rumus pada excel yang saya gunakan adalah VLOOKUP dari table yang dirujuk, rumus perkalian, penambahan, pembagian, dan MOD untuk menghitung modulo.



 sekian ya penjelasan mengenai kriptografi hill chipper, lebis lengkapnya bisa baca-baca di referensi lain. semoga bermanfaat :)

Kamis, 09 Mei 2019

Cara Membuat Kalkkulator Matriks Ordo 3*3 dengan Java Netbeans

 

 

Tentunya dengan desain kalkulator matriks sederhana tersebut, kita bisa membuat kelas JFrame Form hingga mendesain sendiri sesuai dengan keinginan hati kita.

Di dalam tulisan ini saya hanya akan berbagi coding dan sedikit penjelasannya.

 

Di bawah ini adalah koding membuat posisi tampilan berada di tengah dan memberikan judul, menyetting agar tombol button berfungsi untuk pemilihan antara tombol penjumlahan, pengurangan, dan perkalian.

public KalkulatorMatrix() {
        initComponents();
        this.setTitle("KALKULATOR MATRIKS");
        this.setLocationRelativeTo(this);
       
        ButtonGroup bG = new ButtonGroup();
        bG.add(TombolPenjumlahan);
        bG.add(TombolPengurangan);
        bG.add(TombolPerkalian);
        if(TombolPenjumlahan.isSelected()){
                }
        else if(TombolPengurangan.isSelected()){
    }
        else{}
    }


Nah, di sini saya akan memberikan koding perhitungan matriks yang mana koding ini diletakkan pada fungsi tombol button. Sesuaikan juga dengan nama textfield sebagai inputan angka yang akan di hitung dan juga pada textfield untuk output hasil perhitungan. 

 

int A[][] = new int[2][2];
int B[][] = new int[2][2];
int C[][] = new int[2][2];

        A[0][0] = Integer.parseInt(A11.getText());
        A[0][1] = Integer.parseInt(A12.getText());
        A[1][0] = Integer.parseInt(A21.getText());
        A[1][1] = Integer.parseInt(A22.getText());

        B[0][0] = Integer.parseInt(B11.getText());
        B[0][1] = Integer.parseInt(B12.getText());
        B[1][0] = Integer.parseInt(B21.getText());
        B[1][1] = Integer.parseInt(B22.getText());


Pada bagian ini, maksud dari koding adalah jika kita memilih antara tombol penjumlahan, pengurangan, dan perkalian maka akan keluar Dialog pilihan kita. Setelah kita tekan tombol OK, maka perhitungan juga akan diproses sesuai dengan operasi pilihan kita dan akan ditampilkan hasil pada kolom output.

        if (TombolPenjumlahan.isSelected()) {
            // Hitung Matrik Penjumlahan

            for(int b=0 ; b<A.length; b++){
                for(int k = 0; k<A[0].length;k++){
                    C[b][k]=A[b][k] + B[b][k];
               }
           
            }

            JOptionPane.showMessageDialog(null, "Anda Memilih Operasi Penjumlahan");
           
        } else if (TombolPengurangan.isSelected()) {
            // Hitung Matrik Pengurangan

          for (int b = 0; b < A.length; b++) {
                for (int k = 0; k < A[0].length; k++) {
                    C[b][k] = A[b][k] - B[b][k];
                }
            }

            JOptionPane.showMessageDialog(null, "Anda Memilih Operasi Pengurangan");
           
        } else if (TombolPerkalian.isSelected()) {
            for (int b = 0; b < 1; b++) {
                for (int i = 0; i < 2; i++) {
                    for (int l = 0; l < 2; l++) {
                        for (int k=0; k<2; k++){
                        C[i][l] = A[i][b] * B[b][l] + A[i][k] * B[k][l];
                        }
                    }
                }
            }
            //Hitung Matrik Perkalian
            JOptionPane.showMessageDialog(null, "Anda Memilih Operasi Perkalian");
          
        }
         C11.setText(String.valueOf(C[0][0]));
        C12.setText(String.valueOf(C[0][1]));
        C21.setText(String.valueOf(C[1][0]));
        C22.setText(String.valueOf(C[1][1]));
    }                                      


Teman-teman bisa menggunakan postingan saya ini sebagai referensi. Semoga bermanfaat dan sedikit membantu. :)

Cara mencari nilai median dan modus menggunakan bahasa c++

Median adalah nilai tengah pada sebuah data yang telah diurutkan, sedangkan modus merupakan nilai yang sering muncul. Tentu sebelum ...