Thursday 25 June 2020

Mendeteksi Plat Nomor Kendaraan menggunakan OpenCv dan Python : Bilateral Filter dan Edges Detection

Deteksi Plat Nomor Kendaraan dengan OpenCv dan Python menggunakan pendekatan Bilateral Filter dan Edges Detection







Pelat nomor adalah salah satu jenis identifikasi kendaraan bermotor. Pelat nomor juga disebut pelat registrasi kendaraan, atau di Amerika Serikat dikenal sebagai pelat izin (license plate). Bentuknya berupa potongan pelat logam atau plastik yang dipasang pada kendaraan bermotor sebagai identifikasi resmi. Biasanya pelat nomor jumlahnya sepasang, untuk dipasang di depan dan belakang kendaraan. Namun ada jurisdiksi tertentu atau jenis kendaraan tertentu yang hanya membutuhkan satu pelat nomor, biasanya untuk dipasang di bagian belakang.

Pelat nomor memiliki nomor seri yakni susunan huruf dan angka yang dikhususkan bagi kendaraan tersebut. Nomor ini di Indonesia disebut nomor polisi, dan biasa dipadukan dengan informasi lain mengenai kendaraan bersangkutan, seperti warna, merk, model, tahun pembuatan, nomor identifikasi kendaraan atau VIN dan tentu saja nama dan alamat pemilikinya. Semua data ini juga tertera dalam Surat Tanda Nomor Kendaraan Bermotor atau STNK yang merupakan surat bukti bahwa nomor polisi itu memang ditetapkan bagi kendaraan tersebut.
Sumber: Wikipedia

Berdasarkan penjelasan diatas sobat dapat memahami fungsi dari adanya plat kendaraan bukan? Plat yang dimiliki merupakan plat nomer yang mana fungsi dari nomor tersebut untuk mengidentifikasi informasi dari pemilik kendaraan yang bersangkutan, sehingga plat nomer yang ada sifatnya berbeda beda atau tidak akan ada yang sama. Dalam hal ini plat dapat dimanfaatkan untuk diterapkan dalam berbagai keperluan contoh umumnya plat dapat digunakan sebagai identifikasi kepemilikan kendaraan saat parkir.

Berdasarkan hal tersebut, Dettline akan membuat pembahasan mengenai Deteksi Plat Nomor Kendaraan menggunakan Python dan OpenCV. Berikut penjelasannya


Tentukan Gambar Yang Akan Digunakan

Pada tahap awal sobat perlu menyediakan sebuah gambar yang mana pada gambar tersebut terdapat plat nomer kendaraan, contoh yang Dettline gunakan adalah gambar berikut:
Gambar bahan untuk tutorial deteksi plat kendaraan


Import Semua Library Yang Diperlukan

Kode yang diperlukan adalah sebagai berikut

import numpy as np
import cv2
import  imutils


Buat Variabel Foto Lalu Coba Untuk Tampilkan

Dalam membuat variabel untuk foto ini dapat dibuat dengan nama bebas, pada tutorial ini Dettline memberikan nama untuk variabel tersebut dengan nama gambar. Penulisan seperti dibawah ini

gambar = cv2.imread('E:\ERESHA\Semester 2\mobil2.jpg')
cv2.imshow("Gambar Asli", gambar)

gambar adalah nama variabel yang dibuat untuk menampung gambar yang akan dideteksi plat nomernya. Sedangkan kode imread berisi alamat gambar yang akan kita gunakan, cocokan alamat tersebut dengan gambar yang sobat Dettline sudah sediakan.
Kode imshow akan menampilkan isi dari variabel gambar dengan memberi nama judul tampilan Gambar Asli.



Convert Foto Dalam Mode Grayscale

Ini merupakan salah satu syarat untuk mendapatkan objek plat nomor kendaraan, tahap ini yang perlu kalian tulis adalah 

gray = cv2.cvtColor(gambar, cv2.COLOR_BGR2GRAY)
cv2.imshow("1 - Gambar Grayscale", gray)

