DSDataLabPRAKTIKUM PHP NATIVE Lihat semua soal ↗
MODUL PRAKTIKUM · SOAL 05

Pembagian Data Latih dan Data Uji

Fungsi train_test_split() kustom untuk membagi 50 sampel menjadi 80% data latih dan 20% data uji tanpa duplikasi.

05/ 05

Hasil train-test split

Dataset contoh dibuat secara programatis sebanyak 50 sampel; pengacakan menggunakan shuffle() pada indeks.

Total sampel50dataset awal
Data latih (80%)40untuk melatih model
Data uji (20%)10untuk evaluasi
PemeriksaanHasilStatus
Total baris train + test50Sesuai
ID duplikat antar subset0Tidak ada
Rasio pembagian80% : 20%80 : 20

Pratinjau data latih

Ditampilkan 8 baris pertama dari subset train.

ID sampelNilai tugasNilai ujian
458890
398770
267865
126295
437468
448179
306563
469555

Pratinjau data uji

Seluruh 10 baris subset test ditampilkan untuk memudahkan pemeriksaan.

ID sampelNilai tugasNilai ujian
497588
388059
218456
338696
27477
239878
108973
158382
59564
76886

Kode PHP Native

Algoritma mengacak indeks, menentukan jumlah data uji, kemudian membentuk dua subset.

function train_test_split($data, $test_size = 0.2, $shuffle = true) { $indices = array_keys($data); if ($shuffle) { shuffle($indices); } $testCount = (int) round(count($data) * $test_size); $testIndices = array_slice($indices, 0, $testCount); $trainIndices = array_slice($indices, $testCount); $train = []; $test = []; foreach ($trainIndices as $idx) $train[] = $data[$idx]; foreach ($testIndices as $idx) $test[] = $data[$idx]; return ["train" => $train, "test" => $test]; }
Kesimpulan: Data latih digunakan untuk proses pembelajaran model, sedangkan data uji untuk mengukur performa pada data yang tidak dipakai saat pelatihan. Karena data diacak, urutan dan anggota subset dapat berubah pada setiap pemuatan halaman.