MODUL V
“TYPE DATA/ STORED PROCEDURE”
SISTEM MANAJEMEN BASIS DATA
1.2 Tujuan
- Memahami dan membuat Stored Procedure pada basisdata
- Mampu Menggunakan type data sesuai kebutuhan pada Stored Procedure
BAB II
DASAR TEORI
2
2.1 Tipe Data
Tipe data merupakan bagian dari variabel yang mempengaruhi perilaku
variabel. Dengan tipe data ini, bisa ditentukan nilai apa yang bisa disimpan
didalam variabel tersebut. Dan satu variabel hanya bisa diberi satu tipe data. Ada
lima jenis tipe data sesuai dengan SQL - ANSI 1993 yaitu character string,
numeric, temporal, binary, dan boolean.
a) Character String
Atribut seperti nama dan alamat direpresentasikan oleh character
string. Ada 2 macam tipe data untuk merepresentasikan character string,
yaitu:
CHARACTER(<panjang>)
CHAR(<panjang>) menspesifikasikan karakter dengan panjang yang
tetap. Sisa karakter yang tidak terpakai umumnya digantikan oleh
padding characters (spasi).
CHARACTER VARYING(<panjang>)
Atau VARCHAR(<panjang>) menspesifikasikan karakter dengan
panjang yang fleksibel dan maksimum sesuai dengan <panjang>.
Sintak :
Type Data [(M)]
Misal :
CHAR [(M)]
VARCHAR [(M)]
Sintak :
Type Data [(M[,D])] [UNSIGNED] [ZEROFILL]
Misal :
INT/DECIMAL/FLOAT/DOUBLE[(M)] [UNSIGNED] [ZEROFILL]
Keterangan :
• M : menunjukkan lebar karakter maksimum, jumlah digit
keseluruhan
• D : Jumlah digit dibelakang koma
• tanda [ dan ] berarti pemakaiannya adalah optional Contoh :
ZEROFILL);
c) Temporal
Temporal merupakan tipe data yang menyimpan tanggal dan
waktu yang disesuikan dengan system-timezone (komputer). Sebagai
contoh data temporal adalah data tentang tanggal lahir. Ada dua macam
tipe data temporal, yaitu:
• DATETIME. Tipe data ini menyimpan informasi tanggal, waktu
atau bahkan keduanya. Dalam SQL Server, tipe data ini
menyimpan dengan tingkat akurasi sampai 3,33 milidetik.
Sedangkan untuk SMALLDATETIME hanya sampai 1 menit.
Dalam tipe data ini, juga terdapat tipe data TIMESTAMP dengan
tingkat akurasi sampai dengan 9 digit.
• INTERVAL. Umumnya digunakan untuk menyimpan periode seperti
garansi. Ada 2 macam yaitu (1) YEAR-MONTH dan (2) DAY-
TIME. SQL Server tidak mempunyai tipe data ini.
Sintak : type data;
Contohnya :
Atau
3
4
4.1 Soal
1. Buatkanlah procedure untuk menghitung sudah berapa lama atau hari
salah satu konsumen tersebut melakukan transaksi terakhir jika
diambilkan dari tanggal terakhir konsumen melakukan transaksi.
2. Buatkanlah procedure untuk membuat perubahan data pada data tabel
master.
3. Buatkanlah procedure untuk mengetahui berapa jumlah barang/jasa yang
dibeli oleh pelanggan/konsumen tertentu.
4. Buatkanlah procedure dengan menambahkan data tanggal saat ini pada
salah satu table dengan menggunakan fungsi bawaan MySQL yang dapat
mengambil tanggal saat ini.
5. Buatkanlah procedure untuk menampilkan data berdasarkan tanggal 1-5
4.2 Jawaban
1.
o Query
DELIMITER //
CREATE PROCEDURE hitung_hari(
IN nim VARCHAR(255),
IN kode_kelas VARCHAR(4),
OUT total_hari INT
)
BEGIN
SELECT DATEDIFF(CURRENT_DATE(), MAX(tanggal_diambil))
INTO total_hari
FROM krs
WHERE nim = nim && kode_kelas = kode_kelas;
END //
DELIMITER ;
CALL hitung_hari ("1234567890", "C02", @total_hari);
SELECT @total_hari AS Total_Hari;
o Hasil
o Penjelasan
Query diatas adalah procedure yang digunakan untuk mengetahui
selisih hari antara tanggal mahasiswa mengambil kelas dan tanggal saat
ini. Procedure menggunakan 2 parameter IN yaitu nim dan kode_kelas,
dan 1 parameter OUT yaitu total_hari, kemudian didalam isi procedure
tersebut melakukan eksekusi Query SELECT
DATEDIFF(CURRENT_DATE(), MAX(tanggal_diambil)) INTO
total_hari, ini berfungsi untuk menampilkan selisih hari dari tanggal
sekarang dan kolom tanggal_diambil, dan hasilnya akan dimasukan ke
dalam total_hari. Kemudian klausa where disini digunakan untuk
memfilter data berdasarkan nim dan juga kode_kelas. Selanjutnya
procedure yang sudah dibuat, akan dipanggil munggunakan call, dan untuk
menampilkan hasil total_hari menggunakan perintah SELECT @total_hari
AS Total_hari.
2.
o Query
DELIMITER //
CREATE PROCEDURE updateAlamatMhs(
IN nim VARCHAR(25),
IN alamat VARCHAR(100)
)
BEGIN
UPDATE mahasiswa m SET m.alamat = alamat WHERE m.nim =
nim;
END //
DELIMITER ;
o Hasil
o Penjelasan
Query diatas adalah procedure yang digunakan untuk mengupdate
alamat mahasiswa. Di procedure tersebut terdapat 2 parameter IN yaitu
nim dan alamat. Procedure yang sudah dibuat akan dipanggil
menggunakan call dengan memasukan 2 argumen yakni nim dan alamat.
Contohnya disini nim yang dimasukan 1234567890, dan perubahan
alamatnya adalah Sampang.
3.
o Query
DELIMITER //
CREATE PROCEDURE getMhsKrs()
BEGIN
SELECT m.nim, m.nama_mahasiswa, COUNT(*) AS Jumlah_Kelas
FROM
krs k INNER JOIN mahasiswa m ON k.nim = m.nim
GROUP BY nama_mahasiswa
ORDER BY m.nim;
END //
DELIMITER ;
CALL getMhsKrs();
o Hasil
4.
o Query
DELIMITER //
CREATE PROCEDURE tambah_krs(
IN nim VARCHAR(16),
IN kode_kelas VARCHAR(4),
IN tahun_ajaran YEAR(4)
)
BEGIN
DECLARE tanggal_sekarang DATE;
SET tanggal_sekarang = CURDATE();
o Hasil
5.
o Query
DELIMITER //
CREATE PROCEDURE getMhsByTgl()
BEGIN
SELECT * FROM mahasiswa WHERE tanggal_lahir BETWEEN
'2000-01-01' AND '2000-01-05';
END //
DELIMITER ;
CALL getMhsByTgl();
o Hasil
BAB V
PENUTUP
5
5.1 Analisa
Pada praktikum kali ini, praktikan dapat mengalisa bahwa dengan
mengetahui penggunaan Type Data dan Stored Procedure memungkinkan
pengguna bisa untuk menulis kode program yang lebih terstruktur dan
terorganisir. Dengan adayanya tipe data, kita bisa menentukan nilai apa yang
bisa disimpan didalam variabel tersebut. Ada lima jenis tipe data yaitu
character string, numeric, temporal, binary, dan boolean. Query Stored
Procedure dapat disimpan ke dalam database dan dapat dipanggil berulang kali,
sehingga pengguna dapat menghindari menulis Query yang sama berulang kali.
Untuk membuat prosedur kita perlu menuliskan Create Procedure kemudian
diikuti nama prosedur yang ingin kita buat Penggunaan Stored Procedure pada
database memiliki manfaat yang signifikan, antara lain meningkatkan efisiensi
dan kecepatan operasi, meminimalkan jumlah data yang ditransfer antara
database dan aplikasi, keterstrukturan kode, keamanan data, kemudahan
pemeliharaan, dan portabilitas kode program.
5.2 Kesimpulan
1. Tipe data merupakan bagian dari variabel yang mempengaruhi perilaku
variabel
2. Dalam Type Data Atribut seperti nama dan alamat direpresentasikan
oleh character string
3. Type Data Temporal merupakan tipe data yang menyimpan tanggal dan
waktu yang disesuikan dengan system-timezone (komputer)
4. Stored Procedure adalah sekumpulan Kode yang tersimpan di dalam
database dan dapat dieksekusi berulang-ulang tanpa perlu menulis ulang
kode program.
5. Stored Procedure memungkinkan pengguna untuk mengakses data dalam
database dan menjalankan operasi tertentu dengan lebih efisien dan
terstruktur.