gray adalah variabel baru yang dibuat untuk menerapkan si gambar dengan efek BGR agar menjadi gambar Grayscale. Lalu tampilkan kembali hasilnya dengan imshow untuk melihat bahwa gambar telah berubah
Gambar di tahap ini saat berhasil menjadi Grayscale



Mereduksi Noise Pada Gambar Grayscale Yang Telah Dibuat Sebelumnya

Pada tahap ini, gambar Grayscale sebelumnya akan dibersihkan noise-nya untuk hasil yang lebih baik, berikut kodenya

gray = cv2.bilateralFilter(gray, 11, 17, 17)
cv2.imshow("2 - Gambar dengan filter Bilateral", gray)


Settingan yang cocok untuk mengurangi noise pada gambar grayscale adalah 11, 17, 17 menggunakan kode bilateralFilter. Selanjutnya silakan sobat tampilkan dengan imshow kembali
Bila diperhatikan baik baik terdapat perbedaan pada gambar sebelumnya dimana gambar yang sekarang lebih samar noise-nya atau terkesan lebih lembut



Membuat Foto Menjadi Canny Edges

Sebelum masuk ke tahap akhir, foto harus diubah untuk mendapat efek Canny Edges, dengan begitu plat nomer yang ada pada kendaraan semakin mudah untuk dideteksi, kodenya sebagai berikut

edged = cv2.Canny(gray, 255, 255)
cv2.imshow("4 - Membuat gambar Canny Edges", edged)

Hasilnya akan seperti foto di bawah ini
Gambar yang telah diberi efek Canny
Tentunya gambar itu bisa didapat bila sudah menerapkan efek gray


Final Untuk Mendapat Hasil Akhir Plat Nomor Kendaraan

Setelah sobat Dettline berhasil melakukan itu semua, sobat dapat menjalankan kode terakhir untuk mendapatkan hasil akhir yaitu deteksi plat nomor kendaraan, kodenya sebagai berikut

# Find contours based on Edges
(cnts, _) = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
cnts=sorted(cnts, key = cv2.contourArea, reverse = True)[:30] #sort contours based on their area keeping minimum required area as '30' (anything smaller than this will not be considered)
NumberPlateCnt = None #we currently have no Number plate contour

# loop over our contours to find the best possible approximate contour of number plate
count = 0
for c in cnts:
        peri = cv2.arcLength(c, True)
        approx = cv2.approxPolyDP(c, 0.02 * peri, True)
        if len(approx) == 4# Select the contour with 4 corners
            NumberPlateCnt = approx #This is our approx Number Plate Contour
            break


# Drawing the selected contour on the original image
cv2.drawContours(gambar, [NumberPlateCnt], -1, (255,255,0), 3)
cv2.imshow("Hasil Akhir! Deteksi Plat Kendaraan", gambar)

cv2.waitKey(0) #Wait for user input before closing the images displayed

Hasil Akhir Akan Seperti Berikut!

Hasil akhir deteksi plat nomer kendaraan

Semoga artikel ini dapat membantu sobat Dettline semuanya, terimaksih.
Read more

Tuesday 3 January 2017

Menginput Data Kedalam Tabel Tanpa Database Dilengkapi Dengan Validasi (Javascript)

Cara Memasukkan Data Kedalam Tabel Tanpa Database Dilengkapi Validasi Menggunakan Javascript (Sederhana)


Dettline, DettlineTube

Pada artikel ini merupakan kelanjutan dari artikel “Membuat Validasi Input Menggunakan Javascript” dan “Cara Memasukan Data Kedalam Tabel Sementara Menggunakan Javascript”. Keduanya artikel tersebut akan dicoba untuk digabungkan menjadi satu. Jadi, ketika data kosong akan di input maka data tersebut tidak akan langsung masuk kedalam tabel, namun akan ada tampilan validasi yang akan memberitahu bahwa data tersebut masih salah atau masih kosong. Okey langsung saja.

Membuat Tampilan HTML Simpan Dengan Nama Tutor.html

