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
Tabel Gabungan Data (10 Baris Pertama)
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.

Data Gabung Setelah Pembersihan
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.

Total Penjualan per Kategori Produk
Kategori Total_Penjualan
Aksesoris 331762006
Fashion 225006766
Elektronik 167006768
NA 123009760
Jumlah Transaksi per Kota
Kota Jumlah_Transaksi
Bandung 33
Surabaya 30
NA 30
Jakarta 29
Ringkasan Total Penjualan per Bulan
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.