Pemrograman Sains Data I
Ujian Tengah Semester Genap 24/25
1. Operasi dan Tipe Data Dasar
Kode berikut melakukan operasi dasar matematika (penjumlahan,
perkalian, pembagian, dan pangkat) pada dua bilangan (a
dan
b
). Hasil dari masing-masing operasi disimpan dalam
variabel terpisah. Kemudian, hasilnya ditampilkan menggunakan fungsi
cat()
, bersama dengan informasi tipe data hasil operasi
tersebut. Tipe data ditentukan dengan fungsi class()
.
Selain itu, kode ini mengatur agar pesan, peringatan, dan error tidak
ditampilkan dalam output.
## Penjumlahan: 22 ( numeric )
## Perkalian: 105 ( numeric )
## Pembagian: 2.142857 ( numeric )
## Pangkat: 170859375 ( numeric )
2. Struktur Kendali (Control Flow)
Kode tersebut menggunakan struktur kendali if-else
untuk
memberikan keterangan berdasarkan nilai ujian. Jika nilai lebih besar
atau sama dengan 85, keterangan “Sangat Baik” ditampilkan. Jika tidak,
dan nilai lebih besar atau sama dengan 70, keterangan “Baik”
ditampilkan, dan seterusnya. Keterangan yang sesuai dengan rentang nilai
akan ditampilkan menggunakan fungsi cat()
.
## Keterangan: Baik
3. Fungsi dan Perulangan
Kode ini mendefinisikan fungsi kelipatan_genap
untuk
mencetak bilangan genap yang merupakan kelipatan 4 dari 1 hingga angka
n
. Fungsi ini menggunakan perulangan for
untuk
memeriksa setiap bilangan dari 1 hingga n
dan mencetak yang
memenuhi kondisi kelipatan 4. Nilai n
ditentukan sebelumnya
(misalnya 200), dan hasilnya ditampilkan secara horizontal.
## Bilangan genap kelipatan 4 dari 1 hingga 200 adalah:
## 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200
4. Studi Kasus - Data Wrangling dan Transformasi
Data Collection
Kode ini membaca tiga file CSV (untuk bulan Januari, Februari, dan
Maret), menggabungkannya menjadi satu data frame, dan menampilkan jumlah
baris dan kolom data gabungan. Kemudian, kode ini menampilkan 10 baris
pertama dari data gabungan dalam bentuk tabel yang rapi menggunakan
kable()
.
## Jumlah baris: 150 Jumlah kolom: 9
OrderID | Tanggal | Produk | Kategori | Harga | Jumlah | Total | Pembeli | Kota |
---|---|---|---|---|---|---|---|---|
1001 | 01-01-2024 | Laptop A | NA | 15000000 | empat | NA | Budi@ | Bandung |
1002 | 02-01-2024 | Tas Branded | Fashion | 15000000 | 2 | NA | Budi@ | Surabaya |
1003 | 03-01-2024 | Tas Branded | Aksesoris | 15000000 | 3 | NA | anonymous | Bandung |
1004 | 04-01-2024 | Kemeja | NA | 15000000 | dua | NA | Andi123 | Bandung |
1005 | 05-01-2024 | - | Fashion | Rp750.000 | 3 | NA | anonymous | Jakarta |
1006 | 06-01-2024 | Smartphone X | Fashion | 15000000 | empat | NA | Sinta99 | Bandung |
1007 | 07-01-2024 | Sepatu ‘Nike’ | Elektronik | 1.200.000 | 3 | NA | anonymous | Bandung |
1008 | 08-01-2024 | - | Elektronik | 250000 | dua | NA | anonymous | Jakarta |
1009 | 09-01-2024 | Smartphone X | Elektronik | 15000000 | empat | NA | anonymous | - |
1010 | 10-01-2024 | Sepatu ‘Nike’ | Aksesoris | Rp750.000 | 2 | NA | Sinta99 | Surabaya |
Data Cleaning
Kode ini membersihkan data dengan langkah-langkah berikut: mengubah kolom ke tipe data yang tepat (karakter dan numerik), memformat tanggal, menghitung total dari harga dan jumlah, mengganti nilai tidak valid dengan NA, dan menghapus baris yang tidak memiliki nama produk yang valid. Setelah itu, data yang telah dibersihkan ditampilkan dalam bentuk tabel.
OrderID | Tanggal | Produk | Kategori | Harga | Jumlah | Total | Pembeli | Kota |
---|---|---|---|---|---|---|---|---|
1001 | 2024-01-01 | Laptop A | NA | 1.5e+07 | NA | NA | Budi@ | Bandung |
1002 | 2024-01-02 | Tas Branded | Fashion | 1.5e+07 | 2 | 3.00e+07 | Budi@ | Surabaya |
1003 | 2024-01-03 | Tas Branded | Aksesoris | 1.5e+07 | 3 | 4.50e+07 | NA | Bandung |
1004 | 2024-01-04 | Kemeja | NA | 1.5e+07 | NA | NA | Andi123 | Bandung |
1006 | 2024-01-06 | Smartphone X | Fashion | 1.5e+07 | NA | NA | Sinta99 | Bandung |
1007 | 2024-01-07 | Sepatu ‘Nike’ | Elektronik | 1.2e+00 | 3 | 3.60e+00 | NA | Bandung |
1009 | 2024-01-09 | Smartphone X | Elektronik | 1.5e+07 | NA | NA | NA | NA |
1010 | 2024-01-10 | Sepatu ‘Nike’ | Aksesoris | 7.5e+02 | 2 | 1.50e+03 | Sinta99 | Surabaya |
1012 | 2024-01-12 | Tas Branded | Aksesoris | 2.5e+05 | NA | NA | Andi123 | Surabaya |
1013 | 2024-01-13 | Laptop A | Aksesoris | 7.5e+02 | 2 | 1.50e+03 | Sinta99 | Surabaya |
1014 | 2024-01-14 | Tas Branded | Elektronik | 7.5e+02 | NA | NA | Sinta99 | Surabaya |
1016 | 2024-01-16 | Kemeja | Aksesoris | 1.5e+07 | 2 | 3.00e+07 | NA | Surabaya |
1017 | 2024-01-17 | Sepatu ‘Nike’ | Aksesoris | 2.5e+05 | NA | NA | Andi123 | Jakarta |
1018 | 2024-01-18 | Smartphone X | Aksesoris | 7.5e+02 | NA | NA | Sinta99 | NA |
1019 | 2024-01-19 | Kemeja | NA | 7.5e+02 | NA | NA | Budi@ | Surabaya |
1020 | 2024-01-20 | Laptop A | Aksesoris | 1.2e+00 | 1 | 1.20e+00 | NA | Surabaya |
1021 | 2024-01-21 | Laptop A | Elektronik | 1.5e+07 | 1 | 1.50e+07 | NA | Jakarta |
1022 | 2024-01-22 | Sepatu ‘Nike’ | Aksesoris | 7.5e+02 | 2 | 1.50e+03 | Sinta99 | Surabaya |
1023 | 2024-01-23 | Smartphone X | NA | 7.5e+02 | 3 | 2.25e+03 | Andi123 | NA |
1024 | 2024-01-24 | Tas Branded | NA | 1.5e+07 | 2 | 3.00e+07 | Andi123 | Surabaya |
1025 | 2024-01-25 | Laptop A | Aksesoris | 1.5e+07 | 3 | 4.50e+07 | Andi123 | Jakarta |
1027 | 2024-01-27 | Laptop A | NA | 2.5e+05 | 3 | 7.50e+05 | NA | Bandung |
1028 | 2024-01-28 | Kemeja | NA | 2.5e+05 | NA | NA | Budi@ | Jakarta |
1029 | 2024-01-29 | Smartphone X | Fashion | 1.2e+00 | 3 | 3.60e+00 | Sinta99 | NA |
1030 | 2024-01-30 | Kemeja | NA | 1.5e+07 | NA | NA | NA | Bandung |
1031 | 2024-01-31 | Sepatu ‘Nike’ | NA | 7.5e+02 | 1 | 7.50e+02 | Budi@ | Jakarta |
1033 | 2024-02-02 | Smartphone X | Elektronik | 7.5e+02 | NA | NA | Budi@ | Bandung |
1034 | 2024-02-03 | Smartphone X | NA | 1.2e+00 | 1 | 1.20e+00 | Sinta99 | NA |
1035 | 2024-02-04 | Tas Branded | Aksesoris | 1.2e+00 | 2 | 2.40e+00 | Budi@ | NA |
1036 | 2024-02-05 | Kemeja | Fashion | 7.5e+02 | NA | NA | Budi@ | NA |
1037 | 2024-02-06 | Laptop A | Aksesoris | 1.2e+00 | NA | NA | Budi@ | Bandung |
1038 | 2024-02-07 | Kemeja | Aksesoris | 1.5e+07 | 3 | 4.50e+07 | Sinta99 | Jakarta |
1039 | 2024-02-08 | Smartphone X | Elektronik | 7.5e+02 | 3 | 2.25e+03 | NA | NA |
1041 | 2024-02-10 | Laptop A | NA | 2.5e+05 | NA | NA | Andi123 | Jakarta |
1042 | 2024-02-11 | Smartphone X | Fashion | 7.5e+02 | NA | NA | Andi123 | NA |
1043 | 2024-02-12 | Kemeja | NA | 1.2e+00 | 1 | 1.20e+00 | Andi123 | NA |
1044 | 2024-02-13 | Sepatu ‘Nike’ | NA | 1.2e+00 | 1 | 1.20e+00 | Sinta99 | Jakarta |
1045 | 2024-02-14 | Tas Branded | NA | 2.5e+05 | 1 | 2.50e+05 | Andi123 | NA |
1046 | 2024-02-15 | Laptop A | NA | 1.2e+00 | 3 | 3.60e+00 | Andi123 | Bandung |
1047 | 2024-02-16 | Kemeja | Fashion | 2.5e+05 | NA | NA | NA | NA |
1048 | 2024-02-17 | Sepatu ‘Nike’ | Fashion | 1.5e+07 | 3 | 4.50e+07 | Andi123 | Jakarta |
1050 | 2024-02-19 | Smartphone X | Elektronik | 1.2e+00 | NA | NA | NA | Jakarta |
1101 | 2024-02-01 | Tas Branded | Aksesoris | 1.2e+00 | NA | NA | Budi@ | Bandung |
1102 | 2024-02-02 | Smartphone X | Fashion | 7.5e+02 | 2 | 1.50e+03 | NA | NA |
1103 | 2024-02-03 | Kemeja | Fashion | 1.5e+07 | 1 | 1.50e+07 | Budi@ | Surabaya |
1104 | 2024-02-04 | Kemeja | Fashion | 1.5e+07 | NA | NA | NA | Bandung |
1105 | 2024-02-05 | Smartphone X | NA | 1.5e+07 | NA | NA | NA | Surabaya |
1107 | 2024-02-07 | Kemeja | Aksesoris | 1.2e+00 | NA | NA | Andi123 | Surabaya |
1109 | 2024-02-09 | Tas Branded | Elektronik | 2.5e+05 | 3 | 7.50e+05 | Budi@ | Bandung |
1110 | 2024-02-10 | Sepatu ‘Nike’ | Aksesoris | 1.5e+07 | 3 | 4.50e+07 | NA | Bandung |
1111 | 2024-02-11 | Tas Branded | Elektronik | 1.5e+07 | 3 | 4.50e+07 | NA | Surabaya |
1112 | 2024-02-12 | Kemeja | NA | 2.5e+05 | 2 | 5.00e+05 | NA | Bandung |
1113 | 2024-02-13 | Tas Branded | Fashion | 1.5e+07 | 3 | 4.50e+07 | NA | NA |
1114 | 2024-02-14 | Sepatu ‘Nike’ | Elektronik | 1.2e+00 | 3 | 3.60e+00 | Andi123 | Bandung |
1115 | 2024-02-15 | Tas Branded | Aksesoris | 2.5e+05 | NA | NA | Sinta99 | Surabaya |
1116 | 2024-02-16 | Smartphone X | Elektronik | 1.5e+07 | NA | NA | Andi123 | Jakarta |
1118 | 2024-02-18 | Smartphone X | Aksesoris | 1.2e+00 | NA | NA | Sinta99 | NA |
1120 | 2024-02-20 | Kemeja | Aksesoris | 7.5e+02 | NA | NA | Andi123 | Jakarta |
1123 | 2024-02-23 | Smartphone X | Elektronik | 7.5e+02 | 3 | 2.25e+03 | NA | Jakarta |
1124 | 2024-02-24 | Laptop A | Elektronik | 2.5e+05 | 1 | 2.50e+05 | NA | Jakarta |
1125 | 2024-02-25 | Kemeja | Aksesoris | 7.5e+02 | 3 | 2.25e+03 | Budi@ | Surabaya |
1126 | 2024-02-26 | Sepatu ‘Nike’ | Aksesoris | 7.5e+02 | NA | NA | Sinta99 | Surabaya |
1127 | 2024-02-27 | Smartphone X | NA | 1.5e+07 | 3 | 4.50e+07 | Andi123 | Bandung |
1128 | 2024-02-28 | Kemeja | Fashion | 7.5e+02 | 3 | 2.25e+03 | Andi123 | Surabaya |
1129 | 2024-02-29 | Kemeja | Fashion | 7.5e+02 | 1 | 7.50e+02 | Andi123 | Surabaya |
1130 | 2024-03-01 | Tas Branded | Fashion | 1.2e+00 | 3 | 3.60e+00 | NA | Bandung |
1131 | 2024-03-02 | Smartphone X | NA | 7.5e+02 | 2 | 1.50e+03 | NA | Bandung |
1132 | 2024-03-03 | Kemeja | Aksesoris | 7.5e+02 | 1 | 7.50e+02 | NA | Bandung |
1133 | 2024-03-04 | Smartphone X | NA | 7.5e+02 | 3 | 2.25e+03 | Sinta99 | Surabaya |
1134 | 2024-03-05 | Kemeja | Aksesoris | 1.5e+07 | 3 | 4.50e+07 | Sinta99 | Jakarta |
1135 | 2024-03-06 | Sepatu ‘Nike’ | Aksesoris | 2.5e+05 | NA | NA | Sinta99 | Bandung |
1136 | 2024-03-07 | Laptop A | NA | 2.5e+05 | 3 | 7.50e+05 | Budi@ | Bandung |
1137 | 2024-03-08 | Kemeja | Aksesoris | 2.5e+05 | 3 | 7.50e+05 | Andi123 | NA |
1138 | 2024-03-09 | Sepatu ‘Nike’ | NA | 7.5e+02 | 1 | 7.50e+02 | Sinta99 | NA |
1139 | 2024-03-10 | Kemeja | NA | 1.5e+07 | 1 | 1.50e+07 | Sinta99 | Jakarta |
1141 | 2024-03-12 | Smartphone X | Elektronik | 7.5e+02 | NA | NA | Budi@ | Bandung |
1143 | 2024-03-14 | Tas Branded | Elektronik | 1.2e+00 | 3 | 3.60e+00 | Andi123 | Jakarta |
1144 | 2024-03-15 | Sepatu ‘Nike’ | Elektronik | 1.5e+07 | NA | NA | NA | Bandung |
1145 | 2024-03-16 | Kemeja | Elektronik | 1.5e+07 | 2 | 3.00e+07 | Budi@ | NA |
1146 | 2024-03-17 | Kemeja | Aksesoris | 1.5e+07 | 1 | 1.50e+07 | Sinta99 | Surabaya |
1147 | 2024-03-18 | Sepatu ‘Nike’ | Fashion | 1.2e+00 | 2 | 2.40e+00 | Andi123 | Surabaya |
1148 | 2024-03-19 | Sepatu ‘Nike’ | NA | 1.2e+00 | 1 | 1.20e+00 | NA | Jakarta |
1149 | 2024-03-20 | Laptop A | Fashion | 1.5e+07 | 3 | 4.50e+07 | NA | Surabaya |
1201 | 2024-03-01 | Sepatu ‘Nike’ | Fashion | 1.2e+00 | NA | NA | Andi123 | Surabaya |
1205 | 2024-03-05 | Tas Branded | NA | 7.5e+02 | NA | NA | Andi123 | Jakarta |
1206 | 2024-03-06 | Kemeja | Aksesoris | 1.5e+07 | 2 | 3.00e+07 | Andi123 | Surabaya |
1207 | 2024-03-07 | Laptop A | Elektronik | 1.2e+00 | 1 | 1.20e+00 | Sinta99 | Bandung |
1208 | 2024-03-08 | Laptop A | NA | 1.5e+07 | NA | NA | NA | NA |
1209 | 2024-03-09 | Sepatu ‘Nike’ | Aksesoris | 7.5e+02 | 1 | 7.50e+02 | NA | Bandung |
1210 | 2024-03-10 | Tas Branded | Elektronik | 1.2e+00 | 3 | 3.60e+00 | Sinta99 | Bandung |
1211 | 2024-03-11 | Kemeja | Aksesoris | 1.2e+00 | 1 | 1.20e+00 | NA | NA |
1214 | 2024-03-14 | Sepatu ‘Nike’ | Elektronik | 1.2e+00 | 2 | 2.40e+00 | NA | Bandung |
1216 | 2024-03-16 | Sepatu ‘Nike’ | Aksesoris | 7.5e+02 | 2 | 1.50e+03 | NA | NA |
1217 | 2024-03-17 | Laptop A | Elektronik | 2.5e+05 | 3 | 7.50e+05 | Andi123 | Jakarta |
1219 | 2024-03-19 | Kemeja | NA | 1.5e+07 | 2 | 3.00e+07 | NA | NA |
1220 | 2024-03-20 | Kemeja | Elektronik | 1.5e+07 | 2 | 3.00e+07 | Budi@ | Bandung |
1221 | 2024-03-21 | Tas Branded | Elektronik | 1.2e+00 | NA | NA | NA | Jakarta |
1222 | 2024-03-22 | Sepatu ‘Nike’ | Aksesoris | 2.5e+05 | 3 | 7.50e+05 | Sinta99 | Surabaya |
1223 | 2024-03-23 | Kemeja | Fashion | 7.5e+02 | NA | NA | Budi@ | Jakarta |
1224 | 2024-03-24 | Kemeja | Aksesoris | 1.2e+00 | 1 | 1.20e+00 | Sinta99 | Bandung |
1225 | 2024-03-25 | Smartphone X | Fashion | 1.5e+07 | 3 | 4.50e+07 | Andi123 | Surabaya |
1226 | 2024-03-26 | Tas Branded | Aksesoris | 1.5e+07 | 2 | 3.00e+07 | Andi123 | Jakarta |
1229 | 2024-03-29 | Kemeja | Fashion | 1.2e+00 | 3 | 3.60e+00 | Sinta99 | NA |
1230 | 2024-03-30 | Kemeja | NA | 7.5e+02 | NA | NA | Andi123 | NA |
1231 | 2024-03-31 | Laptop A | Fashion | 7.5e+02 | 1 | 7.50e+02 | NA | Bandung |
1232 | 2024-04-01 | Laptop A | Elektronik | 1.2e+00 | NA | NA | Budi@ | NA |
1233 | 2024-04-02 | Tas Branded | Aksesoris | 1.2e+00 | NA | NA | Sinta99 | Surabaya |
1234 | 2024-04-03 | Smartphone X | Aksesoris | 7.5e+02 | 3 | 2.25e+03 | NA | Jakarta |
1235 | 2024-04-04 | Kemeja | Elektronik | 2.5e+05 | 1 | 2.50e+05 | NA | Bandung |
1236 | 2024-04-05 | Smartphone X | Elektronik | 7.5e+02 | 3 | 2.25e+03 | NA | Jakarta |
1238 | 2024-04-07 | Tas Branded | NA | 2.5e+05 | 3 | 7.50e+05 | NA | Jakarta |
1239 | 2024-04-08 | Kemeja | Aksesoris | 2.5e+05 | 1 | 2.50e+05 | NA | NA |
1241 | 2024-04-10 | Laptop A | NA | 7.5e+02 | NA | NA | Andi123 | NA |
1242 | 2024-04-11 | Laptop A | Elektronik | 1.5e+07 | NA | NA | Sinta99 | NA |
1243 | 2024-04-12 | Laptop A | Fashion | 1.2e+00 | 2 | 2.40e+00 | Andi123 | NA |
1244 | 2024-04-13 | Laptop A | Elektronik | 2.5e+05 | NA | NA | Sinta99 | Surabaya |
1245 | 2024-04-14 | Smartphone X | Elektronik | 1.5e+07 | NA | NA | Andi123 | Jakarta |
1246 | 2024-04-15 | Smartphone X | NA | 1.2e+00 | 1 | 1.20e+00 | Andi123 | NA |
1247 | 2024-04-16 | Smartphone X | Fashion | 7.5e+02 | 2 | 1.50e+03 | Budi@ | Jakarta |
1248 | 2024-04-17 | Laptop A | Elektronik | 1.5e+07 | 3 | 4.50e+07 | Sinta99 | Bandung |
1249 | 2024-04-18 | Sepatu ‘Nike’ | Fashion | 1.5e+07 | NA | NA | Sinta99 | Jakarta |
1250 | 2024-04-19 | Kemeja | NA | 7.5e+02 | 3 | 2.25e+03 | Andi123 | Surabaya |
Data Transformation
Kode ini melakukan analisis data penjualan dengan langkah-langkah berikut:
- Menambahkan kolom Bulan dari tanggal transaksi untuk memudahkan analisis per bulan.
- Menghitung total penjualan per kategori produk dengan menjumlahkan penjualan berdasarkan kategori produk.
- Menghitung jumlah transaksi per kota untuk mengetahui kota dengan transaksi terbanyak.
- Menghitung total penjualan per bulan untuk melihat kinerja penjualan setiap bulan.
- Menampilkan hasil dalam bentuk tabel yang rapi menggunakan kable().
Tujuannya adalah untuk memberikan ringkasan penjualan berdasarkan kategori produk, kota, dan bulan.
Kategori | Total_Penjualan |
---|---|
Aksesoris | 331762006 |
Fashion | 225006766 |
Elektronik | 167006768 |
NA | 123009760 |
Kota | Jumlah_Transaksi |
---|---|
Bandung | 33 |
Surabaya | 30 |
NA | 30 |
Jakarta | 29 |
Bulan | Total_Penjualan |
---|---|
January | 195757508 |
February | 286761263 |
March | 318008274 |
April | 46258254 |
Visualisasi
Grafik ini menunjukkan total penjualan per kategori produk dalam bentuk batang, dengan kategori produk pada sumbu x dan jumlah penjualan pada sumbu y. Setiap batang mewakili total penjualan dari suatu kategori produk. Semakin tinggi batang, semakin besar total penjualannya. Warna batang menggunakan steelblue untuk memberikan tampilan yang konsisten dan menarik.