<html>
<head>
  <title>Dettline</title>
  <script src='javascript.js'></script>
</head>
<body>
<form name='biodata' method='post' action='tutor.html'>
<pre>
Nim     : <input type='number' name='nim'><p id='val_nim'>* Hanya boleh di-isi dengan angka</p>
Nama    : <input type='text' name='nama' ><p id='val_nama'>* Masukkan Nama Mahasiswa</p>
Agama   : <select name='agama'>
      <option>Islam
      <option>Hindu
      <option>Budha
      <option>Kristen              
      <option>Konghucu        
      </select><p>* Pilih Agama</p>
</pre>
  <input type='button' onClick='terimainput()' value='Simpan'>
  <input type='reset' value='Ulangi'>

</form>

<table border='1' id='tabelinput'>
<tr>
  <td>NIM</td>
  <td>NAMA</td>
  <td>AGAMA</td>
</tr>
</table>

</body>
</html>


Penjelasan mengenai codingan diatas sudah dibahas lengkap pada artikel-artikel sebelumnya. Artikel1 dan artikel2. Namun dettline akan coba mengulasnya sedikit. Pada HTML diatas bagian yang terpenting adalah name dan id serta onClick. Bagian tersebut adalah bagian yang terhubung dengan javascript. Dalam tutorial ini, Javascript itu sendiri dibuat dengan file yang berbeda (tidak ditulis langsung di dalam file tutor.html). Berikut adalah langkah untuk membuat file javascript. Menggabungkan Javascript Validasi dan Mandatory Javascript.



Membuat File Javascript Simpan Dengan Javascript.js


Simpanlah file berikut dalam 1 lokasi penyimpanan yang sama dengan file tutor.html diatas.

               
function terimainput(){
var x=document.forms['biodata']['nim'].value;
var y=document.forms['biodata']['nama'].value;
var z=document.forms['biodata']['agama'].value;
if(x==null || x=="")
{
  document.getElementById("val_nim").innerHTML="<font color='red'><b>* Harap Isi Kolom NIM Dengan Benar</b></font>";

  if(y==null || y=="") {
  document.getElementById("val_nama").innerHTML="<font color='red'><b>* Harap Isi Kolom NAMA Dengan Benar</b></font>";
  } else {
  document.getElementById("val_nama").innerHTML="<font color='purple'>* Benar</font>";
  }
} else {
document.getElementById("val_nim").innerHTML="<font color='purple'>* Benar</font>";

if(y==null || y=="") {
  document.getElementById("val_nama").innerHTML="<font color='red'><b>* Harap Isi Kolom NAMA Dengan Benar</b></font>";
  } else {
    document.getElementById("val_nama").innerHTML="<font color='purple'>* Benar</font>";

    var tabel = document.getElementById("tabelinput");
    var row = tabel.insertRow(1);
    var cell1 = row.insertCell(0);
    var cell2 = row.insertCell(1);
    var cell3 = row.insertCell(2);

    cell1.innerHTML = x;
    cell2.innerHTML = y;
    cell3.innerHTML = z;
  }
}
}


Bila sampai tahap ini telah sobat buat, maka sobat dapat mengujinya sekarang. Secara garis besar tampilannya akan seperti ini


Dettline, DettlineTube

Dan ada sedikit tambahan dari Dettline, semoga bermanfaat.
Dettline menambahkan lampiran kedua file diatas. Sobat dapat mengunduhnya melalui GoogleDrive > Download

Terimakasih atas kunjungan sobat. Semoga artikel ini dapat membantu.
Read more

Cara Memasukkan Data Kedalam Tabel Tanpa Menggunakan Database (Javascript)

(HTML) Membuat Tabel Sementara Menggunakan Javascript

