Anda di halaman 1dari 8

UAS KU1072/Pengenalan Teknologi Informasi B NIM: _________________________________

Tanggal: 13 Desember 2018 Waktu: 120 menit Nama: _________________________________


Halaman 1 dari 8 Kelas: _________________________________

UJIAN AKHIR SEMESTER


KU1072/PENGENALAN TEKNOLOGI INFORMASI B
SEM. 1 2018/2019

HARI, TANGGAL : SABTU, 13 DESEMBER 2018


SIFAT UJIAN : INDIVIDUAL DAN CLOSED BOOK
DURASI : 120 MENIT
BAHASA/TOOL : PYTHON (termasuk Pandas dan Matplotlib)
FAK./SEK. : SITH (Rekayasa), STEI, FTSL (Kelas: 10)

BACALAH PETUNJUK INI SEBELUM UJIAN DIMULAI :

1. JANGAN BUKA HALAMAN BERIKUTNYA SEBELUM UJIAN DIMULAI!


2. Persiapan Ujian:
a. Di atas meja hanya ada alat tulis dan KTM serta KSM.
b. Ujian ini bersifat individual dan closed book.
3. SETELAH UJIAN DIMULAI:
a. Cek apakah Anda sudah mendapatkan 8 lembar soal (termasuk lembar ini dan cheat sheet di hlm.
2) yaitu dari hlm. 1 s.d. 8. Jika Anda tidak mendapatkan lembar yang benar, tukarkan kepada
pengawas.
b. Lembar soal adalah sekaligus lembar jawaban. Tidak disediakan lembar jawaban terpisah.
c. Tuliskan NIM, Nama, dan Kelas, pada tiap lembar soal pada tempat di pojok kanan atas.
d. Baca dulu semua soal berikut semua petunjuknya sebelum mengerjakan dengan sebaik-baiknya.
Semua soal Algoritma dan Pemrograman serta Data dan Analisis dikerjakan dengan
menggunakan Bahasa Python.
e. Kerjakan dulu soal yang Anda anggap mudah.
f. Tuliskan jawaban soal pada tempat-tempat yang disediakan sesuai instruksi soal. Jika Anda
membutuhkan tambahan tempat untuk menjawab, gunakan halaman-halaman kosong yang ada
pada lembar soal sesuai petunjuk dan jangan lupa menuliskan nomor soal dengan jelas. Jika Anda
membutuhkan lembar corat-coret, gunakan juga halaman-halaman kosong yang tersisa pada pada
lembar soal.
4. Tidak ada pertanyaan untuk semua soal. Buat asumsi sendiri jika ada soal yang menurut Anda tidak jelas
dan tuliskan asumsi Anda bersama jawaban Anda.
5. Sebelum memulai ujian, tanda tanganilah pernyataan di bawah ini.

Dengan ini, saya menyatakan bahwa saya mengerjakan ujian ini secara jujur, tanpa bantuan yang tidak dibenarkan. Jika
nantinya terbukti bahwa pernyataan saya ini tidak benar, maka saya bersedia menerima semua konsekuensinya sesuai
aturan kuliah dan peraturan ITB.

Bandung, 13 Desember 2018

Nama:
NIM:

SELAMAT MENGERJAKAN. SEMOGA SUKSES. 


UAS KU1072/Pengenalan Teknologi Informasi B NIM: _________________________________
Tanggal: 13 Desember 2018 Waktu: 120 menit Nama: _________________________________
Halaman 2 dari 8 Kelas: _________________________________

Cheat Sheet: Pandas and Matplotlib Basics


Pandas Import Convention
>>import pandas as pd

Contoh Pandas Data Frame


>>data = {"Country": ["Belgium", "India", "Brazil"],
"Capital": ["Brussel", "New Delhi", "Brasilia"],
"Population": [11190846, 1303171035, 207847528]}
>>df = pd.DataFrame(data, colums = ["Country", "Capital", "Population"])

Print
>>print(df)
Country Capital Population
0 Belgium Brussel 11190846
1 India New Delhi 1303171035
2 Brazil Brasilia 207847528

Read and Write to CSV


>>df1 = pd.read_csv("file.csv")
>>df.to_csv("myDataFrame.csv")

Selection
>>df[1:]
Country Capital Population
1 India New Delhi 1303171035
2 Brazil Brasilia 207847528
>>df.loc[[0],["Country"]]
"Belgium"
>>df.ix(1,"Capital")
"New Delhi"

Sort
>>df.sort_values(["Country"], ascending=[1]) #sort ascending by Country

