Langsung ke konten utama

Pratikum Database


Halo selamat datang! Pada kesempatan kali ini, kita akan membahas tugas praktikum database yang telah diberikan. Database merupakan hal yang sangat penting dalam pengembangan perangkat lunak, sehingga sangatlah penting untuk mempelajari dan memahami cara mengelolanya. Pada tugas praktikum ini, kita akan belajar mengenai konsep dasar database dan juga implementasinya dalam MySQL. Mari kita mulai!

1. Create Table tb_pengguna 

Sebelum membuat tabel kita harus masuk ke database belajar dengan perintah "use nama_database" "use belajar". Lalu masukan perintah seperti dibawah untuk mulai membuat tabel. 


Kolom userid, nama, dan email didefinisikan sebagai VARCHAR(50) NOT NULL, yang berarti bahwa mereka adalah string karakter variabel dengan panjang maksimum 50 karakter dan tidak bisa kosong. Kolom no_telp didefinisikan sebagai INT(20) NOT NULL, yang berarti bahwa kolom tersebut berisi angka integer dengan panjang maksimum 20 digit dan tidak bisa kosong. Namun, tipe data ini mungkin tidak cocok untuk nomor telepon karena tidak memungkinkan karakter non-numerik seperti tanda hubung, kurung, atau tanda plus. Lalu pada `userid` diberikan PRIMARY KEY, dengan menjadikan userid sebagai primary key, setiap pengguna yang terdaftar dalam tabel akan memiliki nilai unik pada kolom userid, dan tidak ada dua pengguna yang akan memiliki nilai userid yang sama.


Perintah DESCRIBE atau DESC pada SQL digunakan untuk mendapatkan informasi tentang struktur sebuah tabel. Output dari perintah DESC tb_pengguna menampilkan informasi tentang empat kolom pada tabel tb_pengguna.

2. Added Unique Into Table


Perintah ALTER TABLE pada SQL digunakan untuk mengubah struktur tabel yang sudah ada, seperti menambah atau menghapus kolom atau indeks, atau mengubah tipe data pada kolom. Perintah ALTER TABLE tb_pengguna ADD UNIQUE INDEX `idx_uniq_tb_pengguna` (email) menambahkan sebuah indeks unik dengan nama `idx_uniq_tb_pengguna` pada kolom email pada tabel tb_pengguna. Indeks unik memastikan bahwa setiap nilai di kolom indeks (email) tidak dapat diulang dan harus unik.

Dengan adanya indeks unik pada kolom email, tidak akan ada dua pengguna yang terdaftar dalam tabel dengan alamat email yang sama, sehingga menjaga kekhasan email pada tabel. Hal ini penting untuk memastikan bahwa setiap pengguna terdaftar dengan email yang valid dan tidak ada duplikat data.


Setelah mengeksekusi perintah ALTER TABLE untuk menambahkan indeks unik pada kolom email, maka output dari perintah DESCRIBE atau DESC pada tabel tb_pengguna akan berubah. Pada output terbaru, kolom email akan memiliki kunci (KEY) dengan tipe UNI yang menandakan bahwa kolom tersebut memiliki indeks unik. Indeks unik memastikan bahwa setiap nilai di kolom email tidak dapat diulang dan harus unik.

Dalam keseluruhan, tabel tb_pengguna terdiri dari empat kolom, yaitu userid, nama, email, dan no_telp. Kolom userid menjadi primary key (PRI), sedangkan kolom email memiliki indeks unik (UNI) yang memastikan bahwa tidak akan ada dua pengguna dengan alamat email yang sama dalam tabel.

3. Added Index Into Table


Perintah ALTER TABLE pada SQL digunakan untuk mengubah struktur tabel yang sudah ada, seperti menambah atau menghapus kolom atau indeks, atau mengubah tipe data pada kolom. Perintah ALTER TABLE tb_pengguna ADD INDEX `index_fn_no_telp_pengguna` (nama, no_telp) menambahkan sebuah indeks pada kolom nama dan no_telp pada tabel tb_pengguna. Indeks ini akan membantu meningkatkan kinerja pencarian data pada tabel ketika kita melakukan query menggunakan kolom yang diindeks.

Indeks index_fn_no_telp_pengguna terdiri dari dua kolom yaitu nama dan no_telp. Nama indeks tersebut dapat disesuaikan dengan kebutuhan, namun perlu diingat bahwa nama indeks harus unik dalam tabel yang sama.


Setelah kita mengeksekusi perintah ALTER TABLE untuk menambahkan indeks pada kolom nama dan no_telp, maka output dari perintah DESCRIBE atau DESC pada tabel tb_pengguna akan berubah. Kolom nama akan memiliki kunci (KEY) dengan tipe MUL yang menandakan bahwa kolom tersebut memiliki indeks gabungan (composite index).

4. Edit Field Data Type

Untuk meng Edit Dield Data Type kita masukan perintah seperti dibawah ini:


Perintah yang kita gunakan adalah ALTER TABLE dengan perintah CHANGE COLUMN, yang mengubah tipe data kolom no_telp dari INT menjadi BIGINT, mengatur kolom menjadi NOT NULL, memberi nilai default 0, dan memindahkannya setelah kolom email.


