Langsung ke konten utama

LOGIKA YANG DITERAPKAN PADA DATA TABEL Gn_Cyan_Atas, DAN TABEL Sub_Gn_Cyan_Atas (Part-2)

LOGIKA YANG DITERAPKAN PADA DATA BASS DARI TABEL Gn_Cyan_Atas, DAN TABEL Sub_Gn_Cyan_Atas (Part-2)


Pada kode, tolong tambahkan fungsionalitas di setiap lwvel_gn yang diinput oleh user. Bila user menginput di entry_level_gn dan memasukkan angka inputan, yaitu:

1. Bila user menginput level_gn = 1, maka tampilkan message_box dengan teks pesan "Lanjut dengan memasukkan input ID = 1". Sehingga user harus menginput di entry_id = 1 (tidak boleh menginput angka yang lain, selain 1).

2. Bila user menginput level_gn = 2, maka tampilkan message_box dengan teks pesan "Lanjut dengan memasukkan input ID = 2". Sehingga user harus menginput di entry_id = 2 (tidak boleh menginput angka yang lain, selain 2).

3. Bila user menginput level_gn = 3, maka tampilkan message_box dengan teks pesan "Lanjut dengan memasukkan input ID = 3". Sehingga user harus menginput di entry_id = 3 (tidak boleh menginput angka yang lain, selain 3)..

4. Bila user menginput level_gn = 4, maka tampilkan message_box dengan teks pesan "Lanjut dengan memasukkan input ID = 1". Sehingga user harus menginput di entry_id = 1 (tidak boleh menginput angka yang lain, selain 1).

5. Bila user menginput level_gn = 5, maka tampilkan message_box dengan teks pesan "Lanjut dengan memasukkan input ID = 3". Sehingga user harus menginput di entry_id = 3 (tidak boleh menginput angka yang lain, selain 3).

6. Bila user menginput level_gn = 6, maka tampilkan message_box dengan teks pesan "Lanjut dengan memasukkan input ID = 1". Sehingga user harus menginput di entry_id = 1 (tidak boleh menginput angka yang lain, selain 1).

7. Bila user menginput level_gn = 7, maka tampilkan message_box dengan teks pesan "Lanjut dengan memasukkan input ID = 2". Sehingga user harus menginput di entry_id = 2 (tidak boleh menginput angka yang lain, selain 2)..

8. Bila user menginput level_gn = 8, maka tampilkan message_box dengan teks pesan "Lanjut dengan memasukkan input ID = 3". Sehingga user harus menginput di entry_id = 3 (tidak boleh menginput angka yang lain, selain 3).

9. Bila user menginput level_gn = 9, maka tampilkan message_box dengan teks pesan "Lanjut dengan memasukkan input ID = 2". Sehingga user harus menginput di entry_id = 2 (tidak boleh menginput angka yang lain, selain 2).

10. Bila user menginput level_gn = 10, maka tampilkan message_box dengan teks pesan "Lanjut dengan memasukkan input ID = 3". Sehingga user harus menginput di entry_id = 3 (tidak boleh menginput angka yang lain, selain 3).

11. Bila user menginput level_gn = 11, maka tampilkan message_box dengan teks pesan "Lanjut dengan memasukkan input ID = 1". Sehingga user harus menginput di entry_id = 1 (tidak boleh menginput angka yang lain, selain 1)..

12. Bila user menginput level_gn = 12, maka tampilkan message_box dengan teks pesan "Lanjut dengan memasukkan input ID = 2". Sehingga user harus menginput di entry_id = 2 (tidak boleh menginput angka yang lain, selain 2).

Kemudian jika user menginput level_gn diluar range 1 hingga 12 yaitu bila user menginput level_gn = 0, atau level_gn >= 13, maka tampilkan message_box dengan teks pesan "Masukkan input yang benar. \nInput Level Gn adalah 1 hingga 12"

 

Baik, berikut adalah penambahan fungsionalitas pada kode Anda yang menyesuaikan perilaku berdasarkan input `level_gn` oleh user. Kode ini akan menampilkan pesan yang sesuai berdasarkan aturan yang Anda tentukan:

