dipersiapkan oleh :
Gatot Hari Priowirjanto
Rizal Adompo
Aditya Priowirjanto
Fikr Muhammad Haq
Nagista Alifia
ii
iii
KATGANTAR
Atas nama seluruh tim penyusun, ijinkan saya mempersembahkan buku yang berjudul “Belajar
Python Untuk Pemula” ini, yang menurut saya dapat memberikan manfaat dan menambah
pengetahuan kita tentang Bahasa pemrograman. Segala puji dan syukur dipanjatkan kepada
Tuhan Yang Maha Esa, karena atas berkat-Nya maka kami dapat menyelesaikan buku ini dengan
tepat waktu.
Python adalah bahasa pemrograman komputer multiparadigma yang kuat dan dioptimalkan
untuk produktivitas pemrogram, keterbacaan kode, dan kualitas perangkat lunak. Buku ini
memberikan pengenalan yang komprehensif tentang bahasa Python itu sendiri dan membantu
belajar memecahkan masalah sederhana dengan Python. Tujuannya adalah untuk membantu
para pembaca menguasai dasar-dasar Python sebelum melanjutkan untuk menerapkannya di
tempat kerja.
Penyusun menyadari bahwa buku ini masih jauh dari sempurna, oleh karena itu masukan dan
saran dari para pembaca yang bersifat membangun sangatlah kami harapkan demi kesempurnaan
buku ini.
Akhir kata saya sampaikan terima kasih kepada semua pihak yang telah membantu dan berperan
dalam penulisan dan penyusunan materi untuk buku ini. Selamat membaca, dan semoga buku
ini bermanfaat bagi semua pembacanya.
Hormat saya,
iv
Daftar Isi
1. Sejarah Python……………………………………………………………….….…………………………………1
2. Manfaat Python Saat Ini………………………………………………………….……………………………….2
2.1. Penggunaan Python di beberapa Bidang…………………………………………..……………….………………..2
2.2. Contoh Implementasi Python……………………….……………………………………………………………….2
2.2.1. Ilmu Data (Data Science)………………...……………………………………………………………………..2
2.2.2. Pembelajaran Mesin (Machine Learning)…………………………………...………………………………….2
2.2.3. Biologi dan Bioinformatika…………………….……………………………………………………………….3
3. Sistem Input…………………………...……………………………………………………………………………3
4. Sistem Proses………………………………….……………………………………...……….……………………4
5. Sistem Output………………………………………………………………………………………………………4
6. Artificial Intelligence and Machine Learning Concept…………………………………………………….……5
6.1. Kecerdasan Buatan…………………………………..………………………………………………………………5
6.1.1. Bidang …………………………………………………………………………………………………………..5
6.1.2. Penerapan………………………………………………………………………………………………………..6
6.1.3. Pendekatan………………………………………………………………………………………………………7
6.2.1. Machine
Learning……………...…………….…………………………………………………………………………………….7
62.2. .Surpervised………………………………………………………….…………………………………………….7
6.2.3.Unsupervised............................................................................................................................................................8
6.3.Data…………………………………………………………………………..………………………………………8
6.3.1. Jenis Data berdasarkan Struktur………………………………………………….…………………………8
6.3.2. Hirarki………………………………..……………………………………………………………………..9
6.3.3.
Dataset………………………………………………………………………………………………………………9
6.3.4. Pra-proses Data………………………………………………………..…………………………………..10
6.4. Tasks on Machine Learning…………………………………………………..……………………………………11
6.4.1.
Classification……………………………………………………………………………………………………….11
6.4.2. Forecasting (Supervised Learning)……………………………………………………………………......11
6.4.3. Clustering (Unsupervised Learning)………………………………………...…………………………….12
6.5. Algorithms Machine Learning…………………………………….……………………………………………….12
6.5.1. Decision Tree……………………………………...………………………………………………………12
6.5.2. Naïve Bayes………………………………………………….……………………………………………13
6.5.3. Artificial Neural Network………………………………………………………...……………………….14
6.6. Performanse Measure……………………………………………..………………………………………………..15
6.6.1. Confusion Matrix……………………………………………………….…………………………………15
6.6.2. MAD, MSE, MAPE……………………………………………………………………………………….16
6.6.3. Silhoutte Coeffision……………………………………………………………………………………….16
7. Contoh Program…………………………………………………………….…………………………………….16
7.1. Bilangan Kuadrat………………………………………………………………………………………………..…16
7.1.1. Menggunakan Fungsi……………………………………………………………………………………...16
7.1.2. Menggunakan Variable untuk Menginput………………………………………………………………...16
v
7.1.3. Menggunakan Lebih dari Satu Variable…………………………………………………………………..17
7.1.4. Menggunakan Variable dan Fungsi……………………………………………………………………….18
7.1.5. Menggunakan Fungsi Parameter…………………………………………………………………………..18
7.1.6. Menggunakan Pengulangan……………………………………………………………………………….19
7.2. Konversi Mata Uang……………………………………………………………………………………………….21
7.3. Sorting………………...……………………………………………………………………………………………23
7.4. Kalkulator…………………………………………………………..………………………………………………27
7.5. Grafik…………………………………………………………………...………………………………………….29
7.6. Grafik Lalu Lintas………………………………………………………………………………………………….29
7.7. Grafik Pemasaran ( Tugas 3 )………………………………………………………………………………………31
7.7.1. Team Queen ( Agneta, Faiza, Ino, dan Sinta )…………………………………………………………….31
7.7.2. Team King ( Andrea, Rizky, dan Tribuna )……………………………………………………………….35
7.7.3. Team Claire ( Armand, Chaswanah, Kevin, Michael, dan Zaki )…………………………………………49
7.7.4. Smeri Siber ( Cristin, Sifa, Bunga, dan Zesen )…………………………………………………………...51
7.7.5. Team Code Breakers ( Yogi, Yulvianah, Elsa, Febrianti, dan Yulia )…………………………………….56
7.7.6. Team Chemistry Teacher ( Sari Indah, S.ST., Ujang Rohaya, M.Pd., dan Sholikhin, S.Pd.)………….…61
7.8. Grafik Data Siswa ( Tugas 4 )……………………………………………………………………………………...62
7.8.1. Team Queen ( Agneta, Faiza, Ino, dan Sinta )…………………………………………………………….62
7.8.2. Team King ( Andrea, Rizky, dan Tribuna )……………………………………………………………….66
7.8.3. Team Code Breakers ( Yogi, Yulvianah, Elsa, Febrianti, dan Yulia )…………………………………….75
7.9. Grafik Data dengan Persamaan Matematika………………………………………………………………………79
7.9.1. Team King ( Andrea, Rizky, dan Tribuna )……………………………………………………………….79
7.9.2. Team Code Breakers ( Yogi, Yulvianah, Elsa, Febrianti, dan Yulia )……….……………………………89
7.9.3. Team Queen ( Agneta, Faiza, Ino, dan Sinta )…………………………………………………………….95
8. Lampiran………………………………………………………………………….……………………………..114
Daftar Pustaka…………………………………………………………………………………………………….123
vi
1. Sejarah Python
Bahasa pemrograman Python dibuat pada 1980-an akhir dan mulai diimplementasikan pada Desember 1989
oleh Guido van Rossum di CWI, Belanda sebagai penerus ABC yang mampu menangani pengecualian dan
berinteraksi dengan sistem operasi Amoeba. Van Rossum adalah penulis utama Python dengan peran sentral
yang berkelanjutan dalam menentukan arah Python tercermin sehingga disebut Benevolent Dictator for Life
(BDFL) oleh komunitas Python. Namun, van Rossum mengundurkan diri pada 12 Juli 2018. Nama Python
terinspirasi dari sebuah acara TV di channel BBC yaitu Monty Python's Flying Circus. Berikut ini versi-versi
Python yang sudah dan akan dirilis.
Versi
Akhir Dukungan Akhir Pembetulan
Versi Mikro Tanggal Rilis
Penuh Keamanan
Terakhir
0.9 0.9.9 20-02-1991 29-07-1993
1.0 1.0.4 26-01-1994 15-02-1994
1.1 1.1.1 11-10-1994 10-11-1994
1.2 13-04-1995 Unsupported
1.3 13-10-1995 Unsupported
1.4 25-10-1996 Unsupported
1.5 1.5.2 03-01-1998 13-04-1999
1.6 1.6.1 05-09-2000 2000-09
2.0 2.0.1 16-10-2000 22-06-2001
2.1 2.1.3 15-04-2001 09-04-2002
2.2 2.2.3 21-12-2001 30-05-2003
2.3 2.3.7 29-06-2003 11-03-2008
2.4 2.4.6 30-11-2004 19-12-2008
2.5 2.5.6 19-09-2006 26-05-2011
2.6 2.6.9 01-10-2008 24-08-2010 29-10-2013
2.7 2.7.18 03-07-2010 01-01-2020
3.0 3.0.1 03-12-2008 27-06-2009
3.1 3.1.5 27-06-2009 12-06-2011 2012-06
3.2 3.2.6 20-02-2011 13-05-2013 20-02-2016
3.3 3.3.7 29-09-2012 08-03-2014 29-09-2017
3.4 3.4.10 16-03-2014 09-08-2017 18-03-2019
3.5 3.5.10 13-09-2015 08-08-2017 30-09-2020
3.6 3.6.13 23-12-2016 24-12-2018 2021-12
3.7 3.7.10 27-06-2018 27-06-2020 2023-06
3.8 3.8.8 14-10-2019 2021-04 2024-10
3.9 3.9.2 05-10-2020 2022-05 2025-10
3.10 04-10-2021 2023-05 2026-10
Legend:
Versi lama
Versi lama, masih dipelihara
Versi Terakhir
Versi yang akan dirilis
-1-
2. Manfaat Python Saat Ini
2.1. Penggunaan Python di beberapa Bidang
• Ilmu Data (Data Science).
• Pembelajaran mesin (Machine Learning).
• Pengembangan web.
• Pendidikan Ilmu Komputer (Computer Science).
• Visual Komputer dan Pemrosesan Gambar.
• Pengembangan Game.
• Kedokteran dan Farmakologi.
• Biologi dan Bioinformatika.
• Ilmu Saraf dan Psikologi.
• Astronomi.
• Bidang lain seperti robotika, kendaraan otonom, bisnis, meteorologi, dan pengembangan antarmuka
pengguna grafis (GUI).
3. Sistem Input
Input pada Python diwakilkan dengan syntax dasar input(), yang biasanya diarahkan
langsung kepada suatu variable dengan cara menjadi value dari variable tersebut.
text = input()
Dua contoh diatas adalah sistem input yang secara langsung menginputkan value dari hasil
input kepada sebuah variable, yang dalam hal ini adalah text.
-3-
4. Sistem Proses
Sistem pemrosesan dari sebuah nilai dari input akan terjadi pada sebuah function yang tergantung
pada fungsinya.
Misalnya pada kasus dimana kita ingin melakukan perhitungan dari dua angka, maka akan
dibuat/disediakan pula sebuah function untuk mengolah dua angka tersebut.
def Tambah(angka1,angka2):
kalkulasi = angka1 + angka2
return kalkulasi
print(Tambah(2,3))
Diatas adalah contoh dari penggunaan fungsi Tambah sebagai fungsi pemroses dari value. Pada
implementasinya dengan Sistem Input, hanya perlu dipastikan bahwa angka1 dan angka2 adalah hasil
input
5. Sistem Output
Output pada Python pada prinsipnya adalah menampilkan hasil input secara langsung
ataupun hasil input setelah melewati suatu proses
Output terdasar pada Python ialah dengan menggunakan fungsi print()
Diatas adalah contoh bagaimana memunculkan output berupa hasl dari proses dalam
fungsi Kali()
Yang akan memunculkan Output seperti dibawah ini :
-4-
6. Artificial Intelligence and Machine Learning Concept
6.1. Kecerdasan Buatan
Kecerdasan Buatan (Artificial Intelligence) : bidang ilmu yang mempelajari bagaimana mesin dapat
berfikir seperti manusia, berfikir rasional, bertindak seperti manusia, dan bertindak rasional.
6.1.1. Bidang
-5-
6.1.2. Penerapan
-6-
6.1.3. Pendekatan
• Searching
• Reasoning
• Planning
• Learning
6.2.2. Surpervised
• Pembelajaran terbimbing
• Data memiliki output/label/target class
• Memiliki fase training untuk mempelajari pemetaan antara input dan output (membentuk model)
• Kategori pekerjaan : klasifikasi, regresi dan lainnya
-7-
6.2.3. Unsupervised
• Pembelajaran tidak terbimbing
• Data tidak memiliki output/label/target class
• Tidak memiliki fase training, algoritma bekerja untuk menemukan pola/hubungan pada data input
• Kategori pekerjaan : klusterisasi, asosiasi dan lainnya
6.3. Data
6.3.1. Jenis Data berdasarkan Struktur
• Data terstruktur (structured)
o Memiliki organisasi/keteraturan data
o Mudah dicari dan dianalisis
o Seperti data pada Database Management System atau format file tertentu
• Data tidak terstruktur (unstructured)
o Tidak memiliki organisasi/keteraturan data baku
o Tidak mudah dicari dan dianalisis
o Contoh data citra, audio, video, teks, dll
-8-
6.3.2. Hirarki
6.3.3. Dataset
-9-
6.3.4. Pra-proses Data
• Data Cleaning
Penanganan missing value, penanganan noisy data, identifikasi atau hapus outlier, penanganan data
yang inkonsisten
• Data Integration
Integrasi beberapa sumber data
• Data Transformation
Normalisasi data, diskritisasi, penyeragaman nilai data, agregasi atau bahkan split atribut
• Data Reduction
Reduksi dimensi/seleksi atribut
- 10 -
6.4. Tasks on Machine Learning
6.4.1. Classification
Task untuk menemukan model dari data pembelajaran (training set) yang terdiri dari atribut dan kelas
target (nilai kategorikal)
- 11 -
6.4.3. Clustering (Unsupervised Learning)
• Task untuk mengelompokkan sejumlah data berdasarkan kemiripan nilai atribut yang dimiliki
dataset.
• Task untuk mendeteksi kluster potensial yang berguna dari data input.
- 12 -
6.5.2. Naïve Bayes
• Naïve Bayes adalah algoritma supervised learning yang menggunakan pendekatan probabilitas
(teorema Bayes) dengan asumsi “naïve” untuk probablitas kondisional yang tidak bergantung
antara tiap nilai fitur.
• Formula dari Naïve Bayes yaitu
• Pada fase training, data digunakan untuk mendapatkan prior probability (P(c)) dan conditional
probability (Px|c).
• Probabilitas tersebut digunakan untuk menghitung posterior probability tiap kelas target
kemudian didapatkan nilai tertingginya “MAP (Maximum A Posterior)” atau disebut argument
maksimum dari target class.
- 13 -
6.5.3. Artificial Neural Network
• Artificial Neural Network (ANN) atau biasa disebut Jaringan Syaraf Tiruan (JST) adalah algoritma
dengan model komputasi yang meniru dari cara kerja jaringan syaraf biologi pada manusia.
• ANN adalah jaringan dari sekelompok unit pemroses kecil (perceptron) yang saling terhubung
antara input dan output, menemukan pola-pola pada data dan menyimpan bobot pada jaringan
sebagai model
- 14 -
6.6. Performanse Measure
6.6.1. Confusion Matrix
Confusion matrix adalah matiks yang digunakan untuk mengukur performa model klasifikasi jika
diberikan sejumlah data uji. Jumlah matrik bergantung pada kelas target yang diklasifikasi.
- 15 -
6.6.2. MAD, MSE, MAPE
• Mean Absolute Deviation (MAD) : rata-rata dari nilai absolute simpangan
• Mean Squared Error (MSE) : rata-rata kuadratik error
• Mean Absolute Percentage Error (MAPE) : persentase rata-rata kesalahan absolut
7. Contoh Program
7.1. Bilangan Kuadrat
7.1.1. Menggunakan Fungsi
def kuadrat (a):
print (a ** 2)
Pada source code diatas menggunakan fungsi yang nantinya akan dipanggil saat menjalankan code.
jumlah = int(bil) ** 2
Source code diatas terdapat variable untuk menginputkan sebuah bilangan yang akan dikuadratkan.
- 16 -
7.1.3. Menggunakan Lebih dari Satu Variable
bil1 = input('Masukan bilangan: ')
bil2 = input('Masukan bilangan: ')
bil3 = input('Masukan bilangan: ')
bil4 = input('Masukan bilangan: ')
bil5 = input('Masukan bilangan: ')
bil6 = input('Masukan bilangan: ')
jumlah1 = int(bil1) ** 1
jumlah2 = int(bil2) ** 2
jumlah3 = int(bil3) ** 3
jumlah4 = int(bil4) ** 4
jumlah5 = int(bil5) ** 5
jumlah6 = int(bil6) ** 6
Pada source code diatas menggunakan lebih dari satu variable untuk mengkuadratkan lebih dari satu
bilangan sesuai dengan yang diinputkan.
- 17 -
7.1.4. Menggunakan Variable dan Fungsi
def main():
a, b, c, d, e, f = input("Masukkan 6 bilangan: ").split()
a = int(a)
b = int(b)
c = int(c)
d = int(d)
e = int(e)
f = int(f)
aa, bb, cc, dd, ee, ff = input("Masukkan pangkat untuk 6 bilangan di atas: ").split()
aa = int(aa)
bb = int(bb)
cc = int(cc)
dd = int(dd)
ee = int(ee)
ff = int(ff)
print("Hasil pemangkatan: ", a**aa, b**bb, c**cc, d**dd, e**ee, f**ff)
Source code diatas menggunakan variable dan fungsi, untuk menjalankannya memerlukan input 6
bilangan dan mengkuadratkannya sesuai inputan.
- 18 -
Source code diatas menjabarkan parameternya satu persatu lalu dipangkatkan dengan 2.
Menggunakan Pengulangan
def main():
n = input("Masukkan jumlah bilangan: ")
n = int(n)
print("\n")
i=0
for i in range(n):
i=i+1
print("==== PEMANGKATAN BILANGAN", i,"====")
a = input("Masukkan bilangan: ")
a = int(a)
b = input ("Masukkan pangkat bilangan: ")
b = int(b)
print("Hasil pemangkatan bilangan", i, ": ", a**b,"\n")
- 19 -
Source code di atas menerima masukan jumlah bilangan yang akan dipangkatkan kemudian dengan
looping for sebanyak jumlah bilangan dilakukan penerimaan masukan bilangan yang akan
dipangkatkan dan pangkatnya serta menampilkan hasil pemangkatannya.
def main():
n = input("Masukkan N: ")
n = int(n)
print("\n")
i=0
for i in range(n):
i=i+1
print("Hasil pemangkatan bilangan ke-", i, ": ", i**i,"\n")
- 20 -
Source code di atas menerima masukan jumlah bilangan kemudian dengan looping for sebanyak jumlah
bilangan mulai dari dilakukan pemangkatan bilangan dengan pangkat bilangan itu sendiri.
7.2. Konversi Mata Uang
def kurs():
kursJualUSD = 14392.61
kursBeliUSD = 14249.40
kursJualEUR = 17013.50
kursBeliEUR = 16838.52
kursJualJPY = 138.9114
kursBeliJPY = 137.5159
kursJualKRW = 12.87
kursBeliKRW = 12.65
bungaIDR = 0.0475
bungaUSD = 0.01135
bungaEUR = 0.0127
bungaJPY = 0.0241
bungaKRW = 0.0068
uang = input("Masukkan nilai uang (IDR): ")
uang = float(uang)
periode = input("Masukkan periode tahun deposito: ")
periode = int(periode)
kursIDR = uang + ((uang * bungaIDR) * (12 * periode))
kursUSD = ((uang / kursBeliUSD) + (((uang / kursBeliUSD) * bungaUSD) * (12 * periode))) * kursJualUSD
kursEUR = ((uang / kursBeliEUR) + (((uang / kursBeliEUR) * bungaEUR) * (12 * periode))) * kursJualEUR
kursJPY = ((uang / kursBeliJPY) + (((uang / kursBeliJPY) * bungaJPY) * (12 * periode))) * kursJualJPY
kursKRW = ((uang / kursBeliKRW) + (((uang / kursBeliKRW) * bungaKRW) * (12 * periode))) * kursJualKR
W
print("Uang yang didapat setelah mendepositokan Rp", '{:0,.2f}'.format(uang), "selama", periode, "tahun de
ngan kurs:")
- 21 -
print("1. IDR: Rp", '{:20,.2f}'.format(kursIDR))
print("2. USD: Rp", '{:20,.2f}'.format(kursUSD))
print("3. EUR: Rp", '{:20,.2f}'.format(kursEUR))
print("4. JPY: Rp", '{:20,.2f}'.format(kursJPY))
print("5. KRW: Rp", '{:20,.2f}'.format(kursKRW))
def kurs2():
kursJualUSD = 14392.61
kursBeliUSD = 14249.40
kursJualEUR = 17013.50
kursBeliEUR = 16838.52
kursJualJPY = 138.9114
kursBeliJPY = 137.5159
kursJualKRW = 12.87
kursBeliKRW = 12.65
bungaIDR = 0.0475
bungaUSD = 0.01135
bungaEUR = 0.0127
bungaJPY = 0.0241
bungaKRW = 0.0068
uang = input("Masukkan nilai uang (IDR): ")
uang = float(uang)
periode = input("Masukkan periode tahun deposito: ")
periode = int(periode)
kursIDR = uang * ((1 + (bungaIDR * 12)) ** periode)
kursUSD = ((uang / kursBeliUSD) * ((1 + (bungaUSD * 12)) ** periode)) * kursJualUSD
kursEUR = ((uang / kursBeliEUR) * ((1 + (bungaEUR * 12)) ** periode)) * kursJualEUR
kursJPY = ((uang / kursBeliJPY) * ((1 + (bungaJPY * 12)) ** periode)) * kursJualJPY
kursKRW = ((uang / kursBeliKRW) * ((1 + (bungaKRW * 12)) ** periode)) * kursJualKRW
print("Uang yang didapat dari deposito Rp", '{:0,.2f}'.format(uang)," selama", periode, "tahun dengan kurs:"
)
print("1. IDR: Rp", '{:20,.2f}'.format(kursIDR))
print("2. USD: Rp", '{:20,.2f}'.format(kursUSD))
print("3. EUR: Rp", '{:20,.2f}'.format(kursEUR))
print("4. JPY: Rp", '{:20,.2f}'.format(kursJPY))
print("5. KRW: Rp", '{:20,.2f}'.format(kursKRW))
- 22 -
Source code di atas menerima masukan nilai uang yang akan didepositokan serta lama periodenya
dalam satuan tahun kemudian ditampilkan hasil uang yang didapatkan setelah mendepositokan nilai
uang yang dimasukkan selama periode yang dimasukkan dalam beberapa kurs mata uang.
7.3. Sorting
- 23 -
angka = [14, 76, 1, 3, 25, 100]
angka.sort(reverse=True)
print(angka)
def Sortir(data):
for Index in range(1,len(data)):
current = data[index]
i = Index
while current < data[i - 1] and i > 0:
data[i] = data[i-1]
i= i - 1
data[i] = current
masuk = int(input("masukan data yang di inginkan : "))
datamasuk= [int(input())for i in range (masuk)]
print("berikut hasil data sebelum di sortir : ",end=' ')
print(datamasuk)
datamasuk.sort(reverse=True)
print("berikut hasil data sesudah di sortir : ", end=' ')
print(datamasuk)
- 24 -
import numpy as np
import matplotlib.pyplot as plt
def Sortir(data):
for Index in range(1,len(data)):
current = data[index]
i = Index
while current < data[i - 1] and i > 0:
data[i] = data[i-1]
i= i - 1
data[i] = current
masuk = int(input("masukan data yang di inginkan : "))
datamasuk= [int(input())for i in range (masuk)]
print("berikut hasil data sebelum di sortir : ",end=' ')
print(datamasuk)
datamasuk.sort(reverse=True)
print("berikut hasil data sesudah di sortir : ", end=' ')
print(datamasuk)
plt.plot(datamasuk)
plt.show()
- 25 -
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
def Sortir(data):
for Index in range(1,len(data)):
current = data[index]
i = Index
while current < data[i - 1] and i > 0:
data[i] = data[i-1]
i= i - 1
data[i] = current
masuk = int(input("masukan data yang di inginkan : "))
datamasuk= [int(input())for i in range (masuk)]
print("berikut hasil data sebelum di sortir : ",end=' ')
print(datamasuk)
datamasuk.sort(reverse=True)
print("berikut hasil data sesudah di sortir : ", end=' ')
print(datamasuk)
ax = plt.axes(projection= "3d" )
z = (datamasuk)
x = (datamasuk)
y = (20,30,40,500,60)
ax.plot3D (x,y,z)
plt.show()
- 26 -
7.4. Kalkulator
import tkinter as tk
import operator
number = "0"
op_first = "none"
num1 = "0"
num2 = "0"
ops = { "+": operator.add, "-": operator.sub }
root = tk.Tk()
root. title("Calculator")
root.geometry("370x370")
root.resizable(False,False)
frame = tk.Frame(root)
frame.pack(fill=None, expand=False)
label = tk.Label(text=number)
section = tk.Label(text=number,width=50,height=10,bg="white")
def write_slogan():
number = "New Number"
label.config(text=number)
print("Processed")
print(number)
def give_number(nums):
global number
if number == "0":
number = nums
else:
number = number + nums
section.config(text=number)
print("Numbers Added!")
def plus():
global number
global op_first
global num1
num1 = number
# number = number + "+"
number = "0"
op_first = "+"
section.config(text=number)
print("Numbers Added!")
def equal():
global number
global ops
global num1
number = ops[op_first](int(num1),int(number))
section.config(text=number)
- 27 -
print(num1)
section.pack()
button1 = tk.Button(text=1,command=lambda: give_number("1"),width=12,height=4)
button2 = tk.Button(text=2,command=lambda: give_number("2"),width=12,height=4)
button3 = tk.Button(text=3,command=lambda: give_number("3"),width=12,height=4)
button4 = tk.Button(text=4,command=lambda: give_number("4"),width=12,height=4)
button5 = tk.Button(text=5,command=lambda: give_number("5"),width=12,height=4)
button6 = tk.Button(text=6,command=lambda: give_number("6"),width=12,height=4)
button7 = tk.Button(text=7,command=lambda: give_number("7"),width=12,height=4)
button8 = tk.Button(text=8,command=lambda: give_number("8"),width=12,height=4)
button9 = tk.Button(text=9,command=lambda: give_number("9"),width=12,height=4)
plus_button = tk.Button(text="+", command=plus,width=12,height=4)
minus_button = tk.Button(text="-", command=plus,width=12,height=4)
equal_button = tk.Button(text="=", command=equal,width=12,height=4)
button1.place(x=0, y=160)
button2.place(x=93, y=160)
button3.place(x=187, y=160)
equal_button.place(x=280, y=160)
button4.place(x=0, y=227)
button5.place(x=93, y=227)
button6.place(x=187, y=227)
plus_button.place(x=280, y=227)
button7.place(x=0, y=295)
button8.place(x=93, y=295)
button9.place(x=187, y=295)
minus_button.place(x=280, y=295)
root.mainloop()
Diatas adalah merupakan project simple berupa kalkulator yang hanya memanfaatkan operasi –
operasi matematika yang sudah tersedia dalam Bahasa Python. Namun demi kelengkapan dan
efesiensi, digunakan juga sebuah library ringan yaitu “operator” yang diimport sebagai operator pada
Syntax.
Pada project simple diatas pun hanya di berikan opsi pertambahan dan pengurangan saja agar lebih
mudah dipahami, dan dua slot angka.
- 28 -
7.5. Grafik
# library & dataset
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
sns.set()
# use the function regplot to make a scatterplot
#sns.plt.show()
df=pd.DataFrame({'x': ['A','B','C','D','E'], 'y':[30,21,36,23,40] })
# Without regression fit:
sns.regplot('x', 'y', data=df, fit_reg=False)
plt.show()
Grafik diatas adalah gambaran dari jumlah kendaraan yang lewat selama 24 jam menggunakan grafik
titik sebar. Yang berguna untuk menggambarkan kapan biasanya kemacetan terjadi dalam satu hari.
- 29 -
Dengan x sebagai jumlah kendaraan dan y sebagai jam
Grafik daitas adalah merupakan gambaran dasar dengan data yang sama dengan grafik sebelumnya,
ditandai dengan x sebagai jam dan y sebagai jumlah kendaraan lewat.
Grafik diatas adalah gambaran dari angka kemacetan per hari selama hari kerja atau 5 hari dalam 1
minggu.
Ditandai dengan x sebagai hari secara berurutan dan y sebagai total angka kemacetan.
Syntax
Output
- 30 -
Memunculkan grafik yang menampilkan data gambaran harga ikan Guppy di Jakarta di tiap bulannya.
- 31 -
- 32 -
- 33 -
- 34 -
7.7.2. Team King ( Andrea, Rizky, dan Tribuna )
Grafik Warung 3 Bulan
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
while True:
bul1 = input("Data penjualan di bulan apa : ")
if "jan" in bul1.lower() :
bul1 = "Januari"
tgl1 = list(range(1,32))
break
elif "feb" in bul1.lower() :
bul1 = "Februari"
tgl1 = list(range(1,29))
break
elif "mar" in bul1.lower() :
bul1 = "Maret"
tgl1 = list(range(1,32))
break
elif "apr" in bul1.lower() :
bul1 = "April"
tgl1 = list(range(1,31))
break
elif "mei" in bul1.lower() :
bul1 = "Mei"
tgl = list(range(1,32))
break
elif "jun" in bul1.lower() :
bul1 = "Juni"
tgl1 = list(range(1,31))
break
elif "jul" in bul1.lower() :
bul1 = "Juli"
tgl1 = list(range(1,32))
break
elif "agu" in bul1.lower() :
bul1 = "Agustus"
tgl1 = list(range(1,32))
break
elif "sep" in bul1.lower() :
bul1 = "September"
tgl1 = list(range(1,31))
break
elif "okt" in bul1.lower() :
bul1 = "Oktober"
tgl1 = list(range(1,32))
- 35 -
break
elif "nov" in bul1.lower() :
bul1 = "November"
tgl1 = list(range(1,31))
break
elif "des" in bul1.lower() :
bul1 = "Desember"
tgl1 = list(range(1,32))
break
else :
print("Maaf, bulan "+bul1+" tidak ada!")
pass
- 36 -
elif "feb" in bul2.lower() :
bul2 = "Februari"
tgl2 = list(range(1,29))
break
elif "mar" in bul2.lower() :
bul2 = "Maret"
tgl2 = list(range(1,32))
break
elif "apr" in bul2.lower() :
bul2 = "April"
tgl2 = list(range(1,31))
break
elif "mei" in bul2.lower() :
bul2 = "Mei"
tgl = list(range(1,32))
break
elif "jun" in bul2.lower() :
bul2 = "Juni"
tgl2 = list(range(1,31))
break
elif "jul" in bul2.lower() :
bul2 = "Juli"
tgl2 = list(range(1,32))
break
elif "agu" in bul2.lower() :
bul2 = "Agustus"
tgl2 = list(range(1,32))
break
elif "sep" in bul2.lower() :
bul2 = "September"
tgl2 = list(range(1,31))
break
elif "okt" in bul2.lower() :
bul2 = "Oktober"
tgl2 = list(range(1,32))
break
elif "nov" in bul2.lower() :
bul2 = "November"
tgl2 = list(range(1,31))
break
elif "des" in bul2.lower() :
bul2 = "Desember"
tgl2 = list(range(1,32))
break
else :
print("Maaf, bulan "+bul2+" tidak ada!")
pass
- 37 -
print("Masukkan data penjualan di bulan",bul2,"dari tanggal 1 sampai tanggal",len(tg
l2))
print("")
data2 = [0]
i = 0
while i < len(tgl2):
try :
ii = i + 1
print("Tgl",ii,": ")
a = input()
if a.lower() == "ulang" :
data1.clear()
data1.append(0)
i = 0
y = input("Anda yakin ? (y untuk lanjut) : ")
if "y" in y.lower():
if "k" in a.lower() :
a = a.replace("k", "000")
if "-" in a :
a = "0"
a = int(a)
data2.append(a)
i = i + 1
else :
print("Mengulang...")
pass
except ValueError :
print(a,"bukanlah nominal yang diinginkan!")
print("")
while True:
bul3 = input("Data penjualan di bulan apa : ")
if "jan" in bul3.lower() :
bul3 = "Januari"
tgl3 = list(range(1,32))
break
elif "feb" in bul3.lower() :
bul3 = "Februari"
tgl3 = list(range(1,29))
break
elif "mar" in bul3.lower() :
bul3 = "Maret"
tgl3 = list(range(1,32))
break
elif "apr" in bul3.lower() :
bul3 = "April"
tgl3 = list(range(1,31))
- 38 -
break
elif "mei" in bul3.lower() :
bul3 = "Mei"
tgl = list(range(1,32))
break
elif "jun" in bul3.lower() :
bul3 = "Juni"
tgl3 = list(range(1,31))
break
elif "jul" in bul3.lower() :
bul3 = "Juli"
tgl3 = list(range(1,32))
break
elif "agu" in bul3.lower() :
bul3 = "Agustus"
tgl3 = list(range(1,32))
break
elif "sep" in bul3.lower() :
bul3 = "September"
tgl3 = list(range(1,31))
break
elif "okt" in bul3.lower() :
bul3 = "Oktober"
tgl3 = list(range(1,32))
break
elif "nov" in bul3.lower() :
bul3 = "November"
tgl3 = list(range(1,31))
break
elif "des" in bul3.lower() :
bul3 = "Desember"
tgl3 = list(range(1,32))
break
else :
print("Maaf, bulan "+bul3+" tidak ada!")
pass
- 39 -
if a.lower() == "ulang" :
data1.clear()
data1.append(0)
i = 0
continue
y = input("Anda yakin ? (y untuk lanjut) : ")
if "y" in y.lower():
if "k" in a.lower() :
a = a.replace("k", "000")
if "-" in a :
a = "0"
a = int(a)
data3.append(a)
i = i + 1
else :
print("Mengulang...")
pass
except ValueError :
print(a,"bukanlah nominal yang diinginkan!")
print("")
print("Sedang memuat data...")
data = {bul1 : data1, bul2 : data2, bul3 : data3}
df = pd.DataFrame({key:pd.Series(value) for key, value in data.items()}, index = lis
t(range(1,32)))
sns.lineplot(data=df)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
print("Data Warung 1 : ")
war1 = [0]
i = 0
print("Data warung 1",": ")
while i < 90 :
try :
ii = i + 1
print("Hari ke -",ii)
b = input("")
if "ulang" in b.lower():
war1.clear()
war1.append[0]
i = 0
y = input("Apakah anda yakin ? (y untuk lanjut) ")
- 40 -
if "y" in y.lower() :
if "k" in b :
b = b.replace("k","000")
if "-" in b :
b = "0"
b = int(b)
war1.append(b)
i = i + 1
else :
print("Mengulang...")
pass
except ValueError :
print(b,"bukanlah angka yang diinginkan")
war2 = [0]
i = 0
print("Data warung 2",": ")
while i < 90 :
try :
ii = i + 1
print("Hari ke -",ii)
b = input("")
if "ulang" in b.lower():
war2.clear()
war2.append[0]
i = 0
y = input("Apakah anda yakin ? (y untuk lanjut) ")
if "y" in y.lower() :
if "k" in b.lower() :
b = b.replace("k","000")
if "-" in b :
b = "0"
b = int(b)
war2.append(b)
i = i + 1
else :
print("Mengulang...")
pass
except ValueError :
print(b,"bukanlah angka yang diinginkan")
war3 = [0]
i = 0
print("Data warung 3",": ")
while i < 90 :
try :
ii = i + 1
print("Hari ke -",ii)
b = input("")
- 41 -
if "ulang" in b.lower():
war3.clear()
war3.append[0]
i = 0
y = input("Apakah anda yakin ? (y untuk lanjut) ")
if "y" in y.lower() :
if "k" in b.lower() :
b = b.replace("k","000")
if "-" in b :
b = "0"
b = int(b)
war3.append(b)
i = i + 1
else :
print("Mengulang...")
pass
except ValueError :
print(b,"bukanlah angka yang diinginkan")
war4 = [0]
i = 0
print("Data warung 4")
while i < 90 :
try :
ii = i + 1
print("Hari ke -",ii,": ")
b = input("")
if "ulang" in b.lower():
war4.clear()
war4.append[0]
i = 0
y = input("Apakah anda yakin ? (y untuk lanjut) ")
if "y" in y.lower() :
if "k" in b.lower() :
b = b.replace("k","000")
if "-" in b :
b = "0"
b = int(b)
war4.append(b)
i = i + 1
else :
print("Mengulang...")
pass
except ValueError :
print(b,"bukanlah angka yang diinginkan")
war5 = [0]
i = 0
print("Data warung 5")
- 42 -
while i < 90 :
try :
ii = i + 1
print("Hari ke -",ii,": ")
b = input("")
if "ulang" in b.lower():
war5.clear()
war5.append[0]
i = 0
y = input("Apakah anda yakin ? (y untuk lanjut) ")
if "y" in y.lower() :
if "k" in b.lower() :
b = b.replace("k","000")
if "-" in b :
b = "0"
b = int(b)
war5.append(b)
i = i + 1
else :
print("Mengulang...")
pass
except ValueError :
print(b,"bukanlah angka yang diinginkan")
- 43 -
- 44 -
- 45 -
- 46 -
- 47 -
- 48 -
7.7.3. Team Claire ( Armand, Chaswanah, Kevin, Michael, dan Zaki )
# Import necessary libs
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('seaborn')
# line graph
fig = plt.figure()
ax = fig.add_axes([0, 0, 5, 2])
ax.plot('Hari', 'Blimbing', data=df, color='Blue', linewidth='2.5')
ax.plot('Hari', 'Klojen', data=df, color='Green', linewidth='2.5')
ax.plot('Hari', 'Kedungkandang', data=df, color='Red', linewidth='2.5')
ax.plot('Hari', 'Lowokwaru', data=df, color='Orange', linewidth='2.5')
ax.plot('Hari', 'Sukun', data=df, color='Purple', linewidth='2.5')
ax.set_title('Grafik Penjualan Kue Kering Februari-April 2021', fontsize = '25')
ax.set_xlabel('Hari', fontsize='25')
ax.set_ylabel('Banyak penjualan', fontsize = '25')
ax.legend(fontsize='xx-large')
- 49 -
20 hari pertama:
Kecamatan Blimbing menduduki peringkat pertama dalam penjualan kue kering, Kecamatan
Lowokwaru dan Sukun mengalami penurunan, sedangkan kecamatan yang lain bersifat konstan.
20 hari kedua:
Penjualan kue kering meningkat seiring memasuki Bulan Maret dikarenakan pada Bulan Maret terdapat
berbagai macam event keagamaan diantaranya adalah Maulid Nabi serta Isra Mi'raj.
20 hari ketiga:
Pada jangka waktu ini, penjualan kue kering hampir menyamai penjualan pada 20 hari kedua. Namun
pada saat ini, permintaan serta produksi yang ada tidak sesuai, sehingga terdapat beberapa penurunan
penjualan di berbagai kecamatan. Peningkatan penjualan pada hari ini meningkat dikarenakan adanya
juga event keagamaan salah satunya Paskah. Penjualan juga mengalami kenaikan dan penurunan yang
cukup konstan.
20 hari keempat:
Penjualan mengalami kenaikan drastis di awal jangka waktu dikarenakan sedang mendekati Bulan
Ramadhan.
10 hari terakhir:
- 50 -
Penjualan kue kering mengikuti tren penjualan pada jangka waktu sebelumnya. Pada jangka waktu ini
Kecamatan Kedungkandang, Lowokwaru, serta Sukun mengalami kenaikan. Sedangkan Kecamatan
Klojen dan Kecamatan Blimbing mengalami kenaikan dan penurunan yang cukup drastis.
- 52 -
pas3.pop(ii)
aa = aa - 1
i = i + 1
aa = aa + 1
else :
print("Mengulang...")
pass
except ValueError :
print(b,"bukanlah angka yang diinginkan")
pas4 = [0]
i = 0
print("Pasar Inpres Pagaden")
while i < 3 :
try :
ii = i + 1
print("bulan ke -",ii,": ")
b = input("")
y = input("Apakah anda yakin ? (y untuk lanjut) ")
if "y" in y.lower() :
if "ulang" in b.lower():
pas4.clear()
b = 0
i = 0
if "k" in b.lower() :
b = b.replace("k","000")
if "-" in b :
b = "0"
b = int(b)
pas4.append(b)
if b == 0 :
pas4.pop(aa)
aa = aa - 1
i = i + 1
aa = aa + 1
else :
print("Mengulang...")
pass
except ValueError :
print(b,"bukanlah angka yang diinginkan")
pas5 = [0]
i = 0
print("Pasar Kalijati")
while i < 3 :
try :
ii = i + 1
print("bulan ke -",ii,": ")
b = input("")
- 53 -
y = input("Apakah anda yakin ? (y untuk lanjut) ")
if "y" in y.lower() :
if "ulang" in b.lower():
pas5.clear()
b = 0
i = 0
if "k" in b.lower() :
b = b.replace("k","000")
if "-" in b :
b = "0"
b = int(b)
pas5.append(b)
if b == 0 :
pas5.pop(aa)
aa = aa - 1
i = i + 1
aa = aa + 1
else :
print("Mengulang...")
pass
except ValueError :
print(b,"bukanlah angka yang diinginkan")
- 54 -
- 55 -
7.7.5. Team Code Breakers ( Yogi, Yulvianah, Elsa, Febrianti, dan Yulia )
- 56 -
- 57 -
- 58 -
- 59 -
- 60 -
Trend dari grafik komoditi Hand Sanitizer pada 5 Lokasi selama 90 hari menunjukkan Bandung
memiliki regresi liniear market tertinggi dibanding 4 kota lainnya. Hari yang paling feasible pada bulan
Maret lokasi Bandung yaitu tanggal 11, 17, 18, 19, 23, 28,31 (Selasa 11 & 18 dan Rabu 17 & 31). Pola
distribusi market pada setiap lokasi adalah zig-zag
7.7.6. Team Chemistry Teacher ( Sari Indah, S.ST., Ujang Rohaya, M.Pd., dan Sholikhin, S.Pd.)
- 61 -
7.8. Grafik Data Siswa ( Tugas 4 )
Berikut ini video untuk tugas 4
https://www.youtube.com/watch?v=pZqXNUb-b6c
- 62 -
- 63 -
- 64 -
- 65 -
7.8.2. Team King ( Andrea, Rizky, dan Tribuna )
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
data = pd.read_excel(r"Nilai dan Kehadiran.xlsx")
df = pd.DataFrame({k:pd.Series(v) for k, v in data.items()})
while True :
z = input("Input nilai atau kehadiran ? : ")
if z.lower() == "nilai" :
z = "Nilai"
break
elif z.lower() == "kehadiran" :
z = "Kehadiran"
break
else :
print(z,"bukan nama kolom di excel!")
pass
siswa = df['Nomor']
x = df[z]
a = int(input("Data dari siswa ke berapa : "))
b = int(input("Data sampai siswa ke berapa : "))
c = list(range((a-1),(b)))
siswa = siswa[c]
x = x[c]
y_pos = np.arange(len(siswa))
plt.bar(y_pos, x)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
while True :
global b
a = input("Input Data apa yang akan diambil : ")
if a.lower() == "jurusan" :
a = "A:B"
b = "Jurusan"
break
- 66 -
elif a.lower() == "device" :
a = "C:D"
b = "Device"
break
elif a.lower() == "merk hp" :
a = "E:F"
b = "Merk HP"
break
elif a.lower() == "jaringan" :
a = "G:H"
b = "Jaringan"
break
elif a.lower() == "kartu" :
a = "I:J"
b = "Kartu"
break
elif a.lower() == "merk laptop" :
a = "K:L"
b = "Merk Laptop"
break
elif a.lower() == "kepuasan" :
a = "M:N"
b = "Kepuasan"
break
else :
print(a,"bukan salah satu dari nama data nya")
data = pd.read_excel(r"Data.xlsx", header = 1, sheet_name=b)
df = pd.DataFrame({k:pd.Series(v) for k, v in data.items()})
index = df[b]
siswa = df["Jml Siswa"]
fig1, ax1 = plt.subplots()
ax1.pie(siswa, labels=index, autopct=lambda p : '{:0.2f}%'.format(p,p * sum(siswa)/1
00))
ax1.legend()
ax1.axis("equal")
plt.show()
- 67 -
if x.lower() == "kelas" :
x = "Kelas"
break
elif x.lower() == "jurusan" :
x = "Jurusan"
break
elif x.lower() == "device" :
x = "Device"
break
elif x.lower() == "merk hp" :
x = "Merk HP"
break
elif x.lower() == "merk laptop" :
x = "Merk Laptop"
break
elif x.lower() == "jaringan" :
x = "Jaringan"
break
elif x.lower() == "provider" :
x = "Provider"
break
elif x.lower() == "kelancaran" :
x = "Kelancaran"
break
elif x.lower() == "nilai" :
x = "Nilai"
break
elif x.lower() == "kehadiran" :
x = "Kehadiran"
break
else :
print(x,"bukan nama variabel dalam excel")
while True :
y = input("Variabel yang akan diinput sebagai sumbu Y : ")
if y.lower() == "kelas" :
y = "Kelas"
break
elif y.lower() == "jurusan" :
y = "Jurusan"
break
elif y.lower() == "device" :
y = "Device"
break
elif y.lower() == "merk hp" :
y = "Merk HP"
break
- 68 -
elif y.lower() == "merk laptop" :
y = "Merk Laptop"
break
elif y.lower() == "jaringan" :
y = "Jaringan"
break
elif y.lower() == "provider" :
y = "Provider"
break
elif y.lower() == "kelancaran" :
y = "Kelancaran"
break
elif y.lower() == "nilai" :
y = "Nilai"
break
elif y.lower() == "kehadiran" :
y = "Kehadiran"
break
else :
print(y,"bukan nama variabel dalam excel")
while True :
z = input("Variabel yang akan diinput sebagai keterangan : ")
if z.lower() == "kelas" :
z = "Kelas"
break
elif z.lower() == "jurusan" :
z = "Jurusan"
break
elif z.lower() == "device" :
z = "Device"
break
elif z.lower() == "merk hp" :
z = "Merk HP"
break
elif z.lower() == "merk laptop" :
z = "Merk Laptop"
break
elif z.lower() == "jaringan" :
z = "Jaringan"
break
elif z.lower() == "provider" :
z = "Provider"
break
elif z.lower() == "kelancaran" :
z = "Kelancaran"
break
- 69 -
elif z.lower() == "nilai" :
z = "Nilai"
break
elif z.lower() == "kehadiran" :
z = "Kehadiran"
break
else :
print(z,"bukan nama variabel dalam excel")
sns.swarmplot(x = x, y = y, hue = z, data = data)
plt.show()
- 70 -
- 71 -
- 72 -
- 73 -
- 74 -
7.8.3. Team Code Breakers ( Yogi, Yulvianah, Elsa, Febrianti, dan Yulia )
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
import numpy as np
# Metrics
from sklearn.metrics import mean_squared_error, mean_absolute_error, median_absolute
_error
# Distributions
import scipy
import pandas as pd
df = pd.read_csv("/content/drive/My Drive/Python SEAMEO/Nilai-Kimia-Fisika-Bio.csv")
- 75 -
plt.subplots(figsize=(8,12))
grade_counts = df['Fis'].value_counts().sort_values().plot.barh(width=.9,color=sns.c
olor_palette('inferno',40))
grade_counts.axes.set_title('Number of students who scored a particular grade Of Phy
sic',fontsize=30)
grade_counts.set_xlabel('Number of students', fontsize=30)
grade_counts.set_ylabel('Final Grade', fontsize=30)
plt.show()
plt.subplots(figsize=(8,12))
grade_counts = df['Bio'].value_counts().sort_values().plot.barh(width=.9,color=sns.c
olor_palette('inferno',40))
grade_counts.axes.set_title('Number of students who scored a particular grade Of Bio
logy',fontsize=30)
grade_counts.set_xlabel('Number of students', fontsize=30)
grade_counts.set_ylabel('Final Grade', fontsize=30)
plt.show()
- 76 -
plt.subplots(figsize=(8,12))
grade_counts = df['Kim'].value_counts().sort_values().plot.barh(width=.9,color=sns.c
olor_palette('inferno',40))
grade_counts.axes.set_title('Number of students who scored a particular grade Of Che
mistry',fontsize=30)
grade_counts.set_xlabel('Number of students', fontsize=30)
grade_counts.set_ylabel('Final Grade', fontsize=30)
plt.show()
- 77 -
b = sns.countplot(df['Fis'])
b.axes.set_title('Distribution of Final grade Physic of students', fontsize = 30)
b.set_xlabel('Final Grade', fontsize = 20)
b.set_ylabel('Count', fontsize = 20)
plt.show()
b = sns.countplot(df['Kim'])
b.axes.set_title('Distribution of Final grade Chemistry of students', fontsize = 30)
b.set_xlabel('Final Grade', fontsize = 20)
b.set_ylabel('Count', fontsize = 20)
plt.show()
b = sns.countplot(df['Bio'])
b.axes.set_title('Distribution of Final grade Biology of students', fontsize = 30)
b.set_xlabel('Final Grade', fontsize = 20)
b.set_ylabel('Count', fontsize = 20)
plt.show()
- 78 -
7.9. Grafik Data dengan Persamaan Matematika
7.9.1. Team King ( Andrea, Rizky, dan Tribuna )
Penggunaan sistem online dalam administrasi SMK Negeri 7 Semarang
- 79 -
Ketersediaan komputer
- 80 -
Aplikasi yang digunakan selama KBM berlangsung
- 81 -
Nilai ujian tulis di tahun 2020 dan 2021
- 82 -
Ketersapaan siswa di SMK Negeri 7 Semarang
- 83 -
Source Code
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
w = 0.2
jurusan = ["SIJA", "KGSP", "KJIJ", "TTL", "TME", "TMPO", "TEDK", "TFLM"]
lulusan = {"var" : ["2018", "2019", "2020"], "bekerja" : [496, 516, 483], "pendidika
n" : [44, 54, 93], "lain" : [50, 29, 27]}
nilai_tulis = {"index1" : [91,88,87,86,89,84,87,86], "index2" : [90,85,86,85,86,83,8
6,82], "index1_2" : [88,84,86,85,84,87,87,82], "index2_2" : [89,85,87,85,84,88,89,84
], "rata2" : [89.5,85.5,86.5,85.25,85.75,85.5,87.25,83.5]}
nilai_praktek = {"index1" : [87,85,85,85,89,83,83,84], "index2" : [87,87,86,86,87,84
,84,80], "index1_2" : [85,86,87,84,86,83,84,84], "index2_2" : [87,84,85,82,85,84,84,
83], "rata2" : [86.5,85.5,85.75,84.25,86.19,84.61,83.5,83.58]}
while True :
print("\n(1) Data Komputer & Laptop yang ada di Jurusan.\n(2) Penggunaan Kompute
r dalam Penilaian & KBM.\n(3) Platform, Digital Komputer, dan Penggunaan Sistem Onli
ne.\n(4) Nilai Ujian Tulis\n(5) Nilai Ujian Praktek\n(6) Keterserapan Industri\nKeti
k 'exit' untuk menyelesaikan program\n")
a = input("Pilih salah satu pilihan dari atas : ")
if a == "1" :
data=pd.read_excel("Data2.xlsx", sheet_name = "Sheet1")
label = data["Jurusan"]
device = data[["Komputer", "Laptop"]]
code = {"<10" : 1, "11 - 20" : 2, "21 - 40" : 3}
for i in device.columns :
device[i] = device[i].replace(code)
bar1 = (np.arange(len(label)))
bar2 = [i+w for i in bar1]
plt.xlabel("Jurusan")
plt.ylabel("Ketersediaan Laptop / Komputer")
plt.xticks(bar1, label)
plt.yticks(np.arange(4), ["", "<10","11 - 20", "21 - 40"])
plt.bar(bar1, device["Komputer"], w, label="Komputer")
plt.bar(bar2, device["Laptop"], w, label = "Laptop")
plt.legend()
plt.title("Ketersediaan Komputer / Laptop dalam Jurusan")
plt.show()
elif a == "2" :
data = pd.read_excel("Data2.xlsx", sheet_name = "Sheet2", header=1)
index = data["Jurusan"]
kbm = data[["Sebelum Pandemi (KBM)", "Setelah Pandemi (KBM)"]]
nilai = data[["Sebelum Pandemi (Penilaian)", "Setelah Pandemi (Penilaian)"]]
myCoding = {"Kadang - kadang" : 1, "Sering" : 2, "Selalu" : 3}
- 84 -
for i in kbm.columns :
kbm[i]=kbm[i].replace(myCoding)
for i in nilai.columns :
nilai[i] = nilai[i].replace(myCoding)
bar1 = np.arange(len(index))
bar2 = [i+w for i in bar1]
plt.xlabel("Jurusan")
plt.ylabel("Penggunaan Komputer")
plt.xticks(bar1+w/2, index)
plt.yticks(np.arange(4), ["", "Kadang - Kadang", "Sering", "Selalu"])
while True :
print("\n(1) Penggunaan Komputer dalam KBM\n(2) Penggunaan Komputer dala
m Penilaian\nKetik 'exit' untuk kembali\n")
aa = input("Pilih salah satu pilihan di atas : ")
if aa == "1" :
plt.bar(bar1, kbm["Sebelum Pandemi (KBM)"], w, label="Sebelum Pandem
i")
plt.bar(bar2, kbm["Setelah Pandemi (KBM)"], w, label = "Setelah Pand
emi")
plt.title("Penggunaan Komputer dalam KBM")
plt.legend()
plt.show()
elif aa == "2" :
plt.bar(bar1, nilai["Sebelum Pandemi (Penilaian)"], w, label = "Sebe
lum Pandemi")
plt.bar(bar2, nilai["Setelah Pandemi (Penilaian)"], w, label = "Sete
lah Pandemi")
plt.title("Penggunaan Komputer dalam Penilaian")
plt.legend()
plt.show()
elif aa == "exit" :
break
else :
print(aa,"bukan salah satu dari pilihan di atas")
break
elif a == "3" :
data = pd.read_excel("Data2.xlsx", sheet_name="Sheet3", header=0)
print(data)
index = data["Jurusan"]
platform = data["Platform Pembelajaran"]
digital = data[["Digital Konten", "Mengunggah Digital Konten"]]
admin = data["Penggunaan sistem online dalam hal administrasi"]
myCoding = {"Tidak" : 1, "Ya" : 2}
for i in digital.columns :
digital[i] = digital[i].replace(myCoding)
while True :
- 85 -
print("\n(1) Platform yang digunakan\n(2) Digital Konten dan Pengunggaha
nnya\n(3) Penggunaan sistem online dalam hal administrasi\n")
aa = input("Pilih salah satu dari pilihan di atas : ")
if aa == "1" :
v = []
vv = np.where(platform == "Teams")
v.append(len(vv))
fig1, ax1 = plt.subplots()
ax1.pie(v, labels=["Teams"], autopct=lambda p : "{:0.2f}%".format(p,
p * sum(v)/100))
ax1.legend()
ax1.axis('equal')
plt.title("Platform aplikasi yang digunakan di SMKN 7 Semarang")
plt.show()
elif aa == "2" :
bar1 = np.arange(len(index))
bar2 = [i+w for i in bar1]
plt.xlabel("Jurusan")
plt.ylabel("Ketersediaan")
plt.xticks(bar1, index)
plt.yticks(np.arange(3), ["", "Tidak", "Ya"])
plt.bar(bar1, digital["Digital Konten"], w, label = "Pernah membuat
Digital Konten")
plt.bar(bar2, digital["Mengunggah Digital Konten"], w, label = "Memp
ublikasikan Digital Konten")
plt.legend()
plt.title("Digital Konten di SMKN 7 Semarang")
plt.show()
elif aa == "3" :
materi_count = np.count_nonzero(admin == "Materi")
rpp_count = np.count_nonzero(admin == "RPP")
raport_count = np.count_nonzero(admin == "Raport")
label = ["Materi", "RPP", "Raport"]
count = [materi_count, rpp_count, raport_count]
fig1, ax1 = plt.subplots()
ax1.pie(count, labels=label, autopct = lambda p : "{:0.2f}% ({:.0f})
".format(p, p*sum(count)/100))
ax1.legend()
ax1.axis('equal')
plt.show()
elif aa == "exit" :
break
else :
print(aa,"bukanlah pilihan di atas")
break
elif a == "4" :
bar1 = np.arange(len(jurusan))
- 86 -
bar2 = [i+w for i in bar1]
plt.xlabel("Jurusan")
plt.ylabel("Nilai")
plt.xticks(bar1+w/2, jurusan)
while True :
print('Ketik "exit" untuk kembali ke tab awal')
qq = input("Tahun 2020 atau 2021 : ")
if qq == "2020" :
plt.bar(bar1, nilai_tulis["index1"], w, label="Index 1")
plt.bar(bar2, nilai_tulis["index2"], w, label="Index 2")
plt.title("Nilai Ujian Akhir Tulis 2020")
plt.legend()
plt.show()
elif qq == "2021" :
plt.bar(bar1, nilai_tulis["index1_2"], w, label="Index 1")
plt.bar(bar2, nilai_tulis["index2_2"], w, label="Index 2")
plt.title("Nilai Ujian Akhir Tulis 2021")
plt.legend()
plt.show()
elif qq.lower() == "exit" :
break
else :
print(qq,"bukan tahun dari datanya")
pass
break
elif a == "5" :
bar1 = np.arange(len(jurusan))
bar2 = [i+w for i in bar1]
plt.xlabel("Jurusan")
plt.ylabel("Nilai")
plt.xticks(bar1+w/2, jurusan)
while True :
print('Ketik "exit" untuk kembali ke tab awal')
qq = input("Tahun 2020 atau 2021 : ")
if qq == "2020" :
plt.bar(bar1, nilai_praktek["index1"], w, label="Index 1")
plt.bar(bar2, nilai_praktek["index2"], w, label="Index 2")
plt.title("Nilai Ujian Praktek 2020")
plt.legend()
plt.show()
elif qq == "2021" :
plt.bar(bar1, nilai_praktek["index1_2"], w, label="Index 1")
plt.bar(bar2, nilai_praktek["index2_2"], w, label="Index 2")
plt.title("Nilai Ujian Praktek 2021")
plt.legend()
plt.show()
elif qq.lower() == "exit" :
- 87 -
break
else :
print(qq,"bukan tahun dari datanya")
pass
break
elif a == "6" :
w = 0.1
plt.xlabel("Tahun")
plt.ylabel("Jumlah Siswa")
tahun = lulusan["var"]
bar1 = np.arange(len(tahun))
bar2 = [i+w for i in bar1]
bar3 = [i+w for i in bar2]
plt.xticks(bar2, tahun)
plt.title("Keterserapan Siswa")
plt.bar(bar1, lulusan["bekerja"], w, label="Bekerja")
plt.bar(bar2, lulusan["pendidikan"], w, label="Lanjut Pendidikan")
plt.bar(bar3, lulusan["lain"], w, label="Lain - Lain")
plt.legend()
plt.show()
elif a == "exit" :
exit()
else :
print(a,"bukan merupakan pilihan di atas")
- 88 -
7.9.2. Team Code Breakers ( Yogi, Yulvianah, Elsa, Febrianti, dan Yulia )
Kualitas udara di Jakarta
- 89 -
Banyaknya polusi dalam waktu 90 hari
- 90 -
Perbandingan polusi udara di setiap lokasi
- 91 -
Hasil analisis
- 92 -
- 93 -
Metode algoritma
- 94 -
7.9.3. Team Queen ( Agneta, Faiza, Ino, dan Sinta )
Analisis puskesmas di beberapa tempat
Puskesmas Pertama
Triwulan pertama
- 95 -
Triwulan kedua
- 96 -
Triwulan ketiga
- 97 -
Triwulan keempat
- 98 -
Puskesmas kedua
Triwulan pertama
- 99 -
Triwulan kedua
- 100 -
Triwulan ketiga
- 101 -
Triwulan keempat
- 102 -
Grafik selama 1 tahun
Puskesmas ketiga
- 103 -
Triwulan pertama
- 104 -
Triwulan kedua
- 105 -
Triwulan ketiga
- 106 -
Triwulan keempat
- 107 -
Source Code
- 108 -
- 109 -
- 110 -
- 111 -
- 112 -
- 113 -
8. Lampiran
Matplotlib.pyplot
axes Add an axes to the current figure and make it the current axes.
- 114 -
cohere Plot the coherence between x and y.
delaxes Remove an Axes (defaulting to the current axes) from its figure.
- 115 -
grid Configure the grid lines.
Install a repl display hook so that any stale figure are automatically
install_repl_displayhook
redrawn when control is returned to the repl.
isinteractive Return whether plots are updated after every plotting command.
loglog Make a plot with log scaling on both the x and y axis.
- 116 -
pie Plot a pie chart.
rgrids Get or set the radial gridlines on the current polar plot.
sca Set the current Axes to ax and the current Figure to the parent of ax.
set_cmap Set the default colormap, and applies it to the current image if any.
- 117 -
step Make a step plot.
switch_backend Close all open figures and set the Matplotlib backend.
thetagrids Get or set the theta gridlines on the current polar plot.
twinx Make and return a second axes that shares the x-axis.
twiny Make and return a second axes that shares the y-axis.
- 118 -
xcorr Plot the cross correlation between x and y.
xticks Get or set the current tick locations and labels of the x-axis.
yticks Get or set the current tick locations and labels of the y-axis.
Numpy
- 119 -
hypot() Given the “legs” of a right triangle, return its hypotenuse.
log1p() Return the natural logarithm of one plus the input array, element-wise.
- 120 -
add() Add arguments element-wise.
power() First array elements raised to powers from second array, element-wise.
floor_divide() Return the largest integer smaller or equal to the division of the inputs.
float_power() First array elements raised to powers from second array, element-wise.
convolve() sequences.
- 121 -
sign() Returns an element-wise indication of the sign of a number.
real_if_close() If complex input returns a real array if complex parts are close to zero.
nan_to_num() Replace NaN with zero and infinity with large finite numbers.
- 122 -
Daftar Pustaka
https://id.wikipedia.org/wiki/Python_(bahasa_pemrograman)
https://glints.com/id/lowongan/pentingnya-python/
- 123 -