Members

Dosen

Dosen Pengampu

Bakti Siregar, M.Sc.,CDS.

Program Studi Sains Data

MEMBERS GROUP

Institut Teknologi Sains Bandung

Ahmad Rizki Mubarak

NIM: 52250036

Tugas

Summary 3 & 8, Basic Visualisasi (Central Tendency), Confidence Intervals, Nonparametric

Fifi Muthia Pitaloka

NIM: 52250038

Tugas

Summary 2 & 4, Basic Visualisasi (Probability Distribution), Confidence Intervals, Nonparametric

Clara Maisie Wanghili

NIM: 52250039

Tugas

Summary 7 & 9, Basic Visualisasi (Statistical Dispersion), Confidence Intervals, Nonparametric

Ulin Nikmah

NIM: 52250042

Tugas

Summary 5 & 10, Basic Visualisasi (Bar Chart), Statistical Inference, Nonparametric

Nazwa Nur Ramadhani

NIM: 52250045

Tugas

Summary 1 & 6, Basic Visualisasi (Pie Chart & Line Chart), Statistical Inference, Nonparametric

Summary of Basic Statistics

## Column

Chapter 1

Intro to Statistics

Permasalahan Statistik Utama

Statistik adalah ilmu tentang cara mengumpulkan, menganalisis, dan menginterpretasi data agar dapat membuat keputusan yang lebih tepat berdasarkan data. Dalam dataset pasien ini, permasalahan statistik utama adalah menganalisis kondisi kesehatan pasien secara menyeluruh serta mengidentifikasi faktor-faktor yang berhubungan dengan status penyakit pasien.

Dataset mencakup variabel umur, jenis kelamin, tekanan darah, BMI, kategori BMI, jumlah kunjungan rumah sakit, dan status penyakit, sehingga analisis difokuskan pada bagaimana karakteristik tersebut berkaitan dengan variasi status penyakit pasien, seperti kondisi sehat, pra-hipertensi, dan hipertensi, serta pola kesehatan pasien yang dapat terlihat dari data yang ada.

Jenis Statistik

Jenis statistik yang digunakan dalam analisis dataset ini adalah statistik deskriptif dan statistik inferensial. Statistik deskriptif digunakan untuk merangkum dan menggambarkan data pasien, seperti rata-rata umur, tekanan darah, dan BMI, serta distribusi jenis kelamin dan status penyakit. Sementara itu, statistik inferensial digunakan untuk menguji hubungan atau perbedaan antar variabel, misalnya hubungan antara BMI atau umur dengan status penyakit, sehingga dapat ditarik kesimpulan berdasarkan data sampel pasien.

Chapter 2

Data Exploration

Data Exploration

Eksplorasi data dilakukan untuk memahami karakteristik awal data pasien sebelum dilakukan analisis statistik lanjutan. Pada tahap ini, fokus utama adalah mengamati kecenderungan nilai pusat, sebaran data, serta pola umum yang muncul pada variabel numerik.

Ringkasan Statistik Variabel Numerik

Variabel numerik utama dalam dataset meliputi Umur, Tekanan Darah, BMI, dan Jumlah Kunjungan Rumah Sakit. Hasil ringkasan statistik menunjukkan bahwa:

  • Rata-rata umur pasien berada di sekitar 45 tahun dengan nilai median yang hampir sama, sehingga distribusi usia relatif seimbang.
  • Nilai Tekanan Darah dan BMI memiliki rentang yang cukup lebar, yang menunjukkan adanya variasi kondisi kesehatan antar pasien.
  • Jumlah Kunjungan Rumah Sakit berada pada rentang 1–6 kali, dengan nilai tengah sekitar 3 kali, yang mengindikasikan sebagian besar pasien memiliki frekuensi kunjungan sedang.

Pola Awal dan Anomali

Sebagian besar data terkonsentrasi di sekitar nilai tengah, terutama pada variabel umur dan jumlah kunjungan rumah sakit, sehingga pola distribusi terlihat cukup stabil. Namun, terdapat beberapa pasien dengan nilai umur, BMI, atau tekanan darah yang relatif tinggi dibandingkan mayoritas data. Nilai-nilai tersebut berpotensi merupakan outlier dan perlu diperhatikan karena dapat memengaruhi hasil analisis statistik pada tahap selanjutnya.

Chapter 3

Basic Visualizations

Berdasarkan karakteristik dataset pasien, ini adalah beberapa visualisasi yang paling relevan:

Pie Chart: Distribusi Status Penyakit Pasien

Menampilkan proporsi Status_Penyakit (Sehat, Hipertensi, Pra-Hipertensi). Efektif untuk melihat kategori mana yang mendominasi dan membantu identifikasi distribusi kondisi kesehatan pasien secara keseluruhan. Visual sederhana dan mudah dipahami untuk data kategorikal.

Bar Chart: Jumlah Pasien Berdasarkan Kategori BMI

Membandingkan frekuensi antar kategori Kategori_BMI (Kurus, Normal, Overweight, Obesitas). Tinggi bar memudahkan identifikasi kategori dengan jumlah pasien terbanyak. Berguna untuk analisis kesehatan populasi dan perencanaan program intervensi gizi.

Line Chart: Tren Kunjungan Rumah Sakit Berdasarkan Waktu

Menampilkan tren Jumlah_Kunjungan_RS sepanjang waktu berdasarkan tanggal. Membantu identifikasi pola kunjungan (peningkatan, penurunan, fluktuasi) dan mendukung perencanaan kapasitas serta alokasi sumber daya rumah sakit.

Histogram: Distribusi Umur Pasien

Histogram digunakan untuk menampilkan distribusi umur pasien dengan menunjukkan frekuensi pada setiap rentang umur. Visualisasi ini memudahkan melihat sebaran dan pola data umur secara keseluruhan. Histogram dipilih karena umur merupakan variabel numerik kontinu, sehingga paling tepat dianalisis menggunakan distribusi frekuensi untuk memahami karakteristik dasar data sebelum analisis statistik lanjutan.

Chapter 4

Central Tendency

Central Tendency

Central tendency merupakan ukuran statistik yang digunakan untuk mewakili nilai pusat dari suatu kumpulan data. Tiga ukuran utama dalam central tendency yaitu mean (rata-rata), median (nilai tengah setelah data diurutkan), dan modus (nilai yang paling sering muncul).

Ketiga ukuran ini digunakan untuk menggambarkan kecenderungan pusat data, membantu memahami karakteristik umum data, serta memudahkan perbandingan antar variabel numerik.

1. Variabel Umur

Mean (Rata-rata) \[ \bar{x} = \frac{\sum \text{Umur}}{n} = \frac{\text{13.563}}{300} \approx 45,21 \]

Median (Nilai Tengah) \[ \text{Median} = \frac{x_{150} + x_{151}}{2} \] \[ \text{Median} = \frac{45 + 45}{2} = 45 \]

Modus (Nilai yang Paling Sering Muncul)

\[ \text{Modus} = 53 \text{ tahun} \]

2. Variabel BMI

Mean (Rata-rata) \[ \bar{x} = \frac{\sum \text{BMI}}{n} = \frac{\text{7.767}}{300} \approx 26,11 \]

Median (Nilai Tengah) \[ \text{Median} = \frac{x_{150} + x_{151}}{2} \] \[ \text{Median} = \frac{25,9 + 25,9}{2} = 25,9 \]

Modus (Nilai yang Paling Sering Muncul) \[ \text{Modus} \approx 22,4 \]

Perbandingan dan Interpretasi

  • Nilai mean dan median pada variabel umur (45,21 dan 45) sangat berdekatan, menunjukkan distribusi usia relatif simetris dan tidak dipengaruhi oleh nilai ekstrem.
  • Pada variabel BMI, mean dan median (26,11 dan 22,4) juga hampir sama, menandakan sebaran BMI cukup seimbang dengan kecenderungan overweight ringan.
  • Perbedaan kecil antara mean, median, dan modus menunjukkan bahwa ukuran pemusatan ini mampu merepresentasikan karakteristik umum pasien dengan baik.

Chapter 5

Statistical Dispersion

Statistical Dispersion

Statistical dispersion adalah ukuran untuk menggambarkan tingkat penyebaran data terhadap nilai pusatnya. Ukuran ini membantu menentukan apakah data bersifat homogen atau heterogen, sehingga analisis tidak hanya bergantung pada nilai rata-rata.

Ukuran dispersion yang umum digunakan meliputi range, variance, dan standard deviation, yang masing-masing menunjukkan rentang data, tingkat variasi, dan besar penyimpangan data dari nilai pusat.

Rumus Statistical Dispersion

1️⃣Range adalah eselisih antara nilai terbesar dan nilai terkecil dalam suatu data.

\[ \text{Range} = X_{\text{max}} - X_{\text{min}} \]

2️⃣Variance (Sampel) adalah rata-rata kuadrat selisih setiap data terhadap nilai rata-rata sampel.

\[ s^2 = \frac{\sum (x_i - \bar{x})^2}{n - 1} \]

3️⃣Standard Deviation adalah akar dari variance dan memiliki satuan yang sama dengan data aslinya.

\[ s = \sqrt{s^2} \]

Perhitungan Statistical Dispersion (Variabel Umur)

Diketahui: - Umur minimum = 18
- Umur maksimum = 74
- Mean umur (\(\bar{x}\)) = 45,3
- Jumlah data (\(n\)) = 100


1️⃣ Range

\[ \text{Range} = 74 - 18 = 56 \]


2️⃣ Variance

\[ s^2 = 264{,}47 \]


3️⃣ Standard Deviation

\[ s = \sqrt{264{,}47} = 16{,}26 \]

Interpretasi

Nilai range yang besar, yaitu 56, menunjukkan bahwa data umur tersebar dalam rentang usia yang luas. Nilai variance dan standard deviation yang relatif tinggi menandakan bahwa umur pasien memiliki variasi yang cukup besar dan tidak terkonsentrasi di sekitar nilai rata-rata.

Dengan demikian, data umur dapat dikatakan bersifat heterogen, sehingga variasi ini penting untuk dipertimbangkan dalam analisis statistik lanjutan, seperti pengelompokan data, analisis regresi, maupun pengujian hipotesis.

Chapter 6

Essentials of Probability

Pendahuluan

Probability (peluang) adalah konsep dasar dalam statistika yang digunakan untuk mengukur kemungkinan terjadinya suatu kejadian dalam ruang sampel. Nilai peluang berada antara 0 dan 1, di mana 0 menunjukkan kejadian yang mustahil dan 1 menunjukkan kejadian yang pasti.

Dalam analisis data, peluang digunakan untuk menilai kemungkinan suatu kondisi terjadi dengan membandingkan jumlah kejadian tertentu terhadap total pengamatan.

Event

Satu event yang relevan dari dataset pasien adalah pasien memiliki status penyakit hipertensi. Event ini dipilih karena status penyakit merupakan variabel utama yang menggambarkan kondisi kesehatan pasien dan menjadi fokus analisis dalam dataset.

Peluang

\[ A = \text{Pasien memiliki status penyakit Hipertensi} \]

Jumlah seluruh pasien dalam dataset adalah sebanyak \(300\) pasien, sedangkan jumlah pasien dengan status penyakit hipertensi adalah \(78\) pasien. Peluang terjadinya event \(A\) dihitung dengan rumus: \[ P(A) = \frac{\text{Jumlah pasien hipertensi}}{\text{Jumlah seluruh pasien}} \] \[ P(A) = \frac{78}{300} = 0{,}26 \]

Interpretasi

Dari total 300 pasien dalam dataset, sekitar 26% pasien memiliki status penyakit hipertensi, sehingga peluang terjadinya event pasien mengalami hipertensi adalah 0,26.