Statistic
>>df.sum() #sum of values
>>df.min() #minimum values
>>df.max() #maximum values
>>df.std() #standard deviation values
>>df.mean() #mean values
>>df.count() #number of non-NA values
>>df.describe() #summary statistics
>>df["Country"].value_counts() #frequency distribution of Country

Correlation
>>df1["valuesX"].corr(df1["valuesY"]) #correlation between valuesX and valuesY

matplotlib.pyplot Import Convention


>> import matplotlib.pyplot as plt

Plotting
>>df.plot(kind="bar", x="Country", y="Population", title="Population per Country",
color="red") #plot bar char dengan batang berwarna merah
>>plt.show()

>>df2[["age"]].plot(kind="hist",bins=[0,20,40,60,80,100],rwidth=0.8) #histogram
>>plt.show()

Keterangan:
kind dapat bernilai bar, barh, pie, hist, line, scatter, area, dll.
UAS KU1072/Pengenalan Teknologi Informasi B NIM: _________________________________
Tanggal: 13 Desember 2018 Waktu: 120 menit Nama: _________________________________
Halaman 3 dari 8 Kelas: _________________________________

Soal 1. Impacts of Computing [Bobot : 20%]


1.a. Korupsi masih menjadi salah satu masalah besar di negara Indonesia. Uraikan 3 (tiga) buah contoh pemanfaatan
teknologi computing dalam membantu mencegah atau menanggulangi korupsi, khususnya di Indonesia.

1.b. Dunia pendidikan dewasa ini tidak terlepas dari pemanfaatan teknologi computing. Uraikan 3 (tiga) buah contoh
pemanfaatan teknologi computing dalam meningkatkan kualitas pendidikan, khususnya di Indonesia.

Tuliskan jawaban soal 1 di bawah ini atau di halaman kosong di balik hlm. 3 secara singkat, padat, tapi dengan
argumen/deskripsi yang jelas. Gunakan Bahasa Indonesia yang baik dan benar. Jangan lupa memberikan nomor
soal dengan jelas.
UAS KU1072/Pengenalan Teknologi Informasi B NIM: _________________________________
Tanggal: 13 Desember 2018 Waktu: 120 menit Nama: _________________________________
Halaman 4 dari 8 Kelas: _________________________________

Soal 2. Data dan Analisis – Python (1) [Bobot: 20%]


Diberikan sebuah file bernama “datanilai.csv” berisi daftar nilai dari sebuah kursus sebagai berikut:

nama jenis_kelamin NIS nilai_tes_1 nilai_tes_2 nilai_akhir


budi L 123456789 100 80 88
dadi L 123654987 80 80 80
tatan L 123123123 50 75 65
odang L 123654654 50 60 56
tuti P 123987987 80 90 86
uwa L 123777888 90 80 84
wuri P 123659865 70 70 70

Untuk soal 2.a. s.d. 2.e:


Jika bagian program berikut telah dieksekusi:

import pandas as pd
df = pd.read_csv("D:/datanilai.csv")

Tuliskan hasil dari program jika kode 2.a s.d. 2.e berikut dieksekusi.

2.a. df.loc[(df["jenis_kelamin"] == "L") & (df["nilai_tes_2"] >= 80)]