Kali ini Dettline akan menjelaskan bagaimana “caranya untuk menginput data kedalam tabel tanpa menggunakan database”. Cara yang digunakan juga sangatlah sederhana, sobat hanya perlu menambahkan beberapa baris codingan javascript. Namun data yang nantinya sobat masukkan ini sifatnya hanya sementara. Sehingga ketika sobat merefresh ulang laman tersebut, data yang dimasukan tadi akan hilang. Hhhmm tidak permanen ya!? Benarkah isi artikel ini yang sobat cari? Sebenarnya artikel ini Dettline buat berdasarkan tugas yang admin pernah terima di kampus. Mungkin saat ini ada diantara sobat Dettline yang sedang mencarinya. Semoga bisa menjadi solusi untuk sobat.

Buat Format HTML dan Javascript



Strukturnya hampir sama dengan artikel Dettline sebelumnya, yaitu tentang “Membuat Validasi Input Menggunakan Javascript”. Kolom yang diisi hanya pada kolom NIM dan NAMA saja. Sedangkan kolom AGAMA menggunakan menu combobox. Tombol SIMPAN dan ULANGI menggunakan type “button” dan ”reset”.

Kodingan yang dibuat juga sebenarnya tidak jauh berbeda dengan artikel sebelumnya. Hanya ada sedikit pengurangan dan penambahan saja. Hasil perubahan yang Dettline lakukan isinya seperti dibawah ini. Simpan file tersebut dengan nama tutor.html


<html>
<head>
      <title>Dettline</title>
      <script src='javascript_tabel.js'></script>
</head>
<body>
<form name='biodata' method='post' action='tutor.html'>
<pre>
Nim     : <input type='number' name='nim'>
Nama    : <input type='text' name='nama' >
Agama   : <select name='agama'>
      <option>Islam
      <option>Hindu
      <option>Budha
      <option>Kristen             
      <option>Konghucu       
      </select>
</pre>
      <input type='button' onClick='terimainput()' value='Simpan'>
      <input type='reset' value='Ulangi'>

</form>

<table border='1' id='tabelinput'>
<tr>
      <td>NIM</td>
      <td>NAMA</td>
      <td>AGAMA</td>
</tr>
</table>

</body>
</html>


Perbedaan yang paling mencolok dari artikel sebelumnya adalah format yang ada pada TAG <table>. Gunanya TAG tersebut adalah untuk menampilkan data yang telah sobat input sebelumnya.

Atribut id yang ada di dalam TAG table digunakan sebagai selector penghubung javascript. Dengan id tersebut, javascript akan memiliki hak akses untuk memanipulasi tabel tersebut.

*Ket: bila sobat ingin menambahkan CSS di dalam tabel yang memiliki selector id tersebut. Sebaiknya sobat menggunakan selector CSS Class. Agar tidak mengganggu selector antara CSS dan Javascript.

Yang perlu sobat perhatikan di sini adalah atribut name yang ada didalam TAG <form> dan TAG <input>. Keduanya digunakan untuk identifikasi atau pemberian nama agar javascript dapat mengaksesnya dan menerima inputannya.


Sedangkan atribut onClick didalam tombol/button, digunakan untuk meletakkan function javascript. Berikut adalah isi dari coding javascript. Simpanlah di lokasi penyimpanan yang sama dengan file html diatas lalu simpan dengan nama javascript_tabel.js. 


function terimainput(){
       var x=document.forms['biodata']['nim'].value;
       var y=document.forms['biodata']['nama'].value;
       var z=document.forms['biodata']['agama'].value;
               
                                               
       var tabel = document.getElementById("tabelinput");
       var row = tabel.insertRow(1);
       var cell1 = row.insertCell(0);
       var cell2 = row.insertCell(1);
       var cell3 = row.insertCell(2);
               
       cell1.innerHTML = x;
       cell2.innerHTML = y;
       cell3.innerHTML = z;
}


Function terimainput() merupakan fungsi yang akan digunakan oleh tombol Simpan yang terdapat pada file tutuor.html. Saat tombol tersebut di-klik maka isi dari function terimainput() akan di-eksekusi atau dijalankan.