Hasilnya menunjukkan bahwa tipe data kolom no_telp sekarang adalah BIGINT, kolom tidak dapat bernilai NULL, dan memiliki nilai default 0. Kolom no_telp juga berada setelah kolom email

5. Insert Data Into Table tb_pengguna

INSERT INTO digunakan untuk menambahkan data baru ke dalam tabel MySQL. Data baru dapat dimasukkan ke dalam tabel dengan perintah SQL seperti:


Pada tampilan gambar diatas kita memasukan 5 data pada tabel pengguna. 


Perintah SELECT * FROM tb_pengguna; digunakan untuk mengambil data dari tabel tb_pengguna. Dalam hal ini, perintah tersebut mengambil seluruh kolom (ditandai dengan tanda "*") dari tabel tb_pengguna beserta nilai-nilainya. Hasil yang ditampilkan berupa tabel dengan baris dan kolom, di mana setiap baris merepresentasikan satu data pengguna (berisi nilai-nilai pada setiap kolom).

6. Create Table tb_team


Perintah SQL di atas digunakan untuk membuat sebuah tabel baru dengan nama tb_team. Tabel ini memiliki tiga kolom yaitu id_team, nama_team, dan id_koordinator. Kolom id_team merupakan sebuah kolom integer dengan panjang 11 digit, yang digunakan sebagai Primary Key atau kunci utama pada tabel ini. Kolom ini juga menggunakan atribut NOT NULL yang berarti tidak boleh kosong dan AUTO_INCREMENT yang berarti nilai pada kolom ini akan secara otomatis bertambah 1 setiap kali sebuah baris ditambahkan pada tabel ini.

Kolom nama_team merupakan sebuah kolom varchar atau teks dengan panjang maksimal 50 karakter. Kolom ini diizinkan untuk memiliki nilai NULL atau kosong. Kolom id_koordinator juga merupakan sebuah kolom integer dengan panjang 11 digit, dan diizinkan memiliki nilai NULL atau kosong.

Terakhir, perintah PRIMARY KEY digunakan untuk menentukan bahwa kolom id_team adalah Primary Key atau kunci utama pada tabel ini dan atribut USING BTREE digunakan untuk menentukan metode penyimpanan indeksnya menggunakan algoritma B-Tree.

7. Create Table tb_koordinator

Untuk membuat tabel tb_koordinator kita masukan perintah seperti dibawah:


Perintah tersebut digunakan untuk membuat tabel bernama "tb_team" dengan tiga kolom yaitu "id_team", "nama_team", dan "id_koordinator". Kolom "id_team" didefinisikan sebagai integer dengan panjang 11 digit, diberi klausul "NOT NULL" agar setiap baris pada tabel ini memiliki nilai pada kolom tersebut dan diberi klausul "AUTO_INCREMENT" agar nilai pada kolom ini akan di-generate secara otomatis oleh database. Kolom "nama_team" didefinisikan sebagai string dengan panjang maksimal 50 karakter dan diberi nilai default NULL. 

Kolom "id_koordinator" juga didefinisikan sebagai integer dengan panjang 11 digit dan diberi nilai default NULL. Kolom "id_team" kemudian ditetapkan sebagai primary key (kunci utama) untuk tabel ini. Dengan menggunakan BTREE sebagai metode penyimpanan indeks, pencarian data menjadi lebih cepat dan efisien. Karena itu, menggunakan USING BTREE pada statement PRIMARY KEY dapat meningkatkan kinerja database MySQL.


Deskripsi di atas adalah hasil dari perintah DESCRIBE atau DESC pada tabel tb_team. Tabel ini memiliki tiga kolom yaitu id_team, nama_team, dan id_koordinator. id_team adalah kolom dengan tipe data INT(11) yang tidak dapat bernilai NULL dan dijadikan sebagai primary key pada tabel menggunakan indeks BTREE. nama_team adalah kolom dengan tipe data VARCHAR(50) yang dapat bernilai NULL. id_koordinator adalah kolom dengan tipe data INT(11) yang dapat bernilai NULL.

8. Add Constraint FOREIGN KEY 


Perintah yang kita gunakan di atas adalah ALTER TABLE untuk menambahkan kunci asing (FOREIGN KEY) pada kolom id_koordinator dalam tabel tb_team. Dalam hal ini, kunci asing tersebut merujuk ke kolom id_koordinator dalam tabel tb_koordinator. FOREIGN KEY digunakan untuk membuat hubungan antara dua tabel dalam basis data relasional, sehingga memungkinkan kita untuk melakukan operasi join dan referensi data antara tabel-tabel tersebut.

Pada perintah tersebut, kita juga menambahkan ON UPDATE CASCADE ON DELETE CASCADE di akhir perintah. Ini berarti ketika nilai di kolom id_koordinator pada tabel tb_koordinator diperbarui atau dihapus, nilai-nilai yang berkaitan di tabel tb_team juga akan diperbarui atau dihapus secara otomatis.

9. Insert Into Table tb_team And tb_koordinator

Kita telah berhasil memasukkan data ke dalam tabel tb_koordinator dan tb_team. Untuk tb_koordinator, kita telah memasukkan 3 data yaitu (1,'Dzikri'),(2,'Egi'),(3,'Retno'). Sedangkan untuk tabel tb_team, kita telah memasukkan 2 data yaitu (1, 'Database', 1) dan (2, 'Linux', 2).


Pada tabel tb_team, kita telah menambahkan kolom id_koordinator sebagai foreign key yang merujuk pada kolom id_koordinator di tabel tb_koordinator. Dengan demikian, kita telah membuat relasi antara kedua tabel tersebut, sehingga jika kita ingin menampilkan data yang berkaitan antara kedua tabel, kita dapat menggunakan JOIN.

10. Get Data For Each Table Created for all fields

Memperoleh data dari setiap tabel yang telah dibuat dengan menampilkan semua field/kolom yang ada pada tabel tersebut. Pada sebelumnya kita telah membuat 3 tabel, perintah "select * from tb_pengguna", "select * from tb_team", dan "select * from tb_koordinator" digunakan untuk mengambil data dari masing-masing tabel yang telah dibuat dengan menampilkan semua kolom yang ada pada tabel tersebut.

11. Get Data For Each Table Created for some fields

Dalam query yang telah dijalankan, terdapat perintah SELECT untuk menampilkan data dari masing-masing tabel yang telah dibuat.
  • Pada query pertama, perintah SELECT digunakan untuk menampilkan data nama dari seluruh record yang ada di dalam tabel tb_pengguna.
  • Pada query kedua, perintah SELECT digunakan untuk menampilkan data nama_team dari seluruh record yang ada di dalam tabel tb_team.
  • Pada query ketiga, perintah SELECT digunakan untuk menampilkan data nama dari seluruh record yang ada di dalam tabel tb_koordinator.

12. Get Data From Tables Created Using Filter 


Tiga query SQL yang diberikan mengambil informasi dari tiga tabel yang berbeda: "tb_pengguna", "tb_team", dan "tb_koordinator". Berikut adalah hasil yang didapat dari setiap query:
  • Query pertama memilih semua baris dari tabel "tb_pengguna" dimana kolom "nama" diawali dengan "kharisya". Hanya satu baris yang sesuai dengan kondisi ini, yang berisi ID pengguna, nama, email, dan nomor telepon dari pengguna "Kharisya Mergianti".
  • Query kedua memilih semua baris dari tabel "tb_team" dimana kolom "nama_team" diawali dengan "database". Hanya satu baris yang sesuai dengan kondisi ini, yang berisi ID, nama, dan ID koordinator dari tim bernama "Database".
  • Query ketiga memilih semua baris dari tabel "tb_koordinator" dimana kolom "nama" diawali dengan "egi". Hanya satu baris yang sesuai dengan kondisi ini, yang berisi ID dan nama koordinator bernama "Egi".

13. Get Data From Table tb_team And tb_koordinator Using Inner Join  


Query SQL di atas melakukan operasi JOIN antara dua tabel, yaitu "tb_team" dan "tb_koordinator". Perintah INNER JOIN mengambil baris dari kedua tabel dimana nilai pada kolom "id_koordinator" di tabel "tb_team" sama dengan nilai pada kolom "id_koordinator" di tabel "tb_koordinator".

Ketika baris dari kedua tabel memiliki nilai yang sama pada kolom yang ditunjukkan oleh INNER JOIN, maka baris tersebut akan digabungkan menjadi satu baris dengan semua kolom yang dimiliki oleh kedua tabel. Query ini akan mengembalikan semua baris dan kolom dari kedua tabel yang tergabung, dimana setiap baris akan memiliki kolom-kolom dari tabel "tb_team" dan "tb_koordinator".

14. Get Data From Table tb_team And tb_koordinator Using Left Join 


Query SQL di atas juga melakukan operasi JOIN antara dua tabel, yaitu "tb_team" dan "tb_koordinator". Namun, perintah yang digunakan adalah LEFT JOIN. LEFT JOIN akan mengambil semua baris dari tabel di sebelah kiri (tabel "tb_team" pada contoh ini), termasuk baris yang tidak memiliki pasangan di tabel di sebelah kanan (tabel "tb_koordinator" pada contoh ini). Kemudian, LEFT JOIN akan mencocokkan setiap baris di tabel kiri dengan baris-baris di tabel kanan yang memiliki nilai yang sama pada kolom yang dijadikan patokan JOIN. Jika tidak ada pasangan yang cocok di tabel kanan, maka nilai kolom di baris kanan akan diisi dengan NULL.

Dalam hal ini, query akan mengembalikan semua baris dan kolom dari tabel "tb_team", ditambah dengan kolom-kolom dari tabel "tb_koordinator" dimana ada pasangan nilai pada kolom "id_koordinator". Jika tidak ada pasangan nilai pada kolom "id_koordinator" di tabel "tb_koordinator", maka nilai kolom di tabel "tb_koordinator" akan diisi dengan NULL.

