Project Java: Membuat Aplikasi Konversi Mata Uang dengan GUI

Project Java: Membuat Aplikasi Konversi Mata Uang dengan GUI

Project Java: Membuat Aplikasi Konversi Mata Uang

Membuat aplikasi konversi mata uang menggunakan Java dengan GUI adalah proyek yang menarik dan bermanfaat. Dalam artikel ini, kita akan membahas cara membuat aplikasi konversi mata uang sederhana. Proyek ini menggunakan Java Swing untuk antarmuka pengguna dan nilai tukar mata uang yang telah ditentukan secara manual.

Artikel ini dirancang untuk pemula yang ingin mempelajari Java GUI dan logika pemrograman dasar. Mari kita mulai!

Apa yang Akan Kita Buat?

Kita akan membuat aplikasi konversi mata uang dengan fitur berikut:

  1. Input Nilai: Pengguna dapat memasukkan nilai yang ingin dikonversi.
  2. Pilih Mata Uang: Pengguna dapat memilih mata uang sumber dan mata uang target.
  3. Output Hasil Konversi: Menampilkan hasil konversi mata uang.
  4. Antarmuka Pengguna: Menggunakan Java Swing untuk membuat tampilan yang menarik.

Tools dan Teknologi yang Dibutuhkan

  1. JDK (Java Development Kit): Untuk menulis dan menjalankan kode Java.
  2. IDE (Integrated Development Environment): Seperti IntelliJ IDEA, Eclipse, atau NetBeans.
  3. Library Java Swing: Untuk membuat antarmuka pengguna.

Langkah 1: Persiapan Proyek

  1. Buat Project Baru:
    • Buka IDE Anda dan buat project Java baru.
    • Beri nama project CurrencyConverter.
  2. Buat Class Utama:
    • Klik kanan pada folder src > New > Java Class.
    • Beri nama CurrencyConverterApp.

Langkah 2: Membuat GUI dengan Java Swing

1. Membuat Jendela Utama

Buat class CurrencyConverterApp dan tambahkan kode berikut:

java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class CurrencyConverterApp extends JFrame {
    private JTextField amountField;
    private JTextArea resultArea;
    private JComboBox<String> fromCurrencyCombo, toCurrencyCombo;

    public CurrencyConverterApp() {
        setTitle("Aplikasi Konversi Mata Uang Azroi");
        setSize(500, 400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        initUI();
    }

    private void initUI() {
        // Panel utama dengan tata letak BorderLayout
        JPanel panel = new JPanel(new BorderLayout());

        // 1. Panel Input
        JPanel inputPanel = new JPanel();
        inputPanel.setLayout(new FlowLayout());

        amountField = new JTextField(10);
        JButton convertButton = new JButton("Konversi");

        inputPanel.add(new JLabel("Masukkan Nilai:"));
        inputPanel.add(amountField);
        inputPanel.add(convertButton);

        // 2. Panel Mata Uang
        JPanel currencyPanel = new JPanel();
        currencyPanel.setLayout(new FlowLayout());

        String[] currencies = {"USD", "IDR", "EUR", "JPY", "GBP"};
        fromCurrencyCombo = new JComboBox<>(currencies);
        toCurrencyCombo = new JComboBox<>(currencies);

        currencyPanel.add(new JLabel("Dari:"));
        currencyPanel.add(fromCurrencyCombo);
        currencyPanel.add(new JLabel("Ke:"));
        currencyPanel.add(toCurrencyCombo);

        // 3. Panel Output
        resultArea = new JTextArea(10, 30);
        resultArea.setEditable(false);
        JScrollPane scrollPane = new JScrollPane(resultArea);

        // Gabungkan komponen ke panel utama
        panel.add(inputPanel, BorderLayout.NORTH);
        panel.add(currencyPanel, BorderLayout.CENTER);
        panel.add(scrollPane, BorderLayout.SOUTH);

        add(panel);

        // Event Listener untuk tombol Konversi
        convertButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String amount = amountField.getText();
                String fromCurrency = fromCurrencyCombo.getSelectedItem().toString();
                String toCurrency = toCurrencyCombo.getSelectedItem().toString();
                String result = convertCurrency(amount, fromCurrency, toCurrency);
                resultArea.setText(result);
            }
        });
    }

    private String convertCurrency(String amount, String fromCurrency, String toCurrency) {
        // Implementasi konversi mata uang akan ditambahkan di Langkah 3
        return "Hasil Konversi: " + amount + " " + fromCurrency + " = ... " + toCurrency;
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new CurrencyConverterApp().setVisible(true);
            }
        });
    }
}

