Unlimited Wordpress themes, plugins, graphics & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Web Design
  2. Data Visualization

Visualisasi data dengan DataTables.js dan Highcharts.js

by
Difficulty:IntermediateLength:MediumLanguages:

Indonesian (Bahasa Indonesia) translation by Sap (you can also view the original English article)

Dalam tutorial ini, Anda akan belajar bagaimana untuk memvisualisasikan data dengan mengambil keuntungan dari DataTables.js dan Highcharts.js libraries JavaScript.

Berikut adalah apa yang akan kita untuk membangun (Lihat versi yang lebih besar untuk pengalaman yang lebih baik):

Libraries yang Dibutuhkan

Untuk keperluan contoh ini, kita harus memuat libraries berikut dalam pena kami:

  • jQuery
  • DataTables.js
  • Highcharts.js

Dengan itu dalam pikiran, jika Anda melihat di bawah tab Settings, Anda akan melihat bahwa saya telah menyertakan satu file CSS eksternal:

Dengan cara yang sama, saya juga menyertakan empat JavaScript file eksternal:

Catatan: kami harus menambahkan jQuery untuk proyek kami karena DataTables.js adalah sebuah plugin jQuery. Namun, perlu diingat bahwa Highcharts.js adalah sebuah library JavaScript yang murni, dan dengan demikian tidak memerlukan jQuery.

HTML

Untuk memulai hal-hal kita mendefinisikan sebuah elemen dengan kelas container yang berisi dua sub-elemen:

  • Sebuah tabel dengan baris 26. Baris pertama merujuk pada header tabel th, sementara 25 baris lain membawa rincian negara. Sumber data kami untuk contoh ini adalah worldometers.info.
  • Div kosong yang akan mengadakan grafik.

Berikut adalah struktur HTML:

It's worth menyebutkan bahwa, demi kesederhanaan, kita telah menentukan data tabel hard-coded tersebut. Dalam sebuah proyek yang nyata walaupun, tabel mungkin dibuat secara dinamis.

Dengan markup siap, dan warna latar belakang yang ditambahkan untuk kejelasan, proyek terlihat seperti ini:

CSS

Pada titik ini, kita mendefinisikan beberapa gaya dasar, seperti:

Penting untuk memahami bahwa:

  • #dt-table_wrapper tidak ada di markup kami. Itu ditambahkan oleh DataTables segera setelah kami menginisialisasi kan.
  • Sementara kita mendefinisikan beberapa aturan dasar untuk layar kecil, dicatat bahwa demo tidak akan sepenuhnya responsif. Ada banyak hal yang bisa kita lakukan untuk membuat tabel dan grafik terlihat lebih baik pada layar kecil. Misalnya, untuk DataTables terdapat sebuah ekstensi yang Responsif, tapi yang berada di luar cakupan tutorial ini.

Dengan CSS, mari kita lihat bagaimana proyek terlihat. Kita tidak akan melihat perbedaan besar namun karena kita belum diinisialisasi libraries:

JavaScript

Sekarang untuk jendela JavaScript dalam pena kami. Ketika DOM sudah siap, fungsi init dijalankan; fungsi ini memicu sub-fungsi lain:

Seperti yang Anda lihat, masing-masing fungsi sub menyelesaikan tugas tertentu.

Inisialisasi DataTables

Langkah pertama adalah untuk mengubah table kami ke dalam tabel "DataTables". Kita dapat melakukan ini dengan hanya satu baris kode: $("#dt-tabel"). DataTable();

Jika kita sekarang melihat tabel, kita akan melihat bahwa ini telah mengadopsi kemampuan tabel DataTables, yaitu: kita semacam itu, Cari, dan sebagainya. Bermain dengan itu di demo berikut:

Sekarang, seperti yang Anda lihat, DataTables berlaku default penyortiran ke tabel. Jika diperlukan, kita dapat menyesuaikan perilaku ini.

Penggalian Data Tabel

Langkah berikutnya adalah untuk mengambil data tabel dan membangun chart. Kami tidak ingin semua tabel data. Pada kenyataannya, jika Anda melihat kembali selesai versi demo kami, Anda akan melihat bahwa tabel hanya berisi data dari pertama tiga kolom (Country, Population, Density).

Dengan itu, untuk mengambil data yang dibutuhkan, kita akan mengambil keuntungan dari DataTables API. Fungsi bertanggung jawab untuk perilaku ini adalah sebagai berikut:

