Kebiasaan Anak Hebat Indonesia
Kebiasaan Anak Hebat Indonesia
DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>7 Kebiasaan Anak Indonesia Hebat</title>
<script src="[Link]
<style>
@import url('[Link]
family=Fredoka:wght@400;600;700&display=swap');
body {
font-family: 'Fredoka', sans-serif;
}
.habit-card {
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.habit-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 25px rgba(0,0,0,0.15);
}
.floating-animation {
animation: float 3s ease-in-out infinite;
}
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.pulse-animation {
animation: pulse 2s infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.7; }
}
</style>
</head>
<body class="min-h-screen" style="background: linear-gradient(135deg, #FFE5F1 0%,
#E5F3FF 25%, #F0E5FF 50%, #E5FFE5 75%, #FFF5E5 100%); background-attachment:
fixed;">
<!-- Aesthetic Pastel Flower Pattern Overlay -->
<div class="fixed inset-0 opacity-25 pointer-events-none" style="background-image:
radial-gradient(circle at 15% 25%, rgba(255, 182, 193, 0.4) 0%, transparent 60%),
radial-gradient(circle at 85% 15%, rgba(173, 216, 230, 0.4) 0%, transparent 60%),
radial-gradient(circle at 25% 75%, rgba(221, 160, 221, 0.4) 0%, transparent 60%),
radial-gradient(circle at 75% 85%, rgba(152, 251, 152, 0.4) 0%, transparent 60%),
radial-gradient(circle at 50% 50%, rgba(255, 228, 181, 0.3) 0%, transparent 70%);
background-size: 500px 500px, 450px 450px, 400px 400px, 550px 550px, 600px 600px;
animation: flower-pattern 25s ease-in-out infinite;">
</div>
<style>
@keyframes flower-pattern {
0%, 100% {
background-position: 0% 0%, 100% 100%, 50% 50%, 0% 100%, 100% 0%;
}
25% {
background-position: 25% 25%, 75% 75%, 75% 25%, 25% 75%, 50% 50%;
}
50% {
background-position: 100% 100%, 0% 0%, 0% 100%, 100% 0%, 25% 75%;
}
75% {
background-position: 75% 25%, 25% 75%, 25% 25%, 75% 75%, 75% 25%;
}
}
@keyframes float-flower {
0%, 100% {
transform: translateY(0px) translateX(0px) rotate(0deg) scale(1);
}
25% {
transform: translateY(-8px) translateX(3px) rotate(2deg) scale(1.05);
}
50% {
transform: translateY(-12px) translateX(-2px) rotate(-1deg) scale(1.1);
}
75% {
transform: translateY(-5px) translateX(4px) rotate(1deg) scale(1.02);
}
}
@keyframes float {
0%, 100% { transform: translateY(0px) rotate(0deg); }
33% { transform: translateY(-10px) rotate(2deg); }
66% { transform: translateY(5px) rotate(-1deg); }
}
</style>
<!-- Header Section -->
<div class="text-center py-8 px-4">
<!-- Header Image -->
<div class="mb-6">
<img src="[Link]
alt="Header 7 Kebiasaan Anak Indonesia Hebat"
class="mx-auto max-w-full h-auto rounded-2xl shadow-lg"
style="max-height: 150px; background: transparent;"
onerror="[Link]='none'; [Link]='block';">
<!-- Fallback if image fails to load -->
<div class="hidden mx-auto w-full max-w-md h-32 bg-gradient-to-r from-blue-200 to-
purple-200 rounded-2xl shadow-lg border-4 border-blue-300 flex items-center justify-center">
<div class="text-center">
<div class="text-4xl mb-2">🌟</div>
<div class="text-lg font-bold text-blue-800">7 Kebiasaan Anak Indonesia
Hebat</div>
</div>
</div>
</div>
<div class="text-left">
<label class="block text-sm font-medium text-orange-700
mb-1">Nama:</label>
<input type="text" placeholder="Tulis nama kamu..."
class="w-full px-3 py-2 border-2 border-orange-300 rounded-lg text-sm
focus:border-orange-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-orange-700
mb-1">Kelas:</label>
<input type="text" placeholder="Contoh: 5A, 6B..."
class="w-full px-3 py-2 border-2 border-orange-300 rounded-lg text-sm
focus:border-orange-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-orange-700
mb-1">Tanggal:</label>
<input type="date"
class="w-full px-3 py-2 border-2 border-orange-300 rounded-lg text-sm
focus:border-orange-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-orange-700 mb-1">Waktu
Bangun:</label>
<input type="time"
class="w-full px-3 py-2 border-2 border-orange-300 rounded-lg text-sm
focus:border-orange-500 focus:outline-none">
</div>
<button onclick="saveWakeUpRecord()"
class="w-full bg-orange-500 hover:bg-orange-600 text-white font-semibold
py-2 px-4 rounded-lg transition-colors duration-200 mt-3">
✅ Simpan Catatan
</button>
<div class="text-left">
<label class="block text-sm font-medium text-purple-700
mb-1">Nama:</label>
<input type="text" id="prayerName" placeholder="Tulis nama kamu..."
class="w-full px-3 py-2 border-2 border-purple-300 rounded-lg text-sm
focus:border-purple-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-purple-700 mb-1">Kelas:</label>
<input type="text" id="prayerClass" placeholder="Contoh: 5A, 6B..."
class="w-full px-3 py-2 border-2 border-purple-300 rounded-lg text-sm
focus:border-purple-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-purple-700
mb-1">Tanggal:</label>
<input type="date" id="prayerDate"
class="w-full px-3 py-2 border-2 border-purple-300 rounded-lg text-sm
focus:border-purple-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-purple-700 mb-1">Waktu
Mengaji:</label>
<select id="mengajiTime" class="w-full px-3 py-2 border-2 border-purple-300
rounded-lg text-sm focus:border-purple-500 focus:outline-none">
<option value="">Pilih waktu mengaji...</option>
<option value="Tidak mengaji">Tidak mengaji</option>
<option value="5-10 menit">5-10 menit</option>
<option value="10-15 menit">10-15 menit</option>
<option value="15-30 menit">15-30 menit</option>
<option value="30-45 menit">30-45 menit</option>
<option value="45-60 menit">45-60 menit</option>
<option value="Lebih dari 1 jam">Lebih dari 1 jam</option>
</select>
</div>
<button onclick="savePrayerRecord()"
class="w-full bg-purple-500 hover:bg-purple-600 text-white font-semibold
py-2 px-4 rounded-lg transition-colors duration-200 mt-3">
✅ Simpan Catatan Ibadah
</button>
<div class="text-left">
<label class="block text-sm font-medium text-green-700 mb-1">Nama:</label>
<input type="text" id="sportsName" placeholder="Tulis nama kamu..."
class="w-full px-3 py-2 border-2 border-green-300 rounded-lg text-sm
focus:border-green-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-green-700 mb-1">Kelas:</label>
<input type="text" id="sportsClass" placeholder="Contoh: 5A, 6B..."
class="w-full px-3 py-2 border-2 border-green-300 rounded-lg text-sm
focus:border-green-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-green-700
mb-1">Tanggal:</label>
<input type="date" id="sportsDate"
class="w-full px-3 py-2 border-2 border-green-300 rounded-lg text-sm
focus:border-green-500 focus:outline-none">
</div>
<button onclick="saveSportsRecord()"
class="w-full bg-green-500 hover:bg-green-600 text-white font-semibold py-
2 px-4 rounded-lg transition-colors duration-200 mt-3">
✅ Simpan Catatan Olahraga
</button>
<div class="text-left">
<label class="block text-sm font-medium text-red-700 mb-1">Nama:</label>
<input type="text" id="foodName" placeholder="Tulis nama kamu..."
class="w-full px-3 py-2 border-2 border-red-300 rounded-lg text-sm
focus:border-red-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-red-700 mb-1">Kelas:</label>
<input type="text" id="foodClass" placeholder="Contoh: 5A, 6B..."
class="w-full px-3 py-2 border-2 border-red-300 rounded-lg text-sm
focus:border-red-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-red-700 mb-1">Tanggal:</label>
<input type="date" id="foodDate"
class="w-full px-3 py-2 border-2 border-red-300 rounded-lg text-sm
focus:border-red-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-red-700 mb-1">Apa makanan
sehatmu hari ini?</label>
<textarea id="healthyFood" placeholder="Ceritakan makanan sehat yang
kamu makan hari ini... Contoh: Sayur bayam, wortel, apel, susu, dll."
rows="4" class="w-full px-3 py-2 border-2 border-red-300 rounded-lg
text-sm focus:border-red-500 focus:outline-none resize-none"></textarea>
</div>
<button onclick="saveHealthyFoodRecord()"
class="w-full bg-red-500 hover:bg-red-600 text-white font-semibold py-2 px-
4 rounded-lg transition-colors duration-200 mt-3">
✅ Simpan Catatan Makanan Sehat
</button>
<div class="text-left">
<label class="block text-sm font-medium text-blue-700 mb-1">Nama:</label>
<input type="text" id="learningName" placeholder="Tulis nama kamu..."
class="w-full px-3 py-2 border-2 border-blue-300 rounded-lg text-sm
focus:border-blue-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-blue-700 mb-1">Kelas:</label>
<input type="text" id="learningClass" placeholder="Contoh: 5A, 6B..."
class="w-full px-3 py-2 border-2 border-blue-300 rounded-lg text-sm
focus:border-blue-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-blue-700
mb-1">Tanggal:</label>
<input type="date" id="learningDate"
class="w-full px-3 py-2 border-2 border-blue-300 rounded-lg text-sm
focus:border-blue-500 focus:outline-none">
</div>
<!-- Question 2: Pelajaran apa yang kamu pelajari di rumah hari ini? -->
<div class="text-left">
<label class="block text-sm font-medium text-blue-700 mb-1">Pelajaran apa
yang kamu pelajari di rumah hari ini?</label>
<textarea id="subjectsLearned" placeholder="Ceritakan pelajaran yang kamu
pelajari hari ini... Contoh: Matematika tentang perkalian, Bahasa Indonesia membaca cerita,
IPA tentang tumbuhan, dll."
rows="4" class="w-full px-3 py-2 border-2 border-blue-300 rounded-lg
text-sm focus:border-blue-500 focus:outline-none resize-none"></textarea>
</div>
<button onclick="saveLearningRecord()"
class="w-full bg-blue-500 hover:bg-blue-600 text-white font-semibold py-2
px-4 rounded-lg transition-colors duration-200 mt-3">
✅ Simpan Catatan Belajar
</button>
<div class="text-left">
<label class="block text-sm font-medium text-teal-700 mb-1">Nama:</label>
<input type="text" id="socialName" placeholder="Tulis nama kamu..."
class="w-full px-3 py-2 border-2 border-teal-300 rounded-lg text-sm
focus:border-teal-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-teal-700 mb-1">Kelas:</label>
<input type="text" id="socialClass" placeholder="Contoh: 5A, 6B..."
class="w-full px-3 py-2 border-2 border-teal-300 rounded-lg text-sm
focus:border-teal-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-teal-700 mb-1">Tanggal:</label>
<input type="date" id="socialDate"
class="w-full px-3 py-2 border-2 border-teal-300 rounded-lg text-sm
focus:border-teal-500 focus:outline-none">
</div>
<button onclick="saveSocialRecord()"
class="w-full bg-teal-500 hover:bg-teal-600 text-white font-semibold py-2
px-4 rounded-lg transition-colors duration-200 mt-3">
✅ Simpan Catatan Bermasyarakat
</button>
<div class="text-left">
<label class="block text-sm font-medium text-indigo-700
mb-1">Nama:</label>
<input type="text" id="sleepName" placeholder="Tulis nama kamu..."
class="w-full px-3 py-2 border-2 border-indigo-300 rounded-lg text-sm
focus:border-indigo-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-indigo-700 mb-1">Kelas:</label>
<input type="text" id="sleepClass" placeholder="Contoh: 5A, 6B..."
class="w-full px-3 py-2 border-2 border-indigo-300 rounded-lg text-sm
focus:border-indigo-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-indigo-700
mb-1">Tanggal:</label>
<input type="date" id="sleepDate"
class="w-full px-3 py-2 border-2 border-indigo-300 rounded-lg text-sm
focus:border-indigo-500 focus:outline-none">
</div>
<div class="text-left">
<label class="block text-sm font-medium text-indigo-700 mb-1">Waktu
Tidur:</label>
<input type="time" id="sleepTime"
class="w-full px-3 py-2 border-2 border-indigo-300 rounded-lg text-sm
focus:border-indigo-500 focus:outline-none">
</div>
<button onclick="saveSleepRecord()"
class="w-full bg-indigo-500 hover:bg-indigo-600 text-white font-semibold py-
2 px-4 rounded-lg transition-colors duration-200 mt-3">
✅ Simpan Catatan Tidur
</button>
<div>
<label class="block text-sm font-medium text-purple-700 mb-2">Nama Orang
Tua/Wali:</label>
<input type="text" id="parentName" placeholder="Tulis nama Ayah/Bunda..."
class="w-full px-4 py-3 border-2 border-purple-300 rounded-xl text-sm
focus:border-purple-500 focus:outline-none">
</div>
<div>
<label class="block text-sm font-medium text-purple-700 mb-2">Nama
Anak:</label>
<input type="text" id="childName" placeholder="Tulis nama anak..."
class="w-full px-4 py-3 border-2 border-purple-300 rounded-xl text-sm
focus:border-purple-500 focus:outline-none">
</div>
<div>
<label class="block text-sm font-medium text-purple-700 mb-2">Kelas
Anak:</label>
<input type="text" id="childClass" placeholder="Contoh: 5A, 6B..."
class="w-full px-4 py-3 border-2 border-purple-300 rounded-xl text-sm
focus:border-purple-500 focus:outline-none">
</div>
<div>
<label class="block text-sm font-medium text-purple-700 mb-2">Periode
Refleksi (Bulan):</label>
<select id="reflectionPeriod" class="w-full px-4 py-3 border-2 border-purple-
300 rounded-xl text-sm focus:border-purple-500 focus:outline-none">
<option value="">Pilih bulan...</option>
<option value="Januari">Januari</option>
<option value="Februari">Februari</option>
<option value="Maret">Maret</option>
<option value="April">April</option>
<option value="Mei">Mei</option>
<option value="Juni">Juni</option>
<option value="Juli">Juli</option>
<option value="Agustus">Agustus</option>
<option value="September">September</option>
<option value="Oktober">Oktober</option>
<option value="November">November</option>
<option value="Desember">Desember</option>
</select>
</div>
<div>
<label class="block text-sm font-medium text-purple-700 mb-2">Tanggal
Pengisian:</label>
<input type="date" id="reflectionDate"
class="w-full px-4 py-3 border-2 border-purple-300 rounded-xl text-sm
focus:border-purple-500 focus:outline-none">
</div>
</div>
<div>
<label class="block text-sm font-medium text-purple-700 mb-2">2. Kebiasaan
mana yang paling sulit diterapkan anak?</label>
<textarea id="hardestHabit" placeholder="Ceritakan kebiasaan yang paling
sulit dan tantangannya..."
rows="4" class="w-full px-4 py-3 border-2 border-purple-300 rounded-xl
text-sm focus:border-purple-500 focus:outline-none resize-none"></textarea>
</div>
<div>
<label class="block text-sm font-medium text-purple-700 mb-2">3. Perubahan
positif apa yang Ayah/Bunda lihat pada anak?</label>
<textarea id="positiveChanges" placeholder="Ceritakan perubahan positif
yang terlihat..."
rows="4" class="w-full px-4 py-3 border-2 border-purple-300 rounded-xl
text-sm focus:border-purple-500 focus:outline-none resize-none"></textarea>
</div>
<div>
<label class="block text-sm font-medium text-purple-700 mb-2">4. Dukungan
apa yang sudah Ayah/Bunda berikan?</label>
<textarea id="parentSupport" placeholder="Ceritakan cara Ayah/Bunda
mendukung anak..."
rows="4" class="w-full px-4 py-3 border-2 border-purple-300 rounded-xl
text-sm focus:border-purple-500 focus:outline-none resize-none"></textarea>
</div>
<div>
<label class="block text-sm font-medium text-purple-700 mb-2">5. Rencana
perbaikan untuk ke depan?</label>
<textarea id="improvementPlan" placeholder="Ceritakan rencana untuk
membantu anak lebih baik..."
rows="4" class="w-full px-4 py-3 border-2 border-purple-300 rounded-xl
text-sm focus:border-purple-500 focus:outline-none resize-none"></textarea>
</div>
</div>
</div>
<script>
function saveWakeUpRecord() {
// Get form values
const name = [Link]('input[placeholder="Tulis nama kamu..."]').value;
const kelas = [Link]('input[placeholder="Contoh: 5A, 6B..."]').value;
const date = [Link]('input[type="date"]').value;
const time = [Link]('input[type="time"]').value;
// Clear form
[Link]('input[placeholder="Tulis nama kamu..."]').value = '';
[Link]('input[placeholder="Contoh: 5A, 6B..."]').value = '';
[Link]('input[type="date"]').value = '';
[Link]('input[type="time"]').value = '';
function savePrayerRecord() {
// Get form values
const name = [Link]('prayerName').value;
const kelas = [Link]('prayerClass').value;
const date = [Link]('prayerDate').value;
const mengajiTime = [Link]('mengajiTime').value;
// Clear form
[Link]('prayerName').value = '';
[Link]('prayerClass').value = '';
[Link]('prayerDate').value = '';
[Link]('mengajiTime').value = '';
[Link]('subuh').checked = false;
[Link]('dhuhur').checked = false;
[Link]('ashar').checked = false;
[Link]('maghrib').checked = false;
[Link]('isya').checked = false;
function saveSportsRecord() {
// Get form values
const name = [Link]('sportsName').value;
const kelas = [Link]('sportsClass').value;
const date = [Link]('sportsDate').value;
// Clear form
[Link]('sportsName').value = '';
[Link]('sportsClass').value = '';
[Link]('sportsDate').value = '';
[Link]('senamRingan').checked = false;
[Link]('membersihkanRumah').checked = false;
[Link]('permainanTradisional').checked = false;
if ([Link] === 0) {
[Link]('hidden');
[Link]('hidden');
return;
}
[Link]('hidden');
[Link]('hidden');
recapHTML += `
<div class="bg-gradient-to-r from-blue-50 to-green-50 p-4 rounded-xl border-2
border-blue-200 shadow-sm">
<div class="flex justify-between items-center">
<div>
<h4 class="font-bold text-lg text-blue-800">👤 ${[Link]}</h4>
<p class="text-blue-600">🏫 Kelas: ${[Link]}</p>
<p class="text-blue-600">📅 ${formattedDate}</p>
<p class="text-blue-600">⏰ Bangun jam: ${[Link]}</p>
</div>
<div class="text-right">
<button onclick="deleteWakeUpRecord(${index})"
class="bg-red-400 hover:bg-red-500 text-white px-3 py-1 rounded-full
text-sm transition-colors duration-200">
Hapus
</button>
</div>
</div>
</div>
`;
});
[Link] = recapHTML;
// Generate statistics
const totalRecords = [Link];
const uniqueNames = [...new Set([Link](r => [Link]))].length;
const uniqueClasses = [...new Set([Link](r => [Link]))].length;
const statsHTML = `
<h3 class="text-xl font-bold text-orange-800 mb-4">📈 Statistik Kebiasaan Bangun
Pagi:</h3>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-blue-600">${totalRecords}</div>
<div class="text-sm text-gray-600">Total Catatan</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-green-600">${uniqueNames}</div>
<div class="text-sm text-gray-600">Anak Berbeda</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-purple-600">${uniqueClasses}</div>
<div class="text-sm text-gray-600">Kelas Berbeda</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-orange-600">${avgTime}</div>
<div class="text-sm text-gray-600">Rata-rata Bangun</div>
</div>
</div>
<div class="mt-4 grid grid-cols-1 md:grid-cols-2 gap-4">
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-xl font-bold text-green-600">$
{[Link]().padStart(2, '0')}:${[Link]().padStart(2, '0')}</div>
<div class="text-sm text-gray-600">⏰ Paling Pagi</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-xl font-bold text-red-600">${[Link]().padStart(2,
'0')}:${[Link]().padStart(2, '0')}</div>
<div class="text-sm text-gray-600"> 😴 Paling Siang</div>
</div>
</div>
`;
[Link] = statsHTML;
}
function deleteWakeUpRecord(index) {
if (confirm('Yakin ingin menghapus catatan ini? 🤔')) {
let records = [Link]([Link]('wakeUpRecords') || '[]');
[Link](index, 1);
[Link]('wakeUpRecords', [Link](records));
showWakeUpRecap(); // Refresh the display
}
}
function clearWakeUpData() {
if (confirm('Yakin ingin menghapus SEMUA catatan bangun pagi? Data tidak bisa
dikembalikan! 😱')) {
[Link]('wakeUpRecords');
[Link]('wakeUpRecapContainer').[Link]('hidden');
[Link]('wakeUpNoDataMessage').[Link]('hidden');
if ([Link] === 0) {
[Link]('hidden');
[Link]('hidden');
return;
}
[Link]('hidden');
[Link]('hidden');
recapHTML += `
<div class="bg-gradient-to-r from-purple-50 to-pink-50 p-4 rounded-xl border-2
border-purple-200 shadow-sm">
<div class="flex justify-between items-center">
<div>
<h4 class="font-bold text-lg text-purple-800">👤 ${[Link]}</h4>
<p class="text-purple-600">🏫 Kelas: ${[Link]}</p>
<p class="text-purple-600">📅 ${formattedDate}</p>
<p class="text-purple-600">🕌 Sholat: ${prayersList}</p>
<p class="text-purple-600">📖 Mengaji: ${[Link]}</p>
</div>
<div class="text-right">
<button onclick="deletePrayerRecord(${index})"
class="bg-red-400 hover:bg-red-500 text-white px-3 py-1 rounded-full
text-sm transition-colors duration-200">
Hapus
</button>
</div>
</div>
</div>
`;
});
[Link] = recapHTML;
// Generate statistics
const totalRecords = [Link];
const uniqueNames = [...new Set([Link](r => [Link]))].length;
const uniqueClasses = [...new Set([Link](r => [Link]))].length;
// Count prayer statistics
let totalPrayers = 0;
const prayerCounts = {
'Sholat Subuh': 0,
'Sholat Dhuhur': 0,
'Sholat Ashar': 0,
'Sholat Maghrib': 0,
'Sholat Isya': 0
};
[Link](record => {
totalPrayers += [Link];
[Link](prayer => {
if (prayerCounts[prayer] !== undefined) {
prayerCounts[prayer]++;
}
});
});
const statsHTML = `
<h3 class="text-xl font-bold text-orange-800 mb-4">📈 Statistik Kegiatan Ibadah:</h3>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-purple-600">${totalRecords}</div>
<div class="text-sm text-gray-600">Total Catatan</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-green-600">${uniqueNames}</div>
<div class="text-sm text-gray-600">Anak Berbeda</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-blue-600">${totalPrayers}</div>
<div class="text-sm text-gray-600">Total Sholat</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-orange-600">${avgPrayersPerDay}</div>
<div class="text-sm text-gray-600">Rata-rata Sholat/Hari</div>
</div>
</div>
<div class="mt-4">
<h4 class="text-lg font-bold text-purple-800 mb-2">📊 Statistik per Sholat:</h4>
<div class="grid grid-cols-2 md:grid-cols-5 gap-2">
<div class="bg-white p-3 rounded-lg shadow-sm text-center">
<div class="text-lg font-bold text-yellow-600">${prayerCounts['Sholat
Subuh']}</div>
<div class="text-xs text-gray-600">🌅 Subuh</div>
</div>
<div class="bg-white p-3 rounded-lg shadow-sm text-center">
<div class="text-lg font-bold text-orange-600">${prayerCounts['Sholat
Dhuhur']}</div>
<div class="text-xs text-gray-600"> ☀️Dhuhur</div>
</div>
<div class="bg-white p-3 rounded-lg shadow-sm text-center">
<div class="text-lg font-bold text-blue-600">${prayerCounts['Sholat
Ashar']}</div>
<div class="text-xs text-gray-600"> Ashar</div>
</div>
<div class="bg-white p-3 rounded-lg shadow-sm text-center">
<div class="text-lg font-bold text-red-600">${prayerCounts['Sholat
Maghrib']}</div>
<div class="text-xs text-gray-600">🌅 Maghrib</div>
</div>
<div class="bg-white p-3 rounded-lg shadow-sm text-center">
<div class="text-lg font-bold text-indigo-600">${prayerCounts['Sholat
Isya']}</div>
<div class="text-xs text-gray-600">🌙 Isya</div>
</div>
</div>
</div>
`;
[Link] = statsHTML;
}
function deletePrayerRecord(index) {
if (confirm('Yakin ingin menghapus catatan ini? 🤔')) {
let records = [Link]([Link]('prayerRecords') || '[]');
[Link](index, 1);
[Link]('prayerRecords', [Link](records));
showPrayerRecap(); // Refresh the display
}
}
function clearPrayerData() {
if (confirm('Yakin ingin menghapus SEMUA catatan ibadah? Data tidak bisa
dikembalikan! 😱')) {
[Link]('prayerRecords');
[Link]('prayerRecapContainer').[Link]('hidden');
[Link]('prayerNoDataMessage').[Link]('hidden');
if ([Link] === 0) {
[Link]('hidden');
[Link]('hidden');
return;
}
[Link]('hidden');
[Link]('hidden');
recapHTML += `
<div class="bg-gradient-to-r from-green-50 to-blue-50 p-4 rounded-xl border-2
border-green-200 shadow-sm">
<div class="flex justify-between items-center">
<div>
<h4 class="font-bold text-lg text-green-800">👤 ${[Link]}</h4>
<p class="text-green-600">🏫 Kelas: ${[Link]}</p>
<p class="text-green-600">📅 ${formattedDate}</p>
<p class="text-green-600"> Aktivitas: ${activitiesList}</p>
</div>
<div class="text-right">
<button onclick="deleteSportsRecord(${index})"
class="bg-red-400 hover:bg-red-500 text-white px-3 py-1 rounded-full
text-sm transition-colors duration-200">
Hapus
</button>
</div>
</div>
</div>
`;
});
[Link] = recapHTML;
// Generate statistics
const totalRecords = [Link];
const uniqueNames = [...new Set([Link](r => [Link]))].length;
const uniqueClasses = [...new Set([Link](r => [Link]))].length;
[Link](record => {
totalActivities += [Link];
[Link](activity => {
if (activityCounts[activity] !== undefined) {
activityCounts[activity]++;
}
});
});
const statsHTML = `
<h3 class="text-xl font-bold text-orange-800 mb-4">📈 Statistik Kegiatan
Olahraga:</h3>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-green-600">${totalRecords}</div>
<div class="text-sm text-gray-600">Total Catatan</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-blue-600">${uniqueNames}</div>
<div class="text-sm text-gray-600">Anak Berbeda</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-purple-600">${totalActivities}</div>
<div class="text-sm text-gray-600">Total Aktivitas</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-orange-600">${avgActivitiesPerDay}</div>
<div class="text-sm text-gray-600">Rata-rata/Hari</div>
</div>
</div>
<div class="mt-4">
<h4 class="text-lg font-bold text-green-800 mb-2">📊 Statistik per Aktivitas:</h4>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-xl font-bold text-pink-600">${activityCounts['Senam
Ringan']}</div>
<div class="text-sm text-gray-600"> Senam Ringan</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-xl font-bold text-blue-600">${activityCounts['Membersihkan
Rumah']}</div>
<div class="text-sm text-gray-600">🧹 Membersihkan Rumah</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-xl font-bold text-green-600">${activityCounts['Bermain
Permainan Tradisional di Sore Hari']}</div>
<div class="text-sm text-gray-600">🎯 Permainan Tradisional</div>
</div>
</div>
</div>
`;
[Link] = statsHTML;
}
function deleteSportsRecord(index) {
if (confirm('Yakin ingin menghapus catatan ini? 🤔')) {
let records = [Link]([Link]('sportsRecords') || '[]');
[Link](index, 1);
[Link]('sportsRecords', [Link](records));
showSportsRecap(); // Refresh the display
}
}
function clearSportsData() {
if (confirm('Yakin ingin menghapus SEMUA catatan olahraga? Data tidak bisa
dikembalikan! 😱')) {
[Link]('sportsRecords');
[Link]('sportsRecapContainer').[Link]('hidden');
[Link]('sportsNoDataMessage').[Link]('hidden');
if ([Link] === 0) {
[Link]('hidden');
[Link]('hidden');
return;
}
[Link]('hidden');
[Link]('hidden');
recapHTML += `
<div class="bg-gradient-to-r from-red-50 to-orange-50 p-4 rounded-xl border-2
border-red-200 shadow-sm">
<div class="flex justify-between items-center">
<div class="flex-1">
<h4 class="font-bold text-lg text-red-800">👤 ${[Link]}</h4>
<p class="text-red-600">🏫 Kelas: ${[Link]}</p>
<p class="text-red-600">📅 ${formattedDate}</p>
<div class="mt-2 p-3 bg-white rounded-lg border border-red-200">
<p class="text-sm font-medium text-red-700">🥗 Makanan Sehat:</p>
<p class="text-red-600 text-sm mt-1">${[Link]}</p>
</div>
</div>
<div class="text-right ml-4">
<button onclick="deleteFoodRecord(${index})"
class="bg-red-400 hover:bg-red-500 text-white px-3 py-1 rounded-full
text-sm transition-colors duration-200">
Hapus
</button>
</div>
</div>
</div>
`;
});
[Link] = recapHTML;
// Generate statistics
const totalRecords = [Link];
const uniqueNames = [...new Set([Link](r => [Link]))].length;
const uniqueClasses = [...new Set([Link](r => [Link]))].length;
[Link](food => {
const count = ([Link](new RegExp(food, 'g')) || []).length;
if (count > 0) {
foodCounts[food] = count;
}
});
const statsHTML = `
<h3 class="text-xl font-bold text-orange-800 mb-4">📈 Statistik Makanan Sehat:</h3>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-red-600">${totalRecords}</div>
<div class="text-sm text-gray-600">Total Catatan</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-green-600">${uniqueNames}</div>
<div class="text-sm text-gray-600">Anak Berbeda</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-orange-600">${uniqueClasses}</div>
<div class="text-sm text-gray-600">Kelas Berbeda</div>
</div>
</div>
${[Link] > 0 ? `
<div class="mt-4">
<h4 class="text-lg font-bold text-red-800 mb-2">🥗 Makanan Sehat
Terpopuler:</h4>
<div class="grid grid-cols-2 md:grid-cols-5 gap-2">
${[Link](([food, count]) => `
<div class="bg-white p-3 rounded-lg shadow-sm text-center">
<div class="text-lg font-bold text-green-600">${count}</div>
<div class="text-xs text-gray-600 capitalize">${food}</div>
</div>
`).join('')}
</div>
</div>
` : ''}
`;
[Link] = statsHTML;
}
function deleteFoodRecord(index) {
if (confirm('Yakin ingin menghapus catatan ini? 🤔')) {
let records = [Link]([Link]('healthyFoodRecords') || '[]');
[Link](index, 1);
[Link]('healthyFoodRecords', [Link](records));
showFoodRecap(); // Refresh the display
}
}
function clearFoodData() {
if (confirm('Yakin ingin menghapus SEMUA catatan makanan sehat? Data tidak bisa
dikembalikan! 😱')) {
[Link]('healthyFoodRecords');
[Link]('foodRecapContainer').[Link]('hidden');
[Link]('foodNoDataMessage').[Link]('hidden');
if ([Link] === 0) {
[Link]('hidden');
[Link]('hidden');
return;
}
[Link]('hidden');
[Link]('hidden');
recapHTML += `
<div class="bg-gradient-to-r from-blue-50 to-indigo-50 p-4 rounded-xl border-2
border-blue-200 shadow-sm">
<div class="flex justify-between items-start">
<div class="flex-1">
<h4 class="font-bold text-lg text-blue-800">👤 ${[Link]}</h4>
<p class="text-blue-600">🏫 Kelas: ${[Link]}</p>
<p class="text-blue-600">📅 ${formattedDate}</p>
<p class="text-blue-600">📚 Sudah belajar: ${[Link]}</p>
<p class="text-blue-600">📝 Status tugas: ${[Link]}</p>
<div class="mt-2 p-3 bg-white rounded-lg border border-blue-200">
<p class="text-sm font-medium text-blue-700">📖 Pelajaran yang
dipelajari:</p>
<p class="text-blue-600 text-sm mt-1">${[Link]}</p>
</div>
${[Link] ? `
<div class="mt-2 p-2 bg-green-50 rounded-lg border border-green-200">
<p class="text-sm font-medium text-green-700">📎 File tugas: $
{[Link]}</p>
</div>
` : ''}
</div>
<div class="text-right ml-4">
<button onclick="deleteLearningRecord(${index})"
class="bg-red-400 hover:bg-red-500 text-white px-3 py-1 rounded-full
text-sm transition-colors duration-200">
Hapus
</button>
</div>
</div>
</div>
`;
});
[Link] = recapHTML;
// Generate statistics
const totalRecords = [Link];
const uniqueNames = [...new Set([Link](r => [Link]))].length;
const uniqueClasses = [...new Set([Link](r => [Link]))].length;
const statsHTML = `
<h3 class="text-xl font-bold text-orange-800 mb-4">📈 Statistik Kegiatan Belajar:</h3>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-blue-600">${totalRecords}</div>
<div class="text-sm text-gray-600">Total Catatan</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-green-600">${uniqueNames}</div>
<div class="text-sm text-gray-600">Anak Berbeda</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-purple-600">${studyPercentage}%</div>
<div class="text-sm text-gray-600">Rajin Belajar</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-orange-600">${homeworkPercentage}%</div>
<div class="text-sm text-gray-600">Tugas Selesai</div>
</div>
</div>
<div class="mt-4 grid grid-cols-1 md:grid-cols-3 gap-4">
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-xl font-bold text-green-600">${studiedCount}</div>
<div class="text-sm text-gray-600">📚 Sudah Belajar</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-xl font-bold text-blue-600">${homeworkDoneCount}</div>
<div class="text-sm text-gray-600">✅ Tugas Selesai</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-xl font-bold text-purple-600">${filesUploadedCount}</div>
<div class="text-sm text-gray-600">📎 File Diupload</div>
</div>
</div>
`;
[Link] = statsHTML;
}
function deleteLearningRecord(index) {
if (confirm('Yakin ingin menghapus catatan ini? 🤔')) {
let records = [Link]([Link]('learningRecords') || '[]');
[Link](index, 1);
[Link]('learningRecords', [Link](records));
showLearningRecap(); // Refresh the display
}
}
function clearLearningData() {
if (confirm('Yakin ingin menghapus SEMUA catatan belajar? Data tidak bisa
dikembalikan! 😱')) {
[Link]('learningRecords');
[Link]('learningRecapContainer').[Link]('hidden');
[Link]('learningNoDataMessage').[Link]('hidden');
if ([Link] === 0) {
[Link]('hidden');
[Link]('hidden');
return;
}
[Link]('hidden');
[Link]('hidden');
recapHTML += `
<div class="bg-gradient-to-r from-teal-50 to-cyan-50 p-4 rounded-xl border-2
border-teal-200 shadow-sm">
<div class="flex justify-between items-start">
<div class="flex-1">
<h4 class="font-bold text-lg text-teal-800">👤 ${[Link]}</h4>
<p class="text-teal-600">🏫 Kelas: ${[Link]}</p>
<p class="text-teal-600">📅 ${formattedDate}</p>
<p class="text-teal-600">👫 Bermain dengan teman: $
{[Link]}</p>
<p class="text-teal-600">👴 Bertemu orang tua: ${[Link]}</p>
<p class="text-teal-600">🧹 Gotong royong kelas: ${[Link]}</p>
${[Link] ? `
<div class="mt-2 p-3 bg-white rounded-lg border border-teal-200">
<p class="text-sm font-medium text-teal-700">🤝 Interaksi dengan
orang tua:</p>
<p class="text-teal-600 text-sm mt-1">${[Link]}</p>
</div>
` : ''}
</div>
<div class="text-right ml-4">
<button onclick="deleteSocialRecord(${index})"
class="bg-red-400 hover:bg-red-500 text-white px-3 py-1 rounded-full
text-sm transition-colors duration-200">
Hapus
</button>
</div>
</div>
</div>
`;
});
[Link] = recapHTML;
// Generate statistics
const totalRecords = [Link];
const uniqueNames = [...new Set([Link](r => [Link]))].length;
const uniqueClasses = [...new Set([Link](r => [Link]))].length;
const statsHTML = `
<h3 class="text-xl font-bold text-orange-800 mb-4">📈 Statistik Kegiatan
Bermasyarakat:</h3>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-teal-600">${totalRecords}</div>
<div class="text-sm text-gray-600">Total Catatan</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-green-600">${uniqueNames}</div>
<div class="text-sm text-gray-600">Anak Berbeda</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-blue-600">${socialPercentage}%</div>
<div class="text-sm text-gray-600">Bermain Teman</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-purple-600">${respectPercentage}%</div>
<div class="text-sm text-gray-600">Hormat Orang Tua</div>
</div>
</div>
<div class="mt-4 grid grid-cols-1 md:grid-cols-3 gap-4">
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-xl font-bold text-blue-600">${playWithFriendsCount}</div>
<div class="text-sm text-gray-600">👫 Bermain dengan Teman</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-xl font-bold text-green-600">${meetEldersCount}</div>
<div class="text-sm text-gray-600">👴 Bertemu Orang Tua</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-xl font-bold text-orange-600">${cleanClassActiveCount}</div>
<div class="text-sm text-gray-600">🧹 Aktif Gotong Royong</div>
</div>
</div>
`;
[Link] = statsHTML;
}
function deleteSocialRecord(index) {
if (confirm('Yakin ingin menghapus catatan ini? 🤔')) {
let records = [Link]([Link]('socialRecords') || '[]');
[Link](index, 1);
[Link]('socialRecords', [Link](records));
showSocialRecap(); // Refresh the display
}
}
function clearSocialData() {
if (confirm('Yakin ingin menghapus SEMUA catatan bermasyarakat? Data tidak bisa
dikembalikan! 😱')) {
[Link]('socialRecords');
[Link]('socialRecapContainer').[Link]('hidden');
[Link]('socialNoDataMessage').[Link]('hidden');
if ([Link] === 0) {
[Link]('hidden');
[Link]('hidden');
return;
}
[Link]('hidden');
[Link]('hidden');
recapHTML += `
<div class="bg-gradient-to-r from-indigo-50 to-purple-50 p-4 rounded-xl border-2
border-indigo-200 shadow-sm">
<div class="flex justify-between items-center">
<div>
<h4 class="font-bold text-lg text-indigo-800">👤 ${[Link]}</h4>
<p class="text-indigo-600">🏫 Kelas: ${[Link]}</p>
<p class="text-indigo-600">📅 ${formattedDate}</p>
<p class="text-indigo-600"> 😴 Tidur jam: ${[Link]}</p>
</div>
<div class="text-right">
<button onclick="deleteSleepRecord(${index})"
class="bg-red-400 hover:bg-red-500 text-white px-3 py-1 rounded-full
text-sm transition-colors duration-200">
Hapus
</button>
</div>
</div>
</div>
`;
});
[Link] = recapHTML;
// Generate statistics
const totalRecords = [Link];
const uniqueNames = [...new Set([Link](r => [Link]))].length;
const uniqueClasses = [...new Set([Link](r => [Link]))].length;
const statsHTML = `
<h3 class="text-xl font-bold text-orange-800 mb-4">📈 Statistik Kebiasaan Tidur:</h3>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-indigo-600">${totalRecords}</div>
<div class="text-sm text-gray-600">Total Catatan</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-green-600">${uniqueNames}</div>
<div class="text-sm text-gray-600">Anak Berbeda</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-purple-600">${uniqueClasses}</div>
<div class="text-sm text-gray-600">Kelas Berbeda</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-orange-600">${avgTime}</div>
<div class="text-sm text-gray-600">Rata-rata Tidur</div>
</div>
</div>
<div class="mt-4 grid grid-cols-1 md:grid-cols-3 gap-4">
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-xl font-bold text-green-600">$
{[Link]().padStart(2, '0')}:${[Link]().padStart(2, '0')}</div>
<div class="text-sm text-gray-600"> 😴 Paling Cepat</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-xl font-bold text-red-600">${[Link]().padStart(2,
'0')}:${[Link]().padStart(2, '0')}</div>
<div class="text-sm text-gray-600">🌙 Paling Larut</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-xl font-bold text-blue-600">${earlySleeperPercentage}%</div>
<div class="text-sm text-gray-600">⭐ Tidur Cepat
(≤21:00)</div>
</div>
</div>
`;
[Link] = statsHTML;
}
function deleteSleepRecord(index) {
if (confirm('Yakin ingin menghapus catatan ini? 🤔')) {
let records = [Link]([Link]('sleepRecords') || '[]');
[Link](index, 1);
[Link]('sleepRecords', [Link](records));
showSleepRecap(); // Refresh the display
}
}
function clearSleepData() {
if (confirm('Yakin ingin menghapus SEMUA catatan tidur? Data tidak bisa
dikembalikan! 😱')) {
[Link]('sleepRecords');
[Link]('sleepRecapContainer').[Link]('hidden');
[Link]('sleepNoDataMessage').[Link]('hidden');
function saveHealthyFoodRecord() {
// Get form values
const name = [Link]('foodName').value;
const kelas = [Link]('foodClass').value;
const date = [Link]('foodDate').value;
const healthyFood = [Link]('healthyFood').value;
// Clear form
[Link]('foodName').value = '';
[Link]('foodClass').value = '';
[Link]('foodDate').value = '';
[Link]('healthyFood').value = '';
// Save to localStorage
const record = {
parentName: parentName,
childName: childName,
childClass: childClass,
reflectionPeriod: reflectionPeriod,
reflectionDate: reflectionDate,
habitRatings: {
bangunPagi: parseInt(habit1),
beribadah: parseInt(habit2),
berolahraga: parseInt(habit3),
makanSehat: parseInt(habit4),
gemarBelajar: parseInt(habit5),
bermasyarakat: parseInt(habit6),
tidurCepat: parseInt(habit7)
},
reflectionAnswers: {
easiestHabit: easiestHabit,
hardestHabit: hardestHabit,
positiveChanges: positiveChanges,
parentSupport: parentSupport,
improvementPlan: improvementPlan
},
timestamp: new Date().toISOString()
};
// Clear form
clearParentReflectionForm();
function clearParentReflectionForm() {
[Link]('parentName').value = '';
[Link]('childName').value = '';
[Link]('childClass').value = '';
[Link]('reflectionPeriod').value = '';
[Link]('reflectionDate').value = new Date().toISOString().split('T')[0];
function showParentReflectionRecap() {
const records = [Link]([Link]('parentReflectionRecords') || '[]');
const recapContainer = [Link]('parentReflectionRecapContainer');
const noDataMessage = [Link]('parentReflectionNoDataMessage');
const recapContent = [Link]('parentReflectionRecapContent');
const recapStats = [Link]('parentReflectionRecapStats');
if ([Link] === 0) {
[Link]('hidden');
[Link]('hidden');
return;
}
[Link]('hidden');
[Link]('hidden');
const habitNames = [' Bangun Pagi', ' Beribadah', ' Berolahraga', '🥗 Makan Sehat', '📚
Gemar Belajar', '😴
Bermasyarakat', '😴 Tidur Cepat'];
const habitValues = [Link]([Link]);
const averageRating = ([Link]((a, b) => a + b, 0) /
[Link]).toFixed(1);
recapHTML += `
<div class="bg-gradient-to-r from-purple-50 to-pink-50 p-6 rounded-xl border-2
border-purple-200 shadow-sm">
<div class="flex justify-between items-start mb-4">
<div class="flex-1">
<h4 class="font-bold text-xl text-purple-800"> ${[Link]}</h4>
<p class="text-purple-600 text-lg">👤 Anak: ${[Link]} (Kelas $
{[Link]})</p>
<p class="text-purple-600">📅 ${formattedDate}</p>
<p class="text-purple-600">📊 Periode: ${[Link]}</p>
<p class="text-purple-600 font-
semibold">⭐ Rata-rata Penilaian: ${averageRating}/5</p>
</div>
<div class="text-right">
<button onclick="deleteParentReflectionRecord(${index})"
class="bg-red-400 hover:bg-red-500 text-white px-3 py-1 rounded-full
text-sm transition-colors duration-200">
Hapus
</button>
</div>
</div>
[Link] = recapHTML;
// Generate statistics
const totalRecords = [Link];
const uniqueParents = [...new Set([Link](r => [Link]))].length;
const uniqueChildren = [...new Set([Link](r => [Link]))].length;
const uniqueClasses = [...new Set([Link](r => [Link]))].length;
[Link](record => {
[Link](habitAverages).forEach(habit => {
habitAverages[habit] += [Link][habit];
});
});
[Link](habitAverages).forEach(habit => {
habitAverages[habit] = (habitAverages[habit] / totalRecords).toFixed(1);
});
const statsHTML = `
<h3 class="text-xl font-bold text-orange-800 mb-4">📈 Statistik Refleksi Orang
Tua:</h3>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4 mb-6">
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-purple-600">${totalRecords}</div>
<div class="text-sm text-gray-600">Total Refleksi</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-blue-600">${uniqueParents}</div>
<div class="text-sm text-gray-600">Orang Tua Berbeda</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-green-600">${uniqueChildren}</div>
<div class="text-sm text-gray-600">Anak Berbeda</div>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm text-center">
<div class="text-2xl font-bold text-orange-600">${overallAverage}</div>
<div class="text-sm text-gray-600">Rata-rata Keseluruhan</div>
</div>
</div>
<div>
<h4 class="text-lg font-bold text-purple-800 mb-3">📊 Rata-rata Penilaian per
Kebiasaan:</h4>
<div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-7 gap-3">
<div class="bg-white p-3 rounded-lg shadow-sm text-center">
<div class="text-lg font-bold ${[Link] >= 4 ? 'text-green-
600' : [Link] >= 3 ? 'text-yellow-600' : 'text-red-600'}">$
{[Link]}</div>
<div class="text-xs text-gray-600">🌅 Bangun Pagi</div>
</div>
<div class="bg-white p-3 rounded-lg shadow-sm text-center">
<div class="text-lg font-bold ${[Link] >= 4 ? 'text-green-
600' : [Link] >= 3 ? 'text-yellow-600' : 'text-red-600'}">$
{[Link]}</div>
<div class="text-xs text-gray-600">🕌 Beribadah</div>
</div>
<div class="bg-white p-3 rounded-lg shadow-sm text-center">
<div class="text-lg font-bold ${[Link] >= 4 ? 'text-green-
600' : [Link] >= 3 ? 'text-yellow-600' : 'text-red-600'}">$
{[Link]}</div>
<div class="text-xs text-gray-600"> Berolahraga</div>
</div>
<div class="bg-white p-3 rounded-lg shadow-sm text-center">
<div class="text-lg font-bold ${[Link] >= 4 ? 'text-green-
600' : [Link] >= 3 ? 'text-yellow-600' : 'text-red-600'}">$
{[Link]}</div>
<div class="text-xs text-gray-600">🥗 Makan Sehat</div>
</div>
<div class="bg-white p-3 rounded-lg shadow-sm text-center">
<div class="text-lg font-bold ${[Link] >= 4 ? 'text-green-
600' : [Link] >= 3 ? 'text-yellow-600' : 'text-red-600'}">$
{[Link]}</div>
<div class="text-xs text-gray-600">📚 Gemar Belajar</div>
</div>
<div class="bg-white p-3 rounded-lg shadow-sm text-center">
<div class="text-lg font-bold ${[Link] >= 4 ? 'text-
green-600' : [Link] >= 3 ? 'text-yellow-600' : 'text-red-600'}">$
{[Link]}</div>
<div class="text-xs text-gray-600">🤝 Bermasyarakat</div>
</div>
<div class="bg-white p-3 rounded-lg shadow-sm text-center">
<div class="text-lg font-bold ${[Link] >= 4 ? 'text-green-
600' : [Link] >= 3 ? 'text-yellow-600' : 'text-red-600'}">$
{[Link]}</div>
<div class="text-xs text-gray-600"> 😴 Tidur Cepat</div>
</div>
</div>
</div>
`;
[Link] = statsHTML;
}
function deleteParentReflectionRecord(index) {
if (confirm('Yakin ingin menghapus refleksi ini? 🤔')) {
let records = [Link]([Link]('parentReflectionRecords') || '[]');
[Link](index, 1);
[Link]('parentReflectionRecords', [Link](records));
showParentReflectionRecap(); // Refresh the display
}
}
function clearParentReflectionData() {
if (confirm('Yakin ingin menghapus SEMUA refleksi orang tua? Data tidak bisa
dikembalikan! 😱')) {
[Link]('parentReflectionRecords');
[Link]('parentReflectionRecapContainer').[Link]('hidden');
[Link]('parentReflectionNoDataMessage').[Link]('hidden');
// Create preview
if ([Link]('image/')) {
const reader = new FileReader();
[Link] = function(e) {
[Link] = `<img src="${[Link]}" alt="Preview" class="max-
w-full h-32 object-cover rounded-lg border-2 border-blue-200">`;
};
[Link](file);
} else if ([Link]('video/')) {
const reader = new FileReader();
[Link] = function(e) {
[Link] = `<video controls class="max-w-full h-32 rounded-lg
border-2 border-blue-200"><source src="${[Link]}" type="${[Link]}">Video tidak dapat
ditampilkan.</video>`;
};
[Link](file);
} else {
[Link] = `<div class="text-blue-600 text-sm">📄 File siap untuk
diupload</div>`;
}
[Link]('hidden');
}
});
function removeFile() {
[Link]('homeworkFile').value = '';
[Link]('filePreview').[Link]('hidden');
[Link]('fileDisplay').innerHTML = '';
}
function saveLearningRecord() {
// Get form values
const name = [Link]('learningName').value;
const kelas = [Link]('learningClass').value;
const date = [Link]('learningDate').value;
const studiedToday =
[Link]('input[name="studiedToday"]:checked')?.value;
const subjectsLearned = [Link]('subjectsLearned').value;
const homeworkDone =
[Link]('input[name="homeworkDone"]:checked')?.value;
const file = [Link]('homeworkFile').files[0];
function saveRecord() {
const record = {
name: name,
class: kelas,
date: date,
studiedToday: studiedToday,
subjectsLearned: subjectsLearned,
homeworkDone: homeworkDone,
file: fileData,
timestamp: new Date().toISOString()
};
// Clear form
[Link]('learningName').value = '';
[Link]('learningClass').value = '';
[Link]('learningDate').value = new Date().toISOString().split('T')
[0];
const studiedRadios = [Link]('input[name="studiedToday"]');
[Link](radio => [Link] = false);
[Link]('subjectsLearned').value = '';
const homeworkRadios =
[Link]('input[name="homeworkDone"]');
[Link](radio => [Link] = false);
[Link]('homeworkFile').value = '';
[Link]('filePreview').[Link]('hidden');
function saveSocialRecord() {
// Get form values
const name = [Link]('socialName').value;
const kelas = [Link]('socialClass').value;
const date = [Link]('socialDate').value;
const playWithFriends =
[Link]('input[name="playWithFriends"]:checked')?.value;
const meetElders =
[Link]('input[name="meetElders"]:checked')?.value;
const elderInteraction = [Link]('elderInteraction').value;
const cleanClass =
[Link]('input[name="cleanClass"]:checked')?.value;
// Check if required fields are filled
if (name && kelas && date && playWithFriends && meetElders && cleanClass) {
// Save to localStorage
const record = {
name: name,
class: kelas,
date: date,
playWithFriends: playWithFriends,
meetElders: meetElders,
elderInteraction: elderInteraction,
cleanClass: cleanClass,
timestamp: new Date().toISOString()
};
// Clear form
[Link]('socialName').value = '';
[Link]('socialClass').value = '';
[Link]('socialDate').value = new Date().toISOString().split('T')[0];
const playRadios = [Link]('input[name="playWithFriends"]');
[Link](radio => [Link] = false);
const elderRadios = [Link]('input[name="meetElders"]');
[Link](radio => [Link] = false);
[Link]('elderInteraction').value = '';
const cleanRadios = [Link]('input[name="cleanClass"]');
[Link](radio => [Link] = false);
function saveSleepRecord() {
// Get form values
const name = [Link]('sleepName').value;
const kelas = [Link]('sleepClass').value;
const date = [Link]('sleepDate').value;
const time = [Link]('sleepTime').value;
// Clear form
[Link]('sleepName').value = '';
[Link]('sleepClass').value = '';
[Link]('sleepDate').value = new Date().toISOString().split('T')[0];
[Link]('sleepTime').value = '';