Langsung ke konten utama

PERBAIKAN.CRUD ENTRIES UNTUK TABEL Gn_Cyan_Bawah, DAN TABEL Sub_Gn_Cyan_Bawah

 PERBAIKAN.CRUD ENTRIES UNTUK TABEL Gn_Cyan_Bawah, DAN TABEL Sub_Gn_Cyan_Bawah


Untuk mengambil data dari tabel dan menampilkan data ke entries, maka entries CRUD dan susunannya saya rubah menjadi berikut ini: entry_nada, entry_level_gn, entry_id, entry progres_combobox, entry mode_combobox. 

Level_Gn ada sebanyak 12 level yang berkesesuaian dengan ID. Lalu pada data kolom Bass di tabel Gn_Cyan_Bawah yang ada sebanyak 4 id (id 1, id 2, id 3, id 4), maka urutan Level_Gn sebanyak 12 level yang berkesesuaian dengan urutan ID pada kolom ID di Gn_Cyan_Bawah adalah:

1. Kolom Bass baris 1 = id 1 = level_gn 1

2. Kolom Bass baris 2 = id 2 = level_gn 2

3. Kolom Bass baris 3 = id 3 = level_gn 3

4. Kolom Bass baris 4 = id 4 = level_gn 4

5. Kolom Bass baris 1 = id 1 = level_gn 5

6. Kolom Bass baris 2 = id 2 = level_gn 6

7. Kolom Bass baris 3 = id 3 = level_gn 7

8. Kolom Bass baris 4 = id 4 = level_gn 8

9. Kolom Bass baris 1 = id 1 = level_gn 9

10. Kolom Bass baris 2 = id 2 = level_gn 10

11. Kolom Bass baris 3 = id 3 = level_gn 11

12. Kolom Bass baris 4 = id 4 = level_gn 12.

Kemudian Pada data kolom Bass di tabel Sub_Gn_Cyan_Bawah yang ada sebanyak 1 baris (sub_id 1), maka urutan level_gn sebanyak 12 level yang berkesesuaian dengan urutan Sub_ID pada kolom Sub_ID di Sub_Gn_Cyan_Bawah adalah:

Kolom Bass baris 1 = sub_id 1 = level_gn 1 = level_gn 2 = level_gn 3 = level_gn 4 = level_gn 5 = level_gn 6 = level_gn 7 = level_gn 8 =  level_gn 9 = level_gn 10 = level_gn 11 = level_gn 12.  

Data terpilih yang diambil dari tabel, dan menampilkan data pada entries, kita mulai dari data Bass di tabel Gn_Cyan_Bawah, dan Sub_Gn_Cyan_Bawah.  Mulai pada kolom Bass di Gn_Cyan_Bawah, lalu kemudian pada kolom Bass di Sub_Gn_Cyan_Bawah. Gugus nada Bass dari data kolom Bass di Gn_Cyan_Bawah akan ditampilkan pada entry_bass, lalu Gugus nada Bass dari data kolom Bass di Sub_Gn_Cyan_Bawah akan ditampilkan pada entry_sub_bass, 

Tolong modifikasi kode, agar supaya bila user telah menginput opsi pilihan di entry_nada, lalu memasukkan input ke entry_level_gn, lalu memasukkan input ke entry_id, tetapi bila user salah memasukkan angka ID pada entry_id, maka akan tampil pesan di message_box dengan bunyi teks: "Level_Gn ada 1-12. L-1 =  L-5 = L-9 = ID 1, L-2 =  L-6 = L-10 = ID 2, L-3 =  L-7 = L-11 = ID 3, L-4 =  L-8 = L-12 = ID 4".

Kemudian modifikasi kode pada bagian fungsi def level_gn() agar supaya kondisi urutan level_gn teratur dari 1 hingga 12 baik pada Gn_Cyan_Bawah maupun pada Sub_Gn_Cyan_Bawah. Kemudian pada bagian def get_data_gn_cyan_bawah_from_db, dan bagian def get_data_sub_gn_cyan_bawah_from_db agar supaya pengambilan data berdasarkan id_selected atau entry_id.get(), sedangkan menampilkan data berdasarkan level_gn_selected, data yang ditampilkan sesuai progres di progres 1, progres 2, atau progres 3 dan 

