Skip to main content

3 Rekomendasi Tools Untuk UI/UX Designer Tools Gratis Terbaik 2022

 Tidak dapat dipungkiri bahwa user interface merupakan salah satu komponen penting di dalam sebuah website/aplikasi. Terlepas dari fungsi aplikasinya, sebuah aplikasi harus memiliki tampilan yang baik dan mudah digunakan oleh penggunanya.  Oleh karena itu saat ini banyak perusahaan yang membutuhkan tenaga UI/UX designer untuk menyempurnakan design tampilan pada website/aplikasi mereka. Jika anda berminat untuk menjadi seorang UI/UX designer, berikut rekomendasi UI/UX designer dari saya yang tentunya gratis dan cocok digunakan untuk pemula maupun anda yang sudah lama menggeluti bidang ini. Ga pake lama skuy kita langsung ke rekomendasinya. 1. figma Nah di rekomendasi nomer 1 ini ada figma. Belakangan ini nama figma cukup terkenal di kalangan para UI/UX designer. Figma cukup mudah digunakan bahkan untuk para pemula yang ingin mulai mencoba untuk menggeluti bidang UI/UX designer. Terlebih lagi software ini berbasais web sehinggal anda tidak perlu melakukan instalasi software untu...

Program Konversi Mata Uang Dengan OOP JAVA

Pada postingan kali ini saya akan memberikan contoh program konversi mata uang dari rupiah, ringgit, dolar dan euro di java dengan paradigma OOP. Program yang saya berikan ini berbasis GUI sehingga akan kan user dalam menggunakan program/aplikasi ini nantinya. Baik langsung saja kita masuk ke programnya...

File-file yang ada di program ini berada dalam 1 package.

Uangku.java (main class)

package uangku;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author ASIKIN AJ
 */
public class Uangku extends javax.swing.JFrame {
   
    ArrayList<EntitasData> history = new ArrayList<EntitasData>();
    DefaultTableModel tabelModel;

