Selasa, 27 September 2011

Contoh Stored Procedure, Function, dan Trigger



Nim / Nama : 10.41010.0219 / Gerry Rinovel Harimu
Dosen : Tan Amelia
  • Stored Procedure

CREATE PROCEDURE SuppliersCity
@SuppliersName varchar (10)
AS SELECT CompanyName, ContactName, Country
FROM Suppliers
WHERE Country like @SuppliersName


EXEC SuppliersCity 'UK'



ALTER PROCEDURE Liat_Stock
@CountryName VARCHAR(25), @SumOfStock INT OUTPUT
AS
SELECT Suppliers.SupplierID, Suppliers.Country, Products.UnitsInStock,
SUM (ProductID) AS SumOfProducts
FROM Suppliers, Products
WHERE Country like @CountryName and UnitsInStock like @SumOfStock
GROUP BY Suppliers.SupplierID, Country, UnitsInStock


EXEC Liat_Stock 'USA', '0'




  • Function
CREATE FUNCTION lincrement (@G integer)
RETURNS integer
BEGIN
while @G > 100
begin
       set @G=@G + 5
end
return @G
END
      

CREATE FUNCTION Harga (@quantity int , @Nilai varchar (20))

returns char
begin
if @quantity > 20
begin
            set @Nilai = 'Dapat Bonus'
end
            else
            set @Nilai = 'Perlu Di Tingkatkan'
return @Nilai
end

SELECT OrderID, COUNT (Quantity)as quantity
FROM Orders_Details

  • Trigger
Insert

CREATE TRIGGER For_insert ON dbo.[Categories]
FOR INSERT
AS
INSERT INTO [Categories] (CategoryID, CategoryName, Description)
values ('1', 'Healt', 'Milk, Rice, Fish, Soup')

Delete
ALTER TRIGGER For_Delete ON dbo.Categories
FOR DELETE
AS
DECLARE
@ID int
set @ID = (select CategoryID FROM Categories)
BEGIN
   DELETE FROM Categories where CategoryID = @ID
END

Selasa, 20 September 2011

Stored Procedure, Function, dan Trigger pada SQL

Nama / Nim : Gerry Rinovel Harimu / 10410100219
Dosen          : Tan Amelia
Tugas           : Stored Procedure, Function, dan Trigger pada SQL

Stored Procedure
Stored Procedure adalah sekelompok Transact-SQL dikompilasi ke dalam rencana eksekusi tunggal.




Microsoft ® SQL Server ™ 2000 prosedur yang tersimpan kembali data dalam empat cara:
·         Output parameter, yang dapat kembali baik data (seperti integer atau nilai karakter) atau variabel kursor (kursor adalah hasil set yang dapat diambil satu baris pada satu waktu). 
·         Kembali kode, yang selalu nilai integer. 
·         Hasil A ditetapkan untuk setiap pernyataan SELECT yang terkandung dalam prosedur yang tersimpan atau prosedur tersimpan lain yang disebut dengan prosedur yang tersimpan. 
·         Sebuah kursor global yang dapat direferensikan di luar prosedur yang tersimpan.

Prosedur yang tersimpan membantu dalam mencapai implementasi yang konsisten di seluruh logika aplikasi. Pernyataan SQL dan logika yang dibutuhkan untuk melakukan tugas yang biasa dilakukan dapat dirancang, kode, dan diuji sekali dalam prosedur yang tersimpan. Setiap aplikasi perlu melakukan tugas yang kemudian dapat hanya menjalankan prosedur yang tersimpan. Coding logika bisnis ke dalam prosedur yang tersimpan tunggal juga menawarkan satu titik kontrol untuk memastikan bahwa aturan bisnis dengan benar ditegakkan.
Prosedur yang tersimpan juga dapat meningkatkan kinerja. Banyak tugas diimplementasikan sebagai serangkaian pernyataan SQL. Logika kondisional diterapkan pada hasil dari pernyataan SQL pertama menentukan yang berikutnya pernyataan SQL dijalankan. Jika pernyataan-pernyataan SQL dan logika kondisional yang ditulis ke dalam prosedur yang tersimpan, mereka menjadi bagian dari rencana eksekusi tunggal pada server. Hasil tidak harus dikembalikan kepada klien untuk memiliki logika kondisional diterapkan; semua pekerjaan dilakukan di server. Pernyataan JIKA dalam contoh ini menunjukkan menanamkan logika kondisional dalam prosedur untuk menjaga dari mengirimkan hasil set untuk aplikasi:

