Menyajikan dan Menyimpulkan · Pelajaran 7 dari 9
Visualisasi sederhana
8 menit baca · BelajarCode
Grafik membantu melihat pola yang tersembunyi di balik angka. Di kursus ini kita membuat grafik teks yang bisa dijalankan di mana saja. Prinsipnya sama dengan grafik dari pustaka seperti matplotlib.
Diagram batang berskala
Jika nilainya besar, panjang batang perlu diskalakan supaya muat di layar.
1penjualan = {"Kopi susu": 1840, "Teh tarik": 1225, "Roti bakar": 960, "Air mineral": 410}2lebar_maks = 303terbesar = max(penjualan.values())45for produk, jumlah in sorted(penjualan.items(), key=lambda p: p[1], reverse=True):6 panjang = round(jumlah / terbesar * lebar_maks)7 print(f"{produk:<12}{'█' * panjang} {jumlah}")Kopi susu ██████████████████████████████ 1840 Teh tarik ████████████████████ 1225 Roti bakar ████████████████ 960 Air mineral ███████ 410
Batang terpanjang diberi 30 karakter, dan batang lain disesuaikan sebanding. Batang selalu dimulai dari nol, sehingga perbandingan panjangnya jujur.
Histogram
Histogram menunjukkan sebaran data angka dengan menghitung banyaknya data di setiap interval.
1nilai = [55, 62, 68, 71, 74, 75, 78, 81, 83, 85, 88, 90, 94, 97, 66, 72, 79, 84, 76, 69]2lebar_interval = 103hitung = {}4for n in nilai:5 awal = n // lebar_interval * lebar_interval6 hitung[awal] = hitung.get(awal, 0) + 178for awal in sorted(hitung):9 print(f"{awal}-{awal + lebar_interval - 1}: {'■' * hitung[awal]} ({hitung[awal]})")50-59: ■ (1) 60-69: ■■■■ (4) 70-79: ■■■■■■■ (7) 80-89: ■■■■■ (5) 90-99: ■■■ (3)
Bentuk histogram ini menunjukkan sebagian besar nilai berkumpul di 70-an, dengan sedikit nilai di ujung bawah dan atas.
| Pertanyaan | Grafik yang tepat |
|---|---|
| Kategori mana yang paling besar? | Diagram batang, diurutkan |
| Bagaimana perubahan dari waktu ke waktu? | Diagram garis |
| Bagaimana sebaran sebuah variabel angka? | Histogram atau box plot |
| Apakah dua variabel berhubungan? | Diagram pencar |
| Berapa bagian dari keseluruhan? | Diagram batang bertumpuk, atau diagram lingkaran untuk sedikit kategori |
Cek pemahaman
Kamu ingin melihat apakah nilai ulangan sebuah kelas kebanyakan tinggi, rendah, atau merata. Grafik apa yang paling cocok?
Latihan
Tren pengunjung
Data pengunjung perpustakaan per bulan: Jan 120, Feb 135, Mar 160, Apr 90, Mei 150, Jun 170. Buat diagram batang teks berskala (lebar maksimal 20), lalu tampilkan bulan dengan kenaikan terbesar dibanding bulan sebelumnya.
Pembahasan
1bulan = ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun"]2pengunjung = [120, 135, 160, 90, 150, 170]3terbesar = max(pengunjung)4for b, p in zip(bulan, pengunjung):5 print(f"{b} {'█' * round(p / terbesar * 20)} {p}")67kenaikan = [(pengunjung[i] - pengunjung[i - 1], bulan[i]) for i in range(1, len(bulan))]8naik, bulan_naik = max(kenaikan)9print(f"Kenaikan terbesar: {bulan_naik} (+{naik})")Jan ██████████████ 120 Feb ████████████████ 135 Mar ███████████████████ 160 Apr ███████████ 90 Mei ██████████████████ 150 Jun ████████████████████ 170 Kenaikan terbesar: Mei (+60)
Kenaikan terbesar terjadi di bulan Mei, setelah penurunan tajam di bulan April. Dalam laporan, penurunan di April juga perlu dicari penjelasannya, misalnya karena libur sekolah.
Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.