15. Get Data From Table tb_team And tb_koordinator Using Right Join


Query SQL di atas melakukan operasi JOIN antara dua tabel, yaitu "tb_team" dan "tb_koordinator". Namun, perintah yang digunakan adalah RIGHT JOIN. RIGHT JOIN akan mengambil semua baris dari tabel di sebelah kanan tabel "tb_koordinator", termasuk baris yang tidak memiliki pasangan di tabel di sebelah kiri (tabel "tb_team" pada contoh ini). Kemudian, RIGHT JOIN akan mencocokkan setiap baris di tabel kanan dengan baris-baris di tabel kiri yang memiliki nilai yang sama pada kolom yang dijadikan patokan JOIN. Jika tidak ada pasangan yang cocok di tabel kiri, maka nilai kolom di baris kiri akan diisi dengan NULL.

Dalam hal ini, query akan mengembalikan semua baris dan kolom dari tabel "tb_koordinator", ditambah dengan kolom-kolom dari tabel "tb_team" dimana ada pasangan nilai pada kolom "id_koordinator". Jika tidak ada pasangan nilai pada kolom "id_koordinator" di tabel "tb_team", maka nilai kolom di tabel "tb_team" akan diisi dengan NULL.

16 . Rename tb_pengguna To tb_anggota


Pada tabel dibawah nama tabel masih dengan nama tb_pengguna, untuk mengubah nama tabel atau me-rename kita menggunakan perintah seperti dibawah :


Perintah SQL "ALTER TABLE Tb_pengguna RENAME TO Tb_anggota" digunakan untuk mengubah nama sebuah tabel dalam database. Dalam kasus ini, tabel "tb_pengguna" akan diubah namanya menjadi "tb_anggota". Perintah ALTER TABLE digunakan untuk memodifikasi struktur tabel, dan perintah RENAME TO digunakan untuk mengubah nama tabel menjadi nama yang baru.

Dengan menjalankan perintah SQL ini, struktur tabel akan tetap sama dan data yang ada di dalamnya juga tidak akan berubah, hanya nama tabel yang akan diubah dari "tb_pengguna" menjadi "tb_anggota".

17. Add Column Team On tb_anggota


Pada tampilan gambar diatas kita belum menambahkan suatu kolom atau column, untuk menambahkan column kita menggunakan perintah seperti berikut :


Pada perintah diatas "ALTER TABLE tb_anggota ADD team INT" digunakan untuk menambahkan kolom baru ke tabel "Tb_anggota". Dalam hal ini, kolom baru yang ditambahkan bernama "Team" dan memiliki tipe data INT. Perintah ALTER TABLE digunakan untuk memodifikasi struktur tabel, dan perintah ADD digunakan untuk menambahkan kolom baru ke dalam tabel.

Dengan menjalankan perintah SQL ini, kolom baru "Team" akan ditambahkan ke tabel "Tb_anggota" dengan tipe data INT. Kita dapat mengganti tipe data INT dengan tipe data lain, seperti VARCHAR atau BOOLEAN, sesuai dengan kebutuhan.

18. Add Relation Between tb_anggota And tb_team 


Perintah di atas digunakan untuk menambahkan sebuah foreign key constraint atau keterikatan referensial antara tabel "tb_anggota" dan "tb_team" pada kolom "team" di tabel "tb_anggota".

Secara lebih rinci, berikut adalah komponen-komponen dari perintah tersebut:
  • "ALTER TABLE tb_anggota": merupakan perintah untuk memodifikasi tabel "tb_anggota"
  • "ADD CONSTRAINT": merupakan sub-perintah untuk menambahkan sebuah constraint pada tabel
  • "fk_team_id": adalah nama untuk constraint yang akan ditambahkan, dalam hal ini foreign key constraint
  • "FOREIGN KEY (team)": merupakan deklarasi bahwa kolom "team" di tabel "tb_anggota" adalah foreign key yang akan ditautkan ke primary key di tabel "tb_team"
  • "REFERENCES tb_team(id_team)": digunakan untuk mendefinisikan primary key di tabel "tb_team" yang menjadi acuan untuk foreign key di tabel "tb_anggota"
Dengan menambahkan foreign key constraint ini, kita dapat memastikan bahwa setiap nilai di kolom "team" di tabel "tb_anggota" selalu ada di kolom "id_team" di tabel "tb_team". Sehingga dapat memastikan bahwa tidak akan terjadi kesalahan referensi ketika kita melakukan join antara kedua tabel tersebut.

19. Truncate All Table

Untuk menghapus semua data dari semua tabel pada database , kita dapat menggunakan perintah TRUNCATE TABLE. Berikut adalah sintaks untuk menghapus semua data dari semua tabel pada database:

Perintah ini akan menghapus semua data dari setiap tabel pada database. Perlu diingat bahwa perintah ini hanya menghapus data tetapi tidak menghapus struktur tabel itu sendiri. Pastikan untuk melakukan backup data sebelum melakukan operasi truncate, karena data yang dihapus tidak dapat dikembalikan. Selain itu, kita juga dapat menonaktifkan periksa kunci asing sementara menggunakan perintah "SET FOREIGN_KEY_CHECKS = 0" untuk menghindari masalah referential integrity ketika menghapus data dari beberapa tabel. Setelah selesai menghapus data, pastikan untuk mengaktifkan kembali periksa kunci asing dengan perintah "SET FOREIGN_KEY_CHECKS = 1".

20. Insert Data Into Table tb_koordinatorat least 5 data

Untuk menambahkan 5 data pada tabel tb_koordinator kita menggunakan perintah seperti dibawah. Kita akan memasukkan 5 baris data ke dalam tabel tb_koordinator, dengan setiap baris berisi nilai untuk kolom nama_koordinator, alamat_koordinator, no_telp_koordinator, dan email_koordinator. Setelah memasukan 5 data tersebut kita chek output dengan perintah select * from tb_koordinator.

21. Insert Data Into Table tb_teamat least 6 data with 2 data null for column id_koordinator

Berikut adalah perintah untuk memasukan 6 baris data ke dalam tabel tb_team, dengan 2 data bernilai NULL pada kolom id_koordinator: 


Kita menggunakan perintah INSERT INTO untuk memasukkan data ke dalam tabel tb_team. Kita menyebutkan kolom-kolom yang akan diisi dalam tanda kurung (), yaitu id_team, nama_team, dan id_koordinator. Kita menggunakan perintah VALUES untuk menyebutkan nilai-nilai yang akan dimasukkan ke dalam kolom-kolom tersebut. Kita memasukkan nilai untuk 4 baris data dan menyertakan nilai NULL untuk kolom id_koordinator pada 2 baris data.

22. Insert Data Into Table tb_anggotaat least 60 data with some of =  field team from tb_team and some field team with null values 

Kita menggunakan perintah INSERT INTO untuk memasukkan data ke dalam tabel tb_anggota. Kita menyebutkan kolom-kolom yang akan diisi dalam tanda kurung (), yaitu userid, nama, email, no_telp, dan team. Kita menggunakan perintah VALUES untuk menyebutkan nilai-nilai yang akan dimasukkan ke dalam kolom-kolom tersebut. Kita memasukkan nilai untuk 60 baris data dan menyertakan nilai NULL.


Dibawah ini adalah output dengan 60 data yang telah ditambahkan, namun userid tidak berurutan beberapa kemungkinan mengapa output dari query tidak sesuai dengan urutan nomor userid. Beberapa kemungkinan yaitu tidak ada perintah ORDER BY: Jika query tidak menggunakan perintah ORDER BY, maka hasil query akan dikembalikan oleh database dalam urutan yang tidak teratur.


23. Get Data From 3 All Table With Null Data From Table tb_koordinator

Query tersebut merupakan perintah SQL yang digunakan untuk mengambil data dari tiga tabel yaitu "tb_anggota", "tb_team", dan "tb_koordinator". Dalam perintah tersebut dilakukan JOIN antara tabel "tb_anggota" dengan "tb_team" menggunakan RIGHT JOIN dan JOIN antara tabel "tb_team" dengan "tb_koordinator" menggunakan RIGHT JOIN


Dalam hasil query, terdapat tiga kolom data yang ditampilkan: nama dari tabel tb_anggota, nama_team dari tabel tb_team, dan nama dari tabel tb_koordinator. Dan data yang ditampilkan hanya yang memiliki nilai null pada kolom-kolom data yang diambil dari tabel tb_koordinator.

24. Get Data From 3 All Table Without Null Data From Table Tb_koordinator

Query SQL tersebut menggunakan JOIN untuk menggabungkan data dari ketiga tabel tersebut. INNER JOIN digunakan untuk menghubungkan tabel tb_anggota dan tb_team berdasarkan nilai kolom team pada tabel tb_anggota yang sama dengan nilai kolom id_team pada tabel tb_team. Kemudian INNER JOIN digunakan lagi untuk menghubungkan tabel tb_team dengan tabel tb_koordinator berdasarkan nilai kolom id_koordinator pada tabel tb_koordinator yang sama dengan nilai kolom id_koordinator pada tabel tb_team.


Dalam hasil query, terdapat tiga kolom data yang ditampilkan: nama dari tabel tb_anggota, nama_team dari tabel tb_team, dan nama dari tabel tb_koordinator. Dan data yang ditampilkan hanya yang tidak memiliki nilai null pada kolom-kolom data yang diambil dari tabel tb_koordinator.

25. Get Data only field fullname from tb_koordinator and fullname from tb_anggota without null data 

Perintah dibawah adalah sebuah query untuk mengambil data dari tiga tabel, yaitu tb_anggota, tb_team, dan tb_koordinator dengan melakukan inner join di antara ketiga tabel tersebut. Inner join digunakan untuk mengambil hanya data yang memiliki hubungan antara kolom pada setiap tabel. Pada query tersebut, digunakan perintah SELECT untuk menentukan kolom yang ingin diambil, yaitu kolom c.nama untuk nama koordinator dan kolom a.nama untuk nama anggota. Kedua kolom tersebut diambil dari masing-masing tabel dengan menggunakan alias c dan a.

Untuk menghubungkan ketiga tabel tersebut, dilakukan inner join antara tabel tb_anggota dan tb_team menggunakan kondisi a.team = b.id_team yang menghubungkan antara kolom team pada tabel tb_anggota dan id_team pada tabel tb_team. Selanjutnya, dilakukan inner join antara tabel tb_team dan tb_koordinator menggunakan kondisi b.id_koordinator = c.id_koordinator yang menghubungkan antara kolom id_koordinator pada tabel tb_team dan tb_koordinator.


Data hasil query akan menampilkan nama koordinator pada kolom nama_koordinator dan nama anggota pada kolom nama_anggota. Data yang diambil hanya yang memiliki nilai pada kedua kolom tersebut, sehingga data yang kosong atau NULL tidak akan ditampilkan.

26. Get Data only field fullname from tb_koordinator and fullname from tb_anggota with null data


Perintah diatas menggunakan RIGHT JOIN untuk mengambil data dari tabel tb_koordinator dan tb_anggota yang memiliki data terkait di tabel tb_team. RIGHT JOIN akan memastikan bahwa semua baris dalam tabel tb_koordinator akan diambil, bahkan jika tidak ada baris terkait di tabel tb_team atau tb_anggota. Ini berarti bahwa perintah ini akan mengembalikan semua nama koordinator dari tb_koordinator, dan nama anggota dari tb_anggota yang memiliki baris terkait di tabel tb_team. Jika tidak ada baris terkait di tabel tb_team, nilai nama anggota akan NULL.

Perintah ini menggunakan alias tabel "a" untuk tb_anggota, "b" untuk tb_team, dan "c" untuk tb_koordinator. Perintah SELECT digunakan untuk menampilkan hanya kolom "nama" dari masing-masing tabel, dengan memberikan alias nama_koordinator untuk kolom "nama" di tb_koordinator dan nama_anggota untuk kolom "nama" di tb_anggota. Jadi, perintah tersebut akan mengambil data field fullname dari tb_koordinator dan fullname dari tb_anggota yang memiliki nilai terkait di tabel tb_team. Jika tidak ada nilai terkait, maka nilai fullname anggota akan NULL.

27. Get Data From 3 All Table Sort By Fullname


Perintah tersebut digunakan untuk mengambil data dari tiga tabel yaitu tb_anggota, tb_team, dan tb_koordinator dengan menggabungkannya berdasarkan kolom id_team dan id_koordinator yang sama. Hasil yang diambil hanya field nama atau fullname dari tb_koordinator dan tb_anggota. Selain itu, hasil yang diambil juga termasuk data dengan nilai NULL pada tabel tb_anggota.

Data hasil yang diambil kemudian diurutkan secara alfabetis berdasarkan fullname atau nama dalam urutan ascending atau dari A ke Z. Digunakan LEFT JOIN pada tabel tb_anggota dan tb_team serta tb_team dan tb_koordinator untuk memastikan semua data pada tabel tb_koordinator diambil meskipun tidak ada data pada tabel tb_anggota yang terkait.



28. Count The Number Of Members Based On The Team 

Query tersebut digunakan untuk menghitung jumlah anggota dari setiap tim yang terdaftar di tabel tb_team. Query tersebut menggabungkan tabel tb_team dan tb_anggota dengan menggunakan RIGHT JOIN, dimana tb_team dijadikan sebagai tabel utama, kemudian menghitung jumlah anggota dari setiap tim menggunakan fungsi COUNT() dan mengelompokkannya berdasarkan nama tim menggunakan GROUP BY.


Hasil dari query tersebut menampilkan 6 baris yang masing-masing menunjukkan nama tim dan jumlah anggota yang terdaftar pada setiap tim. Kolom jumlah_anggota menunjukkan jumlah anggota dari setiap tim, sedangkan kolom team menunjukkan nama tim. Hasil tersebut menunjukkan bahwa tim "transtv" tidak memiliki anggota sedangkan tim yang lain memiliki anggota dengan jumlah yang berbeda-beda.

29. Count The Number Of Members Based On Fullname On Tb_koordinator That Has Members More Than Or Equal To 5

Query tersebut digunakan untuk menghitung jumlah anggota dari setiap koordinator yang memiliki anggota lebih dari atau sama dengan 5 orang, dengan menggabungkan tabel tb_anggota, tb_team, dan tb_koordinator.

Pada query ini, menggunakan RIGHT JOIN untuk menggabungkan ketiga tabel tersebut, dimana tb_koordinator dijadikan sebagai tabel utama. Kemudian menggunakan COUNT() untuk menghitung jumlah anggota setiap koordinator dan GROUP BY untuk mengelompokkannya berdasarkan nama koordinator. Selain itu, juga menggunakan HAVING COUNT(a.userid) >= 5 untuk mengambil hanya koordinator yang memiliki jumlah anggota lebih dari atau sama dengan 5 orang.