IF (@QuantityOrdered < (SELECT QuantityOnHand FROM Inventory WHERE PartID = @PartOrdered) ) BEGIN -- SQL statements to update tables and process order. END ELSE BEGIN -- SELECT statement to retrieve the IDs of alternate items -- to suggest as replacements to the customer. END

Aplikasi tidak perlu untuk mengirimkan semua pernyataan SQL dalam prosedur: mereka harus mengirimkan hanya Execute atau HUBUNGI pernyataan berisi nama prosedur dan nilai-nilai parameter.
Prosedur yang tersimpan juga dapat melindungi pengguna dari perlu tahu rincian tabel dalam database. Jika satu set prosedur yang tersimpan mendukung semua fungsi bisnis pengguna perlu melakukan, pengguna tidak perlu mengakses tabel secara langsung, mereka hanya dapat menjalankan prosedur yang tersimpan bahwa model proses bisnis dengan yang mereka kenal.

Sebuah ilustrasi dari penggunaan prosedur yang tersimpan adalah prosedur sistem SQL Server disimpan digunakan untuk melindungi pengguna dari tabel sistem. SQL Server termasuk satu set prosedur sistem disimpan yang namanya biasanya mulai dengan sp_. Prosedur sistem ini disimpan mendukung semua tugas-tugas administratif yang dibutuhkan untuk menjalankan sistem SQL Server. Anda dapat mengelola sistem SQL Server menggunakan Transact-SQL administrasi terkait pernyataan (seperti CREATE TABLE) atau sistem prosedur yang tersimpan, dan tidak perlu untuk langsung memperbarui tabel sistem.


Functions
Functions
Fungsi memungkinkan Anda mengganti dan akses string dan tanggal di SQL Server. Anda dapat memanggil mereka melewati kali, tabel, tanggal, dan variabel lainnya, dan mendapatkan hasil kembali.

 

Fungsi umum SQL Server

Fungsi-fungsi ini adalah roti dan mentega dari prosedur Anda disimpan dan dilihat:
·         SQL Server Fungsi Agregat – seperti COUNT, MIN, MAX
·         SQL Server Fungsi Tanggal – seperti DATEPART, DATEADD dan DATEDIFF
·         Fungsi SQL Server kursor - seperti @ @ FETCH, @ @ CURSOR_ROWS

Membuat fungsi user-defined di SQL Server 2008 R2. Sebuah fungsi user-defined adalah runtime bahasa Transact-SQL atau umum (CLR) rutin yang menerima parameter, melakukan tindakan, seperti perhitungan yang kompleks, dan mengembalikan hasil dari tindakan itu sebagai suatu nilai. Nilai kembali baik dapat menjadi skalar (tunggal) nilai atau meja. Menggunakan pernyataan ini untuk membuat sebuah rutin reusable yang dapat digunakan dalam cara ini:
·         Dalam pernyataan Transact-SQL seperti SELECT
·         Dalam aplikasi memanggil fungsi
·         Dalam definisi fungsi lain yang ditetapkan pengguna
·         Untuk parameterisasi melihat atau meningkatkan fungsionalitas dari sebuah indexed view
·         Untuk menentukan kolom dalam tabel
·         Untuk menentukan kendala PERIKSA pada kolom
·         Untuk mengganti prosedur yang tersimpan

Transact-SQL Sintaks Fungsi Skalar
 MENCIPTAKAN FUNGSI [schema_name.  ] Function_name 
 ([{@ Parameter_name [AS] [type_schema_name.] Parameter_data_type 
 [= Default] [ReadOnly]} 
 [, ... N]
 ]
 )
 PENGEMBALIAN return_data_type
 [DENGAN  [, ... n]]
 [AS]
 BEGIN 
 function_body 
 RETURN scalar_expression
 AKHIR
 [;]

