Selasa, 11 Juni 2013

Latihan Query Database dengan SQL Server 2005

Assalamu'alaikum kawan, Postingan kali ini saya buat untuk tugas mata kuliah Basis Data 2,sesuai judul diatas, software yang saya pakai adalah SQL SERVER 2005. Jika anda belum punya, silahkan download dan install dulu softwarenya.

Nah, langsung saja,,,ini dia contoh soalnya.......

Diketahui sebuah database dengan nama StudiKasus, dengan 4 buah tabelnya seperti diagram di bawah ini


Selesaikanlah studi kasus ini dengan menjawab pertanyaan di bawah ini dengan menggunakan perintah bahasa query :

1. Buat table karyawan, tentukan dan bentuk primary key dengan fungsi alter
2. Buat table divisi, tentukan dan bentuk primary key dengan nama constraint PK_Divisi
3. Buat table gaji, tentukan dan bentuk primary key pada saat create table
4. Buat relasi tabel karyawan dengan divisi , beri nama constraint Fk_Karyawan_Divisi
5. Buat relasi tabel karyawan dengan gaji, beri nama constraint Fk_Karyawan_Gaji
6. Buat relasi tabel karyawan dengan status, beri nama constraint Fk_Karyawan_Status
7. Buat diagram diagram database dengan nama DiagramKaryawan.
8. Pada table gaji gunakan perintah Insert untuk memasukkan data sebagai berikut 

 
 














9. Pada table divisi gunakan perintah insert untuk memasukkan data sebagai berikut

















10. Pada table status gunakan perintah insert untuk memasukkan data sebagai berikut













11. Pada table karyawan gunakan perintah insert untuk memasukkan data sebagai berikut



12. Tampilkan total jumlah anak pada seluruh karyawan, seperti di bawah ini










13. Hitung dan tampilkan jumlah karyawan berstatus kawin seperti di bawah ini







14. Tampilkan data karyawan (NIP, Nama Karyawan, Status)dari tabel karyawan dan tabel status , dimana status=2 (kawin), seperti di bawah ini









15. Tampilkan data karyawan dengan mengurutkan data berdasarkan nama karyawan secara descending



16. Tampilkan data karyawan (NIP, Nama Karyawan, Jenis Kelamin, KodeStatus, KodeDivisi, Gol, Jumlah anak) dari tabel karyawan dan hitung jumlah anak dan karyawan pada akhir baris seperti di bawah ini












17. Tampilkan data karyawan (NIP, Nama , Tempat Lahir,  Jenis Kelamin, Alamat , Kota, Jumlah anak) secara berurutan dan hitung jumlah karyawan dan jumlah anak seperti di bawah ini

















18. Tampilkan Jumlah karyawan yang kawin (kode status=2) berdasarkan golongan dari kota jakarta atau sukabumi, seperti di bawah ini








19. Tampilkan Jumlah anak berdasarkan kota dari karyawan dengan divisi=B seperti di bawah ini







20. Selesai

JAWABAN :


create database StudiKasus

use StudiKasus


create table TblKaryawan
(
    NIP char(10) not null,
    NamaKar char(25) not null,
    TmptLahir char (15) not null,
    TglLahir datetime not null,
    JK char (1) not null,
    KodeStatus char (2) not null,
    Alamat char(50) not null,
    Kota char(15) not null,
    NoTelp char(15) not null,
    KodeDivisi char(2) not null,
    Gol char(2) not null,
    JmlAnak int default null,
)


alter table TblKaryawan add constraint pk_karyawan primary key(NIP)



create table TblDivisi
(
    KodeDivisi char(2) not null,
    NamaDivisi char(15) not null,
)
alter table TblDivisi add constraint pk_divisi primary key(KodeDivisi)


create table TblGaji
(
    Gol char(2) not null,
    GajiPokok int not null,
    constraint pk_gaji primary key(Gol)
)


create table TblStatus
(
    KodeStatus char(2) not null,
    NamaStatus char(15) not null,
    constraint pk_status primary key(KodeStatus)
)


alter table TblKaryawan add constraint fk_karyawan_divisi foreign key (KodeDivisi) references TblDivisi (KodeDivisi)

alter table TblKaryawan add constraint fk_karyawan_gaji foreign key (Gol) references TblGaji (Gol)


alter table TblKaryawan add constraint fk_karyawan_status foreign key (KodeStatus) references TblStatus (KodeStatus)



insert into TblGaji values('A','750000')
insert into TblGaji values('B','1000000')
insert into TblGaji values('C','1250000')
insert into TblGaji values('D','1500000')
insert into TblGaji values('E','1750000')
insert into TblGaji values('F','2000000')
insert into TblGaji values('G','2250000')
insert into TblGaji values('H','2500000')
insert into TblGaji values('I','2750000')
insert into TblGaji values('J','3000000')



insert into TblDivisi values('A','Direktur')
insert into TblDivisi values('B','Manajer')
insert into TblDivisi values('C','Personalia')
insert into TblDivisi values('D','Marketing')
insert into TblDivisi values('E','Produksi')
insert into TblDivisi values('F','Warehouse')
insert into TblDivisi values('G','Finance')
insert into TblDivisi values('H','Accounting')
insert into TblDivisi values('I','Umum')
insert into TblDivisi values('J','Sales')


insert into TblStatus values('1','Tidak')
insert into TblStatus values('2','Kawin')
insert into TblStatus values('3','Duda')
insert into TblStatus values('4','Janda')


insert into TblKaryawan values('0101001','DEWI','JAKARTA','1977-05-23','P','2','JL. RAYA BOGOR 21 RT 5 / RW 3','BOGOR','025112358796','H','C','2')

insert into TblKaryawan values('0101002','ASTRI','TANGERANG','1980-02-12','P','1','JL. SUKA SENANG 22 RT 2 / RW 7','TANGERANG','02197356894','E','B',NULL)


insert into TblKaryawan values('0102001','ACHMAD','BANDUNG','1988-12-12','L','2','JL. BUKIT DAGO RT 7 / RW 9','JAKARTA','0217563756','B','I','1')


insert into TblKaryawan values('0201003','UDIN','BOGOR','1985-10-09','L','1','JL. PAMULANG 2 RT 4 / RW 4','TANGERANG','02178965432','G','E',NULL)


insert into TblKaryawan values('0311021','FITRI','SUKABUMI','1979-10-15','P','2','JL. RAYA SUKABUMI RT 6 / RW 1','SUKABUMI','0252232324','J','D','1')


select sum(jmlAnak) 'Total Jml Anak' from TblKaryawan

select count(NamaKar) 'Jumlah Status Kawin' from TblKaryawan where KodeStatus=2

select NIP, NamaKar 'Nama Karyawan',NamaStatus 'Status' from TblKaryawan inner join TblStatus on TblKaryawan.KodeStatus=TblStatus.KodeStatus where TblKaryawan.KodeStatus=2


select * from TblKaryawan Order by NamaKar desc


select NIP,NamaKar 'Nama',Jk,KodeStatus,KodeDivisi,Gol,JmlAnak from TblKaryawan compute sum(JmlAnak), Count(NamaKar)


select NIP,NamaKar 'Nama',Jk,KodeStatus,KodeDivisi,Gol,Kota,JmlAnak from TblKaryawan order by Kota compute Count(NamaKar), Sum(JmlAnak) by Kota


select Gol,Count(NamaKar) 'Jumlah Karyawan' from TblKaryawan where kota ='Jakarta' or kota='Sukabumi' group by Gol


select Kota, sum(JmlAnak) 'Jml Anak' from TblKaryawan Where KodeDivisi='B' group by Kota








Sekian, Semoga bermanfaat ^_^


Sumber soal :

Buku Modul BASIS DATA 2 by Bapak Achmad Bisri /  achmadbizri@gmail.com