Nilai peluang ini menunjukkan bahwa kemungkinan seorang pasien yang dipilih secara acak dari dataset mengalami hipertensi adalah sebesar 26%. Dengan kata lain, sekitar dua hingga tiga dari setiap sepuluh pasien dalam dataset memiliki kondisi hipertensi, yang menunjukkan bahwa hipertensi merupakan masalah kesehatan yang cukup signifikan pada data pasien tersebut.

Chapter 7

Probability Distributions

Distribusi probabilitas merupakan konsep statistik yang digunakan untuk menggambarkan bagaimana peluang suatu kejadian atau nilai tersebar pada seluruh kemungkinan hasil dari sebuah variabel acak, baik diskret maupun kontinu. Konsep ini menjadi dasar penting dalam statistik karena digunakan untuk memahami perilaku data, menghitung probabilitas, serta membangun distribusi sampel dan distribusi sampling.

Variabel acak diskret memiliki nilai-nilai yang terpisah dan terbatas, sedangkan variabel acak kontinu dapat mengambil nilai apa pun dalam suatu interval pada garis bilangan riil. Oleh karena itu, pada variabel kontinu probabilitas tidak dinyatakan pada satu nilai tertentu, melainkan dalam bentuk fungsi densitas probabilitas (Probability Density Function / PDF) dan dihitung pada suatu rentang nilai. Pemahaman mengenai distribusi probabilitas juga berkaitan erat dengan Central Limit Theorem, yang menyatakan bahwa distribusi statistik, seperti rata-rata sampel, akan mendekati distribusi normal apabila ukuran sampel cukup besar, terlepas dari bentuk distribusi populasi asalnya.

Sebagai penerapan konsep distribusi probabilitas, dilakukan visualisasi distribusi untuk salah satu variabel numerik, yaitu umur pasien, menggunakan histogram. Histogram tersebut menampilkan sebaran frekuensi umur pasien ke dalam beberapa interval kelas. Secara deskriptif, distribusi umur terlihat menyebar dari usia muda hingga usia lanjut, dengan satu puncak utama yang menunjukkan umur yang paling sering muncul. Bentuk distribusi bersifat unimodal dan relatif menyebar, tanpa adanya lonjakan ekstrem pada satu nilai tertentu, sehingga mencerminkan variasi data numerik yang cukup beragam dalam sampel.

Chapter 8

Confidence Interval

Pengantar CI

Confidence Interval (CI) adalah rentang nilai yang digunakan untuk memperkirakan parameter populasi dari data sampel. CI 95% berarti kita 95% yakin rata-rata populasi berada di dalam interval tersebut. Dalam konteks medis, CI membantu menilai apakah rata-rata tekanan darah pasien berbeda dari standar normal.

Pertanyaan Penelitian
Apakah rata-rata tekanan darah pasien berbeda signifikan dari nilai normal populasi 120 mmHg?

Data & Statistik Dasar
- Jumlah sampel (n): 300 pasien
- Rata-rata (Mean, \(\bar{x}\)): 126,08 mmHg
- Simpangan baku (SD, s): 19,21 mmHg

Perhitungan Standard Error (SE)

\[ SE = \frac{s}{\sqrt{n}} = \frac{19,21}{\sqrt{300}} \approx 1,109 \]

\[ ME = t_{0,025, 299} \times SE = 1,968 \times 1,109 \approx 2,182 \]

Confidence Interval 95%
\[ CI = \bar{x} \pm ME = 126,08 \pm 2,182 \] \[ CI = (123,90, 128,26) \text{ mmHg} \]

Interpretasi

  • Rata-rata tekanan darah populasi pasien diperkirakan berada di 123,90 – 128,26 mmHg.
  • Nilai normal 120 mmHg berada di luar CI, artinya tekanan darah pasien secara signifikan lebih tinggi.
  • Indikasi: risiko prehipertensi atau hipertensi → perlu intervensi kesehatan.

Chapter 9

Statistical Inference

Statistical inference merupakan proses penarikan kesimpulan mengenai populasi berdasarkan informasi yang diperoleh dari sampel. Pada data pasien ini, inferensi statistik digunakan untuk menarik kesimpulan tentang karakteristik kesehatan populasi pasien, seperti tekanan darah atau umur, berdasarkan data sampel yang tersedia. Proses ini dilakukan melalui pengujian hipotesis yang melibatkan perumusan hipotesis nol, hipotesis alternatif, pemilihan uji statistik yang sesuai, dan pengambilan keputusan berdasarkan nilai p.

Hipotesis

  • H₀: μ = 120 (rata-rata tekanan darah sama dengan nilai normal)
  • H₁: μ ≠ 120 (rata-rata tekanan darah berbeda dari nilai normal)

Statistik Uji

  • Uji yang digunakan: uji t satu sampel
  • Nilai t ≈ 5,31
  • Derajat bebas (df) = 299
  • p-value < 0,001

Keputusan

  • Pada α = 0,05, p-value < α, sehingga Hipotesis nol (H₀) ditolak

Kesimpulan

  • Rata-rata tekanan darah pasien berbeda secara signifikan dari 120 mmHg
  • Nilai rata-rata tekanan darah pasien lebih tinggi dari normal
  • Hasil konsisten dengan CI 95% karena 120 mmHg tidak berada dalam interval kepercayaan

Chapter 10

Nonparametric Methods

Metode Statistik Nonparametrik

Definisi: Analisis data yang tidak memerlukan asumsi distribusi tertentu (distribution-free), cocok untuk data kecil, ordinal/nominal, atau mengandung outlier.

Dasar Teoritis: Berbasis peringkat, tanda, atau frekuensi, bukan mean/varians → lebih robust dibanding metode parametrik.

Contoh Uji & Penggunaan:
  • Satu sampel / data berpasangan: Sign Test, Wilcoxon Signed-Rank
  • Dua sampel independen: Mann–Whitney U
  • Lebih dari dua kelompok: Kruskal–Wallis
  • Data kategorik: Chi-Square Test

Kesimpulan: Stabil untuk data tidak ideal, tapi daya uji lebih rendah bila asumsi parametrik terpenuhi.

Uji Wilcoxon Signed-Rank — Tekanan Darah

Metode: Digunakan karena tidak memerlukan asumsi normal, untuk menguji median tekanan darah terhadap 120 mmHg.

Perhitungan Konseptual: Hitung selisih tiap pasien di = Xi − 120, ambil |di|, urutkan & beri ranking, kembalikan tanda (+/−), jumlahkan ranking positif & negatif → statistik uji W.

Hipotesis: H₀: Median = 120 mmHg, H₁: Median ≠ 120 mmHg

Hasil: W = 15.682, p-value = 0,00000456

Kesimpulan: Median tekanan darah pasien berbeda signifikan dari 120 mmHg, konsisten dengan Confidence Interval dan uji t satu sampel.

Dataset

Table

All About Basic Visualizations

## Column

Pie-Chart

Interpretasi

Berdasarkan grafik, mayoritas pasien berada pada kategori Sehat, yaitu sebesar 60% dari total pasien. Hal ini menunjukkan bahwa lebih dari setengah pasien dalam dataset tidak memiliki gangguan tekanan darah.

Selanjutnya, kategori Hipertensi menempati proporsi terbesar kedua dengan persentase 26%, yang berarti sekitar seperempat pasien sudah mengalami hipertensi. Sementara itu, kategori Pra-Hipertensi memiliki proporsi paling kecil, yaitu 14%, namun tetap menunjukkan adanya kelompok pasien yang berisiko berkembang menjadi hipertensi.

Secara keseluruhan, grafik ini menggambarkan bahwa meskipun sebagian besar pasien masih dalam kondisi sehat, jumlah pasien dengan gangguan tekanan darah cukup signifikan dan perlu mendapat perhatian.

Bar-Chart

Interpretasi
  • Normal (n = 119) Mayoritas pasien memiliki BMI ideal dan relatif sehat.

  • Kurus (n = 19) Paling sedikit, tetap perlu diperhatikan karena risiko kesehatan akibat kekurangan berat badan.

  • Overweight (n = 68) & Obesitas (n = 94) Cukup signifikan, menunjukkan risiko kesehatan terkait kelebihan berat badan.

  • Kesimpulan Sebagian besar pasien sehat, tetapi kelompok berisiko (Underweight, Overweight, Obese) tetap memerlukan perhatian khusus dalam edukasi gizi dan program kesehatan.

Line-Chart

Interpretasi

Berdasarkan grafik, tidak terlihat tren meningkat atau menurun yang konsisten pada total jumlah kunjungan rumah sakit dari waktu ke waktu. Grafik menunjukkan bahwa jumlah kunjungan mengalami naik dan turun, dengan beberapa tanggal mengalami peningkatan kunjungan dan tanggal lainnya mengalami penurunan.

Kondisi ini menandakan bahwa kunjungan pasien bersifat tidak stabil dan cenderung berubah-ubah setiap harinya, tanpa pola tren jangka panjang yang jelas. Dengan demikian, grafik ini menunjukkan bahwa beban kunjungan rumah sakit tidak mengikuti tren tertentu, melainkan dipengaruhi oleh variasi kebutuhan layanan kesehatan pada waktu tertentu.

Central_Tendency

Interpretasi Central Tendency (Umur & BMI)

Umur: Nilai mean (45,21) dan median (45) yang berdekatan menunjukkan bahwa distribusi umur relatif simetris dan tidak dipengaruhi oleh nilai ekstrem (n = 300).

BMI: Nilai mean (26,11) dan median (25,9) yang hampir sama menandakan sebaran BMI cukup seimbang, dengan kecenderungan berada pada kategori overweight ringan.

Kesimpulan: Ukuran mean, median, dan modus mampu merepresentasikan karakteristik umum data pasien dengan baik.

Statistical Dispersion

Interpretasi Histogram Umur Pasien

Histogram menampilkan distribusi umur pasien berdasarkan rentang usia tertentu, sehingga memperlihatkan bagaimana data tersebar dari umur termuda hingga tertua. Kurva densitas yang berada di atas histogram membantu menunjukkan pola kepadatan data secara lebih halus, sementara garis vertikal putus-putus menandai nilai rata-rata umur sebagai titik pusat data.

Dari visualisasi ini dapat dilihat bahwa umur pasien memiliki penyebaran yang cukup luas dengan variasi yang jelas di setiap kelompok usia, sehingga menunjukkan bahwa data umur tidak terkonsentrasi pada satu nilai saja dan bersifat heterogen.

Probability Distributions

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  18.00   32.00   45.00   45.21   59.00   74.00 
Interpretasi Distribusi Umur Pasien

Berdasarkan tabel ringkasan dan visualisasi histogram, umur pasien berada pada rentang 18 hingga 74 tahun, dengan konsentrasi terbesar pada kelompok usia dewasa. Nilai median sebesar 45 tahun dan rata-rata 45,21 tahun yang hampir sama menunjukkan bahwa distribusi umur relatif simetris dan tidak didominasi oleh nilai ekstrem. Sebaran umur yang cukup luas menandakan adanya keragaman usia pasien yang baik dalam data.

Distribusi yang stabil ini menunjukkan bahwa variabel umur layak dianalisis lebih lanjut menggunakan metode statistik. Dalam kaitannya dengan distribusi sampling, jika dilakukan pengambilan sampel secara acak dan dihitung nilai rataan sampelnya, maka distribusi rataan tersebut akan cenderung mengikuti distribusi normal. Hal ini sesuai dengan Central Limit Theorem, yang menyatakan bahwa dengan ukuran sampel yang cukup besar, distribusi rataan sampel akan mendekati normal meskipun distribusi populasi asalnya tidak sepenuhnya normal.

Confidence Interval

Interpretasi:

Rata-rata tekanan darah sampel adalah 125,60 mmHg. Interval kepercayaan 95% menunjukkan bahwa rata-rata tekanan darah populasi diperkirakan berada di dalam rentang CI 95% (LCL–UCL) yang mengelilingi nilai mean tersebut. Artinya, dengan tingkat kepercayaan 95%, estimasi mean cukup presisi dan terpusat di sekitar 125,60 mmHg.