Hasil dari query tersebut menampilkan 3 baris yang masing-masing menunjukkan nama koordinator dan jumlah anggota yang terdaftar pada setiap koordinator. Kolom jumlah_anggota menunjukkan jumlah anggota dari setiap koordinator, sedangkan kolom nama_koordinator menunjukkan nama koordinator. Hasil tersebut menunjukkan hanya 3 koordinator yang memiliki jumlah anggota lebih dari atau sama dengan 5 orang.

30. Create View From Data On Point 26 


Query di atas membuat sebuah view yang disebut "v_koordinator_anggota" yang berisi dua kolom: "nama_koordinator" dan "nama_anggota". Data dalam view ini diperoleh dengan melakukan join pada tiga tabel: "tb_anggota", "tb_team", dan "tb_koordinator".

View ini menunjukkan nama koordinator dan anggota yang terkait dengan koordinator tersebut. Nama koordinator diambil dari tabel "tb_koordinator", sedangkan nama anggota diambil dari tabel "tb_anggota". Kedua tabel dihubungkan melalui tabel "tb_team", yang berisi ID tim yang menghubungkan kedua tabel tersebut.

31. Create Temporary Table From Data On Point 26


Query di atas membuat tabel sementara bernama temp_koordinator_anggota dari data yang dipilih dari tiga tabel tb_koordinator, tb_team, dan tb_anggota. Data yang dipilih mencakup nama koordinator tim dan anggota tim.

Pernyataan SELECT menggunakan RIGHT JOIN untuk menggabungkan tabel tb_anggota dengan tabel tb_team dan tabel tb_team dengan tabel tb_koordinator. ON menentukan kondisi untuk menggabungkan tabel-tabel tersebut. Kolom nama dari tabel tb_anggota dipadankan dengan kolom nama_anggota dari tabel temp_koordinator_anggota. Begitu pula, id_team dari tabel tb_team dipadankan dengan id_koordinator dari tabel tb_koordinator.


Hasil dari query diatas adalah tabel sementara temp_koordinator_anggota dengan dua kolom: nama_koordinator dan nama_anggota. Tabel berisi 32 baris, dengan setiap baris menampilkan nama koordinator tim dan nama anggota tim yang terkait dengan koordinator tersebut. Dua baris terakhir menunjukkan nilai NULL pada kolom nama_koordinator karena tidak ada koordinator tim yang terkait dengan anggota tim tersebut.

32. Truncate Table Temporary


Perintah di atas adalah TRUNCATE TABLE untuk menghapus seluruh isi dari tabel temporary yang disebut temp_koordinator_anggota. Setelah perintah dijalankan, tabel temporary akan kosong atau tidak memiliki baris data. Hasil dari SELECT * FROM temp_koordinator_anggota menunjukkan bahwa tabel sementara tersebut kosong, dan tidak ada baris data yang ditampilkan.

33. Insert Data Into Table Temporary From View 


Perintah INSERT INTO yang digunakan untuk memasukkan data dari view v_koordinator_anggota ke dalam tabel sementara temp_koordinator_anggota. Hasil dari perintah SELECT tersebut menampilkan 5 baris data yang terdiri dari kolom id_koordinator dan nama. Kolom id_koordinator berisi angka yang menunjukkan ID dari setiap koordinator, sedangkan kolom nama berisi nama dari masing-masing koordinator.

34. Add Column Captain Using Data Type Boolean


Perintah ADD COLUMN digunakan untuk menambahkan kolom baru ke dalam tabel. Kolom baru yang ditambahkan bernama captain, dengan tipe data BOOLEAN. Tipe data BOOLEAN berisi nilai kebenaran, yaitu true atau false.

Perintah DEFAULT false digunakan untuk memberikan nilai default false pada kolom captain. Artinya, ketika kolom captain diisi pada saat penambahan data baru, maka secara default nilai akan bernilai false.Dengan demikian, setelah query tersebut dijalankan, tabel tb_anggota akan memiliki kolom baru bernama captain dengan tipe data BOOLEAN.


35. Update Data tb_anggota For Rach Team Have 1 Captain    


Perintah SET captain=TRUE digunakan untuk mengubah nilai kolom captain menjadi TRUE. Perintah WHERE userid IN ('ariel.tatum', 'nasya.marcel', 'tiara.andini', 'tora.sudiro', 'nia.ramad') digunakan untuk membatasi perubahan hanya pada baris yang memiliki nilai userid yang sesuai dengan kriteria tersebut. Artinya, hanya anggota yang memiliki userid sesuai dengan salah satu dari lima nilai yang terdaftar (ariel.tatum, nasya.marcel, tiara.andini, tora.sudiro, atau nia.ramad) yang akan diberi tanda TRUE pada kolom captain.

36. Add Column jenis_kelamin Using Data Type Enum


Dalam query diatas, terdapat perintah ALTER TABLE yang digunakan untuk memodifikasi struktur tabel tb_anggota. Perintah ADD COLUMN digunakan untuk menambahkan kolom baru ke dalam tabel. Kolom baru yang ditambahkan bernama jenis_kelamin, dengan tipe data ENUM. Tipe data ENUM digunakan untuk menentukan nilai yang diperbolehkan dalam kolom tersebut. Pada kasus ini, hanya nilai 'L' (Laki-laki) atau 'P' (Perempuan) yang diperbolehkan sebagai nilai pada kolom jenis_kelamin.

Perintah AFTER captain digunakan untuk menentukan posisi kolom baru tersebut setelah kolom captain. Dalam hal ini, kolom jenis_kelamin akan diletakkan setelah kolom captain. Dengan demikian, setelah query tersebut dijalankan, tabel tb_anggota akan memiliki kolom baru bernama jenis_kelamin dengan tipe data ENUM, yang hanya memperbolehkan nilai 'L' atau 'P'. Kolom baru tersebut juga ditempatkan setelah kolom captain.

37. Update Data tb_anggota For Column jenis_kelamin

Dalam query pada masing-masing gambar dibawah, terdapat perintah UPDATE yang digunakan untuk mengubah nilai pada kolom jenis_kelamin pada tabel tb_anggota.

Pada perintah pertama, yaitu UPDATE tb_anggota SET jenis_kelamin='P' WHERE userid IN (...), digunakan untuk mengubah nilai pada kolom jenis_kelamin menjadi 'P' (Perempuan) untuk anggota yang memiliki userid tertentu yang diberikan dalam daftar IN (...).


Pada perintah kedua, yaitu UPDATE tb_anggota SET jenis_kelamin='L' WHERE userid IN (...), digunakan untuk mengubah nilai pada kolom jenis_kelamin menjadi 'L' (Laki-laki) untuk anggota yang memiliki userid tertentu yang diberikan dalam daftar IN (...).


Dengan demikian, setelah query tersebut dijalankan, nilai pada kolom jenis_kelamin untuk anggota-anggota yang diberikan dalam daftar IN (...) akan diubah menjadi 'P' atau 'L' sesuai dengan perintah yang diberikan.

38. Get Data From 3 All Table Sort By Fullname From Tb_anggota Alphabetically

Dalam query yang Anda berikan, terdapat perintah SELECT yang digunakan untuk mengambil data dari tiga tabel yaitu tb_anggota, tb_team, dan tb_koordinator. Selanjutnya, data tersebut akan diurutkan secara alfabetis berdasarkan nama anggota dari tabel tb_anggota.


Pada perintah ORDER BY a.nama ASC, digunakan untuk mengurutkan data berdasarkan kolom nama pada tabel tb_anggota secara ascending (dari A-Z). Dengan demikian, setelah query tersebut dijalankan, data dari ketiga tabel akan digabungkan dan ditampilkan secara alfabetis berdasarkan nama anggota pada tabel tb_anggota.




Komentar

Postingan populer dari blog ini

Istilah - istilah dalam manage local disk di Linux

 Istilah - istilah dalam manage local disk Linux Halo temen-temen semua pada blog kali ini saya akan membahas mengenai istilah - istilah dalam manage local disk Linux. Nah disini ada 10 pembahasan dan perbedaan  istilah - istilah dalam manage local disk. Berikut penjelasannya : 1. LUN (Logical Unit Number) LUN adalah singkatan dari kata Logical Unit Number. Istilah Logical Unit Number apabila disingkat yaitu menjadi LUN. LUN sendiri adalah Nomor unit logis (LUN) adalah pengidentifikasi unik yang menunjuk perangkat hard disk individu atau perangkat yang dikelompokkan untuk alamat oleh protokol yang terkait dengan SCSI, iSCSI, Fibre Channel (FC) atau antarmuka serupa. LUN merupakan pusat pengelolaan array penyimpanan blok yang dibagikan melalui storage area network (SAN). LUN digunakan untuk mengidentifikasi subset data dalam disk sehingga perangkat komputasi yang menggunakannya dapat menjalankan operasi. Jenis-jenis LUN : Mirror LUN: LUN toleran-kesalahan dengan salinan identik pada dua

Perintah - Perintah Dasar Linux

 Perintah Sistem Operasi Linux

Sejarah Linux

  SEJARAH LINUX Apa itu Linux dan apa bedanya dengan sistem operasi lain? Linux adalah sistem operasi atau Operating System (OS), sama seperti Windows OS, MacOS, iOS, Android, dan sebagainya. Seperti sistem operasi umumnya, fungsi Linux adalah sebagai wadah untuk menjembatani komunikasi atau perintah pengguna pada hubungan software dan hardware dalam sebuah perangkat. Dengan fungsi seperti itu, Linux akan menerima dan menerjemahkan perintah pengguna di software, lalu dikirim ke hardware untuk menghasilkan sebuah output tindakan. Bila secara definisi dan fungsi sama, lalu apa perbedaan Linux dan sistem operasi lain? Perbedaan utama terletak di akses terhadap kode sumber pemrograman (source code). Source code di Linux tidak dikunci alias bebas diakses oleh siapapun.   Sejarah Linux Sekelompok developer telah membentuk suatu group yang diberinama GNU sebagai wadah untuk membuat sistem dan aplikasi yang bebas digunakan dan open   source, semua komponen telah selesai dibuat dan hanya ada sa