Cara Membuat Scientific Calculator dan Standard Calculator dengan Javascript

Scientific Calculator dan Standard Calculator

Kalkulator adalah alat hitung yang paling sering digunakan setiap hari. Pada umumnya kalkulator ada dua jenis yaitu Scientific Calculator dan Standard Calculator. Dengan bantuan dari bahasa pemrograman CSS dan JavaScript, kita dapat dengan mudah membuat kedua kalkulator dalam satu aplikasi yang berbasis website.

Lalu, bagaimana cara membuat Scientific Calculator dan Standard Calculator dalam satu aplikasi dengan bahasa pemrograman CSS dan JavaScript? Yuk langsung saja buka komputer kamu dan ikuti beberapa langkah mudah di bawah ini.

Tutorial

1. Buka XAMPP Control Panel, serta aktifkan Apache.

2. Buka program teks editor yang ter-install di komputer kamu, disini saya menggunakan teks editor Notepad++. Ketikkan kode HTML5 berikut ini.

<!DOCTYPE html>
<html lang="en" >
<head>
  <meta charset="UTF-8">
  <title>Membuat Scientific Calculator dan Standard Calculator dalam Satu Aplikasi</title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
<link rel="stylesheet" href="style.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>

</head>
<body>

<div id="app">
  <div class="calculator">
    <button @click="changeModeEvent" class="toggle-button">
      <p v-if="changeMode">Scientific Calculator &nbsp; &nbsp; ⚈</p>
      <p v-else>Standart Calculator &nbsp; &nbsp; ⚆</p>
    </button>
    <div class="results">
      <input class="input" v-model="current" />
    </div>
    <div class="mode" v-if="changeMode">
      <button class="button" @click="press">7</button>
      <button class="button" @click="press">8</button>
      <button class="button" @click="press">9</button>
      <button class="button" @click="press">*</button>
      <button class="button" @click="press"><=</button>
      <button class="button" @click="press">C</button>
      <button class="button" @click="press">4</button>
      <button class="button" @click="press($event)">5</button>
      <button class="button" @click="press">6</button>
      <button class="button" @click="press">/</button>
      <button class="button" @click="press">(</button>
      <button class="button" @click="press">)</button>
      <button class="button" @click="press">1</button>
      <button class="button" @click="press">2</button>
      <button class="button" @click="press">3</button>
      <button class="button" @click="press">-</button>
      <button class="button" @click="press">x ²</button>
      <button class="button" @click="press">±</button>
      <button class="button" @click="press">0</button>
      <button class="button" @click="press">.</button>
      <button class="button" @click="press">%</button>
      <button class="button" @click="press">+</button>
      <button class="button equal-sign" @click="press">=</button>
    </div>
    <div class="mode" v-else>
      <button class="button" @click="press">sin</button>
      <button class="button" @click="press">cos</button>
      <button class="button" @click="press">tan</button>
      <button class="button" @click="press">x^</button>
      <button class="button" @click="press"><=</button>
      <button class="button" @click="press">C</button>
      <button class="button" @click="press">log</button>
      <button class="button" @click="press">ln</button>
      <button class="button" @click="press">e</button>
      <button class="button" @click="press">∘</button>
      <button class="button" @click="press">rad</button>
      <button class="button" @click="press">√</button>
      <button class="button" @click="press">7</button>
      <button class="button" @click="press">8   </button>
      <button class="button" @click="press">9</button>
      <button class="button" @click="press">/</button>
      <button class="button" @click="press">x ²</button>
      <button class="button" @click="press">x !</button>
      <button class="button" @click="press">4</button>
      <button class="button" @click="press">5</button>
      <button class="button" @click="press">6</button>
      <button class="button" @click="press">*</button>
      <button class="button" @click="press">(</button>
      <button class="button" @click="press">)</button>
      <button class="button" @click="press">1</button>
      <button class="button" @click="press">2</button>
      <button class="button" @click="press">3</button>
      <button class="button" @click="press">-</button>
      <button class="button" @click="press">%</button>
      <button class="button" @click="press">±</button>
      <button class="button" @click="press">0</button>
      <button class="button" @click="press">.</button>
      <button class="button" @click="press">Ï€</button>
      <button class="button" @click="press">+</button>
      <button class="button equal-sign" @click="press">=</button>
    </div>
  </div>
</div>
<!-- partial -->
  <script src='https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.min.js'></script><script  src="script.js"></script>

</body>
</html>

Simpan kode HTLM5 di atas di folder xampplite – htdocs – buat folder baru dengan nama Calculator – simpan kode di atas dengan nama index.html.

3. Untuk melihat hasil script code di atas, kamu bisa buka browser kamu ketiklah http://localhost/Calculator.

4. Untuk membuat background Calculator, ketikkan kode CSS berikut ini di halaman baru teks editor.

body {
  background: #dcdcdc;
}

#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-item: center;
}

.calculator {
  width: 440px;
  padding: 20px;
  border-radius: 5px;
  margin: 20px auto;
  font-size: 16px;
  background-color: #333333;
}

.input {
  width: 420px;
  height: 50px;
  border-radius: 0px;
  border: 1px solid black;
  background-color: #333333;
  color: #d9d9d9;
  padding: 0 5px 0 5px;
  margin: 0 0px 10px 0px;
  font-size: 30px;
}

.input:focus,
.input:active {
  border-color: #03a9f4;
  box-shadow: 0 0 4px #03A9F4;
  outline: none 0;
}

