Halo semuanya, kembali lagi di sahretech. Baiklah pada kesempatan kali ini
  kita akan belajar cara membuat bar chart atau diagram batang dengan
  menggunakan bahasa pemrograman php dan data api corona Indonesia. Penasaran?,
  ayo ikuti selengkapnya berikut ini.
  Pada artikel tutorial kali ini kita akan membuat sebuah diagram batang yang
  datanya bersumber dari data.covid19.go.id. Data covid ini aktual dan
  terpercaya, karena sumbernya dari pemerintah langsung. Di dalam diagram batang
  nanti kita akan menampilkan sebaran corona di Indonesia berdasarkan
  masing-masing provinsi. Untuk hasilnya, bisa kalian lihat langsung di akhir
  artikel tutorial ini.
  Berikut ini adalah tampilan data api yang kita ambil dari https://data.covid19.go.id/public/api/prov.json, data yang kita butuhkan adalah data provinsi yang nantinya akan menjadi
  label dan data jumlah kasus yang nantinya akan dipresentasikan sebagai bar
  atau batang.
  
    
      |   | 
    
      | Data covid di Indonesia | 
  
  Data yang terlihat pada gambar di atas adalah data yang sudah diformat
  menggunakan chrome extension yang bernama JSON Viewer. Jadi jika hasil data api
  yang tampak di google chrome kalian berantakan silahkan install chrome
  extension yang saya rekomendasikan di atas agar tampilannya lebih rapih dan
  mudah dibaca.
  
    
      | 📰 1. Study Case : Membuat Website Berita dengan menggunakan NewsAPI dan Bootstrap
        read more | 
    
      | 📰 2. Cara Memuat Website Pencarian Trending dengan Google Trends dan Php
        read more | 
    
      | 📰 3. Apa itu Brute Force Attack dan Berikut Tips Manjur Untuk
        Mencegahnya Komputer
        read more | 
  
  Cara Membuat Diagram Batang dengan Chart Js dan Bahasan Php
  1. Buatlah sebuah folder baru dengan nama diagram_corona di
  dalam folder htdocs. Lalu buat file dengan nama index.php di
  dalamnya. Silahkan copy script di bawah ini dan paste ke dalam file terebut.
<!DOCTYPE html>
<html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css"
        integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
</head>
<body>
    <div class="container mt-4">
        <nav class="navbar navbar-light bg-light mb-4">
            <span class="navbar-brand mb-0 h1"> Grafik Corona</span>
        </nav>
        <div class="row">
            <div class="col-12">
                <div class="card">
                    <div class="card-body">
                        
                        <canvas id="myChart2"></canvas>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <script>
        
        var myChart2 = new Chart(
            
            document.getElementById('myChart2'),
            {
                
                type: 'bar',
                data: {
                    
                    labels: ['label 1', 'label 2'],
                    datasets: [{
                        label: 'Jumlah Sebaran Corona Per-Provinsi',
                        
                        data: [10, 20],
                        
                        backgroundColor: [
                        'rgb(255, 99, 132)',
                        ],
                        hoverOffset: 4
                    }]
                }
            }
        );
    </script>
</body>
</html>
 
  Jika kalian jalankan, maka hasilnya akan tampak seperti gambar di bawah
  ini.Yaitu tampilan sederhana dengan header 'grafik corona' lalu di bawahnya
  terdapat diagram batang.
|  | 
| Contoh diagram dengan data dummy | 
  Data yang tampak pada gambar di atas adalah data dummy, nantinya akan kita
  ganti dengan data api yang sebenarnya. Bar atau batang pada gambar di atas
  akan kita ganti menjadi total kasus, sedangkan label yang berada di bawah
  batang tersebut akan kita ganti dengan nama-nama provinsi.
  2. Tambahkan script php di bawah ini di bawah tag <body>.
  Script ini berfungsi untuk mengambil data json yang nantinya siap digunakan ke
  dalam grafik.
