Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

  • IC Timer 555 yang Multifungsi

    IC timer 555 adalah sirkuit terpadu (chip) yang digunakan dalam berbagai pembangkit timer, pulsa dan aplikasi osilator. Komponen ini digunakan secara luas, berkat kemudahan dalam penggunaan, harga rendah dan stabilitas yang baik

  • Data Science

    Mengulik Digitalisasi data statistik dengan bantuan python untuk pemanfaatan di bidang transportasi, kesehatan, keuangan dan masih banyak lagi

  • Artificial Intelligence - Pengenalan Object

    Menghadirkan pemanfaatan AI dengan praktek-praktek yang mudah diikuti - cocok untuk mahasiswa yang mencari ide tugas akhir

  • JAM DIGITAL 6 DIGIT TANPA MICRO FULL CMOS

    Jika anda pencinta IC TTL datau CMOS maka project jam digital ini akan menunjukkan bahwa tidak ada salahnya balik kembali ke dasar elektronika digital , sebab semuanya BISA dibuat dengan teknologi jadul

  • Node Red - Kontrol Industri 4.0

    Teknologi kontrol sudah melampaui ekspektasi semua orang dan dengan kemajuan dunia elektronika, kini semakin leluasa berkreasi melalui Node Red

Jumat, 21 Maret 2025

Mengulik Prediksi Statistik : Kesalahan Regresi Linear di Rekor Lari 100m

Seperti kita sudah pahami Regresi Linear adalah metode statistik yang digunakan untuk memodelkan hubungan antara variabel dependen (misalnya, waktu rekor dunia) dan satu atau lebih variabel independen (misalnya, tahun). Tujuannya adalah untuk menemukan "garis yang paling sesuai" yang meminimalkan kesalahan antara nilai yang diprediksi dan nilai aktual.

Anda dapat menggunakan persamaan garis lurus y=mx+b, di mana:

  • y: Variabel dependen (waktu rekor dunia)
  • x: Variabel independen (tahun)
  • m: Kemiringan (laju perubahan waktu rekor dunia per tahun)
  • b: Intersep (waktu rekor dunia yang diprediksi pada tahun 0)
Perhatikan contoh berikut berupa data rekor dunia lari 100 meter pria:

YEAR
TIME (SECONDS)
1912
10.6
1921
10.4
1930
10.3
1936
10.2
1956
10.1
1960
10.0
1968
9.95
1983
9.93
1988
9.92
1991
9.86
1994
9.85
1996
9.84
1999
9.79
2005
9.77
2008
9.72
2009
9.58

 

Dari  kumpulan data di atas, kita bisa menurunkan model regresi linear sebagai berikut:

Buatlah titik-titik data pada grafik dengan tahun pada sumbu x dan waktu rekor dunia pada sumbu y. Pasang model regresi linier pada data tersebut. Ini melibatkan penghitungan kemiringan (m) dan intersep (b). Untuk mempermudah, Anda dapat menggunakan perangkat lunak seperti Excel, Python (dengan scikit-learn), atau bahkan kalkulasi pena dan kertas untuk menemukan garis yang paling sesuai.

Misalnya, dengan menggunakan alat seperti Excel atau Python, Anda mungkin menemukan:


y=−0,01x+29,5


di mana y adalah waktu rekor dunia yang diprediksi, dan x adalah tahun.


Sekarang, kita lanjutkan menggunakan model regresi linier untuk memprediksi:

Berapakah rekor dunia lari 100m pria  pada tahun 2050?
Kapan rekor dunia akan mencapai 0 detik (yang jelas tidak mungkin).


Contoh Prediksi:

Untuk tahun 2050:
y=−0,01(2050)+29,5=9,0 detik.
Untuk saat rekor mencapai 0 detik:
Pecahkan 0=−0,01x+29,5:
x=2950.


Jelas, prediksi ini tidak realistis. Seorang manusia yang berlari 100 meter dalam 0 detik melanggar hukum fisika!

