SlideShare a Scribd company logo
Basisdata 2
T.Informatika UTM Ganjil 2012/2013
Fika Hastarita Rachman
Pengantar DML
 DML adalah perintah SQL yang digunakan untuk
memanipulasi data
 Meliputi:
 SELECT (pengambilan informasi dari data tabel)
 INSERT (menambah data baru dalam tabel)
 UPDATE (mengubah data yang sudah ada dalam tabel)
 DELETE (menghapus data yang sudah ada dalam tabel)
Fika Hastarita Rachman
Perintah SELECT
 Memiliki beberapa klausa:
 FROM : mengidentifikasi tabel yang diperlukan
 WHERE : kondisi yang ditentukan
 GROUP BY : menyusun baris berdasar kolom dgn nilai yang sama
 HAVING : memilih susunan baris dari hasil GROUP BY yang
memenuhi kondisi
 SELECT : memilih kolom yang ingin ditampilkan sebagai hasil
 ORDER BY : mengurutkan baris sebelum ditampilkan sebagai hasil
 DISTINC
Fika Hastarita Rachman
Basisdata Tennis
Fika Hastarita Rachman
Penggunaan SELECT
Perintah SQL: SELECT *
FROM PENALTIES;
 Tidak ada seleksi kolom mana saja yang ingin ditampilkan
(ekspresi yang diberikan setelah select, simbol *)
 Isi dari seluruh kolom dalam tabel PENALTIES
ditampilkan
 Hasil :
Fika Hastarita Rachman
PAYMENTNO PLAYERNO PAYMENT_DATE AMOUNT
1
2
3
4
5
6
7
8
6
44
27
104
44
8
44
27
1980-12-08
1981-05-05
1983-09-10
1984-12-08
1980-12-08
1980-12-08
1982-12-30
1984-11-12
100.00
75.00
100.00
50.00
25.00
25.00
30.00
75.00
SELECT pemilihan kolom
 Tampilkan nomor pembayaran, nomor pemain dan
jumlah dari masing-masing penalti
SELECT PAYMENTNO,PLAYERNO,AMOUNT
FROM PENALTIES;
 Hasil :
Fika Hastarita Rachman
PAYMENTNO PLAYERNO AMOUNT
1
2
3
4
5
6
7
8
6
44
27
104
44
8
44
27
100.00
75.00
100.00
50.00
25.00
25.00
30.00
75.00
Perintah AS
 Kolom hasil perintah SQL dapat diberi nama baru
untuk memudahkan user menganalisa data
 Perintah SQL :
SELECT PLAYERNO, NAME,
JOINED AS JOIN_AGE
FROM PLAYERS;
Hasil:
Fika Hastarita Rachman
PLAYERNO NAME JOIN_AGE
2 Everett 27
6 Parmenter 13
7 Wise 18
8 Newcastle 18
Klausa WHERE
 Untuk memilih atau menyeleksi baris yang memenuhi
kondisi yang ditentukan
 Dapatkan nomor, nama, jenis kelamin dan tanggal
lahir dari masing-masing pemain pria yang lahir
setelah tahun 1970
 Perintah SQL :
SELECT PLAYERNO, NAME, SEX, BIRTH_DATE
FROM PLAYERS
WHERE SEX = ‘M’ AND YEAR(BIRTH_DATE) > 1970;
Hasil :
Fika Hastarita Rachman
PLAYERNO NAME SEX BIRTH_DATE
57 Brown M 1971-08-17
Perintah IS NOT NULL
SELECT PLAYERNO, LEAGUENO
FROM PLAYERS
WHERE LEAGUENO IS NOT NULL;
 Hasil perintah SQL:
Fika Hastarita Rachman
PLAYERNO LEAGUENO
2 2411
6 8467
8 2983
27 2513
44 1124
57 6409
83 1608
100 6524
104 7060
112 1319
Klausa ORDER BY
 digunakan untuk mengurutkan baris-baris sebelum