Stored Procedure vs Functions
Dalam banyak kasus Anda dapat menyelesaikan tugas yang sama baik menggunakan prosedur tersimpan atau fungsi. Kedua fungsi dan prosedur yang tersimpan dapat kustom didefinisikan dan bagian dari aplikasi apapun.Fungsi, di sisi lain, dirancang untuk mengirim output mereka ke pernyataan query atau T-SQL. Sebagai contoh, Ditetapkan Pengguna Fungsi (UDFS) dapat menjalankan file eksekusi dari SQL SELECT atau sebuah query tindakan, sementara Stored Procedures (sproc) menggunakan Jalankan atau EXEC untuk menjalankan.Keduanya instantiated menggunakan FUNGSI CREATE.
Trigger
Trigger database adalah kode procedural yang secara otomatis dieksekusi dalam menanggapi peristiwa tertentu pada tertentu meja  atau melihat di database yang . trigger banyak digunakan untuk menjaga integritas informasi pada database. Sebagai contoh, ketika sebuah rekor baru (mewakili seorang pekerja baru) ditambahkan ke tabel karyawan, catatan baru harus dibuat juga dalam tabel pajak, liburan, dan gaji.
Trigger biasanya digunakan untuk:
§  Audit perubahan (misalnya menyimpan log dari pengguna dan peran yang terlibat dalam perubahan)
§  meningkatkan perubahan (misalnya memastikan bahwa setiap perubahan untuk merekam waktu-cap oleh server)
§  menegakkan aturan bisnis (misalnya mengharuskan setiap faktur memiliki setidaknya satu item baris)
§  mengeksekusi aturan bisnis (misalnya memberitahu manajer setiap kali perubahan nomor rekening bank yang karyawan)
§  replikasi data (misalnya menyimpan catatan setiap perubahan, untuk dikirim ke database lain kemudian)
§  meningkatkan kinerja (misalnya memperbarui saldo rekening setelah setiap transaksi detail, untuk query lebih cepat)
Contoh diatas disebut data Manipulasi Language(ML) memicu karena memicu didefinisikan sebagai bagian dari Bahasa Manipulasi Data dan dieksekusi pada saat data dimanipulasi. Beberapa sistem juga mendukung non-data yang memicu, yang kebakaran dalam menanggapi Data Defitnition Language (DDL) acara-acara seperti membuat tabel, atau runtime atau dan acara-acara seperti logon, komit, dan rollback. Seperti DDL memicu dapat digunakan untuk tujuan audit.
Berikut ini adalah fitur utama dari trigger database dan efek mereka:
§  Trigger tidak menerima parameter atau argumen (tapi mungkin menyimpan data dalam terpengaruh-tabel sementara)
§  Trigger tidak dapat melakukan operasi melakukan atau rollback karena mereka adalah bagian dari pernyataan SQL memicu (hanya melalui transaksi otonom)
§  Trigger biasanya lambat (perlambatan proses)


contoh syntax trigger :
SELECT * FROM MY_TABLE;
 UPDATE MY_TABLE SET A = 5;
 INSERT INTO MY_TABLE VALUES (3, 'aaa');




Rabu, 14 September 2011

Materi Pemrograman Berbasis Object Pertemuan-2


Countstructor

Ketika Anda membuat sebuah instance baru (objek baru) dari sebuah kelasmenggunakan kata kunci baru, sebuah konstruktor untuk kelas yang disebut. Konstruktordigunakan untuk menginisialisasi variabel contoh (field) dari suatu objek. Konstruktormirip dengan metode, tetapi dengan beberapa perbedaan penting.

