GarGerry commited on
Commit
e37d8b9
·
verified ·
1 Parent(s): 6f61b53

Update script.js

Browse files
Files changed (1) hide show
  1. script.js +60 -64
script.js CHANGED
@@ -1,78 +1,74 @@
1
- document.getElementById('currencyForm').addEventListener('submit', async function (event) {
2
- event.preventDefault();
 
 
 
 
3
 
4
- // Ambil nilai input dari user
5
- const amount = document.getElementById('amount').value;
6
- const fromCurrency = document.getElementById('fromCurrency').value;
7
- const toCurrency = document.getElementById('toCurrency').value;
8
- const resultDiv = document.getElementById('result');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
- // Validasi jumlah yang dimasukkan
11
  if (!amount || amount <= 0) {
12
- resultDiv.innerHTML = "Please enter a valid amount!";
13
  return;
14
  }
15
 
16
  try {
17
- const apiKey = '3ebe2ccf9eeea2aaef280201'; // API Key
18
- const url = `https://v6.exchangerate-api.com/v6/${apiKey}/latest/${fromCurrency}`;
19
-
20
- // Mengambil data dari API
21
  const response = await fetch(url);
22
  const data = await response.json();
23
 
24
- // Menangani respon API yang error
25
- if (data.result === 'error') {
26
- resultDiv.innerHTML = `Error: ${data['error-type']}`;
27
- } else {
28
- // Menyusun nilai konversi dan menampilkannya
29
- const rate = data.conversion_rates[toCurrency];
30
  const convertedAmount = (amount * rate).toFixed(2);
31
- resultDiv.innerHTML = `${amount} ${fromCurrency} = ${convertedAmount} ${toCurrency}`;
 
 
32
  }
33
  } catch (error) {
34
- resultDiv.innerHTML = "Error fetching conversion rate.";
35
- console.error("Error:", error); // Menampilkan error di konsol
36
  }
37
- });
38
-
39
- // Logika untuk tombol Swap
40
- document.getElementById('swapButton').addEventListener('click', async function () {
41
- const fromCurrency = document.getElementById('fromCurrency');
42
- const toCurrency = document.getElementById('toCurrency');
43
- const resultDiv = document.getElementById('result');
44
-
45
- // Tukar nilai antara "From" dan "To"
46
- const tempCurrency = fromCurrency.value;
47
- fromCurrency.value = toCurrency.value;
48
- toCurrency.value = tempCurrency;
49
-
50
- // Ambil nilai input amount
51
- const amount = document.getElementById('amount').value;
52
-
53
- // Jika ada jumlah yang dimasukkan, langsung lakukan konversi ulang
54
- if (amount && amount > 0) {
55
- try {
56
- const apiKey = '3ebe2ccf9eeea2aaef280201'; // API Key
57
- const url = `https://v6.exchangerate-api.com/v6/${apiKey}/latest/${fromCurrency.value}`;
58
-
59
- // Mengambil data dari API
60
- const response = await fetch(url);
61
- const data = await response.json();
62
-
63
- if (data.result === 'error') {
64
- resultDiv.innerHTML = `Error: ${data['error-type']}`;
65
- } else {
66
- const rate = data.conversion_rates[toCurrency.value];
67
- const convertedAmount = (amount * rate).toFixed(2);
68
- resultDiv.innerHTML = `${amount} ${fromCurrency.value} = ${convertedAmount} ${toCurrency.value}`;
69
- }
70
- } catch (error) {
71
- resultDiv.innerHTML = "Error fetching conversion rate.";
72
- console.error("Error:", error);
73
- }
74
- } else {
75
- // Jika tidak ada amount, hapus hasil konversi
76
- resultDiv.innerHTML = "";
77
- }
78
- });
 
1
+ const amountInput = document.getElementById('amount');
2
+ const fromCurrency = document.getElementById('fromCurrency');
3
+ const toCurrency = document.getElementById('toCurrency');
4
+ const swapButton = document.getElementById('swapButton');
5
+ const convertButton = document.querySelector('.convert-button'); // Disesuaikan dengan kelas tombol
6
+ const resultDiv = document.getElementById('result');
7
 
8
+ // Status konversi otomatis
9
+ let autoConvert = false;
10
+
11
+ // Tombol convert pertama kali
12
+ convertButton.addEventListener('click', () => {
13
+ autoConvert = true; // Aktifkan konversi otomatis
14
+ convertCurrency();
15
+ convertButton.style.display = 'none'; // Sembunyikan tombol
16
+ });
17
+
18
+ // Swap mata uang
19
+ swapButton.addEventListener('click', () => {
20
+ const temp = fromCurrency.value;
21
+ fromCurrency.value = toCurrency.value;
22
+ toCurrency.value = temp;
23
+
24
+ // Reset tombol dan hasil
25
+ autoConvert = false;
26
+ convertButton.style.display = 'block';
27
+ resultDiv.innerHTML = '';
28
+ });
29
+
30
+ // Input perubahan
31
+ [amountInput, fromCurrency, toCurrency].forEach(element => {
32
+ element.addEventListener('input', () => {
33
+ if (autoConvert) {
34
+ convertCurrency(); // Konversi otomatis
35
+ }
36
+ });
37
+
38
+ element.addEventListener('change', () => {
39
+ // Tampilkan tombol jika mata uang diubah
40
+ autoConvert = false;
41
+ convertButton.style.display = 'block';
42
+ resultDiv.innerHTML = '';
43
+ });
44
+ });
45
+
46
+ // Fungsi konversi
47
+ async function convertCurrency() {
48
+ const amount = amountInput.value;
49
+ const from = fromCurrency.value;
50
+ const to = toCurrency.value;
51
 
 
52
  if (!amount || amount <= 0) {
53
+ resultDiv.innerHTML = 'Please enter a valid amount.';
54
  return;
55
  }
56
 
57
  try {
58
+ const apiKey = '3ebe2ccf9eeea2aaef280201';
59
+ const url = `https://v6.exchangerate-api.com/v6/${apiKey}/latest/${from}`;
 
 
60
  const response = await fetch(url);
61
  const data = await response.json();
62
 
63
+ if (data.result === 'success') {
64
+ const rate = data.conversion_rates[to];
 
 
 
 
65
  const convertedAmount = (amount * rate).toFixed(2);
66
+ resultDiv.innerHTML = `${amount} ${from} = ${convertedAmount} ${to}`;
67
+ } else {
68
+ resultDiv.innerHTML = `Error: ${data['error-type']}`;
69
  }
70
  } catch (error) {
71
+ resultDiv.innerHTML = 'Error fetching conversion rate.';
72
+ console.error(error);
73
  }
74
+ }