Sabtu, 22 Mei 2021

Cara Membuat Pemutar Video Popup Sederhana Menggunakan JavaScript

Tampilan Pemutar Video Popup Sederhana
Tampilan Pemutar Video Popup Sederhana
Setelah membuat progress bar dan spin loader sederhana untuk loading web, kali ini penulis tertarik untuk membuat pemutar video tetapi berupa pop-up (pemutar muncul ketika kita menekan tombol atau tautan tampa harus berpindah halaman) menggunakan JavaScript. Sebenarnya ada dua metode dalam membuat pemutar video pop-up menggunakan JavaScript ini, yaitu:
 
  1. Metode pertama, yaitu menggunakan YouTube iFrame API apabila video yang akan anda putar bersumber dari YouTube dan tampilannya dikontrol menggunakan JavaScript.
  2. Metode kedua, yaitu menggunakan pemutar video internal dari peramban tetapi tampilannya dikontrol menggunakan JavaScript.
Dalam membuat pemutar video ini, penulis memilih cara kedua. Kenapa memilih cara kedua? Alasannya sebagai berikut:
  • Pertama, tidak membebani server anda apabila memutar video, karena berkas video akan diunduh terlebih dahulu oleh peramban client kemudian baru diputar.
  • Kedua, bila menggunakan metode pertama, maka video yang akan diputar terlebih dahulu harus diunggah ke YouTube, sehingga apabila kita mau mengubah content video, maka harus menggunggah video tersebut ke YouTube dan mengubah kode untuk menautkan dengan alamat video anda di YouTube. Apabila menggunakan metode pertama, cara praktis anda tinggal mengubah nama video tersebut sesuai nama video lama dan menimpa video lama anda tanpa harus mengubah kode.
Sebenarnya kode pemutar video pop-up ini bukan murni buatan penulis, tetapi penulis mengambil dari forum di Internet tetapi penulis ubah sehingga lebih mudah digunakan. Tanpa panjang lebar lagi, mari kita buat pemutar video pop-up sederhana ini...
 
Pertama, sisipkan kode CSS (Cascading Style Sheet) ini setelah tag <title> didalam <head>, berikut ini potongan kodenya untuk desain pemutar video pop-up:
 
<style>
  #fade {
    display: none;
    position: fixed;
    top: 0%;
    left: 0%;
    width: 100%;
    height: 100%;
    background-color: black;
    z-index: 1001;
    -moz-opacity: 0.8;
    opacity: .80;
    filter: alpha(opacity=80);
  }

  #light {
    display: none;
    position: absolute;
    top: 50%;
    left: 50%;
    max-width: 640px;
    max-height: 360px;
    margin-left: -300px;
    margin-top: -180px;
    border: 2px solid #FFF;
    background: #FFF;
    z-index: 1002;
    overflow: visible;
  }

  #boxclose {
    float: right;
    cursor: pointer;
    color: #fff;
    border: 1px solid #AEAEAE;
    border-radius: 3px;
    background: #222222;
    font-family: Cursive;
    font-size: 16px;
    font-weight: bold;
    display: inline-block;
    line-height: 0px;
    padding: 10px 3px;
    position: absolute;
    right: 2px;
    top: 2px;
    z-index: 1002;
    opacity: 0.9;
  }

  .boxclose:before {
    content: "X";
  }

  #fade:hover ~ #boxclose {
    display: none;
  }
</style>

 
Warna merah pada kode CSS diatas adalah ukuran tampilan pop-up-nya, bisa anda sesuaikan sendiri sesuai keinginan anda.
 
Kedua, sisipkan kode JavaScript setelah tag <body>, berikut ini potongan kodenya untuk mengendalikan pemutar video pop-up:
 
<script>
  window.document.onkeydown = function(e) {
    if (!e) {
      e = event;
    }
    if (e.keyCode == 27) {
 
    lightbox_close();
    }
  }

  function lightbox_open() {
    var lightBoxVideo = document.getElementById("PopUpVideo");
    window.scrollTo(0, 0);
    document.getElementById('light').style.display = 'block';
    document.getElementById('fade').style.display = 'block';
    lightBoxVideo.play();
  }

  function lightbox_close() {
    var lightBoxVideo = document.getElementById("PopUpVideo");
    document.getElementById('light').style.display = 'none';
    document.getElementById('fade').style.display = 'none';
    lightBoxVideo.pause();
  }
</script>

 
Ketiga, sisipkan kode HTML  setelah tag <body>, berikut ini potongan kodenya untuk menampilkan pemutar video pop-up:
 
<h1>Pemutar Video Pop Up</h1>