Lalu var x, var y, var z adalah nama variabel yang menerima isi dari data nim (var x), nama (var y) dan agama (var z). Sedangkan penulisan “biodata” adalah identifikasi dari TAG <form> yang ada di dalam file tutor.html. Maksudnya adalah variabel x,y dan z akan mengambil data dari formulir biodata, dan masing-masing diantaranya mempunyai peran penting untuk mengolah data tertentu (nim, nama, agama).

var tabel adalah nama variabel untuk mewakili tabel yang memiliki id “tabelinput” yang ada didalam tutor.html. Sedangkan var row digunakan untuk menambahkan baris pada tabel tersebut, dan kolomnya diwakili oleh variabel var cell1, var cell2, dan var cell3. Selanjutnya var cell1, var cell2, dan var cell3 diisi dengan variabel x, y dan z.


Uji Coba


Setelah dua file tersebut telah sobat buat, sekarang silakan jalankan file tutor.html lalu cobalah sobat praktikan, Bisakah tampil seperti ini?




Berhasil bukan? Selamat, selamat.
Berikutnya Dettline akan coba untuk membuat artikel gabungan antara artikel ini dengan artikel “Membuat Validasi Input Menggunakan Javascript”. Terimakasih atas kunjugan sobat. Semoga artikel ini dapat membantu.
Read more

Membuat Validasi Input Menggunakan Javascript (Mandatory Javascript)

Mandatory Javascript

Bagi sobat yang sedang mencari tahu bagaimana caranya untuk membuat validasi sebuah kolom inputan (HTML). Mungkin kehadiran sobat pada artikel ini bisa menjadi pilihan yang tepat. Namun, sebelum membahas isi dari tema artikel ini, ada 1 hal yang perlu sobat ketahui terlebih dahulu, yaitu Mandatory Javascript. Pernah mendengarnya? 2 Kata tersebut adalah sebutan umum untuk codingan yang sejenis ini atau codingan yang digunakan untuk membuat validasi (menggunakan javascript). Untuk cara-caranya juga beragam, Mandatory Javascript tidak hanya ada 1 jenis, beberapa diantaranya memiliki caranya tersendiri. Namun pada artikel ini akan Dettline coba untuk menyajikan codingan yang menurut Dettline mudah untuk dimengerti. Okey langsung saja kita bahas codingannya.


Buatlah Format Form Seperti Dibawah Ini


Jadi, kolom yang dapat diisi hanya pada kolom NIM dan NAMA saja. Sedangkan kolom AGAMA menggunakan menu combobox. Tombol SIMPAN dan ULANGI menggunakan type “button” dan ”reset”. Button nantinya akan digunakan untuk menjalankan Mandatory Javascript, lalu type reset digunakan untuk menghapus semua karakter yang terisi pada kolom input (NIM dan NAMA).

Untuk membuat tampilan seperti gambar diatas, lakukan koding seperti dibawah ini. Buka notepad sobat lalu simpan dengan nama tutor.html
<html>
<head>
      <title>Dettline</title>
</head>
<body>
<form name='biodata' method='post' action='tutor.html'>
<pre>
Nim     : <input type='number' name='nim'><p id='val_nim'>* Hanya boleh di-isi dengan angka</p>
Nama    : <input type='text' name='nama' ><p id='val_nama'>* Masukkan Nama Mahasiswa</p>
Agama   : <select name='agama'>
      <option>Islam
      <option>Hindu
      <option>Budha
      <option>Kristen              
      <option>Konghucu        
      </select><p>* Pilih Agama</p>
</pre>
      <input type='button' onClick=' ' value='Simpan'>
      <input type='reset' value='Ulangi'>

</form>

</body>
</html>

*Ket :
Perlu sobat ketahui, berdasarkan kalimat diatas tadi. Dettline akan mencoba untuk memberikan tutorial yang sederhana agar sobat dapat lebih mudah untuk memahaminya. Maka dari itu codingan diatas menggunakan TAG <PRE>. Gunanya adalah mencetak tampilan halaman apa adanya.