-       Nama Class Countstructor
o   Sebuah konstruktor harus memiliki nama yang sama dengan kelas yang masuk
-       Default Counstructor
o   Jika Anda tidak menentukan sebuah konstruktor untuk kelas,konstruktor default secara otomatis parameterless diciptakan oleh compiler. Default constructor memanggil default constructor induk (super ()) dan menginisialisasi semua variabel misalnya untuk nilai default (nol untuk tipe numerik, null untuk referensi objek, danfalse untuk boolean).
-       Default constructor is created only if there are no constructors
o   Jika anda mendefinisikan konstruktor untuk kelas apapun Anda, tidak ada konstruktor default secara otomatis dibuat.
-       Differences between methods and constructors
o   Tidak ada jenis kembali diberikan dalam tanda tangan konstruktor (header). Nilai iniobyek itu sendiri sehingga tidak perlu untuk menunjukkan nilai kembali
o   Tidak ada pernyataan kembali dalam tubuh konstruktor.
o   Baris pertama dari konstruktor baik harus memanggil konstruktor lain di kelas yang sama (menggunakan ini), atau panggilan pada constructor superclass (menggunakan super). Jika baris pertama bukan ini, compiler secara otomatis memasukkan panggilan ke parameterless konstruktor kelas super.
Perbedaan-perbedaan dalam sintaks antara konstruktor dan metode kadang-kadangsulit untuk melihat ketika melihat sumbernya. Ini akan lebih baik untuk memiliki kata kuncidengan jelas menandai konstruktor karena beberapa bahasa lakukan.
-       Calls another constructor in same class
o   Seringkali konstruktor dengan beberapa parameter akan memanggil konstruktor dengan parameter yang lebih, memberikan nilai default untuk parameter yang hilang. Gunakan ini untuk memanggil konstruktor lain di kelas yang sama.
-       Use super to call a constructor in a parent class
o   Memanggil konstruktor untuk superclass harus menjadi pernyataan pertama dalamkonstruktor tubuh. Jika Anda puas dengan constructor default di superclass, tidak perluuntuk membuat panggilan untuk itu karena akan diberikan secara otomatis.
Contoh dalam pemanggilan countsrutor









Superclass (induk) konstruktor
Sebuah objek memiliki bidang kelasnya sendiri ditambah semua bidang dari kelasinduknya, kelas kakek, sepanjang jalan sampai ke akar kelas Obyek. Ini diperlukan untuk menginisialisasi semua bidang, karena itu semua konstruktor harus dipanggil! CompilerJava secara otomatis memasukkan konstruktor yang diperlukan panggilan dalam proseschaining konstruktor, atau Anda dapat melakukannya secara eksplisit.
Menyisipkan kompiler Java panggilan ke constructor induk (super) jika Anda tidakmemiliki panggilan konstruktor sebagai pernyataan pertama Anda konstruktor. Berikut ini adalah setara constuctor di atas.



Creating Class

Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instant
dari object. class juga merupakan grup suatu object dengan kemiripan
attributes/properties, behaviour dan relasi ke object lain.
Contoh : Class Person, Vehicle, Tree, Fruit dan lain-lain.

Class diumpamakan seperti cetakan yang berguna untuk mencetak suatu object. Contoh dari sebuah cetakan/class tersebut misalnya cetakan dari sebuah mobil sedan. Mobil sedan tentunya mempunyai konsep. Konsep inilah yang akan dipakai untuk membentuk/mencetak hingga menjadi mobil sedan. Oleh karena itu konsep bisa berarti class atau cetakan.

