UTS Data Science Programming
Bagian 1
Operasi dan Tipe Data Dasar
## Masukkan bilangan pertama:
## Masukkan bilangan kedua:
# Operasi matematika
penjumlahan <- angka1 + angka2
perkalian <- angka1 * angka2
pembagian <- angka1 / angka2
pangkat <- angka1 ^ angka2
# Tampilkan hasil operasi
cat("Hasil Penjumlahan:", penjumlahan, "\n")## Hasil Penjumlahan: NA
## Hasil Perkalian: NA
## Hasil Pembagian: NA
## Hasil Pangkat: NA
## Tipe data hasil penjumlahan: double
## Tipe data hasil perkalian: double
## Tipe data hasil pembagian: double
## Tipe data hasil pangkat: double
readline(prompt = “…”): Meminta input dari pengguna.
as.numeric(): Mengubah input dari karakter menjadi angka.
cat(): Menampilkan teks atau hasil ke layar.
^: Operator untuk pangkat.
typeof(): Menampilkan tipe data dari suatu variabel.
Control Flow
# Baca Input Interaktif
if (interactive()) {
nilai <- as.numeric(readline(prompt = "Masukkan nilai ujian (0-100): "))
} else {
nilai <- 78 # Nilai default saat di-knit
}
# Tampilkan nilai yang digunakan
cat("Nilai Ujian:", nilai, "\n")## Nilai Ujian: 78
# Evaluasi berdasarkan nilai
if (!is.na(nilai)) {
if (nilai >= 85) {
cat("Keterangan: Sangat Baik\n")
} else if (nilai >= 70) {
cat("Keterangan: Baik\n")
} else if (nilai >= 60) {
cat("Keterangan: Cukup\n")
} else {
cat("Keterangan: Perlu Perbaikan\n")
}
} else {
cat("Nilai tidak valid!\n")
}## Keterangan: Baik
readline(): Digunakan untuk meminta input dari pengguna.
as.numeric(): Mengubah input teks menjadi angka.
if, else if, dan else: Struktur kendali untuk menentukan kondisi mana yang terpenuhi.
cat(): Menampilkan teks ke layar.
Fungsi dan Perulangan
# Definisikan fungsi untuk menampilkan kelipatan genap 4
kelipatan_genap <- function(n) {
for (i in 1:n) {
if (i %% 4 == 0) {
cat(i, "\n")
}
}
}
# Ambil input, pakai default saat knit
if (interactive()) {
angka <- as.integer(readline(prompt = "Masukkan bilangan bulat n: "))
} else {
angka <- 20 # nilai default jika sedang di-knit
}
# Tampilkan nilai yang digunakan
cat("Input bilangan n:", angka, "\n")## Input bilangan n: 20
# Panggil fungsi hanya jika input valid
if (!is.na(angka) && angka > 0) {
cat("Kelipatan genap 4 dari 1 hingga", angka, ":\n")
kelipatan_genap(angka)
} else {
cat("Input tidak valid.\n")
}## Kelipatan genap 4 dari 1 hingga 20 :
## 4
## 8
## 12
## 16
## 20
function(n): Mendefinisikan fungsi dengan parameter n.
for (i in 1:n): Melakukan perulangan dari 1 sampai n.
%%: Operator modulus untuk mencari sisa bagi. i %% 4 == 0 artinya i habis dibagi 4.
cat(): Menampilkan hasil ke layar.
as.integer(): Mengubah input menjadi bilangan bulat
Bagian 2
Data Collection
## ✅ Data gabungan dari seluruh sheet:
## Jumlah baris: 150
## Jumlah kolom: 9
## # A tibble: 150 × 9
## OrderlD Tanggal Produk Kategori Harga Jumlah Total Pembeli Kota
## <dbl> <chr> <chr> <chr> <chr> <chr> <lgl> <chr> <chr>
## 1 1001 45292.000000 Laptop A <NA> 150000… empat NA Budi@ Band…
## 2 1002 02-01-2024T as Brande Fashion 150000… 2 NA Budi@ Sura…
## 3 1003 03-01-2024T as Brande Aksesoris 150000… 3 NA _anony… Band…
## 4 1004 45295.000000 Kemeja <NA> 150000… dua NA Andi123 Band…
## 5 1005 45296.000000 - Fashion Rp750.… 3 NA _anony… Jaka…
## 6 1006 06-01-2024S martphon Fashion 150000… empat NA Sinta99 Band…
## 7 1007 07-01-2024S epatu 'Nik Elektronik 1200000 3 NA anonymo Band…
## 8 1008 45299.000000 - Elektronik 250000 dua NA _anony… Jaka…
## 9 1009 09-01-2024S martphon Elektronik 150000… empat NA _anony… <NA>
## 10 1010 10-01-2024S epatu ’Nik Aksesoris Rp750.… 2 NA Sinta99 Sura…
## # ℹ 140 more rows
Data Cleaning
## ✅ Data setelah dibersihkan:
## # A tibble: 10 × 10
## OrderlD Tanggal Produk Kategori Harga Jumlah Total Pembeli Kota ID
## <dbl> <date> <chr> <chr> <dbl> <dbl> <dbl> <chr> <chr> <int>
## 1 1001 NA Laptop A <NA> 1.5e7 4 6 e7 Budi@ Band… 1
## 2 1002 2024-01-02 as Bran… Fashion 1.5e7 NA NA Budi@ Sura… 2
## 3 1004 NA Kemeja <NA> 1.5e7 2 3 e7 Andi123 Band… 3
## 4 1006 2024-01-06 martphon Fashion 1.5e7 4 6 e7 Sinta99 Band… 4
## 5 1010 2024-01-10 epatu ’N… Aksesor… 7.5e5 NA NA Sinta99 Sura… 5
## 6 1012 2024-01-12 as Bran… Aksesor… 2.5e5 4 1 e6 Andi123 Sura… 6
## 7 1013 NA Laptop A Aksesor… 7.5e5 NA NA Sinta99 Sura… 7
## 8 1014 2024-01-14 as Bran… Elektro… 7.5e5 2 1.5e6 Sinta99 Sura… 8
## 9 1017 2024-01-17 epatu ’N… Aksesor… 2.5e5 4 1 e6 Andi123 Jaka… 9
## 10 1018 2024-01-18 martphon Aksesor… 7.5e5 2 1.5e6 Sinta99 <NA> 10
Data Transforming
## 🟦 a. Kolom Bulan:
## # A tibble: 6 × 2
## Tanggal Bulan
## <date> <ord>
## 1 2024-01-02 January
## 2 2024-01-06 January
## 3 2024-01-10 January
## 4 2024-01-12 January
## 5 2024-01-14 January
## 6 2024-01-17 January
##
## 🟩 b. Total Penjualan per Produk:
## # A tibble: 5 × 2
## Produk Total
## <chr> <dbl>
## 1 as Brande 3900611
## 2 as Brande 0
## 3 epatu 'Nik 4800106
## 4 epatu ’Nik 1500106
## 5 martphon 7801526
##
## 🟨 c. Jumlah Transaksi per Kota:
## # A tibble: 4 × 2
## Kota Jumlah_Transaksi
## <chr> <int>
## 1 Bandung 8
## 2 Jakarta 5
## 3 Surabaya 11
## 4 <NA> 5
##
## 🟥 d. Total Penjualan per Bulan:
## # A tibble: 3 × 2
## Bulan Total
## <ord> <dbl>
## 1 January 3000819
## 2 February 10201118
## 3 March 4800412