File size: 2,806 Bytes
ca7bcbd
 
 
 
 
 
94367ea
ca7bcbd
 
e37d8b9
1028240
ca7bcbd
641c42f
1028240
641c42f
e37d8b9
 
ca7bcbd
1028240
ca7bcbd
2fc40c6
ca7bcbd
94367ea
ca7bcbd
1028240
2fc40c6
1028240
94367ea
2fc40c6
94367ea
1028240
ca7bcbd
 
 
1028240
ca7bcbd
 
 
 
1028240
ca7bcbd
 
 
 
 
 
 
 
 
5485a06
ca7bcbd
 
 
 
 
94367ea
e37d8b9
ca7bcbd
94367ea
 
 
e37d8b9
ca7bcbd
830d5f1
ca7bcbd
e37d8b9
 
94367ea
 
ca7bcbd
 
94367ea
e37d8b9
641c42f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1028240
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
const amountInput = document.getElementById('amount');
const fromCurrency = document.getElementById('fromCurrency');
const toCurrency = document.getElementById('toCurrency');
const swapButton = document.getElementById('swapButton');
const convertButton = document.getElementById('convertButton');
const resultDiv = document.getElementById('result');

// Status konversi otomatis
let autoConvert = false;

// Tombol Convert ditekan
convertButton.addEventListener('click', () => {
  autoConvert = true; // Aktifkan auto-convert
  convertCurrency(); // Lakukan konversi
  hideConvertButton(); // Sembunyikan tombol Convert
});

// Swap mata uang
swapButton.addEventListener('click', () => {
  const temp = fromCurrency.value;
  fromCurrency.value = toCurrency.value;
  toCurrency.value = temp;

  if (autoConvert) {
    convertCurrency(); // Lakukan konversi otomatis setelah swap
  } else {
    clearResult(); // Hapus hasil jika auto-convert tidak aktif
  }
});

// Pantau perubahan pada input dan dropdown
[amountInput, fromCurrency, toCurrency].forEach((element) => {
  element.addEventListener('input', () => {
    if (autoConvert) {
      convertCurrency(); // Konversi otomatis saat ada input
    }
  });

  element.addEventListener('change', () => {
    resetAutoConvert(); // Reset auto-convert saat dropdown berubah
  });
});

// Fungsi konversi
async function convertCurrency() {
  const amount = amountInput.value;
  const from = fromCurrency.value;
  const to = toCurrency.value;

  // Validasi input
  if (!amount || amount <= 0) {
    resultDiv.innerHTML = 'Please enter a valid amount.';
    return;
  }

  try {
    const apiKey = '3ebe2ccf9eeea2aaef280201';
    const url = `https://v6.exchangerate-api.com/v6/${apiKey}/latest/${from}`;
    const response = await fetch(url);
    const data = await response.json();

    if (data.result === 'success') {
      const rate = data.conversion_rates[to];
      const convertedAmount = (amount * rate).toFixed(2);
      resultDiv.innerHTML = `${amount} ${from} = ${convertedAmount} ${to}`;
    } else {
      resultDiv.innerHTML = `Error: ${data['error-type']}`;
    }
  } catch (error) {
    resultDiv.innerHTML = 'Error fetching conversion rate.';
    console.error(error);
  }
}

// Fungsi untuk menyembunyikan tombol Convert
function hideConvertButton() {
  convertButton.style.display = 'none';
}

// Fungsi untuk menampilkan tombol Convert
function showConvertButton() {
  convertButton.style.display = 'block';
}

// Fungsi untuk menghapus hasil konversi
function clearResult() {
  resultDiv.innerHTML = '';
}

// Fungsi untuk mereset status auto-convert
function resetAutoConvert() {
  autoConvert = false; // Nonaktifkan auto-convert
  showConvertButton(); // Tampilkan kembali tombol Convert
  clearResult(); // Hapus hasil sebelumnya
}