    /**
     * Creates new form Uangku
     */
    public Uangku() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        hasil = new javax.swing.JTextField();
        input = new javax.swing.JTextField();
        mataUangAsal = new javax.swing.JComboBox<>();
        jSeparator1 = new javax.swing.JSeparator();
        mataUangTujuan = new javax.swing.JComboBox<>();
        keluar = new javax.swing.JButton();
        jSeparator2 = new javax.swing.JSeparator();
        tanggal = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        konversi = new javax.swing.JButton();
        ulang = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        tabel = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setBackground(new java.awt.Color(204, 204, 255));
        jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N
        jLabel1.setText("Nilai Mata Uang      :");
        jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 100, 220, 50));

        jLabel2.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N
        jLabel2.setText("Mata Uang Tujuan  :");
        jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 200, 170, 50));

        jLabel3.setFont(new java.awt.Font("Times New Roman", 3, 24)); // NOI18N
        jLabel3.setText("Uangku");
        jPanel1.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(180, 20, 90, 50));

        jLabel4.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N
        jLabel4.setText("Hasil Nilai Konversi  :");
        jPanel1.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 330, 180, 50));

        jLabel5.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N
        jLabel5.setText("Jenis Mata Uang     :");
        jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 150, 180, 50));
        jPanel1.add(hasil, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 340, 160, 40));
        jPanel1.add(input, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 110, 270, 40));

        mataUangAsal.setBackground(new java.awt.Color(153, 153, 255));
        mataUangAsal.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
        mataUangAsal.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Pilih", "Dolar (USD)", "Rupiah(IDR)", "Ringgit(MYR)", "Euro(EUR)" }));
        jPanel1.add(mataUangAsal, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 160, 270, 40));

        jSeparator1.setBackground(new java.awt.Color(0, 0, 0));
        jSeparator1.setAlignmentX(2.0F);
        jSeparator1.setAlignmentY(1.0F);
        jSeparator1.setCursor(new java.awt.Cursor(java.awt.Cursor.MOVE_CURSOR));
        jPanel1.add(jSeparator1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 320, 520, 10));

        mataUangTujuan.setBackground(new java.awt.Color(153, 153, 255));
        mataUangTujuan.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
        mataUangTujuan.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Pilih", "Dolar (USD)", "Rupiah(IDR)", "Ringgit(MYR)", "Euro(EUR)" }));
        mataUangTujuan.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mataUangTujuanActionPerformed(evt);
            }
        });
        jPanel1.add(mataUangTujuan, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 210, 270, 40));

        keluar.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N
        keluar.setText("Keluar");
        keluar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                keluarActionPerformed(evt);
            }
        });
        jPanel1.add(keluar, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 440, 110, 40));

        jSeparator2.setBackground(new java.awt.Color(0, 0, 0));
        jSeparator2.setAlignmentX(2.0F);
        jSeparator2.setAlignmentY(1.0F);
        jSeparator2.setCursor(new java.awt.Cursor(java.awt.Cursor.MOVE_CURSOR));
        jPanel1.add(jSeparator2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 80, 510, 10));
        jPanel1.add(tanggal, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 260, 200, 40));

        jLabel6.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N
        jLabel6.setText("Tanggal                   :");
        jPanel1.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 250, 180, 50));

        konversi.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N
        konversi.setText("Konversi");
        konversi.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                konversiActionPerformed(evt);
            }
        });
        jPanel1.add(konversi, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 340, 110, 40));

        ulang.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N
        ulang.setText("Ulang");
        ulang.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ulangActionPerformed(evt);
            }
        });
        jPanel1.add(ulang, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 390, 110, 40));

        tabel.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Mata Uang Asal", "Nominal", "Tanggal", "Hasil Konversi"
            }
        ));
        jScrollPane1.setViewportView(tabel);

        jPanel1.add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(530, 70, 400, 320));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 940, Short.MAX_VALUE)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(0, 0, Short.MAX_VALUE)
                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 940, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(0, 0, Short.MAX_VALUE)))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 500, Short.MAX_VALUE)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(0, 0, Short.MAX_VALUE)
                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 500, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(0, 0, Short.MAX_VALUE)))
        );

        pack();
    }// </editor-fold>                        

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

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

    private void konversiActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        if(mataUangAsal.getSelectedItem()=="Dolar (USD)"){
            Dolar dolar = new Dolar(input.getText());
           
            if(mataUangTujuan.getSelectedItem()=="Dolar (USD)"){
                hasil.setText("Rp. "+dolar.toDolar());
            }
            else if(mataUangTujuan.getSelectedItem()=="Rupiah(IDR)"){
                hasil.setText("Rp. "+dolar.toRupiah());
            }
            else if(mataUangTujuan.getSelectedItem()=="Ringgit(MYR)"){
                hasil.setText("Rp. "+dolar.toRinggit());
            }
            else{
                hasil.setText("Rp. "+dolar.toEuro());
            }
        }
        else if(mataUangAsal.getSelectedItem()=="Rupiah(IDR)"){
            Rupiah rupiah = new Rupiah(input.getText());
           
            if(mataUangTujuan.getSelectedItem()=="Dolar (USD)"){
                hasil.setText("Rp. "+rupiah.toDolar());
            }
            else if(mataUangTujuan.getSelectedItem()=="Rupiah(IDR)"){
                hasil.setText("Rp. "+rupiah.toRupiah());
            }
            else if(mataUangTujuan.getSelectedItem()=="Ringgit(MYR)"){
                hasil.setText("Rp. "+rupiah.toRinggit());
            }
            else{
                hasil.setText("Rp. "+rupiah.toEuro());
            }
        }
        else if(mataUangAsal.getSelectedItem()=="Ringgit(MYR)"){
            Ringgit ringgit = new Ringgit(input.getText());
           
            if(mataUangTujuan.getSelectedItem()=="Dolar (USD)"){
                hasil.setText("Rp. "+ringgit.toDolar());
            }
            else if(mataUangTujuan.getSelectedItem()=="Rupiah(IDR)"){
                hasil.setText("Rp. "+ringgit.toRupiah());
            }
            else if(mataUangTujuan.getSelectedItem()=="Ringgit(MYR)"){
                hasil.setText("Rp. "+ringgit.toRinggit());
            }
            else{
                hasil.setText("Rp. "+ringgit.toEuro());
            }
        }
        else{
            Euro euro = new Euro(input.getText());
           
            if(mataUangTujuan.getSelectedItem()=="Dolar (USD)"){
                hasil.setText("Rp. "+euro.toDolar());
            }
            else if(mataUangTujuan.getSelectedItem()=="Rupiah(IDR)"){
                hasil.setText("Rp. "+euro.toRupiah());
            }
            else if(mataUangTujuan.getSelectedItem()=="Ringgit(MYR)"){
                hasil.setText("Rp. "+euro.toRinggit());
            }
            else{
                hasil.setText("Rp. "+euro.toEuro());
            }
        }
       
        isiData(mataUangAsal.getSelectedItem().toString(), input.getText(), tanggal.getText(), hasil.getText());
        tampilData();
       
    }                                        

    private void ulangActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        mataUangAsal.setSelectedIndex(0);
        input.setText("");
        mataUangTujuan.setSelectedIndex(0);
        tanggal.setText("");
        hasil.setText("");
    }                                    

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        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(Uangku.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Uangku.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Uangku.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Uangku.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Uangku().setVisible(true);
            }
        });
    }
   
    public void isiData(String MataUangAsal, String nominal, String tanggal, String hasil){
        EntitasData tambah = new EntitasData(MataUangAsal, nominal, tanggal, hasil);
        history.add(tambah);
    }
   
    public void tampilData(){
        String[] kolom = {"Mata Uang Asal", "Nominal", "Tanggal", "Hasil Konversi"};
        Object[][] data = new Object[history.size()][4];
       
        int i = 0;
        for(EntitasData n : history){
            String[] arrData = {n.getMataUangAsal(), n.getNominal(), n.getTanggal(), n.getHasil()};
            data[i] = arrData;
            i++;
        }
       
        tabelModel = new DefaultTableModel(data, kolom){
            //membuat tabel tidak bisa diedit saat diklik
            @Override
            public boolean isCellEditable(int rowIndex, int colIndex) {
                return false;
            }
        };
       
        tabel.setModel(tabelModel);
    }

    // Variables declaration - do not modify                    
    private javax.swing.JTextField hasil;
    private javax.swing.JTextField input;
    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.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JSeparator jSeparator2;
    private javax.swing.JButton keluar;
    private javax.swing.JButton konversi;
    private javax.swing.JComboBox<String> mataUangAsal;
    private javax.swing.JComboBox<String> mataUangTujuan;
    private javax.swing.JTable tabel;
    private javax.swing.JTextField tanggal;
    private javax.swing.JButton ulang;
    // End of variables declaration                  
}

 

Konversi.java (abstract class)

package uangku;

/**
 *
 * @author ASIKIN AJ
 */
public abstract class Konversi {
    public abstract String toRupiah();
    public abstract String toDolar();
    public abstract String toRinggit();
    public abstract String toEuro();
}


Rupiah.java

package uangku;

/**
 *
 * @author ASIKIN AJ
 */
public class Rupiah extends Konversi{
    double rupiah;
   
    public Rupiah(String rupiah){
        this.rupiah = Double.parseDouble(rupiah);
    }
   
    @Override
    public String toRupiah(){
        return Double.toString(this.rupiah);
    }
   
    @Override
    public String toDolar(){
        this.rupiah *= 0.000069;
        return Double.toString(this.rupiah);
    }
   
    @Override
    public String toRinggit(){
        this.rupiah *= 0.00029;
        return Double.toString(this.rupiah);
    }
   
    @Override
    public String toEuro(){
        this.rupiah *= 0.000061 ;
        return Double.toString(this.rupiah);
    }
   
}


Ringgit.java

package uangku;

/**
 *
 * @author ASIKIN AJ
 */
public class Ringgit extends Konversi{
    double ringgit;
   
    public Ringgit(String ringgit){
        this.ringgit = Double.parseDouble(ringgit);
    }
   