Contoh cetakan/class/konsep dari mobil sedan adalah sebagai berikut :
Mempunyai mesin
Mempunyai roda sebanyak 4 yaitu 2 didepan dan 2 dibelakang
Mempunyai setir
Mempunyai body atau kerangka dengan panjang, lebar dan tinggi
Mempunyai warna
Mempunyai perseneling
Mempunyai knalpot
Sampai akhirnya didalam pabrik, cetakan/class/konsep tersebut dapat digunakan untuk membuat banyak object baru tentunya dengan berbeda nama/merk.
Class juga bisa diilustrasikan atau diumpamakan dengan makhluk hidup. Contohnya adalah hewan mamalia yaitu kucing. Didalam ilmu biologi, kucing tergolong dalam class hewan pemakan daging atau karnivora dan tentunya mempunyai bentuk atau konsep. Tuhan Yang Maha Kuasa sudah sudah menentukan bentuk daripada class kucing tersebut.
Class kucing mempunyai konsep sebagai berikut :
Mempunyai kaki sebanyak 4 yaitu 2 didepan dan 2 dibelakang
Mempunyai suara yaitu “meong” atau “miaw”
Mempunyai golongan/family yaitu hewan bertulang belakang atau vertebrata dan termasuk golongan mamalia pemakan daging atau karnivora
Nah didalam Java, class mempunyai makna yang sama dengan ilustrasi diatas. Didalam Java kita tidak bisa sembarangan membuat, menciptakan atau mewujudkan suatu object tanpa  didasarkan pada konsep/cetakan/class. Oleh karena itu Java adalah bahasa pemrograman yang murni berorientasi object atau dengan kata lain semua pekerjaan yang dikerjakan menggunakan bahasa Java harus dilakukan didalam class.

Cara membuat class pada java, dengan cara :

Mengatur ruang kerja dengan sebuah proyek di dalamnya, seperti dijelaskan di atas.Jika ruang kerja memiliki beberapa proyek, klik kanan pada proyek Anda ingin bekerja dan pilih Set sebagai Project Aktif. 
Anda dapat menambahkan file Java sumber untuk proyek Anda atau membuat kelas Java yang baru (file sumber) dari awal. Untuk menambahkan file yang ada, pergi ke Proyek / Tambahkan file ..., arahkan ke folder yang menyimpan file tersebut, klik ganda pada file (atau klik tunggal dan klik Open), kemudian klik pada tombol Add. File akan disalin ke folder proyek Anda dan ditambahkan ke deskripsi proyek. 
Anda dapat menambahkan beberapa file sekaligus dari folder yang sama dengan mengklik pada mereka sambil menahan tombol Ctrl bawah. Jika Anda perlu menambahkan. Html atau file data, pilih All Files dalam daftar pulldown File Type. 
Menambahkan file adalah operasi umum, sehingga Anda mungkin ingin menempatkan tombol Tambahkan file ke toolbar (Konfigurasi / Customize ...). 
Untuk membuat file Java baru, pergi ke Proyek / kelas Baru ... 
atau klik pada tombol kelas Baru pada toolbar. Pada kotak dialog yang muncul, masukkan nama kelas dan memeriksa opsi yang diinginkan (seperti "publik," "Hasilkan utama," dll) dan klik Finish.Sebagai contoh:




Edit teks kelas Anda. Sebagai contoh:



Relasi antar class

Baris pertama dari simbol diagram kelas menandakan nama dari kelas yang bersangkutan. Baris di bawahnya menyatakan atribut-atribut dari kelas tersebut apa saja, dan baris setelahnya menyatakan method-method yang terdapat pada kelas tersebut.

Adapun simbol untuk access modifer adalah sebagai berikut :
- Untuk public diberi simbol + sebelum nama atribut/method
- Untuk private diberi simbol - sebelum nama atribut/method
- Untuk proteceted diberi simbol # sebelum nama atribut/method

Contoh cording :
//mahasiswa.java
public class mahasiswa {
  private String nim;
  private String nama;
  public void setnama (String nama) {
  this.nama = nama;
  }
  public void setnim (String nim) {
  this.nim = nim;
  }
  public String getnim () {
  return this.nim;
  }
  public String getnama () {
  return this.nama;
  }
}



//dosen.java
public class dosen {
  private String Kddosen;
  private String[] nimMHS;
  private int JmlMahasiswa = 0;
  public void setKddosen (String Kddosen) {
  this.Kddosen = Kddosen;
  }
  public void setNimMahasiswa (String nimMhs) {
  if (JmlMahasiswa<5) {
  nimMHS[JmlMahasiswa] = nimMhs;
  JmlMahasiswa++;
  }
  }
  public int getJmlMahasiswa () {
  return this.JmlMahasiswa;
  }


public String getKddosen () {
  return this.Kddosen;
  }
  public String getmahasiswa (int i) {
  return (nimMHS[i]);
  }
}