GarGerry commited on
Commit
6e0fcb6
·
verified ·
1 Parent(s): ed934c8

Update script.js

Browse files
Files changed (1) hide show
  1. script.js +49 -36
script.js CHANGED
@@ -1,37 +1,50 @@
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
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ async function convertCurrency() {
2
+ const amount = document.getElementById('amount').value;
3
+ const fromCurrency = document.getElementById('from-currency').value;
4
+ const toCurrency = document.getElementById('to-currency').value;
5
+ const result = document.getElementById('result');
6
+ const convertBtn = document.getElementById('convert-btn');
7
+
8
+ if (amount && fromCurrency && toCurrency) {
9
+ try {
10
+ const response = await fetch(`https://api.exchangerate-api.com/v4/latest/${fromCurrency}`);
11
+ const data = await response.json();
12
+ const rate = data.rates[toCurrency];
13
+ const convertedAmount = (amount * rate).toFixed(2);
14
+
15
+ // Display conversion result
16
+ result.innerHTML = `${amount} ${fromCurrency} = ${convertedAmount} ${toCurrency}`;
17
+
18
+ // Hide convert button after conversion
19
+ convertBtn.style.display = 'none';
20
+ } catch (error) {
21
+ result.innerText = "Error fetching exchange rates!";
22
+ }
 
 
 
 
 
 
 
 
 
23
  }
24
+ }
25
+
26
+ function swapCurrencies() {
27
+ const fromCurrency = document.getElementById('from-currency');
28
+ const toCurrency = document.getElementById('to-currency');
29
+
30
+ // Swap currency values
31
+ const temp = fromCurrency.value;
32
+ fromCurrency.value = toCurrency.value;
33
+ toCurrency.value = temp;
34
+
35
+ // Automatically convert after swap
36
+ convertCurrency();
37
+ }
38
+
39
+ // Event listeners for input and currency change
40
+ document.getElementById('amount').addEventListener('input', convertCurrency);
41
+
42
+ document.getElementById('from-currency').addEventListener('change', () => {
43
+ document.getElementById('convert-btn').style.display = 'block';
44
+ document.getElementById('result').innerHTML = '';
45
+ });
46
+
47
+ document.getElementById('to-currency').addEventListener('change', () => {
48
+ document.getElementById('convert-btn').style.display = 'block';
49
+ document.getElementById('result').innerHTML = '';
50
+ });