Maksudnya <pre> adalah bila sobat memberi karter “space” atau “spasi”, baik “enter” maupun “tab”, semua itu akan dibaca oleh mesin dan akan ditampilkan kedalam tampilan web. Sehingga sobat dapat lebih mudah untuk membuat baris baru atau mengatur kesamaan posisi dari symbol ( : ) agar menjadi seimbang dan sesuai dengan keinginan.

Input type=’number’ merupakan sebuah atribut yang menandakan bahwa inputan harus berupa angka. (Kemungkinan bila melaui Chrome, macam-macam karakter tidak dapat diketik, sedangkan lewat Firefox karakter tetap bisa diinput namun saat klik tombol simpan, kolom akan berubah menjadi merah. Yang menandakan bahwa inputan salah).

<p id=’val_nim’> dan <p id=’val_nama’>
Digunakan untuk memberi notif bila ada kesalahan inputan. <P> sendiri maksudnya adalah paragraf. Paragraf tersebut akan di-replace ketika ada kesalahan input.

Setelah itu yang perlu diketahui oleh sobat selanjutnya adalah atribut “NAME”. Kenapa ada atribut tersebut? Atribut tersebut digunakan untuk pemberian nama identitas atau dapat disebut juga sebagai variabel yang akan digunakan untuk keperluan javascript.

Lalu untuk apa perintah “onClick” dan “Value”?
Gunanya onClick yaitu sebagai perintah yang akan dijalankan ketika tombol tersebut di-klik.
Sedangkan Value fungsinya untuk memberikan tulisan yang akan ditampilkan pada tombol.

Hampir lupa mengenai method dan action.
Gunanya adalah untuk menentukan parsing data dan juga untuk menentukan lokasi tujuan yang akan menerima inputan. Untuk method/parsing data ada yang menggunakan GET (Menampilkan data didalam link address) ataupun POST (Menyembunyikan data agar tidak tampil pada link address).
Sebenarnya penggunaan method dan action tidak berpengaruh penting pada tutor kali ini, namun hal ini bisa menjadi gambaran untuk sobat nantinya, bahwa data (inputan) dapat dikirim melalui atribut method dan action.

Membuat Coding Javascript Mandatory

Buatlah koding seperti berikut, simpan dengan nama javascript.js

function terimainput(){
    var x=document.forms['biodata']['nim'].value;
    var y=document.forms['biodata']['nama'].value;
    var z=document.forms['biodata']['agama'].value;
               
    if(x==null || x=="")
    {
         document.getElementById("val_nim").innerHTML="<font color='red'><b>* Harap Isi Kolom NIM Dengan Benar</b></font>";
                               
         if(y==null || y=="") {
         document.getElementById("val_nama").innerHTML="<font color='red'><b>* Harap Isi Kolom NAMA Dengan Benar</b></font>";                                      
         } else {
         document.getElementById("val_nama").innerHTML="<font color='purple'>* Benar</font>";
         }
    } else {
                               
         document.getElementById("val_nim").innerHTML="<font color='purple'>* Benar</font>";
                               
         if(y==null || y=="") {
         document.getElementById("val_nama").innerHTML="<font color='red'><b>* Harap Isi Kolom NAMA Dengan Benar</b></font>";                                      
         } else {
                               
         //PROSES INPUT             
                               
         }
    }
}

*Ket:
Untuk lokasi penyimpanan, sebaiknya disimpan di lokasi penyimpanan yang sama dengan tutor.html yang tadi telah sobat buat.

Penjelasannya.
Function terimainput() merupakan fungsi yang akan digunakan oleh tombol Simpan yang terdapat pada file tutuor.html. Saat tombol tersebut di-klik maka isi dari function terimainput() akan di-eksekusi atau dijalankan.

Lalu var x, var y, var z adalah nama variabel yang menerima isi dari data nim (var x), nama (var y) dan agama (var z). Sedangkan penulisan “biodata” adalah identifikasi dari TAG <form> yang ada di dalam file tutor.html. Maksudnya adalah variabel x,y dan z akan mengambil data dari formulir biodata, dan masing-masing diantaranya mempunyai peran penting untuk mengolah data tertentu (nim, nama, agama). Mudah dipahami kan sobat?

