Wisnu Tubagus
Dalam portofolio ini, saya mendemonstrasikan berbagai langkah dalam pemrosesan dan analisis data menggunakan bahasa R. Proses dimulai dengan format dan pembersihan data untuk memastikan data siap digunakan. Selanjutnya, saya melakukan analisis statistik deskriptif untuk mendapatkan wawasan awal. Dengan menggunakan R Shiny, saya membuat visualisasi interaktif yang memudahkan eksplorasi data. Saya juga menguji hipotesis sederhana dengan scatter plot dan menghitung korelasi Pearson untuk menganalisis hubungan antara variabel. Keseluruhan proses ini meningkatkan pemahaman saya tentang pengolahan data dan kemampuan analitik, serta mempersiapkan saya untuk analisis data yang lebih mendalam dan pengambilan keputusan yang lebih baik.
Pada bagian ini, saya akan menjelaskan langkah-langkah yang saya lakukan untuk membersihkan dan memformat data dalam tugas bahasa R. Langkah-langkah ini mencakup pembacaan data dari file CSV, penanganan nilai yang hilang, konversi tipe data, dan penyimpanan data yang telah dibersihkan. Saya menggunakan paket tidyverse dalam bahasa R untuk menyelesaikan tugas ini.
Langkah 1: Mengimpor Dataset
Langkah pertama yang saya lakukan adalah mengimpor dataset dari file CSV yang disimpan di komputer saya. Saya menggunakan fungsi read_csv() dari paket tidyverse untuk membaca data ke dalam R.
library(tidyverse) # Baca data dari file CSV |
Langkah 2: Mengonversi Kolom Menjadi Tipe Data yang Sesuai
Beberapa kolom dalam dataset seharusnya berisi nilai numerik, tetapi dibaca sebagai karakter. Saya mengidentifikasi kolom-kolom ini dan mengonversinya menjadi tipe data numerik menggunakan fungsi as.numeric().
# Mengubah kolom-kolom tertentu menjadi numeric jika diperlukan numeric_columns <- c("normalized-losses", "bore", "stroke", "horsepower", "peak-rpm", "price") data <- data %>% mutate(across(all_of(numeric_columns), as.numeric)) |
Langkah 3: Mengonversi Kolom Faktor
Beberapa kolom dalam dataset seharusnya berupa faktor (kategori), tetapi dibaca sebagai karakter. Saya mengidentifikasi kolom-kolom ini dan mengonversinya menjadi tipe data faktor menggunakan fungsi as.factor().
# Mengubah kolom yang seharusnya faktor menjadi faktor factor_columns <- c("symboling", "make", "fuel-type", "aspiration", "num-of-doors", "body-style", "drive-wheels", "engine-location", "engine-type", "num-of-cylinders", "fuel-system") data <- data %>% mutate(across(all_of(factor_columns), as.factor)) |
Langkah 4: Menampilkan Struktur Data
Untuk memastikan bahwa semua kolom memiliki tipe data yang sesuai, saya menampilkan struktur data menggunakan fungsi str().
# Tampilkan struktur data setelah perubahan tipe data str(data) |
Langkah 5: Menyimpan Data yang Telah Dibersihkan
Terakhir, saya menyimpan data yang telah dibersihkan ke file CSV baru menggunakan fungsi write_csv(). Ini memastikan bahwa data yang telah dirapikan dapat digunakan kembali di masa depan.
# Simpan data yang telah dirapikan ke file CSV baru write_csv(data, "D:Automobile_data_cleaning.csv") |
Pada bagian ini, saya akan menjelaskan langkah-langkah yang saya lakukan untuk menghasilkan statistik deskriptif dari data yang telah dibersihkan. Saya menggunakan paket tidyverse dalam bahasa R untuk membaca data yang telah dibersihkan, dan menghasilkan ringkasan deskriptif untuk variabel numerik dan kategorikal.
Langkah 1: Mengimpor Dataset yang Telah Dibersihkan
Pertama, saya mengimpor dataset yang telah dibersihkan dari file CSV menggunakan fungsi read_csv() dari paket tidyverse.
library(tidyverse) # Baca data dari file CSV yang telah dirapikan |
Langkah 2: Menghasilkan Ringkasan Deskriptif untuk Semua Variabel
Saya memulai dengan menghasilkan ringkasan deskriptif untuk semua variabel dalam dataset. Fungsi summary() memberikan statistik dasar seperti mean, median, min, max, dan kuartil untuk variabel numerik, serta distribusi frekuensi untuk variabel kategorikal
# Ringkasan deskriptif untuk semua variabel cat("Ringkasan Deskriptif untuk Semua Variabel: ") print(summary(data)) |
Langkah 3: Menghasilkan Ringkasan Deskriptif untuk Variabel Numerik
Selanjutnya, saya memisahkan variabel numerik dari dataset dan menghasilkan ringkasan deskriptif khusus untuk variabel tersebut. Saya menggunakan fungsi sapply() untuk mengidentifikasi kolom yang bertipe numerik dan kemudian menerapkan fungsi summary() pada subset data tersebut.
# Menghasilkan ringkasan deskriptif untuk variabel numerik numeric_columns <- sapply(data, is.numeric) cat(" Ringkasan Deskriptif untuk Variabel Numerik: ") print(summary(data[, numeric_columns])) |
Langkah 4: Menghasilkan Ringkasan Deskriptif untuk Variabel Kategorikal
Demikian pula, saya memisahkan variabel kategorikal dari dataset dan menghasilkan ringkasan deskriptif khusus untuk variabel tersebut. Fungsi sapply() digunakan untuk mengidentifikasi kolom yang bertipe faktor dan kemudian menerapkan fungsi summary() pada subset data tersebut.
# Menghasilkan ringkasan deskriptif untuk variabel kategorikal categorical_columns <- sapply(data, is.factor) cat(" Ringkasan Deskriptif untuk Variabel Kategorikal: ") print(summary(data[, categorical_columns])) |
Pada bagian ini, saya akan menjelaskan bagaimana saya membuat aplikasi web interaktif untuk visualisasi data menggunakan R Shiny. Aplikasi ini memungkinkan pengguna untuk membuat scatter plot dengan memilih variabel X dan Y dari dataset yang telah dibersihkan.
Langkah 1: Mengimpor Paket yang Diperlukan
Pertama, saya mengimpor paket shiny dan ggplot2 yang diperlukan untuk membuat aplikasi web dan melakukan visualisasi data.
library(shiny) library(ggplot2) |
Langkah 2: Memuat Dataset
Selanjutnya, saya memuat dataset yang telah dibersihkan dari file CSV menggunakan fungsi read.csv(). Dataset ini akan digunakan dalam aplikasi Shiny untuk visualisasi.
# Load data data <- read.csv("D:Automobile_data.csv") |
Langkah 3: Mendesain Antarmuka Pengguna (UI)
Saya mendesain antarmuka pengguna (UI) untuk aplikasi Shiny. UI ini terdiri dari sebuah panel utama dengan judul, panel samping untuk memilih variabel X dan Y, serta area utama untuk menampilkan scatter plot.
# Define UI ui <- fluidPage( titlePanel("Scatter Plot"), sidebarLayout( sidebarPanel( selectInput("x_var", "X Variable:", choices = names(data)), selectInput("y_var", "Y Variable:", choices = names(data)) ), mainPanel( plotOutput("scatter_plot") ) ) ) |
Langkah 4: Mendefinisikan Logika Server
Saya mendefinisikan logika server untuk aplikasi Shiny. Bagian server ini menangani pemrosesan data dan pembuatan scatter plot berdasarkan input pengguna. Fungsi renderPlot() digunakan untuk menghasilkan plot menggunakan ggplot2.
# Define server logic server <- function(input, output) { output$scatter_plot <- renderPlot({ ggplot(data, aes_string(x = input$x_var, y = input$y_var)) + geom_point() }) } |
Langkah 5: Menjalankan Aplikasi Shiny
Terakhir, saya menjalankan aplikasi Shiny menggunakan fungsi shinyApp(), yang menggabungkan UI dan server menjadi satu aplikasi yang dapat diakses melalui browser web.
# Run the application shinyApp(ui = ui, server = server) |
Pada bagian ini, saya akan menjelaskan bagaimana saya membuat scatter plot untuk menguji hipotesis sederhana menggunakan dataset yang telah dibersihkan. Saya menggunakan paket ggplot2 untuk visualisasi data, dengan tujuan mengeksplorasi hubungan antara ukuran mesin (engine size) dan bore (diameter silinder mesin) serta bagaimana harga dan efisiensi bahan bakar mempengaruhinya.
Langkah 1: Mengimpor Paket yang Diperlukan
Saya mengimpor paket ggplot2 dan readr yang diperlukan untuk membaca data dan membuat visualisasi scatter plot.
library(ggplot2) library(readr) |
Langkah 2: Memuat Dataset yang Telah Dibersihkan
Saya memuat dataset yang telah dibersihkan dari file CSV menggunakan fungsi read_csv(). Dataset ini akan digunakan untuk analisis dan visualisasi.
# Load data data <- read_csv("D:Automobile_data_cleaning.csv") |
Langkah 3: Mengonversi Kolom yang Diperlukan Menjadi Numerik
Beberapa kolom dalam dataset perlu dikonversi menjadi tipe data numerik untuk analisis lebih lanjut. Saya mengonversi kolom engine-size, bore, highway-mpg, dan price menjadi numerik menggunakan fungsi as.numeric().
# Konversi kolom yang diperlukan menjadi numerik data$'engine-size' <- as.numeric(data$'engine-size') data$bore <- as.numeric(data$bore) data$'highway-mpg' <- as.numeric(data$'highway-mpg') data$price <- as.numeric(data$price) |
Langkah 4: Memeriksa Nilai NA Setelah Konversi
Setelah konversi, saya memeriksa apakah ada nilai NA di kolom-kolom yang relevan. Ini penting untuk memastikan tidak ada data yang hilang sebelum membuat scatter plot.
# Periksa apakah ada nilai NA setelah konversi print(sum(is.na(data$'engine-size'))) print(sum(is.na(data$bore))) print(sum(is.na(data$'highway-mpg'))) print(sum(is.na(data$price))) |
Langkah 5: Menghapus Baris dengan Nilai NA
Jika ditemukan nilai NA, saya menghapus baris yang mengandung nilai NA di kolom-kolom yang relevan menggunakan fungsi na.omit().
# Hapus baris dengan nilai NA di kolom-kolom yang relevan data <- na.omit(data) |
Langkah 6: Membuat Scatter Plot
Saya membuat scatter plot menggunakan ggplot2. Plot ini menampilkan hubungan antara ukuran mesin (engine-size) dan bore, dengan warna yang merepresentasikan harga (price) dan ukuran titik yang merepresentasikan efisiensi bahan bakar di jalan raya (highway-mpg).
# Scatter plot # Tampilkan scatter plot |
Pada bagian ini, saya akan menjelaskan bagaimana saya menghitung dan menganalisis korelasi Pearson untuk beberapa variabel dalam dataset yang telah dibersihkan. Korelasi Pearson digunakan untuk mengukur kekuatan dan arah hubungan linear antara dua variabel numerik. Saya akan menggunakan paket base dalam R untuk melakukan perhitungan ini.
Langkah 1: Memeriksa Nilai Unik dalam Setiap Kolom
Saya memulai dengan memeriksa nilai unik dalam setiap kolom untuk menemukan nilai yang tidak dapat dikonversi menjadi numerik. Ini penting untuk mengidentifikasi dan menangani nilai-nilai yang tidak sesuai sebelum menghitung korelasi.
# Periksa nilai unik dalam setiap kolom untuk menemukan nilai yang tidak dapat dikonversi unique_values <- lapply(data, unique) print(unique_values) |
Langkah 2: Mengubah atau Menghapus Nilai yang Menyebabkan Masalah
Jika ditemukan nilai non-numerik dalam kolom yang seharusnya numerik, saya menggantinya dengan NA. Hal ini memastikan bahwa hanya nilai numerik yang digunakan dalam perhitungan korelasi.
# Perbaiki atau hapus nilai-nilai yang menyebabkan masalah # Contoh: Jika ada nilai non-numerik, Anda bisa mengubahnya menjadi NA |
Langkah 3: Menghitung Korelasi Pearson
Saya kemudian menghitung korelasi Pearson untuk variabel engine-size, bore, highway-mpg, dan price. Fungsi cor() digunakan untuk menghitung matriks korelasi.
# Sekarang coba hitung korelasi Pearson cor_matrix <- cor(data[c("engine-size", "bore", "highway-mpg", "price")]) |
Langkah 4: Menampilkan Korelasi Pearson
Setelah menghitung korelasi, saya menampilkan matriks korelasi untuk mengidentifikasi hubungan antara variabel-variabel tersebut.
# Tampilkan korelasi Pearson print(cor_matrix) |
6. Kesimpulan
Secara keseluruhan, proses yang telah saya lakukan melibatkan berbagai langkah penting dalam pemrosesan dan analisis data menggunakan R. Mulai dari format dan pembersihan data, analisis statistik deskriptif, hingga visualisasi data menggunakan R Shiny, serta pengujian hipotesis dan perhitungan korelasi Pearson, semua langkah ini membantu saya untuk memahami dan memanipulasi data dengan lebih baik. Penggunaan teknik-teknik ini tidak hanya memastikan bahwa data siap untuk analisis yang lebih lanjut, tetapi juga memberikan wawasan yang berarti dari data tersebut, yang meningkatkan kemampuan saya dalam pengambilan keputusan berbasis data dan pengembangan aplikasi analitik interaktif. Dengan portofolio ini, saya dapat menunjukkan pemahaman yang mendalam tentang berbagai aspek analisis data dan kemampuan untuk menerapkan berbagai teknik analitik dalam situasi nyata.