Makna statistik:

Penggunaan t-test (df = 299) tepat karena mean populasi tidak diketahui dan ukuran sampel besar. Area biru menggambarkan ketidakpastian estimasi, sedangkan garis putus-putus menunjukkan nilai rata-rata sampel.

Refleksi singkat:

CI yang relatif sempit menandakan variabilitas terkendali dan estimasi mean yang stabil, namun interval ini bukan berarti 95% data berada di dalam rentang tersebut, melaink

Statistical Inference

Interpretasi

Grafik menunjukkan hasil uji t satu sampel yang membandingkan rata-rata tekanan darah pasien dengan nilai acuan 120 mmHg menggunakan distribusi t. Daerah penolakan hipotesis nol (H₀) ditunjukkan oleh area berarsir merah pada kedua sisi kurva dengan batas t-kritis ±1,97 pada taraf signifikansi 0,05. Nilai t-hitung sebesar 5,31 berada jauh di luar daerah penerimaan H₀, sehingga menunjukkan perbedaan yang signifikan. Selain itu, p-value < 0,001 memperkuat keputusan untuk menolak H₀. Dengan demikian, dapat disimpulkan bahwa rata-rata tekanan darah pasien dalam dataset secara statistik berbeda dan secara signifikan lebih tinggi dibandingkan 120 mmHg.

Nonparametric Methods

Interpretasi Boxplot Tekanan Darah

Berdasarkan boxplot, median tekanan darah pasien terlihat berada di atas nilai normal populasi 120 mmHg. Sebagian besar sebaran data juga berada di atas nilai tersebut, meskipun terdapat beberapa nilai di bawah 120 mmHg.

Hal ini menunjukkan bahwa tekanan darah pasien cenderung lebih tinggi dibandingkan nilai normal. Secara visual, hasil ini konsisten dengan uji Wilcoxon Signed-Rank yang menolak hipotesis nol, sehingga dapat disimpulkan bahwa median tekanan darah pasien berbeda secara signifikan dari 120 mmHg.

Berdasarkan boxplot, median tekanan darah pasien terlihat berada di atas nilai normal populasi 120 mmHg. Sebagian besar sebaran data juga berada di atas nilai tersebut, meskipun terdapat beberapa nilai di bawah 120 mmHg.

Hal ini menunjukkan bahwa tekanan darah pasien cenderung lebih tinggi dibandingkan nilai normal. Secara visual, hasil ini konsisten dengan uji Wilcoxon Signed-Rank yang menolak hipotesis nol, sehingga dapat disimpulkan bahwa median tekanan darah pasien berbeda secara signifikan dari 120 mmHg.

Confidence Interval

Case Study Example

Apakah rata-rata tekanan darah pasien dalam dataset berbeda secara signifikan dari nilai normal populasi (120 mmHg)?

1️⃣ Tujuan

Mengestimasi nilai rata-rata tekanan darah populasi (μ) berdasarkan data yang diperoleh dari sampel.

2️⃣ Data & Statistik Sampel

\(n = 300\)

\(\bar{x} = 125{,}60\)

\(s = 18{,}28\)

3️⃣ Tingkat Kepercayaan

  • Confidence level: 95%
  • Tingkat signifikansi:
    \(\alpha = 0{,}05\)

4️⃣ Metode yang Digunakan

  • Confidence Interval untuk mean dengan distribusi t
  • Alasan: simpangan baku populasi tidak diketahui, sehingga menggunakan simpangan baku sampel

5️⃣ Rumus Confidence Interval

\[df = n - 1 = 299\]

\[ CI = \bar{x} \pm t_{\alpha/2,\,n-1} \times \frac{s}{\sqrt{n}} \]

6️⃣ Perhitungan

\[ t_{0{,}025,299} \approx 1{,}97 \]

\[ SE = \frac{18{,}28}{\sqrt{300}} \approx 1{,}06 \]

\[ ME = 1{,}97 \times 1{,}06 \approx 2{,}08 \]

7️⃣ Hasil Confidence Interval

\[ CI = 125{,}60 \pm 2{,}08 \]

\[ CI_{95\%} = [123{,}52,\;127{,}68] \]

8️⃣ Interpretasi

Rata-rata tekanan darah populasi berada pada 123,52–127,68 mmHg (CI 95%). Karena 120 mmHg tidak termasuk, tekanan darah pasien lebih tinggi dari normal.

Statistical Inference

Case Study Example

Apakah rata-rata tekanan darah pasien dalam dataset berbeda secara signifikan dari nilai normal populasi (120 mmHg)?

1️⃣ Hipotesis

  • H₀ (Hipotesis nol):
    μ = 120
    (rata-rata tekanan darah populasi sama dengan nilai normal)

  • H₁ (Hipotesis alternatif):
    μ ≠ 120
    (rata-rata tekanan darah populasi berbeda dari nilai normal)

  • Digunakan uji t satu sampel karena data bersifat numerik kontinu dan simpangan baku populasi tidak diketahui.

2️⃣ Statistik Uji

  • Hitung statistik uji t dari data

\[ t = \frac{\bar{x} - \mu_0}{s/\sqrt{n}} = \frac{125{,}60 - 120}{18{,}28/\sqrt{300}} \approx 5{,}31 \]

  • Tentukan derajat bebas

\[ df = n - 1 = 299 \]

  • Tentukan p-value (uji dua sisi)

\[ p = 2 \times P(T_{299} \ge |5{,}31|) \]

  • Hasil

\[ p < 0{,}001 \]

3️⃣ Keputusan

Pada tingkat signifikansi \(\alpha = 0{,}05\), diperoleh \(p\text{-value} < 0{,}05\). Oleh karena itu, hipotesis nol (H₀) ditolak.

4️⃣ Kesimpulan

Terdapat perbedaan yang signifikan secara statistik antara rata-rata tekanan darah populasi pasien dan nilai normal 120 mmHg. Rata-rata tekanan darah pasien lebih tinggi dari normal.

Koneksi dengan Confidence Interval:

Hasil ini konsisten dengan CI 95%, karena nilai 120 mmHg tidak berada dalam interval \([123{,}52;\ 127{,}68]\).

Nonparametric Methods

Case Study Example

Apakah rata-rata tekanan darah pasien dalam dataset berbeda secara signifikan dari nilai normal populasi (120 mmHg)?

Metode

Analisis dilakukan menggunakan uji nonparametrik Wilcoxon Signed-Rank karena metode ini tidak memerlukan asumsi distribusi normal dan digunakan untuk menguji median satu sampel terhadap nilai acuan tertentu.


    Wilcoxon signed rank test

data:  tekanan_darah
V = 29468, p-value = 4.564e-06
alternative hypothesis: true location is not equal to 120
Perhitungan Konseptual

Untuk setiap pasien dihitung:

di = Xi - 120

Langkah Wilcoxon:

  1. Hitung selisih (di)
  2. Buang (di = 0) (tidak ada pada data ini)
  3. Ambil nilai absolut (|di|)
  4. Urutkan & beri ranking
  5. Kembalikan tanda (+ / −)
  6. Jumlahkan ranking positif & negatif
  7. Statistik uji W dihitung dari keseimbangan ranking
Hipotesis
  • H₀: Median tekanan darah pasien = 120 mmHg
  • H₁: Median tekanan darah pasien ≠ 120 mmHg
Hasil Uji
  • Statistik Wilcoxon (W) = 15.682
  • p-value = 0,00000456

Keputusan

Terdapat perbedaan yang signifikan secara statistik antara median tekanan darah pasien dan nilai normal 120 mmHg. Hasil ini konsisten dengan:
  • Confidence Interval
  • Uji t satu sampel
---
title: "UAS StatDas"
output: 
  flexdashboard::flex_dashboard:
    vertical_layout: scroll
    theme: yeti
    source_code: embed
css: style.css
---


  
```{r setup, include=FALSE}
packages <- c(
  "flexdashboard",
  "tidyverse",
  "highcharter",
  "viridis",
  "DT",
  "gapminder",
  "jsonlite"
)

installed <- packages %in% rownames(installed.packages())
if (any(!installed)) {
  install.packages(packages[!installed])
}

# Load library
library(flexdashboard)
library(tidyverse)
library(highcharter)
library(viridis)
library(DT)
library(gapminder)
library(jsonlite)
```

Members {data-orientation=rows}
=======================================================================

<div class="faculty-box">  
  <div class="faculty-left">  
  
  <img src="pak-bakti.jpg" alt="Dosen" class="faculty-photo">  
  <p class="faculty-name">Dosen Pengampu</p>
  <p class="faculty-name">Bakti Siregar, M.Sc.,CDS.</p>  
  </div>  
  
  <div class="faculty-center">  
  <h2>Program Studi Sains Data</h2>
  <h2>MEMBERS GROUP</h2>  
  </div>  
  
  <div class="faculty-right">
  <img src="itsb.png" alt="Logo Univ" class="faculty-logo">
  <p class="faculty-name">Institut Teknologi Sains Bandung</p>
  </div>

</div>

<div class="group-container">

  <!-- ANGGOTA 1 -->
  <div class="group-profile-card">
  
  <img src="C:/Users/nulin/OneDrive/Lampiran/FINAL EXAM/foto rizki.jpeg" class="group-photo">
  
  <div class="group-names">
  <h3>Ahmad Rizki Mubarak</h3>
  <p>NIM: 52250036</p>
  
  </div>
  
  <div class="group-tasks">
  <h3>Tugas</h3>
  <p>Summary 3 & 8, Basic Visualisasi (Central Tendency), Confidence Intervals, Nonparametric</p>
  
  </div>
  </div>

  <!-- ANGGOTA 2 -->
  <div class="group-profile-card">
  
  <img src="C:/Users/nulin/OneDrive/Lampiran/FINAL EXAM/foto fifi.jpeg" class="group-photo">
  
  <div class="group-names">
  <h3>Fifi Muthia Pitaloka</h3>
  <p>NIM: 52250038</p>
  
  </div>
  
  <div class="group-tasks">
  <h3>Tugas</h3>
  <p>Summary 2 & 4, Basic Visualisasi (Probability Distribution), Confidence Intervals, Nonparametric</p>
  
  </div>
  </div>

  <!-- ANGGOTA 3 -->
  <div class="group-profile-card">
  
  <img src="C:/Users/nulin/OneDrive/Lampiran/FINAL EXAM/foto clara.jpeg" class="group-photo">
  
  <div class="group-names">
  <h3>Clara Maisie Wanghili</h3>
  <p>NIM: 52250039</p>
  
  </div>
  
  <div class="group-tasks">
  <h3>Tugas</h3>
  <p>Summary 7 & 9, Basic Visualisasi (Statistical Dispersion), Confidence Intervals, Nonparametric</p>
  
  </div>
  </div>

  <!-- ANGGOTA 4 -->
  
<div class="group-profile-card">
  
  <img src="C:/Users/nulin/OneDrive/Lampiran/FINAL EXAM/foto ulin.jpeg" class="group-photo">
  
  <div class="group-names">
  <h3>Ulin Nikmah</h3>
  <p>NIM: 52250042</p>
  
  </div>
  
  <div class="group-tasks">
  <h3>Tugas</h3>
  <p>Summary 5 & 10, Basic Visualisasi (Bar Chart), Statistical Inference, Nonparametric</p>
  
  </div>
  </div>
  
  <!-- ANGGOTA 5 -->
  <div class="group-profile-card">
  
  <img src="C:/Users/nulin/OneDrive/Lampiran/FINAL EXAM/foto nazwa.jpeg" class="group-photo">
  
  <div class="group-names">
  <h3>Nazwa Nur Ramadhani</h3>
  <p>NIM: 52250045</p>
  
  </div>
  
  <div class="group-tasks">
  <h3>Tugas</h3>
  <p>Summary 1 & 6, Basic Visualisasi (Pie Chart & Line Chart), Statistical Inference, Nonparametric</p>
  
  </div>
  </div>