Kemudian pada bagian def pilih_nada() agar supaya berfungsi untuk memilih data Bass dari kolom Bass dari Gn_Cyan_Bawah, dan dari kolom Bass dari Sub_Gn_Cyan_Bawah yang data terpilih akan ditampilkan berdasarkan  logika yang diterapkan pada data dari kedua tabel tersebut menurut level_gn, progres, mode, dan Nada (Bass atau Trebel).

 Sementara cukup pemilihan data dari kolom Bass tabel Gn_Cyan_Bawah untuk ditampilkan data gugus nada terpilih di entry_bass, dan data dari kolom Bass tabel Sub_Gn_Cyan_Bawah untuk ditampilkan data gugus nada terpilih di entry_sub_bass, Data yang ditampilkan sesuai progres di progres 1, progres 2, dan progres 3 berdasarkan logika yang diterapkan pada data dari kedua tabel tersebut, berikut ini logikanya:


Berikut kode yang butuh dimodifikasi:

import tkinter as tk

from tkinter import ttk

import sqlite3

from tkinter import messagebox

from tkinter import filedialog

from tkinter import Tk, Label, Entry, Button, Frame, StringVar



# Initialize the main window

root = tk.Tk()

root.geometry("690x1390")

root.title("Arah Arus Musik")    


# Frame untuk ID dan progres

frame_top = tk.Frame(root)

frame_top.pack(pady=10)    


# CRUD Functions

def clear_entries():

    for row in entry_rows:

        for entry in row:

            entry.delete(0, tk.END)      

            

label_nada = tk.Label(frame_top, text="Nada:")

label_nada.grid(row=0, column=0, padx=5, pady=5)

nada_var = tk.StringVar()

nada_combobox = ttk.Combobox(frame_top, textvariable=nada_var)

nada_combobox['values'] = ("Bass", "Trebel")

nada_combobox.grid(row=0, column=1, padx=5, pady=5)            

                   

label_Level_Gn = tk.Label(frame_top, text="Level_Gn:")

label_Level_Gn.grid(row=1, column=0, padx=5, pady=5)

entry_level_gn = tk.Entry(frame_top)

entry_level_gn.grid(row=1, column=1, padx=5, pady=5)


label_id = tk.Label(frame_top, text="ID:")

label_id.grid(row=2, column=0, padx=5, pady=5)

entry_id = tk.Entry(frame_top)

entry_id.grid(row=2, column=1, padx=5, pady=5)


label_progres = tk.Label(frame_top, text="Progres:")

label_progres.grid(row=3, column=0, padx=5, pady=5)

progres_var = tk.StringVar()

progres_combobox = ttk.Combobox(frame_top, textvariable=progres_var)

progres_combobox['values'] = (1, 2, 3)

progres_combobox.grid(row=3, column=1, padx=5, pady=5)


label_mode = tk.Label(frame_top, text="Mode:")

label_mode.grid(row=4, column=0, padx=5, pady=5)

mode_var = tk.StringVar()

mode_combobox = ttk.Combobox(frame_top, textvariable=mode_var)

mode_combobox['values'] = ("Naik", "Turun")

mode_combobox.grid(row=4, column=1, padx=5, pady=5)


# Bottom Frame

bottom_frame = tk.Frame(root, bg="#e2e2e2")

bottom_frame.pack(side=tk.TOP, fill=tk.X)


# Logika_Gn_Cyan_Bawah.py

def Level_Gn():

    level_gn_urut = []


    # Kondisi untuk Gn_Cyan_Bawah

    if Gn_Cyan_Bawah:

        for i in range(1, 13):

            if i % 4 == 1:

                level_gn_urut.append((i, 'Bass ID 1'))

            elif i % 4 == 2:

                level_gn_urut.append((i, 'Bass ID 2'))

            elif i % 4 == 3:

                level_gn_urut.append((i, 'Bass ID 3'))

            else:

                level_gn_urut.append((i, 'Bass ID 4'))


    # Kondisi untuk Sub_Gn_Cyan_Bawah

    elif Sub_Gn_Cyan_Bawah:

        for i in range(1, 13):

            level_gn_urut.append((i, 'Bass Sub_ID 1'))


    return level_gn_urut


# Misalkan ini adalah daftar data untuk Gn_Cyan_Bawah atau Sub_Gn_Cyan_Bawah

Gn_Cyan_Bawah = True

Sub_Gn_Cyan_Bawah = False


# Penggunaan fungsi Level_Gn di dalam CRUD_Gn_Cyan_Bawah(gabung).py

urutan_level = Level_Gn()

for level in urutan_level:

    print(f"Level {level[0]}: {level[1]}")       


# Contoh pemanggilan fungsi Level_Gn()

