Nama: Zaidan Zuldika I

NIM: 3337260086

Kelas: C26

Anggota Kelompok:
  1. Rafi Naufal Danendra [3337260108]
  2. Zaidan Zuldika I [3337260086]
  3. Dini Hayati [3337260008K]

Visualisasi Data Kategorik

Pie Chart Soil Type (Jenis Tanah)

# Membaca dataset
data <- read.csv("datacrop.csv", check.names = FALSE)

# Menghitung frekuensi setiap jenis tanah
df <- data %>%
  group_by(`Soil Type`) %>%
  summarise(counts = n(), .groups = "drop")

# Menampilkan tabel frekuensi
df
# Menghitung persentase dan posisi label
df <- df %>%
  arrange(desc(`Soil Type`)) %>%
  mutate(
    prop = round(counts * 100 / sum(counts), 1),
    lab.ypos = cumsum(prop) - 0.5 * prop
  )

# Menampilkan hasil perhitungan
df
# Membuat pie chart distribusi jenis tanah
ggplot(df, aes(x = "", y = prop, fill = `Soil Type`)) +
  geom_bar(width = 1, stat = "identity", color = "white") +
  geom_text(
    aes(y = lab.ypos, label = paste0(prop, "%")),
    color = "white",
    size = 4
  ) +
  coord_polar("y", start = 0) +
  scale_fill_brewer(palette = "Set1") +
  labs(
    title = "Distribusi Persentase Jenis Tanah",
    fill = "Jenis Tanah"
  ) +
  theme_void()

Interpretasi Pie Chart Soil Type (Jenis Tanah)

Pie chart menunjukkan bahwa distribusi jenis tanah dalam dataset datacrop.csv relatif merata. Jenis tanah Clayey memiliki proporsi terbesar, yaitu 20,3% atau sebanyak 1.623 data. Sementara itu, Sandy memiliki proporsi terkecil, yaitu 19,8% atau sebanyak 1.580 data. Selisih persentase antara kategori terbesar dan terkecil hanya sekitar 0,5 poin persentase. Hal ini menunjukkan bahwa tidak terdapat satu jenis tanah yang mendominasi dataset secara signifikan.

Pie Chart Jenis Tanaman (Crop Type)

# Menghitung frekuensi setiap jenis tanaman
df_crop <- data %>%
  group_by(`Crop Type`) %>%
  summarise(counts = n(), .groups = "drop")

# Menampilkan tabel frekuensi
print(df_crop, n = Inf)
## # A tibble: 11 × 2
##    `Crop Type` counts
##    <chr>        <int>
##  1 Barley         703
##  2 Cotton         722
##  3 Ground Nuts    732
##  4 Maize          753
##  5 Millets        718
##  6 Oil seeds      711
##  7 Paddy          706
##  8 Pulses         728
##  9 Sugarcane      763
## 10 Tobacco        717
## 11 Wheat          747
# Menghitung persentase dan posisi label
df_crop <- df_crop %>%
  arrange(desc(`Crop Type`)) %>%
  mutate(
    prop = round(counts * 100 / sum(counts), 1),
    lab.ypos = cumsum(prop) - 0.5 * prop
  )

# Menampilkan hasil perhitungan
print(df_crop, n = Inf)
## # A tibble: 11 × 4
##    `Crop Type` counts  prop lab.ypos
##    <chr>        <int> <dbl>    <dbl>
##  1 Wheat          747   9.3     4.65
##  2 Tobacco        717   9      13.8 
##  3 Sugarcane      763   9.5    23.0 
##  4 Pulses         728   9.1    32.4 
##  5 Paddy          706   8.8    41.3 
##  6 Oil seeds      711   8.9    50.2 
##  7 Millets        718   9      59.1 
##  8 Maize          753   9.4    68.3 
##  9 Ground Nuts    732   9.2    77.6 
## 10 Cotton         722   9      86.7 
## 11 Barley         703   8.8    95.6
# Membuat pie chart distribusi jenis tanaman
ggplot(df_crop, aes(x = "", y = prop, fill = `Crop Type`)) +
  geom_bar(width = 1, stat = "identity", color = "white") +
  geom_text(
    aes(y = lab.ypos, label = paste0(prop, "%")),
    color = "white",
    size = 3.5
  ) +
  coord_polar("y", start = 0) +
  scale_fill_viridis_d(option = "turbo") + 
  labs(
    title = "Distribusi Persentase Jenis Tanaman",
    fill = "Jenis Tanaman"
  ) +
  theme_void()