</div>

Summary of Basic Statistics {data-orientation=rows}
=======================================================================
  
## Column {.tabset .tabset-fade data-height=520}
-----------------------------------------------------------------------

### Chapter 1 {data-width=1200}

Intro to Statistics
<div class="materi-row">

  <div class="materi-box materi-blue">
  **Permasalahan Statistik Utama**
  
Statistik adalah ilmu tentang cara mengumpulkan, menganalisis, dan menginterpretasi data agar dapat membuat keputusan yang lebih tepat berdasarkan data. 
Dalam dataset pasien ini, permasalahan statistik utama adalah menganalisis kondisi kesehatan pasien secara menyeluruh serta mengidentifikasi faktor-faktor yang berhubungan dengan status penyakit pasien. 

Dataset mencakup variabel umur, jenis kelamin, tekanan darah, BMI, kategori BMI, jumlah kunjungan rumah sakit, dan status penyakit, sehingga analisis difokuskan pada bagaimana karakteristik tersebut berkaitan dengan variasi status penyakit pasien, seperti kondisi sehat, pra-hipertensi, dan hipertensi, serta pola kesehatan pasien yang dapat terlihat dari data yang ada.

  </div>

  <div class="materi-box materi-blue">
  **Jenis Statistik**
  
Jenis statistik yang digunakan dalam analisis dataset ini adalah statistik deskriptif dan statistik inferensial. 
Statistik deskriptif digunakan untuk merangkum dan menggambarkan data pasien, seperti rata-rata umur, tekanan darah, dan BMI, serta distribusi jenis kelamin dan status penyakit. 
Sementara itu, statistik inferensial digunakan untuk menguji hubungan atau perbedaan antar variabel, misalnya hubungan antara BMI atau umur dengan status penyakit, sehingga dapat ditarik kesimpulan berdasarkan data sampel pasien.

  </div>
</div>

### Chapter 2 {data-width=1200}

Data Exploration

<div class="materi-row">

  <div class="materi-box materi-blue">
  **Data Exploration**
  
  Eksplorasi data dilakukan untuk memahami karakteristik awal data pasien sebelum dilakukan analisis statistik lanjutan. Pada tahap ini, fokus utama adalah mengamati kecenderungan nilai pusat, sebaran data, serta pola umum yang muncul pada variabel numerik.

  </div>
  
  <div class="materi-box materi-blue">
  **Ringkasan Statistik Variabel Numerik**
  
  <p>Variabel numerik utama dalam dataset meliputi Umur, Tekanan Darah, BMI, dan Jumlah Kunjungan Rumah Sakit. Hasil ringkasan statistik menunjukkan bahwa:</p>
  <ul>
    <li>Rata-rata umur pasien berada di sekitar 45 tahun dengan nilai median yang hampir sama, sehingga distribusi usia relatif seimbang.</li>
    <li>Nilai Tekanan Darah dan BMI memiliki rentang yang cukup lebar, yang menunjukkan adanya variasi kondisi kesehatan antar pasien.</li>
    <li>Jumlah Kunjungan Rumah Sakit berada pada rentang 1–6 kali, dengan nilai tengah sekitar 3 kali, yang mengindikasikan sebagian besar pasien memiliki frekuensi kunjungan sedang.</li>
  </ul>
  </div>
  
  <div class="materi-box materi-blue">
  **Pola Awal dan Anomali**
  
<p>Sebagian besar data terkonsentrasi di sekitar nilai tengah, terutama pada variabel umur dan jumlah kunjungan rumah sakit, sehingga pola distribusi terlihat cukup stabil. Namun, terdapat beberapa pasien dengan nilai umur, BMI, atau tekanan darah yang relatif tinggi dibandingkan mayoritas data. Nilai-nilai tersebut berpotensi merupakan outlier dan perlu diperhatikan karena dapat memengaruhi hasil analisis statistik pada tahap selanjutnya.</p>

  </div>
</div>
### Chapter 3 {data-width=1200}

Basic Visualizations

**Berdasarkan karakteristik dataset pasien, ini adalah beberapa visualisasi yang paling relevan:**
<div class="materi-row">

  <div class="materi-box materi-blue">
   **Pie Chart: Distribusi Status Penyakit Pasien**
  
  Menampilkan proporsi **Status_Penyakit** (Sehat, Hipertensi, Pra-Hipertensi). Efektif untuk melihat kategori mana yang mendominasi dan membantu identifikasi distribusi kondisi kesehatan pasien secara keseluruhan. Visual sederhana dan mudah dipahami untuk data kategorikal.
  </div>
  
  <div class="materi-box materi-blue">
  **Bar Chart: Jumlah Pasien Berdasarkan Kategori BMI**
  
  Membandingkan frekuensi antar kategori **Kategori_BMI** (Kurus, Normal, Overweight, Obesitas). Tinggi bar memudahkan identifikasi kategori dengan jumlah pasien terbanyak. Berguna untuk analisis kesehatan populasi dan perencanaan program intervensi gizi.

  </div>
  
  <div class="materi-box materi-blue">
  **Line Chart: Tren Kunjungan Rumah Sakit Berdasarkan Waktu**
  
  Menampilkan tren **Jumlah_Kunjungan_RS** sepanjang waktu berdasarkan tanggal. Membantu identifikasi pola kunjungan (peningkatan, penurunan, fluktuasi) dan mendukung perencanaan kapasitas serta alokasi sumber daya rumah sakit.

  </div>
  
  <div class="materi-box materi-blue">
  **Histogram: Distribusi Umur Pasien**
  
  <p>
    Histogram digunakan untuk menampilkan distribusi <em>umur pasien</em> dengan menunjukkan frekuensi pada setiap rentang umur. Visualisasi ini memudahkan melihat sebaran dan pola data umur secara keseluruhan. Histogram dipilih karena umur merupakan variabel numerik kontinu, sehingga paling tepat dianalisis menggunakan distribusi frekuensi untuk memahami karakteristik dasar data sebelum analisis statistik lanjutan.
  </p>
  

  </div>
</div>
### Chapter 4  {data-width=1200}

Central Tendency

<div class="materi-row">

  <div class="materi-box materi-blue">
  **Central Tendency**
  
  <p>
  <strong>Central tendency</strong> merupakan ukuran statistik yang digunakan untuk mewakili nilai pusat dari suatu kumpulan data.
  Tiga ukuran utama dalam central tendency yaitu <strong>mean</strong> (rata-rata),
  <strong>median</strong> (nilai tengah setelah data diurutkan), dan
  <strong>modus</strong> (nilai yang paling sering muncul).
</p>

<p>
  Ketiga ukuran ini digunakan untuk menggambarkan kecenderungan pusat data,
  membantu memahami karakteristik umum data, serta memudahkan perbandingan
  antar variabel numerik.
</p>


  </div>
  <div class="materi-box materi-blue">
  **1. Variabel Umur**
  
  **Mean (Rata-rata)**
  \[
  \bar{x} = \frac{\sum \text{Umur}}{n} = \frac{\text{13.563}}{300} \approx 45,21
  \]
  
  **Median (Nilai Tengah)**
  \[
  \text{Median} = \frac{x_{150} + x_{151}}{2}
  \]
  \[
  \text{Median} = \frac{45 + 45}{2} = 45
  \]

  
  **Modus (Nilai yang Paling Sering Muncul)**
  
  \[
  \text{Modus} = 53 \text{ tahun}
  \]
  </div>
  
  <div class="materi-box materi-blue">
  **2. Variabel BMI**

  **Mean (Rata-rata)**
  \[
  \bar{x} = \frac{\sum \text{BMI}}{n} = \frac{\text{7.767}}{300} \approx 26,11
  \]
  
  **Median (Nilai Tengah)**
  \[
  \text{Median} = \frac{x_{150} + x_{151}}{2}
  \]
  \[
  \text{Median} = \frac{25,9 + 25,9}{2} = 25,9
  \]
  
  **Modus (Nilai yang Paling Sering Muncul)**
  \[
  \text{Modus} \approx 22,4
  \]

  </div>
  
  <div class="materi-box materi-blue">
  <p><strong>Perbandingan dan Interpretasi</strong></p>
  
  - Nilai <strong>mean</strong> dan <strong>median</strong> pada variabel <strong>umur</strong> (45,21 dan 45) sangat berdekatan, menunjukkan distribusi usia relatif simetris dan tidak dipengaruhi oleh nilai ekstrem.
  - Pada variabel <strong>BMI</strong>, mean dan median (26,11 dan 22,4) juga hampir sama, menandakan sebaran BMI cukup seimbang dengan kecenderungan <strong>overweight ringan</strong>.
  - Perbedaan kecil antara mean, median, dan modus menunjukkan bahwa ukuran pemusatan ini mampu merepresentasikan karakteristik umum pasien dengan baik.</p>

  </div>
</div>
### Chapter 5 {data-width=1200}

Statistical Dispersion 

<div class="materi-row">

  <div class="materi-box materi-blue">
  **Statistical Dispersion**
  
  Statistical dispersion adalah ukuran untuk menggambarkan tingkat penyebaran data terhadap nilai pusatnya. Ukuran ini membantu menentukan apakah data bersifat homogen atau heterogen, sehingga analisis tidak hanya bergantung pada nilai rata-rata.
  
  Ukuran dispersion yang umum digunakan meliputi range, variance, dan standard deviation, yang masing-masing menunjukkan rentang data, tingkat variasi, dan besar penyimpangan data dari nilai pusat.

  </div>

  <div class="materi-box materi-blue">
  **Rumus Statistical Dispersion**
  
  1️⃣**Range**
  adalah eselisih antara nilai terbesar dan nilai terkecil dalam suatu data.
  
  \[
  \text{Range} = X_{\text{max}} - X_{\text{min}}
  \]
  
  
  
  2️⃣**Variance (Sampel) **
  adalah rata-rata kuadrat selisih setiap data terhadap nilai rata-rata sampel.
  
  \[
  s^2 = \frac{\sum (x_i - \bar{x})^2}{n - 1}
  \]
  
  
  
  3️⃣**Standard Deviation**
  adalah akar dari variance dan memiliki satuan yang sama dengan data aslinya.
  
  \[
  s = \sqrt{s^2}
  \]
  </div>

  <div class="materi-box materi-blue">
  **Perhitungan Statistical Dispersion (Variabel Umur)**
  
  Diketahui:
  - Umur minimum = 18  
  - Umur maksimum = 74  
  - Mean umur (\(\bar{x}\)) = 45,3  
  - Jumlah data (\(n\)) = 100  

  ---
  
  1️⃣ Range
  
  \[
  \text{Range} = 74 - 18 = 56
  \]
  
  ---
  
  2️⃣ Variance
  
  
  \[
  s^2 = 264{,}47
  \]
  
  ---
  
  3️⃣ Standard Deviation
  
  
  \[
  s = \sqrt{264{,}47} = 16{,}26
  \]
  </div>

  <div class="materi-box materi-blue">
  **Interpretasi**
  
  <p>Nilai <strong>range</strong> yang besar, yaitu 56, menunjukkan bahwa data umur tersebar dalam rentang usia yang luas. Nilai <strong>variance</strong> dan <strong>standard deviation</strong> yang relatif tinggi menandakan bahwa umur pasien memiliki variasi yang cukup besar dan tidak terkonsentrasi di sekitar nilai rata-rata.</p>
  <p>Dengan demikian, data umur dapat dikatakan bersifat <strong>heterogen</strong>, sehingga variasi ini penting untuk dipertimbangkan dalam analisis statistik lanjutan, seperti pengelompokan data, analisis regresi, maupun pengujian hipotesis.</p>
  </div>