```python

import tkinter as tk

from tkinter import ttk, messagebox


root = tk.Tk()

root.title("Input Level Gn dan ID")


# Definisikan entry untuk level_gn dan id

entry_level_gn = tk.Entry(root)

entry_level_gn.pack(pady=10)


entry_id = tk.Entry(root)

entry_id.pack(pady=10)


# Fungsi untuk menampilkan messagebox dan memvalidasi input level_gn

def validate_level_gn():

    try:

        level_gn = int(entry_level_gn.get())


        if level_gn == 1:

            messagebox.showinfo("Info", "Lanjut dengan memasukkan input ID = 1")

            set_id_entry(1)

        elif level_gn == 2:

            messagebox.showinfo("Info", "Lanjut dengan memasukkan input ID = 2")

            set_id_entry(2)

        elif level_gn == 3:

            messagebox.showinfo("Info", "Lanjut dengan memasukkan input ID = 3")

            set_id_entry(3)

        elif level_gn == 4:

            messagebox.showinfo("Info", "Lanjut dengan memasukkan input ID = 1")

            set_id_entry(1)

        elif level_gn == 5:

            messagebox.showinfo("Info", "Lanjut dengan memasukkan input ID = 3")

            set_id_entry(3)

        elif level_gn == 6:

            messagebox.showinfo("Info", "Lanjut dengan memasukkan input ID = 1")

            set_id_entry(1)

        elif level_gn == 7:

            messagebox.showinfo("Info", "Lanjut dengan memasukkan input ID = 2")

            set_id_entry(2)

        elif level_gn == 8:

            messagebox.showinfo("Info", "Lanjut dengan memasukkan input ID = 3")

            set_id_entry(3)

        elif level_gn == 9:

            messagebox.showinfo("Info", "Lanjut dengan memasukkan input ID = 2")

            set_id_entry(2)

        elif level_gn == 10:

            messagebox.showinfo("Info", "Lanjut dengan memasukkan input ID = 3")

            set_id_entry(3)

        elif level_gn == 11:

            messagebox.showinfo("Info", "Lanjut dengan memasukkan input ID = 1")

            set_id_entry(1)

        elif level_gn == 12:

            messagebox.showinfo("Info", "Lanjut dengan memasukkan input ID = 2")

            set_id_entry(2)

        else:

            messagebox.showerror("Error", "Masukkan input yang benar.\nInput Level Gn adalah 1 hingga 12")

            reset_entries()


    except ValueError:

        messagebox.showerror("Error", "Input harus berupa angka.")

        reset_entries()


# Fungsi untuk mengatur entry ID dan mencegah input selain ID yang valid

def set_id_entry(valid_id):

    entry_id.delete(0, tk.END)

    entry_id.insert(0, valid_id)

    entry_id.config(state='readonly') # Membatasi input hanya pada ID yang valid


# Fungsi untuk mereset entries jika input level_gn tidak valid

def reset_entries():

    entry_level_gn.delete(0, tk.END)

    entry_id.config(state='normal')

    entry_id.delete(0, tk.END)


# Tambahkan tombol untuk memvalidasi level_gn

validate_button = tk.Button(root, text="Validate Level Gn", command=validate_level_gn)

validate_button.pack(pady=10)


# Menjalankan main loop

root.mainloop()

```


### Penjelasan:

1. **Fungsi `validate_level_gn()`**: Fungsi ini memeriksa input `level_gn` dan menampilkan pesan yang sesuai berdasarkan nilai yang diinput. Jika `level_gn` berada di luar rentang 1 hingga 12 atau input bukan angka, maka akan muncul pesan kesalahan dan entri akan direset.

2. **Fungsi `set_id_entry()`**: Fungsi ini mengatur input `ID` sesuai dengan aturan yang Anda tentukan, serta membatasi pengguna untuk hanya bisa menginput `ID` yang valid dengan mengatur state entry menjadi `readonly`.

3. **Fungsi `reset_entries()`**: Jika input `level_gn` tidak valid, maka entri akan direset.

4. **Interaksi GUI**: Pengguna menginput `level_gn` pada entry pertama, kemudian setelah menekan tombol "Validate Level Gn", pesan yang sesuai akan muncul, dan entry `ID` akan diatur agar sesuai dengan level yang diinput.

Anda dapat menjalankan kode ini di lingkungan tkinter untuk melihat hasilnya secara langsung.


Tolong tambahkan fungsi untuk menghapus secara otomatis semua inputan oleh user, termasuk inputan entry_level_gn hasil validasi..

Berikut contoh kodenya yang ditambahkan di baris akhir pada def pilih_nada():

    finally:

        # Bersihkan atau reset entry dan combobox setelah data dipilih

        entry_level_gn.delete(0, 'end')

        entry_id.delete(0, 'end')

        progres_combobox.set('')

        mode_combobox.set('')

        nada_combobox

.set('')

Maksud saya, untuk membersihkan dan me_reset entry dan combobox setelah tombol pilih_nada ditekan oleh user (bukan setelah validasi selesai, tapi setelah tombol pilih_nada ditekan). Sehingga kode finally: # Bersihkan atau reset entry dan combobox setelah validasi selesai entry_level_gn.delete(0, 'end') entry_id.delete(0, 'end') progres_combobox.set('') mode_combobox.set('') nada_combobox.set('')Kode tersebut diletakkan dibagian baris terakhir dari fungsi def pilih_nada().