<?php
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, "https://data.covid19.go.id/public/api/prov.json");
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($curl);
    curl_close($curl);
    $data = json_decode($output, true);
?>
 
  Untuk penjelasannya sudah saya sertakan pada script di atas. Tapi jika kalian
  merasa kurang paham, silahkan tanya langsung di kolom komentar di bawah ini.
  3. Langkah selanjutnya adalah menampilkan data provinsi dan jumlah kasus ke
  dalam chart. Silahkan copy script di bawah ini dan replace script labels:
  ['label 1', 'label 2'],
labels: [
    <?php
        foreach($data['list_data'] as $provinsi){
            echo '"'.$provinsi['key'].'",';
        }
    ?>
],
 
  4. Langkah selanjtunya adalah menampilkan jumlah kasus di tiap provinsi.
  Silahkan copy script di bawah ini dan replace script data: [10, 20],
data: [
    <?php
        foreach($data['list_data'] as $kasus){
            echo '"'.$kasus['jumlah_kasus'].'",';
        }
    ?>
],
 
  Sekarang jalankan project kalian, jika berhasil maka tampilannya akan tampak
  seperti gambar di bawah ini.
|  | 
| Hasil Akhir | 
  Bagi yang kesulitan mengikuti tahapan di atas, saya sediakan script lengkapnya
  di bawah ini.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css"
        integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
</head>
<body>
    <?php
        
        $curl = curl_init();
        
        curl_setopt($curl, CURLOPT_URL, "https://data.covid19.go.id/public/api/prov.json");
        
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        
        $output = curl_exec($curl);
        curl_close($curl);
        
        $data = json_decode($output, true);
    
    ?>
    <div class="container mt-4">
        <nav class="navbar navbar-light bg-light mb-4">
            <span class="navbar-brand mb-0 h1"> Grafik Corona</span>
        </nav>
        <div class="row">
            <div class="col-12">
                <div class="card">
                    <div class="card-body">
                        
                        <canvas id="myChart2"></canvas>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script>
        
        var myChart2 = new Chart(
            
            document.getElementById('myChart2'),
            {
                
                type: 'bar',
                data: {
                    
                    labels: [
                        <?php
                            
                            
                            foreach($data['list_data'] as $provinsi){
                                echo '"'.$provinsi['key'].'",';
                            }
                        ?>
                    ],
                    datasets: [{
                        label: 'Jumlah Sebaran Corona Per-Provinsi',
                        //data akan diganti dengan data api pada script berikutnya
                        data: [
                            <?php
                                
                                
                                foreach($data['list_data'] as $kasus){
                                    echo '"'.$kasus['jumlah_kasus'].'",';
                                }
                            ?>
                        ],
                        //semua bar akan diwarnai dengan warna merah
                        backgroundColor: [
                        'rgb(255, 99, 132)',
                        ],
                        hoverOffset: 4
                    }]
                }
            }
        );
    </script>
</body>
</html>
 
  Sekian tutorial cara membuat diagram batang chart js, php dan data api corona
  Indonesia. Semoga tutorial ini bermanfaat. Jika ada yang ingin ditanyakan
  silahkan tanya langsung di kolom komentar di bawah ini. Sampai jumpa di
  tutorial menarik lainnya.
 
Assalamualaikum,mas ini blog nya bagus banget,tapi saya mau tanya kalo API nya beda sumber yang di ganti apa saja ya soalnya saya mau pake API lain hehe thanks
ReplyDeletewaalaikumsalam, terima kasih mas atas kunjugannya. klo beda api, pertama pastikan struktur jsonnya sama dengan api yang saya pake. yang kedua ganti keynya sesuai dengan api yang baru. jika masnya belum paham, bisa baca-baca lagi mengenai api, pengertian api, fungsi api, struktur api, dan cara mennggunakan api di internet.
Deleteterima kasih :)