Interpretasi Pie Chart Jenis Tanaman (Crop Type)

Pie Chart ini menunjukkan distribusi 11 jenis tanaman dalam dataset. Sugarcane memiliki jumlah data terbanyak, yaitu 763 data, sedangkan Barley memiliki jumlah paling sedikit, yaitu 703 data. Jumlah data setiap jenis tanaman relatif berdekatan, sehingga tidak terdapat satu kategori tanaman yang mendominasi dataset secara mencolok.

Visualisasi Data Numerik

Histogram Suhu (Temperature)

ggplot(data, aes(x = Temparature)) +
  geom_histogram(
    binwidth = 1,
    fill = "coral",
    color = "white",
    alpha = 0.8
  ) +
  labs(
    title = "Distribusi Frekuensi Suhu Lingkungan (Temperature)",
    x = "Suhu (°C)",
    y = "Frekuensi"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", size = 14, hjust = 0.5),
    axis.title = element_text(face = "bold")
  )

Interpretasi Histogram Suhu (Temperature)

Suhu lingkungan pada dataset terdistribusi dalam rentang antara 20°C hingga 40°C. Sebagian besar data terkonsentrasi pada rentang suhu pertengahan, yaitu sekitar 26°C hingga 34°C. Puncak frekuensi tertinggi berada di sekitar nilai 30°C, yang menunjukkan bahwa kondisi suhu paling umum terjadi pada wilayah/kondisi lahan dalam dataset ini adalah sekitar 30°C.

Histogram Kelembapan Tanah (Moisture)

ggplot(data, aes(x = Moisture)) +
  geom_histogram(
    binwidth = 2,
    fill = "skyblue",
    color = "white",
    alpha = 0.8
  ) +
  labs(
    title = "Distribusi Kelembapan Tanah (Moisture)",
    x = "Kelembapan Tanah (%)",
    y = "Frekuensi"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", size = 14, hjust = 0.5),
    axis.title = element_text(face = "bold")
  )

Interpretasi Histogram Kelembapan Tanah (Moisture)

Histogram menunjukkan bahwa nilai kelembapan tanah pada dataset tersebar dalam rentang sekitar 20% hingga 70%. Frekuensi data meningkat dari kisaran 20% dan mencapai puncak pada kisaran 35%–40%, yang menunjukkan bahwa kelembapan tanah pada rentang tersebut paling banyak ditemukan dalam sampel. Sebagian besar data berada pada kisaran 30%–55%, sedangkan nilai kelembapan di atas 60% cenderung memiliki frekuensi lebih rendah. Pola ini menggambarkan bahwa sampel tanah dalam dataset memiliki tingkat kelembapan yang bervariasi, dengan konsentrasi terbesar pada tingkat kelembapan sedang.

Scatter Plot Hubungan Nitrogen dan Phosphorous

ggplot(data, aes(x = Nitrogen, y = Phosphorous, color = `Crop Type`)) +
  geom_point(alpha = 0.6, size = 2) +
  geom_smooth(method = "lm", se = FALSE, color = "black", linetype = "dashed") +
  scale_color_viridis_d(option = "turbo") +
  labs(
    title = "Hubungan Antara Kandungan Nitrogen dan Phosphorous",
    x = "Kandungan Nitrogen (N)",
    y = "Kandungan Phosphorous (P)",
    color = "Jenis Tanaman"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", size = 14, hjust = 0.5),
    axis.title = element_text(face = "bold")
  )
## `geom_smooth()` using formula = 'y ~ x'

Interpretasi Scatter Plot Hubungan Nitrogen dan Phosphorous