</div>

### Chapter 6 {data-width=1200}

Essentials of Probability


<div class="materi-row">

  <div class="materi-box materi-blue">
  **Pendahuluan**
  
  Probability (peluang) adalah konsep dasar dalam statistika yang digunakan untuk mengukur kemungkinan terjadinya suatu kejadian dalam ruang sampel. Nilai peluang berada antara 0 dan 1, di mana 0 menunjukkan kejadian yang mustahil dan 1 menunjukkan kejadian yang pasti.

  Dalam analisis data, peluang digunakan untuk menilai kemungkinan suatu kondisi terjadi dengan membandingkan jumlah kejadian tertentu terhadap total pengamatan.


  </div>
  <div class="materi-box materi-blue">
  
  **Event**
  
  Satu event yang relevan dari dataset pasien adalah pasien memiliki status penyakit hipertensi. Event ini dipilih karena status penyakit merupakan variabel utama yang menggambarkan kondisi kesehatan pasien dan menjadi fokus analisis dalam dataset.
  
  </div>

  <div class="materi-box materi-blue">
  
  **Peluang**
  
  \[
  A = \text{Pasien memiliki status penyakit Hipertensi}
  \]

  \textbf{Perhitungan Peluang}

  Jumlah seluruh pasien dalam dataset adalah sebanyak $300$ pasien, sedangkan jumlah pasien dengan status penyakit   hipertensi adalah $78$ pasien. Peluang terjadinya event $A$ dihitung dengan rumus:
  \[
  P(A) = \frac{\text{Jumlah pasien hipertensi}}{\text{Jumlah seluruh pasien}}
  \]
  \[
  P(A) = \frac{78}{300} = 0{,}26
  \]

  </div>
  
  <div class="materi-box materi-blue">
  **Interpretasi**
  
  Dari total 300 pasien dalam dataset, sekitar <strong>26%</strong> pasien memiliki status penyakit hipertensi,     sehingga peluang terjadinya event pasien mengalami hipertensi adalah <strong>0,26</strong>.
  
  Nilai peluang ini menunjukkan bahwa kemungkinan seorang pasien yang dipilih secara acak dari dataset mengalami   hipertensi adalah sebesar 26%. Dengan kata lain, sekitar dua hingga tiga dari setiap sepuluh pasien dalam dataset memiliki kondisi hipertensi, yang menunjukkan bahwa hipertensi merupakan masalah kesehatan yang cukup signifikan pada data pasien tersebut.


  </div>

</div>

### Chapter 7 {data-width=1200}

Probability Distributions 

<div class="materi-row">

  <div class="materi-box materi-blue">
  <p>
    Distribusi probabilitas merupakan konsep statistik yang digunakan untuk menggambarkan bagaimana peluang suatu kejadian atau nilai tersebar pada seluruh kemungkinan hasil dari sebuah variabel acak, baik diskret maupun kontinu. Konsep ini menjadi dasar penting dalam statistik karena digunakan untuk memahami perilaku data, menghitung probabilitas, serta membangun distribusi sampel dan distribusi sampling.
  </p>
  </div>
  
  <div class="materi-box materi-blue">
  <p>
    Variabel acak diskret memiliki nilai-nilai yang terpisah dan terbatas, sedangkan variabel acak kontinu dapat mengambil nilai apa pun dalam suatu interval pada garis bilangan riil. Oleh karena itu, pada variabel kontinu probabilitas tidak dinyatakan pada satu nilai tertentu, melainkan dalam bentuk fungsi densitas probabilitas (<em>Probability Density Function</em> / PDF) dan dihitung pada suatu rentang nilai. Pemahaman mengenai distribusi probabilitas juga berkaitan erat dengan <em>Central Limit Theorem</em>, yang menyatakan bahwa distribusi statistik, seperti rata-rata sampel, akan mendekati distribusi normal apabila ukuran sampel cukup besar, terlepas dari bentuk distribusi populasi asalnya.
  </p>
  </div>
  
  <div class="materi-box materi-blue">
  <p>
    Sebagai penerapan konsep distribusi probabilitas, dilakukan visualisasi distribusi untuk salah satu variabel numerik, yaitu umur pasien, menggunakan histogram. Histogram tersebut menampilkan sebaran frekuensi umur pasien ke dalam beberapa interval kelas. Secara deskriptif, distribusi umur terlihat menyebar dari usia muda hingga usia lanjut, dengan satu puncak utama yang menunjukkan umur yang paling sering muncul. Bentuk distribusi bersifat unimodal dan relatif menyebar, tanpa adanya lonjakan ekstrem pada satu nilai tertentu, sehingga mencerminkan variasi data numerik yang cukup beragam dalam sampel.
  </p>
  </div>
</div>
### Chapter 8 {data-width=1200}

Confidence Interval 
<div class="materi-row">

  <div class="materi-box materi-blue">
  **Pengantar CI** 
  
  Confidence Interval (CI) adalah rentang nilai yang digunakan untuk memperkirakan parameter populasi dari data sampel. CI 95% berarti kita 95% yakin rata-rata populasi berada di dalam interval tersebut. Dalam konteks medis, CI membantu menilai apakah rata-rata tekanan darah pasien berbeda dari standar normal.
  
  **Pertanyaan Penelitian**  
  Apakah rata-rata tekanan darah pasien berbeda signifikan dari nilai normal populasi 120 mmHg?
  
  **Data & Statistik Dasar**  
  - Jumlah sampel (n): 300 pasien  
  - Rata-rata (Mean, \(\bar{x}\)): 126,08 mmHg  
  - Simpangan baku (SD, s): 19,21 mmHg  
  </div>
  
  <div class="materi-box materi-blue">
  **Perhitungan Standard Error (SE)**  
  
  \[
  SE = \frac{s}{\sqrt{n}} = \frac{19,21}{\sqrt{300}} \approx 1,109
  \]
  
  \[
  ME = t_{0,025, 299} \times SE = 1,968 \times 1,109 \approx 2,182
  \]
  
  **Confidence Interval 95%**  
  \[
  CI = \bar{x} \pm ME = 126,08 \pm 2,182
  \]
  \[
  CI = (123,90, 128,26) \text{ mmHg}
  \]
  </div>
  
  <div class="materi-box materi-blue">
  **Interpretasi**
  
  - Rata-rata tekanan darah populasi pasien diperkirakan berada di 123,90 – 128,26 mmHg.  
  - Nilai normal 120 mmHg berada di luar CI, artinya tekanan darah pasien secara signifikan lebih tinggi.  
  - Indikasi: risiko prehipertensi atau hipertensi → perlu intervensi kesehatan. 
  
  </div>
  
</div>


### Chapter 9  {data-width=1200}

Statistical Inference

<div class="materi-row">

  <div class="materi-box materi-blue">
  <p>
    Statistical inference merupakan proses penarikan kesimpulan mengenai populasi berdasarkan informasi yang diperoleh dari sampel. Pada data pasien ini, inferensi statistik digunakan untuk menarik kesimpulan tentang karakteristik kesehatan populasi pasien, seperti tekanan darah atau umur, berdasarkan data sampel yang tersedia. Proses ini dilakukan melalui pengujian hipotesis yang melibatkan perumusan hipotesis nol, hipotesis alternatif, pemilihan uji statistik yang sesuai, dan pengambilan keputusan berdasarkan nilai p.
  </p>
  </div>
  
  <div class="materi-box materi-blue">
  <h3>Hipotesis</h3>
<ul>
  <li>H₀: μ = 120 (rata-rata tekanan darah sama dengan nilai normal)</li>
  <li>H₁: μ ≠ 120 (rata-rata tekanan darah berbeda dari nilai normal)</li>
</ul>

<h3>Statistik Uji</h3>
<ul>
  <li>Uji yang digunakan: uji t satu sampel</li>
  <li>Nilai t ≈ 5,31</li>
  <li>Derajat bebas (df) = 299</li>
  <li>p-value &lt; 0,001</li>
</ul>

<h3>Keputusan</h3>
<ul>
  <li>Pada α = 0,05, p-value &lt; α, sehingga Hipotesis nol (H₀) ditolak</li>
</ul>

<h3>Kesimpulan</h3>
<ul>
  <li>Rata-rata tekanan darah pasien berbeda secara signifikan dari 120 mmHg</li>
  <li>Nilai rata-rata tekanan darah pasien lebih tinggi dari normal</li>
  <li>Hasil konsisten dengan CI 95% karena 120 mmHg tidak berada dalam interval kepercayaan</li>
</ul>

  </div>
</div>
### Chapter 10  {data-width=1200}

Nonparametric Methods

<div class="materi-row">

  <div class="materi-box materi-blue">
  **Metode Statistik Nonparametrik**

  **Definisi:**  Analisis data yang tidak memerlukan asumsi distribusi tertentu (distribution-free), cocok untuk data kecil, ordinal/nominal, atau mengandung outlier.<br>
  
  <strong>Dasar Teoritis:</strong> Berbasis peringkat, tanda, atau frekuensi, bukan mean/varians → lebih robust dibanding metode parametrik.<br>
  
  <strong>Contoh Uji & Penggunaan:</strong>
  <ul>
    <li>Satu sampel / data berpasangan: Sign Test, Wilcoxon Signed-Rank</li>
    <li>Dua sampel independen: Mann–Whitney U</li>
    <li>Lebih dari dua kelompok: Kruskal–Wallis</li>
    <li>Data kategorik: Chi-Square Test</li>
  </ul>
  
  <strong>Kesimpulan:</strong> Stabil untuk data tidak ideal, tapi daya uji lebih rendah bila asumsi parametrik terpenuhi.

  </div>
  
  <div class="materi-box materi-blue">
  <strong>Uji Wilcoxon Signed-Rank — Tekanan Darah</strong>
  <p><strong>Metode:</strong> Digunakan karena tidak memerlukan asumsi normal, untuk menguji median tekanan darah terhadap 120 mmHg.</p>
  <p><strong>Perhitungan Konseptual:</strong> Hitung selisih tiap pasien d<sub>i</sub> = X<sub>i</sub> − 120, ambil |d<sub>i</sub>|, urutkan & beri ranking, kembalikan tanda (+/−), jumlahkan ranking positif & negatif → statistik uji W.</p>
  <p><strong>Hipotesis:</strong> H₀: Median = 120 mmHg, H₁: Median ≠ 120 mmHg</p>
  <p><strong>Hasil:</strong> W = 15.682, p-value = 0,00000456</p>
  <p><strong>Kesimpulan:</strong> Median tekanan darah pasien berbeda signifikan dari 120 mmHg, konsisten dengan Confidence Interval dan uji t satu sampel.</p>
  </div>
  
</div>

</body>
</html>

Dataset {data-orientation=rows}
=======================================================================
  
### Table {data-height=520}

```{r}
library(dplyr)
library(readr)

df <- read_csv(
  "C:/Users/nulin/OneDrive/Lampiran/FINAL EXAM/data pasien final exam.csv",
  show_col_types = FALSE
) %>%
  distinct(ID_Pasien, Tanggal, .keep_all = TRUE)
```

```{r}
library(dplyr)
library(DT)

df1 <- df %>%
  arrange(Tanggal) %>% 
  select(
    Tanggal,
    ID_Pasien,
    Nama_Pasien,
    Umur,
    Jenis_Kelamin,
    Tekanan_Darah,
    BMI,
    Kategori_BMI,
    Jumlah_Kunjungan_RS,
    Status_Penyakit
  )

datatable(
  df1,
  options = list(
    scrollX = TRUE,
    lengthMenu = c(10, 25, 50, 100, 500)
  ),
  caption = htmltools::tags$caption(
    style = 'caption-side: bottom; text-align: center;',
    'Tabel: ',
    htmltools::em('Dataset Kesehatan Pasien (300 Observasi)')
  )
)
```


