Ad (728x90)

Senin, 15 Oktober 2012

Filled Under:

Tugas Latihan Prak PBD per 4


--function fMhs untuk mengambil data mahasiswa berdasarkan kota
create function fMhs (@kota as varchar(50))
returns table
as
return (select nim,nama,alamat,kota,jns_kelamin,sts_nikah
from mahasiswa
where kota=@kota);

--menghapus function fMhs
drop function fMhs

--function fCetak untuk mencetak nama mahasiswa dan nim mahasiswa
create function fCetak (@nim as char(11), @nama as varchar(100))
returns varchar(100)
as
begin
return ' ' +@nama + '(' + @nim + ')'
end;

--menghapus function fCetak
drop function fCetak

--function fHitungMhs untuk menghitung jumlah mahasiswa
create function fHitungMhs (@kota as varchar(50))
returns numeric
as
begin
return (select count(*)
from mahasiswa
where kota = @kota);
end;

--menghapus function fCetak
drop function fHitungMhs


-- Jawaban Latihan Pertemuan 4 PBD

--deklarasi cursor cKota (jangan lupa deallocatenya juga)
declare cKota cursor for
select distinct kota from mahasiswa;

--deklarasi variabel kota untuk menampung data kota
declare @kota as varchar(50);

--open cursor cKota
open cKota;

--transfer data kota ke dalam variabel kota
fetch next from cKota into @kota;

--looping data kota
while @@fetch_status = 0
begin
--cetak data kota
print 'Kota : '+@kota;

--## ADA cursor cMhs, sehingga terdapat cursor di dalam cursor ##
--deklarasi cursor cKota (jangan lupa deallocatenya juga)
declare cMhs cursor for
select nim, nama from dbo.fMhs (@kota);

--deklarasi variabel kota untuk menampung data kota
declare @nim as char(11),
@nama as varchar(100);

--open cursor cMhs
open cMhs;

--transfer data nim, nama ke dalam variabel nim, nama
fetch next from cMhs into @nim, @nama;

--looping data nim dan nama
while @@fetch_status = 0
begin
--cetak data nim dan nama
print dbo.fCetak(@nim,@nama);

--transfer data nim dan nama selanjutnya ke dalam variabel nim, nama
fetch next from cMhs into @nim, @nama;
end;

--deklarasi variabel untuk jumlah mahasiswa berdsarkan kota
declare @jum_mhs as numeric;

--set nilai @jumlah
set @jum_mhs = dbo.fHitungMhs(@kota);

print ' >> jumlah MHS : '+ convert(char,@jum_mhs) + 'orang';

--close cursor cMhs
close cMhs

--buat deallocate untuk menghapus cursor cKota
deallocate cMhs;

--###############################################################

--transfer data kota selanjutnya ke dalam variabel kota
fetch next from cKota into @kota;

end;

--close cursor cKota
close cKota;

--buat deallocate untuk menghapus cursor cKota
deallocate cKota;


Antonius Jefry

Author & Editor

Has laoreet percipitur ad. Vide interesset in mei, no his legimus verterem. Et nostrum imperdiet appellantur usu, mnesarchum referrentur id vim.

0 komentar:

Posting Komentar

 

We are featured contributor on entrepreneurship for many trusted business sites:

  • Copyright © JSC BOJONEGORO™ is a registered trademark.
    Designed by Templateism. Hosted on Blogger Platform.