Lalu if – else, if – else tersebut adalah opsi penentu. Logikanya adalah
if(x==null || x==””)    ---> Jika variabel x sama dengan kosong atau variabel x tanpa sebuah isi.
if(y==null || y==””)    ---> Jika variabel y sama dengan kosong atau variabel y tanpa sebuah isi.

Sedangkan else adalah pengecualian. Maksudnya yaitu bila keadaan yang ditentukan (seperti contoh opsi penentu tersebut) tidak sesuai atau dapat diartikan bahwa x memiliki nilai, atau y memiliki isi. Maka perintah else –lah yang akan dijalnkan.

Struktur javascript diatas memiliki if – else di dalam if – else.

Oh iya, pada bagian //PROSES INPUT. Di bagian tersebut dapat digunakan untuk eksekusi lanjut bila data yang diinput semuanya bernilai true/benar. Bila sobat masih kurang paham mengenai alur tersebut dapat sobat sampaikan melalui kolom komentar, atau hubungi admin langsung.

Singkronisasi HTML dan Javascript

Bila masing-masing file telah dibuat, sekarang adalah waktunya untuk menggabungkan kedua file tersebut. Dengan cara sisipkan TAG

<script src='javascript.js'></script>

Dibawah TAG <title>Dettline</title>
Setelah itu isikan onClick yang ada pada button simpan dengan isi ‘terimainput()’. Maka akan tersusun seperti ini:

<input type='button' onClick='terimainput()' value='Simpan'>

Bila semua cara telah sobat ikuti dengan lancar, maka sobat dapat melihat langsung prosesnya. Buka HTML sobat, lalu silakan uji coba file tersebut. Hasilnya mungkin tidak akan jauh berbeda seperti ini:

Setiap ada kolom yang belum di-isi atau data yang dimasukkan salah (seharusnya angka, namun diinput huruf) lalu tombol Simpan di-klik maka akan menampilkan validasi pada bagian yang salah.

Demikian tutorial pertama pada kategori HTML versi Dettline. Terimakasih atas kunjungan sobat, semoga artikel ini dapat membantu. Bila ada pertanyaan yang ingin disampaikan, sobat dapat bertanya melalui komentar atau hubungi akun Dettline langsung.




Read more

Sunday 1 January 2017

Tips Dan Trik Mudah Menaikkan Dan Mempertahankan Rank Duel (Yugioh Duel Links)

Cara Mudah Mempertahankan Rank Duel Agar Tidak Turun Ranking (Yugioh Duel Links)

Duel Links, Yugioh, Dettline, DettlineTube
Bosan turun ranking? Ingin mencapai ranking duel tertinggi? Caranya mudah, susun deck sedemikian mungkin agar pertahanan maupun menyerang tetap seimbang, setelah itu kalahkan semua pesaing tanpa kalah berturut-turut. Hehe sederhana bukan?. 



Eits, Mau Kemana? Bukan itu kok tema pembahasan Dettline kali ini. Hal yang ingin Dettline sampaikan adalah cara untuk mempertahankan Rank Duel dalam game duel links. Mau tau caranya? Berikut pembahasannya.

Baca juga, review dan pengenalan game duel links.



Siapkan Deck Sobat

Langkah awal yaitu buatlah susunan deck sobat sebagus mungkin, ikuti gaya bermain sobat. Bila suka terhadap spell atau trap, siapkan seperlunya dan jangan lupa untuk mengimbanginya dengan kartu monster. Atau sobat suka bermain menyerang? Jangan terpaku hanya pada kartu monster, namun spell dan trap juga berperan penting dalam duel. Bahkan skill juga berpengaruh terhadap jalannya pertandingan. Maka pilihlah skill sesuai keahlian sobat.

Refrensi, pengenalan skill dan cara menggunakan skill duel links.


Ikuti Duel Rank Tanpa Ragu