<div id="light">
  <a class="boxclose" id="boxclose" onclick="lightbox_close();"></a>
  <video id="PopUpVideo" width="640" controls>
    <source src="PopUpPlayVideo.mp4" type="video/mp4">
    <!--Browser does not support <video> tag -->
  </video>
</div>

<div id="fade" onClick="lightbox_close();"></div>

<div>
 <a href="#" onclick="lightbox_open();">Klik untuk menampilkan video</a>
</div>

 
Warna merah pada kode HTML width="640" diatas adalah ukuran video yang ditampilkan akan di-resize (dirubah ukurannya) sesuai keinginan anda dan harus cocok dengan ukuran dikode CSS apabila tidak sama, maka ditampilan pemutar video akan muncul garis border yang berlebihan.

Sedangkan pada kode <source src="PopUpPlayVideo.mp4" type="video/mp4"> sesuaikan PopUpPlayVideo.mp4 dengan nama video milik anda sendiri.
 
Cukup mudah bukan membuat pemutar video pop-up sederhana? Semoga tulisan singkat ini bermanfaat bagi anda sekalian.. Silahkan mencoba dan semoga berhasil..

Minggu, 09 Mei 2021

Cara Membuat Spin Loader Sederhana Untuk Loading Web Menggunakan JavaScript

Setelah membuat progress bar sederhana untuk loading web, kali ini penulis mencoba membuat spin loader menggunakan JavaScript, dimana spin loader ini seperti progress bar tetapi memiliki bentuk cincin berputar bukan berupa batang. Fungsi spin loader ini juga sama seperti progress bar, yaitu untuk memberikan informasi kepada pengguna apa yang sedang terjadi ketika peramban sedang memuat laman web kita.

Tampilan Spin Loader Sederhana
Tampilan Spin Loader Sederhana
Sebenarnya kode spin loader ini bukan murni buatan penulis, tetapi penulis mengambil dari forum di Internet tetapi penulis ubah sehingga lebih mudah kita gunakan. Tanpa panjang lebar lagi, mari kita buat spin loader sederhana ini...

Pertama, sisipkan kode CSS (Cascading Style Sheet) ini setelah tag <title> didalam <head>, berikut ini potongan kodenya untuk desain dan warna spin loader:
 
<style>
  /* Center the loader */
  .loader {
    position: absolute;
    left: 50%;
    top: 15%;
    z-index: 1;
    width: 50px;
    height: 50px;
    margin: -76px 0 0 -76px;
    border: 16px solid #555;
    border-radius: 50%;
    border-top: 16px solid #3498db;
    -webkit-animation: spin 0.5s linear infinite;
    animation: spin 0.5s linear infinite;
  }

  @-webkit-keyframes spin {
    0% { -webkit-transform: rotate(0deg); }
    100% { -webkit-transform: rotate(360deg); }
  }

  @keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
  }
</style>
 
Kedua, sisipkan kode JavaScript setelah tag <body>, berikut ini potongan kodenya untuk menampilkan spin loader:
 
<script>
  /* Start create layer for progress dialog */
  document.write("<div id=\"myLoader\" class=\"loader\">");
  document.write("</div>");
  /* End of create layer for progress dialog */
</script>
 
Ketika langkah kedua ini anda taruh, maka secara otomatis spin loader ini akan aktif dengan sendirinya. Sehingga apabila anda ingin mematikan atau menghilangkan spin loader ini cukup dengan menggunakan perintah JavaScript ini:

document.getElementById("myLoader").style.display = "none";

Gunakan perintah diatas dan letakkan diakhir proses loading laman web anda agar terjadi sinkronisasi ketika spin loader hilang maka laman web anda sudah tertampil utuh. Bila anda ingin menampilkan kembali spin loader ini, cukup gunakan gunakan perintah JavaScript ini:

document.getElementById("myLoader").style.display = "block";
 
Cukup mudah bukan membuat spin loader sederhana? Semoga tulisan singkat ini bermanfaat bagi anda sekalian.. Silahkan mencoba dan semoga berhasil..

Sabtu, 08 Mei 2021

Cara Membuat Progress Bar Sederhana Untuk Loading Web Menggunakan JavaScript

Selain membuat cara mengakses data secara real-time dari database Firebase, penulis juga membuat progress bar sederhana agar setidaknya ada informasi kepada pengguna apa yang sedang terjadi ketika peramban sedang memuat laman web kita ini.
 