All About Basic Visualizations {data-orientation=rows}
=======================================================================

## Column {.tabset .tabset-fade data-height=520}
-----------------------------------------------------------------------
  
### Pie-Chart {data-width=600 data-height=510}

<div class="box-row">

  <div class="box coding">
```{r}
library(readr)
library(dplyr)
library(plotly)

# Load data
data <- read_csv("data pasien final exam.csv")

# Hitung jumlah tiap status penyakit
status_counts <- data %>%
  count(Status_Penyakit)

# Donut chart interaktif warna pastel tanpa legend, judul tebal
plot_ly(
  data = status_counts,
  labels = ~Status_Penyakit,
  values = ~n,
  type = "pie",
  hole = 0.5,  
  textinfo = "percent",
  hoverinfo = "label+value+percent",
  marker = list(colors = c("#AEC6CF", "#FFDAC1", "#C7CEEA"))
) %>%
  layout(
    title = list(
      text = "Distribusi Status Penyakit Pasien",
      font = list(
        family = "Arial, sans-serif",
        size = 24,
        color = "black",
        bold = TRUE
      )
    ),
    showlegend = TRUE,
    margin = list(l = 50, r = 50, t = 80, b = 50)
  )

```
</div>

  <div class="box interpretasi">
  <center>**Interpretasi**</center>
  <p>
Berdasarkan grafik, mayoritas pasien berada pada kategori <strong>Sehat</strong>, yaitu sebesar 60% dari total pasien. Hal ini menunjukkan bahwa lebih dari setengah pasien dalam dataset tidak memiliki gangguan tekanan darah.
</p>

<p>
Selanjutnya, kategori <strong>Hipertensi</strong> menempati proporsi terbesar kedua dengan persentase 26%, yang berarti sekitar seperempat pasien sudah mengalami hipertensi. Sementara itu, kategori <strong>Pra-Hipertensi</strong> memiliki proporsi paling kecil, yaitu 14%, namun tetap menunjukkan adanya kelompok pasien yang berisiko berkembang menjadi hipertensi.
</p>

<p>
Secara keseluruhan, grafik ini menggambarkan bahwa meskipun sebagian besar pasien masih dalam kondisi sehat, jumlah pasien dengan gangguan tekanan darah cukup signifikan dan perlu mendapat perhatian.
</p>

  </div>
</div>

### Bar-Chart {data-width=600 data-height=510}
<div class="box-row">

  <div class="box coding">
```{r}

library(ggplot2)
library(plotly)

# Baca data
data_pasien <- read.csv("data pasien final exam.csv")

# Hitung frekuensi berdasarkan Kategori_BMI
bmi_freq <- as.data.frame(table(data_pasien$Kategori_BMI))
colnames(bmi_freq) <- c("Kategori_BMI", "Jumlah")

# Urutkan dari TERENDAH ke TERTINGGI
bmi_freq <- bmi_freq[order(bmi_freq$Jumlah), ]

# Faktor sesuai urutan
bmi_freq$Kategori_BMI <- factor(
  bmi_freq$Kategori_BMI,
  levels = bmi_freq$Kategori_BMI
)

# Offset otomatis (5% dari nilai maksimum)
offset <- max(bmi_freq$Jumlah) * 0.05

# Grafik batang
p <- ggplot(bmi_freq, aes(x = Kategori_BMI, y = Jumlah)) +
  geom_bar(stat = "identity", fill = "#CFE8F3", width = 0.7) +
  geom_text(
    aes(y = Jumlah + offset, label = Jumlah), 
    size = 5,
    fontface = "bold",
    color = "#1F4E79"
  ) +
  labs(
    title = "Jumlah Pasien Berdasarkan Kategori BMI",
    x = "Kategori BMI",
    y = "Jumlah Pasien"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold", size = 16),
    panel.grid.minor = element_blank()
  ) +
  ylim(0, max(bmi_freq$Jumlah) + offset * 2)

# Render interaktif dengan plotly
ggplotly(p) %>% layout(
  autosize = TRUE,
  margin = list(l = 50, r = 50, t = 80, b = 50)
)

```
</code></pre>
  </div>

  <div class="box interpretasi">
  <center>**Interpretasi**</center>
  
  - **Normal (n = 119)**
Mayoritas pasien memiliki BMI ideal dan relatif sehat.

  - **Kurus (n = 19)**
Paling sedikit, tetap perlu diperhatikan karena risiko kesehatan akibat kekurangan berat badan.

  - **Overweight (n = 68) & Obesitas (n = 94)**
Cukup signifikan, menunjukkan risiko kesehatan terkait kelebihan berat badan.

  - **Kesimpulan** 
Sebagian besar pasien sehat, tetapi kelompok berisiko (Underweight, Overweight, Obese) tetap memerlukan perhatian khusus dalam edukasi gizi dan program kesehatan.

  </div>

</div>

### Line-Chart {data-width=600 data-height=510}
<div class="box-row">

  <div class="box coding">
```{r}
# Load libraries
library(readr)
library(dplyr)
library(plotly)
library(lubridate)

# Load data
data <- read_csv("data pasien final exam.csv")

# Ubah kolom tanggal ke format Date
data$Tanggal <- as.Date(data$Tanggal)

# Rekap jumlah kunjungan per tanggal
kunjungan_harian <- data %>%
  group_by(Tanggal) %>%
  summarise(Total_Kunjungan = sum(Jumlah_Kunjungan_RS))

# Line chart interaktif warna pastel
p <- plot_ly(
  data = kunjungan_harian,
  x = ~Tanggal,
  y = ~Total_Kunjungan,
  type = "scatter",
  mode = "lines+markers",
  line = list(color = "#AEC6CF", width = 3),
  marker = list(color = "#FFDAC1", size = 6)
) %>%
  layout(
    title = list(
      text = "<b>Tren Jumlah Kunjungan Rumah Sakit per Tanggal</b>",
      x = 0.5
    ),
    xaxis = list(title = "Tanggal"),
    yaxis = list(title = "Total Kunjungan"),
    showlegend = FALSE
  )

# Atur ukuran / margin saat render
ggplotly(p) %>% layout(
  autosize = TRUE,
  margin = list(l = 50, r = 50, t = 80, b = 50) # kiri, kanan, atas, bawah
)

```
</div>

  <div class="box interpretasi">
<center>**Interpretasi**</center>

  Berdasarkan grafik, tidak terlihat tren meningkat atau menurun yang konsisten pada total jumlah kunjungan rumah sakit dari waktu ke waktu. Grafik menunjukkan bahwa jumlah kunjungan mengalami naik dan turun, dengan beberapa tanggal mengalami peningkatan kunjungan dan tanggal lainnya mengalami penurunan.

  Kondisi ini menandakan bahwa kunjungan pasien bersifat tidak stabil dan cenderung berubah-ubah setiap harinya, tanpa pola tren jangka panjang yang jelas. Dengan demikian, grafik ini menunjukkan bahwa beban kunjungan rumah sakit tidak mengikuti tren tertentu, melainkan dipengaruhi oleh variasi kebutuhan layanan kesehatan pada waktu tertentu.


  </div>
</div>

### Central_Tendency

<div class="box-row">

  <div class="box coding">
```{r}
# ================================
# Bersihkan Environment
# ================================
rm(list = ls())

# ================================
# Library
# ================================
library(readr)
library(dplyr)
library(plotly)

# ================================
# Load Data
# ================================
df <- read_csv(
  "data pasien final exam.csv",
  show_col_types = FALSE
)

# ================================
# Function Visualisasi (NUMERIC ONLY)
# ================================
create_hist_plot <- function(.data, col_name) {
  
  x <- .data[[col_name]]
  x <- x[!is.na(x)]
  
  # Pastikan numeric
  x <- as.numeric(x)
  
  mean_val   <- mean(x)
  median_val <- median(x)
  mode_val   <- as.numeric(names(sort(table(x), decreasing = TRUE)[1]))
  
  dens <- density(x)
  hist_cal <- hist(x, plot = FALSE)
  scale_factor <- max(hist_cal$counts) / max(dens$y)
  
  plot_ly() %>%
    
    # Histogram
    add_histogram(
      x = x,
      nbinsx = 15,
      opacity = 0.6,
      marker = list(color = "#6FB7FF"),
      name = "Histogram"
    ) %>%
    
    # Density Curve
    add_lines(
      x = dens$x,
      y = dens$y * scale_factor,
      name = "Density Curve",
      line = list(width = 3, color = "#0B3C5D")
    ) %>%
    
    # Mean
    add_segments(
      x = mean_val, xend = mean_val,
      y = 0, yend = max(hist_cal$counts),
      name = paste("Mean =", round(mean_val, 2)),
      line = list(color = "red", width = 3)
    ) %>%
    
    # Median
    add_segments(
      x = median_val, xend = median_val,
      y = 0, yend = max(hist_cal$counts),
      name = paste("Median =", round(median_val, 2)),
      line = list(color = "green", width = 3, dash = "dash")
    ) %>%
    
    # Mode
    add_segments(
      x = mode_val, xend = mode_val,
      y = 0, yend = max(hist_cal$counts),
      name = paste("Mode =", round(mode_val, 2)),
      line = list(color = "blue", width = 3, dash = "dot")
    ) %>%
    
    layout(
      title = list(
        text = paste("<b>Distribusi", col_name, "(n =", length(x), ")</b>"),
        x = 0.5
      ),
      xaxis = list(title = col_name),
      yaxis = list(title = "Frekuensi"),
      legend = list(orientation = "h", y = -0.25),
      margin = list(t = 80, b = 80)
    )
}

# ================================
# Tampilkan Visualisasi UMUR
# ================================
create_hist_plot(df, "Umur")

```

</div>

  <div class="box coding">
```{r}
# ================================
# Bersihkan Environment
# ================================
rm(list = ls())

# ================================
# Library
# ================================
library(readr)
library(dplyr)
library(plotly)

# ================================
# Load Data
# ================================
df <- read_csv(
  "data pasien final exam.csv",
  show_col_types = FALSE
)

# ================================
# Function: Histogram + Density + Central Tendency
# ================================
create_hist_plot <- function(.data, col_name) {
  
  x <- .data[[col_name]]
  x <- x[!is.na(x)]
  x <- as.numeric(x)
  
  mean_val   <- mean(x)
  median_val <- median(x)
  mode_val   <- as.numeric(names(sort(table(x), decreasing = TRUE)[1]))
  
  dens <- density(x)
  hist_cal <- hist(x, plot = FALSE)
  scale_factor <- max(hist_cal$counts) / max(dens$y)
  
  plot_ly() %>%
    
    # Histogram
    add_histogram(
      x = x,
      nbinsx = 15,
      opacity = 0.6,
      marker = list(color = "#90DBF4"),
      name = "Histogram"
    ) %>%
    
    # Density Curve
    add_lines(
      x = dens$x,
      y = dens$y * scale_factor,
      name = "Density Curve",
      line = list(width = 3, color = "#0077B6")
    ) %>%
    
    # Mean
    add_segments(
      x = mean_val, xend = mean_val,
      y = 0, yend = max(hist_cal$counts),
      name = paste("Mean =", round(mean_val, 2)),
      line = list(color = "red", width = 3)
    ) %>%
    
    # Median
    add_segments(
      x = median_val, xend = median_val,
      y = 0, yend = max(hist_cal$counts),
      name = paste("Median =", round(median_val, 2)),
      line = list(color = "green", width = 3, dash = "dash")
    ) %>%
    
    # Mode
    add_segments(
      x = mode_val, xend = mode_val,
      y = 0, yend = max(hist_cal$counts),
      name = paste("Mode =", round(mode_val, 2)),
      line = list(color = "blue", width = 3, dash = "dot")
    ) %>%
    
    layout(
      title = list(
        text = paste("<b>Distribusi BMI Pasien (n =", length(x), ")</b>"),
        x = 0.5
      ),
      xaxis = list(title = "BMI"),
      yaxis = list(title = "Frekuensi"),
      legend = list(orientation = "h", y = -0.25),
      margin = list(t = 80, b = 80)
    )
}

# ================================
# Tampilkan Visualisasi BMI
# ================================
create_hist_plot(df, "BMI")

```
</div>
  <div class="box interpretasi">
  <center>**Interpretasi Central Tendency (Umur &amp; BMI)**</center>

  <p><strong>Umur:</strong> Nilai mean (45,21) dan median (45) yang berdekatan menunjukkan bahwa distribusi umur relatif simetris dan tidak dipengaruhi oleh nilai ekstrem (n = 300).</p>

  <p><strong>BMI:</strong> Nilai mean (26,11) dan median (25,9) yang hampir sama menandakan sebaran BMI cukup seimbang, dengan kecenderungan berada pada kategori <em>overweight ringan</em>.</p>

  <p><strong>Kesimpulan:</strong> Ukuran mean, median, dan modus mampu merepresentasikan karakteristik umum data pasien dengan baik.</p>
  </div>
