1. Persiapan data.

# Baca data
data <- read.csv("bp_before_after.csv")
# Melihat data
head(data)
##   id before after
## 1  1    140   132
## 2  2    150   145
## 3  3    135   130
## 4  4    142   138
## 5  5    128   125
## 6  6    155   148
# Melihat ringkasan / statistik deskriptif data
summary(data)
##        id            before          after      
##  Min.   : 1.00   Min.   :127.0   Min.   :124.0  
##  1st Qu.: 8.25   1st Qu.:134.2   1st Qu.:130.0  
##  Median :15.50   Median :139.5   Median :134.5  
##  Mean   :15.50   Mean   :139.8   Mean   :135.0  
##  3rd Qu.:22.75   3rd Qu.:145.8   3rd Qu.:139.8  
##  Max.   :30.00   Max.   :155.0   Max.   :148.0
# Membuat kolom dan data selisih (before-after)
data$diff <- data$before - data$after
data
##    id before after diff
## 1   1    140   132    8
## 2   2    150   145    5
## 3   3    135   130    5
## 4   4    142   138    4
## 5   5    128   125    3
## 6   6    155   148    7
## 7   7    138   135    3
## 8   8    147   140    7
## 9   9    131   128    3
## 10 10    144   136    8
## 11 11    129   125    4
## 12 12    152   146    6
## 13 13    141   135    6
## 14 14    137   132    5
## 15 15    148   142    6
## 16 16    133   130    3
## 17 17    149   144    5
## 18 18    136   133    3
## 19 19    130   127    3
## 20 20    145   140    5
## 21 21    139   134    5
## 22 22    143   138    5
## 23 23    134   130    4
## 24 24    151   145    6
## 25 25    127   124    3
## 26 26    146   139    7
## 27 27    132   128    4
## 28 28    140   137    3
## 29 29    138   134    4
## 30 30    135   131    4

2. Visualisasi Data.

# Visualisasi

# Histogram selisih
hist(data$diff,
     main = "Histogram Selisih Tekanan Darah",
     xlab = "Selisih (mmHg)")

Histogram menunjukkan bahwa sebagian besar selisih tekanan darah berada pada kisaran 3–4 mmHg. Distribusi selisih tampak menceng ke kanan dan tidak menunjukkan pola distribusi normal yang jelas. Hal ini sejalan dengan hasil uji Shapiro-Wilk yang menunjukkan p-value < 0,05, sehingga asumsi normalitas tidak terpenuhi.

# Boxplot selisih
boxplot(data$diff,
        main = "Boxplot Selisih Tekanan Darah",
        ylab = "Selisih (mmHg)")

Boxplot menunjukkan bahwa selisih tekanan darah sistolik sebelum dan setelah intervensi berada pada kisaran 3–8 mmHg dengan median sekitar 5 mmHg. Tidak terlihat adanya pencilan (outlier) yang mencolok. Seluruh nilai selisih bernilai positif, yang menunjukkan adanya penurunan tekanan darah setelah intervensi pada seluruh pasien.

# Scatter plot before vs after
plot(data$before, data$after,
     xlab = "Before (mmHg)",
     ylab = "After (mmHg)",
     main = "Before vs After")

abline(0, 1, col = "red", lty = 2)

Scatter plot menunjukkan hubungan positif antara tekanan darah sistolik sebelum (Before) dan setelah (After) intervensi. Titik-titik data cenderung membentuk pola meningkat dari kiri bawah ke kanan atas, yang menunjukkan bahwa pasien dengan tekanan darah sebelum intervensi yang lebih tinggi cenderung memiliki tekanan darah setelah intervensi yang lebih tinggi. Namun, hampir seluruh titik berada di bawah garis merah (y=x), yang menunjukkan bahwa nilai tekanan darah setelah intervensi lebih rendah dibandingkan sebelum intervensi. Dengan demikian, secara visual terlihat bahwa tekanan darah sistolik cenderung mengalami penurunan setelah intervensi.

3. Pemeriksaan asumsi normalitas dengan Shapiro-Wilk.

Hipotesis pengujian

H_0 : Data berdistribusi normal. H_1 : Data tidak berdistribusi normal.

Taraf signifikansi yang digunakan adalah α=0,05.

Hasil pengujian

# Uji normalitas Shapiro-Wilk
shapiro.test(data$diff)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$diff
## W = 0.89942, p-value = 0.008129

Simpulan/Interpretasi