Langkah 3: Menambahkan Logika Konversi Mata Uang

  1. Tambahkan Method untuk Konversi Mata Uang:
    • Di dalam class CurrencyConverterApp, tambahkan method convertCurrency yang menggunakan nilai tukar mata uang yang telah ditentukan.
    java
    private String convertCurrency(String amount, String fromCurrency, String toCurrency) {
        try {
            double amountValue = Double.parseDouble(amount);
            double rate = getExchangeRate(fromCurrency, toCurrency);
            double convertedAmount = amountValue * rate;
    
            return String.format("Hasil Konversi: %.2f %s = %.2f %s", 
                amountValue, fromCurrency, convertedAmount, toCurrency);
        } catch (NumberFormatException e) {
            return "Error: Masukkan nilai yang valid.";
        }
    }
    
    private double getExchangeRate(String fromCurrency, String toCurrency) {
        // Nilai tukar mata uang yang telah ditentukan
        double usdToIdr = 14000.0;
        double eurToIdr = 17000.0;
        double jpyToIdr = 130.0;
        double gbpToIdr = 19000.0;
    
        // Konversi dari mata uang sumber ke IDR
        double amountInIdr;
        switch (fromCurrency) {
            case "USD":
                amountInIdr = usdToIdr;
                break;
            case "EUR":
                amountInIdr = eurToIdr;
                break;
            case "JPY":
                amountInIdr = jpyToIdr;
                break;
            case "GBP":
                amountInIdr = gbpToIdr;
                break;
            default:
                amountInIdr = 1.0; // Jika mata uang sumber adalah IDR
        }
    
        // Konversi dari IDR ke mata uang target
        switch (toCurrency) {
            case "USD":
                return amountInIdr / usdToIdr;
            case "EUR":
                return amountInIdr / eurToIdr;
            case "JPY":
                return amountInIdr / jpyToIdr;
            case "GBP":
                return amountInIdr / gbpToIdr;
            default:
                return amountInIdr; // Jika mata uang target adalah IDR
        }
    }
  2. Penjelasan Logika:
    • Nilai tukar mata uang ditentukan secara manual.
    • Konversi dilakukan dengan mengubah mata uang sumber ke IDR terlebih dahulu, lalu mengubahnya ke mata uang target.

Langkah 4: Menjalankan Aplikasi

  1. Jalankan Program:
    • Klik tombol Run di IDE.
    • Aplikasi akan muncul dengan tampilan GUI seperti ini:
      +------------------------------+
      | [Input Nilai] [Konversi]     |
      | [Dari: USD] [Ke: IDR]        |
      |------------------------------|
      | [Output Hasil Konversi]      |
      +------------------------------+
  2. Uji Coba Fitur:
    • Masukkan nilai, pilih mata uang sumber dan target, lalu klik Konversi.
    • Hasil konversi akan muncul di area output.


Tips Pengembangan Lanjutan

  1. Tambahkan Lebih Banyak Mata Uang:
    • Tambahkan opsi mata uang lain di JComboBox.
  2. Simpan Riwayat Konversi:
    • Gunakan file atau database untuk menyimpan riwayat konversi.
  3. Tambahkan Fitur Copy-Paste:
    • Tambahkan tombol untuk menyalin hasil konversi ke clipboard.

Kesimpulan

Dengan mengikuti panduan ini, Anda telah berhasil membuat aplikasi konversi mata uang sederhana menggunakan Java dengan GUI tanpa API. Proyek ini melatih kemampuan Anda dalam:

  • Membuat antarmuka pengguna dengan Java Swing.
  • Mengimplementasikan logika konversi mata uang secara manual.
  • Menangani interaksi pengguna dengan event listener.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *