Kategori: Teknologi Pendidikan

  • Deskripsi Rapor Kilat dengan AI: Personal untuk Tiap Siswa, Selesai dalam Satu Jam

    Deskripsi Rapor Kilat dengan AI: Personal untuk Tiap Siswa, Selesai dalam Satu Jam

    Setiap akhir semester, wali kelas menghadapi pekerjaan yang sama: menulis deskripsi capaian untuk puluhan siswa. Satu kelas berisi 30 siswa dengan beberapa mata pelajaran bisa berarti ratusan paragraf. Karena waktunya mepet, tidak sedikit guru akhirnya menyalin kalimat yang sama untuk banyak anak dan hanya mengganti namanya.

    Padahal orang tua membaca rapor untuk mengenal perkembangan anaknya sendiri. Kalimat yang seragam terasa dingin dan tidak membantu.

    Dalam tulisan ini saya berbagi cara yang saya pakai: menulis deskripsi rapor dengan bantuan AI, cepat tetapi tetap sesuai perkembangan masing-masing siswa. Untuk satu kelas, pekerjaannya bisa selesai dalam waktu kurang dari satu jam.

    Prinsipnya: AI tidak mengarang, AI merangkai

    Kesalahan yang paling sering terjadi adalah meminta AI “buatkan deskripsi rapor untuk 30 siswa” tanpa memberi data apa pun. Hasilnya pasti kalimat umum yang sama semua.

    Caranya dibalik. Guru tetap menjadi sumber informasi tentang setiap siswa, sedangkan AI hanya merangkai informasi itu menjadi kalimat yang rapi. Deskripsi menjadi berbeda untuk tiap siswa karena datanya memang berbeda, bukan karena kalimatnya diacak.

    Langkah 1: Siapkan data singkat per siswa

    Buat tabel sederhana di spreadsheet. Satu baris untuk satu siswa, cukup empat kolom:

    KodeTP paling dikuasaiTP perlu bimbinganCatatan guru
    S01Pecahan senilai, soal ceritaMembagi pecahanRajin bertanya, sering membantu teman
    S02Mengurutkan pecahanSoal cerita pecahanTeliti tapi lambat, perlu didorong berani mencoba
    S03Semua TP tercapai–Cepat paham, bisa diberi tantangan lebih

    TP adalah tujuan pembelajaran. Kolom TP bisa diisi dengan memilih dari daftar TP yang sudah ada. Kolom catatan guru inilah yang membuat deskripsi terasa personal. Satu ciri khas per siswa sudah cukup, dan mengisinya hanya butuh sekitar 15–20 detik per anak.

    Perhatikan bahwa yang dipakai adalah kode siswa, bukan nama lengkap. Nama baru dipasangkan kembali setelah deskripsi selesai, supaya data pribadi siswa tidak ikut dikirim ke layanan AI.

    Langkah 2: Beri AI aturan penulisan yang jelas

    Perintah yang baik membuat hasil AI konsisten. Contoh perintah yang bisa langsung dipakai di ChatGPT, Gemini, atau Claude:

    Kamu adalah wali kelas SD yang menulis deskripsi rapor Kurikulum Merdeka. Untuk setiap baris data di bawah, tulis deskripsi capaian mata pelajaran Matematika dengan aturan:

    • Kalimat 1: “Ananda menunjukkan penguasaan yang baik dalam …” (dari kolom TP dikuasai).
    • Kalimat 2: “Ananda perlu bimbingan dalam …” (dari kolom TP perlu bimbingan). Jika kosong, ganti dengan saran pengayaan.
    • Kalimat 3: satu kalimat tentang sikap belajar dari kolom catatan, positif dan membangun.
    • Maksimal 60 kata, bahasa santun untuk dibaca orang tua.
    • Jangan menambahkan hal yang tidak ada di data. Jangan memakai kalimat pembuka yang sama untuk siswa berurutan.
    • Keluarkan hasil sebagai tabel: Kode | Deskripsi.

    Data: (tempel tabel dari spreadsheet)

    Aturan “jangan menambahkan hal yang tidak ada di data” sangat penting. Tanpa aturan itu, AI kadang mengarang prestasi atau kebiasaan yang tidak pernah ada.

    Langkah 3: Kerjakan per kelompok kecil

    Jangan menempel data 30 siswa sekaligus. Kirim 10–15 siswa per sekali kirim, sehingga satu kelas selesai dalam 2–3 kali. Dengan kelompok kecil, AI lebih teliti dan kalimatnya lebih bervariasi.

    Salin hasilnya kembali ke spreadsheet di kolom baru. Setelah itu pasangkan kode dengan nama asli memakai rumus VLOOKUP atau INDEX/MATCH.

    Langkah 4: Baca ulang sebelum dimasukkan ke rapor

    Bagian ini tidak boleh dilewati. Luangkan sekitar satu menit per siswa untuk memeriksa tiga hal:

    1. Faktanya benar. Tidak ada TP atau sikap yang tertukar dengan siswa lain.
    2. Tidak terlalu mirip. Dua siswa berurutan tidak memiliki kalimat yang hampir sama.
    3. Nadanya santun. Kalimat “perlu bimbingan” tetap terdengar menyemangati, bukan menghakimi.

    Ingat, guru tetap bertanggung jawab atas isi rapor. AI hanya membantu menyusun kalimat.

    Berapa lama waktunya?

    Untuk satu kelas berisi 30 siswa:

    KegiatanPerkiraan waktu
    Mengisi data per siswa±10 menit
    Proses AI (2–3 kali kirim)±5 menit
    Membaca ulang dan merapikan20–30 menit
    Totalkurang dari 1 jam

    Bandingkan dengan cara manual yang biasanya menghabiskan beberapa malam.

    Tips agar tidak terasa copy-paste

    • Jangan kosongkan kolom catatan. Satu ciri khas per siswa sudah cukup untuk membuat deskripsinya hidup.
    • Minta variasi kata kerja, misalnya mampu, terampil, konsisten, mulai menunjukkan, dan semakin percaya diri.
    • Buat bank frasa sekolah. Sepakati gaya bahasa bersama rekan guru, sehingga rapor seragam dalam nada tetapi tetap personal dalam isi.
    • Simpan perintah yang sudah terbukti bagus, lalu pakai lagi semester berikutnya.

    Jaga privasi dan kejujuran

    • Gunakan kode siswa, jangan kirim nama lengkap, NISN, atau data keluarga ke layanan AI.
    • Jangan biarkan AI menambahkan prestasi atau masalah yang tidak tercatat.
    • Kalau sekolah sudah memiliki aturan penggunaan AI, ikuti aturan tersebut.

    Penutup

    AI tidak menggantikan peran guru dalam mengenal siswanya. Justru sebaliknya: dengan waktu menulis yang jauh lebih singkat, guru punya lebih banyak waktu untuk benar-benar mengamati dan mendampingi anak.

    Saya juga menyiapkan template spreadsheet yang sudah berisi kolom data, daftar TP, perintah AI, dan kolom pemeriksaan hasil. Bagi Bapak dan Ibu guru atau sekolah yang ingin mempraktikkannya bersama, silakan hubungi saya lewat halaman kontak di pakyendi.com. Materi ini juga tersedia dalam bentuk pelatihan singkat untuk guru.

  • 10 Tips Sederhana Membuat Program dengan Laravel untuk Pemula

    10 Tips Sederhana Membuat Program dengan Laravel untuk Pemula

    Laravel adalah kerangka kerja (framework) PHP yang membuat pembuatan aplikasi web jauh lebih rapi dan cepat. Saya memakainya untuk membangun aplikasi sekolah, seperti sistem informasi akademik untuk mengelola data siswa, nilai, dan jadwal.

    Dari pengalaman itu, saya belajar bahwa program yang baik tidak harus rumit. Yang penting rapi, mudah dirawat, dan bisa dikembangkan bertahap. Berikut sepuluh tips sederhana yang saya pakai sehari-hari. Tips ini cocok untuk guru, mahasiswa, atau siapa saja yang baru mulai belajar Laravel.

    Sebelum mulai, pastikan komputer sudah terpasang PHP, Composer, dan database (misalnya MySQL). Cara memasangnya bisa dilihat di dokumentasi resmi Laravel di laravel.com/docs.

    1. Rancang data di kertas dulu, baru menulis kode

    Sebelum membuka laptop, tulis dulu data apa saja yang akan dikelola dan bagaimana hubungannya. Contoh untuk aplikasi nilai sekolah: satu kelas punya banyak siswa, dan satu siswa punya banyak nilai.

    Coretan sederhana ini akan menjadi tabel di database. Lima belas menit merancang di kertas bisa menghemat berjam-jam membongkar kode di kemudian hari.

    2. Biarkan Artisan membuatkan file untuk Anda

    Laravel punya asisten baris perintah bernama Artisan. Daripada membuat file satu per satu, cukup satu perintah:

    php artisan make:model Siswa -mcr

    Perintah itu langsung membuat empat hal sekaligus: model Siswa, file migration untuk tabelnya (-m), controller (-c), dan isi controller berupa fungsi standar tambah–lihat–ubah–hapus (-r). Lebih cepat dan nama filenya pasti seragam.

    3. Kelola tabel lewat migration, bukan lewat phpMyAdmin

    Migration adalah “resep” pembuatan tabel yang ditulis dalam kode. Contoh:

    Schema::create('siswas', function (Blueprint $table) {
        $table->id();
        $table->string('nama');
        $table->string('nisn', 10)->unique();
        $table->foreignId('kelas_id')->constrained('kelas');
        $table->timestamps();
    });

    Lalu jalankan:

    php artisan migrate

    Keuntungannya, susunan tabel tersimpan bersama kode. Saat aplikasi dipindah ke komputer lain atau ke hosting, tabel bisa dibuat ulang persis sama hanya dengan satu perintah.

    Satu catatan untuk nama tabel berbahasa Indonesia: Laravel menebak nama tabel dengan aturan bahasa Inggris, sehingga model Siswa menjadi tabel siswas. Untuk kata yang tebakannya bisa meleset, seperti Kelas, sebutkan nama tabelnya secara jelas, misalnya constrained('kelas') di migration dan protected $table = 'kelas'; di model.

    4. Gunakan route resource dan beri nama setiap route

    Untuk fitur tambah–lihat–ubah–hapus, tidak perlu menulis tujuh baris route. Cukup:

    Route::resource('siswa', SiswaController::class);

    Laravel otomatis memberi nama pada setiap route, misalnya siswa.index dan siswa.create. Di tampilan, panggil route dengan namanya:

    <a href="{{ route('siswa.create') }}">Tambah Siswa</a>

    Jika suatu hari alamat URL berubah, tautan di seluruh aplikasi tetap berfungsi tanpa perlu diubah satu per satu.

    5. Jangan pernah percaya isian formulir: selalu validasi

    Pengguna bisa salah ketik, mengosongkan kolom, atau sengaja memasukkan data aneh. Laravel membuat pemeriksaan data sangat mudah:

    public function store(Request $request)
    {
        $data = $request->validate([
            'nama'     => 'required|max:100',
            'nisn'     => 'required|digits:10|unique:siswas',
            'kelas_id' => 'required|exists:kelas,id',
        ]);
    
        Siswa::create($data);
    
        return redirect()->route('siswa.index')
            ->with('pesan', 'Data siswa berhasil disimpan.');
    }

    Jika ada isian yang tidak sesuai, Laravel otomatis mengembalikan pengguna ke formulir beserta pesan kesalahannya. Jangan lupa isi $fillable di model agar hanya kolom yang diizinkan yang bisa disimpan.

    6. Manfaatkan relasi Eloquent, dan hindari query berulang

    Tuliskan hubungan antartabel di model:

    // app/Models/Kelas.php
    public function siswa()
    {
        return $this->hasMany(Siswa::class);
    }
    
    // app/Models/Siswa.php
    public function kelas()
    {
        return $this->belongsTo(Kelas::class);
    }

    Setelah itu, nama kelas seorang siswa cukup dipanggil dengan $siswa->kelas->nama.

    Satu jebakan yang sering terjadi: saat menampilkan 300 siswa beserta kelasnya, aplikasi diam-diam menjalankan 301 query ke database. Halaman jadi lambat. Solusinya, ambil relasinya sekaligus dengan with():

    $siswa = Siswa::with('kelas')->orderBy('nama')->paginate(25);

    Dengan paginate(), data juga otomatis dibagi per halaman sehingga tetap ringan meski siswanya ribuan.

    7. Buat satu layout Blade, lalu pakai berulang

    Kepala halaman, menu, dan bagian bawah biasanya sama di semua halaman. Simpan di satu file layout, misalnya resources/views/layouts/app.blade.php:

    <!doctype html>
    <html lang="id">
    <head><title>@yield('judul') | Aplikasi Sekolah</title></head>
    <body>
        @include('partials.menu')
        <main>@yield('isi')</main>
    </body>
    </html>

    Setiap halaman cukup “menumpang” pada layout tersebut:

    @extends('layouts.app')
    @section('judul', 'Daftar Siswa')
    @section('isi')
        {{-- isi halaman di sini --}}
    @endsection

    Ingin mengganti menu? Cukup ubah satu file, dan semua halaman ikut berubah.

    8. Isi data contoh dengan seeder

    Mengetik puluhan data uji coba secara manual itu melelahkan. Buat seeder, lalu isi data contoh dengan satu perintah:

    php artisan make:seeder KelasSeeder
    php artisan db:seed

    Saat database perlu dikosongkan dan diisi ulang dari awal, gunakan php artisan migrate:fresh --seed. Perintah ini menghapus semua isi tabel, jadi hanya pakai di komputer sendiri, jangan di server yang sudah berisi data asli.

    9. Simpan rahasia di .env dan catat perubahan dengan Git

    Password database, kunci API, dan pengaturan email disimpan di file .env, bukan di dalam kode. File ini jangan pernah dibagikan atau diunggah ke GitHub. Laravel sudah memasukkannya ke .gitignore secara bawaan.

    Biasakan juga mencatat setiap perubahan dengan Git:

    git add .
    git commit -m "Menambah fitur input nilai siswa"

    Git ibarat buku catatan perjalanan kode. Jika fitur baru membuat aplikasi rusak, kita bisa kembali ke versi sebelumnya yang masih berjalan.

    10. Kenali alat bantu mencari kesalahan

    Error adalah bagian biasa dari belajar. Beberapa alat yang membantu:

    • dd($variabel) untuk melihat isi data lalu menghentikan program di titik itu.
    • File storage/logs/laravel.log untuk membaca catatan kesalahan yang terjadi.
    • php artisan route:list untuk melihat semua alamat (route) yang tersedia.
    • php artisan tinker untuk mencoba perintah Eloquent langsung, tanpa membuat halaman.

    Saat aplikasi sudah dipakai orang lain, pastikan APP_DEBUG=false di file .env server. Dengan begitu, detail kesalahan dan informasi sensitif tidak tampil ke pengunjung.

    Penutup

    Membuat program itu mirip mengajar: mulai dari yang sederhana, rapi sejak awal, lalu dikembangkan sedikit demi sedikit. Tidak perlu menguasai semua fitur Laravel sekaligus. Kuasai sepuluh kebiasaan di atas, dan Anda sudah bisa membangun aplikasi sekolah yang berguna, misalnya untuk data siswa, absensi, atau rekap nilai.

    Punya pertanyaan, atau sekolah Anda butuh aplikasi sendiri? Silakan tinggalkan komentar atau hubungi saya lewat halaman kontak di pakyendi.com.