    @Override
    public String toRupiah(){
        this.ringgit *= 3433.23;
        return Double.toString(this.ringgit);
    }
   
    @Override
    public String toDolar(){
        this.ringgit *= 0.24;
        return Double.toString(this.ringgit);
    }
   
    @Override
    public String toRinggit(){
        return Double.toString(this.ringgit);
    }
   
    @Override
    public String toEuro(){
        this.ringgit *= 0.21 ;
        return Double.toString(this.ringgit);
    }
}


Dolar.java

package uangku;

/**
 *
 * @author ASIKIN AJ
 */
public class Dolar extends Konversi{
    double dolar;
   
    public Dolar(String dolar){
        this.dolar = Double.parseDouble(dolar);
    }
   
    @Override
    public String toRupiah(){
        this.dolar *= 14526.05;
        return Double.toString(this.dolar);
    }
   
    @Override
    public String toDolar(){
        return Double.toString(this.dolar);
    }
   
    @Override
    public String toRinggit(){
        this.dolar *= 4.23;
        return Double.toString(this.dolar);
    }
   
    @Override
    public String toEuro(){
        this.dolar *= 0.88;
        return Double.toString(this.dolar);
    }
}


Euro.java

package uangku;

/**
 *
 * @author ASIKIN AJ
 */
public class Euro extends Konversi{
    double euro;
   
    public Euro(String euro){
        this.euro = Double.parseDouble(euro);
    }
   
    @Override
    public String toRupiah(){
        this.euro *= 16428.86;
        return Double.toString(this.euro);
    }
   
    @Override
    public String toDolar(){
        this.euro *= 1.13;
        return Double.toString(this.euro);
    }
   
    @Override
    public String toRinggit(){
        this.euro *= 4.79 ;
        return Double.toString(this.euro);
    }
   
    @Override
    public String toEuro(){
        return Double.toString(this.euro);
    }
}


EntitasData.java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package uangku;

/**
 *
 * @author ASIKIN AJ
 */
public class EntitasData {
    private String MataUangAsal;
    private String nominal;
    private String tanggal;
    private String hasil;
   
    public EntitasData(String MataUangAsal, String nominal, String tanggal, String hasil) {
        this.MataUangAsal = MataUangAsal;
        this.nominal = nominal;
        this.tanggal = tanggal;
        this.hasil = hasil;
    }
   
    public String getMataUangAsal(){
        return this.MataUangAsal;
    }
   
    public String getNominal(){
        return this.nominal;
    }
   
    public String getTanggal(){
        return this.tanggal;
    }
   
    public String getHasil(){
        return this.hasil;
    }
   
}


Keterangan:

- Class Uangku.java merupakan main class atau class yang pertama kali dipanggil saat program dijalankan.

- Class Konversi.java merupakan abstract class yang berisi 4 abstract method dimana nantinya semua abstract method ini akan diOverride pada masing-masing class yang melakukan extends(inheritence) ke abstract class ini.

- Class Rupiah.java berisi 4 method yang merupakan override dari parent classnya (Konversi.java) yang masing-masing methodnya digunakan untuk mengkonversi mata uang dari rupiah ke ringgit/dolar/euro.

- Class Ringgit.java berisi 4 method yang merupakan override dari parent classnya (Konversi.java) yang masing-masing methodnya digunakan untuk mengkonversi mata uang dari ringgit ke rupiah/dolar/euro.