</div>

### Statistical Dispersion

<div class="box-row">

  <div class="box coding">
```{r}
# Load library
library(readr)
library(ggplot2)
library(plotly)

# Import data
data_pasien <- read_csv("data pasien final exam.csv")

# Hitung mean umur
mean_umur <- mean(data_pasien$Umur, na.rm = TRUE)

# Ambil nilai density maksimum untuk posisi teks
max_density <- max(density(data_pasien$Umur, na.rm = TRUE)$y)

# Plot histogram
p <- ggplot(data_pasien, aes(x = Umur)) +
  geom_histogram(
    aes(y = after_stat(density)),
    bins = 15,
    fill = "#BDE0FE",
    color = "#6C757D",
    alpha = 0.7
  ) +
  geom_density(
    color = "#A2D2FF",
    size = 1.2
  ) +
  geom_vline(
    xintercept = mean_umur,
    color = "#FFAFCC",
    linetype = "dashed",
    size = 1
  ) +
  annotate(
    "text",
    x = mean_umur,
    y = max_density * 3.5,
    label = paste("Mean =", round(mean_umur, 2)),
    color = "#FF5D8F",
    size = 4,
    fontface = "bold"
  ) +
  labs(
    title = "Histogram Statistical Dispersion (Umur Pasien)",
    subtitle = "Menunjukkan penyebaran, variasi, dan nilai tengah data",
    x = "Umur (tahun)",
    y = "Density"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    plot.subtitle = element_text(hjust = 0.5)
  )

# Render interaktif
ggplotly(p) %>% layout(
  autosize = TRUE,
  margin = list(l = 50, r = 50, t = 80, b = 50)
)

```
</div>

  <div class="box interpretasi">
  <center>**Interpretasi Histogram Umur Pasien**</center>
<p>
Histogram menampilkan distribusi umur pasien berdasarkan rentang usia tertentu, sehingga memperlihatkan bagaimana data tersebar dari umur termuda hingga tertua. Kurva densitas yang berada di atas histogram membantu menunjukkan pola kepadatan data secara lebih halus, sementara garis vertikal putus-putus menandai nilai rata-rata umur sebagai titik pusat data.
</p>
<p>
Dari visualisasi ini dapat dilihat bahwa umur pasien memiliki penyebaran yang cukup luas dengan variasi yang jelas di setiap kelompok usia, sehingga menunjukkan bahwa data umur tidak terkonsentrasi pada satu nilai saja dan bersifat heterogen.
</p>

  </div>
</div>

### Probability Distributions

<div class="box-row">

  <div class="box coding">
```{r}
# Memanggil library
library(readr)
library(ggplot2)
library(plotly)

# Mengimpor data
data_pasien <- read_csv("data pasien final exam.csv")

# Ringkasan umur
summary(data_pasien$Umur)

# Histogram umur pasien
p <- ggplot(data_pasien, aes(x = Umur)) +
  geom_histogram(bins = 15, fill = "#CFE8F3", color = "white") +
  labs(
    title = "Distribusi Umur Pasien",
    x = "Umur Pasien",
    y = "Frekuensi"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(
      hjust = 0.5,
      face = "bold",
      size = 16
    )
  )

# Render interaktif + atur margin
ggplotly(p) %>% layout(
  autosize = TRUE,
  margin = list(l = 50, r = 50, t = 80, b = 50)
)

```
</div>

  <div class="box interpretasi">
  <center>**Interpretasi Distribusi Umur Pasien**</center>
  
  <p>
    Berdasarkan tabel ringkasan dan visualisasi histogram, umur pasien berada pada rentang 18 hingga 74 tahun, dengan konsentrasi terbesar pada kelompok usia dewasa. Nilai median sebesar 45 tahun dan rata-rata 45,21 tahun yang hampir sama menunjukkan bahwa distribusi umur relatif simetris dan tidak didominasi oleh nilai ekstrem. Sebaran umur yang cukup luas menandakan adanya keragaman usia pasien yang baik dalam data.
  </p>

  <p>
    Distribusi yang stabil ini menunjukkan bahwa variabel umur layak dianalisis lebih lanjut menggunakan metode statistik. Dalam kaitannya dengan distribusi sampling, jika dilakukan pengambilan sampel secara acak dan dihitung nilai rataan sampelnya, maka distribusi rataan tersebut akan cenderung mengikuti distribusi normal. Hal ini sesuai dengan Central Limit Theorem, yang menyatakan bahwa dengan ukuran sampel yang cukup besar, distribusi rataan sampel akan mendekati normal meskipun distribusi populasi asalnya tidak sepenuhnya normal.
  </p>
  </div>
</div>

### Confidence Interval 
<div class="box-row">

  <div class="box coding">
```{r}
library(plotly)

# =========================
# Parameter dasar
# =========================
mean_x <- 125.60
se <- 18.28 / sqrt(300)
df <- 299
t_95 <- qt(0.975, df)

# Batas CI 95%
lower <- mean_x - t_95 * se
upper <- mean_x + t_95 * se

# =========================
# Density curve
# =========================
x <- seq(mean_x - 4*se, mean_x + 4*se, length.out = 1000)
y <- dnorm(x, mean = mean_x, sd = se)

# =========================
# Plot interaktif
# =========================
p <- plot_ly()

# Kurva density
p <- p %>% add_lines(
  x = x, y = y,
  line = list(color = "black"),
  name = "Density"
)

# Area CI 95%
idx <- x >= lower & x <= upper
p <- p %>% add_polygons(
  x = c(x[idx], rev(x[idx])),
  y = c(y[idx], rep(0, sum(idx))),
  fillcolor = "rgba(100,149,237,0.40)",
  line = list(color = "rgba(0,0,0,0)"),
  name = "95% CI",
  hovertemplate = paste0(
    "<b>95% CI</b><br>",
    "LCL = ", round(lower,2), "<br>",
    "UCL = ", round(upper,2),
    "<extra></extra>"
  )
)

# Garis mean
p <- p %>% add_lines(
  x = c(mean_x, mean_x),
  y = c(0, max(y)),
  line = list(dash = "dash", color = "black"),
  name = "Mean"
)

# Label mean
p <- p %>% add_annotations(
  x = mean_x,
  y = max(y) * 1.05,
  text = "Mean = 125.60 mmHg",
  showarrow = TRUE,
  arrowhead = 2,
  ax = 0,
  ay = -30
)

# =========================
# Layout (BENAR & ANTI POTONG)
# =========================
p <- p %>% layout(
  autosize = TRUE,
  height = 420,
  margin = list(
    l = 50,
    r = 50,
    t = 80,
    b = 80
  ),
  title = list(
    text = "<b>Confidence Interval 95% Tekanan Darah (t-Test)</b>",
    x = 0.5
  ),
  xaxis = list(title = "Tekanan Darah (mmHg)"),
  yaxis = list(title = "Density", rangemode = "tozero"),
  hovermode = "x",
  legend = list(
    orientation = "h",
    x = 0.5,
    xanchor = "center",
    y = -0.25
  )
)

p


```

  </div>

  <div class="box interpretasi">
  **Interpretasi:**

Rata-rata tekanan darah sampel adalah 125,60 mmHg. Interval kepercayaan 95% menunjukkan bahwa rata-rata tekanan darah populasi diperkirakan berada di dalam rentang CI 95% (LCL–UCL) yang mengelilingi nilai mean tersebut. Artinya, dengan tingkat kepercayaan 95%, estimasi mean cukup presisi dan terpusat di sekitar 125,60 mmHg.

**Makna statistik:**

Penggunaan t-test (df = 299) tepat karena mean populasi tidak diketahui dan ukuran sampel besar. Area biru menggambarkan ketidakpastian estimasi, sedangkan garis putus-putus menunjukkan nilai rata-rata sampel.

**Refleksi singkat:**

CI yang relatif sempit menandakan variabilitas terkendali dan estimasi mean yang stabil, namun interval ini bukan berarti 95% data berada di dalam rentang tersebut, melaink

  </div>
</div>

### Statistical Inference

<div class="box-row">

  <div class="box coding">
```{r}
library(plotly)

# ===============================
# Parameter Data
# ===============================
mean_x <- 125.60
mu0 <- 120
s <- 18.28
n <- 300
df <- n - 1

# Hitung t-hitung
t_hitung <- (mean_x - mu0) / (s / sqrt(n))  # ≈ 5.31

# t-kritis (dua sisi)
alpha <- 0.05
t_kritis <- qt(1 - alpha/2, df)

# p-value (dua sisi)
p_value <- 2 * (1 - pt(abs(t_hitung), df))

# ===============================
# Kurva t
# ===============================
x <- seq(-4, 6, length.out = 1000)  # perlu jangkauan sampai t-hitung
y <- dt(x, df)

# ===============================
# Plot interaktif
# ===============================
plot_ly() %>%
  
  # Kurva t
  add_lines(
    x = ~x, y = ~y,
    name = "Kurva t",
    line = list(width = 2)
  ) %>%
  
  # Daerah penolakan kiri
  add_trace(
    x = ~x[x <= -t_kritis],
    y = ~y[x <= -t_kritis],
    type = "scatter",
    mode = "lines",
    fill = "tozeroy",
    fillcolor = "rgba(255,99,71,0.3)",  # merah pastel
    name = "Daerah Penolakan H₀"
  ) %>%
  
  # Daerah penolakan kanan
  add_trace(
    x = ~x[x >= t_kritis],
    y = ~y[x >= t_kritis],
    type = "scatter",
    mode = "lines",
    fill = "tozeroy",
    fillcolor = "rgba(255,99,71,0.3)",
    showlegend = FALSE
  ) %>%
  
  # Garis t-hitung
  add_lines(
    x = c(t_hitung, t_hitung),
    y = c(0, max(y)),
    name = "t-hitung",
    line = list(dash = "dash", width = 2)
  ) %>%
  
  # Garis t-kritis
  add_lines(
    x = c(-t_kritis, -t_kritis),
    y = c(0, max(y)),
    name = "t-kritis",
    line = list(dash = "dot")
  ) %>%
  add_lines(
    x = c(t_kritis, t_kritis),
    y = c(0, max(y)),
    showlegend = FALSE,
    line = list(dash = "dot")
  ) %>%
  
  # ===============================
  # Layout
  # ===============================
  layout(
    title = list(
      text = "<b>Uji t Satu Sampel – Tekanan Darah vs 120 mmHg</b>",
      x = 0.5,
      y = 0.95
    ),
    xaxis = list(title = "Nilai t"),
    yaxis = list(title = "Density"),
    
    legend = list(
      orientation = "h",
      x = 0.5,
      xanchor = "center",
      y = -0.25
    ),
    
    margin = list(
      t = 75,   
      b = 80     
    ),
    
    annotations = list(
      list(
        x = t_hitung,
        y = 0.12,
        text = paste0("t-hitung = ", round(t_hitung,2)),
        showarrow = TRUE,
        arrowhead = 2
      ),
      list(
        x = -t_kritis,
        y = 0.08,
        text = paste0("t-kritis = ", round(-t_kritis,2)),
        showarrow = TRUE,
        arrowhead = 2
      ),
      list(
        x = t_kritis,
        y = 0.08,
        text = paste0("t-kritis = ", round(t_kritis,2)),
        showarrow = TRUE,
        arrowhead = 2
      ),
      list(
        x = 0,
        y = 0.35,
        text = paste0("p-value < 0.001"),
        showarrow = FALSE
      )
    )
  )
```
</div>

  <div class="box interpretasi">
  <center>**Interpretasi**</center>
  
  <p>Grafik menunjukkan hasil uji t satu sampel yang membandingkan rata-rata tekanan darah pasien dengan nilai acuan 120 mmHg menggunakan distribusi t. Daerah penolakan hipotesis nol (H₀) ditunjukkan oleh area berarsir merah pada kedua sisi kurva dengan batas t-kritis ±1,97 pada taraf signifikansi 0,05. Nilai t-hitung sebesar 5,31 berada jauh di luar daerah penerimaan H₀, sehingga menunjukkan perbedaan yang signifikan. Selain itu, p-value &lt; 0,001 memperkuat keputusan untuk menolak H₀. Dengan demikian, dapat disimpulkan bahwa rata-rata tekanan darah pasien dalam dataset secara statistik berbeda dan secara signifikan lebih tinggi dibandingkan 120 mmHg.</p>

  </div>