Tampilan Progress Bar Sederhana
Tampilan Progress Bar Sederhana
Penulis mencoba mengorek informasi dari forum-forum bagaimana cara membuat progress bar yang dinamis, tenyata untuk pembuatan yang dinamis tidak dapat menggunakan JavaScript, harus menggunakan Ajax ataupun bahasa pemrograman web lainnya. Adapun penulis memilih menggunakan JavaScript dalam pembuatan progress bar sederhana ini dikarenakan lebih mudah dan "ringan" karena dijalankan oleh "client side". Tanpa panjang lebar lagi, mari kita buat progress bar sederhana ini..

Pertama, sisipkan kode CSS (Cascading Style Sheet) ini setelah tag <title> didalam <head>, berikut ini potongan kodenya untuk desain dan warna progress bar:

<style>
  .myProgress {
    position: absolute;
    max-width: 800px;
    top: 10%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 400px;
    visibility: visible;
    margin: auto;
    border: 2px solid black;
    background-color: #555;
  }

  #myBar {
    width: 100%;
    height: 30px;
    background-color: #04AA6D;
    text-align: center;
    line-height: 30px;
    color: white;
  }
</style>

Kedua, sisipkan kode JavaScript setelah tag <body>, berikut ini potongan kodenya untuk menampilkan progress bar:
 
<script>
  /* Start create layer for progress dialog */
  document.write("<div id=\"myProgress\" class=\"myProgress\">");
  document.write("<div id=\"myBar\">5%</div>");
  document.write("</div>");
  /* End of create layer for progress dialog */
 
  var elem = document.getElementById("myBar");

  /* Fungsi untuk memperbarui prosentase progress bar */
  function updateBar(percent) {
    if (percent != 0) {
      if (percent >= 100) {
      elem.style.width = percent + "%";
      elem.innerHTML = "Membaca data sensor di Firebase... " + percent  + "%";
      setTimeout(function(){document.getElementById("myProgress").style.display = "none";},500);
      } else {
      elem.style.width = percent + "%";
      elem.innerHTML = "Membaca data sensor di Firebase... " + percent  + "%";
      }
    }
  }
</script>

 
Ketiga, agar progress bar ini dapat berjalan dengan baik, maka anda harus memperbarui progress bar ini secara manual ketika terjadi proses ataupun aktifitas lainnya dengan cara memanggil fungsi updateBar() diisi dengan angka maksimal 100 (contoh: updateBar(10), maka akan ditampilkan progress bar 10%). Setelah mencapai nilai maksimal 100, maka tampilan progress bar secara otomatis akan hilang.

Cukup mudah bukan membuat progress bar sederhana? Semoga tulisan singkat ini bermanfaat bagi anda sekalian.. Silahkan mencoba dan semoga berhasil..

Cara Mengakses Data Realtime Database Firebase Menggunakan JavaScript

Aha.. Kali ini penulis iseng-iseng mencoba bagaimana cara mengakses data secara real-time dari database Firebase milik Google didalam laman web kita sendiri menggunakan JavaScript. Sebenarnya cara pengaksesan data ini bukan serta merta murni menggunakan JavaScript, tetapi Google-lah merilis library SDK JavaScript untuk mengakses data dari database Firebase dan dapat diakses melalui laman web https://www.gstatic.com/firebasejs tetapi, apabila kita akses secara manual yang muncul hanyalah tulisan "404. That's an error." Baik, tanpa panjang lebar lagi, marilah kita ulas bagaimana cara membaca data dari database Firebase ini..

Pertama yang penulisan lakukan adalah mendesain database di Firebase terlebih dahulu dengan desain seperti berikut ini:

{
  "sensor_suhu" :
    {
      "gudang1" :
        {
          "suhu_min":24,
          "suhu_max":29,
          "suhu":25,
          "kelembaban":78,
          "status_ac":"\"OTO\"",
          "kondisi_ac":"\"OFF\""
        }
    },
  "sensor_cahaya" :
    {
      "gudang1":
        {
          "cahaya":25,
          "cahaya_min":800,
          "rechek":1,
          "status_lampu":"\"OTO\""
        }
    },
  "sensor_gerakan" :
    {
      "pintu_depan_gudang1":
        {
          "gerakan":1,
          "recheck":1,
          "status_gerakan":"\"ON\""
        }
    }
}


Kedua,  penulisan mendesain "tempat untuk" menampung data yang diperoleh dari hasil membaca data dari database Firebase.
 
