MySql: ChatGPT-Driven Query Quest

Avatar of Habibi Kholil Al Hanif.
Avatar of Habibi Kholil Al Hanif.

MySql: ChatGPT-Driven Query Quest

Data Enthusiasm | Data Engineer | Database | Analytic
South Jakarta, South Jakarta City, Jakarta, Indonesia

QueryQuest: Mengajarkan ChatGPT untuk Membuat Latihan Soal Query MySQL

 

Pendahuluan


Dalam era digital saat ini, penggunaan teknologi semakin meluas di berbagai bidang, termasuk pendidikan dan pembelajaran. Machine learning, khususnya model berbasis bahasa seperti ChatGPT, telah menjadi salah satu alat yang sangat bermanfaat dalam konteks ini.


ChatGPT adalah model generasi bahasa yang dikembangkan oleh OpenAI, yang menggunakan arsitektur deep learning untuk menghasilkan teks yang mirip dengan manusia dalam berbagai konteks percakapan.


Machine Learning, Ini adalah cabang dari kecerdasan buatan yang memungkinkan sistem untuk belajar dari data tanpa perlu diprogram secara eksplisit. Machine learning memungkinkan sistem untuk belajar dari pola dalam data dan meningkatkan kinerjanya seiring waktu.


ChatGPT dapat memperkaya pembelajaran dengan menghasilkan beragam jenis soal secara otomatis berdasarkan pemahaman yang mendalam tentang materi yang diajarkan.

Pengguna dapat berinteraksi dengan ChatGPT untuk mendiskusikan jawaban, menjelaskan konsep, dan memperoleh pemahaman yang lebih dalam tentang topik tertentu.


Melakukan latihan soal query secara teratur membantu menjaga konsistensi dalam proses pembelajaran MySQL. Dengan terlibat aktif dalam latihan, saya dapat memperkuat pemahaman dan keterampilan saya secara berkelanjutan. Seperti yang sudah saya lakukan, setiap hari setidaknya saya melakukan 5 latihan soal query. Latihan soal query adalah sarana yang efektif untuk memperkuat ilmu yang telah dipelajari. Dengan terus menerapkan konsep-konsep yang diajarkan dalam praktik, saya dapat meningkatkan kefasihan dan kepercayaan diri saya dalam penggunaan MySQL.


Dengan memperkuat konsistensi dan melalui latihan yang berulang, saya yakin bahwa saya dapat mencapai tingkat pemahaman yang lebih mendalam dan keterampilan yang lebih kuat dalam penggunaan MySQL.


Dengan memahami konsep-konsep di atas, proyek "QueryQuest" bertujuan untuk memanfaatkan kekuatan ChatGPT dalam pembuatan latihan soal query MySQL

Mengajarkan ChatGPT


Agar ChatGPT dapat memberikan soal dan jawaban yang tepat terkait latihan yang dijalankan, saya perlu mengajarkan struktur database yang dimiliki, termasuk nama database, tabel, serta hubungan antartabel yang relevan. Saya juga harus memberikan detail tentang setiap tabel dalam basis data, termasuk nama kolom, tipe data, dan kunci asing yang ada. Informasi ini akan membantu ChatGPT dalam memahami konteks latihan dan menghasilkan soal yang sesuai. Selain struktur database, penting untuk memberikan pemahaman tentang konteks latihan yang sedang dilakukan. Informasi ini memungkinkan ChatGPT untuk menghasilkan soal yang relevan dan bermakna, sesuai dengan kebutuhan dan tujuan pembelajaran saya.


Pertama saya membuka website ChatGPT, lalu pilih New chat. lalu saya mengetikan perintah:

"Bantu saya membuat soal latihan query Mysql berdasarkan database saya sendiri"


Perintah pertama ini akan menjadi headline / judul topik tab di ChatGPT. jadi tab ini bisa berfokus pada pembuatan soal MySQL.

-Hasil perintah membuat soal latihan

Setelah itu saya melanjutkan hal hal yang diperlukan untuk ChatGPT, yaitu memberikan nama database dan isi tabel dari database tersebut. Disini saya akan memberikan database dan tabel yang sebelumnya saya buat yaitu database "w3school". untuk melihat tabel apa saja yang dimiliki database w3school, saya melukakan query:

-show tables;

-Hasil query show tables

Setelah hasil query tabel sudah saya dapatkan, saya salin dan tempel di ChatGPT. saya memberikan perintah lagi yaitu:

"Nama Database: w3school

Jumlah tabel: 8

Nama tabel: categories, customers, employee, orderdetail, orders, product, shipper, supplier.

untuk struktur dan tipe data tabel akan saya berikan secara terperinci dan terpisah.

berikut rincian nya:"


Disini struktur dan tipe data tabel saya pisah satu persatu karena terlalu panjang. Untuk mendapatkan Struktur dan tipe data tabel saya melakukan query show create table. sebagai contoh saya coba lakukan dengan tabel pertama yaitu categories dengan query:

-show create table categories


Maka akan menghasilkan:

CREATE TABLE `categories` (

 `CategoryID` int(11) NOT NULL AUTO_INCREMENT,

 `CategoryName` varchar(225) NOT NULL,

 `Description_Name` varchar(225) DEFAULT NULL,

 PRIMARY KEY (`CategoryID`)

) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4

-Hasil query show create table categories

Setelah mendapatkan struktur tabelnya, saya salin dan tempel ke ChatGPT. Saya ulangi langkah tersebut dan saya terapkan pada semua tabel. Setelah semua tabel dan strukturnya saya berikan ke ChatGPT, sekarang saya bisa meminta atau generate soal MySql yang sama dengan local host saya untuk keperluan belajar dan latihan

Meminta Latihan Soal ChatGPT


Setelah saya selesai mengajarkan database, tabel dan struktur tabel yang saya punya, maka sekarang ChatGPT bisa memberikan contoh soal yang sesuai dengan local host database saya. Sebagai contoh saya akan coba lakukan perintah "berikan saya 5 soal latihan mysql"

-Hasil permintaan soal ChatGPT

Seperti yang terlihat pada gambar diatas tentang permintaan soal dari ChatGPT, dapat dilihat bahwa soal yang diberikan itu sesuai dengan database yang saya buat sebelumnya yaitu database "W3School". Dengan ini ChatGPT berhasil memahami database yang saya punya

Latihan Soal


Seperti yang sudah katakan sebelumnya bahwa Melakukan latihan soal query secara teratur membantu menjaga konsistensi dalam proses pembelajaran MySQL. Maka dari itu setidaknya setiap hari saya melakukukan latihan minimal 5 soal dengan ChatGPT.


Sekarang berdasarkan soal latihan yang diberikan ChatGPT, saya akan coba menjawab soal tersebut.


1.Tampilkan nama produk (ProductName) dan harga (Price) untuk produk dengan harga lebih dari 100.

Query:

select p.ProductName as Nama_Produk, p.Price as Harga 

from product as p

where p.Price > 100;

-Hasil Query Latihan Soal 1

2.Tampilkan daftar kategori (CategoryName) berserta jumlah produk (ProductCount) dalam setiap kategori. Urutkan hasil berdasarkan jumlah produk secara descending.

Query:

select c.CategoryName as Daftar_Kategori, count(p.ProductName) as Jumlah_Produk

from categories as c 

left join product as p on c.CategoryID = p.CategoryID 

group by c.CategoryName

order by Jumlah_Produk desc; 

-Hasil Query Latihan Soal 2

3.Tampilkan daftar pelanggan (CustomerName) yang belum pernah melakukan pesanan. Hanya tampilkan pelanggan yang belum pernah melakukan pesanan.

Query:

select c.CustomerName as Daftar_Pelanggan 

from customers as c

where c.CustomerID not in (select CustomerID from orders) ;

-Hasil Query Latihan Soal 3

4.Tampilkan daftar produk (ProductName) berserta jumlah total pesanan (TotalOrders) yang telah dilakukan untuk setiap produk. Urutkan hasil berdasarkan jumlah pesanan secara descending.

Query:

select p.ProductName as Daftar_Produk, count(od.OrderID) as Total_Pesanan

from product as p

left join orderdetail as od on p.ProductID = od.ProductID

group by od.ProductID

order by Total_Pesanan desc;

-Hasil Query Latihan Soal 4

5.Tampilkan daftar karyawan (EmployeeName) yang memiliki jumlah pesanan lebih dari rata-rata jumlah pesanan yang dilakukan oleh semua karyawan. Sertakan jumlah pesanan (TotalOrders) untuk setiap karyawan.

Query:

select concat(e.FirstName, ' ' , e.LastName) as Daftar_Karyawan, count(OrderID) as Jumlah_Pesanan

from employee as e

join orders as o on e.EmployeeID = o.EmployeeID

group by Daftar_Karyawan

having Jumlah_Pesanan > (select avg(Count_Pesanan)

from (select count(OrderID) as Count_Pesanan

  from orders

                group by EmployeeID) as Avg_Pesanan);

-Hasil Query Latihan Soal 5

Jawaban Dan Pembahasan Soal


Setelah selesai mengerjakan semua latihan soal, saya mencoba memeriksa jawaban atas soal yang diberikan ChatGPT. saya memberikan perintah: "Berikan saya jawabanya". Maka ChatGPT akan memberikan jawabanya seperti gambar berikut

 

-Hasil Jawaban Soal ChatGPT

Berdasarkan jawaban yang diberikan ChatGPT, saya bisa membandingkan query saya dan query ChatGPT. Saya juga bisa bertanya ataupun berdiskusi jika ada sesuatu yang tidak saya mengerti ataupun tidak sesuai. berikut perbandingannya:

Soal No 1

Query saya :

select p.ProductName as Nama_Produk, p.Price as Harga 

from product as p

where p.Price > 100;


Query ChatGPT:

SELECT ProductName, Price

FROM product

WHERE Price > 100;


Kedua query menghasilkan hasil yang sama. Perbedaanya terletak pada jawaban saya sendiri menggunakan alias pada setiap nama columnnya agar saya lebih memahami query yang saya lakukan

Soal No 2

Query saya :

select c.CategoryName as Daftar_Kategori, count(p.ProductName) as Jumlah_Produk

from categories as c 

left join product as p on c.CategoryID = p.CategoryID 

group by c.CategoryName

order by Jumlah_Produk desc; 


Query ChatGPT:

SELECT c.CategoryName, COUNT(p.ProductID) AS ProductCount

FROM categories AS c

LEFT JOIN product AS p ON c.CategoryID = p.CategoryID

GROUP BY c.CategoryName

ORDER BY ProductCount DESC;


Kedua query juga menghasilkan hasil yang sama. Perbedaanya terletat pada fungsi count dari kedua query. query saya menggunakan count(p.ProductName) sedangkan query ChatGPT menggunakan count(p.ProductID) tetapi tetap memberikan hasil yang sama karena sama sama di group by c.CategoryName

Soal No 3

Query saya :

select c.CustomerName as Daftar_Pelanggan 

from customers as c

where c.CustomerID not in (select CustomerID from orders) ;



Query ChatGPT:

SELECT CustomerName

FROM customers

WHERE CustomerID NOT IN (SELECT DISTINCT CustomerID FROM orders);


Kedua query menghasilkan hasil yang sama. terdapat perbedaan dalam penggunaan where. dimana saya tidak menggunakan select distinct sepert yang dilakukan ChatGPT

Soal No 4

Query saya :

select p.ProductName as Daftar_Produk, count(od.OrderID) as Total_Pesanan

from product as p

left join orderdetail as od on p.ProductID = od.ProductID

group by od.ProductID

order by Total_Pesanan desc;


Query ChatGPT:

SELECT p.ProductName, SUM(od.Quantity) AS TotalOrders

FROM product AS p

JOIN orderdetail AS od ON p.ProductID = od.ProductID

GROUP BY p.ProductName

ORDER BY TotalOrders DESC;


Query yang dihasilkan berbeda. ini dikarenakan pada query saya melakukan count (od.OrderID) sedangkan pada ChatGPT melakukan sum(od.Quantity).


Karena hasilnya berbeda, saya coba bertanya dan berdiskusi dengan ChatGPT. karena bisa terjadi antara saya sebagai user dan ChatGPT sebagai Machine Learning memiliki persepsi yang berbeda. berikut perintah yang saya lakukan untuk bertanya atas jawaban yang berbeda.

-Perintah Pertanyaan untuk ChatGPT

