/Data_Visualization

Data Analytic & Visualization Exercises

Primary LanguageJupyter Notebook

Analytics & Visualization Exercises

Purwadhika

Soal 1 - SPLTV (Sistem Persamaan Linear Tiga Variabel)

Bersumber dari blog catarinadyah90, terdapat 3 buah persamaan linear 3 variabel sebagai berikut:

x  - 2y +  z =  6
3x +  y - 2z =  4
7x - 6y -  z = 10
  1. Dengan menggunakan numpy, buatlah sebuah program python yang dapat menentukan nilai x, y & z dari 3 buah persamaan di atas! Hasil yang diharapkan saat program dieksekusi adalah:

    Nilai x = 5.0
    Nilai y = 3.0
    Nilai z = 7.0
  2. Dengan menggunakan matplotlib, buatlah sebuah program python yang dapat menggambarkan area 3D yang merepresentasikan masing-masing persamaan di atas. Hasil yang diharapkan saat program dieksekusi berupa 1 buah figure dengan 3 buah plot 3D sebagai berikut:

soal_spltv

Catatan: Lampiran jawaban dalam bentuk file SPLTV.ipynb yang sudah diupload

Soal 2 - Dosen & Mahasiswa

  1. Tuliskan langkah-langkah/urutan query MongoDB untuk membuat sebuah database Non-RDBMS (Document Store) dengan spesifikasi sebagai berikut:

    • Terdapat sebuah database dengan nama "Kampus".

    • Database "Kampus" memiliki 2 buah user:

      • User pertama adalah admin database bernama "andi", dengan password "anditopsecret".
      • User kedua bukanlah admin, namun tetap dapat memasukkan & membaca data dari database. User kedua bernama "budi", dengan password "buditopsecret".
    • Database "Kampus" memiliki 2 buah collection: "Dosen" dan "Mahasiswa".

    • Masukkan 3 buah data berikut ke collection "Dosen":

      {nama:"Caca",
      usia:28,
      asal:"Jakarta",
      bidang:"Fisika Astrologi",
      titel:"S2",
      status:"Honorer",
      nip:123,
      matkul:["Metrologi","Kosmologi","Kalkulus"]}
      
      {nama:"Dedi",
      usia:29,
      asal:"Yogyakarta",
      bidang:"Fisika Terapan",
      titel:"S3",
      status:"PNS",
      nip:456,
      matkul:["Instrumentasi","Elektronika","Fisika Dasar"]}
      
      {nama:"Euis",
      usia:30,
      asal:"Bandung",
      bidang:"Fisika Teoretik",
      titel:"S1",
      status:"Honorer",
      nip:789,
      matkul:["Fisika Dasar","Fisika Modern","Kalkulus"]}
    • Masukkan 3 buah data berikut ke collection "Mahasiswa":

      {nama:"Faza",
      usia:19,
      asal:"Aceh",
      prodi:"Fisika",
      angkatan:2017,
      nim:123}
      
      {nama:"Gilang",
      usia:20,
      asal:"Semarang",
      prodi:"Fisika",
      angkatan:2017,
      nim:456}
      
      {nama:"Hanafi",
      usia:19,
      asal:"Makassar",
      prodi:"Fisika",
      angkatan:2017,
      nim:789}
    • Ketik jawaban dari soal nomor 3.1 ini dalam file .txt!

  2. Dengan pyMongo, matplotlib & pandas, buatlah sebuah program python yang dapat mengakses dan menampilkan:

    • Nama, asal, usia & status dari daftar dosen & mahasiswa di collection tersebut. Output yang diharapkan berupa 2 buah dataframe sebagai berikut:
               asal  nama      status  usia
      0     Jakarta  Caca       dosen    28
      1  Yogyakarta  Dedi       dosen    29
      2     Bandung  Euis       dosen    30
      
             asal    nama      status  usia
      0      Aceh    Faza   mahasiswa    19
      1  Semarang  Gilang   mahasiswa    20
      2  Makassar  Hanafi   mahasiswa    19
    • Sekaligus menampilkan diagram batang usia dari dosen & mahasiswa. Output yang diharapkan sebagai berikut:

    soal_dosmhs

Catatan: Lampiran jawaban dalam bentuk file DosenMahasiswa.ipynb yang sudah diupload

Soal 3 - Imunisasi

Disediakan 4 buah dataset (.csv) seputar persentase balita di Indonesia yang pernah mendapatkan imunisasi BCG, Campak, DPT & Polio dalam kurun tahun 1995-2017. Unduh dataset via kaggle: unduh di sini, lalu buatlah sebuah program python yang dapat menampilkan data-data tersebut dalam bentuk sebagai berikut:

  • Data yang missing diolah dengan metode interpolasi linear, yakni jika terdapat nilai 'n.a' akan diubah menjadi nilai antara data sebelum & sesudahnya.

    Tips: gunakan method interpolate() dari pandas).

  • Usai program dieksekusi, akan muncul 2 buah figure sekaligus. Figure 1 berisi data persentase balita yang pernah diimunisasi, dan figure 2 berisi persentase balita yang belum pernah diimunisasi.

  • Setiap figure berisi 4 buah diagram batang yang menunjukkan persentase balita yang pernah diimunisasi BCG, Campak, DPT & Polio selama 1995-2017. Output yang diharapkan digambarkan sebagai berikut:

    Figure 1: Persentasi balita terimunisasi 1995-2017 soal_imun

    Figure 2: Persentase balita tak terimunisasi 1995-2017 soal_nonimun