Mari kita bahas mengapa model regresi linier gagal dalam konteks ini?

  • Batasan Biologis dan Fisik: Performa manusia memiliki batasan alami karena biologi, fisiologi, dan fisika. Model linier mengasumsikan peningkatan tak terbatas, yang tidak realistis.
  • Tren Nonlinier: Peningkatan rekor dunia cenderung melambat seiring waktu saat atlet mendekati batas fisik mereka. Model linier tidak dapat menangkap tren perlambatan ini.
  • Objek Luar Biasa dan Kejutan: Terkadang, ada objek luar biasa (misalnya, rekor Usain Bolt 9,58 detik pada tahun 2009). Ini dapat mendistorsi model linier dan membuatnya kurang akurat.

Untuk mengilustrasikan ini, plot residual (selisih antara nilai aktual dan nilai prediksi) dan tunjukkan bagaimana mereka meningkat seiring waktu, yang menunjukkan kerusakan model.



Model Nonlinier

Sebagai tambahan,  model nonlinier (misalnya, peluruhan logaritmik atau eksponensial) yang lebih baik menangkap tren perlambatan dalam peningkatan rekor dunia. Misalnya:

y=aln(x)+b
atau
y=aebx+c

Model-model ini memperhitungkan hasil yang semakin berkurang dan memberikan prediksi yang lebih realistis.

Lalu ada pertanyaan :

  • Mengapa regresi linier gagal memprediksi rekor dunia di masa mendatang secara akurat?
  • Faktor apa yang memengaruhi perkembangan rekor dunia (misalnya, metode pelatihan, teknologi, genetika)?
  • Dapatkah kita memprediksi kapan batas akhir kinerja manusia akan tercapai? Mengapa atau mengapa tidak?
Rangkuman:

  • Regresi linier adalah alat yang ampuh untuk memodelkan hubungan tetapi memiliki keterbatasan.
  • Data dunia nyata sering kali menunjukkan pola kompleks yang tidak dapat ditangkap oleh model linier.
  • Memahami keterbatasan ini sangat penting untuk membuat prediksi yang tepat.


Pemodelan Python :


import matplotlib.pyplot as plt
import numpy as np

# Historical data
years = [1912, 1921, 1930, 1936, 1956, 1960, 1968, 1983, 1988, 1991, 1994, 1996, 1999, 2005, 2008, 2009]
times = [10.6, 10.4, 10.3, 10.2, 10.1, 10.0, 9.95, 9.93, 9.92, 9.86, 9.85, 9.84, 9.79, 9.77, 9.72, 9.58]

# Linear regression model
m = -0.01  # Slope
b = 29.5   # Intercept

# Generate predicted values
future_years = np.linspace(1900, 3000, 10)
predicted_times = m * future_years + b

# Plot
plt.figure(figsize=(10, 6))
plt.scatter(years, times, color='blue', label='Actual World Records')
plt.plot(future_years, predicted_times, color='red', label='Linear Regression Prediction')
plt.axhline(0, color='black', linestyle='--', linewidth=1)  # Horizontal line at y=0
plt.title("Failure of Linear Regression: Men's 100m World Record")
plt.xlabel("Year")
plt.ylabel("World Record Time (seconds)")
plt.legend()
plt.grid(True)
plt.ylim(-1, 12)  # Set y-axis limits to show negative predictions
plt.show()

Terus pemodelan regresi linear lainnya yg benar kayak gimana ? Perhatikan contoh okupansi parkir berikut :


#ini coba parkir
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# Step 1: Sample Data (Monthly Parking Lot Occupancy)
months = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]).reshape(-1, 1)  # Month numbers (1 = January, 12 = December)
occupancy = np.array([80, 75, 65, 70, 62, 55, 45, 52, 45, 52, 68, 72])    # Occupancy percentages

# Step 2: Fit Linear Regression Model
model = LinearRegression()
model.fit(months, occupancy)

# Extract slope (m) and intercept (b)
m = model.coef_[0]  # Slope
b = model.intercept_  # Intercept

print(f"Linear Regression Model: y = {m:.2f} * x + {b:.2f}")