Semangat awal dalam berduel merupakan dorongan bagus untuk menjemput kemenangan. Sobat jangan berfokus pada kemenangan, ada kalanya dalam duel masing-masing duelist mendapat tekanan, atau keuntungan. Hal tersebut sudahlah tak asing dalam duel ini. Jadi, bawa gairah berduel sobat dalam duel tersebut.


Trik Utama Mempertahankan Rank

Nah, pada bagian ini adalah deretan kalimat atau langkah yang akan membantu sobat mencegah adanya penurunan ranking. Entah cara ini dapat digunakan sampai kapan?! Namun trik ini sudah lulus uji coba berulangkali di akun Admin. Perhatikan gambar berikut ini:





Pernah kejadian yang seperti ini? Bila iya, maka duel sobat tidak akan terdaftar dalam history duel. Bingung maksud dari history duel? Nanti akan Dettline jelaskan di akhir sub-judul ini. Saat ini mari kita bahas mengenai caranya agar mempertahankan rank duel.

Perhatikan baik baik. Siap?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ketika sobat berduel, dan melihat bahwa kemenangan lawan sudah 99% pasti lawan yang akan menang. Lakukan langkah ini.

       "Tarik menu pintasan ponsel sobat, lalu pilih data selular".

Loh kok caranya seperti itu? Jawabannya Ya,
Caranya memang seperti itu.

Ketika internet terputus, maka duel tersebut tidak dimasukkan kedalam history duel sobat. Sobat dapat membuktikanya ketika kembali ke arena PvP, lalu liat history duel, (yaitu keterangan beberapa lawan terakhir yang pernah sobat lawan).

Ketika lawan yang sobat terapkan langkah diatas, maka history mengenai lawan tersebut tidak akan tampil atau bahkan tidak akan ada di dalam history duel. Benar kan?

Dengan begitu, server tidak membaca adanya duel yang pernah dilakukan oleh sobat terhadap lawan tersebut. Sehingga ranking sobat dapat diselamatkan. Tidak akan turun.

Namun setelah sobat menggunakan cara tersebut, sebaiknya sobat menunggu dan beri jeda beberapa menit. Setelah itu barulah login kembali, guna memastikan bahwa duel tersebut telah selesai/ditutup.

*Info : lawan yang menerima trik tersebut sepertinya tetap mendapat kemenangan dan history duel dalam akunnya. Kesimpulannya, lawan tidak mendapat kerugian besar. Mereka hanya kehilangan waktunya dan XPnya saja.


Tambahan

Surender yang dilakukan duelist tidak berpengaruh besar terhadap penurunan ranking. Jadi jika sobat ingin mengundurkan diri dalam duel, tidak masalah. Hal tersebut hanya mengurangi kesempatan untuk menang.

Lagipula, setau admin. Bila sobat menerima kekalahan 2x berturut-turut tetap tidak masalah. Kecuali 3x kalah secara berturut-turut. Maka dapat dipastikan akun sobat akan turun ranking.

Nah, ketika akun sobat sudah sampai tahap silver rank. Maka sobat baru bisa naik ranking ketika sobat berhasil mengalahkan lawan 2x berturut-turut. Dan pada tahap gold rank, sobat harus menang 3x berturut-turut dalam duel untuk naik ranking.




~~~~~~~~~~~~~~~~~~~~~~~~

Oh iya, tambahan lagi dari Dettline.
Cara ini hanya berlaku untuk mempertahankan rank, bukan untuk menaiki ranking. Tentang naik ranking, itu semua tergantung keahlian sobat dalam berduel.

Ini data update akun sobat saat ini. GOLD RANK! Hehehe ...



Sekian trik yang Dettline berikan saat ini, semoga membantu sobat untuk terhindar dari kegalauan turun rank duel hehehe. Bila ada pertanyaan atau kritik dan saran, sobat dapat menyampaikannya di dalam kolom komentar atau hubungi akun sosmed Dettline. Terimakasih atas kunjungan sobat.
Read more