Berdasarkan hasil uji normalitas Shapiro-Wilk pada data selisih tekanan darah sebelum dan setelah intervensi, diperoleh nilai p-value = 0,0081. Karena nilai p-value 0,0081 < 0,05, maka H0 ditolak dan terima H1. Dengan demikian, dapat disimpulkan bahwa data selisih tekanan darah sistolik sebelum dan setelah intervensi tidak berdistribusi normal. Oleh karena itu, untuk pengujian hipotesis selanjutnya digunakan uji non-parametrik Wilcoxon signed-rank.

4. Uji hipotesis (Wilcoxon).

Hipotesis pengujian

H_0: Tidak terdapat perbedaan rata-rata tekanan darah sistolik sebelum dan setelah intervensi. H_1: Terdapat perbedaan rata-rata tekanan darah sistolik sebelum dan setelah intervensi.

Taraf signifikansi yang digunakan adalah α=0,05.

Hasil pengujian

# Karena data tidak berdistribus normal maka gunakan Wilcoxon signed-rank test (alternatif non-parametric)
wilcox.test(data$before,
            data$after,
            paired = TRUE)
## Warning in wilcox.test.default(data$before, data$after, paired = TRUE): cannot
## compute exact p-value with ties
## 
##  Wilcoxon signed rank test with continuity correction
## 
## data:  data$before and data$after
## V = 465, p-value = 1.619e-06
## alternative hypothesis: true location shift is not equal to 0

Simpulan/Interpretasi

Berdasarkan uji Wilcoxon signed-rank diperoleh nilai V = 465 dan p-value = 1,619 × 10⁻⁶. Karena p-value < 0,05, maka H0 ditolak dan terima H1. Dengan demikian, terdapat perbedaan yang signifikan antara tekanan darah sistolik sebelum dan setelah intervensi edukasi gaya hidup selama 6 minggu. Rata-rata tekanan darah sistolik menurun dari 139,83 mmHg sebelum intervensi menjadi 135,03 mmHg setelah intervensi.

5. Ukuran efek dan interpretasi.

# Ukuran efek Cohen's d
mean_diff <- mean(data$diff)
sd_diff <- sd(data$diff)

cohen_d_paired <- mean_diff / sd_diff

cohen_d_paired
## [1] 3.072017

Berdasarkan hasil perhitungan ukuran efek, diperoleh nilai Cohen’s d = 3,072017. Nilai tersebut menunjukkan bahwa intervensi memiliki efek yang sangat besar terhadap perubahan tekanan darah sistolik. Dengan demikian, selain terdapat perbedaan yang signifikan secara statistik, perubahan tekanan darah setelah intervensi juga memiliki besaran efek yang besar.

6. Laporan/Ringkasan singkat hasil analisis.

# Statistik deskriptif
mean_before <- mean(data$before)
mean_after <- mean(data$after)

sd_before <- sd(data$before)
sd_after <- sd(data$after)

list(
  mean_before = mean_before,
  mean_after = mean_after,
  sd_before = sd_before,
  sd_after = sd_after,
  mean_diff = mean_diff,
  sd_diff = sd_diff,
  cohen_d_paired = cohen_d_paired
)
## $mean_before
## [1] 139.8333
## 
## $mean_after
## [1] 135.0333
## 
## $sd_before
## [1] 7.70617
## 
## $sd_after
## [1] 6.713257
## 
## $mean_diff
## [1] 4.8
## 
## $sd_diff
## [1] 1.562491
## 
## $cohen_d_paired
## [1] 3.072017
summary(data)
##        id            before          after            diff     
##  Min.   : 1.00   Min.   :127.0   Min.   :124.0   Min.   :3.00  
##  1st Qu.: 8.25   1st Qu.:134.2   1st Qu.:130.0   1st Qu.:3.25  
##  Median :15.50   Median :139.5   Median :134.5   Median :5.00  
##  Mean   :15.50   Mean   :139.8   Mean   :135.0   Mean   :4.80  
##  3rd Qu.:22.75   3rd Qu.:145.8   3rd Qu.:139.8   3rd Qu.:6.00  
##  Max.   :30.00   Max.   :155.0   Max.   :148.0   Max.   :8.00

Berdasarkan hasil analisis, rata-rata tekanan darah sistolik sebelum intervensi adalah 139,83 mmHg (SD = 7,71), sedangkan setelah intervensi sebesar 135,03 mmHg (SD = 6,71). Rata-rata selisih tekanan darah adalah 4,80 mmHg (SD = 1,56), yang menunjukkan adanya penurunan rata-rata tekanan darah sistolik setelah intervensi. Nilai Cohen’s d sebesar 3,07 menunjukkan bahwa intervensi memiliki ukuran efek yang sangat besar terhadap perubahan tekanan darah sistolik.