urutan_level = Level_Gn()

for level in urutan_level:

    print(f"Level {level[0]}: {level[1]}")

                

# Fungsi untuk mengambil data Gn_Cyan_Bawah dari database berdasarkan ID

def get_data_gn_cyan_bawah_from_db(id_selected):

    conn = sqlite3.connect("DATAMUSIK.db")

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM Gn_Cyan_Bawah WHERE ID = ?", (id_selected,))

    data = cursor.fetchone()

    conn.close()

    return data


# Fungsi untuk mengambil data Sub_Gn_Cyan_Bawah dari database berdasarkan ID

def get_data_sub_gn_cyan_bawah_from_db(id_selected):

    conn = sqlite3.connect("DATAMUSIK.db")

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM Sub_Gn_Cyan_Bawah WHERE Sub_ID = ?", (id_selected,))

    data = cursor.fetchone()

    conn.close()

    return data

    

# Fungsi untuk menyesuaikan nilai Trebel berdasarkan progres

def adjust_trebel_value(bass_value, adjustment):

    # Implementasi logika untuk menyesuaikan nilai Trebel

    try:

        adjusted_value = str(int(bass_value) + adjustment)

    except ValueError:

        adjusted_value = bass_value # Jika nilai bass bukan angka, biarkan tetap sama

    return adjusted_value            


# Fungsi untuk memilih nada Bass berdasarkan Gugus_nads, Level_Gn ID, progres, dan mode

def pilih_nada():

    try:

        # Ambil nilai dari entry_id dan variabel progres serta mode

        

        gugus_nada = gugus_nada_var.get()

        id_selected = int(entry_id.get())

        

        mode = mode_var.get().lower()

        

        

        progres = int(progres_var.get()) if progres_var.get() else 0

        

        save_current_values()

        

        # Dapatkan data dari database (implementasi fungsi get_data_gn_cyan_bawah_from_db dan get_data_sub_gn_cyan_bawah_from_db diperlukan)

        data_gn_cyan_bawah = get_data_gn_cyan_bawah_from_db(id_selected)

        data_sub_gn_cyan_bawah = get_data_sub_gn_cyan_bawah_from_db(id_selected)


        if not data_gn_cyan_bawah or not data_sub_gn_cyan_bawah:

            messagebox.showerror("Error", "Data tidak ditemukan dalam database.")

            return


        # Hapus data sebelumnya di EntryBox

        entry_bass.delete(0, tk.END)

        entry_sub_bass.delete(0, tk.END)


        # Ambil nilai Bass dan Sub_Bass

        bass_value = data_gn_cyan_bawah[2]

        sub_bass_value = data_sub_gn_cyan_bawah[2]

        

        # Logika pengisian data Bass dan Sub_Bass ke EntryBox berdasarkan ID, Progres, Mode, dan Level_Gn

        if id_selected in range(1, 5):

        if id_selected == 1:

            if progres == 1 and mode == "naik":

                    # Progres 1, Mode Naik

                    entry_bass.insert(0, bass_value)                    

                                             

            elif progres == 2 and mode == "naik":

                    # Progres 2, Mode Naik

                    entry_bass.insert(0,, bass_value)            

                    

            elif progres == 3 and mode == "naik":

                    # Progres 3, Mode Naik

                    entry_bass.insert(0, bass_value)             

                              

            elif progres == 1 and mode == "turun":         

                    # Progres 1, Mode Turun

                    entry_bass.insert(0, bass_value)                    

                                       

            elif progres == 2 and mode == "turun":

                    # Progres 2, Mode Turun

                    entry_bass.insert(0, bass_value)            

                    

           elif progres == 3 and mode == "turun":

                    # Progres 3, Mode Turun

                    entry_bass.insert(0, bass_value)             

                    

            elif id_selected == 2:

                    if progres == 1 and mode == "naik                       

                 # Progres 1, Mode Naik           

            elif progres == 2 and mode == "naik":

             # Progres 2, Mode Naik           

            elif progres == 3 and mode == "naik":

                # Progres 3, Mode Naik                              

            elif progres == 1 and mode == "turun":                                

                # Progres 1, Mode Turun

            elif progres == 2 and mode == "turun":                                

                # Progres 2, Mode Turun   

                

            elif progres == 3 and mode == "turun":                                

                # Progres 3, Mode Turun      

                         

                  elif id_selected == 3:

            if progres == 1 and mode == "naik"          

             elif id_selected == 3:

                    if progres == 1 and mode == "naik                       

                 # Progres 1, Mode Naik           

            elif progres == 2 and mode == "naik":

             # Progres 2, Mode Naik           

            elif progres == 3 and mode == "naik":

                # Progres 3, Mode Naik                              

            elif progres == 1 and mode == "turun":                                

                # Progres 1, Mode Turun

            elif progres == 2 and mode == "turun":                                

                # Progres 2, Mode Turun   

                

            elif progres == 3 and mode == "turun":                                

                # Progres 3, Mode Turun      

     

               elif id_selected == 4:

                    if progres == 1 and mode == "naik                       

                 # Progres 1, Mode Naik           

            elif progres == 2 and mode == "naik":

             # Progres 2, Mode Naik           

            elif progres == 3 and mode == "naik":

                # Progres 3, Mode Naik                              

            elif progres == 1 and mode == "turun":                                

                # Progres 1, Mode Turun

            elif progres == 2 and mode == "turun":                                

                # Progres 2, Mode Turun   

                

            elif progres == 3 and mode == "turun":                                

                # Progres 3, Mode Turun                                                                        

        else:

            messagebox.showerror("Error", "ID tidak valid")

            return


        messagebox.showinfo("Success", "Data berhasil diambil dan disesuaikan")

    except ValueError:

        messagebox.showerror("Error", "ID dan progres harus berupa angka")


#Label dan Entry Ambil Gugusan nada Teroilih

label_bass = tk.Label(bottom_frame, text="Bass Gn Cyan Bawah:")

label_bass.grid(row=7, column=1, padx=5, pady=5)

entry_bass = tk.Entry(bottom_frame)

entry_bass.grid(row=8, column=1, padx=5, pady=5)


label_sub_bass = tk.Label(bottom_frame, text="Bass Sub Gn Cyan Bawah:")

label_sub_bass.grid(row=7, column=2, padx=5, pady=5)

entry_sub_bass = tk.Entry(bottom_frame)

entry_sub_bass.grid(row=8, column=2, padx=5, pady=5)


label_trebel = tk.Label(bottom_frame, text="Trebel Gn Cyan Bawah")

label_trebel.grid(row=7, column=3, padx=5, pady=5)

entry_trebel = tk.Entry(bottom_frame)

entry_trebel.grid(row=8, column=3, padx=5, pady=5)


label_sub_trebel = tk.Label(bottom_frame, text="Trebel Sub Gn Cyan Bawah:")

label_sub_trebel.grid(row=7, column=4, padx=5, pady=5)

entry_sub_trebel = tk.Entry(bottom_frame)

entry_sub

_trebel.grid(row=8, column=4, padx=5, pady=5)


# Tombol untuk memilih nada

select_button = tk.Button(bottom_frame, text="Pilih Nada", bg="green", fg="white", command=pilih_nada)

select_button.grid(row=5, column=1, padx=5, pady=5)


root.mainloop()


Saya akan memodifikasi kode Anda agar sesuai dengan permintaan yang Anda berikan. Berikut adalah modifikasinya:


1. **Menambah validasi pada `entry_id`:**

   - Jika user salah memasukkan angka ID, akan muncul pesan di `messagebox`.


2. **Memperbaiki logika urutan Level_Gn:**

   - Baik pada `Gn_Cyan_Bawah` maupun `Sub_Gn_Cyan_Bawah` untuk mengatur Level_Gn dari 1 hingga 12 sesuai dengan ID.


3. **Memodifikasi fungsi `get_data_gn_cyan_bawah_from_db`, `get_data_sub_gn_cyan_bawah_from_db`, dan `pilih_nada`:**

   - Agar pemilihan data berdasarkan `entry_id.get()`.


Berikut adalah kode yang telah dimodifikasi:


```python

import tkinter as tk

from tkinter import ttk

import sqlite3

from tkinter import messagebox

from tkinter import filedialog

from tkinter import Tk, Label, Entry, Button, Frame, StringVar


# Initialize the main window

root = tk.Tk()

root.geometry("690x1390")

root.title("Arah Arus Musik")


# Frame untuk ID dan progres

frame_top = tk.Frame(root)

frame_top.pack(pady=10)


# CRUD Functions

def clear_entries():

    for row in entry_rows:

        for entry in row:

            entry.delete(0, tk.END)


label_nada = tk.Label(frame_top, text="Nada:")

label_nada.grid(row=0, column=0, padx=5, pady=5)

nada_var = tk.StringVar()

nada_combobox = ttk.Combobox(frame_top, textvariable=nada_var)

nada_combobox['values'] = ("Bass", "Trebel")

nada_combobox.grid(row=0, column=1, padx=5, pady=5)


label_Level_Gn = tk.Label(frame_top, text="Level_Gn:")

label_Level_Gn.grid(row=1, column=0, padx=5, pady=5)

entry_level_gn = tk.Entry(frame_top)

entry_level_gn.grid(row=1, column=1, padx=5, pady=5)


label_id = tk.Label(frame_top, text="ID:")

label_id.grid(row=2, column=0, padx=5, pady=5)

entry_id = tk.Entry(frame_top)

entry_id.grid(row=2, column=1, padx=5, pady=5)


label_progres = tk.Label(frame_top, text="Progres:")

label_progres.grid(row=3, column=0, padx=5, pady=5)

progres_var = tk.StringVar()

progres_combobox = ttk.Combobox(frame_top, textvariable=progres_var)

progres_combobox['values'] = (1, 2, 3)

progres_combobox.grid(row=3, column=1, padx=5, pady=5)


label_mode = tk.Label(frame_top, text="Mode:")

label_mode.grid(row=4, column=0, padx=5, pady=5)

mode_var = tk.StringVar()

mode_combobox = ttk.Combobox(frame_top, textvariable=mode_var)

mode_combobox['values'] = ("Naik", "Turun")

mode_combobox.grid(row=4, column=1, padx=5, pady=5)


# Bottom Frame

bottom_frame = tk.Frame(root, bg="#e2e2e2")

bottom_frame.pack(side=tk.TOP, fill=tk.X)


# Logika_Gn_Cyan_Bawah.py

def Level_Gn():

    level_gn_urut = []


    # Kondisi untuk Gn_Cyan_Bawah

    if Gn_Cyan_Bawah:

        for i in range(1, 13):

            if i % 4 == 1:

                level_gn_urut.append((i, 'Bass ID 1'))

            elif i % 4 == 2:

                level_gn_urut.append((i, 'Bass ID 2'))

            elif i % 4 == 3:

                level_gn_urut.append((i, 'Bass ID 3'))

            else:

                level_gn_urut.append((i, 'Bass ID 4'))


    # Kondisi untuk Sub_Gn_Cyan_Bawah

    elif Sub_Gn_Cyan_Bawah:

        for i in range(1, 13):

            level_gn_urut.append((i, 'Bass Sub_ID 1'))


    return level_gn_urut


# Fungsi untuk validasi ID dan Level_Gn

def validate_id_and_level_gn():

    try:

        id_selected = int(entry_id.get())

        level_gn = int(entry_level_gn.get())

        

        # Validasi berdasarkan urutan level_gn dan ID

        if (level_gn % 4 == 1 and id_selected != 1) or \

           (level_gn % 4 == 2 and id_selected != 2) or \

           (level_gn % 4 == 3 and id_selected != 3) or \

           (level_gn % 4 == 0 and id_selected != 4):

            raise ValueError

        

    except ValueError:

        messagebox.showerror("Error", "Level_Gn ada 1-12. Level 1 = Level 5 = Level 9 = ID 1, Level 2 = Level 6 = Level 10 = ID 2, Level 3 = Level 7 = Level 11 = ID 3, Level 4 = Level 8 = Level 12 = ID 4.")

        return False

    

    return True


# Fungsi untuk mengambil data Gn_Cyan_Bawah dari database berdasarkan ID

def get_data_gn_cyan_bawah_from_db(id_selected):

    conn = sqlite3.connect("DATAMUSIK.db")

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM Gn_Cyan_Bawah WHERE ID = ?", (id_selected,))

    data = cursor.fetchone()

    conn.close()

    return data


# Fungsi untuk mengambil data Sub_Gn_Cyan_Bawah dari database berdasarkan ID

def get_data_sub_gn_cyan_bawah_from_db(id_selected):

    conn = sqlite3.connect("DATAMUSIK.db")

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM Sub_Gn_Cyan_Bawah WHERE Sub_ID = ?", (id_selected,))

    data = cursor.fetchone()

    conn.close()

    return data


# Fungsi untuk memilih nada Bass berdasarkan Gugus_nads, Level_Gn ID, progres, dan mode

def pilih_nada():

    if not validate_id_and_level_gn():

        return


    try:

        # Ambil nilai dari entry_id dan variabel progres serta mode

        id_selected = int(entry_id.get())

        mode = mode_var.get().lower()

        progres = int(progres_var.get()) if progres_var.get() else 0


        # Dapatkan data dari database

        data_gn_cyan_bawah = get_data_gn_cyan_bawah_from_db(id_selected)

        data_sub_gn_cyan_bawah = get_data_sub_gn_cyan_bawah_from_db(id_selected)


        if not data_gn_cyan_bawah or not data_sub_gn_cyan_bawah:

            messagebox.showerror("Error", "Data tidak ditemukan dalam database.")

            return


        # Hapus data sebelumnya di EntryBox

        entry_bass.delete(0, tk.END)

        entry_sub_bass.delete(0, tk.END)


        # Ambil nilai Bass dan Sub_Bass

        bass_value = data_gn_cyan_bawah[2]

        sub_bass_value = data_sub_gn_cyan_bawah[2]


        # Logika pengisian data Bass dan Sub_Bass ke EntryBox berdasarkan ID, Progres, Mode, dan Level_Gn

        if id_selected in range(1, 5):

            if mode == "naik":

                if progres == 1:

                    entry_bass.insert(0, bass_value)

                elif progres == 2:

                    entry_bass.insert(0, bass_value)

                elif progres == 3:

                    entry_bass.insert(0, bass_value)

            elif mode == "turun":

                if progres == 1:

                    entry_bass.insert(0, bass_value)

                elif progres == 2:

                    entry_bass.insert(0, bass_value)

                elif progres == 3:

                    entry_bass.insert(0, bass_value)


            entry_sub_bass.insert(0, sub_bass_value)


    except ValueError:

        messagebox.showerror("Error", "Input tidak valid.")

root.mainloop()

```

