private async void DelPengket_Click(object sender, RoutedEventArgs e)
        {
            DataRowView         drv  = (DataRowView)((Button)e.Source).DataContext;
            PengetahuanCRUD     pcrd = new PengetahuanCRUD();
            KeterampilanCRUD    kcrd = new KeterampilanCRUD();
            MessageDialogResult res  = await this.ShowMessageAsync("Pengetahuan dan Keterampilan", "Anda akan menghapus data pengetahuan dan keterampilan untuk siswa ini. Apa anda yakin ingin melanjutkan?", MessageDialogStyle.AffirmativeAndNegative);

            if (res == MessageDialogResult.Affirmative)
            {
                NilaiPengetahuan  np = new NilaiPengetahuan();
                NilaiKeterampilan nk = new NilaiKeterampilan();
                np.IdPeng = drv.Row[6].ToString();
                nk.IdKet  = drv.Row[9].ToString();
                try
                {
                    if (pcrd.Hapus(np) && kcrd.Hapus(nk))
                    {
                        await this.ShowMessageAsync("Pengetahuan dan Keterampilan", "Data berhasil dihapus!");

                        LoadPengKet();
                    }
                }
                catch (SQLiteException ex)
                {
                    await this.ShowMessageAsync("Pengetahuan dan Keterampilan", $"Error! {ex.Message}");
                }
            }
        }
        private void GetPengetahuan()
        {
            PengetahuanCRUD  pcrd = new PengetahuanCRUD();
            NilaiPengetahuan np   = pcrd.GetNilaiPengetahuan(_editpengSet);

            KDTinggiBox.SelectedValue = np.KdTertinggi;
            KDRendahBox.SelectedValue = np.KdTerendah;
            NTinggiBox.Value          = np.NilaiTertinggi;
            NRendahBox.Value          = np.NilaiTerendah;
            NAkhirPengBox.Value       = np.NilaiAkhir;
            PredikatPengBox.Text      = np.PredikatPengetahuan;
            DPengBox.Text             = np.DeskripsiPengetahuan;
        }
        private int EditPengetahuan()
        {
            int              hasil = 0;
            PengetahuanCRUD  pcrd  = new PengetahuanCRUD();
            NilaiPengetahuan np    = new NilaiPengetahuan();
            RumusNilai       rn    = new RumusNilai();

            np.IdPeng               = _editpengSet;
            np.Nisn                 = _nisnSet;
            np.IdMapel              = _idmapelSet;
            np.Semester             = _semesterSet;
            np.KdTertinggi          = Convert.ToInt32(KDTinggiBox.SelectedValue);
            np.KdTerendah           = Convert.ToInt32(KDRendahBox.SelectedValue);
            np.NilaiTertinggi       = Convert.ToInt32(NTinggiBox.Value);
            np.NilaiTerendah        = Convert.ToInt32(NRendahBox.Value);
            np.NilaiAkhir           = Convert.ToInt32(NAkhirPengBox.Value);
            np.PredikatPengetahuan  = PredikatPengBox.Text;
            np.DeskripsiPengetahuan = DPengBox.Text;
            try
            {
                if (pcrd.Ubah(np))
                {
                    hasil = 181197;
                }
            }
            catch (SQLiteException ex)
            {
                if (ex.ErrorCode == 19)
                {
                    hasil = 19;
                }
                else
                {
                    hasil = ex.ErrorCode;
                }
            }
            return(hasil);
        }
        private async void DelSiswa_Click(object sender, RoutedEventArgs e)
        {
            DataRowView         drv    = (DataRowView)((Button)e.Source).DataContext;
            SiswaCRUD           sicrud = new SiswaCRUD();
            PengetahuanCRUD     pcrd   = new PengetahuanCRUD();
            KeterampilanCRUD    kcrd   = new KeterampilanCRUD();
            SikapCRUD           scrd   = new SikapCRUD();
            EkskulCRUD          ecrd   = new EkskulCRUD();
            AbsensiCRUD         acrd   = new AbsensiCRUD();
            RumusNilai          rn     = new RumusNilai();
            MessageDialogResult res    = await this.ShowMessageAsync("Data Siswa", "Anda akan menghapus seluruh data yang berkaitan dengan siswa ini! Anda yakin ingin melanjutkan?", MessageDialogStyle.AffirmativeAndNegative);

            if (res == MessageDialogResult.Affirmative)
            {
                DataSiswa ds = new DataSiswa();
                string    DN = drv.Row[0].ToString();
                ds.Nisn = DN;
                try
                {
                    if (rn.IsRowExist(DN, 0))
                    {
                        if (pcrd.HapusAll(DN) && kcrd.HapusAll(DN) && scrd.HapusAll(DN))
                        {
                            if (rn.IsRowExist(DN, 1))
                            {
                                if (ecrd.HapusAll(DN) && acrd.HapusAll(DN))
                                {
                                    if (sicrud.Hapus(ds))
                                    {
                                        await this.ShowMessageAsync("Data Siswa", "Data siswa dan nilai yang berkaitan sudah terhapus!");

                                        LoadSiswa();
                                        LoadSikapDll();
                                        LoadPengKet();
                                    }
                                }
                            }
                        }
                    }
                    else if (rn.IsRowExist(DN, 1))
                    {
                        if (ecrd.HapusAll(DN) && acrd.HapusAll(DN))
                        {
                            if (sicrud.Hapus(ds))
                            {
                                await this.ShowMessageAsync("Data Siswa", "Data siswa dan nilai yang berkaitan sudah terhapus!");

                                LoadSiswa();
                                LoadSikapDll();
                                LoadPengKet();
                            }
                        }
                    }
                    else
                    {
                        if (sicrud.Hapus(ds))
                        {
                            await this.ShowMessageAsync("Data Siswa", "Data siswa dan nilai yang berkaitan sudah terhapus!");

                            LoadSiswa();
                            LoadSikapDll();
                            LoadPengKet();
                        }
                    }
                }
                catch (SQLiteException ex)
                {
                    await this.ShowMessageAsync("Data Siswa", $"Error! {ex.Message}");
                }
            }
        }