From 64a14775b15f69fd2bcca87efaeea04dfc5034dd Mon Sep 17 00:00:00 2001 From: Kevin Christy Parinussa Date: Fri, 27 May 2022 10:59:34 +0700 Subject: [PATCH] Tugas Quiz Day 1 --- .vscode/launch.json | 17 +++++++++++++++++ AngkaPalindrom.js | 23 +++++++++++++++++++++++ AreaCircle.js | 25 +++++++++++++++++++++++++ Bill.js | 28 ++++++++++++++++++++++++++++ ConvertRupiah.js | 26 ++++++++++++++++++++++++++ ConvertSuhu.js | 18 ++++++++++++++++++ DistanceTravel.js | 23 +++++++++++++++++++++++ ElapsedTimes.js | 31 +++++++++++++++++++++++++++++++ GetDays.js | 28 ++++++++++++++++++++++++++++ HeaviestPerson.js | 9 +++++++++ JarakKordinat.js | 18 ++++++++++++++++++ Prosentase.js | 22 ++++++++++++++++++++++ SalesTax.js | 31 +++++++++++++++++++++++++++++++ SalesTaxRateDiscount.js | 35 +++++++++++++++++++++++++++++++++++ SumDigits.js | 20 ++++++++++++++++++++ 15 files changed, 354 insertions(+) create mode 100644 .vscode/launch.json create mode 100644 AngkaPalindrom.js create mode 100644 AreaCircle.js create mode 100644 Bill.js create mode 100644 ConvertRupiah.js create mode 100644 ConvertSuhu.js create mode 100644 DistanceTravel.js create mode 100644 ElapsedTimes.js create mode 100644 GetDays.js create mode 100644 HeaviestPerson.js create mode 100644 JarakKordinat.js create mode 100644 Prosentase.js create mode 100644 SalesTax.js create mode 100644 SalesTaxRateDiscount.js create mode 100644 SumDigits.js diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..eab977d --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "pwa-node", + "request": "launch", + "name": "Launch Program", + "skipFiles": [ + "/**" + ], + "program": "${file}" + } + ] +} \ No newline at end of file diff --git a/AngkaPalindrom.js b/AngkaPalindrom.js new file mode 100644 index 0000000..85b0add --- /dev/null +++ b/AngkaPalindrom.js @@ -0,0 +1,23 @@ +/** input 4 digit, cek apakah angka palindrome */ + +function isPalindrome(angka){ + if(isNaN(angka)){ + return angka+" is not an number" + } + + else{ + if(String(angka) == String(angka).split('').reverse().join('')){ + return angka+" is palindrome"; + } + else{ + return angka+" is not palindrome"; + } + } +} + + +console.log(isPalindrome("abcd"));//abcd is not an number +console.log(isPalindrome("123a"));//123a is not an number +console.log(isPalindrome("1234"));//1234 is not palindrome +console.log(isPalindrome(1221));//1221 is palindrome +console.log(isPalindrome("8888"));//8888 is palindrome \ No newline at end of file diff --git a/AreaCircle.js b/AreaCircle.js new file mode 100644 index 0000000..6460f31 --- /dev/null +++ b/AreaCircle.js @@ -0,0 +1,25 @@ +/** + Diketahui rumus area = pi * radius * radius dimana pi = 3.14159, r = radius buat function dengan nama getAreaCircle(r) + Output Contraint : + getAreaCircle('-1'); //return radius -1 <= 0, try higher + getAreaCircle('a'); //return Inputan harus dalam angka + getAreaCircle(5); //retun 78.53975 + */ + +function getAreaCircle(r) { + if(r<=0){ + return "radius -1 <= 0, try higher" + } + + else if(isNaN(r)){ + return "Inputan harus dalam angka" + } + else{ + return Math.PI.toFixed(5)*Math.pow(r,2); + } +} + + +console.log(getAreaCircle('-1')); //return radius -1 <= 0, try higher +console.log(getAreaCircle('a')); //return Inputan harus dalam angka +console.log(getAreaCircle(5).toFixed(5)); //retun 78.53975 \ No newline at end of file diff --git a/Bill.js b/Bill.js new file mode 100644 index 0000000..554b3fe --- /dev/null +++ b/Bill.js @@ -0,0 +1,28 @@ +/** hitung total gaji karyawan */ + +function totalGaji(gaji1, gaji2, gaji3) { + let bayar1=gaji1+(taxGaji(gaji1)*gaji1); + let bayar2=gaji2+(taxGaji(gaji2)*gaji2); + let bayar3=gaji3+(taxGaji(gaji3)*gaji3); + let total=bayar1+bayar2+bayar3; + return "Total gaji yang harus dibayar :\nEmp1 : Rp."+gaji1+" + Pajak("+taxGaji(gaji1)*100+"%)=Rp."+bayar1+"\nEmp2 : Rp."+gaji2+" + Pajak("+taxGaji(gaji2)*100+"%)=Rp."+bayar2+"\nEmp3 : Rp."+gaji3+" + Pajak("+taxGaji(gaji3)*100+"%)=Rp."+bayar3+"\nTotal : Rp."+total; +} + +function taxGaji(gaji) { + if (gaji >= 10000) { + return (10 / 100).toFixed(2) + } else if (gaji >= 1000 && gaji < 10000) { + return (5 / 100).toFixed(2) + } else if (gaji >= 100 && gaji < 1000) { + return (2 / 100).toFixed(2) + } +} + +console.log(totalGaji(500, 2000, 12000)); +/** + Total gaji yang harus dibayar : + Emp1 : Rp.500 + Pajak(2%)=Rp.510 + Emp1 : Rp.2000 + Pajak(5%)=Rp.2100 + Emp1 : Rp.12000 + Pajak(10%)=Rp.13200 + Total : Rp.15810 + */ \ No newline at end of file diff --git a/ConvertRupiah.js b/ConvertRupiah.js new file mode 100644 index 0000000..51a05b8 --- /dev/null +++ b/ConvertRupiah.js @@ -0,0 +1,26 @@ +/** + * Convert rupiah to other currency + */ + +function convertToRupiah(money,type){ + if(type=="yen"){ + let result=money*130.12; + return Intl.NumberFormat('ID',{style:'currency',currency:'IDR',maximumFractionDigits: 0, minimumFractionDigits: 0}).format(result) + } + else if(type=="usd"){ + let result=money*14382.5; + return Intl.NumberFormat('ID',{style:'currency',currency:'IDR',maximumFractionDigits: 0, minimumFractionDigits: 0}).format(result) + } + else if(type=="euro"){ + let result=money*16000; + return Intl.NumberFormat('ID',{style:'currency',currency:'IDR',maximumFractionDigits: 0, minimumFractionDigits: 0}).format(result) + } + else{ + return "no match type currency" + } +} + +console.log(convertToRupiah(1000,'yen'));//1000 yen = Rp.130.120 +console.log(convertToRupiah(100,'usd'));//100 dollar = Rp.1.438.250 +console.log(convertToRupiah(100,'euro'));//100 dollar = Rp.1.600.000 +console.log(convertToRupiah(100,''));//no match type currency \ No newline at end of file diff --git a/ConvertSuhu.js b/ConvertSuhu.js new file mode 100644 index 0000000..1cadefc --- /dev/null +++ b/ConvertSuhu.js @@ -0,0 +1,18 @@ +/** + * konversi fareinheit to kelvin + * rumus Kelvin = (Fareinheit + 459.67)/1.8 + * + */ + + function fareinheitToKelvin(fareinheit){ + if(isNaN(fareinheit)){ + return "Fareinheit must an number" + } + else{ + return "Convert Fareinheit ("+fareinheit+") to Kelvin = "+ ((fareinheit + 459.67)/1.8).toFixed(); + } +} + +console.log(fareinheitToKelvin(45)); //Convert Fareinheit (45) to Kelvin = 280 +console.log(fareinheitToKelvin("1")); //Convert Fareinheit (1) to Kelvin = 811 +console.log(fareinheitToKelvin("F")); //Fareinheit must an number \ No newline at end of file diff --git a/DistanceTravel.js b/DistanceTravel.js new file mode 100644 index 0000000..f5ae8ed --- /dev/null +++ b/DistanceTravel.js @@ -0,0 +1,23 @@ +/** hitung jarak antar kota + * dimana rumus jarak S = 1/2*a*t^2 + * function calculateDistance(a,t), + * where a = accelaration in number + * t : time + */ + + function calculateDistance(a, t){ + if(a<=0 || t<=0){ + return "Accelaration or time must be >= 0" + } + + else if(isNaN(a) || isNaN(t)){ + return "input must an number" + } + else{ + return "Jarak yang ditempuh adalah "+0.5*a*Math.pow(t,2)+" meter/s"; + } +} + +console.log(calculateDistance("a","t"));//input must an number +console.log(calculateDistance(-1,9)); //Accelaration or time must be >= 0 +console.log(calculateDistance(50,60)); //Jarak yang ditempuh adalah 90000 meter/s \ No newline at end of file diff --git a/ElapsedTimes.js b/ElapsedTimes.js new file mode 100644 index 0000000..2f9db7e --- /dev/null +++ b/ElapsedTimes.js @@ -0,0 +1,31 @@ +/** + * hitung detik ke dalam day, hour, minute and seconds + */ + + +function getPeriodTimes(seconds) { + if(isNaN(seconds)){ + return seconds+" is not number" + } + else{ + const secondsInAMinute = 60; + const secondsInAnHour = 60 * secondsInAMinute; + const secondsInADay = 24 * secondsInAnHour; + + const days = Math.floor(seconds / secondsInADay); + + const hourSeconds = seconds % secondsInADay; + const hours = Math.floor(hourSeconds / secondsInAnHour); + + const minuteSeconds = hourSeconds % secondsInAnHour; + const minutes = Math.floor(minuteSeconds / secondsInAMinute); + + const remainingSeconds = minuteSeconds % secondsInAMinute; + const second = Math.ceil(remainingSeconds); + + return days+" hari "+hours+" jam "+minutes+" menit "+second+" detik"; + } +} + +console.log(getPeriodTimes("700005A"));//700005A is not number +console.log(getPeriodTimes("700005"));//8 hari 2 jam 26 menit 45 detik \ No newline at end of file diff --git a/GetDays.js b/GetDays.js new file mode 100644 index 0000000..2776ca1 --- /dev/null +++ b/GetDays.js @@ -0,0 +1,28 @@ +/** Display year is kabisat and display month */ + +function getDays(month,year){ + if(isNaN(month) && !isNaN(year)){ + return "inputan bulan harus dalam integer" + } + else if(!isNaN(month) && isNaN(year)){ + return "inputan tahun harus dalam integer" + } + else if(isNaN(month) && isNaN(year)){ + return "inputan bulan & tahun harus dalam integer" + } + else{ + if(year%4==0){ + return "This month has "+new Date(year, month, 0).getDate()+" days, "+year+" adalah tahun kabisat"; + } + else if(year%4!=0){ + return "This month has "+new Date(year, month, 0).getDate()+" days"; + } + + } +} + +console.log(getDays("a",2021)); //inputan bulan harus dalam integer +console.log(getDays("2","year")); //inputan tahun harus dalam integer +console.log(getDays("m","year"));//inputan bulan & tahun harus dalam integer +console.log(getDays(2,2000)); //This month has 29 days, 2000 adalah tahun kabisat +console.log(getDays(8,2021)); //This month has 31 hari \ No newline at end of file diff --git a/HeaviestPerson.js b/HeaviestPerson.js new file mode 100644 index 0000000..371204e --- /dev/null +++ b/HeaviestPerson.js @@ -0,0 +1,9 @@ +/** + * hitung orang yg memiliki berat badan paling tinggi + */ + +function getHeavier(w1,wg2,wg3){ + return Math.max(w1,wg2,wg3); +} + +console.log(getHeavier(12,45,70));//70 \ No newline at end of file diff --git a/JarakKordinat.js b/JarakKordinat.js new file mode 100644 index 0000000..03d1ce0 --- /dev/null +++ b/JarakKordinat.js @@ -0,0 +1,18 @@ +/** + * Menghitung jarak kordinat + * 𝑑 = √(𝑥1 − 𝑥2)^2 + (𝑦1 −𝑦2)^2 + */ + +function getCordinat(x1,y1,x2,y2) { + if(isNaN(x1) || isNaN(y1) || isNaN(x2) || isNaN(y2)){ + return "input kordinat dalam angka"; + } + else{ + return Math.sqrt(Math.pow(x1-x2,2)+Math.pow(y1-y2,2)); + } +} + +console.log(getCordinat(3,4,-4,-5)); //9 +console.log(getCordinat("1","2","-1","-2")); //1 +console.log(getCordinat("x","2","-y","-2")); //input kordinat dalam angka +console.log(getCordinat(3.2,4.5,-4.4,-5)); //13.695801445917125 \ No newline at end of file diff --git a/Prosentase.js b/Prosentase.js new file mode 100644 index 0000000..7bd413c --- /dev/null +++ b/Prosentase.js @@ -0,0 +1,22 @@ +/** Buat program untuk menampilkan prosentasi dari income*/ + +function getProsentase(start,end){ + if(isNaN(start) || isNaN(end)){ + return start+" or "+end+" harus dalam angka" + } + else{ + let increase=((end-start)/start)*100; + if(increase<0){ + return "Total penurunan income "+Math.floor(increase)+"%"; + } + else{ + return "Total kenaikan income "+Math.ceil(increase)+"%"; + } + + } +} + +console.log(getProsentase("abc","bca"));//abc or bca harus dalam angka +console.log(getProsentase(600000.00,750000.00));//Total kenaikan income 25% +console.log(getProsentase(750000.00,650000.00));//Total penurunan income -14% + diff --git a/SalesTax.js b/SalesTax.js new file mode 100644 index 0000000..ddb82d5 --- /dev/null +++ b/SalesTax.js @@ -0,0 +1,31 @@ +/** + * Hitung pajak dari total penjualan + * function getSalesTax(price, tax) + */ + + function getSalesTax(price, tax) { + if(isNaN(price) && !isNaN(tax)){ + return "Price harus dalam angka" + } + else if(!isNaN(price) && isNaN(tax)){ + return "Pajak harus dalam angka" + } + else if(isNaN(price) && isNaN(tax)){ + return "Price & Pajak harus dalam angka" + } + else{ + let sum=price+tax; + return "Total Sales : Rp."+price+"\nPajak : "+tax+"\nTotalHarga+Pajak : Rp."+sum; + } +} + +console.log(getSalesTax("a", 1));//Price harus dalam angka +console.log(getSalesTax(500, "pajak"));//Price & Pajak harus dalam angka +console.log(getSalesTax("harga", "pajak"));//Pajak harus dalam angka +console.log(getSalesTax(4500, 5)); +/** + Total Sales : Rp.4500 + Pajak : 0.5 + TotalHarga+Pajak : Rp.4505 + +*/ \ No newline at end of file diff --git a/SalesTaxRateDiscount.js b/SalesTaxRateDiscount.js new file mode 100644 index 0000000..858175f --- /dev/null +++ b/SalesTaxRateDiscount.js @@ -0,0 +1,35 @@ + /** + * hitung sales discount plus tax rate + * function getSalesDiscount + */ + +function getSalesDiscount(price,tax,discount){ + if(isNaN(price) && !isNaN(tax) && !isNaN(discount)){ + return "Price harus dalam angka" + } + else if(!isNaN(price) && isNaN(tax) && !isNaN(discount)){ + return "Pajak harus dalam angka" + } + else if(isNaN(price) && isNaN(tax) && isNaN(discount)){ + return "Price,Pajak & Discount harus dalam angka" + } + else{ + let dis=price-(discount/100)*price; + let afterTax=dis/10; + let total=dis+afterTax; + return "Total Sales : Rp."+price+"\nDiscount ("+discount+"%) : Rp."+(discount/100)*price+"\nPriceAfterDiscount : Rp."+dis+"\nPajak ("+tax+"%) : Rp."+afterTax+"\n----------------------------------\nTotalPayment : Rp."+total; + } +} + +console.log(getSalesDiscount("a", 1,5));//Price harus dalam angka +console.log(getSalesDiscount(500, "pajak",5));//Pajak harus dalam angka +console.log(getSalesDiscount("harga", "pajak","discount"));//Price, Tax & Discount harus dalam angka +console.log(getSalesDiscount(4500, 10,5)); +/** + Total Sales : Rp.4500 + Discount (5%) : Rp.225 + PriceAfterDiscount : Rp.4275 + Pajak (10%) : Rp.427.5 + ---------------------------------- + TotalPayment : Rp.4702.5 +*/ \ No newline at end of file diff --git a/SumDigits.js b/SumDigits.js new file mode 100644 index 0000000..8da48bd --- /dev/null +++ b/SumDigits.js @@ -0,0 +1,20 @@ +/** + * input 4 digit integer lalu hitung jumlahnya + */ + +function sumDigit(n){ + if(n>=10000){ + return n+" harus lebih kecil dari 10000" + } + else if(isNaN(n)){ + return n+" is not number, try again..." + } + else{ + return parseInt(n.toString().charAt(0))+parseInt(n.toString().charAt(1))+parseInt(n.toString().charAt(2))+parseInt(n.toString().charAt(3)) + } +} + +console.log(sumDigit(1234)); //10 +console.log(sumDigit("1234"));//10 +console.log(sumDigit(12345));//12345 harus lebih kecil dari 10000 +console.log(sumDigit("a123"));//a123 is not number, try again... \ No newline at end of file