Dalam fungsi ini, kita iterate melalui baris tabel dan untuk setiap baris, kita ambil data kolom sasaran dan menyimpannya dalam array terkait. Akhirnya, Semua array yang disimpan dalam array yang lain.

Berikut ini adalah sebuah visualisasi cepat array master (yaitu dataArray):

The array which holds the desired table data

Sebelum pindah, penting untuk memahami satu hal. Secara default, fungsi getTableData harus mengumpulkan data dari semua baris tabel. Tapi kemudian, jika kita mencari tabel untuk sesuatu yang spesifik, hanya baris yang sesuai harus dikumpulkan dan diproses. Untuk mencapai hal ini, kita melewati sebuah argumen ke fungsi baris. Secara khusus, objek dengan search: "applied" nilai properti.

Lagi dicatat bahwa jika kita tidak lulus objek ini, selalu bagi kita akan mengumpulkan data dari semua baris tabel (menguji). Untuk informasi lebih lanjut tentang sifat-sifat yang kami dapat melewati ke objek ini, pastikan untuk melihat page ini.

Buat Grafik

Sekarang bahwa kita memiliki data yang diinginkan, kami siap untuk membangun grafik. Ini akan berisi dua grafik yang nested, satu Kolom chart dan satu Spline chart.

Berikut adalah fungsi yang sesuai:

Jangan kewalahan oleh kode di atas! Tanpa diragukan lagi cara terbaik untuk memahami cara kerjanya adalah untuk mencobanya. Plus, Anda pasti harus membaca dokumentasi. Bagaimanapun, mari kita secara singkat kunci konsep-konsep:

  • Sumbu-x berisi semua negara.
  • Kita mendefinisikan dua y-axes. Yang pertama memegang semua nilai populasi, sedangkan yang kedua mencakup semua kepadatan tersedia.
  • Jika tabel kami tidak berisi data pesan muncul. Diketahui bahwa kami tidak dapat menyesuaikan teks pesan melalui objek lang.

Dengan grafik, mari kita sekali lagi melihat kemajuan kami:

Sinkronisasi tabel dan grafik

Di bagian sebelumnya, kami membangun grafik berdasarkan data tabel, tetapi masih ada tidak ada sinkronisasi penuh antara tabel dan grafik. Untuk membuktikan hal itu, kembali kepada demo dan mengubah Pemesanan (penyortiran) Tabel, atau mencari sesuatu. Anda akan melihat bahwa tabel tidak bereaksi terhadap perubahan tabel.

Untuk memperbaiki ini, kami akan mengambil keuntungan dari acara menarik DataTables. Acara ini kebakaran setiap kali tabel mendapat diperbarui. Jadi segera setelah kami mengubah tabel kita harus mengingat data tabel dan merekonstruksi grafik.

Di sini adalah hal yang sulit sekalipun. Peristiwa menarik juga kebakaran selama pagination tabel; tidak ada alasan untuk membangun kembali tabel selama proses ini. Idealnya, kita harus mencegah perilaku ini. Untungnya, ada acara page yang membantu kita menyelesaikan tugas ini.

Berikut adalah kode sumber yang mengimplementasikan fungsi yang diinginkan:

Sekarang bahwa tabel dan grafik disinkronisasi, jika kita membuat pencarian "bad", kita akan melihat pesan berikut:

Versi final dari proyek kami:

Dukungan browser

Kedua plugin memiliki browser besar mendukung (DataTables support, Highcharts support), sehingga Anda dapat mengharapkan bahwa demo ini akan bekerja dengan baik di Semua browsers.

Lagi diingat bahwa demo ini tidak dioptimalkan untuk layar kecil.

Terakhir, seperti biasa, kami menggunakan Babel untuk mengkompilasi kode ES6 untuk ES5.

Kesimpulan

Itu dia! Kami berhasil untuk memvisualisasikan data kami dengan menggabungkan dua library JavaScript populer dan hebat.

Sekarang bahwa Anda terbiasa dengan proses, dan menguraikan fungsi demo akhir. Sebagai contoh, mencoba menambahkan custom filters ke tabel.

Seperti biasa, jika Anda memiliki pertanyaan atau jika ada apa pun Anda ingin melihat sebagai langkah berikutnya untuk tutorial ini, beritahu saya di komentar di bawah ini.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.