Tampilan Desain Untuk Menampung Data
Tampilan Desain Untuk Menampung Data
Berikut ini contoh potongan kode tempat menampung data:
<table style="width:100%; text-align:center">
  <tr>
  <center><h1>SmartGudang Real-Time Monitoring Website</h1></center>
  </tr>
  <tr>
  <center><b><a href="http://anwarez96.blogspot.com" target="_blank" style="text-decoration: none">(C) 2021, @nWaREZ</a></b></center>
  </tr>
  <tr>
    <table style="border: 2px solid black; text-align:center">
      <tr>
     <td style="text-align:left"><font size="6"><b>Sensor</b></font></td>
        <td><font size="6"><b>Nilai</b></font></td>
        <td><font size="6"><b>Status</b></font></td>
      </tr>
      <tr>
        <td style="text-align:left"><b>Suhu</b></td>
        <td>Suhu saat ini <font id='suhu'>Tidak terbaca</font> dengan kelembaban <font id='kelembaban'>Tidak terbaca.</font></td>
        <td>AC <font id='ac'>Tidak terbaca.</font></td>
      </tr>
      <tr>
        <td style="text-align:left"><b>Cahaya</b></td>
        <td>Itensitas cahaya saat ini: <font id='cahaya'>Tidak terbaca.</font></td>
        <td>LAMPU <font id='lampu'>Tidak terbaca.</font></td>
      </tr>
      <tr>
        <td style="text-align:left"><b>Gerakan</b></td>
        <td><b id='gerakan'>TIDAK TERDETEKSI GERAKAN.</b></td>
        <td>ALARM <font id='alarm'>Tidak terbaca.</font></td>
      </tr>
    </table>
</table>

 
Ketiga, penulis menggunakan library JavaScript dari https://www.gstatic.com/firebasejs/[versi library]/firebase.js ini dan harus anda tempatkan paling atas sebelum kode JavaScript lainnya. Versi terakhir dari library ini adalah 8.4.3. Berikut ini contoh potongan kodenya:

<script src="https://www.gstatic.com/firebasejs/8.4.3/firebase.js"></script>
 
Setelah menginisialisasi library ini, barulah kita masukkan API Key, database URL, projectId dari database kita di Firebase melalui potongan kode dibawah ini:

var firebaseConfig = {
  apiKey: "xxxx",
  authDomain: "",
  databaseURL: "https://xxxxx-default-rtdb.firebaseio.com",
  projectId: "SmartGudang",
  storageBucket: "",
  messagingSenderId: "",
  appId: "",
  measurementId: "SmartGudang"
};
 
firebase.initializeApp(firebaseConfig);
 
Ganti xxxxx dan SmartGudang dengan database milik anda sendiri. Langkah selanjutnya adalah melakukan pengaksesan data dari database Firebase ini melalui contoh potongan kode berikut ini:

var rootSmartGudang = firebase.database().ref();
 
// Pembacaan nilai Sensor Suhu
var refSuhuGudang1 = rootSmartGudang.child('sensor_suhu/gudang1');
refSuhuGudang1.on('value', function(snapSuhu) {
  document.getElementById("suhu").innerHTML = "Tidak terbaca";
  document.getElementById("kelembaban").innerHTML = "Tidak terbaca.";
  document.getElementById("suhu").innerHTML = "<b>" + snapSuhu.val().suhu + " C</b>";
  document.getElementById("kelembaban").innerHTML = "<b>" + snapSuhu.val().kelembaban + " %</b>.";

  // Baca status penyalaan AC
  if (snapSuhu.val().status_ac.replace(/"/g,'') == "OTO") {
    document.getElementById("ac").innerHTML = "<b>otomatis menyala</b> disuhu <font color=\"red\"><b>" + snapSuhu.val().suhu_max + "</b></font>, padam disuhu <font color=\"green\"><b>" + snapSuhu.val().suhu_min + "</b></font>.";
  } else if (snapSuhu.val().status_ac.replace(/"/g,'') == "ON") {
    document.getElementById("ac").innerHTML = "<b>menyala terus</b>.";
  } else if (snapSuhu.val().status_ac.replace(/"/g,'') == "OFF") {
    document.getElementById("ac").innerHTML = "<b>dipadamkan</b>.";
  }
});

Penulis memberikan contoh hanya pembacaan data suhu, tetapi untuk pembacaan data lainnya juga sama caranya. Selain itu, penulis memberi warna merah pada kode-kode tersebut untuk memberitahukan korelasi antara desain database, "tempat" untuk menampung data dan pembacaan data di Firebase. Penulis menggunakan metode on() untuk pembacaan data agar ketika data didalam database berubah, maka yang tampilan di "tempat" menampung data akan ikut berubah secara real-time. Hasil dari pembacaan data datap dilihat dibawah ini:
 
Tampilan Hasil Pembacaan Data Dari Database Firebase
Tampilan Hasil Pembacaan Data Dari Database Firebase
Cukup mudah bukan cara pembacaan data dari database Firebase? Semoga tulisan singkat ini bermanfaat bagi anda sekalian.. Silahkan mencoba dan semoga berhasil..