tanmyid

Tugas SMBD 7 & 8

Apr 12th, 2022 (edited)
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.75 KB | None | 0 0
  1. -- tips
  2.     -- melihat list stored procedure yang di buat // jangan lupa ganti nama database
  3.     SELECT routine_name, routine_type, routine_schema
  4.     FROM db_202053010.INFORMATION_SCHEMA.ROUTINES
  5.     WHERE routine_type = 'PROCEDURE'
  6.  
  7.     -- menghapus stored procedure yang di buat // jangan lupa ganti nama stored procedure KES
  8.     DROP PROCEDURE KES
  9.     GO
  10.  
  11. -- praktikum stored procedure
  12. -- 1. Stored Procedure tanpa parameter
  13. CREATE PROCEDURE TampilPresensi
  14. AS
  15. SELECT * FROM Presensi
  16. GO
  17. EXEC TampilPresensi
  18.  
  19. -- 2. Stored Procedure dengan parameter sederhana
  20. CREATE PROCEDURE TampilNama @MasukkanNama CHAR(9)
  21. AS
  22. SELECT * FROM Presensi WHERE Nama = @MasukkanNama
  23. GO
  24. EXEC TampilNama 'Semar'
  25.  
  26. -- 3. Stored Procedure dengan parameter sederhana (2)
  27. CREATE PROCEDURE TampilkanNotaJual @MasukkanNoNota VARCHAR(9)
  28. AS
  29. SELECT
  30.     NoNota,
  31.     Transaksi.Seri,
  32.     Jumlah, Harga * Jumlah AS JumlahHrg
  33. FROM Barang, Transaksi
  34. WHERE Barang.Seri = Transaksi.Seri
  35. AND NoNota = @MasukkanNoNota
  36. GO
  37. EXEC TampilkanNotaJual '03.0407-1'
  38.  
  39. -- praktikum trigger
  40. -- 1. Membuat Contoh Program Tigger, InPelanggan
  41. CREATE TRIGGER InPelanggan
  42. ON Pelanggan
  43. FOR INSERT
  44. AS
  45. BEGIN
  46.     PRINT 'Data telah berhasil disimpan'
  47. END
  48.  
  49. INSERT INTO Pelanggan VALUES
  50. ('Petruk', 'Gg Merah Putih, Sengon', 'Jepara', '4214346')
  51.  
  52. -- 2. Implementasi Trigger dengan keterangan pada CRUD tabel pada database
  53. CREATE TABLE Kejadian
  54. (Keterangan CHAR(100), Waktu datetime)
  55.  
  56. INSERT INTO Kejadian VALUES
  57. ('Coba', GETDATE())
  58.  
  59. SELECT * FROM Kejadian
  60.  
  61. CREATE TRIGGER SimpanKejadian
  62. ON Pelanggan
  63. FOR INSERT, UPDATE, DELETE
  64. AS
  65. BEGIN
  66.     INSERT INTO Kejadian VALUES
  67.     ('Telah di masukkan data di tabel pelanggan pada', GETDATE())
  68. END
  69.  
  70. INSERT INTO Pelanggan VALUES
  71. ('Gareng', 'Gg Merah Muda, Sengon', 'Kudus', '4214322')
  72.  
  73. SELECT * FROM Kejadian
  74.  
  75. UPDATE Pelanggan SET Kota = 'Surakarta' WHERE Nama = 'Bagong'
  76.  
  77. SELECT * FROM Kejadian
  78.  
  79. DELETE FROM Pelanggan WHERE Nama = 'Petruk'
  80.  
  81. SELECT * FROM Kejadian
  82.  
  83. -- soal latihan
  84. -- 1.Buat STORED PROCEDURE berparameter, dengan parameter kode Guru yang mewakili jurusannya, dengan menampilkan nama guru dan nama jurusannya, jika kode gurunya diawali dengan KES maka jurusannya adalah Kesehatan,  Jika diawali dengan INF maka Teknik Komputer dan Jaringan, Jika diawali dengan ELK maka Elektronika  dan jika EKN maka Jurusannya adalah Manajemen Bisnis.
  85. CREATE PROCEDURE [Kode Guru] @KodeJurusan CHAR(3) AS
  86. SELECT Nama,
  87. CASE LEFT (NIG,3)
  88.     WHEN 'EKN' THEN 'Manajemen Bisnis'
  89.     WHEN 'KES' THEN 'Kesehatan'
  90.     WHEN 'INF' THEN 'Teknik Komputer dan Jaringan'
  91.     WHEN 'ELK' THEN 'Elektronika'
  92. END
  93. AS [Nama Jurusan]
  94. FROM Guru WHERE  LEFT (NIG,3)=@KodeJurusan
  95. GO
  96.     -- EKN
  97.     EXEC [Kode Guru] @KodeJurusan = 'EKN'
  98.     -- KES
  99.     EXEC [Kode Guru] @KodeJurusan = 'KES'
  100.     -- INF
  101.     EXEC [Kode Guru] @KodeJurusan = 'INF'
  102.     -- ELK
  103.     EXEC [Kode Guru] @KodeJurusan = 'ELK'
  104.  
  105. -- 2.Buat STORED PROCEDURE berparameter, dengan parameter NAMA HARI, dengan menampilkan Nama Guru, Nama Bulan, Nama Hari dan JamKerjanya, jika Hari Minggu JamKerjanya 0, jika Hari Jumat JamKerjanya adalah 240 menit, selain hari Minggu dan Jumat Jamkerjanya adalah 480 menit.
  106. CREATE PROCEDURE Hari @NamaHari CHAR(8) AS
  107. SELECT Nama AS [Nama Guru],
  108. DATENAME(MONTH, Tanggal) AS [Bulan Mengajar],
  109. DATENAME(dw, Tanggal) AS [Hari Mengajar],
  110. CASE DATENAME(dw, Tanggal)
  111.     WHEN 'Sunday' THEN '0 Menit'
  112.     WHEN 'Friday' THEN '240 Menit'
  113.     ELSE '480 menit'
  114. END AS [Jam Kerja]
  115. FROM Guru JOIN [Presensi Guru] ON Guru.NIG = [Presensi Guru].NIG
  116. WHERE DATENAME(dw, Tanggal) = @NamaHari
  117. GO
  118.     -- Sunday
  119.     EXEC Hari @NamaHari = 'Sunday'
  120.     -- Friday
  121.     EXEC Hari @NamaHari = 'Friday'
  122.     -- Monday
  123.     EXEC Hari @NamaHari = 'Monday'
  124.     -- Saturday
  125.     EXEC Hari @NamaHari = 'Saturday'
Add Comment
Please, Sign In to add comment