Top Banner

of 70

Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

Feb 09, 2018

Download

Documents

Yenzmudzz
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    1/70

    Penuntun PraktikBahasa Pemrograman IIProdi. S-1 Sistem Informasi

    10-Maret-2014

    Disusun Oleh: Gunawan, Rin Rin Meilani Salim, dan Hanes

    KAMPUS A, B, C

    JL. THAMRIN NO. 124, 140, 112 MEDAN 20212TELP. (061) 4573767 4533705 4533708FAX. (061) 4567789

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    2/70

    DAFTAR ISI

    S I S T E M I N F O R M A S I - S T M I K M I K R O S K I L

    1. BEKERJA DENGAN FILE ................................................................................................ 12. MENU, TOOLBAR, DAN STATUSBAR ............................................................................ 73. ADO .NET ................................................................................................................... 124. PEMROGRAMAN DATABASE DENGAN ADO .NET (MODEL CONNECTED) ................ 195. PEMROGRAMAN DATABASE DENGAN ADO .NET (MODEL DISCONNECTED) ........... 276. PEMBUATAN LAPORAN DATABASE ........................................................................... 377. LINQ TO SQL .............................................................................................................. 58

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    3/70

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    4/70

    MODUL1

    S I S T E M I N F O R M A S I | S T M I K M I K R O S K I L

    BEKERJA DENGAN FILE

    Setelah mempelajari dan mempraktikkan Modul 1, mahasiswa diharapkan dapat:

    Bekerja dengan file menggunakan objek My Bekerja dengan file menggunakan class FileStream

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    5/70

    2 | M O D U L 1 : B E K E R J A D E N G A N F I L E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    anyak program yang menyimpan informasinya ke file. Untuk

    membaca dan menulis file di Visual Basic .NET dapat dilakukan

    dengan menggunakan objek My dan menggunakan class FileStream.

    Untuk melakukan manajemen file dan folder (direktori) dapat

    menggunakan class FileInfo.

    Objek My

    bjek My memiliki:

    Metoda untuk membaca dengan cepat serta menulis teks dan file biner. Metoda dan properti untuk menjelajahi sistem file serta mengatur file

    dan folder.

    Tabel 1.1 berikut ini merupakan beberapa metoda yang digunakan untuk

    melakukan akses file teks dan binary dengan objek My.

    Tabel 1.1| Metoda Akses File Dengan Objek My

    Nama Metoda Fungsi

    WriteAllText() Menulis data ke dalam file teks

    ReadAllText() Mengambil isi dari file teks menjadi string

    WriteAllBytes() Menulis data ke dalam file binary

    ReadAllBytes() Mengambil isi dari file binary menjadi array byte

    Tujuan pendekatan My adalah untuk menyederhanakan proses. Objek My

    cocok digunakan untuk pengaturan file, tetapi kurang berguna untuk

    membaca dan menulis file, karena pembacaan file dengan metoda

    ReadAllText() dari objek My selalu mengambil semua isi file, kemudian

    ditempatkan ke dalam string. Untuk melakukan pemisahan string tersebut

    bukanlah hal yang baik dan mudah. Penulisan ke file dengan metoda

    WriteAllText() akan mengurangi performansi karena file dibuka dan ditutup

    secara berulang-ulang.

    Metoda ReadAllText() dan WriteAllText() hanya bekerja dengan file teks,

    sedangkan untuk file binary tidak dapat dilakukan. Untuk bekerja dengan

    file binary dapat menggunakan metoda WriteAllBytes() dan ReadAlBytes(),

    lalu melakukan konversi dari array byte ke tipe data yang diinginkan.

    Beberapa metoda yang sering digunakan untuk pengaturan file dan folder

    dengan menggunakan objek My dapat dilihat pada tabel 1.2 berikut ini.

    Tabel 1.2| Metoda Pengaturan File dan Folder Dengan Objek My

    Metoda Fungsi

    CopyDirectory (lokasi dan nama folder asal,

    lokasi folder tujuan)

    Men-copy isi folder asal ke folder tujuan

    CopyFile (lokasi dan nama file asal, lokasi dan

    nama file tujuan)

    Men-copy suatu file asal ke file tujuan

    CreateDirectory (lokasi dan nama folder) Membuat folder pada lokasi tertentu

    DeleteDirectory (lokasi dan nama folder,

    hapus semua isi folder atau hapus folder jika

    isi folder kosong)

    Menghapus folder

    DeleteFile (lokasi dan nama file) Menghapus file

    DirectoryExists (lokasi dan nama folder) Memeriksa apakah suatu folder ada atau tidak

    FileExists (lokasi dan nama file) Memeriksa apakah suatu file ada atau tidak

    B

    O

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    6/70

    3 | M O D U L 1 : B E K E R J A D E N G A N F I L E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    RenameDirectory (lokasi dan nama folder

    yang akan diubah, nama folder baru)

    Mengubah nama direktori

    RenameFile (lokasi dan nama file yang akan

    diubah, nama file baru)

    Mengubah nama file

    Class FileStream

    lass FileStream (namespace System.IO) merupakan pintu gerbanguntuk akses file. Instance dari class ini mewakili sebuah file di

    komputer. Class ini memiliki lebih banyak fitur dalam mengakses file.

    Contoh sederhana untuk membuat file:Dim fs as FileStream

    fs = New FileStream (, FileMode.CreateNew)

    FileMode terdiri dari:

    FileMode.Open: untuk membuka file yang sudah ada. Jika file yangdimaksud belum ada, maka akan menimbulkan error.

    FileMode.Append: untuk menambah data yang sudah ada ke akhir file.Jika file yang dimaksud belum ada, maka akan dibuat file yang baru.

    Hanya boleh operasi tulis ke file, sedangkan operasi baca dari file akan

    menimbulkan kesalahan.

    FileMode.OpenOrCreate: untuk membuka file yang sudah ada dan jikatidak ada, maka akan dibuat file baru. Operasi tulis ke file dan baca dari

    file dapat dilakukan.

    FileMode.Create: untuk membuat file baru dan menimpa/menggantikanfile yang sudah ada dengan nama yang sama. Hanya operasi tulis yang

    dapat dilakukan.

    FileMode.CreateNew: untuk membuat file baru. Jika file tersebut sudahada, maka akan menimbulkan error. Hanya operasi tulis yang dapat

    dilakukan.

    Untuk bekerja dengan file dengan menggunakan file stream harus

    memanfaatkan stream reader atau stream writer. Walaupun sudah

    ditentukan apakah akan membaca atau menulis informasi menggunakan

    objek FileStream yang baru, namun masih belum dapat menentukan format

    yang akan digunakan untuk mengirimkan data melalui stream tersebut.

    Tanpa informasi format tersebut, stream tidak dapat digunakan. Terdapat

    dua opsi, yaitu:

    1. Menggunakan binary data dengan menggunakan objek BinaryWriterdan BinaryReader.

    2. Menggunakan plain text dengan menggunakan objek StreamWriter danStreamReader.

    Class writer digunakan untuk mengirimkan informasi ke dalam sebuah file,

    sedangkan class reader digunakan untuk mengambil informasi dari file.

    Class StreamWriter dan StreamReader

    bjek StreamWriter menghasilkan baris teks tanpa ada pemisah

    tanda petik. Untuk mengambil teks dari file dapat menggunakan

    metoda ReadLine(). Metoda ReadLine() akan mengambil teks

    dengan tipe string dari file per baris. Class StreamWriter dapat menangani

    tipe data sederhana seperti numerik, string, dan Boolean (menjadi stringTrue/False) ketika dituliskan ke file. Untuk mengambil informasi, dapat

    C

    O

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    7/70

    4 | M O D U L 1 : B E K E R J A D E N G A N F I L E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    digunakan class StreamReader yang selalu dalam tipe data string, sehingga

    untuk mengkonversi ke tipe data yang sesuai dapat menggunakan fungsi

    CType().

    Class BinaryWriter dan BinaryReader

    inaryWriter bekerja dengan pola yang sama seperti StreamWriter,

    tetapi BinaryWriter hanya bekerja dengan bytes dalam format binary

    yang ter-encode. Jika ingin melakukan konversi ke byte array, maka

    dapat menggunakan class System.BitConverter atau cukup menggunakan

    metoda Write() dari class BinaryWriter selama menggunakan tipe data

    sederhana. Pada kebanyakan program, file binary adalah cara standar untuk

    menyimpan informasi. Keuntungannya adalah:

    1. File tersebut susah dibaca sehingga dapat terhindar dari pengubahan isifile secara sengaja.

    2. Penyimpanan biner memakan tempat lebih hemat daripadapenyimpanan teks.

    Untuk mengambil binary format dari file dapat menggunakan metoda

    ReadString(), ReadInt32(), dan sebagainya tergantung masing-masing tipe

    data. Yang perlu diperhatikan dalam penyimpanan dengan format binary

    yaitu:

    1. Perlunya melakukan serialisasi data agar tipe data yang ditulis dandibaca dapat sesuai.

    2. Jika terdapat pergantian dari sebuah tipe data ke tipe data yang lain,maka harus mengubah metoda pembacaan informasi dari file

    tergantung tipe data yang telah diubah. Jika sudah disesuaikan, maka

    akan kehilangan kemampuan untuk mengambil informasi yang

    sebelumnya sudah disimpan.

    Class FileInfo

    ntuk mengambil informasi dari sebuah file seperti properti dan

    atribut, pemeriksaan apakah file sudah ada, melakukan copy dan

    hapus file, dan sebagainya dapat menggunakan class FileInfo

    (namespace System.IO). Selain dengan menggunakan class ini, juga bisa

    menggunakan metoda My.Computer.FileSystem.GetFileInfo().

    Beberapa properti dari class FileInfo yang sering digunakan ditunjukkan

    pada tabel 1.3 berikut ini.

    Tabel 1.3| Properti Class FileInfo

    Nama Properti Fungsi

    Attributes Mengambil jenis atribut file

    CreationTime Mengambil waktu buat file

    Exists Memeriksa apakah suatu file ada atau tidak

    DirectoryName Mengambil alamat dari sebuah file

    Extension Mengambil ekstensi dari suatu file

    FullName Mengambil lokasi dan nama file

    LastAccessTime Mengambil waktu akses terakhir terhadap file

    LastWriteTime Mengambil waktu rekam/tulis terakhir terhadap file

    Length Mengambil ukuran fileName Mengambil nama file saja

    B

    U

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    8/70

    5 | M O D U L 1 : B E K E R J A D E N G A N F I L E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    CopyTo Melakukan operasi copy file ke lokasi dan nama file tujuan dengan syarat file

    tujuan belum ada

    Delete Menghapus file

    MoveTo Melakukan operasi cut file ke lokasi dan nama file tujuan dengan syarat file

    tujuan belum ada

    Fitur yang lain adalah adanya keterhubungan antara objek file dan directory.

    Objek FileInfo menyediakan properti direktori yang menghasilkan sebuah

    objek DirectoryInfo yang menunjukkan direktori dimana file berada. Masing-

    masing objek DirectoryInfo memiliki metoda seperti GetFiles() dan

    GetDirectories() yang menghasilkan array FileInfo dan array DirectoryInfo().

    TUGAS

    1. Untuk mempraktikkan teori di atas, buatlah aplikasi berikut ini.

    2. Buatlah aplikasi untuk menulis dan membaca informasi dari file teksdengan menggunakan objek My.

    3. Buatlah aplikasi untuk memanipulasi data supplier pada sebuah file tekssupplier.txt. Isi dari file tersebut akan ditampilkan pada sebuah ListBox.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    9/70

    6 | M O D U L 1 : B E K E R J A D E N G A N F I L E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    4. Sama seperti soal nomor 3 sebelumnya, hanya saja isi dari file akanditampilkan pada sebuah DataGridView.

    5. Buatlah aplikasi untuk menampilkan daftar direktori dan file yangterdapat pada suatu drive tertentu.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    10/70

    MODUL2

    S I S T E M I N F O R M A S I | S T M I K M I K R O S K I L

    MENU, TOOLBAR, DAN STATUSBAR

    Setelah mempelajari dan mempraktikkan Modul 2, mahasiswa diharapkan dapat:

    Membuat menu Membuat toolbar Membuat statusbar

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    11/70

    8 | M O D U L 2 : M E N U , T O O L B A R , D A N S T A T U S B A R

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    enggunaan menu di aplikasi Windows merupakan suatu cara yang

    praktis untuk mengintegrasikan kode program aplikasi sehingga

    memudahkan user ketika menjalankan perintah-perintah. Menu

    menyediakan akses ke perintah-perintah yang berkaitan dengan aplikasi

    yang dibuat. Struktur menu dapat merepresentasikan fungsionalitas dari

    suatu aplikasi, dan dari sini pula user akan mengoperasikan aplikasi yang

    dibuat.

    Untuk meningkatkan efektivitas, dapat disediakan toolbar guna mendukung

    fungsionalitas menu. Pada umumnya, toolbar merepresentasikan ikon-ikonperintah yang sering digunakan. Perintah yang terdapat pada masing-

    masing ikon toolbar sebenarnya juga ada di dalam menu. Meskipun

    demikian, toolbar menawarkan cara yang lebih efektif, yaitu dengan sekali

    klik.

    Menu

    enu berguna untuk mengelompokkan perintah dengan topik

    tertentu. Menu memungkinkan user untuk secara cepat dan

    mudah mengakses fungsi aplikasi dan tools yang diinginkan.

    Perencanaan dan desain yang baik dari menu membuat aplikasi mudah

    digunakan dan dipelajari. Untuk membuat menu, perlu diperhatikan alur

    logis dari aplikasi. Menu item harus dikelompokkan sesuai dengan

    fungsionalitasnya. Untuk membuat menu window sebagaimana aplikasi

    umumnya digunakan kontrol MenuStrip.

    Beberapa properti pada kontrol MenuStrip yang penting ditunjukkan pada

    tabel 2.1 berikut ini.

    Tabel 2.1| Properti Kontrol MenuStrip

    Nama Properti Keterangan

    Checked Menampilkan atau tidak tanda cek pada item menu. Tipenya boolean(True/False) dan default-nya False.

    Enabled Menunjukkan apakah item menu aktif atau tidak. Jika False, maka item

    menu berwarna abu-abu dan tidak dapat diakses. Tipenya boolean dan

    default-nya True.

    Image Menampilkan icon di samping item menu.

    ShortcutKeys Mengatur kombinasi kunci shortcut untuk mengaktifkan item menu. Nilainya

    adalah tipe shortcut, misalnya F1. Tiap kunci shortcut bernilai unik.

    ShowShortcutKeys Jika kunci kombinasi shortcut didefinisikan pada item menu, maka

    menunjukkan apakah kombinasi kunci ditampilkan di menu. Tipenya boolean

    dan default-nya True.

    Text Mewakili teks sebagai judul menu, item menu, dan item submenu.Tambahkan karakter ampersand (&) di sebelah kiri huruf yang akan dijadikan

    tombol akses. Karakter - akan membuat garis pemisah harizontal. Nilai

    default-nya adalah string kosong.

    Visible Menunjukkan apakah item menu ditampilkan atau tidak. Tipenya boolean

    dan default-nya True.

    Menu PopUp

    dakalanya suatu aplikasi memerlukan menu yang lebih spesifik,

    selain menu window normal tentunya. Sebagai contoh, di teks editor

    bisa dimunculkan menu popup dengan melakukan klik kanan padaarea editor. Hal ini juga dapat diimplementasikan pada aplikasi Windows

    P

    M

    A

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    12/70

    9 | M O D U L 2 : M E N U , T O O L B A R , D A N S T A T U S B A R

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    menggunakan kontrol ContextMenuStrip. Kontrol ini memiliki fungsi utama

    untuk menampilkan popup yang berisi menu-menu yang ditampilkan ketika

    mengklik kanan kontrol-kontrol Windows tertentu.

    ToolBar dan StatusBar

    ebagaimana ketika membuat menu melalui kontrol MenuStrip,

    pembuatan toolbar yang memanfaatkan kontrol ToolStrip jugamenyediakan item-item standar. Toolbar tinggal dilengkapi dengan

    menambahkan atau mengurangi item yang telah disediakan dan

    memperbaiki kode programnya.

    StatusBar merupakan kontrol horizontal yang terletak di bagian bawah

    form. StatusBar biasanya digunakan untuk menampilkan informasi

    berbentuk teks, seperti tanggal, jam, mode keyboard (insert, num lock,

    scroll lock, dan sebagainya), penjelasan proses yang sedang terjadi, serta

    deskripsi dari item menu.

    TUGAS

    1. Buatlah aplikasi yang berisi menu untuk mengatur warna latar danukuran form.

    2. Buatlah aplikasi teks editor (menggunakan RichTextBox) yang berisitoolbar dan statusbar, dimana:

    Toolbar memiliki fungsi untuk mengatur style tulisan, dan Statusbar memiliki fungsi untuk menampilkan jam sistem.

    S

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    13/70

    10 | M O D U L 2 : M E N U , T O O L B A R , D A N S T A T U S B A R

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    3. Rancanglah form seperti gambar berikut ini (form untuk setiap menuakan dikerjakan pada modul-modul selanjutnya Model Connected,

    Model Disconnected, dan Crystal Report).

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    14/70

    11 | M O D U L 2 : M E N U , T O O L B A R , D A N S T A T U S B A R

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Menu-menu pada form di atas adalah sebagai berikut:

    Master Transaksi Laporan Keluar

    Data BarangData PelangganData PenggunaData Pemasok

    PenjualanRetur PenjualanPembelianRetur Pembelian

    Laporan BarangLaporan PelangganLaporan PemasokLaporan PenjualanLaporan Retur PenjualanLaporan PembelianLaporan Retur Pembelian

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    15/70

    MODUL3

    S I S T E M I N F O R M A S I | S T M I K M I K R O S K I L

    ADO .NET

    Setelah mempelajari dan mempraktikkan Modul 3, mahasiswa diharapkan dapat:

    Memahami konsep ADO .NET

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    16/70

    13 | M O D U L 3 : A D O . N E T

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    ebagian besar aplikasi membutuhkan akses data. Aplikasi desktop

    butuh disambungkan ke database pusat, XML (Extensible Markup

    Language) data store, ataupun database lokal. Akses data biasanya

    melibatkan penggunaan SQL (Structured Query Language) statement, yang

    sering dibuat secara dinamis pada saat runtime (biasa dikenal sebagai ad

    hoc query).

    ADO .NET Data Access menyediakan cara yang sederhana, tetapi cukup

    bagus untuk mengakses data dan memaksimalkan resource sistem yang

    digunakan. Versi-versi sebelumnya dari data akses menyediakan data aksesyang terhubung secara terus menerus. Di model ini, aplikasi membuat ke

    database dan membiarkannya terbuka terus sampai aplikasi ditutup atau

    sampai selang waktu tertentu. Pada saat aplikasi menjadi lebih kompleks,

    menggunakan cara ini sangat memboroskan resource sistem: semakin

    banyak koneksi tersambung, semakin buruk performa sistemnya. Lagipula,

    aplikasi dengan data akses yang selalu terhubung sangat susah untuk di-

    scale up.

    ADO .NET mengatasi masalah ini dengan menerapkan model disconnected

    database access sebagai default-nya. Pada model ini, koneksi data hanya

    dijalankan dan dibiarkan terbuka selama menjalankan proses. Dengan

    mempertahankan koneksi terbuka hanya untuk waktu minimum yangdibutuhkan, ADO .NET mengurangi kebutuhan resource sistem dan

    memungkinkan akses data di-scale up dengan efek minimal di performanya.

    Pengenalan ADO .NET

    ada masa pemrograman Windows, Visual Basic terkenal karena

    merupakan tool yang sederhana dan powerful untuk menulis aplikasi

    yang berhubungan dengan database dan menghasilkan report

    (laporan) yang menarik. Untuk mengakses database, Microsoft

    menyediakan teknologi-teknologi seperti Data Access Object (DAO), lalu di-

    upgrade menjadi Remote Data Object (RDO) untuk mengakses produk

    database client-server seperti SQL, dan kemudian migrasi ke ActiveX Data

    Object (ADO) yang menggabungkan kedua teknologi sebelumnya. ADO

    menyediakan model objek yang fleksibel dan powerful.

    ADO telah dikenal sebagai salah satu metode yang cukup baik untuk

    mengakses data di database. Pada masanya, ADO merupakan pilihan yang

    sangat tepat dalam membangun aplikasi database dari skala kecil sampai

    yang berskala besar. Sayangnya, ADO menuntut koneksi data yang dilakukan

    secara terus menerus sehingga mengakibatkan pemborosan resource.

    Untuk mendukung pengaksesan dan pengolahan data yang lebih baik, .NET

    Framework memperkenalkan teknologi yang dikenal sebagai ADO .NET.

    ADO .NET memiliki teknologi yang berbeda dari ADO. ADO .NET tersedia di

    dalam library class .NET dan terintegrasi dengan XML. ADO .NET lebih

    unggul dalam berhubungan dengan data relasional. ADO .NET merupakan

    model pemrograman baru yang didesain untuk menyediakan akses

    konsisten ke dalam data source. ADO .NET mendukung dua lingkungan

    pemrograman yang berlainan, yaitu connected dan disconnected. Adapun

    secara default, lingkungan pemrograman yang digunakan adalah

    disconnected.

    Fitur baru dari ADO .NET:

    1. Cursor tidak bersifat server side2. DataSet dan DataReader menggantikan RecordSet3. DataAdapter4. Penyimpanan data yang berbasiskan XML

    S

    P

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    17/70

    14 | M O D U L 3 : A D O . N E T

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Arsitektur ADO .NET

    ata akses di ADO .NET bergantung pada dua komponen, yaitu

    DataSet yang menyimpan data di lokal dan .NET Data Provider yang

    menjadi perantara interaksi antara program dan database. Gambar

    3.1 berikut ini menunjukkan arsitektur ADO .NET.

    Gambar 3.1| Arsitektur ADO .NET

    DataSet

    ataSet adalah representasi data yang disimpan di memori dalamkondisi tak terhubung (disconnected). Data bisa di-load ke DataSet

    dari data source apapun yang valid, seperti SQL Server database,

    Microsoft Access database, ataupun dari XML file. DataSet tetap ada di

    memori dan data di dalamnya bisa dimanipulasi dan di-update tanpa

    bergantung pada database asalnya. Jika diperlukan, maka DataSet bisa

    bertindak sebagai template untuk meng-update database pusat.

    .NET Data Provider

    ink ke database dibuat dan di-maintain oleh Data Provider (Managed

    Provider). Data Provider tidak terdiri dari satu komponen, tetapi

    merupakan kumpulan komponen yang bekerja bersama-sama

    menyediakan data yang dibuat seefisien mungkin. Data Provider di .NET

    Framework merupakan koleksi class-class yang bertindak sebagai

    penghubung antara aplikasi dan data source. Pendekatan yang digunakan

    oleh Data Provider .NET Framework adalah model pemrograman connected.

    Hal ini berarti bahwa koneksi ke data source dilakukan secara terus menerus

    seperti yang terjadi pada ADO. Model pemrograman connected

    menyediakan akses read only dan forward only ke data di dalam data

    source. Class-class di dalam model connected ini menyediakan cara umum

    untuk bekerja dengan data yang terkoneksi dengan mengabaikan data

    source yang mendasari.

    D

    D

    L

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    18/70

    15 | M O D U L 3 : A D O . N E T

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Data Provider menyediakan komponen class generik di namespace

    System.Data yang terdiri dari empat komponen utama, yaitu:

    a. Connection objectMenyediakan koneksi aktual ke database.

    b. Command objectDigunakan untuk mengeksekusi perintah untuk mengakses data yang

    bisa berupa perintah non-query seperti INSERT, UPDATE, dan DELETE,

    atau mengembalikan nilai DataReader dari perintah SELECT. Command

    object menyediakan tiga metoda yang digunakan untuk menjalankanperintah di database:

    ExecuteNonQuery, menjalankan perintah yang tidak memerlukanreturn value, seperti INSERT, UPDATE, atau DELETE.

    ExecuteScalar, mengembalikan satu nilai dari hasil query database. ExecuteReader, mengembalikan result set melalui DataReader

    objek.

    c. DataReader objectMenyediakan connected recordset tipe forward-only, read-only.

    DataReader dikembalikan sebagai hasil dari metoda ExecuteReader di

    Command object.

    d. DataAdapter objectMem-populate disconnected DataSet atau DataTable dengan data dan

    menjalankan update. Pada dasarnya merupakan perantara untuk

    memfasilitasi komunikasi antara database dan DataSet. DataAdapter

    mengisi DataTable atau DataSet dengan data dari database pada saat

    metoda Fill() dipanggil. Setelah memori resident data dimanipulasi,

    DataAdapter bisa men-transmit perubahan ke database dengan

    memanggil metoda Update(). DataAdapter menyediakan empat

    properti yang mewakili perintah database:

    SelectCommand, berisi teks atau objek yang memilih data daridatabase. Perintah ini dieksekusi pada saat metoda Fill() dipanggil

    dan mengisi DataTable atau DataSet.

    InsertCommand, berisi teks atau objek yang memasukkan satu bariske tabel.

    DeleteCommand, berisi teks atau objek yang menghapus baris daritabel.

    UpdateCommand, berisi teks atau objek yang meng-update nilai kedatabase. Pada saat metoda Update() dipanggil, perubahan di

    DataSet akan dituliskan kembali ke database dan InsertCommand,

    DeleteCommand, atau UpdateCommand dieksekusi.

    Gambar 3.2| .NET Data Provider

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    19/70

    16 | M O D U L 3 : A D O . N E T

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    .NET Framework menyediakan empat buah managed provider, yaitu:

    a. Data Provider untuk ODBCb. Data Provider untuk OLE DBc. Data Provider untuk SQL Serverd. Data Provider untuk Oracle

    Gambar 3.3| Managed Provider

    Objek Dasar ADO .NET

    emua fitur dari ADO .NET tersedia dalam library class .NET

    System.Data. Namespace yang terkandung di dalamnya yaitu:

    a. System.DataMengandung class-class dasar untuk mengatur data seperti DataSet danDataRelation.

    b. System.Data.SqlClientMengandung class-class yang digunakan untuk mengkoneksikan dengan

    database Microsoft SQL Server. Di dalamnya terdapat class-class seperti

    SqlCommand dan SqlConnection.

    c. System.Data.OracleMengandung class-class yang digunakan untuk mengkoneksikan dengan

    database Oracle. Di dalamnya terdapat class-class seperti

    OracleCommand dan OracleConnection.

    d. System.Data.OleDbMengandung class-class yang digunakan untuk mengkoneksikan denganprovider OLEDB. Di dalamnya terdapat class-class seperti

    OledbCommand dan OledbConnection. Class-class ini berguna jika tidak

    memiliki provider .NET yang murni khusus untuk mengakses database

    tersebut.

    S

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    20/70

    17 | M O D U L 3 : A D O . N E T

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Koneksi Database

    Objek Connection

    bjek connection dapat digunakan untuk melakukan koneksi ke data

    source (sumber data), yaitu Connection String. Connection String

    digunakan untuk mengakses database (pada praktikum ini

    menggunakan DBMS Microsoft SQL Server 2012) yang terdiri dari tigabagian informasi, yaitu:

    Koneksi ke database SQL Server, baik komputer lokal ataupun komputerlain dalam jaringan.

    Nama database yang akan digunakan. User account yang digunakan untuk mengkoneksi ke database SQL

    Server.

    - Koneksi ke database SQL Server 2012 dengan menggunakan accountWindows (Windows Authentication):

    Contoh:

    ImportsSystem.DataImportsSystem.Data.SqlClient

    PublicClassForm1PrivateSubForm1_Load(sender AsObject, e As

    EventArgs) HandlesMyBase.Load

    Dimconstring AsString= "Data Source=localhost;

    Initial Catalog=Northwind; Integrated Security=True"Dimcon AsNewSqlConnection(constring)

    con.Open()

    EndSub

    EndClass

    - Koneksi ke database SQL Server 2012 dengan menggunakan useraccount SQL Server (SQL Server Authentication) dengan menuliskan

    user id dan password:

    ImportsSystem.Data

    ImportsSystem.Data.SqlClient

    PublicClassForm1

    PrivateSubForm1_Load(sender AsObject, e As

    EventArgs) HandlesMyBase.LoadDimconstring AsString= "Data Source=localhost;

    Initial Catalog=Northwind; User Id=sa; Password=1234"

    Dimcon AsNewSqlConnection(constring)con.Open()

    EndSub

    EndClass

    Membuat Koneksi

    etelah membuat Connection String yang benar dengan objek

    Connection, maka dapat dibuat koneksi langsung ke database SQL

    Server dengan menggunakan objek SqlConnection.

    O

    S

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    21/70

    18 | M O D U L 3 : A D O . N E T

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    ImportsSystem.DataImportsSystem.Data.SqlClient

    PublicClassForm1PrivateSubForm1_Load(sender AsObject, e AsEventArgs)

    HandlesMyBase.LoadDimconstring AsString= "Data Source=localhost;

    Initial Catalog=Northwind; Integrated Security=True"Dimcon AsNewSqlConnection(constring)

    con.Open()EndSub

    EndClass

    Metoda Open() digunakan untuk membuat koneksi langsung ke database.

    Koneksi dapat ditutup kapan saja dengan menggunakan metoda Close().

    Objek Command

    etelah membuat koneksi langsung ke database, maka langkah

    selanjutnya adalah melakukan operasi terhadap database dengan

    menggunakan objek Command. Objek Command berisi perintah SQL

    atau stored procedure yang digunakan untuk mengambil data atau

    melakukan perubahan. Agar bisa menggunakan ADO .NET, maka harus

    mempunyai pemahaman dasar tentang perintah SQL.

    Contoh:

    ImportsSystem.Data

    ImportsSystem.Data.SqlClient

    PublicClassForm1PrivateSubForm1_Load(sender AsObject, e AsEventArgs)

    HandlesMyBase.Load

    Dimconstring AsString= "Data Source=localhost;Initial Catalog=Northwind; User Id=sa; Password=1234"

    Dimcon AsNewSqlConnection(constring)

    con.Open()

    DimsqlString AsString= "Select * from ORDERS where

    OrderDate < '2014/01/01' and OrderDate > '1987/01/01'"Dimcmd AsNewSqlCommand(sqlString, con)

    EndSub

    EndClass

    Contoh objek Command di atas belum membaca data, hanya mendefinisikan

    perintah. Agar dapat menggunakan command, maka harus ditentukan

    apakah membuat DataReader atau DataSet.

    TUGAS

    Ikuti petunjuk dosen praktikum untuk melakukan koneksi ke database

    Microsoft SQL Server 2012 dengan Microsoft Visual Basic .NET.

    S

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    22/70

    MODUL4

    S I S T E M I N F O R M A S I | S T M I K M I K R O S K I L

    PEMROGRAMAN DATABASE DENGAN ADO

    .NET (MODEL CONNECTED)

    Setelah mempelajari dan mempraktikkan Modul 4, mahasiswa diharapkan dapat:

    Memahami konsep pemrograman database dengan model connected Membuat program database dengan model connected

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    23/70

    20 | M O D U L 4 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    ambar 4.1 berikut ini menunjukkan arsitektur model connected ADO

    .Net (objek DataReader) untuk mengakses data dari database secara

    cepat, bersifat forward, dan readonly.

    Gambar 4.1| Arsitektur Model Connected ADO .NET

    Objek DataReader digunakan untuk membaca data dari database secara

    langsung. Objek ini tidak menyediakan akses terputus ataupun kemampuan

    untuk mengubah atau meng-update sumber data yang sebenarnya.

    DataReader hanya digunakan untuk akses cepat, akses data yang bersifat

    readonly, navigasi secara forward, dan mengurutkan record. Tiap-tiap

    provider menyediakan class DataReader-nya sendiri. Untuk DBMS SQL

    Server dapat menggunakan class SqlDataReader.

    Setelah membuat koneksi dengan objek Connection dan membuat objek

    Command, maka data dapat diakses melalui objek DataReader. Inti dari

    pemrograman ADO NET dengan DataReader adalah sebagai berikut:Dim reader As SqlDataReader = cmd.ExecuteReader()Ketika DataReader baru saja terbentuk, maka baris data/record masih

    belum ada (record belum bisa diambil). Untuk melakukan navigasi dapat

    menggunakan metoda Read(). Record dapat dinavigasi dari awal sampai

    akhir, tetapi tidak ada cara (tidak bisa) untuk bergerak mundur. Metoda

    Read() akan mengembalikan nilai True selama masih terdapat record pada

    posisi yang dilaluinya dan sebaliknya akan mengembalikan nilai False jika

    ada usaha untuk membaca record setelah record terakhir.While reader.Read()

    ambil baris data/record

    End While

    reader.close()

    con.close()Oleh karena DataReader melakukan pembacaan terhadap record database

    secara langsung, setelah data diproses, maka koneksi harus ditutup

    sesegera mungkin dengan metoda Close(). Untuk mengakses data pada

    record dapat menggunakan nama field atau nomor indeks (dimulai dari

    nol).

    TUGAS

    Latihan di bawah ini berhubungan dengan Modul 2 soal nomor 3, dimana

    beberapa form pada menu tersebut dikerjakan pada latihan berikut ini.

    1. Buatlah aplikasi untuk pengolahan data barang pada menu Masterdengan menggunakan model connected ADO .NET.

    Database: MShop

    Tabel: Barang

    G

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    24/70

    21 | M O D U L 4 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Keterangan:

    a. Jika tombol Preview dengan ListBox diklik, maka tampilkan dataBarang yang telah disimpan ke tabel Barang pada sebuah ListBox.

    b. Jika tombol Preview dengan ListView diklik, maka tampilkan dataBarang yang telah disimpan ke tabel Barang pada sebuah ListView.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    25/70

    22 | M O D U L 4 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    c. Jika tombol Preview dengan DataGridView diklik, maka tampilkandata Barang yang telah disimpan ke tabel Barang pada sebuah

    DataGridView.

    2. Buatlah aplikasi untuk pengolahan data pelanggan pada menu Masterdengan menggunakan model connected ADO .NET.

    Tabel: Pelanggan

    Keterangan:

    Jika tombol Browse () pada Kode Pelanggan diklik, maka tampilkan

    data pelanggan yang telah disimpan ke tabel Pelanggan pada sebuah

    DataGridView.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    26/70

    23 | M O D U L 4 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    3. Buatlah aplikasi untuk pengolahan transaksi penjualan pada menuTransaksi dengan menggunakan model connected ADO .NET.

    Tabel: Header_Penjualan

    Tabel: Detail_Penjualan

    Keterangan:

    Jika tombol Browse () pada No. Faktur diklik, maka tampilkan faktur

    penjualan yang telah disimpan ke tabel Penjualan pada sebuahDataGridView.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    27/70

    24 | M O D U L 4 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Jika tombol Browse () pada Kode Pelanggan diklik, maka tampilkan

    data pelanggan yang telah disimpan ke tabel Pelanggan pada sebuah

    DataGridView.

    Jika tombol Browse () pada Kode Barang diklik, maka tampilkan data

    barang yang telah disimpan ke tabel Barang pada sebuah DataGridView.

    4. Buatlah aplikasi untuk pengolahan transaksi retur penjualan pada menuTransaksi dengan menggunakan model connected ADO .NET.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    28/70

    25 | M O D U L 4 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Tabel: Header_Retur_Penjualan

    Tabel: Detail_Retur_Penjualan

    Keterangan:

    Jika tombol Browse () pada No. Retur diklik, maka tampilkan data retur

    penjualan yang telah disimpan ke tabel Retur Penjualan pada sebuah

    DataGridView.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    29/70

    26 | M O D U L 4 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Jika tombol Browse () pada No. Faktur diklik, maka tampilkan faktur

    penjualan yang telah disimpan ke tabel Penjualan pada sebuah

    DataGridView.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    30/70

    MODUL5

    S I S T E M I N F O R M A S I | S T M I K M I K R O S K I L

    PEMROGRAMAN DATABASE DENGAN ADO

    .NET (MODEL DISCONNECTED)

    Setelah mempelajari dan mempraktikkan Modul 5, mahasiswa diharapkan dapat:

    Memahami konsep pemrograman database dengan model disconnected Membuat program database dengan model disconnected

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    31/70

    28 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L D I S C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    alam banyak hal, objek DataSet merupakan fokus dari pemrograman

    ADO .NET. Tidak seperti DataReader, DataSet pada dasarnya tidak

    terkoneksi. Informasi yang diperoleh dari database relasional dapat

    ditempatkan ke dalam sebuah DataSet atau memindahkan kembali

    informasi dari sebuah DataSet ke dalam database relasional, tetapi DataSet

    sendiri tidak pernah membentuk koneksi (hubungan) dengan sebuah

    sumber data, sehingga DataSet tidak mempunyai properti connection.

    Untuk menukar informasi antara objek DataSet dan sebuah sumber data

    diperlukan objek DataAdapter. Gambar 5.1 berikut ini menunjukkan semua

    objek dari ADO .NET yang terlibat pada akses tak terhubung (disconnected)

    dan bagaimana mereka berinteraksi.

    Gambar 5.1| Arsitektur Model Disconnected ADO .NET

    Beberapa kemampuan yang dimiliki DataSet sebagai berikut:

    a. Kemampuan menyimpan data untuk jangka waktu yang lama danmentransfernya ke class atau komponen lain sebagai sebuah paket.

    b. Kemampuan melakukan update kompleks dan perubahan pada data,tanpa perlu mengeksekusi setiap perubahan melalui sebuah objek

    Command yang terpisah.

    c. Kemampuan menyimpan atau mengambil kembali data berformat XMLke sebuah file.

    d. Kemampuan menghubungkan data pada kontrol dalam form Windowsatau halaman web ASP .NET untuk tampilan langsung dan tidakmembutuhkan pemrograman.

    e. Kemampuan mensortir dan memfilter hasil secara on the fly.f. Fleksibilitas yang lebih besar ketika membaca data, seperti navigasi data

    secara maju dan mundur di antara tabel yang berbeda, tetapi yang

    masih berhubungan.

    Mengakses Informasi Dalam Sebuah DataSet

    nformasi pada DataSet disimpan dalam collections. Berbeda dengan

    DataReader yang hanya membuka satu baris pada satu saat, sehingga

    memaksa untuk menggunakan metoda Read() untuk berpindahantarbaris. Sebuah DataSet mempunyai properti Tables yang berisi

    kumpulan objek DataTable. Setiap DataTable mempunyai properti Rows

    yang berisi kumpulan objek DataRow. DataRows dapat diakses

    menggunakan nama field yang berhubungan, sama seperti pada

    DataReader. Gambar 5.2 berikut ini menunjukkan keseluruhan dari model

    objek tersebut.

    D

    I

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    32/70

    29 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L D I S C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 5.2| Model Objek DataSet

    Berikut ini adalah sintaks yang digunakan untuk melakukan koneksi dan

    mengisi record dari data source ke DataSet, men-setting primary key,

    menampilkan record, mencari record, menambah record, mengubah record,

    menghapus record ke DataSet, dan meng-update perubahan record dariDataSet ke data source, serta me-refresh tabel DataSet.

    a. Melakukan koneksi ke database dan mengisi record dari data source(SQL Server) ke DataSetcon = New SqlConnection(data source=/; initial catalog=; integrated

    security=true)

    ds = New DataSet

    cmd = New SqlCommand(select * from , con)ad = New SqlDataAdapter(cmd)

    ad.Fill(ds, )b. Menampilkan record ke DataGridView

    Cara 1:Me.dgv1.ColumnCount =

    For i = 0 To ds.Tables().Rows.Count 1

    Dim dr As DataRowdr = ds.Tables().Rows(i)

    Me.dgv1.Rows.Add(dr.Item())

    Next

    Cara 2:Me.dgv1.ColumnCount =

    For Each x As DataRow in ds.Tables().RowsMe.dgv1.Rows.Add(x.Item())

    Next

    Cara 3:Me.dgv1.DataSource = ds.Tables()

    c. Men-setting primary key (juga sebagai kunci pencarian)Dim dc(n) as DataColumn

    dc(0) = ds.Tables().Columns()dc(1) = ds.Tables().Columns()

    dc(n) = ds.Tables().Columns()ds.Tables().PrimaryKey = dc

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    33/70

    30 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L D I S C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    d. Mencari recordDim dr As DataRowdr = ds.Tables().Rows.Find()

    If dr Isnot Nothing Then

    Else

    End If

    e. Menambah recordDim dr As DataRow

    dr = ds.Tables().NewRow

    dr() = ds.Tables().Rows.Add(dr)

    f. Mengubah recordDim dr As DataRow

    dr = ds.Tables().Rows.Find()

    If dr Isnot Nothing Then

    dr() =

    End If

    g. Menghapus recordDim dr As DataRow

    dr = ds.Tables().Rows.Find()If dr Isnot Nothing Then dr.Delete()

    h. Meng-update perubahan record dari DataSet ke data sourceDim cb As New SqlCommandBuilder(ad)

    ad = cb.DataAdapterDim jum As Integer = ad.Update(ds, )

    MsgBox(jum & record berhasil diupdate ke data source)

    i. Me-refresh tabel di DataSetds.Tables().Clear()ad.Fill(ds, )

    TUGAS

    Latihan di bawah ini berhubungan dengan Modul 2 soal nomor 3, dimana

    beberapa form pada menu tersebut dikerjakan pada latihan berikut ini serta

    menggunakan database MShop (database yang sama dengan latihan pada

    model connected/Modul 4).

    1. Buatlah form login untuk membatasi hak akses pengguna untuk masukke dalam aplikasi dengan menggunakan model disconnected ADO .NET.

    Tabel: Pengguna

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    34/70

    31 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L D I S C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Keterangan:

    a. Jika tombol Preview dengan ListBox diklik, maka tampilkan datapengguna yang telah disimpan ke tabel Pengguna pada sebuah

    ListBox.

    b. Jika tombol Preview dengan ListView diklik, maka tampilkan datapengguna yang telah disimpan ke tabel Pengguna pada sebuah

    ListView.

    c. Jika tombol Preview dengan DataGridView diklik, maka tampilkandata pengguna yang telah disimpan ke tabel Pengguna pada sebuahDataGridView.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    35/70

    32 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L D I S C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    2. Buatlah aplikasi untuk pengolahan data pemasok pada menu Masterdengan menggunakan model disconnected ADO .NET.

    Tabel: Pemasok

    Keterangan:

    Jika tombol Browse () pada Kode Pemasok diklik, maka tampilkan data

    pemasok yang telah disimpan ke tabel Pemasok pada sebuah

    DataGridView.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    36/70

    33 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L D I S C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    3. Buatlah aplikasi untuk pengolahan data pembelian pada menu Transaksidengan menggunakan model disconnected ADO .NET.

    Tabel: Header_Pembelian

    Tabel: Detail_Pembelian

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    37/70

    34 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L D I S C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Keterangan:

    Jika tombol Browse () pada Kode Faktur diklik, maka tampilkan data

    faktur pembelian yang telah disimpan ke tabel Pembelian pada sebuah

    DataGridView.

    Jika tombol Browse () pada Kode Pemasok diklik, maka tampilkan data

    pemasok yang telah disimpan ke tabel Pemasok pada sebuah

    DataGridView.

    Jika tombol Browse () pada Kode Barang diklik, maka tampilkan data

    barang yang telah disimpan ke tabel Barang pada sebuah DataGridView.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    38/70

    35 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L D I S C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    4. Buatlah aplikasi untuk pengolahan data retur pembelian pada menuTransaksi dengan menggunakan model disconnected ADO .NET.

    Tabel: Header_Retur_Pembelian

    Tabel: Detail_Retur_Pembelian

    Keterangan:

    Jika tombol Browse () pada Kode Retur diklik, maka tampilkan data

    retur pembelian yang telah disimpan ke tabel Retur Pembelian pada

    sebuah DataGridView.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    39/70

    36 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T

    ( M O D E L D I S C O N N E C T E D )

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Jika tombol Browse () pada Kode Faktur diklik, maka tampilkan data

    faktur pembelian yang telah disimpan ke tabel Pembelian pada sebuah

    DataGridView.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    40/70

    MODUL6

    S I S T E M I N F O R M A S I | S T M I K M I K R O S K I L

    PEMBUATAN LAPORAN DATABASE

    Setelah mempelajari dan mempraktikkan Modul 6, mahasiswa diharapkan dapat:

    Memahami pembuatan laporan database dengan menggunakan Crystal Report Membuat laporan database dengan sumber data Microsoft SQL Server

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    41/70

    38 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    aporan (report) merupakan output dari program berupa informasi

    yang dibutuhkan untuk menjalankan bisnis. Visual Basic .NET

    menyediakan Business Objects Crystal Report untuk menyediakan

    kepada developer cara yang cepat dan produktif untuk membuat dan

    mengintegrasikan laporan berkualitas ke dalam aplikasi. Beberapa fitur

    kunci dari Crystal Report adalah sebagai berikut:

    1. Design-Time Preview untuk menampilkan data read-only dari datasource langsung ataupun dari sumber data yang lain seperti DataSet.

    2. CrystalReportParts Viewer menampilkan informasi strategis sepertisummary atau grafik.

    3. Hierarchical Field Support mendukung hierarchical field seperti UserDefined Types (UDT) dan XML field. Hierarchical field dapat

    dikelompokkan untuk membuat struktur pengelompokkan dinamis

    dalam laporan.

    Membuat Laporan Dengan Crystal Report

    erikut ini dijelaskan langkah-langkah untuk membuat laporan dengan

    Crystal Report menggunakan bahasa pemrograman Microsoft Visual

    Basic 2012.

    Latihan

    Menambahkan Sebuah Form Untuk Crystal Report Viewer

    ambahkan sebuah Windows Form, kemudian pada bagian ToolBox,

    klik di bagian Reporting dan pilih Crystal Report Viewer untuk

    ditambahkan pada form.

    Gambar 6.1| Pemilihan Project Baru

    Dalam sebuah project hanya menggunakan satu buah form Crystal Report

    Viewer dalam menampilkan lebih dari satu laporan.

    Catatan:

    L

    B

    T

    1

    2

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    42/70

    39 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Membuat DataSet

    ebelum membuat Crystal Report, langkah yang dibutuhkan adalah

    merancang DataSet. Langkah untuk membuat DataSet adalah sebagai

    berikut:

    1. Pilih menu Project|Add Windows Form..., atau klik kanan pada NamaProject|Add New Item, atau tekan Ctrl + Shift + A pada keyboard.

    Gambar 6.2| Penambahan Form Melalui Menu Project

    Gambar 6.3| Penambahan Form Dengan Klik Kanan Pada Nama Project

    2. Akan ditampilkan kotak dialog Add New Item MyProject. Pilih templateDataSet. Setelah itu, tekan tombol Add.

    S1

    2

    3 2

    1

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    43/70

    40 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 6.4| Pemilihan Item DataSet

    3. Setelah itu, akan muncul sebuah DataSet. Langkah selanjutnya adalahmembuat tabel dengan cara klik kanan dan pilih Add - DataTable.

    Gambar 6.5| Membuat Tabel Pada DataSet

    Gambar 6.6| DataTabel Pada DataSet

    1

    2

    1

    2

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    44/70

    41 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    4. Untuk mengganti nama DataTable, klik sekali pada bagian judulDataTable, kemudian ubah nama tabelnya, misalkan diubah menjadi

    Barang.

    Gambar 6.7| Mengubah Nama DataTable

    5. Langkah selanjutnya adalah membuat kolom/field dari tabel. Klik kananpada DataTable, kemudian pilih Add - Column atau dengan cara

    menekan Ctrl + L. Isi kolom/field disesuaikan dengan kolom/field tabel

    yang ada di database.

    Gambar 6.8| Membuat Kolom/Field Pada DataTable

    1

    1

    2

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    45/70

    42 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 6.9| Kolom/Field Pada DataTable

    6. Langkah terakhir adalah mengatur primary key dari DataTable. Klikkanan pada DataColumn, kemudian pilih Add - Key.

    Gambar 6.10| Mengatur Primary Key Pada DataTable

    7. Akan muncul sebuah kotak dialog Unique Constraint. Centangkolom/field yang menjadi kunci. Pada tabel Barang yang dipraktikkan,

    yang menjadi kunci adalah kode_barang, sehingga yang dicentangadalah kolom/field kode_barang. Tekan tombol OK.

    1

    2

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    46/70

    43 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 6.11| Membuat Primary Key

    8. Selanjutnya, ubah tipe data setiap field, yaitu dengan cara mengklikpada salah satu field, kemudian di jendela Properties, ubah DataType

    yang dicocokkan dengan tipe data yang dibuat pada tabel database.

    Pada latihan ini, ubah DataType kode_barang dan nama_barang menjadiSystem.Stringm, DataType harga menjadi System.Int64, dan DataType

    stok menjadi System.In16.

    Gambar 6.12| Mengubah Tipe Data

    Dalam sebuah project hanya menggunakan sebuah DataSet untuk membuat

    lebih dari satu tabel.

    Catatan:

    Merancang Laporan Dengan Crystal Report

    etelah menyelesaikan tahapan di atas, maka langkah selanjutnya

    adalah merancang laporan dengan menggunakan Crystal Report.

    Untuk dapat mercancang Crystal Report, terlebih dahulu harus meng-

    install SAP Crystal Reports (misalnya versi CRforVS_13_0_5).

    Laporan yang akan dirancang sebagai latihan adalah laporan data barang,

    dimana laporan ini berhubungan dengan tugas praktik Modul 2 soal nomor3. Langkah-langkah pengerjaannya adalah sebagai berikut:

    S

    1

    2

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    47/70

    44 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    1. Pilih menu Project|Add Windows Form..., atau klik kanan pada NamaProject|Add New Item, atau tekan Ctrl + Shift + A pada keyboard.

    Gambar 6.13| Penambahan Form Melalui Menu Project

    Gambar 6.14| Penambahan Form Dengan Klik Kanan Pada Nama Project

    2. Pada kotak dialog Add New Item MyProject yang muncul, pilihCommon Items di bagian Reporting, kemudian pilih template Crystal

    Reports. Setelah itu, tekan tombol Add.

    Gambar 6.15| Pemilihan Item Crystal Report

    12

    3 2

    1

    1

    2

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    48/70

    45 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    3. Pada kotak dialog Crystal Reports Gallery, pilih As a Blank Report. Tekantombol OK.

    Gambar 6.16| Pilihan Pada Kotak Dialog Crystal Reports Gallery

    Gambar 6.17| Tampilan Halaman Crystal Report

    4. Langkah selanjutnya adalah merancang laporan. Untuk membuat judullaporan, klik kanan dan pilih Insert - Text Object. Judul laporanditempatkan pada Section 1 (Report Header) dengan cara mengklik

    sekali di bagian Section 1, sehingga Text Object untuk judul berada di

    Section 1. Ketikkan judul laporannya, yaitu Laporan Barang. Untuk

    mengubahnya, klik kanan pada Text Object judul, kemudian pilih Edit

    Text Object.

    1

    2

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    49/70

    46 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 6.18| Menambahkan Text Object

    Klik kanan pada Text Object, kemudian pilih Format Object untuk

    melakukan format pada Text Object. Misalnya, untuk mengubah jenis

    tulisan, style, ukuran, warna, dan effect dilakukan dengan cara memilih

    menu Font. Untuk mengatur Border pada Text Object, pilih menu

    Border. Untuk mengatur perataan tulisan pada Text Object, pilih menu

    Paragraph.

    Gambar 6.19| Membuka Kotak Dialog Format Object

    Gambar 6.20| Kotak Dialog Format Object

    12

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    50/70

    47 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    5. Untuk menambahkan tanggal cetak, caranya klik kanan dan pilih Insert -Special Field - Print Date. Untuk menambahkan jam cetak, caranya klik

    kanan dan pilih Insert - Special Field - Print Time. Print Date dan Print

    Time ditempatkan di Section 1. Untuk memformat print date dan print

    time, klik kanan pada objek yang akan diformat, kemudian pilih Format

    Object.

    Gambar 6.21| Menambahkan Print Date

    Gambar 6.22| Menambahkan Print Time

    6. Langkah selanjutnya adalah mengambil tabel yang telah dikerjakan padaDataSet dengan cara mengklik kanan pada Database Fields - Database

    Expert.

    1

    2

    3

    1

    2

    3

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    51/70

    48 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 6.23| Membuka Database Expert

    7. Pada kotak dialog Database Expert yang muncul, pilih Project Data ADO .NET DataSets. Setelah itu, pilih tabel yang ingin dibuat laporannya.Pada latihan ini, pilih tabel Barang. Pindahkan tabel yang diinginkan

    untuk dibuat laporannya ke sebelah kanan dengan mengklik Button >.

    Kemudian tekan tombol OK.

    Gambar 6.24| Memilih Tabel Yang Diinginkan Untuk Dibuat Laporan

    8. Klik simbol + pada Database Fields. Klik juga simbol + pada tabel Barang.Field-field yang terdapat pada tabel Barang akan ditampilkan.

    1

    2

    3

    4

    5

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    52/70

    49 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 6.25| Menampilkan Field-Field Pada Tabel Barang

    9. Untuk menambahkan field dari tabel Barang ke laporan, caranya adalahdengan mengklik field yang diinginkan dari jendela Field Explorer,

    kemudian drag ke bagian laporan pada Section 3.

    Gambar 6.26| Menambahkan Field-Field Dari Tabel Barang

    10.Untuk membuat garis, lakukan klik kanan dan pilih Insert - Line. Klik dandrag untuk membuat garis.

    Gambar 6.27| Membuat Garis

    1

    2

    1

    2

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    53/70

    50 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 6.28| Tampilan Laporan Barang Dengan Garis

    11.Selanjutnya, untuk menghitung total barang dilakukan dengan cara klikkanan dan pilih Insert Summary....

    Gambar 6.29| Menghitung Total Barang

    12.Setelah kotak dialog Insert Summary tampil, untuk mendapatkan totalbarang, pada bagian Choose the field to summarize: pilih

    Barang.kode_barang (karena menghitung total barang berdasarkan fieldkode_barang) dan pada bagian Calculate this summary: pilih Count

    (untuk menghitung berapa jumlah barang yang tertera). Selanjutnya

    tekan tombol OK. Letakkan di sebelah tulisan Total Barang: pada Section

    4.

    1

    2

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    54/70

    51 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 6.30| Insert Summary Total Barang

    13.Selanjutnya, untuk menghitung jumlah stok dilakukan dengan cara klikkanan dan pilih Insert - Summary seperti pada gambar 6.29. Setelah

    tampil kotak dialog Insert Summary, untuk mendapatkan jumlah stok,

    pada bagian Choose the field to summarize: pilih Barang.stok (karena

    menghitung jumlah stok berdasarkan field stok) dan pada bagian

    Calculate this summary : pilih Sum (menjumlahkan). Kemudian tekan

    tombol OK. Letakkan di sebelah tulisan Jumlah Stok: pada Section 4.

    Gambar 6.31| Insert Summary Jumlah Stok

    14.Untuk menambah nomor halaman pada laporan, klik kanan dan pilihInsert - Special Field - Page N of M atau klik kanan dan pilih Insert -

    Special Field - Page Number. Misalkan pada latihan ini dipilih model

    Page N of M dan ditempatkan pada Section 5.

    1

    2

    1

    2

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    55/70

    52 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 6.32| Menambah Halaman

    Gambar 6.33| Tampilan Laporan di Crystal Report

    Menambahkan Coding Untuk Menampilkan Laporan Dengan Crystal

    Report

    erikutnya adalah tahapan coding. Untuk tugas praktik Modul 2 soal

    nomor 3, pada menu Laporan - Laporan data barang, tambahkan

    sebuah form baru, misalnya diberi nama FrmLapBarang. Pada saat

    submenu Laporan data barang diklik, tampilkan FrmLapBarang

    (FrmLapBarang.Show()). Tampilan untuk FrmLapBarang adalah sebagai

    berikut.

    B

    1

    2

    3

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    56/70

    53 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 6.34| Tampilan FrmLapBarang

    Coding pada FrmLapBarang adalah sebagai berikut.ImportsSystem.Data.SqlClient

    PublicClassFrmLapBarang

    Dimcon AsSqlConnectionDimcmd AsSqlCommand

    DimadBarang AsSqlDataAdapter

    DimdsMShop AsDataSet

    PrivateSubFrmLapBarang_Load(sender AsObject, e AsEventArgs) Handles

    MyBase.Load

    con = NewSqlConnection("Data source=localhost; Initial catalog=MShop;Integrated Security=true")

    con.Open()

    cmd = NewSqlCommand("Select * from Barang", con)adBarang = NewSqlDataAdapter(cmd)

    dsMShop = NewDataSetadBarang.Fill(dsMShop, "Barang")

    con.Close()

    Dimrow AsDataRowForEachrow IndsMShop.Tables("Barang").Rows

    cboDari.Items.Add(row(0))

    cboSampai.Items.Add(row(0))Next

    EndSub

    PrivateSubbtnLapSeluruhBarang_Click(sender AsObject, e AsEventArgs)

    HandlesbtnLapSeluruhBarang.Click

    Dimcr AsNewCrystalReport1Dimpreview AsNewfrmCrystalReportViewer

    cr.SetDataSource(dsMShop)

    preview.CrystalReportViewer1.ReportSource = crpreview.WindowState = FormWindowState.Maximized

    preview.Show()EndSub

    PrivateSubbtnLaporan_Click(sender AsObject, e AsEventArgs) HandlesbtnLaporan.Click

    Dimcr AsNewCrystalReport1

    Dimpreview AsNewfrmCrystalReportViewer

    btnLapSeluruhBarang

    cboDari

    cboSampai

    btnLaporan

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    57/70

    54 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    cr.SetDataSource(dsMShop)

    preview.CrystalReportViewer1.ReportSource = cr

    preview.CrystalReportViewer1.SelectionFormula = "{Barang.kode_barang} >='"& cboDari.Text.Trim & "' And {Barang.kode_barang}

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    58/70

    55 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 6.38| Isi File App.config

    3. Tambahkan "useLegacyV2RuntimeActivationPolicy="True"" di bagian startup.

    Gambar 6.39| Isi File App.config Setelah Penambahan Atribut

    Setelah dilakukan konfigurasi pada file App.config, jalankan kembali Project

    MShop. Tampilan laporan pada saat tombol btnLapSeluruhBarang diklik

    adalah sebagai berikut.

    1

    1

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    59/70

    56 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 6.40| Tampilan Laporan Seluruh Data Barang

    Tampilan laporan pada saat ComboBox cboDari diisi dengan B001,

    ComboBox cboSampai diisi dengan B010, dan tombol btnLaporan diklik

    adalah sebagai berikut.

    Gambar 6.41 | Tampilan Laporan Barang berdasarkan Kode Barang

    TUGAS

    Tugas praktik pada modul ini berhubungan dengan Modul 2 soal nomor 3,

    dimana laporan pada menu-menu tersebut dikerjakan pada latihan berikut

    ini.

    1. Ikuti petunjuk dosen praktik untuk membuat laporan dari databaseMShop untuk Laporan Pelanggan.

    2. Ikuti petunjuk dosen praktik untuk membuat laporan dari databaseMShop untuk Laporan Pemasok.

    3. Ikuti petunjuk dosen praktik untuk membuat laporan dari databaseMShop untuk Laporan Penjualan.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    60/70

    57 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    4. Ikuti petunjuk dosen praktik untuk membuat laporan dari databaseMShop untuk Laporan Retur Penjualan.

    5. Ikuti petunjuk dosen praktik untuk membuat laporan dari databaseMShop untuk Laporan Pembelian.

    6. Ikuti petunjuk dosen praktik untuk membuat laporan dari databaseMShop untuk Laporan Retur Pembelian.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    61/70

    MODUL7

    S I S T E M I N F O R M A S I | S T M I K M I K R O S K I L

    LINQ TO SQL

    Setelah mempelajari dan mempraktikkan Modul 7, mahasiswa diharapkan dapat:

    Memahami penggunaan LINQ pada SQL Menggunakan LINQ pada SQL

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    62/70

    59 | M O D U L 7 : L I N Q T O S Q L

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    INQ singkatan dari Language Integrated Query, dimana LINQ sendiri

    merupakan fasilitas baru yang disertakan pada .NET Framework 3.5

    dan telah terintegrasi jika meng-install Microsoft Visual Studio.

    Perbedaan antara LINQ dengan query yang digunakan selama ini dalam

    database adalah selain bisa melakukan query pada database, LINQ juga

    dapat melakukan query terhadap data dalam format XML, entities, object,

    dan sebagainya.

    Teknologi LINQ bertujuan untuk membuat standarisasi dan memudahkan

    pattern proses pengaksesan data. Dengan adanya standar pengaksesandata, para programmer dapat melakukan cara yang sama dalam memproses

    beberapa format data (misalnya database, XML, ataupun collection data

    object).

    Berikut ini merupakan diagram arsitektur LINQ secara global dalam proses

    pengaksesan data.

    Gambar 7.1| Arsitektur LINQ

    Secara global, LINQ dapat digunakan untuk melakukan query ke dalam

    beberapa format data berikut:

    LINQ to Object LINQ to XML LINQ to Database (SQL dan Dataset) LINQ to EntityLINQ to SQL

    ntuk memudahkan dalam menggunakan LINQ to SQL di Visual Studio

    2012, telah disediakan designer untuk membuat mapping objek-

    objek terhadap tabel-tabel yang terdapat di dalam sebuah database.

    Hal yang perlu dilakukan untuk melakukan design LINQ to SQL terhadap

    objek-objek database yaitu dengan melakukan drag dan drop objek-objek

    database seperti tabel, stored procedure, view, dan function ke dalam O/R

    (Object/Relational) designer atau LINQ to SQL designer. Untuk penggunaan

    LINQ to SQL pada Visual Studio 2012 telah ditambahkan sebuah template

    item yang bernama LINQ to SQL Classes.

    Template item ini akan membantu pada saat membuat sebuah class object

    dari struktur database yang ada, nantinya akan disebut sebagai

    L

    U

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    63/70

    60 | M O D U L 7 : L I N Q T O S Q L

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    DataContext, kemudian dari DataContext ini dapat digunakan untuk

    pembacaan dengan LINQ.

    Pertama, buatlah sebuah project Visual Basic baru, kemudian tambahkan

    item baru dengan klik kanan pada project dalam Solution Explorer dan pilih

    ADD - New Items....

    Gambar 7.2| Menambah Item Baru Ke Dalam Project

    Dari template item yang tersedia, pilih LINQ to SQL Classes, kemudian klik

    tombol Add.

    Gambar 7.3 | Menambah LINQ to SQL Classes

    Setelah proses ini akan didapatkan sebuah file baru ber-extension .dbml

    pada project, dan juga akan muncul sebuah layar kerja Object Relational

    baru seperti gambar berikut ini.

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    64/70

    61 | M O D U L 7 : L I N Q T O S Q L

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 7.4| Layar Kerja O/R Designer

    Pada bagian kiri dapat diletakkan tabel database ke dalamnya, dan secaraotomatis Visual Studio 2012 akan membuatkan sebuah class objek baru dari

    tabel yang diletakkan di dalamnya, berikut dengan gambar visualisasinya.

    Pada bagian kanan dapat diletakkan method atau stored procedure yang

    terdapat dalam database, dimana nantinya stored procedure tersebut dapat

    dipanggil sebagai sebuah method dalam proses penggunaannya.

    Latihan

    ada contoh ini akan digunakan tabel Barang yang terdapat di dalam

    database MShop yang telah dibuat sebelumnya di SQL Server 2012.

    Untuk membuat class objek baru, hanya perlu membuka panel SQL Server

    Object Explorer yang telah terkoneksi dengan database dan kemudian

    melakukan drag and drop tabel yang akan dibuat Class Object-nya dari SQL

    Server Object Explorer ke dalam area Object Relational. Hasil proses drag

    and drop akan terbentuk class object baru yang bernama DataContext.

    Gambar 7.5| Membuat Class Object Dengan O/R Designer

    P

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    65/70

    62 | M O D U L 7 : L I N Q T O S Q L

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Struktur class object DataContext yang terbentuk pada area Object

    Relational akan benar-benar sama dengan struktur database yang di-drag

    dari SQL Server Object Explorer.

    Setelah DataContext terbentuk, class tersebut dapat digunakan pada form

    kerja. Untuk itu, buka Code Editor untuk Form1 yang akan digunakan,

    kemudian tambahkan deklarasi variabel baru yang mengambil struktur dari

    DataContext pada bagian atas script setelah baris Public Class Form1.Dimds AsNewDataClasses1DataContext

    Catatan

    Kemudian, tambahkan sebuah DataGridView baru ke dalam form yang akan

    digunakan dan tambahkan script proses berikut ke dalam event Load dari

    Form1.

    : Nama DataContext dapat dilihat pada Properties Window sepertipada gambar di atas.

    1. Subtampil()2. DimLINQ = Frombrg Inds.Barangs _3. Selectbrg4.5. Dimkolom(3) AsString6. DGVBarang.Rows.Clear()7. ForEachbrg InLINQ8. kolom(0) = brg.Kode_Barang9. kolom(1) = brg.Nama_Barang10. kolom(2) = FormatCurrency(brg.Harga)11. kolom(3) = CInt(brg.Jumlah)12. DGVBarang.Rows.Add(kolom)13. Next14. EndSub15.16. PrivateSubForm1_Load(sender AsObject, e AsEventArgs) HandlesMyBase.Load17. tampil()18. EndSubBaris 2 dan 3 : Merupakan proses LINQ yang mengambil data barang

    dalam DataContext barang yang telah dibentuksebelumnya pada file DataClasses1DataContext.dbml.

    Baris 5 s.d. 13 : Setelah selesai melakukan proses query, selanjutnya

    proses akan menampilkan data yang didapatkan ke

    dalam sebuah DataGridView.

    Hasil dari perintah yang telah dijalankan di atas dapat dilihat pada gambar

    berikut ini.

    Gambar 7.6| Hasil Menampilkan Data Barang Menggunakan LINQ

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    66/70

    63 | M O D U L 7 : L I N Q T O S Q L

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Meng-insert Data

    ntuk menambah data baru ke database dari LINQ to SQL, terlebih

    dahulu harus dibuat instance objek dari class yang merupakan

    mapping terhadap tabel yang akan digunakan. Misalnya, akan

    ditambahkan data barang baru, sehingga harus dibuat terlebih dahulu

    instance dari class barang tersebut.

    LINQ to SQL menyediakan method InsertOnSubmit() untuk menambahkan

    data baru lewat class yang bersangkutan dengan melakukan passing input

    parameter berupa instance class yang telah dibuat sebelumnya. Untuk

    membuat perubahan tersebut, persistent LINQ to SQL menyediakan method

    SubmitChanges() dari instance class DataContext untuk semua perubahan,

    baik Insert, Update, maupun Delete.

    Berikut ini adalah contoh kode program untuk menambahkan data barang

    baru ke tabel barang.1. PrivateSubBtnTambah_Click(sender AsObject, e AsEventArgs) Handles

    BtnTambah.Click

    2. Dimbrg AsNewBarang3.4.

    brg.Kode_Barang = TxtKode.Text5. brg.Nama_Barang = TxtNama.Text

    6. brg.Harga = TxtHarga.Text7. brg.Jumlah = TxtJumlah.Text8.9. ds.Barangs.InsertOnSubmit(brg)10. ds.SubmitChanges()11.12. tampil()13. EndSub

    Gambar 7.7| Meng-input Data Barang

    U

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    67/70

    64 | M O D U L 7 : L I N Q T O S Q L

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 7.8| Hasil Proses Meng-input Data Barang

    Meng-update Data

    ara yang digunakan untuk melakukan update data agak berbeda jika

    dibandingkan dengan meng-insert data baru. Untuk melakukan

    update harus terlebih dahulu mencari data yang sesuai dengan

    kriteria yang diinginkan. Apabila data yang diinginkan merupakan data

    tunggal, maka dapat dicari dengan perintah Single. Setelah itu, ubah value

    dari properti yang ingin diubah nilainya.

    Berikut ini adalah contoh penggunaan method update data terhadap data

    barang dengan kriteria spesifik sehingga hanya data tunggal yang

    dikembalikan.1. PrivateSubDGVBarang_MouseClick(sender AsObject, e AsMouseEventArgs)

    HandlesDGVBarang.MouseClick2. TxtKode.Text = DGVBarang.CurrentRow.Cells(0).Value3. TxtNama.Text = DGVBarang.CurrentRow.Cells(1).Value4. TxtHarga.Text = DGVBarang.CurrentRow.Cells(2).Value5. TxtJumlah.Text = DGVBarang.CurrentRow.Cells(3).Value6. EndSub7.8. PrivateSubBtnUbah_Click(sender AsObject, e AsEventArgs) Handles

    BtnUbah.Click

    9. DimLINQ = (Frombrg Inds.Barangs _10.

    Wherebrg.Kode_Barang = TxtKode.Text11. Selectbrg).Single

    12.13. LINQ.Nama_Barang = TxtNama.Text14. LINQ.Harga = TxtHarga.Text15. LINQ.Jumlah = TxtJumlah.Text16. ds.SubmitChanges()17. tampil()18. EndSub

    C

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    68/70

    65 | M O D U L 7 : L I N Q T O S Q L

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    Gambar 7.9| Mengubah Data Barang

    Gambar 7.10| Hasil Proses Mengubah Data Barang

    Men-delete Data

    ntuk menghapus data telah disediakan method DeleteOnSubmit dari

    class yang digunakan, sedangkan untuk membuat perubahannya

    persistent digunakan method SubmitChanges() dari instance

    DataContext class. Hal ini mirip dengan teknik untuk melakukan insert data

    baru.

    Berikut ini adalah contoh simulasi untuk melakukan delete data terhadap

    tabel barang.1. PrivateSubBtnHapus_Click(sender AsObject, e AsEventArgs) Handles

    BtnHapus.Click

    2. DimLINQ = (Frombrg Inds.Barangs _3. Wherebrg.Kode_Barang = TxtKode.Text4. Selectbrg).Single5.

    U

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    69/70

    66 | M O D U L 7 : L I N Q T O S Q L

    G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I

    6. ds.Barangs.DeleteOnSubmit(LINQ)7. ds.SubmitChanges()8.9. tampil()10. EndSub

    Gambar 7.11| Menghapus Data Barang

    Gambar 7.12| Hasil Proses Menghapus Data Barang

    TUGAS

    1. Dengan menggunakan tabel pemasok pada database MShop, buatlahsebuah aplikasi pengolahan data pemasok dengan

    mengimplementasikan LINQ to SQL (duplikasi form pemasok pada

    Modul 4).

    2. Dengan menggunakan tabel pelanggan pada database MShop, buatlahsebuah aplikasi pengolahan data pelanggan dengan

  • 7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)

    70/70

    67 | M O D U L 7 : L I N Q T O S Q L

    mengimplementasikan LINQ to SQL (duplikasi form pelanggan pada

    Modul 5).

    3. Dengan menggunakan tabel Header_Penjualan dan tabelDetail_Penjualan pada database MShop, buatlah sebuah aplikasi

    pengolahan data penjualan dengan mengimplementasikan LINQ to SQL

    (duplikasi form penjualan pada Modul 4).