- Class Dolar.java berisi 4 method yang merupakan override dari parent classnya (Konversi.java) yang masing-masing methodnya digunakan untuk mengkonversi mata uang dari dolar ke rupiah/ringgit/euro.

- Class Euro.java berisi 4 method yang merupakan override dari parent classnya (Konversi.java) yang masing-masing methodnya digunakan untuk mengkonversi mata uang dari euro ke rupiah/ringgit/dolar.

- Class EntitasData.java digunakan untuk membantu program menginputkan data history konversi kedalam ArrayList yang nantinya data di dalam ArrayList tersebut akan ditampilkan di dalam tabel.


Tampilan Program:

Sekian dari saya, jika ada kritik/saran silahkan tinggalkan di kolom komentar. Terima kasih telah berkunjung :)

Comments

Popular posts from this blog

Program C Insert Terurut dan Delete Tertentu Dengan Struct

Pada postingan kali ini saya akan memberikan contoh program C sederhana menggunakan struct untuk input data terurut dan delete data tertentu. Ga usah basa-basi lagi langsung aja skuy kita ke code programnya. #include <stdio.h> #include <stdlib.h> typedef struct simpul dnode; struct simpul{     int data;     dnode *next, *prev; }; dnode *head=NULL, *p; int choose; //MENU void menu(); //URUT void sortir(); //ALOKASI void alokasi(); //INSERT void akhir(); void before(int ); //DELETE void del_awal(); void del_akhir(); void del_ttt(); void bebas(dnode *b); //CETAK void tampil(); int main() {     do{         puts("MENU DLL :");         puts("1. Insert Terurut");         puts("2. Delete Tertentu");         puts("3. Keluar");         printf("Masukkan pilihan anda : ");         scanf("%d", &choose);         fflus...

Program Konversi Bilangan Dengan OOP JAVA

Pada postingan kali ini saya akan memberikan contoh program konversi mata bilangan dari desimal, biner, oktal dan hexadesimal di java dengan paradigma OOP. Program yang saya berikan ini berbasis GUI sehingga akan kan user dalam menggunakan program/aplikasi ini nantinya. Baik langsung saja kita masuk ke programnya... File-file yang ada di program ini berada dalam 1 package. Konversi_bilangan.java (main class) package konversi_bilangan; import java.util.ArrayList; import javax.swing.table.DefaultTableModel; /**  *  * @author ASIKIN AJ  */ public class Konversi_bilangan extends javax.swing. JFrame {     /**      * Creates new form Konversi_bilangan      */         ArrayList < EntitasData > history = new ArrayList < EntitasData >();     DefaultTableModel tabelModel ;         public Konversi_bilangan () {         initComponents ();   ...

3 Rekomendasi Tools Untuk UI/UX Designer Tools Gratis Terbaik 2022

 Tidak dapat dipungkiri bahwa user interface merupakan salah satu komponen penting di dalam sebuah website/aplikasi. Terlepas dari fungsi aplikasinya, sebuah aplikasi harus memiliki tampilan yang baik dan mudah digunakan oleh penggunanya.  Oleh karena itu saat ini banyak perusahaan yang membutuhkan tenaga UI/UX designer untuk menyempurnakan design tampilan pada website/aplikasi mereka. Jika anda berminat untuk menjadi seorang UI/UX designer, berikut rekomendasi UI/UX designer dari saya yang tentunya gratis dan cocok digunakan untuk pemula maupun anda yang sudah lama menggeluti bidang ini. Ga pake lama skuy kita langsung ke rekomendasinya. 1. figma Nah di rekomendasi nomer 1 ini ada figma. Belakangan ini nama figma cukup terkenal di kalangan para UI/UX designer. Figma cukup mudah digunakan bahkan untuk para pemula yang ingin mulai mencoba untuk menggeluti bidang UI/UX designer. Terlebih lagi software ini berbasais web sehinggal anda tidak perlu melakukan instalasi software untu...