Catatan: Lampiran jawaban dalam bentuk file Imunisasi.ipynb yang sudah diupload

Soal 4 - Infografis ASEAN

Sama seperti soal pertama, soal kedua kali ini masih menggunakan database world MySQL dan berfokus pada data negara-negara yang tergabung dalam ASEAN (Association of Southeast Asian Nations). Aktifkan server MySQL Anda, lalu gunakan database world dan selesaikan beberapa soal berikut:

  1. Populasi ASEAN

    Buatlah sebuah file python yang dapat mengakses daftar negara ASEAN dari database world dan menampilkan populasi negara-negara ASEAN dalam bentuk diagram batang. Output yang diharapkan berupa diagram batang dengan nilai/jumlah populasi tertera di atas diagram. Style, desain & warna tidak harus sama, utamakan validitas data:

    populasi ASEAN

  1. Persentase Populasi ASEAN

    Buatlah sebuah file python yang dapat mengakses daftar negara ASEAN dari database world dan menampilkan persentase populasi negara-negara ASEAN dalam bentuk diagram lingkaran. Output yang diharapkan berupa diagram lingkaran dengan nilai persentase populasi tertera dalam diagram. Style, desain & warna tidak harus sama, utamakan validitas data:

    persen populasi ASEAN

  1. Gross National Product ASEAN

    Buatlah sebuah file python yang dapat mengakses daftar negara ASEAN dari database world dan menampilkan Pendapatan Bruto Nasional/GNP (Gross National Product) negara-negara ASEAN dalam bentuk diagram batang. Output yang diharapkan berupa diagram batang dengan nilai GNP tertera di atas diagram. Style, desain & warna tidak harus sama, utamakan validitas data:

    GNP ASEAN

  1. Persentase Luas Daratan ASEAN

    Buatlah sebuah file python yang dapat mengakses daftar negara ASEAN dari database world dan menampilkan persentase luas daratan negara-negara ASEAN dalam bentuk diagram lingkaran. Output yang diharapkan berupa diagram lingkaran dengan nilai persentase luas daratan tertera dalam diagram. Style, desain & warna tidak harus sama, utamakan validitas data:

    persen luas daratan ASEAN

Catatan: Lampiran jawaban dalam bentuk file Infografis ASEAN.ipynb yang sudah diupload

Soal 5 - Harga Historis Saham Provider Telco Indonesia

Disediakan 4 buah file .csv yang berisi harga historis saham harian selama 3 bulan terakhir (18/Mar/2019 - 14/Jun/2019) dari 4 perusahaan provider telekomunikasi ternama di Indonesia. Unduh file .csv dari repo ini atau klik sini:

Nama Provider Unduh csv
PT. XL Axiata Tbk EXCL.JK.csv
PT Smartfren Telecom Tbk FREN.JK.csv
PT Indosat Tbk ISAT.JK.csv
PT Telekomunikasi Indonesia Tbk TLKM.JK.csv

  1. Buatlah sebuah file python yang mengakses data dari ke-4 file .csv tersebut, kemudian tampilkan data plot harga penutupan (close) harian seluruh data yang ada. Output yang diharapkan berupa grafik garis yang menampilkan harga penutupan (close) harian dari ke-4 perusahaan telco selama 3 bulan terakhir:

    close all

  1. Buatlah sebuah file python yang mengakses data dari ke-4 file .csv tersebut, kemudian tampilkan data plot harga penutupan (close) harian selama bulan April 2019. Output yang diharapkan berupa grafik garis yang menampilkan harga penutupan (close) harian dari ke-4 perusahaan telco selama bulan April 2019:

    close all

Catatan: Lampiran jawaban dalam bentuk file Historis Saham.ipynb yang sudah diupload

Soal 6 - 🏋‍♂ SEA Games 2019

seagames

Indonesia mengakhiri SEA Games 2019 di posisi ke-empat. Total, atlet-atlet Tanah Air sukses mengumpulkan 267 medali, dengan rincian 72 emas, 84 perak, dan 111 perunggu selama perhelatan ajang multi-event olahraga se-Asia Tenggara tersebut, sejak 30 November-11 Desember 2019. Panitia SEA Games Filipina 2019 mempublikasikan daftar peserta & perolehan medali di situs resmi: www2.2019seagames.com.

Gunakanlah teknik web scraping pada situs di atas untuk mendapatkan data lengkap perolehan medali SEA Games 2017 & 2019. Kemudian buatlah sebuah file python (.py) atau notebook (.ipynb) yang dapat memvisualisasikan data total raihan medali emas beserta persentase raihan medali emas tiap Negara pada SEA Games 2017 & 2019. Contoh output yang diharapkan:

  • Total raihan medali emas SEA Games 2017 & 2019. Berikan marker khusus pada Negara dengan raihan medali emas terbanyak.

  • Persentase raihan medali emas SEA Games 2017 & 2019. Tampilkan nilai persentase pada diagram lingkaran.

Catatan: Lampiran jawaban dalam bentuk file seagames.ipynb yang sudah diupload