# Step 3: Predict Occupancy for Next Year (Months 13 to 24)
next_year_months = np.array(range(13, 25)).reshape(-1, 1)  # Months for the next year
predicted_occupancy = model.predict(next_year_months)

# Print Predictions
for month, pred in zip(range(13, 25), predicted_occupancy):
    print(f"Month {month}: Predicted Occupancy = {pred:.2f}%")

# Step 4: Visualize Results
plt.figure(figsize=(10, 6))

# Plot Historical Data
plt.scatter(months, occupancy, color='blue', label='Historical Data')

# Plot Regression Line for Historical Data
x_range = np.array(range(1, 25)).reshape(-1, 1)  # Extend line to cover both years
y_range = model.predict(x_range)
plt.plot(x_range, y_range, color='red', label='Linear Regression Fit')

# Plot Predictions for Next Year
plt.scatter(next_year_months, predicted_occupancy, color='green', label='Next Year Predictions')

# Add Labels and Legend
plt.title("Parking Lot Occupancy Prediction")
plt.xlabel("Month Number")
plt.ylabel("Occupancy (%)")
plt.axvline(x=12.5, color='gray', linestyle='--', linewidth=1, label='End of First Year')  # Separator between years
plt.legend()
plt.grid(True)
plt.show()

Hasilnya lebih masuk akal seperti berikut :






- powered by qwen ai -
Share:

Jumat, 07 Maret 2025

Mengulik Data Transportasi Lewat Web Scraping di D4 Transportasi Unesa


 

Tidak dipungkiri lagi dunia transportasi modern berhubungan erat dengan data. Semua kemudahan yang kita dapatkan sampai hal terkecil seperti mau tahu sampai dimana si sopir gojek, sangat berhubungan dengan data yang berupa data titik GPS serta peta atau lebih umumnya dinamakan sebagai GIS yang sudah saya bahas sebelumnya disini. Pernahkah pembaca bertanya-tanya bagaimana Google Maps bisa memberi tahu kalian jalan tercepat ke sekolah atau tempat tujuan lainnya? Apa yang membuat Uber atau Gojek bisa memprediksi waktu kedatangan driver hanya dalam hitungan menit? Kenapa harga tiket pesawat atau kereta sering berubah-ubah setiap hari? Kita coba ulik dengan pembahasan sederhana.

Yang saya ingin bagikan gak muluk-muluk, karena ini hanya belajar bagaimana mendapatkan data transportasi. Semisal saya ingin mencari data transportasi lalu lintas harian di kota surabaya. Mungkin kalau dipikir cara yang paling tepat adalah menuju ke kantor dishub surabaya lalu meminta kepada pihak sana untuk mengarahkan ke PPID atau pejabat pengelola informasi dan dokumentasi,. Namun cara ini kurang canggih jika melihat hampir semua instansi mempunyai website yang mendukung undang-undang keterbukaan informasi publik alias SATU DATA INDONESIA. Dan tanpa bersusah payah saya dapat meluncur ke websitenya dishub surabaya dan data yang  saya peroleh cukup lengkap.

https://dishub.surabaya.go.id/portal/elalin/lhr



Cukup lengkap datanya dan to the point langsung keluar tabelnya dan siap dipakai untuk laporan anak mahasiswa D4 Transportasi Fakultas Vokasi Unesa Surabaya. Lalu data apalagi ya? Kita menuju ke kakaknya yaitu dishub jatim, dan ketika saya membuka websitenya terdapat portal data di : https://labdata.dishub.jatimprov.go.id/ dan kayaknya saya kurang beruntung karena ada login untuk masuk kedalamnya. Wahh repot ini urusannya, namun saya tidak kurang akal dan menemukan menu yang bisa di klik yang menampilkan data lokasi terminal atau pelabuhan dari berbagai moda transportasi di jawa timur. Kita ulik aja apakah bisa menemukan API nya ?



 