Tentu, saya akan menambahkan fungsi untuk menghapus secara otomatis semua inputan oleh user setelah validasi selesai. Saya akan menambahkan bagian kode yang membersihkan inputan user di akhir fungsi pilih_nada() yang telah ada, dengan menambahkan finally untuk memastikan entri selalu dibersihkan, terlepas dari hasil validasi.

Blok finally:

Bagian ini memastikan bahwa setelah tombol pilih_nada ditekan dan fungsi pilih_nada() selesai dijalankan, semua inputan pada entry dan combobox akan dihapus atau direset.

Berikut adalah cara menambahkan kode pembersihan di bagian akhir fungsi pilih_nada() dengan benar:

Modifikasi pada Fungsi pilih_nada()

.....

def pilih_nada():

    try:

        # Logika untuk memilih nada di sini

        # (Tambahkan kode yang relevan untuk fungsi ini)

        pass # Placeholder, gantikan dengan logika sebenarnya


    finally:

        # Bersihkan atau reset entry dan combobox setelah tombol pilih_nada ditekan

        entry_level_gn.delete(0, 'end')

        entry_id.delete(0, 'end')

        progres_combobox.set('')

        mode_combobox.set('')

        nada_combobox.set('')


Penjelasan:

Bagian finally:

Kode dalam blok finally akan selalu dieksekusi setelah blok try selesai, baik hasilnya sukses ataupun gagal.Dalam hal ini, semua entry dan combobox akan direset atau dibersihkan setelah proses validasi level_gn, dan tombol pilih_nada ditekan.

Setelah user menginput level_gn, menyelesaikan validasi, dan menekan tombol pilih_nada, semua inputan pada entry_level_gn, entry_id, dan combobox akan otomatis dihapus atau direset, membuat user siap untuk memasukkan input baru.


Setelah menambah fungsi untuk membersihkan dan me_reset entry serta combobox, applikasi berjalan dengan baik, tapi setelah tombol pilih_nada ditekan, karakter angka pada entry_id yang read only hasil dari validasi tidak mau terhapus


Jika `entry_id` tidak terhapus atau direset setelah tombol `pilih_nada` ditekan, kemungkinan ada beberapa penyebab yang bisa terjadi, terutama karena `entry_id` dalam keadaan read-only. Untuk mengatasi masalah ini, ada beberapa pendekatan yang dapat Anda coba:

### Solusi 1: Menghapus Status Read-Only Sebelum Reset

Sebelum menghapus isi dari `entry_id`, Anda bisa sementara waktu menonaktifkan status read-only, kemudian menghapus isinya, dan mengembalikan status read-only kembali.

Berikut adalah langkah-langkahnya:

1. **Ubah Mode Read-Only Sementara Waktu:**

   - Sebelum menghapus, ubah state dari `entry_id` menjadi normal (`'normal'`).

   - Hapus isinya.

   - Kembalikan state menjadi read-only (`'readonly'`).

### Contoh Kode:


```python

def pilih_nada():

    try:

        # Logika untuk memilih nada di sini

        pass # Placeholder, gantikan dengan logika sebenarnya


    finally:

        # Menghapus status read-only sementara

        entry_id.config(state='normal')

        

        # Bersihkan atau reset entry dan combobox setelah tombol pilih_nada ditekan

        entry_level_gn.delete(0, 'end')

        entry_id.delete(0, 'end')

        progres_combobox.set('')

        mode_combobox.set('')

        nada_combobox.set('')


        # Kembalikan status read-only setelah menghapus isinya

        entry_id.config(state='readonly')

        reset_entries() 

```


### Penjelasan:

- **`entry_id.config(state='normal')`**:

   - Baris ini digunakan untuk mengubah state dari `entry_id` menjadi normal (non-read-only) sehingga bisa dihapus isinya.  

- **`entry_id.config(state='readonly')`**:

   - Setelah isinya dihapus, state dikembalikan menjadi read-only untuk mencegah pengguna melakukan input manual.

### Solusi 2: Menggunakan `update_idletasks()` untuk Memperbarui GUI

Jika masalah masih terjadi, Anda juga bisa menambahkan `self.update_idletasks()` di dalam metode `pilih_nada()` untuk memastikan bahwa semua pembaruan pada GUI dilakukan dengan benar sebelum state read-only diaktifkan kembali.


### Contoh Kode:


```python

def pilih_nada():

    try:

        # Logika untuk memilih nada di sini

        pass # Placeholder, gantikan dengan logika sebenarnya


    finally:

        # Menghapus status read-only sementara

        entry_id.config(state='normal')

        

        # Bersihkan atau reset entry dan combobox setelah tombol pilih_nada ditekan

        entry_level_gn.delete(0, 'end')

        entry_id.delete(0, 'end')

        progres_combobox.set('')

        mode_combobox.set('')

        nada_combobox.set('')


        # Perbarui GUI sebelum mengembalikan state read-only

        self.update_idletasks()

        

        # Kembalikan status read-only setelah menghapus isinya

        entry_id.config(state='readonly')

        reset_entries() 

```

Dengan mengikuti langkah-langkah di atas, `entry_id` seharusnya dapat dihapus dan direset dengan benar meskipun dalam kondisi read-only sebelumnya.



Selesai  CRUD Data Bass....


Berlanjut ke ...

CRUD DATA PADA TABEL Gn_Cyan_Atas, dan Sub_Gn_Cyan_Atas PADA DATA KOLOM Bass DAN KOLOM Trebel (Part-3)



Komentar

Postingan populer dari blog ini

PEMAKAIAN FONT FONT KHUSUS UNTUK SIMBOL SIMBOL NOTASI ANGKA LAGU

  PEMAKAIAN FONT FONT KHUSUS UNTUK SIMBOL SIMBOL NOTASI ANGKA LAGU Bagaimana kalau di dalam applikasi pertitur notasi angka dibuatkan sistem teks dengan memakai font parnumstion untuk membuat simbol simbol pada notasi angka lagu Menggunakan font khusus seperti **Parnumstion** untuk membuat simbol-simbol pada notasi angka dalam aplikasi pertitur dapat menjadi solusi yang elegan untuk menampilkan simbol notasi secara visual menarik dan konsisten. Berikut adalah langkah-langkah umum yang dapat kamu lakukan untuk mengimplementasikan sistem teks dengan font ini dalam aplikasi Python, khususnya jika kamu menggunakan tkinter: ### Langkah-langkah Implementasi: 1. **Pastikan Font Tersedia:**    - Unduh dan instal font **Parnumstion** pada sistem yang akan menjalankan aplikasi. Font ini harus diinstal agar bisa digunakan oleh aplikasi tkinter.    - Kamu dapat menempatkan file font (biasanya dengan ekstensi `.ttf`) di folder aplikasi atau menginstalnya secara manual di sis...

Error “ Unable To Locate Package ”

  CadeMedia Media Informasi Terbaru 2023 8 Cara Mengatasi “Tidak Dapat Menemukan Paket Termux” di HP Android TERAKHIR DIPERBARUI 16 SEPTEMBER 2023 Error “  Unable To Locate Package  ” adalah masalah yang sering dialami oleh pengguna Termux. Ini terjadi ketika Termux tidak dapat menemukan  paket  yang hendak diinstal. Salah satu contohnya ketika Anda mencoba menginstal  paket  seperti git. Termux adalah aplikasi terminal  emulator  dan  environment  berbasis Linux untuk perangkat Android. Sehingga pengguna dapat menjalankan perintah dan aplikasi Linux tanpa perlu akses  root  atau mengutak-atik sistem Android. Nah, arti dari  tidak dapat menemukan paket  adalah Termux tidak dapat menemukan lokasi atau keberadaan  paket  ingin Anda  install  . Pada artikel kali ini CadeMedia bahas tuntas, penyebab hingga cara mengatasi pesan  error  pada Termux yang sering muncul. Simak penjelasan di b...

Cara Membuat Config HTTP Custom

  Lompat ke konten Lompat ke sidebar Lompat ke footer KANGARIF.NET × Beranda   /  android   /  internet gratis Cara Membuat Config HTTP Custom Oleh bustami    12/13/2020    15 komentar Di artikel kali ini saya akan membagikan tutorial bagaimana  cara membuat config HTTP Custom . Daftar isi 1  Apa itu HTTP Custom ? 2  Apa itu Config HTTP Custom ? 3  Cara Membuat Config HTTP Custom 3.1  Membuat Config HTTP Custom dengan Metode SSL/SNI 4  Penutup Apa itu HTTP Custom ? HTTP Custom  adalah sebuah aplikasi Android yang saat ini banyak dipakai oleh para pecinta internet gratis (gretonger). Kepopuleran aplikasi ini bisa dibilang sebanding atau bahkan lebih bila dibandingkan dengan aplikasi sejenis yang lebih dulu populer, yaitu HTTP Injector. Saat ini HTTP Custom banyak dipakai untuk mengubah kuota internet tertentu dari operator seluler menjadi bisa digunakan untuk semua aplikasi. Seperti misalnya yang saat ini sed...