### Penjelasan Modifikasi:

1. **Validasi ID pada `entry_id`:**  

   Saat user menginput ID yang tidak sesuai dengan urutan Level_Gn, pesan error akan ditampilkan menggunakan `messagebox`.

2. **Urutan `Level_Gn`:**  

   Urutan Level_Gn diatur menggunakan fungsi `Level_Gn` untuk memastikan bahwa ID dan Level_Gn sesuai dengan aturan yang Anda tentukan.

3. **Pemilihan Data dari Database:**  

   Fungsi `get_data_gn_cyan_bawah_from_db` dan `get_data_sub_gn_cyan_bawah_from_db` mengambil data berdasarkan ID yang dipilih, kemudian data tersebut ditampilkan pada `entry_bass` dan `entry_sub_bass`.

Silakan gunakan kode yang telah dimodifikasi ini untuk melanjutkan proyek Anda


Kemudian modifikasi kode pada fungsi def pilih_nada() agar supaya sesuai dengan logika pada Gn_Cyan_Bawah, dan Sub_Gn_Cyan_Bawah untuk semua progres (progres 1, 2, dan 3) berikut ini:

Logika pada data Bass pada tabel Gn_Cyan_Bawah:

1. Jika data gugus nada yang terpilih dari kolom Bass pada Gn_Cyan_Bawah:

1a. Jika data dari Bass id 1 maka level_gn = 1, 5, 9, dan jika progres 1, 2 atau 3, dan jika mode Naik atau Turun:

maka data dari Bass id 1 adalah menjadi Bass id 1

1b. Jika data dari Bass id 2 maka level_gn = 2, 6, 10, dan jika progres 1, 2 atau 3, dan jika mode Naik atau Turun:

maka data dari Bass id 2 adalah menjadi Bass id 2

1c. Jika data dari Bass id 3 maka level_gn = 3, 7, 11, dan jika progres 1, 2 atau 3, dan jika mode Naik atau Turun:

maka data dari Bass id 3 adalah menjadi Bass id 3.

1d. Jika data dari Bass id 4 maka level_gn = 4, 8, 12, dan jika progres 1, 2 atau 3, dan jika mode Naik atau Turun:

maka data dari Bass id 4 adalah menjadi Bass id 4.


Logika pada Sub_Gn_Cyan_Bawah berkaitan dengan logika pada Gn_Cyan_Bawah.

Logika pada data Bass pada tabel Sub_Gn_Cyan_Bawah:

2. Jika data gugus nada yang terpilih dari kolom Bass pada Sub_Gn_Cyan_Bawah:

2a. Jika data dari Bass sub_id 1 maka level_gn = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, dan jika progres 1, 2 atau 3, dan jika mode Naik atau Turun:

maka data dari Bass sub_id 1 adalah menjadi Bass sub_id 1.






Komentar