Caranya cukup dengan klik kanan pada layar websitenya, lalu pilih bagian paling bawah yaitu "inspect" dan akan muncul layar di kanan untuk chrome atau kalau pake firefox muncul di bawah, kemudian langsung aja menuju ke bagian network untuk melihat proses yang dilakukan oleh website ini ketika salah satu menu di klik. Benar saja langsung terlihat API yang dipanggil oleh halaman web ini dan bisa kita dengan mudah mengambil response atau reply nya dengan klik kanan "copy response". Untuk menjadikan datanya lebih berguna maka bisa gunakan layanan pengubah Json to table (googling ada banyak)  seperti hasil dibawah ini:



Dapet deh data alamat seluruh node moda transportasi di jawa timur baik darat laut udara lengkap dalam laporan berupa tabel pula. Lalu apakah saya mencuri? Kita kembalikan ke etika dan UU keterbukaan data, dan prinsipnya seperti ini :


Untuk memastikan tindakan Anda etis:

  • Periksa Terms of Service dan robots.txt .
  • Analisis header respons API (teknikal).
  • Pastikan data bersifat publik dan tidak sensitif.
  • Hubungi pemilik data untuk meminta izin jika ragu.
  • Gunakan data secara bertanggung jawab dan berikan atribusi.
  • Untuk data tugas akhir berikanlah sitasi pada daftar pustaka


Jika anda cukup yakin akan tindakan anda, ayo kita menuju database transportasi nasional di kementrian perhubungan https://portaldata.kemenhub.go.id/ dan mungkin yang keluar adalah error 500 (internal server error) hehehehe..maklum menterinya baru mungkin akan upgrade ke teknologi yang lebih canggih. 

Jika anda berhasil masuk, pilih menu ke bagian dataset dan ambil berbagai jenis contoh laporan dunia transportasi dan saya pilihkan : https://portaldata.kemenhub.go.id/content/dataset/522 yaitu berupa dataset yang berisikan potensi pergerakan masyarakat pada natal 2023 dan tahun baru 2024:



Yang keluar adalah laporan yang cukup lengkap namun memiliki link satu-satu. Bagaimana untuk menjadikannya satu data json atau tabel csv ? Kita manfaatkan python dalam hal ini package beatyfulsop dan mungkin juga panda sebagai pengolahan frame data. Saya sudah sediakan contoh untuk kalian ulik di : https://shorturl.at/9GgzS .



Pada intinya script diatas akan mengumpulkan link json pada website dataset kemenhub, lalu mengambil isi jsonnya kemudian diubah menjadi file csv yang secara otomatis menjadi tabel pada google colab. Sangat mudah kok (padahal saya cukup bertanya ke mesin AI untuk terlihat seperti pintar koding ..hehehe).

Dan ujung kegatelan saya terhadap data transportasi yang ada di internet adalah ketika mengulik website penyedia tiket bus redbus.com yang hasilnya saya bisa mengambil data API nya secara lengkap.


Untuk yang terakhir ini cukup saya iming-imingi gambarnya aja ya ...gak etis membagikan cara mengambil dapur orang hehehe....


Selamat belajar





 

Share:

Kontak Penulis



12179018.png (60×60)
+628155737755

Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (19) android (14) antares (11) arduino (28) artikel (11) attiny (3) attiny2313 (19) audio (5) baterai (5) blog (1) bluetooth (1) chatgpt (2) cmos (2) crypto (2) dasar (46) digital (11) dimmer (5) display (3) esp8266 (26) euro2020 (13) gcc (1) gis (3) gsm (1) iklan (1) infrared (2) Input Output (3) iot (78) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (17) komputer (3) komunikasi (1) kontrol (8) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) lora (11) lorawan (2) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (2) mikrokontroller (14) mikrotik (5) modbus (9) mqtt (3) ninmedia (5) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (88) pcb (2) power (1) praktek (2) project (33) proyek (1) python (9) radio (28) raspberry pi (9) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (2) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) statistik (5) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) telkomiot (5) transistor (2) troubleshoot (3) tulisan (94) tutorial (108) tv digital (6) tvri (2) unesa (8) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3) yolo (9)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika