Download - Laporan Pemrogaman Chapter 11

Transcript
  • LAPORAN PEMROGAMAN

    BASIS DATA JARINGAN

    Execute Commands

    Disusun oleh:

    Ajeng Yona Falah

    Informatika 3A

    3.34.12.0.01

    PROGAM STUDI TEKNIK INFORMATIKA

    JURUSAN TEKNIK ELEKTRO

    POLITEKNIK NEGERI SEMARANG

    2014/2015

  • I. Tujuan Instruksional Khusus

    Setelah menyelesaikan praktikum ini, mahasiswa diharapkan mampu:

    1. Menambah, memperbarui, atau menghapus data menggunakan Command.

    2. Memodifikasi database dengan beberapa Command

    3. Membuat metode untuk dikirimkan kedatabase menggunakan Command.

    II. Dasar Teori

    A. Membuat Command

    Kita dapat membuat sebuah perintah (command) menggunakan konstruktor

    SqlCommand ataupun menggunakan metode yang menciptakan objek untuk

    Kita gunakan.

    B. Menghubungkan Command dengan Connection

    Agar perintah yang kita buat dapat dieksekusi ke sebuah database, setiap

    perintah tersebut harus dikoneksikan ke database. Kita dapat melakukan ini

    dengan membuat properti Connection, dan untuk menghemat sumber daya,

    beberapa perintah dapat menggunakan koneksi yang sama. Kita memiliki

    beberapa cara untuk mengatur koneksi antara command ke database.

    C. Menetapkan Teks ke Sebuah Command

    Setiap perintah memiliki properti, CommandText, yang berisi SQL untuk

    kemudian dieksekusi. Anda dapat membuat properti ini secara langsung atau

    menentukannya ketika membangun perintah.

    D. Eksekusi Command

    Perintah tidak akan bias digunakan kecuali jika Kita dapat mengeksekusi

    mereka, jadi mari kita lihat sekarang. Perintah memiliki beberapa metode yang

    berbeda untuk melaksanakan SQL. Perbedaan antara metode tergantung pada

    hasil yang Kitaa harapkan dari SQL. Query mengembalikan sekumpulan nilai

    (result sets), tetapi INSERT, UPDATE, dan DELETE tidak. Kita menentukan

    metode yang akan digunakan dengan mempertimbangkan hasil apa yang Kita

    harapkan (lihat Tabel 11-1).

  • SQL yang Kita gunakan dalam contoh tersebut, mengembalikan satu nilai, dari

    jumlah karyawan. Dilihat dari Tabel 11-1, Kita dapat melihat bahwa Kita harus

    menggunakan metode ExecuteScalar dari SqlCommand untuk dapat

    mengembalikan suatu hasil.

    E. Eksekusi Command dengan Beberapa Hasil

    Untuk queries di mana Anda mengharapkan dapat menghasilkan beberapa baris

    dan kolom, gunakan metode ExecuteReader ().

    ExecuteReader () mengembalikan sebuah data reader, sebuah instance dari

    kelas SqlDataReader. Data Reader memiliki metode yang memungkinkan Anda

    untuk membaca baris berturut-turut dalam hasil set dan mengambil nilai kolom

    secara individu.

    F. Eksekusi Statements

    Metode ExecuteNonQuery, bertugas mengeksekusi pernyataan SQL bukan

    pertanyaan.

    G. Parameter Command

    Bila Anda memasukkan baris baru ke Tabel Employees, Anda harus membuat

    kode dari nilai tersebut. Meskipun SQL berlaku secara sempurna, itu adalah

    sesuatu yang tidak pernah anda inginkan (atau tidak diperlukan) untuk

    dilakukan. Anda harus dapat menyimpan nilai-nilai apa saja yang sesuai pada

    waktu tertentu. Ada dua pendekatan untuk melakukan ini. Keduanya masuk

    akal, tapi jauh lebih efisien daripada yang lain.

    Alternatif yang kurang efisien adalah untuk secara dinamis membangun sebuah

    pernyataan SQL, menghasilkan string yang berisi semua informasi yang

    diperlukan dalam properti CommandText. Misalnya, Anda bisa melakukan

    sesuatu seperti ini:

    Dim fname As String = "Zachariah"

    Dim lname As String = "Zinn"

    Dim vals As String = "('" & fname & "'," & "'" & lname & "')"

    Dim sqlins As String = "insert into employees" & _

  • "(firstname,lastname)values" & vals

    dan kemudian menetapkan sql dalam beberapa perintah CommandText sebelum

    mengeksekusi pernyataan tersebut.

    Cara yang lebih baik untuk menangani ini adalah dengan Command parameters.

    Command Parameters adalah sebuah tempat dalam command teks di mana nilai

    akan diganti. Dalam SQL Server, named parameters yang digunakan. Mereka

    mulai dengan @ diikuti dengan nama parameter tanpa campur tangan ruang.

    Jadi, seletah INSERT statement, diikuti dengan parameter @MyName dan

    @MyNumber.

    INSERT INTO MyTable VALUES (@MyName, @MyNumber)

    Command Parameters memiliki beberapa keunggulan:

    Pemetaan antara variabel dan di mana mereka digunakan dalam SQL lebih

    jelas.

    Parameter membiarkan Anda menggunakan definisi tipe yang spesifik

    untuk ADO.NET data provider tertentu untuk memastikan bahwa variabel

    yang dipetakan ke jenis SQL data yang benar.

    Parameter membiarkan Anda menggunakan metode yang dapat membuat

    kode Anda berjalan lebih cepat, karena SQL dalam kondisi "siap" perintah

    yang di parsing oleh SQL Server hanya yang pertama kali ini dijalankan.

    Eksekusi berikutnya menjalankan SQL yang sama, hanya mengubah

    parameter nilainya saja.

    Parameter digunakan secara luas dalam teknik pemrograman lain, seperti

    menggunakannya untuk menyimpan prosedur dan bekerja dengan data yang

    tidak teratur.

    III. Alat dan Bahan

    1. SQL Server 2014

    2. Visual Basic NET

    3. Northwind Sample Database

    IV. Langkah Kerja

    A. Membuat Perintah Menggunakan Constructor

  • 1. Buat project Visual Basic Console Apllication baru dengan nama

    Chapter11.

    2. Ubah nama Project Chapter11 menjadi CommandSql. Ubah nana dari file

    Module1.vb menjadi CommandSql.vb

    3. Ketikkan kode berikut ini pada halaman kode CommandSql.vb

    Imports System Imports System.Data Imports System.Data.SqlClient Module CommandSql Sub Main() 'create connection Dim conn As SqlConnection = New SqlConnection("Data Source=AJENG; Integrated Security=True; database=northwind") 'create command Dim cmd As SqlCommand = New SqlCommand Console.WriteLine("Command created.") Try ' Open connection conn.Open() Catch ex As SqlException Console.WriteLine(ex) Finally ' Close connection conn.Close() Console.WriteLine("Connection closed.") End Try

  • End Sub End Module

    4. Jalankan program dengan menekan tombol Ctrl+F5.

    B. Setting Koneksi Property

    1. Tambahkan kode berikut pada kode program CommandSql.vb yang telah dibuat

    sebelumnya

    ' Open connection conn.Open() 'connect command to connection cmd.Connection = conn Console.WriteLine("Connnected command to this connection.")

    2. Jalankan program dengan menekan tombol Ctrl+F5, amati perubahannya,

    C. Setting CommandText Property

    1. Tambahkan kode berikut pada kode program CommandSql.vb yang telah dibuat

    sebelumnya

    ' Open connection conn.Open() 'connect command to connection cmd.Connection = conn Console.WriteLine("Connnected command to this connection.") ' associate SQL with command cmd.CommandText = "select count(*)from employees" Console.WriteLine("Ready to execute SQL:" & cmd.CommandText)

    2. Jalankan program dengan menekan tombol Ctrl+F5, amati perubahannya,

    D. Menggunakan Metode ExecuteScalar

    1. Buat project Visual Basic Console Application baru pada solution

    Chapter11 dengan nama CommandScalar.

    2. Ubah nama file Module1.vb menjadi CommandScalar.vb

  • 3. Ketikkan kode berikut ini pada halaman kode CommandScalar.vb

    Imports System Imports System.Data Imports System.Data.SqlClient Module CommandScalar Sub Main() 'create connection Dim conn As SqlConnection = New SqlConnection("Data Source=AJENG; Integrated Security=True; database=northwind") 'create command (with both text and connection) Dim sql As String = "select count(*) from employees" Dim cmd As SqlCommand = New SqlCommand(sql, conn) Console.WriteLine("Command created and connected.") Try 'Open connection conn.Open() 'execute query Console.WriteLine("Number of Employees is {0}", cmd.ExecuteScalar()) Catch ex As SqlException Console.WriteLine(ex) Finally ' Close connection conn.Close() Console.WriteLine("Connection closed.") End Try End Sub End Module

    4. Jalankan program dengan menekan tombol Ctrl+F5.

    E. Menggunakan Metode ExecuteReader

    1. Buat project Visual Basic Console Application baru pada solution

    Chapter11 dengan nama CommandReader.

  • 2. Ubah nama file Module1.vb menjadi CommandReader.vb

    3. Ketikkan kode berikut ini pada halaman kode CommandReader.vb

    Imports System Imports System.Data Imports System.Data.SqlClient Module CommandReader Sub Main() 'create connection Dim conn As SqlConnection = New SqlConnection("Data Source=AJENG; Integrated Security=True; database=northwind") 'create command (with both text and connection) Dim sql As String = "select firstname,lastname from employees" Dim cmd As SqlCommand = New SqlCommand(sql, conn) Console.WriteLine("Command created and connected.") Try 'Open connection conn.Open() 'execute query Dim rdr As SqlDataReader = cmd.ExecuteReader While (rdr.Read) Console.WriteLine("Employee name: {0} {1}", rdr.GetValue(0), rdr.GetValue(1)) End While Catch ex As SqlException Console.WriteLine(ex) Finally ' Close connection conn.Close()

  • Console.WriteLine("Connection closed.") End Try End Sub End Module

    4. Jalankan program dengan menekan tombol Ctrl+F5.

    F. Menggunakan Metode ExecuteNonQuery

    1. Buat project Visual Basic Console Application baru pada solution

    Chapter11 dengan nama CommandNonQuery.

    2. Ubah nama file Module1.vb menjadi CommandNonQuery.vb

    3. Ketikkan kode berikut ini pada halaman kode CommandNonQuery.vb

    Imports System Imports System.Data Imports System.Data.SqlClient Module CommandNonQuery Sub Main() 'create connection Dim conn As SqlConnection = New SqlConnection("Data Source=AJENG; Integrated Security=True; database=northwind") 'define scalar query Dim sqlqry As String = "select count(*)from employees" 'define insert statement Dim sqlins As String = "insert into employees (firstname,lastname)values('Zachariah', 'Zinn')"

  • 'define delete statement Dim sqldel As String = "delete from employees where firstname = 'Zachariah' and lastname = 'Zinn'" 'create commands Dim cmdqry As SqlCommand = New SqlCommand(sqlqry, conn) Dim cmdnon As SqlCommand = New SqlCommand(sqlins, conn) Console.WriteLine("Command created and connected.") Try 'Open connection conn.Open() 'execute query to get number of employees Console.WriteLine("Before INSERT: Number of employees {0}", cmdqry.ExecuteScalar()) 'execute nonquery to insert an employee Console.WriteLine("Executing statement {0}", cmdnon.CommandText) cmdnon.ExecuteNonQuery() Console.WriteLine("After INSERT: Number of employees {0}", cmdqry.ExecuteScalar()) 'execute nonquery to delete an employee cmdnon.CommandText = sqldel Console.WriteLine("Executing statement {0}", cmdnon.CommandText) cmdnon.ExecuteNonQuery() Console.WriteLine("After DELETE: Number of employees {0}", cmdqry.ExecuteScalar()) Catch ex As SqlException Console.WriteLine(ex) Finally ' Close connection conn.Close() Console.WriteLine("Connection closed.") End Try End Sub End Module

    4. Jalankan program dengan menekan tombol Ctrl+F5.

    G. Menggunakan Command Parameter

    1. Buat project Visual Basic Console Application baru pada solution

    Chapter11 dengan nama CommandParameters.

  • 2. Ubah nama file Module1.vb menjadi CommandParameters.vb

    3. Ketikkan kode berikut ini pada halaman kode CommandParameters.vb

    Imports System Imports System.Data Imports System.Data.SqlClient Module CommandParameters Sub Main() 'set up rudimentary data Dim fname As String = "Zachariah" Dim lname As String = "Zinn" 'create connection Dim conn As SqlConnection = New SqlConnection("Data Source=.\sqlexpress; Integrated Security=True; database=northwind") 'define scalar query Dim sqlqry As String = "select count(*)from employees" 'define insert statement Dim sqlins As String = "insert into employees (firstname,lastname)values(@fname,@lname)" 'define delete statement Dim sqldel As String = "delete from employees where firstname = @fname and lastname = @lname" 'create commands Dim cmdqry As SqlCommand = New SqlCommand(sqlqry, conn) Dim cmdnon As SqlCommand = New SqlCommand(sqlins, conn) cmdnon.Prepare() 'add parameters to the command for statements cmdnon.Parameters.Add("@fname", SqlDbType.NVarChar, 10) cmdnon.Parameters.Add("@lname", SqlDbType.NVarChar, 20) Try 'Open connection conn.Open() 'execute query to get number of employees Console.WriteLine("Before INSERT: Number of employees {0}", cmdqry.ExecuteScalar()) 'execute nonquery to insert an employee cmdnon.Parameters("@fname").Value = fname cmdnon.Parameters("@lname").Value = lname Console.WriteLine("Executing statement {0}", cmdnon.CommandText) cmdnon.ExecuteNonQuery() Console.WriteLine("After INSERT: Number of employees {0}", cmdqry.ExecuteScalar()) 'execute nonquery to delete an employee cmdnon.CommandText = sqldel Console.WriteLine("Executing statement {0}", cmdnon.CommandText) cmdnon.ExecuteNonQuery() Console.WriteLine("After DELETE: Number of employees {0}", cmdqry.ExecuteScalar())

  • Catch ex As SqlException Console.WriteLine(ex) Finally ' Close connection conn.Close() Console.WriteLine("Connection closed.") End Try End Sub End Module

    4. Jalankan program dengan menekan tombol Ctrl+F5.

    V. Lembar Kerja

    No Judul / Hasil / Analisa

    1 Membuat Perintah Menggunakan Constructor

    Kita membuat sebuah SqlCommand menggunakan default constructor dan

    menampilkan pesan yang menandakan bahwa command telah dibuat. Pada

    contoh ini, command yang digunakan kosong. Ini tidak berhubungan

    dengan connection, dan tidak memiliki sekumpulan nilai.

    2 Setting Koneksi Property

    Kita memulai kode dengan membuat connection dan command. Keduanya

    tidak saling terhubung satu sama lain. Hal ini terjadi hanya bila kita

    menetapkan connection ke properti commands connection bahwa

    keduanya menjadi terhubung.

    3 Setting CommandText Property

  • CommandText hanyalah sebuah string, jadi kita bisa menampilkannya

    dengan menggunakan Console.Writeline() seperti sting lainnya. SQL akan

    menghasilkan beberapa nomer dari tabel employees ketika kita

    mengeksekusi programnya.

    4 Menggunakan Metode ExecuteScalar

    ExecuteScalar() mengambil properti dari CommandText dan mengirimnya

    ke database menggunakan properti Commands Connection. Itu

    menghasilkan nilai sebagai sebuah singgle object, yang kita tampilkan

    menggunakan Console.Writeline().

    5 Menggunakan Metode ExecuteReader

    ExecuteReader() mengambil property dari CommandText dan

    mengirimnya ke database menggunakan Connection dari property

    Connection. ExecuteReader() menghasilkan sebuah SqlDataReader object,

    yang membaca method dan menghasilkan sekumpulan data dari database.

    6 Menggunakan Metode ExecuteNonQuery

  • ExecuteNonQuery() menghasilkan sebuah nilai integer yang menandakan

    berapa banyak baris yang dihasilkan dari command.

    7 Menggunakan Command Parameter

    Dalam contoh ini, kita membuat kode dengan menggunkak commend

    seperti biasanya, hanya saja kali ini kita menggunakan parameter intuk

    memeberikan nilai inputan, dan mendapatkan nilai output.

    VI. Kesimpulan

    ExecuteScalar() mengambil properti dari CommandText dan mengirimnya ke

    database menggunakan properti Commands Connection. ExecuteScalar()

    menghasilkan nilai sebagai sebuah singgle object, yang kita tampilkan

    menggunakan Console.Writeline().

    ExecuteReader() mengambil property dari CommandText dan mengirimnya ke

    database menggunakan Connection dari property Connection. ExecuteReader()

    menghasilkan sebuah SqlDataReader object, yang membaca method dan

    menghasilkan sekumpulan data dari database.

    ExecuteNonQuery() menghasilkan sebuah nilai integer yang menandakan

    berapa banyak baris yang dihasilkan dari command.