NAMA : Natanael Julio Landa Katupayan
NISN : 2409036017
UTS PEMOGRAMAN KOMPUTER
Visualisasi Data dan Analisis Kinerja Operator
1. Hitung efisiensi produksi!
a. Menghitung persentase Kecacatan
1.import numpy as np 2.import pandas as pd 3.import seaborn as sns
4.import matplotlib.pyplot as plt 5.
6.# memindahkan data dari excel
7.df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx") 8.print(df.to_string())
9.
10.# mengolah data persen cacat
11.df["Persentase Cacat (%)"] = (df["Total Cacat"] / df["Total Produksi"]) * 100
12.print(df[["Total Produksi", "Total Cacat", "Persentase Cacat (%)"]].head())
Kode program ini bertujuan untuk membaca data dari file Excel yang berisi informasi produksi dan cacat produk, kemudian menghitung persentase cacat per operator. Langkah pertama dimulai dengan mengimpor pustaka Python penting seperti numpy, pandas, seaborn, dan matplotlib.pyplot yang masing-masing berguna untuk manipulasi data dan visualisasi.
Selanjutnya, data dari file Excel DATA TUGAS UTS PEMROGRAMAN.xlsx dimuat ke dalam sebuah DataFrame bernama df. Setelah data berhasil dimuat, baris berikutnya melakukan perhitungan kolom baru yang bernama Persentase Cacat (%), dengan rumus Total Cacat / Total Produksi * 100, yang menunjukkan seberapa besar produk cacat yang dihasilkan dibanding total produksi. Akhirnya, data yang telah diolah ditampilkan dalam bentuk tabel ringkas menggunakan .head() agar hanya menampilkan beberapa baris pertama sebagai sampel. Contoh hasil di terminal yang didapat berupa:
b. Menghitung Persentase Penggunaan Mesin
1.#mengolah data penggunaan mesin
2.df["Persentase penggunaan Mesin (%)"] = (df["Waktu penggunaan Mesin"]
/ 8) * 100
3.print(df[["Waktu penggunaan Mesin", "Persentase penggunaan Mesin (%)"]].head())
Pada potongan kode tersebut, melanjutkan langkah-langkah sebelumnya yang dimulai dengan menghitung persentase penggunaan mesin oleh masing-masing operator. Nilai ini diperoleh dari membagi waktu penggunaan mesin dalam satu hari (diasumsikan 8 jam kerja penuh) dengan nilai aktual penggunaan mesin, kemudian dikalikan 100 agar menjadi persentase. Nilai ini disimpan dalam kolom baru Persentase penggunaan Mesin (%) dalam DataFrame df. Setelah itu, dilakukan pencetakan lima baris pertama dari kolom Waktu penggunaan Mesin dan kolom persentasenya untuk melihat hasil perhitungannya. Langkah ini penting untuk mengevaluasi efisiensi kerja setiap operator berdasarkan seberapa optimal mereka menggunakan waktu kerja mereka dengan mesin. Contoh hasil di terminal yang didapat berupa:
2. Buatlah Visualisasi Data!
a. Bar Chart Total Produksi 1. import numpy as np
2. import pandas as pd
3. import seaborn as sns
4. import matplotlib.pyplot as plt
5.
6. #baca data
7. df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx")
8. print(df.to_string())
9.
10.#mengelompokkan data bar chart
11.shift_group = df.groupby("Shift")["Total Produksi"].sum().reset_index()
12.print(shift_group)
13.
14.plt.figure(figsize=(8,5))
15.sns.barplot(x="Shift", y="Total Produksi", data=shift_group, palette="Set2")
16.plt.title("Total Produksi per Shift")
17.plt.xlabel("Shift")
18.plt.ylabel("Total Produksi")
19.plt.tight_layout()
20.plt.show()
Pada pembuatan bar chart total produksi pada tiap shift, digunakan Kode tersebut untuk membuat diagram batang (bar chart) yang menampilkan total produksi berdasarkan shift kerja.
Pertama-tama, pustaka-pustaka penting seperti numpy, pandas, seaborn, dan matplotlib diimpor agar bisa digunakan untuk analisis data dan visualisasi. Kemudian data dibaca dari file Excel bernama "DATA TUGAS UTS PEMROGRAMAN.xlsx" dan ditampilkan seluruhnya agar kita bisa melihat isi data awal. Setelah itu, data dikelompokkan berdasarkan kolom “Shift”
menggunakan fungsi groupby() dan dihitung total produksinya dengan .sum(). Data hasil pengelompokan ini kemudian dimasukkan ke dalam grafik batang menggunakan fungsi barplot dari seaborn, dengan shift sebagai sumbu X dan total produksi sebagai sumbu Y. Beberapa fungsi tambahan seperti xlabel, ylabel, dan title digunakan untuk memperjelas tampilan grafik.
Terakhir, grafik ditampilkan dengan plt.show(). Contoh Hasil Bar Chart yang didapat:
3. Line Graph Persentase Kecacatan dari Waktu ke Waktu 1. #baca data
2. df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx")
3. print(df.to_string())
4.
5. #mengelompokkan data line graph
6. df["Tanggal"] = pd.to_datetime(df["Tanggal"])
7.
8. df["Persentase Cacat (%)"] = (df["Total Cacat"] / df["Total Produksi"]) * 100
9. print(df[["Tanggal", "Persentase Cacat (%)"]].head())
10.
11.plt.figure(figsize=(10,6))
12.sns.lineplot(x="Tanggal", y="Persentase Cacat (%)", data=df, marker="o", linewidth=2)
13.plt.title("Persentase Cacat dari Waktu ke Waktu")
14.plt.xlabel("Tanggal")
15.plt.ylabel("Persentase Cacat (%)")
16.plt.xticks(rotation=45)
17.plt.grid(True)
18.plt.tight_layout()
19.plt.show()
Pada pembuatan line graph persentase kecacatan dari waktu ke waktu, maka digunkan kode ini yang bertujuan untuk membuat grafik line chart yang menunjukkan persentase cacat produk dari waktu ke waktu. Pertama, data dibaca dari file Excel menggunakan pandas, lalu kolom
"Tanggal" dikonversi ke format datetime agar bisa digunakan sebagai sumbu waktu.
Selanjutnya, dihitung persentase cacat dengan membagi jumlah total cacat dengan total produksi, lalu dikalikan 100 untuk mengubahnya ke bentuk persen. Setelah data siap, digunakan seaborn dan matplotlib untuk membuat grafik garis, dengan sumbu x berisi tanggal dan sumbu y menampilkan persentase cacat. Beberapa pengaturan visual juga ditambahkan seperti rotasi label sumbu x, grid, dan layout yang lebih rapi agar grafik lebih mudah dibaca. Contoh hasil Line Graph yang didapat:
1. Scatter Plot antara Waktu Penggunaan Mesin (jam) dan Persentase Kecacatan (%)
1. #baca data
2. df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx")
3. print(df.to_string())
4.
5. #mengelompokkan data Scatter Plot
6. df["Persentase Cacat (%)"] = (df["Total Cacat"] / df["Total Produksi"]) * 100
7. print(df[["Waktu penggunaan Mesin", "Persentase Cacat (%)"]].to_string())
8.
9. plt.figure(figsize=(8,6))
10.sns.scatterplot(x="Waktu penggunaan Mesin", y="Persentase Cacat (%)", data=df, hue="Shift", palette="Dark2")
11.plt.title("Hubungan Waktu penggunaan Mesin dan Persentase Cacat")
12.plt.xlabel("Waktu penggunaan Mesin (jam)")
13.plt.ylabel("Persentase Cacat (%)")
14.plt.grid(True)
15.plt.tight_layout()
16.plt.show()
Pada pembuatan scatter plot antara waktu penggunaan mesin dan persentase kecacatan, maka digunakan kode ini. Pertama buat kode untuk membaca data dari Excel terlebih dahulu, kemudian menampilkan hubungan antara waktu penggunaan mesin dan persentase cacat melalui visualisasi scatter plot. Setelah itu, data dibaca menggunakan pandas dan ditampilkan dalam bentuk string agar pengguna bisa melihat isi data. Kemudian, dibuat kolom baru berisi perhitungan persentase cacat, yaitu jumlah cacat dibagi total produksi dikali 100. Setelah itu, visualisasi scatter plot dibuat menggunakan seaborn, dengan sumbu X menunjukkan waktu penggunaan mesin dan sumbu Y menampilkan persentase cacat. Data juga diwarnai berdasarkan shift kerja menggunakan parameter hue, dan grafik diberi judul serta label sumbu untuk memperjelas informasi yang ditampilkan. Contoh hasil Scatter Plot yang didapat:
3. Analisis kinerja masing-masing operator a. Total Produksi per Operator
1.
import numpy as np2.
import pandas as pd3.
import seaborn as sns4.
import matplotlib.pyplot as plt5.
6.
# memindahkan data dari excel7.
df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx")8.
print(df.to_string())9.
10.
#total produksi per operator11.
total_produksi = df.groupby("Operator")["Total Produksi"].sum().reset_index()12.
print("Total Produksi per Operator:")13.
print(total_produksi)Pada potongan kode tersebut, langkah pertama adalah mengimpor beberapa pustaka penting seperti numpy, pandas, seaborn, dan matplotlib.pyplot yang digunakan untuk analisis data dan visualisasi. Kemudian, data dibaca dari file Excel berjudul "DATA TUGAS UTS PEMROGRAMAN.xlsx" menggunakan pd.read_excel(), dan ditampilkan isi data awalnya untuk memastikan data telah berhasil dimuat. Selanjutnya, dilakukan proses pengelompokan data berdasarkan kolom "Operator", kemudian dijumlahkan nilai pada kolom "Total Produksi" untuk setiap operator menggunakan fungsi groupby() dan sum(). Hasil pengelompokan ini disimpan ke dalam variabel total_produksi dan ditampilkan ke layar untuk melihat total produksi masing-masing operator. Proses ini bertujuan untuk mengetahui kontribusi produksi dari setiap operator secara lebih terstruktur.
b.
Persentase Cacat per Operator 1. import numpy as np2. import pandas as pd
3. import seaborn as sns
4. import matplotlib.pyplot as plt
5.
6. # memindahkan data dari excel
7. df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx")
8. print(df.to_string())
9.
10.# Persentase cacat Per Operator
11.cacat_data = df.groupby("Operator")[["Total Produksi", "Total Cacat"]].sum()
12.cacat_data["Persentase Cacat (%)"] = (cacat_data["Total Cacat"] / cacat_data["Total Produksi"]) * 100
13.print("Persentase Cacat per Operator:")
14.print(cacat_data[["Persentase Cacat (%)"]])
Kode Python ini digunakan untuk menghitung persentase cacat per operator berdasarkan data produksi yang diambil dari file Excel bernama "DATA TUGAS UTS PEMROGRAMAN.xlsx".
Pertama-tama, pustaka seperti NumPy, Pandas, Seaborn, dan Matplotlib diimpor untuk keperluan analisis dan visualisasi data. Kemudian, data dari file Excel dibaca ke dalam DataFrame menggunakan pd.read_excel() dan ditampilkan ke konsol. Setelah itu, data dikelompokkan berdasarkan kolom "Operator", lalu dijumlahkan untuk kolom "Total Produksi"
dan "Total Cacat" menggunakan groupby() dan sum(). Persentase cacat dihitung dengan membagi total cacat dengan total produksi dan dikalikan 100 untuk mendapatkan nilai dalam persen. Hasil akhirnya ditampilkan berupa persentase cacat per operator. Kode ini sangat berguna untuk mengetahui efektivitas kerja masing-masing operator dalam proses produksi.
c.
Rata-rata machine uptime per Operator1.
import numpy as np2.
import pandas as pd3.
import seaborn as sns4.
import matplotlib.pyplot as plt5.
6.
# memindahkan data dari excel7.
df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx")8.
print(df.to_string())9.
10.
# Rata-rata machine time per Operator11.
uptime = df.groupby("Operator")["Waktu penggunaan Mesin"].mean().reset_index()12.
uptime.rename(columns={"Waktu penggunaan Mesin": "Rata-rata Waktu Mesin (jam)"}, inplace=True)13.
print("Rata-rata Waktu Mesin per Operator:")14.
print(uptime)Kode Python ini bertujuan untuk menghitung rata-rata waktu penggunaan mesin (machine uptime) oleh setiap operator berdasarkan data dari file Excel berjudul "DATA TUGAS UTS
PEMROGRAMAN.xlsx". Langkah pertama adalah mengimpor pustaka yang dibutuhkan, seperti NumPy, Pandas, Seaborn, dan Matplotlib. Setelah itu, data dari file Excel dibaca ke dalam DataFrame menggunakan pd.read_excel() dan isinya ditampilkan menggunakan print().
Selanjutnya, data dikelompokkan berdasarkan kolom "Operator", lalu dihitung rata-rata dari kolom "Waktu penggunaan Mesin" menggunakan fungsi mean(). Data yang dihasilkan kemudian di-reset index-nya agar lebih mudah dibaca, dan kolom tersebut diubah namanya menjadi "Rata-rata Waktu Mesin (jam)" dengan rename(). Terakhir, hasil perhitungan rata-rata waktu mesin per operator ditampilkan. Kode ini sangat berguna untuk menganalisis seberapa lama mesin digunakan oleh masing-masing operator, yang bisa menjadi indikator efisiensi kerja atau beban kerja mereka.
d.
Key Performance Indeks untuk Masing-Masing Operator1.
import numpy as np2.
import pandas as pd3.
import seaborn as sns4.
import matplotlib.pyplot as plt5.
6.
#membaca file dari excel7.
df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx")8.
9.
#KPI PER OPERATOR10.
df["Persentase Cacat (%)"] = (df["Total Cacat"] / df["Total Produksi"]) * 10011.
12.
produksi_per_operator = df.groupby ("Operator") ["Total Produksi"].sum()13.
14.
cacat_per_operator = df.groupby ("Operator").apply(15.
lambda x: x["Total Cacat"].sum() / x["Total Produksi"].sum() * 10016.
)17.
18.
uptime_per_operator = df.groupby ("Operator") ["Waktu penggunaan Mesin"].mean ()19.
20.
kpi_per_operator = (produksi_per_operator / cacat_per_operator) * uptime_per_operator21.
22.
analisis_kinerja = pd.DataFrame({23.
"Total Produksi": produksi_per_operator,24.
"Persentase Cacat (%)": cacat_per_operator,25.
"Rata-rata Uptime (jam)": uptime_per_operator,26.
"KPI": kpi_per_operator27.
})28.
29.
print("Analisis Kinerja Masing-masing Operator:")30.
print(analisis_kinerja)Kode Python ini dibuat untuk melakukan analisis Key Performance Indicator (KPI) dari masing-masing operator berdasarkan data produksi dari file Excel "DATA TUGAS UTS PEMROGRAMAN.xlsx". Langkah pertama adalah mengimpor pustaka-pustaka seperti NumPy, Pandas, Seaborn, dan Matplotlib, lalu membaca data dari Excel menggunakan pd.read_excel().
Selanjutnya, dihitung persentase cacat secara keseluruhan, lalu data dikelompokkan berdasarkan kolom "Operator" untuk menghitung total produksi, persentase cacat, dan rata-rata waktu penggunaan mesin (uptime). Persentase cacat dihitung dengan menggunakan fungsi apply dan lambda, sedangkan KPI dihitung dengan rumus: total produksi dibagi persentase cacat, dikalikan dengan rata-rata uptime. Semua hasil ini kemudian dikumpulkan dalam sebuah DataFrame baru bernama analisis_kinerja yang berisi informasi total produksi, persentase cacat,
rata-rata uptime, dan nilai KPI untuk masing-masing operator. Terakhir, hasil analisis kinerja ini ditampilkan agar bisa dievaluasi lebih lanjut.
4. Tantangan Bonus: Urutkan semua operator berdasarkan Performance Score dan tampilkan hasilnya dalam bentuk diagram batang horizontal (operator terbaik di atas).
1. import pandas as pd
2. import matplotlib.pyplot as plt 3. import seaborn as sns
4.
5. # Membaca file Excel
6. df = pd.read_excel("KPI.xlsx") 7.
8. #Urutkan Operator berdasarkan Performance Score 9. df.columns = df.columns.str.strip()
10.
11. print("Kolom dalam file:", df.columns.tolist()) 12.
13. df_sorted = df.sort_values("KPI", ascending=False) 14.
15. print("Data KPI yang telah diurutkan:") 16. print(df_sorted[["Operator", "KPI"]]) 17. plt.figure(figsize=(10, 6))
18. sns.barplot(
19. x="KPI", 20. y="Operator", 21. data=df_sorted, 22. palette="viridis"
23. )
24. plt.title("Peringkat Operator Berdasarkan KPI") 25. plt.xlabel("Nilai KPI")
26. plt.ylabel("Operator") 27. plt.tight_layout() 28. plt.show()
Kode Python ini dibuat untuk menampilkan peringkat operator berdasarkan nilai KPI mereka dalam bentuk grafik. Pertama-tama, pustaka yang dibutuhkan seperti Pandas, Matplotlib, dan Seaborn diimpor. Kemudian, data dibaca dari file Excel bernama "KPI.xlsx" menggunakan pd.read_excel(). Untuk memastikan tidak ada spasi berlebih di nama kolom, semua nama kolom dibersihkan dengan str.strip(). Setelah itu, data diurutkan berdasarkan kolom "KPI" secara menurun (dari yang tertinggi ke terendah) dengan sort_values(), lalu ditampilkan hasil pengurutan tersebut. Bagian terakhir dari kode menggunakan Seaborn untuk membuat grafik batang horizontal (sns.barplot) yang menunjukkan nilai KPI tiap operator, di mana sumbu X menunjukkan nilai KPI dan sumbu Y menunjukkan nama operator. Grafik ini diberi judul, label sumbu, dan ditampilkan menggunakan plt.show(). Visualisasi ini mempermudah dalam menilai siapa operator dengan performa terbaik berdasarkan KPI.
KESELURUHAN SCRIPT CODING PYTHON:
import numpy as np import pandas as pd import seaborn as sns
import matplotlib.pyplot as plt
# memindahkan data dari excel
df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx") print(df.to_string())
# mengolah data persen cacat
df["Persentase Cacat (%)"] = (df["Total Cacat"] / df["Total Produksi"]) * 100
print(df[["Total Produksi", "Total Cacat", "Persentase Cacat (%)"]].head())
#mengolah data penggunaan mesin
df["Persentase penggunaan Mesin (%)"] = (df["Waktu penggunaan Mesin"] / 8)
* 100
print(df[["Waktu penggunaan Mesin", "Persentase penggunaan Mesin (%)"]].head())
import numpy as np import pandas as pd import seaborn as sns
import matplotlib.pyplot as plt
#baca data
df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx") print(df.to_string())
#mengelompokkan data bar chart
shift_group = df.groupby("Shift")["Total Produksi"].sum().reset_index() print(shift_group)
plt.figure(figsize=(8,5))
sns.barplot(x="Shift", y="Total Produksi", data=shift_group, palette="Set2")
plt.title("Total Produksi per Shift") plt.xlabel("Shift")
plt.ylabel("Total Produksi")
plt.tight_layout() plt.show()
#baca data
df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx") print(df.to_string())
#mengelompokkan data line graph
df["Tanggal"] = pd.to_datetime(df["Tanggal"])
df["Persentase Cacat (%)"] = (df["Total Cacat"] / df["Total Produksi"]) * 100
print(df[["Tanggal", "Persentase Cacat (%)"]].head())
plt.figure(figsize=(10,6))
sns.lineplot(x="Tanggal", y="Persentase Cacat (%)", data=df, marker="o", linewidth=2)
plt.title("Persentase Cacat dari Waktu ke Waktu") plt.xlabel("Tanggal")
plt.ylabel("Persentase Cacat (%)") plt.xticks(rotation=45)
plt.grid(True) plt.tight_layout() plt.show()
#baca data
df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx") print(df.to_string())
#mengelompokkan data Scatter Plot
df["Persentase Cacat (%)"] = (df["Total Cacat"] / df["Total Produksi"]) * 100
print(df[["Waktu penggunaan Mesin", "Persentase Cacat (%)"]].to_string())
plt.figure(figsize=(8,6))
sns.scatterplot(x="Waktu penggunaan Mesin", y="Persentase Cacat (%)", data=df, hue="Shift", palette="Dark2")
plt.title("Hubungan Waktu penggunaan Mesin dan Persentase Cacat") plt.xlabel("Waktu penggunaan Mesin (jam)")
plt.ylabel("Persentase Cacat (%)") plt.grid(True)
plt.tight_layout() plt.show()
import numpy as np import pandas as pd import seaborn as sns
import matplotlib.pyplot as plt
# memindahkan data dari excel
df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx") print(df.to_string())
#total produksi per operator
total_produksi = df.groupby("Operator")["Total Produksi"].sum().reset_index()
print("Total Produksi per Operator:") print(total_produksi)
import numpy as np import pandas as pd import seaborn as sns
import matplotlib.pyplot as plt
# memindahkan data dari excel
df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx") print(df.to_string())
# Persentase cacat Per Operator
cacat_data = df.groupby("Operator")[["Total Produksi", "Total Cacat"]].sum()
cacat_data["Persentase Cacat (%)"] = (cacat_data["Total Cacat"] / cacat_data["Total Produksi"]) * 100
print("Persentase Cacat per Operator:") print(cacat_data[["Persentase Cacat (%)"]])
import numpy as np import pandas as pd import seaborn as sns
import matplotlib.pyplot as plt
# memindahkan data dari excel
df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx") print(df.to_string())
# Rata-rata machine time per Operator
uptime = df.groupby("Operator")["Waktu penggunaan Mesin"].mean().reset_index()
uptime.rename(columns={"Waktu penggunaan Mesin": "Rata-rata Waktu Mesin (jam)"}, inplace=True)
print("Rata-rata Waktu Mesin per Operator:") print(uptime)
import numpy as np import pandas as pd import seaborn as sns
import matplotlib.pyplot as plt
#membaca file dari excel
df = pd.read_excel("DATA TUGAS UTS PEMROGRAMAN.xlsx")
#KPI PER OPERATOR
df["Persentase Cacat (%)"] = (df["Total Cacat"] / df["Total Produksi"]) * 100
produksi_per_operator = df.groupby ("Operator") ["Total Produksi"].sum() cacat_per_operator = df.groupby ("Operator").apply(
lambda x: x["Total Cacat"].sum() / x["Total Produksi"].sum() * 100 )
uptime_per_operator = df.groupby ("Operator") ["Waktu penggunaan Mesin"].mean ()
kpi_per_operator = (produksi_per_operator / cacat_per_operator) * uptime_per_operator
analisis_kinerja = pd.DataFrame({
"Total Produksi": produksi_per_operator,
"Persentase Cacat (%)": cacat_per_operator,
"Rata-rata Uptime (jam)": uptime_per_operator,
"KPI": kpi_per_operator })
print("Analisis Kinerja Masing-masing Operator:") print(analisis_kinerja)
import pandas as pd
import matplotlib.pyplot as plt import seaborn as sns
# Membaca file Excel
df = pd.read_excel("KPI.xlsx")
#Urutkan Operator berdasarkan Performance Score df.columns = df.columns.str.strip()
print("Kolom dalam file:", df.columns.tolist())
df_sorted = df.sort_values("KPI", ascending=False)
print("Data KPI yang telah diurutkan:") print(df_sorted[["Operator", "KPI"]])
plt.figure(figsize=(10, 6)) sns.barplot(
x="KPI", y="Operator", data=df_sorted, palette="viridis"
)
plt.title("Peringkat Operator Berdasarkan KPI") plt.xlabel("Nilai KPI")
plt.ylabel("Operator") plt.tight_layout() plt.show()