.button {
  margin: 3px;
  width: 63px;
  border: 1px solid #0d0d0d;
  height: 30px;
  border-radius: 4px;
  color: #d9d9d9;
  background-color: #1a1a1a;
  cursor: pointer;
  outline: none;
}

.mode {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
}

.equal-sign {
  background-color: red;
  width: 133px;
}

.toggle-button {
  border: none;
  background-color: #333333;
  cursor: pointer;
  outline: none;
  font-size: 1rem;
  color: #fff;
  text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.35);
}

p {
  margin-top: 0;
}

button::-moz-focus-inner {
  border-color: transparent;
}

Simpan kode CSS di folder xampplite – htdocs – buka folder Calculator – simpan code CSS dengan nama style.css.

5. Reload alamat url : http://localhost/Calculator. Tampilan awal dari kalkulator. Terlihat Scientific Calculator dan Standard Calculator masih tergabung dalam satu frame serta kalkulator belum berfungsi.

6. Untuk memisahkan scientific calculator dan standard calculator serta agar kalkulator bisa berfungsi, ketikkan kode JavaScript berikut ini di halaman baru teks editor.

let app = new Vue({
  el: '#app',
  data() {
    return {
      current: '',
      changeMode: true };

  },
  methods: {
    press: function (event) {
      let me = this;
      let key = event.target.textContent;

      if (
      key != '=' &&
      key != 'C' &&
      key != '*' &&
      key != '/' &&
      key != '√' &&
      key != "x ²" &&
      key != "%" &&
      key != "<=" &&
      key != "±" &&
      key != "sin" &&
      key != "cos" &&
      key != "tan" &&
      key != "log" &&
      key != "ln" &&
      key != "x^" &&
      key != "x !" &&
      key != "Ï€" &&
      key != "e" &&
      key != "rad" &&
      key != "∘")
      {
        me.current += key;

      } else if (key === '=') {

        if (me.current.indexOf('^') > -1) {
          let base = me.current.slice(0, me.current.indexOf('^'));
          let exponent = me.current.slice(me.current.indexOf('^') + 1);
          me.current = eval('Math.pow(' + base + ',' + exponent + ')');
        } else {
          me.current = eval(me.current);
        }

      } else if (key === 'C') {

        me.current = '';

      } else if (key === '*') {

        me.current += '*';

      } else if (key === '/') {

        me.current += '/';

      } else if (key === '+') {

        me.current += '+';

      } else if (key === '-') {

        me.current += '-';

      } else if (key === '±') {

        if (me.current.charAt(0) === '-') {
          me.current = me.current.slice(1);
        } else {
          me.current = '-' + me.current;
        }

      } else if (key === '<=') {

        me.current = me.current.substring(0, me.current.length - 1);

      } else if (key === '%') {

        me.current = me.current / 100;

      } else if (key === 'Ï€') {

        me.current = me.current * Math.PI;

      } else if (key === 'x ²') {

        me.current = eval(me.current * me.current);

      } else if (key === '√') {

        me.current = Math.sqrt(me.current);

      } else if (key === 'sin') {

        me.current = Math.sin(me.current);

      } else if (key === 'cos') {

        me.current = Math.cos(me.current);

      } else if (key === 'tan') {

        me.current = Math.tan(me.current);

      } else if (key === 'log') {

        me.current = Math.log10(me.current);

      } else if (key === 'ln') {

        me.current = Math.log(me.current);

      } else if (key === 'x^') {

        me.current += '^';

      } else if (key === 'x !') {

        let number = 1;
        if (me.current === 0) {
          me.current = '1';
        } else if (me.current < 0) {
          me.current = NaN;
        } else {
          let number = 1;
          for (let i = me.current; i > 0; i--) {
            number *= i;
          }
          me.current = number;
        }

      } else if (key === 'e') {

        me.current = Math.exp(me.current);

      } else if (key === 'rad') {

        me.current = me.current * (Math.PI / 180);

      } else if (key === '∘') {

        me.current = me.current * (180 / Math.PI);

      }
    },
    changeModeEvent: function () {
      let me = this;
      me.changeMode = !me.changeMode;
    } } });

Simpan kode JavaScript di folder xampplite – htdocs – buka folder Calculator – simpan code JavaScript dengan nama script.js.

7. Reload alamat url : http://localhost/Calculator. Sekarang kedua kalkulator sudah terpisah dan sudah bisa digunakan. Tampilan dari Standard Calculator, klik link Scientific Calculator untuk membuka Scientific Calculator.

Tampilan dari Scientific Calculator, klik link Standard Calculator untuk membuka Standard Calculator.

8. Selesai, menarik sekali bukan?.

Demikian penjelasan dari tutorial ‘Cara Membuat Scientific Calculator dan Standard Calculator dalam Satu Aplikasi’. Selamat mencoba.

Komentar

Leave a Reply

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

Leave the field below empty!

Trending Minggu Ini

Inwepo adalah media platform yang membantu setiap orang untuk belajar dan berbagi tutorial, tips dan trik cara penyelesaian suatu masalah di kehidupan sehari-hari dalam bentuk teks, gambar. dan video.

Dengan bergabung bersama kami dan membuat 1 tutorial terbaik yang kamu miliki dapat membantu jutaan orang di Indonesia untuk mendapatkan solusinya. Ayo berbagi tutorial terbaikmu.

Ikuti Kami di Sosmed

Inwepo Navigasi

Tentang Kami             Beranda

Hubungi Kami             Panduan Penulis

Kebijakan Privasi

FAQ

Partner

Copyright © 2014 - 2024 Inwepo - All Rights Reserved.

To Top