2.b. maksimum = df.max()
df.loc[df["nilai_tes_1"] == maksimum["nilai_tes_1"]
2.c. df.sort_values(["nilai_tes_1","nilai_tes_2"], ascending=[1,0])
2.d. df["nilai_tes_1"].value_counts()
2.e. df.mean()["nilai_akhir"]

Tuliskan jawaban tiap butir soal 2.a. s.d. 2.e di sisa halaman ini atau di halaman kosong di balik hlm. 4 dan 5
(jangan lupa memberikan nomor soal dengan jelas).
UAS KU1072/Pengenalan Teknologi Informasi B NIM: _________________________________
Tanggal: 13 Desember 2018 Waktu: 120 menit Nama: _________________________________
Halaman 5 dari 8 Kelas: _________________________________

Untuk soal 2.f. s.d. 2.i.:


Lengkapilah program-program di bawah untuk memberikan hasil yang diharapkan sesuai instruksi.
2.f. Mencetak (print) siswa dengan jenis_kelamin = "L" dengan nilai_tes_1 > 75 dan nilai_akhir < 85
terurut menaik berdasarkan nama.

import pandas as pd
df = pd.read_csv("D:/datanilai.csv")

…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………

2.g. Menampilkan nilai_tes_1 dan nilai_tes_2 setiap mahasiswa dalam 1 grafik vertical bar chart. Berikan juga
judul “Daftar Nilai Kursus” untuk grafik yang Anda buat.

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("D:/datanilai.csv")

…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
plt.show()

2.h. Menampilkan komposisi banyaknya siswa berdasarkan jenis_kelamin menggunakan grafik pie chart.

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("D:/datanilai.csv")

…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
plt.show()

2.i. Menampilkan distribusi perolehan nilai_akhir dalam sebuah histogram dengan kelompok nilai sbb: 0-40, 41-
60, 61-80, 81-100 dengan batang berwarna hijau (green).

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("D:/datanilai.csv")

…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
plt.show()
UAS KU1072/Pengenalan Teknologi Informasi B NIM: _________________________________
Tanggal: 13 Desember 2018 Waktu: 120 menit Nama: _________________________________
Halaman 6 dari 8 Kelas: _________________________________

Soal 3. Data dan Analisis – Python (2) [Bobot: 30%]


Untuk semua butir soal di bawah ini, tuliskan jawaban secara singkat, padat dan jelas.
Tuliskan jawaban di sisa halaman 7 dan di balik kosong di balik hlm. 6 dan 7.

Perhatikan data penjualan sebuah perusahaan dalam file bernama “sales.csv” sbb.:

Product DiscountBand UnitsSold GrossSales Discounts Sales Profit MonthNumber Year


Carretera High 2416 302000 36240 265760 24160 9 2013
Montana None 345 43125 43125 1725 10 2013
Velo None 345 43125 43125 1725 10 2013
VTT High 2954 369250 55387,5 313862,5 40617,5 11 2013
Velo High 1916 239500 23950 215550 14370 12 2013
Amarilla High 1659 207375 26958,75 180416,25 18663,75 1 2014
Velo Medium 952 119000 7140 111860 2380 2 2014
Paseo Low 1774 221750 6652,5 215097,5 2217,5 3 2014
Carretera Low 742,5 92812,5 1856,25 90956,25 1856,25 4 2014
Amarilla Medium 1645 205625 14393,75 191231,25 6168,75 5 2014
Paseo High 1583 197875 25723,75 172151,25 17808,75 6 2014
VTT High 1583 197875 25723,75 172151,25 17808,75 6 2014
Montana None 2665,5 333187,5 333187,5 13327,5 7 2014
Velo Low 923 115375 1153,75 114221,25 3461,25 8 2014
Velo Medium 567 70875 6378,75 64496,25 3543,75 9 2014
Paseo Low 2009 251125 7533,75 243591,25 2511,25 10 2014
Velo Low 2009 251125 7533,75 243591,25 2511,25 10 2014
VTT High 2529 316125 31612,5 284512,5 18967,5 11 2014
Paseo Low 2729 341125 6822,5 334302,5 6822,5 12 2014
VTT Low 2729 341125 6822,5 334302,5 6822,5 12 2014

Asumsikan data ini telah di-load dalam suatu dataframe bernama df misalnya dengan perintah sbb.:

import pandas as pd
df = pd.read_csv("D:/sales.csv")

a. Jika dijalankan perintah: >> df.describe()


maka untuk kolom UnitsSold dihasilkan statistik sebagai berikut (tampilan telah disesuaikan untuk memudahkan
pembacaan).

UnitsSold
count 20
mean 1703.75
std 831.39
min 345.00
25% 944.75
50% 1716.50
75% 2444.25
max 2945.00

Berikan penjelasan apa makna dari: mean, std, min, max, dan percentile 25%, 50%, dan 75%. Penjelasan harus
mencakup tidak hanya arti dari setiap fungsi statistik, tetapi apa yang bisa dibaca/dipahami terkait data di atas.
UAS KU1072/Pengenalan Teknologi Informasi B NIM: _________________________________
Tanggal: 13 Desember 2018 Waktu: 120 menit Nama: _________________________________
Halaman 7 dari 8 Kelas: _________________________________

b. Untuk persoalan-persoalan di bawah ini:


 pilihlah satu saja jenis grafik yang tepat untuk menggambarkan fenomenanya,
 jelaskan mengapa Anda memilih grafik tersebut, dan
 tuliskan program untuk menampilkan grafik tsb. dengan menggunakan dataframe df di atas.

i. Membandingkan total Sales dan total Profit untuk tiap jenis Product pada tahun 2014.
ii. Menampilkan komposisi (persentase) berapa total UnitsSold untuk tiap jenis Product.
iii. Menampilkan perkembangan jumlah Sales dari bulan ke bulan selama tahun 2013 dan 2014.
iv. Mengetahui hubungan/korelasi antara kolom Sales dengan Profit.

c. Perusahaan ingin mengetahui hubungan antara data Discounts dan Profit.


i. Buatlah grafik scatter plot yang menunjukkan hubungan antara kolom Discounts (sebagai sumbu X) dan
Profit (sebagai sumbu Y).
ii. Berdasarkan grafik pada butir c.i, sebutkan dan jelaskan bagaimana korelasi antara kedua kolom tersebut.
iii. Tuliskan program untuk menampilkan hubungan antara kolom Discounts dan Profit dalam suatu scatter plot
dan menghitung nilai korelasi di antara keduanya.

d. Perusahaan ingin mengetahui 3 (tiga) Product yang memberikan total Profit paling tinggi. Berikan usulan teknik
analisis data yang dapat digunakan untuk menghasilkan pengetahuan tersebut.
Bonus: Buatlah program dalam Python (hanya dinilai jika pertanyaan utama sudah dijawab).

Tuliskan jawaban di sisa halaman 7 dan di balik kosong di balik hlm. 6 dan 7.
UAS KU1072/Pengenalan Teknologi Informasi B NIM: _________________________________
Tanggal: 13 Desember 2018 Waktu: 120 menit Nama: _________________________________
Halaman 8 dari 8 Kelas: _________________________________

Soal 4. Algoritma dan Pemrograman – Python [Bobot : 30%]

4.a. Subprogram [Bobot : 10%]


Diketahui sebuah deret sebagai berikut: 𝑓(𝑥) = 𝑥 + 2𝑥 2 + 3𝑥 3 + ⋯ + 𝑛𝑥 𝑛 . Lengkapilah fungsi fx di bawah ini yang
digunakan untuk menghasilkan nilai 𝑓(𝑥) berdasarkan parameter input nilai 𝑥 (bilangan riil) dan 𝑛 (bilangan bulat)
dengan menggunakan deret di atas. Asumsikan: 𝑛 ≥ 1. Untuk menghitung 𝑥 𝑦 , gunakan 𝑥 ∗∗ 𝑦.

def fx (x, n):


# Menghasilkan x+2x^2+3x^3+…+nx^n. Asumsi: n>=1

# KAMUS LOKAL
# Tuliskan dalam komentar nama-nama variabel yang dibutuhkan dan type-nya di bawah ini

…………………………………………………………………………………………………………………………………………………………………………………………………………………………………
# ALGORITMA

…………………………………………………………………………………………………………………………………………………………………………………………………………………………………

Soal 4.b. Root Mean Square Deviation [Bobot : 20% + Bonus: 10%]
Root Mean Square Deviation (RMSD) adalah salah satu jenis pengukuran yang sering digunakan untuk mengetahui
kualitas sebuah model/estimator dalam memberikan prediksi nilai data. RMSD akan mengukur perbedaan antara nilai
yang teramati (dari suatu populasi atau sampel) dengan nilai hasil prediksi yang diberikan oleh model komputasi yang
dibuat. Semakin kecil nilai RMSD, menunjukkan semakin baik model komputasi yang dibangun. Formula dari RMSD
adalah sebagai berikut.
∑𝑛𝑖=1(𝑦𝑡 − 𝑦𝑜 )2
𝑅𝑀𝑆𝐷 = √
𝑛
dengan: n : banyaknya data,
𝑦𝑡 : nilai sebuah data yang teramati,
𝑦𝑜 : nilai hasil prediksi model komputasi.

Buatlah sebuah program Python yang menerima masukan dari user banyaknya data yang akan dipelajari, misalnya n.
Jika n ≤ 0, maka program memberikan pesan: “Tidak ada data yang tersedia”.

Jika n > 0, program akan meminta masukan dari user berupa 2 (dua) buah array dengan elemen bilangan riil, masing-
masing berukuran n, misalnya T1 dan T0. T1 merepresentasikan data yang teramati, sedangkan T0 merepresentasikan
data hasil prediksi model komputasi. Selanjutnya, program menghitung nilai RMSD berdasarkan masukan T0 dan T1
sesuai rumus di atas dan menuliskan hasilnya ke layar.

Bonus: Buatlah flowchart untuk program yang diminta (hanya dinilai jika program di atas sudah dibuat).
Petunjuk: Untuk menghitung 𝑥 2 gunakan: 𝑥 ∗∗ 2, sedangkan untuk menghitung √𝑥 gunakan: 𝑥 ∗∗ (0.5).

Tuliskan jawaban butir 4.b. di halaman kosong di balik hlm. 8. Jika masih kurang, gunakan halaman kosong di
balik hlm. 2 dengan memberikan petunjuk dan nomor soal yang jelas.

Anda mungkin juga menyukai