Perikanan tangkap merupakan salah satu kegiatan yang memanfaatkan sumber daya perairan untuk menghasilkan produk perikanan. Dalam kegiatan tersebut, nelayan berperan sebagai pelaku yang melakukan penangkapan ikan, sedangkan produksi perikanan menggambarkan jumlah hasil tangkapan yang diperoleh. Jumlah nelayan dan produksi perikanan merupakan dua aspek yang dapat digunakan untuk menggambarkan kegiatan perikanan tangkap di suatu wilayah.
Setiap provinsi di Indonesia memiliki kondisi geografis, sumber daya perairan, dan aktivitas perikanan yang berbeda. Perbedaan tersebut dapat menyebabkan jumlah nelayan dan produksi perikanan tangkap yang beragam antarprovinsi. Oleh karena itu, analisis statistika diperlukan untuk mengetahui apakah jumlah nelayan memiliki hubungan dengan produksi perikanan tangkap di laut.
Penelitian ini menggunakan data sekunder tahun 2024 yang bersumber dari Kementerian Kelautan dan Perikanan (KKP) dan Badan Pusat Statistik (BPS). Analisis dilakukan dengan statistika deskriptif, visualisasi data, korelasi, dan regresi linear sederhana menggunakan perangkat lunak R.
Statistika deskriptif merupakan metode untuk menggambarkan karakteristik data melalui ukuran numerik dan penyajian grafik. Ukuran yang digunakan dalam penelitian ini meliputi nilai minimum, maksimum, rata-rata, median, dan simpangan baku.
Korelasi digunakan untuk mengetahui arah dan keeratan hubungan antara dua variabel. Koefisien korelasi memiliki nilai antara -1 sampai 1. Nilai positif menunjukkan hubungan searah, sedangkan nilai negatif menunjukkan hubungan berlawanan arah. Pemilihan korelasi Pearson atau Spearman disesuaikan dengan karakteristik data dan pola hubungan yang diamati.
Regresi linear sederhana digunakan untuk menggambarkan hubungan antara satu variabel bebas dan satu variabel respons. Bentuk umum model regresi linear sederhana adalah:
\[ Y_i = \beta_0 + \beta_1 X_i + \varepsilon_i \]
Keterangan:
Koefisien determinasi (\(R^2\)) menunjukkan proporsi variasi variabel respons yang dapat dijelaskan oleh model regresi. Nilai \(R^2\) berada antara 0 dan 1. Nilai tersebut perlu ditafsirkan sebagai ukuran kecocokan model, bukan sebagai bukti hubungan sebab-akibat.
Penelitian ini menggunakan data kuantitatif sekunder tahun 2024. Data jumlah nelayan perikanan tangkap di laut diperoleh dari Portal Data Kementerian Kelautan dan Perikanan (KKP), sedangkan data produksi perikanan tangkap subsektor perikanan laut diperoleh dari tabel statistik Badan Pusat Statistik (BPS). Kedua sumber menyajikan data tahun 2024. Data produksi pada tabel BPS dinyatakan dalam ton, sedangkan jumlah nelayan dinyatakan dalam orang.
Unit pengamatan dalam penelitian ini adalah provinsi di Indonesia. Data dari kedua sumber akan dicocokkan berdasarkan nama provinsi. Hanya provinsi yang memiliki data untuk kedua variabel yang digunakan dalam analisis. Data KKP yang tersedia memuat 37 provinsi yang dapat dipasangkan dengan data produksi BPS. Papua Pegunungan tidak disertakan karena nilai jumlah nelayan pada tabel KKP yang digunakan tidak tersedia. Dengan demikian, jumlah pengamatan dalam analisis ini adalah 37 provinsi.
| Variabel | Simbol | Definisi operasional | Satuan |
|---|---|---|---|
| Jumlah nelayan perikanan tangkap di laut | X | Jumlah nelayan perikanan tangkap di laut menurut provinsi pada tahun 2024 | Orang |
| Produksi perikanan tangkap di laut | Y | Jumlah produksi perikanan tangkap subsektor perikanan laut menurut provinsi pada tahun 2024 | Ton |
Tahapan analisis yang dilakukan meliputi:
Data yang digunakan telah disiapkan dalam file
data_perikanan_2024.csv yang disertakan bersama dokumen R
Markdown ini. Simpan kedua file tersebut di folder yang sama. File CSV
berisi 37 provinsi dan tiga kolom, yaitu Provinsi,
Jumlah_Nelayan, dan Produksi. Jumlah nelayan
menggunakan satuan orang, sedangkan produksi menggunakan satuan ton.
Papua Pegunungan tidak dimasukkan karena data jumlah nelayannya tidak
tersedia pada tabel KKP yang digunakan.
data_perikanan <- read.csv(
"data_perikanan_2024.csv",
stringsAsFactors = FALSE,
check.names = FALSE
)
# Memastikan nama kolom sesuai dengan format yang dibutuhkan
names(data_perikanan)
#> [1] "Provinsi" "Jumlah_Nelayan" "Produksi"
head(data_perikanan)
#> Provinsi Jumlah_Nelayan Produksi
#> 1 Aceh 103990 422025
#> 2 Bali 77786 127612
#> 3 Banten 42971 73739
#> 4 Bengkulu 16955 85256
#> 5 Daerah Istimewa Yogyakarta 5271 6548
#> 6 DKI Jakarta 91632 201904
Pemeriksaan dilakukan untuk mengetahui struktur data, jumlah pengamatan, data kosong, dan kemungkinan nama provinsi yang tercatat lebih dari satu kali.
str(data_perikanan)
#> 'data.frame': 37 obs. of 3 variables:
#> $ Provinsi : chr "Aceh" "Bali" "Banten" "Bengkulu" ...
#> $ Jumlah_Nelayan: int 103990 77786 42971 16955 5271 91632 33273 10269 91299 189029 ...
#> $ Produksi : int 422025 127612 73739 85256 6548 201904 129365 46417 268077 528259 ...
cat("Jumlah baris:", nrow(data_perikanan), "\n")
#> Jumlah baris: 37
cat("Jumlah data kosong:", sum(is.na(data_perikanan)), "\n")
#> Jumlah data kosong: 0
cat("Jumlah nama provinsi duplikat:", sum(duplicated(data_perikanan$Provinsi)), "\n")
#> Jumlah nama provinsi duplikat: 0
# Mengubah variabel numerik jika terbaca sebagai teks
# Pastikan pemisah ribuan/desimal pada CSV sudah benar sebelum menjalankan.
data_perikanan$Jumlah_Nelayan <- as.numeric(data_perikanan$Jumlah_Nelayan)
data_perikanan$Produksi <- as.numeric(data_perikanan$Produksi)
# Menggunakan hanya baris dengan data lengkap pada kedua variabel
data_analisis <- na.omit(data_perikanan[, c("Provinsi", "Jumlah_Nelayan", "Produksi")])
cat("Jumlah pengamatan lengkap:", nrow(data_analisis), "\n")
#> Jumlah pengamatan lengkap: 37
knitr::kable(
data_analisis,
caption = "Data jumlah nelayan dan produksi perikanan tangkap di laut menurut provinsi tahun 2024"
)
| Provinsi | Jumlah_Nelayan | Produksi |
|---|---|---|
| Aceh | 103990 | 422025 |
| Bali | 77786 | 127612 |
| Banten | 42971 | 73739 |
| Bengkulu | 16955 | 85256 |
| Daerah Istimewa Yogyakarta | 5271 | 6548 |
| DKI Jakarta | 91632 | 201904 |
| Gorontalo | 33273 | 129365 |
| Jambi | 10269 | 46417 |
| Jawa Barat | 91299 | 268077 |
| Jawa Tengah | 189029 | 528259 |
| Jawa Timur | 217000 | 619053 |
| Kalimantan Barat | 62392 | 173849 |
| Kalimantan Selatan | 39495 | 169796 |
| Kalimantan Tengah | 52762 | 103774 |
| Kalimantan Timur | 64079 | 166268 |
| Kalimantan Utara | 27971 | 23510 |
| Kepulauan Bangka Belitung | 73836 | 236039 |
| Kepulauan Riau | 129225 | 339329 |
| Lampung | 31745 | 190325 |
| Maluku | 152725 | 399143 |
| Maluku Utara | 46150 | 318734 |
| Nusa Tenggara Barat | 89183 | 121438 |
| Nusa Tenggara Timur | 101181 | 30318 |
| Papua | 7681 | 152927 |
| Papua Barat | 11827 | 65336 |
| Papua Barat Daya | 12075 | 85168 |
| Papua Selatan | 10627 | 15371 |
| Papua Tengah | 1525 | 25247 |
| Riau | 41682 | 105459 |
| Sulawesi Barat | 31061 | 71527 |
| Sulawesi Selatan | 187282 | 466673 |
| Sulawesi Tengah | 260449 | 268243 |
| Sulawesi Tenggara | 148212 | 270452 |
| Sulawesi Utara | 113783 | 336186 |
| Sumatera Barat | 52614 | 220025 |
| Sumatera Selatan | 7118 | 86367 |
| Sumatera Utara | 183839 | 381129 |
Statistik deskriptif digunakan untuk memberikan gambaran umum mengenai jumlah nelayan dan produksi perikanan tangkap di laut.
statistik_deskriptif <- data.frame(
Statistik = c("Minimum", "Kuartil 1", "Median", "Rata-rata", "Kuartil 3", "Maksimum", "Simpangan baku"),
Jumlah_Nelayan = c(
min(data_analisis$Jumlah_Nelayan),
unname(quantile(data_analisis$Jumlah_Nelayan, 0.25)),
median(data_analisis$Jumlah_Nelayan),
mean(data_analisis$Jumlah_Nelayan),
unname(quantile(data_analisis$Jumlah_Nelayan, 0.75)),
max(data_analisis$Jumlah_Nelayan),
sd(data_analisis$Jumlah_Nelayan)
),
Produksi = c(
min(data_analisis$Produksi),
unname(quantile(data_analisis$Produksi, 0.25)),
median(data_analisis$Produksi),
mean(data_analisis$Produksi),
unname(quantile(data_analisis$Produksi, 0.75)),
max(data_analisis$Produksi),
sd(data_analisis$Produksi)
)
)
knitr::kable(
statistik_deskriptif,
digits = 2,
caption = "Statistik deskriptif jumlah nelayan dan produksi perikanan"
)
| Statistik | Jumlah_Nelayan | Produksi |
|---|---|---|
| Minimum | 1525.00 | 6548.0 |
| Kuartil 1 | 27971.00 | 85168.0 |
| Median | 52762.00 | 166268.0 |
| Rata-rata | 76216.05 | 198132.1 |
| Kuartil 3 | 103990.00 | 270452.0 |
| Maksimum | 260449.00 | 619053.0 |
| Simpangan baku | 67163.12 | 154487.4 |
Histogram digunakan untuk melihat bentuk distribusi masing-masing variabel.
par(mfrow = c(1, 2))
hist(
data_analisis$Jumlah_Nelayan,
main = "Histogram Jumlah Nelayan",
xlab = "Jumlah nelayan (orang)",
ylab = "Frekuensi",
col = "lightblue",
border = "white"
)
hist(
data_analisis$Produksi,
main = "Histogram Produksi Perikanan",
xlab = "Produksi (ton)",
ylab = "Frekuensi",
col = "lightgreen",
border = "white"
)
par(mfrow = c(1, 1))
Boxplot digunakan untuk melihat median, kuartil, sebaran data, dan kemungkinan pencilan pada setiap variabel.
par(mfrow = c(1, 2))
boxplot(
data_analisis$Jumlah_Nelayan,
main = "Boxplot Jumlah Nelayan",
ylab = "Orang",
col = "lightblue"
)
boxplot(
data_analisis$Produksi,
main = "Boxplot Produksi Perikanan",
ylab = "Ton",
col = "lightgreen"
)
par(mfrow = c(1, 1))
Scatterplot digunakan untuk mengamati arah, bentuk, dan kekuatan pola hubungan antara jumlah nelayan dan produksi perikanan.
plot(
data_analisis$Jumlah_Nelayan,
data_analisis$Produksi,
main = "Hubungan Jumlah Nelayan dan Produksi Perikanan",
xlab = "Jumlah nelayan (orang)",
ylab = "Produksi (ton)",
pch = 19,
col = "blue"
)
Korelasi Spearman digunakan untuk mengukur arah dan keeratan hubungan monotonik antara jumlah nelayan dan produksi perikanan. Metode ini menggunakan peringkat data dan dapat digunakan ketika distribusi data tidak normal atau terdapat pencilan, dengan tetap memperhatikan pola hubungan yang diamati.
hasil_korelasi <- cor.test(
data_analisis$Jumlah_Nelayan,
data_analisis$Produksi,
method = "spearman",
exact = FALSE
)
hasil_korelasi
#>
#> Spearman's rank correlation rho
#>
#> data: data_analisis$Jumlah_Nelayan and data_analisis$Produksi
#> S = 1578, p-value = 9.82e-10
#> alternative hypothesis: true rho is not equal to 0
#> sample estimates:
#> rho
#> 0.8129445
Hipotesis pengujian:
Keputusan dibuat dengan membandingkan p-value dengan taraf signifikansi 0,05. Jika p-value lebih kecil dari 0,05, maka \(H_0\) ditolak. Arah hubungan dilihat dari tanda koefisien korelasi Spearman.
Regresi linear sederhana digunakan untuk menggambarkan hubungan jumlah nelayan sebagai variabel bebas (X) dengan produksi perikanan tangkap di laut sebagai variabel respons (Y).
model_regresi <- lm(
Produksi ~ Jumlah_Nelayan,
data = data_analisis
)
summary(model_regresi)
#>
#> Call:
#> lm(formula = Produksi ~ Jumlah_Nelayan, data = data_analisis)
#>
#> Residuals:
#> Min 1Q Median 3Q Max
#> -270869 -50949 -3195 59407 176248
#>
#> Coefficients:
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) 5.707e+04 2.331e+04 2.448 0.0195 *
#> Jumlah_Nelayan 1.851e+00 2.309e-01 8.017 1.96e-09 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Residual standard error: 93030 on 35 degrees of freedom
#> Multiple R-squared: 0.6474, Adjusted R-squared: 0.6374
#> F-statistic: 64.27 on 1 and 35 DF, p-value: 1.957e-09
Persamaan model regresi ditampilkan berdasarkan hasil estimasi koefisien berikut.
koefisien <- coef(model_regresi)
cat(
"Persamaan regresi: Y = ",
round(koefisien[1], 4),
" + ",
round(koefisien[2], 4),
"X",
sep = ""
)
#> Persamaan regresi: Y = 57070.65 + 1.8508X
Interpretasi konstanta dan koefisien regresi dilakukan berdasarkan nilai estimasi yang dihasilkan R. Koefisien slope menunjukkan perubahan nilai prediksi produksi untuk setiap kenaikan satu orang nelayan, dalam rentang dan konteks data yang dianalisis. Interpretasi ini tidak berarti bahwa jumlah nelayan menyebabkan perubahan produksi.
r_squared <- summary(model_regresi)$r.squared
adjusted_r_squared <- summary(model_regresi)$adj.r.squared
tabel_r2 <- data.frame(
Ukuran = c("R-squared", "Adjusted R-squared"),
Nilai = c(r_squared, adjusted_r_squared)
)
knitr::kable(
tabel_r2,
digits = 4,
caption = "Koefisien determinasi model regresi"
)
| Ukuran | Nilai |
|---|---|
| R-squared | 0.6474 |
| Adjusted R-squared | 0.6374 |
Nilai R-squared menunjukkan proporsi variasi produksi perikanan yang dapat dijelaskan oleh model dengan jumlah nelayan sebagai prediktor. Sisanya berkaitan dengan variasi yang tidak dijelaskan oleh model.
Pemeriksaan residual dilakukan untuk menilai beberapa asumsi model regresi. Normalitas yang relevan bagi inferensi regresi adalah normalitas residual, bukan keharusan bahwa masing-masing variabel X dan Y berdistribusi normal.
par(mfrow = c(2, 2))
plot(model_regresi)
par(mfrow = c(1, 1))
Uji Shapiro-Wilk pada residual dapat digunakan sebagai salah satu pemeriksaan tambahan.
shapiro.test(residuals(model_regresi))
#>
#> Shapiro-Wilk normality test
#>
#> data: residuals(model_regresi)
#> W = 0.94897, p-value = 0.08943
Hasil grafik diagnostik dan uji residual perlu dipertimbangkan bersama-sama. Jika pola residual menunjukkan ketidaksesuaian asumsi, hal tersebut perlu disampaikan sebagai keterbatasan model.
Kesimpulan ditulis setelah seluruh analisis dijalankan. Bagian ini perlu menjawab rumusan masalah berdasarkan hasil statistik deskriptif, korelasi Spearman, dan regresi linear sederhana. Kesimpulan harus menyebutkan arah serta kekuatan hubungan sesuai hasil yang diperoleh, bukan berdasarkan dugaan sebelum analisis.
Penelitian selanjutnya dapat mempertimbangkan data beberapa tahun dengan definisi dan cakupan wilayah yang konsisten agar perkembangan perikanan dapat dianalisis. Selain itu, faktor lain seperti jumlah kapal penangkap ikan, jenis alat tangkap, kondisi sumber daya perairan, dan teknologi penangkapan dapat dipertimbangkan sebagai variabel tambahan.
Badan Pusat Statistik. (2026). Produksi perikanan tangkap menurut provinsi subsektor perikanan laut (ton), 2024. https://www.bps.go.id/id/statistics-table/2/MTA1NCMy/produksi-perikanan-tangkap
Kementerian Kelautan dan Perikanan. (2024). Jumlah nelayan perikanan tangkap di laut menurut provinsi (orang). Portal Data KKP. https://portaldata.kkp.go.id/Portals/Data-Statistik/Nelayan/Tbl-Statis/d/65
Catatan sebelum Knit: Pastikan file
data_perikanan_2024.csv dan file .Rmd berada
di folder yang sama. Jangan mengganti nama kolom pada CSV karena sintaks
R Markdown membaca nama kolom tersebut secara langsung. Data mencakup 37
provinsi yang tersedia pada kedua sumber. Nilai produksi mengikuti angka
ton sebagaimana ditampilkan pada tabel BPS.