Titik-titik tersebar secara menyeluruh di sepanjang bidang koordinat. Garis tren cenderung datar/horizontal, mengindikasikan bahwa tidak ada hubungan linear yang kuat antara kadar Nitrogen dan Phosphorous pada dataset secara umum. Pemetaan berdasarkan warna Crop Type menunjukkan bahwa setiap kelompok tanaman memiliki kombinasi nutrisi yang bervariasi.

Stacked Bar Chart Komposisi Jenis Tanaman per Jenis Tanah

ggplot(data, aes(x = `Soil Type`, fill = `Crop Type`)) +
  geom_bar(position = "fill") +
  scale_y_continuous(labels = scales::percent) +
  scale_fill_viridis_d(option = "turbo") +
  labs(
    title = "Proporsi Jenis Tanaman pada Setiap Jenis Tanah",
    x = "Jenis Tanah",
    y = "Persentase Komposisi",
    fill = "Jenis Tanaman"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", size = 13, hjust = 0.5),
    axis.title = element_text(face = "bold")
  )

Interpretasi Stacked Bar Chart Komposisi Jenis Tanaman per Jenis Tanah

Stacked bar chart menunjukkan komposisi persentase 11 jenis tanaman pada masing-masing jenis tanah, yaitu Black, Clayey, Loamy, Red, dan Sandy. Secara umum, proporsi jenis tanaman pada setiap jenis tanah terlihat relatif seimbang, dengan masing-masing tanaman menyumbang sekitar 8%–10% dari total data pada tiap jenis tanah. Meskipun terdapat sedikit perbedaan proporsi antarjenis tanaman dan jenis tanah, tidak terlihat adanya satu jenis tanaman yang mendominasi secara mencolok. Hal ini menunjukkan bahwa dalam dataset, berbagai jenis tanaman tercatat pada seluruh jenis tanah dengan komposisi yang cukup merata.

Needle Chart Rata-rata Kandungan Nitrogen per Jenis Tanaman

# 1. Menyiapkan tabel rata-rata Nitrogen per Jenis Tanaman
freqtab <- data %>%
  group_by(`Crop Type`) %>%
  summarise(Freq = mean(Nitrogen), .groups = "drop") %>%
  rename(Var1 = `Crop Type`)

# 2. Membuat Needle Chart Rata-rata Nitrogen
ggplot(data = freqtab, mapping = aes(x = reorder(Var1, Freq), y = Freq)) +
  geom_segment(
    aes(x = reorder(Var1, Freq), xend = reorder(Var1, Freq), y = 0, yend = Freq), 
    color = "skyblue"
  ) +
  geom_point(color = "navyblue", size = 4, alpha = 0.6) +
  geom_text(aes(label = round(Freq, 1)), hjust = -0.3, size = 3.5) +
  coord_flip() +
  scale_y_continuous(limits = c(0, max(freqtab$Freq) * 1.15)) +
  labs(
    title = "Rata-Rata Kandungan Nitrogen Berdasarkan Jenis Tanaman",
    x = "Jenis Tanaman",
    y = "Rata-Rata Kandungan Nitrogen (ppm)"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", size = 13, hjust = 0.5),
    axis.title = element_text(face = "bold")
  )

Interpretasi Rata-rata Kandungan Nitrogen per Jenis Tanaman

Visualisasi needle chart menunjukkan perbandingan rata-rata kandungan Nitrogen (ppm) pada tanah untuk setiap jenis tanaman dalam dataset. Tanaman Millets memiliki rata-rata kandungan Nitrogen tertinggi, yaitu 19,2 ppm, diikuti oleh Maize sebesar 18,9 ppm dan Sugarcane sebesar 18,8 ppm. Sementara itu, Barley memiliki rata-rata terendah, yaitu 17,9 ppm. Secara keseluruhan, rata-rata kandungan Nitrogen seluruh jenis tanaman berada pada rentang 17,9–19,2 ppm, sehingga perbedaannya relatif kecil. Hal ini menunjukkan bahwa nilai rata-rata Nitrogen pada kelompok tanaman dalam dataset cenderung berdekatan, meskipun terdapat sedikit variasi antarjenis tanaman.