ditampilkan sebagai hasil perintah SQL
 Espresi:
 ASC(ASCENDING : urut naik (kecil ke besar)
 DESC (DESCENDING : urut turun (besar ke kecil)
 Tak ditentukan --- otomatis ASC
 Contoh:
SELECT PAYMENTNO, PLAYERNO
FROM PENALTIES
ORDER BY PLAYERNO, PAYMENTNO;
atau ORDER BY 2, 1;
Fika Hastarita Rachman
Seluruh klausa dalam satu SELECT
 hasil perintah SQL diperoleh berdasarkan urutan
pelaksanaan eksekusi dari klausa
FROM – WHERE – GROUP BY – HAVING – SELECT –
ORDER BY
 Cari nomor pemain yang telah melakukan setidaknya
dua kali penalti yang jumlahnya lebih dari $25!
Urutkan hasil berdasarkan nomor pemainnya!
Fika Hastarita Rachman
Perintah SQL:
 SELECT PLAYERNO
FROM PENALTIES
WHERE AMOUNT > 25
GROUP BY PLAYERNO
HAVING COUNT (*) > 1
ORDER BY PLAYERNO;
Fika Hastarita Rachman
Alur Kerja
Klausa
Fika Hastarita Rachman
FROM
(mengidentifikasi tabel yang diperlukan)
WHERE
(memilih baris yang memenuhi kondisi yang
ditentukan)
GROUP BY
(menyusun baris berdasarkan nilai kolom
yang sama)
HAVING
(memilih susunan baris dari hasil GROUP BY
yang memenuhi kondisi yang ditentukan)
SELECT
(menentukan kolom yang ingin ditampilkan)
ORDER BY
(mengurutkan baris)
HASIL
Hasil Eksekusi per klausa
Fika Hastarita Rachman
SELECT untuk lebih dari satu tabel
 Cartesian product
Fika Hastarita Rachman
 Menampilkan data dari tabel TEAMS dan tabel
PLAYERS
SELECT TEAMNO, NAME
FROM TEAMS, PLAYERS
WHERE TEAMS.PLAYERNO = PLAYERS.PLAYERNO;
 Ambigu pada perintah SQL terjadi bila pada perintah
SELECT dieksekusi kolom yang dimiliki oleh dua tabel
dengan nama kolom sama
 Penyelesaian:
SELECT PAYMENTNO, PENALTIES.PLAYERNO, AMOUNT,
NAME, INITIALS
FROM PENALTIES, PLAYERS
WHERE PENALTIES.PLAYERNO = PLAYERS.PLAYERNO;
Fika Hastarita Rachman
Nama alias untuk nama tabel
 Cari nama dan inisial pemain yang telah bermain di
dalam pertandingan minimal sebanyak 1 kali!
 Penyelesaian berikut menggunakan alias (P untuk
PLAYERNO dan M untuk MATCHES) untuk
meringkas perintah SQL
Perintah SQL:
SELECT DISTINCT P.NAME, P.INITIALS
FROM PLAYERS AS P, MATCHES AS M
WHERE P.PLAYERNO = M.PLAYERNO;
Fika Hastarita Rachman
Penggunaan operator logika dalam
WHERE
 Cari nomor-nomor pemain yang usianya lebih tua dari
R. Parmenter!
 Perintah SQL:
SELECT P.PLAYERNO
FROM PLAYERS AS P, PLAYERS AS PAR
WHERE PAR.NAME = 'PARMENTER'
AND PAR.INITIALS = 'R'
AND P.BIRTH_DATE < PAR.BIRTH_DATE;
Fika Hastarita Rachman
 Cari nomor dan nama pemain yang tinggal di kota
yang sama dengan pemain nomor 27!
Perintah SQL:
SELECT P.PLAYERNO, P.NAME
FROM PLAYERS AS P, PLAYERS AS P27
WHERE P.TOWN = P27.TOWN
AND P27.PLAYERNO = 27
AND P.PLAYERNO <> 27;
Fika Hastarita Rachman
INSERT data ke tabel
 Sintaks SQL untuk menambahkan data per baris :
INSERT INTO <table specification>
[<column list>]
VALUES (<expression> [{,<expression>}. . . ]);
 Sintaks SQL untuk menambahkan dengan mengambil data
dari tabel lain:
INSERT INTO <table specification>
[<column list>]
<select clause>
<from clause>
[ <where clause> ]
[ <group by clause> ]
[ <having clause> ];
Fika Hastarita Rachman
Contoh INSERT data
 Sebuah tim baru dengan pemain nomor 100 sebagai
kaptennya telah bergabung di dalam liga. Tim ketiga ini
akan bermain di dalam divisi ketiga.
Perintah SQL:
INSERT INTO TEAMS (TEAMNO, PLAYERNO, DIVISION)
VALUES (3,100,'third');
 Atau tanpa dengan menyebutkan nama-nama kolom yang
akan diisi nilai:
INSERT INTO TEAMS
VALUES (3,100,'third');
Fika Hastarita Rachman
 Buatlah suatu tabel baru yang mencatat nomor
pemain, nama, kota dan nomor telepon dari masing-
masing pemain yang tidak memiliki nomor liga
(pemain yang tidak pernah bermain di dalam liga)!
 Perintah SQL untuk membuat tabel baru:
CREATE TABLE RECR_PLAYERS
(PLAYERNO SMALLINT NOT NULL,
NAME CHAR(15) NOT NULL,
TOWN CHAR(10) NOT NULL,
PHONENO CHAR(10) ,
PRIMARY KEY (PLAYERNO));
Fika Hastarita Rachman
 Perintah SQL untuk menambahkan data ke tabel
RECR_PLAYERS dari tabel PLAYERS:
INSERT INTO RECR_PLAYERS
SELECT PLAYERNO, NAME, TOWN, PHONENO
FROM PLAYERS
WHERE LEAGUENO IS NULL;
Fika Hastarita Rachman
UPDATE data dalam tabel
 Sintaks SQL
UPDATE <table specification>
SET <column name = expression>
[ WHERE <condition> ];
Fika Hastarita Rachman
 Keluarga Parmenter telah pindah rumah. Sekarang
mereka tinggal di Palmer Street nomor 83, kota
Inglewood, kode pos 1234UU. Nomor telepon mereka
yang baru belum diketahui. Perbaharui data keluarga
Parmenter berdasarkan informasi tersebut!
 Perintah SQL:
UPDATE PLAYERS
SET STREET = 'Palmer Street', HOUSENO = '83',
TOWN = 'Inglewood', POSTCODE = '1234UU',
PHONENO = NULL
WHERE NAME = 'Parmenter';
Fika Hastarita Rachman
 Naikkan jumlah penalti sebanyak 5%!
 Perintah SQL:
UPDATE PENALTIES
SET AMOUNT = AMOUNT * 1.05;
Fika Hastarita Rachman
DELETE data dalam tabel
 Sintaks SQL
DELETE
FROM <table specification>
[ WHERE <condition> ]
Fika Hastarita Rachman
 Hapus seluruh data penalti yang dilakukan oleh
pemain nomor 44 pada tahun 1980!
 Perintah SQL:
DELETE
FROM PENALTIES
WHERE PLAYERNO = 44
AND YEAR(PAYMENT_DATE) = 1980;
Fika Hastarita Rachman
Evaluasi 1
 Tampilkan playerno dan nama pemain, yang
bertempat tinggal di malang
 Tampilkan kota yang dimiliki oleh lebih satu pemain
 Tampilkan semua kolom, untuk pemain cowok yang
bergabung diatas tahun 1975
 Tampilkan semua kolom yang house numbernya null
 Tampilkan semua kolom di tabel penalties yang
amountnya genap
 Tampilkan semua data yang inisialnya ‘R’ dan ketika
dia bergabung usianya 27 tahun
Fika Hastarita Rachman

More Related Content

Viewers also liked

Works, First period
Works, First periodWorks, First period
Works, First period
valentinam0899
 
Brian Murray at 365 NYC
Brian Murray at 365 NYCBrian Murray at 365 NYC
Brian Murray at 365 NYC
Fikriyyah George
 
Camarero
CamareroCamarero
Camarero
JudithWhyNot
 
Fax from gmail
Fax from gmailFax from gmail
Fax from gmail
Hector Delgado
 
Iacbe 2013 meeting
Iacbe 2013 meetingIacbe 2013 meeting
Iacbe 2013 meeting
eclarson
 
Affiliate Growth And Development
Affiliate Growth And Development Affiliate Growth And Development
Affiliate Growth And Development
Marquis Miller
 
Sales Operations - Fix the disconnect within your company
Sales Operations - Fix the disconnect within your companySales Operations - Fix the disconnect within your company
Sales Operations - Fix the disconnect within your company
Jim Sherman
 
Использование Jira Agile как инструмент для контроля гибкой разработкиLaf2015...
Использование Jira Agile как инструмент для контроля гибкой разработкиLaf2015...Использование Jira Agile как инструмент для контроля гибкой разработкиLaf2015...
Использование Jira Agile как инструмент для контроля гибкой разработкиLaf2015...
Алексей Тихонович
 

Viewers also liked (9)

Works, First period
Works, First periodWorks, First period
Works, First period
 
Brian Murray at 365 NYC
Brian Murray at 365 NYCBrian Murray at 365 NYC
Brian Murray at 365 NYC
 
Camarero
CamareroCamarero
Camarero
 
Sin título 111
Sin título 111Sin título 111
Sin título 111
 
Fax from gmail
Fax from gmailFax from gmail
Fax from gmail
 
Iacbe 2013 meeting
Iacbe 2013 meetingIacbe 2013 meeting
Iacbe 2013 meeting
 
Affiliate Growth And Development
Affiliate Growth And Development Affiliate Growth And Development
Affiliate Growth And Development
 
Sales Operations - Fix the disconnect within your company
Sales Operations - Fix the disconnect within your companySales Operations - Fix the disconnect within your company
Sales Operations - Fix the disconnect within your company
 
Использование Jira Agile как инструмент для контроля гибкой разработкиLaf2015...
Использование Jira Agile как инструмент для контроля гибкой разработкиLaf2015...Использование Jira Agile как инструмент для контроля гибкой разработкиLaf2015...
Использование Jira Agile как инструмент для контроля гибкой разработкиLaf2015...
 

4. data manipulation language (dml)

  • 1. Basisdata 2 T.Informatika UTM Ganjil 2012/2013 Fika Hastarita Rachman
  • 2. Pengantar DML  DML adalah perintah SQL yang digunakan untuk memanipulasi data  Meliputi:  SELECT (pengambilan informasi dari data tabel)  INSERT (menambah data baru dalam tabel)  UPDATE (mengubah data yang sudah ada dalam tabel)  DELETE (menghapus data yang sudah ada dalam tabel) Fika Hastarita Rachman
  • 3. Perintah SELECT  Memiliki beberapa klausa:  FROM : mengidentifikasi tabel yang diperlukan  WHERE : kondisi yang ditentukan  GROUP BY : menyusun baris berdasar kolom dgn nilai yang sama  HAVING : memilih susunan baris dari hasil GROUP BY yang memenuhi kondisi  SELECT : memilih kolom yang ingin ditampilkan sebagai hasil  ORDER BY : mengurutkan baris sebelum ditampilkan sebagai hasil  DISTINC Fika Hastarita Rachman
  • 5. Penggunaan SELECT Perintah SQL: SELECT * FROM PENALTIES;  Tidak ada seleksi kolom mana saja yang ingin ditampilkan (ekspresi yang diberikan setelah select, simbol *)  Isi dari seluruh kolom dalam tabel PENALTIES ditampilkan  Hasil : Fika Hastarita Rachman PAYMENTNO PLAYERNO PAYMENT_DATE AMOUNT 1 2 3 4 5 6 7 8 6 44 27 104 44 8 44 27 1980-12-08 1981-05-05 1983-09-10 1984-12-08 1980-12-08 1980-12-08 1982-12-30 1984-11-12 100.00 75.00 100.00 50.00 25.00 25.00 30.00 75.00
  • 6. SELECT pemilihan kolom  Tampilkan nomor pembayaran, nomor pemain dan jumlah dari masing-masing penalti SELECT PAYMENTNO,PLAYERNO,AMOUNT FROM PENALTIES;  Hasil : Fika Hastarita Rachman PAYMENTNO PLAYERNO AMOUNT 1 2 3 4 5 6 7 8 6 44 27 104 44 8 44 27 100.00 75.00 100.00 50.00 25.00 25.00 30.00 75.00
  • 7. Perintah AS  Kolom hasil perintah SQL dapat diberi nama baru untuk memudahkan user menganalisa data  Perintah SQL : SELECT PLAYERNO, NAME, JOINED AS JOIN_AGE FROM PLAYERS; Hasil: Fika Hastarita Rachman PLAYERNO NAME JOIN_AGE 2 Everett 27 6 Parmenter 13 7 Wise 18 8 Newcastle 18
  • 8. Klausa WHERE  Untuk memilih atau menyeleksi baris yang memenuhi kondisi yang ditentukan  Dapatkan nomor, nama, jenis kelamin dan tanggal lahir dari masing-masing pemain pria yang lahir setelah tahun 1970  Perintah SQL : SELECT PLAYERNO, NAME, SEX, BIRTH_DATE FROM PLAYERS WHERE SEX = ‘M’ AND YEAR(BIRTH_DATE) > 1970; Hasil : Fika Hastarita Rachman PLAYERNO NAME SEX BIRTH_DATE 57 Brown M 1971-08-17
  • 9. Perintah IS NOT NULL SELECT PLAYERNO, LEAGUENO FROM PLAYERS WHERE LEAGUENO IS NOT NULL;  Hasil perintah SQL: Fika Hastarita Rachman PLAYERNO LEAGUENO 2 2411 6 8467 8 2983 27 2513 44 1124 57 6409 83 1608 100 6524 104 7060 112 1319
  • 10. Klausa ORDER BY  digunakan untuk mengurutkan baris-baris sebelum ditampilkan sebagai hasil perintah SQL  Espresi:  ASC(ASCENDING : urut naik (kecil ke besar)  DESC (DESCENDING : urut turun (besar ke kecil)  Tak ditentukan --- otomatis ASC  Contoh: SELECT PAYMENTNO, PLAYERNO FROM PENALTIES ORDER BY PLAYERNO, PAYMENTNO; atau ORDER BY 2, 1; Fika Hastarita Rachman
  • 11. Seluruh klausa dalam satu SELECT  hasil perintah SQL diperoleh berdasarkan urutan pelaksanaan eksekusi dari klausa FROM – WHERE – GROUP BY – HAVING – SELECT – ORDER BY  Cari nomor pemain yang telah melakukan setidaknya dua kali penalti yang jumlahnya lebih dari $25! Urutkan hasil berdasarkan nomor pemainnya! Fika Hastarita Rachman
  • 12. Perintah SQL:  SELECT PLAYERNO FROM PENALTIES WHERE AMOUNT > 25 GROUP BY PLAYERNO HAVING COUNT (*) > 1 ORDER BY PLAYERNO; Fika Hastarita Rachman
  • 13. Alur Kerja Klausa Fika Hastarita Rachman FROM (mengidentifikasi tabel yang diperlukan) WHERE (memilih baris yang memenuhi kondisi yang ditentukan) GROUP BY (menyusun baris berdasarkan nilai kolom yang sama) HAVING (memilih susunan baris dari hasil GROUP BY yang memenuhi kondisi yang ditentukan) SELECT (menentukan kolom yang ingin ditampilkan) ORDER BY (mengurutkan baris) HASIL
  • 14. Hasil Eksekusi per klausa Fika Hastarita Rachman
  • 15. SELECT untuk lebih dari satu tabel  Cartesian product Fika Hastarita Rachman
  • 16.  Menampilkan data dari tabel TEAMS dan tabel PLAYERS SELECT TEAMNO, NAME FROM TEAMS, PLAYERS WHERE TEAMS.PLAYERNO = PLAYERS.PLAYERNO;  Ambigu pada perintah SQL terjadi bila pada perintah SELECT dieksekusi kolom yang dimiliki oleh dua tabel dengan nama kolom sama  Penyelesaian: SELECT PAYMENTNO, PENALTIES.PLAYERNO, AMOUNT, NAME, INITIALS FROM PENALTIES, PLAYERS WHERE PENALTIES.PLAYERNO = PLAYERS.PLAYERNO; Fika Hastarita Rachman
  • 17. Nama alias untuk nama tabel  Cari nama dan inisial pemain yang telah bermain di dalam pertandingan minimal sebanyak 1 kali!  Penyelesaian berikut menggunakan alias (P untuk PLAYERNO dan M untuk MATCHES) untuk meringkas perintah SQL Perintah SQL: SELECT DISTINCT P.NAME, P.INITIALS FROM PLAYERS AS P, MATCHES AS M WHERE P.PLAYERNO = M.PLAYERNO; Fika Hastarita Rachman
  • 18. Penggunaan operator logika dalam WHERE  Cari nomor-nomor pemain yang usianya lebih tua dari R. Parmenter!  Perintah SQL: SELECT P.PLAYERNO FROM PLAYERS AS P, PLAYERS AS PAR WHERE PAR.NAME = 'PARMENTER' AND PAR.INITIALS = 'R' AND P.BIRTH_DATE < PAR.BIRTH_DATE; Fika Hastarita Rachman
  • 19.  Cari nomor dan nama pemain yang tinggal di kota yang sama dengan pemain nomor 27! Perintah SQL: SELECT P.PLAYERNO, P.NAME FROM PLAYERS AS P, PLAYERS AS P27 WHERE P.TOWN = P27.TOWN AND P27.PLAYERNO = 27 AND P.PLAYERNO <> 27; Fika Hastarita Rachman
  • 20. INSERT data ke tabel  Sintaks SQL untuk menambahkan data per baris : INSERT INTO <table specification> [<column list>] VALUES (<expression> [{,<expression>}. . . ]);  Sintaks SQL untuk menambahkan dengan mengambil data dari tabel lain: INSERT INTO <table specification> [<column list>] <select clause> <from clause> [ <where clause> ] [ <group by clause> ] [ <having clause> ]; Fika Hastarita Rachman
  • 21. Contoh INSERT data  Sebuah tim baru dengan pemain nomor 100 sebagai kaptennya telah bergabung di dalam liga. Tim ketiga ini akan bermain di dalam divisi ketiga. Perintah SQL: INSERT INTO TEAMS (TEAMNO, PLAYERNO, DIVISION) VALUES (3,100,'third');  Atau tanpa dengan menyebutkan nama-nama kolom yang akan diisi nilai: INSERT INTO TEAMS VALUES (3,100,'third'); Fika Hastarita Rachman
  • 22.  Buatlah suatu tabel baru yang mencatat nomor pemain, nama, kota dan nomor telepon dari masing- masing pemain yang tidak memiliki nomor liga (pemain yang tidak pernah bermain di dalam liga)!  Perintah SQL untuk membuat tabel baru: CREATE TABLE RECR_PLAYERS (PLAYERNO SMALLINT NOT NULL, NAME CHAR(15) NOT NULL, TOWN CHAR(10) NOT NULL, PHONENO CHAR(10) , PRIMARY KEY (PLAYERNO)); Fika Hastarita Rachman
  • 23.  Perintah SQL untuk menambahkan data ke tabel RECR_PLAYERS dari tabel PLAYERS: INSERT INTO RECR_PLAYERS SELECT PLAYERNO, NAME, TOWN, PHONENO FROM PLAYERS WHERE LEAGUENO IS NULL; Fika Hastarita Rachman
  • 24. UPDATE data dalam tabel  Sintaks SQL UPDATE <table specification> SET <column name = expression> [ WHERE <condition> ]; Fika Hastarita Rachman
  • 25.  Keluarga Parmenter telah pindah rumah. Sekarang mereka tinggal di Palmer Street nomor 83, kota Inglewood, kode pos 1234UU. Nomor telepon mereka yang baru belum diketahui. Perbaharui data keluarga Parmenter berdasarkan informasi tersebut!  Perintah SQL: UPDATE PLAYERS SET STREET = 'Palmer Street', HOUSENO = '83', TOWN = 'Inglewood', POSTCODE = '1234UU', PHONENO = NULL WHERE NAME = 'Parmenter'; Fika Hastarita Rachman
  • 26.  Naikkan jumlah penalti sebanyak 5%!  Perintah SQL: UPDATE PENALTIES SET AMOUNT = AMOUNT * 1.05; Fika Hastarita Rachman
  • 27. DELETE data dalam tabel  Sintaks SQL DELETE FROM <table specification> [ WHERE <condition> ] Fika Hastarita Rachman
  • 28.  Hapus seluruh data penalti yang dilakukan oleh pemain nomor 44 pada tahun 1980!  Perintah SQL: DELETE FROM PENALTIES WHERE PLAYERNO = 44 AND YEAR(PAYMENT_DATE) = 1980; Fika Hastarita Rachman
  • 29. Evaluasi 1  Tampilkan playerno dan nama pemain, yang bertempat tinggal di malang  Tampilkan kota yang dimiliki oleh lebih satu pemain  Tampilkan semua kolom, untuk pemain cowok yang bergabung diatas tahun 1975  Tampilkan semua kolom yang house numbernya null  Tampilkan semua kolom di tabel penalties yang amountnya genap  Tampilkan semua data yang inisialnya ‘R’ dan ketika dia bergabung usianya 27 tahun Fika Hastarita Rachman