</div>

### Nonparametric Methods

<div class="box-row">

  <div class="box coding">
```{r}
# ===============================
# Load library
# ===============================
library(ggplot2)
library(plotly)

# ===============================
# Import data
# ===============================
data_pasien <- read.csv("data pasien final exam.csv")

# ===============================
# Buat boxplot dengan ggplot2
# ===============================
p <- ggplot(data_pasien, aes(y = Tekanan_Darah)) +
  geom_boxplot(fill = "lightgray") +
  geom_hline(yintercept = 120, color = "red", linetype = "dashed", size = 1.2) +
  labs(
    title = "Boxplot Tekanan Darah Pasien terhadap Nilai Normal 120 mmHg",
    y = "Tekanan Darah (mmHg)"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold")  
  )

# ===============================
# Render interaktif dengan ggplotly dan atur margin
# ===============================
ggplotly(p) %>% layout(
  autosize = TRUE,
  margin = list(
    l = 50,  # kiri
    r = 50,  # kanan
    t = 80,  # atas
    b = 50   # bawah
  )
)

```
</div>

  <div class="box interpretasi">
  <center>**Interpretasi Boxplot Tekanan Darah**</center>
  <p>Berdasarkan boxplot, median tekanan darah pasien terlihat berada di atas nilai normal populasi 120 mmHg. Sebagian besar sebaran data juga berada di atas nilai tersebut, meskipun terdapat beberapa nilai di bawah 120 mmHg.</p>
  <p>Hal ini menunjukkan bahwa tekanan darah pasien cenderung lebih tinggi dibandingkan nilai normal. Secara visual, hasil ini konsisten dengan uji <strong>Wilcoxon Signed-Rank</strong> yang menolak hipotesis nol, sehingga dapat disimpulkan bahwa median tekanan darah pasien berbeda secara signifikan dari 120 mmHg.</p>
  <p>Berdasarkan boxplot, median tekanan darah pasien terlihat berada di atas nilai normal populasi 120 mmHg. Sebagian besar sebaran data juga berada di atas nilai tersebut, meskipun terdapat beberapa nilai di bawah 120 mmHg.</p>
  <p>Hal ini menunjukkan bahwa tekanan darah pasien cenderung lebih tinggi dibandingkan nilai normal. Secara visual, hasil ini konsisten dengan uji <strong>Wilcoxon Signed-Rank</strong> yang menolak hipotesis nol, sehingga dapat disimpulkan bahwa median tekanan darah pasien berbeda secara signifikan dari 120 mmHg.</p>
  </div>
</div>

Confidence Interval  {data-orientation=rows}
=======================================================================

Case Study Example

**Apakah rata-rata tekanan darah pasien dalam dataset berbeda secara signifikan dari nilai normal populasi (120 mmHg)?**

<div class="materi-row">

  <div class="materi-box materi-blue">
  1️⃣ **Tujuan**

Mengestimasi nilai rata-rata tekanan darah populasi (**μ**) berdasarkan data yang diperoleh dari sampel.

  </div>

  <div class="materi-box materi-blue">
  2️⃣ **Data & Statistik Sampel**

  \( n = 300 \)

  \( \bar{x} = 125{,}60 \)

  \( s = 18{,}28 \)


  </div>

  <div class="materi-box materi-blue">
  3️⃣ **Tingkat Kepercayaan**

  - Confidence level: 95%  
  - Tingkat signifikansi:  
  \( \alpha = 0{,}05 \)

  </div>

  <div class="materi-box materi-blue">
  4️⃣ **Metode yang Digunakan**

  - Confidence Interval untuk **mean** dengan **distribusi t**
  - Alasan: simpangan baku populasi tidak diketahui, sehingga menggunakan simpangan baku sampel

  </div>
  
  <div class="materi-box materi-blue">
  5️⃣ **Rumus Confidence Interval**
  
  \[df = n - 1 = 299\]
  
  \[
  CI = \bar{x} \pm t_{\alpha/2,\,n-1} \times \frac{s}{\sqrt{n}}
  \]

  </div>


  <div class="materi-box materi-blue">
  6️⃣ **Perhitungan**

  
  \[
  t_{0{,}025,299} \approx 1{,}97
  \]
  
  \[
  SE = \frac{18{,}28}{\sqrt{300}} \approx 1{,}06
  \]
  
  \[
  ME = 1{,}97 \times 1{,}06 \approx 2{,}08
  \]


  </div>
  
  <div class="materi-box materi-blue">
  7️⃣ **Hasil Confidence Interval**

  \[
  CI = 125{,}60 \pm 2{,}08
  \]
  
  \[
  CI_{95\%} = [123{,}52,\;127{,}68]
  \]

  </div>
  
  <div class="materi-box materi-blue">
  8️⃣ **Interpretasi**
  
  Rata-rata tekanan darah populasi berada pada 123,52–127,68 mmHg (CI 95%). Karena 120 mmHg tidak termasuk, tekanan darah pasien lebih tinggi dari normal.


  </div>
</div>



Statistical Inference {data-orientation=rows}
=======================================================================

Case Study Example

**Apakah rata-rata tekanan darah pasien dalam dataset berbeda secara signifikan dari nilai normal populasi (120 mmHg)?**

<div class="materi-row">

  <div class="materi-box materi-blue">
  1️⃣ **Hipotesis**

  - **H₀ (Hipotesis nol):**  
    μ = 120  
    (rata-rata tekanan darah populasi sama dengan nilai normal)
    
  - **H₁ (Hipotesis alternatif):**  
    μ ≠ 120  
    (rata-rata tekanan darah populasi berbeda dari nilai normal)
    
  - Digunakan **uji t satu sampel** karena data bersifat numerik kontinu dan simpangan baku populasi tidak diketahui.

  </div>

  <div class="materi-box materi-blue">
  2️⃣ **Statistik Uji**

  - **Hitung statistik uji t dari data**
  
  \[
  t = \frac{\bar{x} - \mu_0}{s/\sqrt{n}}
  = \frac{125{,}60 - 120}{18{,}28/\sqrt{300}}
  \approx 5{,}31
  \]
  
  - **Tentukan derajat bebas**
  
  \[
  df = n - 1 = 299
  \]
  
  - **Tentukan p-value (uji dua sisi)**
  
  \[
  p = 2 \times P(T_{299} \ge |5{,}31|)
  \]
  
  - **Hasil**
  
  \[
  p < 0{,}001
  \]

  </div>
  
  <div class="materi-box materi-blue">
  
  3️⃣ **Keputusan**
  
  Pada tingkat signifikansi \( \alpha = 0{,}05 \), diperoleh \( p\text{-value} < 0{,}05 \).
Oleh karena itu, **hipotesis nol (H₀) ditolak**.

  </div>
  
  <div class="materi-box materi-blue">
  4️⃣ **Kesimpulan**

  Terdapat perbedaan yang signifikan secara statistik antara rata-rata tekanan darah populasi pasien dan nilai normal 120 mmHg. Rata-rata tekanan darah pasien lebih tinggi dari normal.
  
  **Koneksi dengan Confidence Interval:**
  
  Hasil ini konsisten dengan CI 95%, karena nilai 120 mmHg tidak berada dalam interval \([123{,}52;\ 127{,}68]\).

  </div>
  
</div>

Nonparametric Methods {data-orientation=rows}
=======================================================================

Case Study Example

**Apakah rata-rata tekanan darah pasien dalam dataset berbeda secara signifikan dari nilai normal populasi (120 mmHg)?**

<div class="materi-row">
  
  <div class="materi-box materi-blue">
  **Metode**
  <p>Analisis dilakukan menggunakan uji nonparametrik <strong>Wilcoxon Signed-Rank</strong> karena metode ini tidak memerlukan asumsi distribusi normal dan digunakan untuk menguji median satu sampel terhadap nilai acuan tertentu.</p>
```{r}
    # Import data
  data_pasien <- read.csv("data pasien final exam.csv")
  
  # Ambil variabel tekanan darah
  tekanan_darah <- data_pasien$Tekanan_Darah
  
  # Uji Wilcoxon Signed-Rank
  wilcox.test(
    tekanan_darah,
    mu = 120,
    alternative = "two.sided",
    exact = FALSE,
    correct = FALSE
  )
```

  </div>
  
  <div class="materi-box materi-blue">
  **Perhitungan Konseptual**
  <p>Untuk setiap pasien dihitung:</p>
  <p style="text-align:center;">d<sub>i</sub> = X<sub>i</sub> - 120</p>
  <p>Langkah Wilcoxon:</p>
  <ol>
    <li>Hitung selisih (d<sub>i</sub>)</li>
    <li>Buang (d<sub>i</sub> = 0) (tidak ada pada data ini)</li>
    <li>Ambil nilai absolut (|d<sub>i</sub>|)</li>
    <li>Urutkan & beri <em>ranking</em></li>
    <li>Kembalikan tanda (+ / −)</li>
    <li>Jumlahkan ranking positif & negatif</li>
    <li>Statistik uji <em>W</em> dihitung dari keseimbangan ranking</li>
  </ol>
  </div>
  
  <div class="materi-box materi-blue">
  **Hipotesis**
  <ul>
    <li><strong>H₀</strong>: Median tekanan darah pasien = 120 mmHg</li>
    <li><strong>H₁</strong>: Median tekanan darah pasien ≠ 120 mmHg</li>
  </ul>
  
  **Hasil Uji**
  <ul>
    <li><strong>Statistik Wilcoxon (W)</strong> = 15.682</li>
    <li><strong>p-value</strong> = 0,00000456</li>
  </ul>
  </div>
  
  <div class="materi-box materi-blue">
  **Keputusan**
  
  Terdapat perbedaan yang signifikan secara statistik antara <strong>median tekanan darah pasien</strong> dan nilai normal <strong>120 mmHg</strong>.
Hasil ini konsisten dengan:
      <ul>
        <li><strong>Confidence Interval</strong></li>
        <li><strong>Uji t satu sampel</strong></li>
      </ul>
  
  </div>
</div>