UTS_PEMOGRAMAN_WHIRDYANA SHALFA_52240010
1. Buat program sederhana dalam R dan Python yang melakukan hal berikut:
Menerima dua bilangan dari pengguna
Menghitung dan menampilkan hasil:
- Penjumlahan
- Perkalian
- Pembagian
- Bilangan pertama pangkat bilangan kedua
- Menampilkan tipe data masing-masing hasil operasi
# Menerima dua bilangan dari pengguna (di-hardcode di sini agar bisa di-knit)
a <- 10
b <- 5
# Operasi
penjumlahan <- a + b
perkalian <- a * b
pembagian <- a / b
pangkat <- a ^ b
# Menampilkan hasil dan tipe data
cat("=== Hasil Operasi ===\n")## === Hasil Operasi ===
## Penjumlahan : 10 + 5 = 15 (tipe: double )
## Perkalian : 10 * 5 = 50 (tipe: double )
## Pembagian : 10 / 5 = 2 (tipe: double )
## Pangkat : 10 ^ 5 = 1e+05 (tipe: double )
2. Tulislah program dalam R dan Python yang:
- Menerima input nilai ujian dari pengguna (0–100)
- Menampilkan keterangan berdasarkan ketentuan berikut:
- Nilai ≥ 85: “Sangat Baik”
- Nilai 70–84: “Baik”
- Nilai 60–69: “Cukup”
- Nilai < 60: “Perlu Perbaikan”
# Menerima input nilai ujian dari pengguna
nilai <- 88
# Menentukan keterangan berdasarkan nilai (jika input valid)
if (!is.na(nilai)) {
if (nilai >= 85) {
keterangan <- "Sangat Baik"
} else if (nilai >= 70) {
keterangan <- "Baik"
} else if (nilai >= 60) {
keterangan <- "Cukup"
} else {
keterangan <- "Perlu Perbaikan"
}
# Menampilkan hasil
cat("Nilai:", nilai, "-", keterangan, "\n")
} else {
cat("Input tidak valid!\n")
}## Nilai: 88 - Sangat Baik
3. Buatlah fungsi dalam R dan Python bernama kelipatan_genap(n) yang:
Menerima input integer n
Menggunakan loop untuk mencetak semua bilangan genap kelipatan 4 dari 1 hingga n
Contoh output jika n = 20: 4, 8, 12, 16, 20
# Simulasi input pengguna
input <- "60"
n <- suppressWarnings(as.integer(input))
if (is.na(n) || n < 1) {
cat("Masukkan harus berupa bilangan bulat positif.\n")
} else {
cat("Bilangan genap kelipatan 4 dari 1 hingga", n, "adalah:\n")
first <- TRUE
for (i in 1:n) {
if (i %% 4 == 0) {
if (!first) {
cat(", ")
}
cat(i)
first <- FALSE
}
}
cat("\n")
}## Bilangan genap kelipatan 4 dari 1 hingga 60 adalah:
## 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60
4. Asumsikan data berasal dari 3 file CSV berbeda (januari.csv, februari.csv, maret.csv). Tugas Anda:
- Bagian 1: Data Collection
Asumsikan data berasal dari 3 file CSV berbeda (januari.csv, februari.csv, maret.csv). Tugas Anda:
Gabungkan ketiga file menjadi satu dataset.
Tampilkan jumlah total baris dan kolom setelah digabung.
## Total baris: 150 dan total 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 |
- Bagian 2: Data Cleaning
Lakukan pembersihan data berikut:
Standarkan format tanggal ke bentuk YYYY-MM-DD.
Ubah kolom Harga dan Jumlah menjadi format numerik.
Hitung ulang nilai kolom Total = Harga * Jumlah.
Ganti nilai yang tidak valid (contoh: -, “dua”, “Rp”, “anonymous”) dengan nilai yang sesuai atau NA.
Hapus baris yang tidak memiliki nama produk (Produk kosong atau -).
INTERPRETASI
Setelah dilakukan pembersihan data (Data Cleaning), data penjualan dari bulan Januari hingga Maret sudah terintegrasi dan berada dalam kondisi yang siap untuk dianalisis. Proses ini mencakup standarisasi format tanggal (YYYY-MM-DD) agar seluruh transaksi tercatat secara kronologis, serta pembersihan pada kolom harga dan jumlah dari karakter yang tidak sesuai.
Selain itu, nilai-nilai yang tidak relevan seperti simbol, teks non-angka, atau entri kosong telah diindentifikasi dan dibersihkan agar tidak mengganggu hasil analisis. Basis data tanpa nama produk juga dihapus untuk menjaga kualitas informasi. Dengan demikian, dataset akhir menjadi lebih rapi, akurat, dan dapat disajikan secara interaktif sehingga dapat memudahkan dalam menelusuri dan memahami isi dari data secara efisien.
- Bagian 3: Data Transformation
Lakukan transformasi data sebagai berikut:
Buat kolom baru Bulan berdasarkan tanggal transaksi.
Hitung total penjualan (Total) per kategori produk.
Hitung jumlah transaksi dari setiap kota.
Buat ringkasan jumlah total penjualan per bulan.
## Total Penjualan per Kategori:
## Kategori Total
## 1 168762000
## 2 Aksesoris 332264250
## 3 Elektronik 212756750
## 4 Fashion 225259750
##
## Jumlah Transaksi per Kota:
## Kota Jumlah_Transaksi
## 1 - 38
## 2 Bandung 37
## 3 Jakarta 38
## 4 Surabaya 37
##
## Total Penjualan per Bulan:
## Bulan Total
## 1 0001-02 250000
## 2 0002-01 30000000
## 3 0002-02 1500
## 4 0002-03 45001500
## 5 0003-01 45000000
## 6 0003-02 15000000
## 7 0003-03 750
## 8 0003-04 2250
## 9 0004-03 4500
## 10 0004-04 250000
## 11 0005-01 2250
## 12 0005-03 45000000
## 13 0005-04 2250
## 14 0006-02 2250
## 15 0006-03 30000000
## 16 0006-04 750
## 17 0007-02 45000000
## 18 0007-03 750000
## 19 0007-04 750000
## 20 0008-02 2250
## 21 0008-03 750000
## 22 0008-04 250000
## 23 0009-02 750000
## 24 0009-03 1500
## 25 0010-01 1500
## 26 0010-02 45000000
## 27 0010-03 15000000
## 28 0011-02 45000000
## 29 0011-03 250000
## 30 0012-02 500000
## 31 0013-01 1500
## 32 0013-02 45000000
## 33 0013-03 250000
## 34 0014-02 250000
## 35 0016-01 30000000
## 36 0016-03 30001500
## 37 0016-04 1500
## 38 0017-02 45500000
## 39 0017-03 15750000
## 40 0017-04 45000000
## 41 0019-03 30000000
## 42 0019-04 2250
## 43 0020-03 75000000
## 44 0021-01 15000000
## 45 0021-02 750000
## 46 0022-01 1500
## 47 0022-02 45000000
## 48 0022-03 750000
## 49 0023-01 2250
## 50 0023-02 2250
## 51 0024-01 30000000
## 52 0024-02 250000
## 53 0025-01 45000000
## 54 0025-02 2250
## 55 0025-03 45000000
## 56 0026-01 250000
## 57 0026-03 30000000
## 58 0027-01 750000
## 59 0027-02 45000000
## 60 0028-02 2250
## 61 0029-02 750
## 62 0031-01 750
## 63 0031-03 750
- VISUALISASI
INTERPRETASI
Berdasarkan hasil analisis data penjualan kuartal pertama yang telah dibersihkan dan digabung (Januari-Maret), diperoleh beberapa temuan penting. Dari sisi kategori produk, Aksesoris menghasilkan total penjualan tertinggi sebesar Rp332.264.250, diikuti oleh Fashion sebesar Rp225.259.750, dan Elektronik sebesar Rp212.756.750. Dominasi kategori Aksesoris ini terlihat jelas pada grafik batang dan grafik lingkaran, di mana segmennya jauh lebih besar dibanding kategori lainnya.
Dari sisi wilayah, transaksi tersebar relatif merata antara Jakarta (38 transaksi), Bandung (37), dan Surabaya (37), namun terdapat 38 transaksi yang tidak mencantumkan kota asal (missing value), yang ditampilkan sebagai “-”. Ini mengindikasikan masih ada kekurangan dalam kualitas input data yang sebaiknya ditindaklanjuti pada tahap validasi
Dari segi waktu, penjualan mengalami lonjakan tajam pada bulan Februari (Rp75.003.000) dan Maret (Rp60.003.000), seperti tergambar dalam grafik garis yang menunjukkan tren peningkatan pada periode tersebut. Namun, terdapat nilai penjualan besar yang terakumulasi di entri dengan tanggal tidak valid (NaT) sebesar Rp574.519.500, yang artinya data tersebut tidak tercatat pada bulan tertentu. Ini menjadi sinyal bahwa masih ada baris data yang tidak memiliki format tanggal yang sesuai, meskipun sudah dilakukan konversi ganda.
Secara keseluruhan, visualisasi yang disajikan mampu memperjelas hasil perhitungan dan mempermudah identifikasi pola, seperti dominasi kategori Aksesoris, tren bulanan, serta keberadaan data yang tidak terkelompok secara benar. Ini memberikan gambaran komprehensif yang sangat berguna untuk pengambilan keputusan ke depan.