Seperti yang tertera digambar, disini saya mempertanyakan soal yang ChatGPT berikan. karena menurut persepsi saya, yang ditanyakan disoal adalah "Jumlah Pesanan" yang telah dilakukan, oleh karena itu saya menggunakan count(OrderID) untuk menghitung jumlah pesanan.

Tetapi berdasarkan jawaban ChatGPT, dia menggunakan Sum(Quantity) yang mana akan menjumlahkan seluruh produk yang sudah terjual. oleh karena itu disini saya ingin menanyakan tentang soal tersebut

-Jawaban Pertanyaan Perbedaan Hasil

Berdasarkan jawaban yang diberikan ChatGPT berarti memang benar soal yang ditanyakan itu "Jumlah total pesanan" seperti query yan saya lakukan.

Soal No 5

Query saya :

select concat(e.FirstName, ' ' , e.LastName) as Daftar_Karyawan, count(OrderID) as Jumlah_Pesanan

from employee as e

join orders as o on e.EmployeeID = o.EmployeeID

group by Daftar_Karyawan

having Jumlah_Pesanan > (select avg(Count_Pesanan)

from (select count(OrderID) as Count_Pesanan

 from orders

                group by EmployeeID) as Avg_Pesanan);


Query ChatGPT:

SELECT CONCAT(e.FirstName, ' ', e.LastName) AS EmployeeName, COUNT(o.EmployeeID) AS TotalOrders

FROM employee AS e

JOIN orders AS o ON e.EmployeeID = o.EmployeeID

GROUP BY EmployeeName

HAVING TotalOrders > (SELECT AVG(OrderCount) FROM (SELECT COUNT(EmployeeID) AS OrderCount FROM orders GROUP BY EmployeeID) AS AvgOrders);


Kedua query menghasilkan hasil yang sama, terdapat sedikit perbedaan dari penggunaan alias

Penutup


Proyek "QueryQuest" telah memberikan pengalaman pembelajaran yang menarik dan bermanfaat dalam memanfaatkan teknologi ChatGPT untuk menghasilkan soal latihan berdasarkan basis data lokal MySQL. Dengan berhasil mengajarkan ChatGPT tentang struktur database dan konteks latihan, saya telah dapat menjalankan latihan soal query dengan bantuan ChatGPT dan mendapatkan jawaban yang sesuai.


Meskipun ChatGPT mampu menghasilkan soal latihan dan memberikan jawaban, penting untuk diingat bahwa mesin hanya bisa sebaik informasi yang dia terima. Oleh karena itu, adalah penting untuk tidak langsung mencerna mentah-mentah apa yang diberikan oleh ChatGPT. Persepsi dan pemahaman manusia masih sangat diperlukan dalam memvalidasi jawaban, mengklarifikasi konsep yang rumit, dan memberikan interpretasi yang lebih dalam terhadap materi yang diajarkan.


Dalam memanfaatkan ChatGPT atau teknologi machine learning lainnya dalam pembelajaran, penting untuk mengingatkan diri sendiri bahwa meskipun teknologi ini dapat memberikan bantuan yang berharga, namun tetap diperlukan interaksi dan validasi manusia. Seringkali, persepsi antara pengguna dan mesin tidak selalu sama, dan inilah alasan mengapa human touch tetap penting dalam proses pembelajaran seperti contoh pada soal no. 4


Dengan memahami pentingnya peran manusia dalam penggunaan teknologi seperti ChatGPT, proyek ini tidak hanya memberikan kesempatan untuk memperdalam pemahaman tentang MySQL, tetapi juga memberikan wawasan tentang bagaimana kita dapat memanfaatkan teknologi secara bijaksana dalam pembelajaran.

proyek yang memanfaatkan kecerdasan buatan untuk meningkatkan pengalaman pembelajaran MySQL. Dengan bantuan teknologi ChatGPT, proyek ini menghadirkan pengalaman interaktif dalam pembelajaran query database. Pengguna dapat mengajukan pertanyaan dan meminta ChatGPT untuk menghasilkan latihan soal berdasarkan struktur database lokal
Avatar of the user.
Please login to comment.

Published: Mar 3rd 2024
42
6
0

Tools

mysql
MySQL

Query
Latihan
AI
MachineLearning
ChatGPT
MySQL
Databases

Share