FR-UBM-2.3.3.4/R0
MODUL
Periode Berlaku : Genap 2011/2012 Versi / Revisi : 1/0
TIB14 - Pemrograman Visual Basic
Oleh: L0110 - LUKMAN HAKIM
PROGRAM STUDI TEKNIK INFORMATIKA 2012
UNIVERSITAS BUNDA MULIA JL. Lodan Raya No. 2 Jakarta Utara 14430
LEMBAR PENGESAHAN
KMK
: TIB14
Mata Kuliah
: Pemrograman Visual Basic
Pembahasan
1.
Pengenalan Visual Basic.Net
2.
Bahasa Pemrograman VB.Net & Objek Oriented
3.
Desain Interface & Control Objek
4.
Pemrograman Database & Manipulasi Data
5.
Penggunaan Objek ADO.Net
6.
Menu & Crystal Raport
7.
Package Executable Aplikasi
Penyusun
: L0110 –Lukman Hakim
Periode Berlaku
: Genap 2011/2012
Jakarta,
_
Disusun oleh,
Disetujui oleh,
L0110 - Lukman Hakim, ST., M.Kom
L0436 - Bam bang Dwi Wijanarko, S.Si.,M.Kom
Dosen Teknik Informatika
Program Studi Teknik Informatika
Disetujui oleh,
Disahkan oleh,
L0604 – Julia Loisa, S.Kom., MM
Kandi SS Dahlan, MBA, Phd_
Manager Pengembangan Pembelajaran
Plt.Wakil Rektor Bidang Akademik
Modul Praktikum Pemrograman VB.Net Ȃ Lukman Hakim
Page i
KATA PENGANTAR
Dalam perkembangan dunia programmer dan industri informasi perkembangan bahasa pemrograman sangat cepat dan banyaknya permintaan dari kalangan pengusahan untuk migrasi dari bahasa
sebelum
ke bahasa
Visual Basic.Net.
Visual Basic.Net
memiliki hampir semua kebutuhan visual dan mendukung beberapa software DBMS seperti Mysql, Oracle, Postgris, Infomix, dll. Dengan kelengkapan ini seorang programmer dapat lebih leluasa berkreasi menghasilkan berbagai macam program aplikasi untuk diterapkan pada industri informasi saat ini. Modul Praktikum ini merupakan Buku latihan membuat Program dengan memanfaatkan berbagai macam fasilitas yang dimiliki dan komponen koneksi database serta bagaimana membuat laporan dengan Crystal Raport yang sudah dimiliki secara plug & Play. Modul ini mengambil dari berbagai sumber referensi sebagai bahan pembelajaran yang memberikan
kemudahan
mahasiswa
dalam mengerjakan
soal-soal yang akan
diberikan dosen. Permograman Visual Basic.Net dengan konsep Objek Oriented dapat digunakan untuk mendukung kebutuhan seiring perkembangan konsep pemrograman dari terstruktur dan berbasis
objek
oriented
yang
banyak
diterapkan
pada
industri
yang
menerapakan teknologi sistem informasi. Modul ini dilengkapi dengan contoh penulisan code program lebih sederhana dan mudah dipahami. Penulis berharap semoga modul ini banyak membantu mahasiswa dalam membuat program dan sebagai referensi. Penulisan menyadari masih banyak sekali dalam modul untuk dikembangkan secara lebih mudah untuk dipelajari, tetapi dari ini akan menjadi masukan untuk terus mengembangkan bahan ajar ini menjadi lebih baik lagi. Wasalam
Modul Praktikum Pemrograman VB.Net Ȃ Lukman Hakim
Page ii
DAFTAR ISI LEMBAR PENGESAHAN .............................................................................................. i KATA PENGANTAR..................................................................................................... ii DAFTAR ISI .................................................................................................................iii MODUL 1 ...................................................................................................................... 1 PENGENALAN VISUAL BASIC.NET DAN OPERATOR ........................................... 1 1.1. Teori/Konsep .................................................................................................... 1 1.1.1. Dot NET Framew....................................................................................... 1 1.1 .2. Proses Instalasi VB.NET............................................................................. 10 1.1.3. Sekilas tentang VB.Net ................................................................................ 10 1.1.4. Penggunaan Variabel ................................................................................... 11 1.1.5. Aksesibilitas variabel: .................................................................................. 15 1.2. contoh Soal-soal ................................................................................................. 17 1.3. Soal-soal Latihan................................................................................................ 19 MODUL 2 .................................................................................................................... 21 PENGENALAN OBJEK ORIENTED PADA VB.NET ................................................ 21 2.1. Teori/Konsep ...................................................................................................... 21 2.2. Latihan Soal ....................................................................................................... 26 2.3. Soal- Soal ........................................................................................................... 30 MODUL 3 .................................................................................................................... 34 DESAIN INTERFACE DAN CONTROL OBJEK ....................................................... 34 3.1. Teori/Konsep ...................................................................................................... 34 3.1.1. Antarmuka ................................................................................................... 34 3.1.2. Control Objek .............................................................................................. 35 3.2. Latihan Soal ....................................................................................................... 37 3.3. Soal- Soal ........................................................................................................... 42 MODUL 4 .................................................................................................................... 43 PEMROGRAMAN DATABASE DAN MANIPULASI................................................ 43 4.1. Teori/Konsep ...................................................................................................... 43 4.1.1. DBMS (Database Management System) ...................................................... 43 4.1.2. Instalasi MySQL.......................................................................................... 44 4.1.3. DASAR-DASAR MYSQL .......................................................................... 45 4.2. Latihan Soal ....................................................................................................... 47 4.3. Soal- Soal ........................................................................................................... 49 MODUL 5 .................................................................................................................... 51 PENGGUNAAN OBJEK ADO.NET ............................................................................ Modul Praktikum Pemrograman VB.Net Ȃ Page 4 Lukman Hakim
51 5.1. Teori/Konsep ...................................................................................................... 51 5.1.1. ADO. NET .................................................................................................. 51 5.1.2. Evolusi ADO.NET....................................................................................... 51 5.1.3. Mengapa ADO.NET? .................................................................................. 52 5.1.4. Arsitektur Data ADO.NET........................................................................... 53 5.1.5. Data Provider ............................................................................................... 53 5.1.6. Komponen kelas yang membentuk Penyedia data ........................................ 54 5.2. Contoh Latihan Soal ........................................................................................... 56
Modul Praktikum Pemrograman VB.Net Ȃ Lukman Hakim
Page 5
5.3. Soal- Soal ........................................................................................................... 69 MODUL 6 .................................................................................................................... 70 MENU DAN CRYSTAL REPORT............................................................................... 70 6.1. Teori/Konsep ...................................................................................................... 70 6.1.1. Crystal Report ................................................................................................. 70 6.2. Latihan Soal ....................................................................................................... 72 6.3. Soal- Soal ........................................................................................................... 83 MODUL 7 .................................................................................................................... 84 Package Execute Program ............................................................................................. 84 7.1. Teori/Konsep ...................................................................................................... 84 7.2. Latihan Soal ....................................................................................................... 85 7.3. Soal- Soal ........................................................................................................... 89 DAFTAR PUSTAKA ................................................................................................... 90
DAFTAR GAMBAR
Gambar 1.1. Aplikasi Visual Basic.Net ......................................................................... 11 Gambar 1.2. Form perhitungan dengan Label ................................................................ 14 Gambar 1.3. Code deklarasi pada VB.Net ..................................................................... 17 Gambar 1.4. Tampilan Form Konversi suhu .................................................................. 20 Gambar 2.1. Tampilan Form Penjualan Barang ............................................................. 27 Gambar 2.1. Tampilan Form Hitung Gaji ...................................................................... 30 Gambar 2.2. Tampilan Form Hitung Gaji yang simpan.................................................. 31 Gambar 2.4. Tampilan Form Kredit Kendaraan ............................................................. 33 Gambar 3.1. Kontrol Objek Property............................................................................. 37 Gambar 3.2. Tampilan Form konsep Inheritance ........................................................... 37 Gambar 3.3.Tampilan Aplikasi Bioskop ........................................................................ 42 Gambar 4.1 Instalasi Mysql pada folder ........................................................................ 44 Gambar 4.2. Tampilan aktif WinMysql ......................................................................... 45 Gambar 4.3. Tampilan layar pada prompt Mysql ........................................................... 46 Gambar 5.1. Arsitektur Data ADO.NET ........................................................................ 54 Gambar 5.2.Tampilan membuat Module ....................................................................... 56
MODUL 1 PENGENALAN VISUAL BASIC.NET DAN OPERATOR
Pertemuan
: 2,4
Peralatan & Perlengkapan
: VISUAL STUDIO 2005 VB.NET dan MySQL
Tujuan pembelajaran praktikum : ¾ Mahasiswa mampu menjelaskan kelebihan VB.Net dengan versi sebelumnya (C2) ¾ Mahasiswa mampu menggunakan variable local dan variabel public, variable tetap/konstanta (C3)
¾
Mahasiswa dapat menggunakan operator dan statemen pada pemrograman vb.net (C3)
1.1.
Teori/Konsep
1.1.1. Dot NET Framework Di luar beragamnya definisi .NET Framework, .NET Framework merupakan “Man Behind The Gun” dari VB.NET sehingga kita perlu megetahui jeroan dari teknologi yang ada di dalamnya. Microsoft .NET adalah software yang menghubungkan informasi, orang, system dan device! Perangkat yang menjangkau client, server dan tool pengembang. Microsoft .NET disusun oleh: x Dot NET Framework, digunakan untuk membangun dan menjalankan semua macam softwere termasuk aplikasi berbasis Web, aplikasi smart client, dan layanan web XML (Extensible Markup Language). Menyediakan
komponen
untuk berbagai data melalui Network menggunakan komponen platform protocol independent seperti XML, SOAP, dan HTTP.
Modul Praktikum Pemrograman VB.Net Ȃ Lukman Hakim
Page 8
x Tool – tool pengembang penyediaan IDE
seperti Microsoft VisualStudio .NET yang
(Integrated
pengembangan terintegrasi)
Development untuk
Enveronment!
memaksimalkan
lingkungan produktivitas
pengembangan menggunakan .NET Framework. x Serangkaian server termasuk Microsoft
Windows Servwr 2003, Microsoft
SQL Server dan Micosoft BizTalk Server yang terintegrasi, untuk menjalankan, mengoprasikan dan mengelola services Web dan aplikasi berbasis Web. x Softwere client seperti Windows XP, windows CE dan Windows Office XP yang membantu pengembangan untuk menyebarkan dan mengelola aplikasinya. .NET Platform merupakan satu set kumpulan teknologi yang memungkinkan teknologi
Internet
ditransformasikan
dengan skalabilitas
dan kompatibilitas
ke dalam tinggi.
platform Secara
distributed
teknikal,
computing
.NET Platform
menyediakan konsep pemrograman dengan library dan modul-modul baru yang konsisten, terlepas dari jenis bahasa pemrograman yang digunakan. .NET Platform menyediakan hal-hal berikut bagi para developer : 1) Language independent, dengan programming model yang konsisten di semua tier aplikasi yang dibangun. 2) Interoperability dan kompatibilitas antar aplikasi. 3) Kemudahan migrasi dari teknologi yang ada saat ini. 4) Dukungan penuh terhadap berbagai teknologi standar yang digunakan dalam
platform internet, antara lain HTTP, XML, SOAP dan HTML. Teknologi inti .NET secara umum terdiri dari 4 area pokok : 1) .NET Framework .NET Framework adalah teknologi inti yang menyediakan berbagai library untuk digunakan oleh aplikasi di atasnya. Komponen inti .NET Framework adalah Common
Language
environment
Runtime
(CLR)
yang
menyediakan
run time
untuk aplikasi yang dibangun menggunakan Visual Studio .NET, terlepas dari jenis bahasa pemrogramannya.
Dengan adanya CLR tersebut, programmer dapat menikmati consistent object model
dalam
mengakses
berbagai
komponen
library.
Dengan
demikian penggunaan bahasa pemrograman dalam dunia .NET adalah lebih ke masalah selera atau taste, dan bukan pada kelebihan maupun kekurangan masing-masing bahasa. Mengapa ? Karena semua bahasa pemrograman yang mensupport .NET mengakses library yang sama di dalam .NET Framework, dengan object model yang konsisten, dengan run time file yang sama. Bahasa adalah sekedar skin atau theme, bukan senjata sakti. Apakah .NET Framework? Dot
NET Framework
adalah
linkungan
untuk
membangun,
deploying
menyebarkan, dan menjalankan services Web dan aplikasi lainnya. Dot
NET
Framework
disusun
oleh
dua
komponen
utama,
yaitu
Common Language Runtime (runtime bahasa umum) dan .NET Framework Class Library (pustaka class .NET Framework. Definisi di atas FAQ(Frequently
saya
ambil
dari
penjelasan
Microsoft
dalam
Asked Questions) mengenai .NET Framework. Secara sederhana .NET Framework adlah platform tunggal dimana semua orang dapat platform tunggal dimana semua orang dapat mengembangkan aplikasi menggunakan suatu system yang mirip dengan JVM(Java Virtual Machine). Hanya berbeda dengan java, tidak ada penghalang dengan
bahasa
.NET sehingga
aplikasi dapat
dikembangkan
menggunakan bahasa:
VB, C++, C#, J# dan 20 bahasa-bahasa pemrograman lainnya yang kompatibel dengan .NET Framework. Tujuan dari .NET Framework adalah: x
Menyediakan lingkungan pemrograman berorientasi objek, apakah kode objek disimpan dan dijalankan secara lokal, dijalankan secara lokal tetapi disebarkan melalui internet atau dijalankan secara remote (dijalankan dari suatu tempat).
x
Menyediakan
lingkungan
untuk
menjalankan
suatu
kode
yang
meminimalkan konflik saat software deployment disebarkan dan versioning /tentang versi. x
Menyediakan
lingkungan
untuk
menjalakan
suatu
kode
yang
menjamin keamanan saat kode dijalankan, termasuk kode yang dibuat oleh pihak yang tidak diketahui atau pihak ketiga yang setengah dipercaya. x
Menyediakan
lingkungan
untuk
menjalankan
suatu
kode
yang
dapat mengeliminasi masalah performa dari lingkungan scripted dan interpreted. x
Membuat
pengembang
memiliki
pengalaman
yang
konsisten
dalam
berbagai tipe aplikasi berbasis Windows dan aplikasi berbasis Web. Definisi lainnya, .NET Framework bisa juga diartikan sebagai serangkaian teknologi yang : x
Mempersatukan aplikasi Web yang sekarang masi terisolasi.
x
Membuat informasi tersedia di setiap saat dan di setiap tempat.
x
Menyederhanakan pengembangan dan penyebaran aplikasi.
Common Language Runtime (CLR) Common language
runtime/CLR/runtime bahasa umum (runtime)
merupakan dasar dari .NET Framework. Runtime adalah engine yang menjalankan aplikasi >NET Framework. Runtime menyediakan sejumlah service/layanan, seperti berikut
ini: x Mengelola kode (loading dan menjalankan) x Isolasi memori aplikasi x Verifikasi untuk kemanan type
x Konversi dari IL (Intermediate Language) ke kode native/asli. x Akses metadata (informasi yang dipercaya) x Mengelola memori pada objek managed/terkelola x Mengelola keamanan kode akses x Menangani eksepsi (kejadian yang tidak diharapkan yang muncul saat kode dieksekusi) termasuk eksepsi lintas bahasa x Inperoperation di antara managed code, objek COM(Component Object Model) x Otomatisasi layout objek x Mendukung layanan pengembang (profiling, debugging dan sebagainya) Konsep pengelolaan kode merupakan prinsip dari runtime. Kode yang menjadi target dari runtime disebut managed code/kode terkelola, sedangkan kode yang tidak menjadi target runtime disebut unmanaged code/kode yang tidak terkelola. VB.NET akan menjalankan
managed code apabila dalam system computer
tersebut terdapat CLR atau dengan kata lain pemakai tidak dapat menjalankan aplikasi VB.NET tanpa menginstall CLR terlebih dahulu. CLR “mengetahui” apa yang akan dilakukan pada data khusus (disebut metadata) yang berada dalam aplikasi.
Metadata berisi peta dimana menemukan
class,
kapan memanggil class dan kapan mengatur batas isi runtime, menghasilkan native code/kode
asli,
menggunakan metode
mengatur
keamanan,
dan memanggil
menentukan
class
class jika dibutuhkan.
manayang CLR juga
menentukan kapan suatu objek digunakan dan dilepas. Semua itu disebut managed code. 2) .NET Building Block Services Building block merupakan sekumpulan services yang bersifat programmable, yang
dapat
diakses
secara
offline
maupun
online.
Service
tersebut
merupakan modul-modul yang terdapat di suatu komputer, server dalam jaringan, maupun di suatu server di internet. Service
ini merupakan
aplikasi bersifat
suatu
terdistribusi
idealisasi di masa depan, dimana dengan
modul-modul
yang
sebuah
tersimpan
di
berbagai tempat,
tetapi dapat diintegrasikan membentuk suatu aplikasi. Konsep ini merupakan arah pengembangan subscription based software, yang saat ini mulai banyak berkembang dan dikenal sebagai Application Service Provider. Service tersebut dapat diakses oleh berbagai platform, asalkan platform tersebut mensupport protokol SOAP, yang merupakan protokol standar dalam mengakses web service. Peranan XML sebagai media definisi data menjadi sangat penting dalam hal ini, dan XML juga menjadi pusat perubahan besar dalam platform .NET. Dalam pelajaran selanjutnya, anda akan melihat bahwa semua data dalam .NET selalu direpresentasikan XML.
dalam bentuk
3) Visual Studio .NET Visual Studio
.NET menyediakan
tools bagi para developer
untuk
membangun aplikasi yang berjalan di .Net Framework. VS.Net membawa perubahan besar dalam dituntut
gaya
pemrograman,
karena
setiap
programmer
untuk memahami .NET object model dan Object Oriented
Programming
dengan baik, jika tidak ingin menghasilkan aplikasi dengan
performa rendah. VS.Net juga semakin mempertipis jarak antara Windows Programmer dengan Web Programmer. Dunia scripting yang akrab bagi programmer web akan sulit ditemukan dalam .NET, karena pemrograman web sudah bersifat full object oriented, dengan fasilitas event driven programming sebagaimana layaknya windows mudah
programming.
Pemrograman
web
menjadi
lebih
dan menyenangkan bagi para programmer windows, sedangkan anda
para veteran scripting language sudah saatnya untuk beralih ke ASP.NET, yang dapat diprogram menggunakan VB, C#, C++ maupun Phyton dan COBOL sekalipun. Microsoft masih menyediakan Jscript.NET bagi anda para pecandu JavaScript dan JScript, sedangkan versi .Net dari VBScript belum diketahui apakah akan disediakan atau tidak. Para veteran VB.Script disarankan untuk mempelajari VB, sehingga dapat menggunakan VB.Net untuk membangun aplikasi web. Bahasa pemrograman yang terdapat di
VS.NET adalah VB.NET, C#, C++ .NET, J#, dan Jscript .NET. Dalam masa mendatang akan terus ditambah berbagai bahasa pemrograman lain.
4) .Net Enterprise Server Bagian ini merupakan sekumpulan server based technology yang digunakan untuk mendukung teknologi .NET, yang mencakup sistem operasi, database, messaging, maupun manajemen e-commerce.
Teknologi yang disediakan antara lain
adalah Windows 2000 Server, SQL Server, Exchange, ISA Server dan BiZTalk Server. Ada beberapa alasan yang menguntungkan bila anda mempelajari .NET : Multi Language Arsitektur .NET bersifat terbuka, sehingga memungkinkan berbagai bahasa pemrograman mengakses CLR dengan mulus. Banyak kalangan menyebut .NET sebagai “open source” versi Microsoft. Saat ini .NET dapat diprogram menggunakan Visual Basic.NET, C++.NET, Visual C#, Jscript, dan J#. Berbagai third Party yang dapat digunakan adalah COBOL, Eiffel, Smalltalk, Perl, Phyton, ML, Pascal, dan Delphi. Para veteran Pascal mungkin tidak pernah bermimpi membuat aplikasi web dengan bahasa “kuno” tersebut, tetapi kehadiran .Net Framework merealisasikan hal tersebut. Bagan berikut menjelaskan kedudukan bahasa pemrograman terhadap .NET Framework dengan CLR sebagai intinya.
Sekali lagi, semua bahasa tersebut mengakses object model yang sama dalam .NET, sehingga bagi para petualang tersedia kemungkinan untuk berpindah dari satu bahasa ke bahasa lain dalam satu proyek aplikasi yang sama. .Net menyediakan
integrasi
bahasa pemrograman dalam satu peroyek aplikasi. Hal ini membuka kemungkinan
kerjasama tim
yang lebih baik, walaupun dalam tim tersebut masing-masing
memiliki keahlian
bahasa pemrograman yang berbeda. No DLL Hell Anda tahu DLL ? Tentu saja, kalo tidak tentu anda bukan seorang programmer. DLL merupakan blok atau modul-modul obyek dari sebuah aplikasi. Peranannya sangat penting, sekaligus memusingkan. Sering terjadi dalam dunia windows, kompatibilitas dan registrasi DLL di masing-masing Workstation menjadi isu besar dalam deployment aplikasi. Strong Typing dan Type Safety Bila anda pernah menggunakan VB6, pendefinisian tipe data bukanlah sesuatu yang mutlak wajib dilakukan karena VB akan mendefinisikan primitive data type, suatu type default untuk masing-masing angka atau karakter yang terdapat dalam variabel. Hal ini sebenarnya kurang baik karena dapat memboroskan memory dan merupakan sumber bug. .NET menyediakan strong typing, dimana setiap variabel wajib didefiniskan scope dan tipe datanya. Demikian pula dengan fasilitas type safety yang sangat
bermanfaat untuk membantu dalam coding pemrograman, terutama fasilitas
intellisense yang membimbing
pemrogram dalam menentukan property,
method,
maupun function yang akan dipakai. Cross Platform Possibility .Net menyimpan dan mengirim data dalam bentuk XML yang merupakan format data universal di internet. Dengan demikian integrasi data antar platform lebih mudah dilakukan, selama platform tersebut mendukung XML. Representasi konsep ini adalah dataset, suatu cache data yang berbentuk XML dan dapat diakses dengan mudah. Sebuah data dapat diparsing antar tier aplikasi, baik dari database, middle tier, maupun aplikasi klien dalam format XML. Manipulasi format data dalam bentuk XML, .txt, maupun .rtf merupakan sesuatu yang menantang para programmer untuk membuat aplikasi lintas platform.
Code Once, More Application Interface pemrograman bersifat
konsisten, dengan object model yang sama pada
setiap bahasa yang digunakan. Suatu object baik berbentuk class, library, maupun web services dapat diakses dengan mudah oleh berbagai aplikasi windows maupun web. Hal ini lebih menghemat
waktu para developer,
dimana sebuah object dapat dibuat
sekaligus untuk aplikasi Web, Windows, dan bahkan console application berbasis DOS. Untuk Apa Belajar VB.NET ? Mengapa VB ? Jawabannya tergantung anda tentunya. VB6 merupakan bahasa terpopuler saat ini, dan para pengguna VB klasik akan lebih mudah berpindah ke VB .NET daripada memilih C++ .NET atau C#. Bila anda memiliki pengalaman dalam Java, maka C# lebih cocok bagi anda. Perpindahan ke VB.NET dapat diandaikan sebagai camp militer untuk para veteran VB6. Mitos selama ini menyebutkan bahwa VB6 merupakan bahasa yang “amburadul”, tidak jelas struktur obyeknya, mendukung Object Oriented tetapi banci, kompatibilitas kurang, dan lain sebagainya. Semua hal tersebut Cepat Mahir Visual Basic .NET M. Choirul Amri 6terjadi sebagai boomerang dari VB6 yang terlalu longgar dalam kaidah pemrograman,
sehingga tidak sulit menemukan programmer VB6 yang belum
pernah membuat property dalam class modul selama karirnya. Di sisi lain kelonggaran tersebut telah menumbuhkan VB sebagai bahasa yg mudah dipelajari, dan paling populer saat ini. Sebenarnya selama seorang programmer konsisten dan disiplin dengan kaidah konsep COM dan OOP, mitos-mitos
di atas tidak akan terjadi. VB.NET tampil
dengan wajah yang sama sekali berbeda dari VB6 dalam hal kaidah pemrograman, terutama dengan fasilitas strong typing dan code safety. Di samping itu, sifat .NET Framework VB.NET
yang dirancang
dengan
nuansa
OOP juga harus diikuti,
dapat dikatakan sebagi full OOP programming.
Hal tersebut
sehingga mungkin
bukanlah barang baru bagi anda pemakai Java atau C, tetapi merupakan hal baru bagi kebanyakan programmer VB6. Dengan demikian, mempelajari VB.NET berarti meningkatkan skill veteran VB klasik, sejajar pemrogram berbasis OOP lainnya.
1.1 .2. Proses Instalasi VB.NET Untuk menginstall Microsoft VB.NET sama seperti menginstal aplikasi produk Miscrosoft lain pada umumnya. Dalam hal ini tinggal hidupkan komputer, kemudian masukkan CD instalan VB.NET kedalam CD-ROM. Kemudian tunggu hingga proses selesai. Untuk menjalankan Microsoft VB.NET diperlukan perangkat keras yang sesuai dengan kebutuhan. Namun apabila koputer sudah terpasang Microsoft Windows 2000 atau yang lebih tinggi misalnya Windows XP, maka sudah dipastikan bahwa Anda bisa menjalankan Microsoft VB.NET. Untuk menginstal VB.NET Anda harus mempersiapkan
perangkat
keras dan
perangkat lunak sebagai berikut : x Komputer dengan spesifikasi minimal Pentium IV 1,6 GHz x Memori atau RAM yang disesuaikan dengan sistem operasi yang digunakan. x Monitor Super VGS (1024x768) atau yang lebih tinggi. x Hardisk minimal 10 GB. x Mouse x Sistem Operasi Windows 7 atau yang lebih tinggi.
1.1.3. Sekilas tentang VB.Net Hampir sebagian besar pengguna komputer di dunia sudah mengenal produk-produk Microsoft, salah satunya adalah Microsoft Visual Basic.Net. VB.Net merupakan pengembangan dari Microsoft Visual Basic versi sebelumnya. Membangun
suatu
program aplikasi
dengan
vB.Net
lebih
mudah
dan
menyenangkan, karena selain dilengkapi fitur-fitur baru juga tersedia bermacambermacam toolbars, komponen, class, object dan sebagainya. Jika Anda sudah terbiasa
dengan Visual Basic kemungkinan
besar untuk
mengalami kesulitan, karena hampir
semua
migrasi ke VB.Net
komponen
tidak akan
di Visual Basic
versi
sebelumnya masih bisa digunakan. Sebagai contoh untuk membuat suatu Project dengan VB.Net Anda tinggal klik Menu
File, kemudian pilih Project dan akan keluar kotak dialog. Setelah itu pilih Windows Application, kemudian beri nama Project tersebut.
Toolbox : Objekobjek yang digunaka n untuk mendesai n
Solution Explorer : Untuk melihat struktur project yang sedang dikerjakan
Form : Tempat untuk mendesain tampilan
Properties : Properti dari setiap objek yang ada diform, Tampilan objek dapat diubah disini
Gambar 1.1. Aplikasi Visual Basic.Net
1.1.4. Penggunaan Variabel Untuk dapat memakai sebuah variabel maka Kita harus mendeklarasikannya terlebih dahulu. Dalam bahasa VB6 Kita dapat saja menggunakan sebuah variabel tanpa membuat deklarasi meskipun hal tersebut tidak direkomendasikan dan sangat tidak efisien bagi sebuah aplikasi.
Aturan Penamaan Variabel Pemberian nama variable memiliki batasan-batasan sbb: x
Harus dimulai dengan karakter alfabetis
x
Hanya dapat mengandung karakter alfabetis,angka,dan underscore(_)
x
Tidak boleh menggunakan spasi
x
Tidak melebihi 255 karakter
x
Harus unik dalam sebuah ruang lingkup yang sama
x
Tidak case sensitive, artinya huruf besar (capital) dengan huruf kecil sama saja.
Deklarasi Variabel Tujuan pendeklarasian variabel adalah agar komputer mengetahui dengan pasti type data yang akan digunakan dalam variabel tersebut serta scopenya. Dengan demikian komputer dapat langsung mengeksekusi sebuah variabel tanpa memeriksa lagi type datanya. Sebuah variabel harus memiliki nama, type data, scope, dan value. Berikut adalah contoh deklarasi variabel : Dim sNama As String Dim dGajiPokok As Decimal Dim dTunjangan As Decimal Dim dGajiTotal As Decimal Dim dPajak As Decimal sNama = "Anto" dGajiPokok = 600000 dTunjangan = 150000 Dideklarasikan 5 variabel masing-masing dengan type string (1 variabel) dan decimal (4 variabel).
Selanjutnya pada tiap variabel tersebut masing-masing diisikan nilainya. Pengisian nilai variabel tersebut harus sesuai dengan type data yang telah ditetapkan. Misalnya saja Kita tidak dapat mengisi variabel dGajiPokok dengan “Anto”, karena variabel tersebut telah didefinisikan sebagai decimal yang harus berisi angka dan bukan string. Kita juga dapat mendeklarasikan variabel dan langsung memberikan nilainya pada saat yang sama dalam satu baris kode. Teknik ini merupakan feature baru VB .NET. Dim dGajiPokok As Decimal = 600000 Selain itu Kita juga dapat mendeklarasikan beberapa variabel sekaligus dalam satu baris dan mendefinisikan type datanya secara bersamaan. Dim sUmur, Single Ketiga
sTinggi,
variabe
sGaji
tersebut
As
memiliki
type data sama
yaitu
Single.
Cara
ini
memudahkan pendeklarasian variabel daripada harus mengulang deklarasi dalam tiga baris. Melakukan Perhitungan Selanjutnya
Kita dapat
melakukan
perhitungan tertentu dengan
menggunakan
variabel tersebut sebagai komponen formula sebagai berikut : dGajiTotal = dGajiPokok + dTunjangan dPajak = 0.1 * dGajiTotal Segala Sesuatu adalah OBYEK ! Salah satu mantra baru dalam .NET programming adalah cara kita memKitang terhadap obyek. Segala sesuatu adalah obyek, begitulah pedoman yang harus Kita pegang. Dalam teknik VB6 Kita mengenal konsep Object Oriented Programming (OOP) melalui Class dan konsep COM. Namun dalam .NET segala sesuatu merupakan obyek, termasuk variabel juga merupakan obyek. Karenanya suatu varabel juga memiliki berbagai sifat yang diwujudkan dalam property, event, dan function. Sifat-sifat tersebut dapat diwariskan ke obyek lain, atau suatu variabel dapat mewarisi sifat dari obyek di atasnya.
Sebagai contoh Kita dapat melakukan perhitungan besarnya dGajiTotal dan dPajak di atas dengan memanfaatkan fasilitas OOP yang terdapat dalam variabel tersebut. Gunakan keyword untuk melakukan perhitungan sebagai berikut: dGajiTotal = dGajiTotal.Add(dGajiPokok, dTunjangan) dPajak = dGajiTotal)
dGajiTotal.Multiply(0.1,
Kita menggunakan function Add dan Multiply sebagai pengganti perhitungan sebelumnya. Argumen yang digunakan adalah dGajiPokok, dTunjangan dan dGajiTotal. Menampilkan Hasil Perhitungan Hasil perhitungan tersebut ditampilkan ke dalam dua buah label sebagai berikut : Label1.Text = "Gaji dGajiTotal.ToString
Total
=
"
&
Label2.Text = "Pajak Kita = " & dPajak.ToString Keyword ToString yang mengikuti setiap variabel bertujuan untuk mengkonversikan hasil perhitungan yang semula bertype decimal menjadi string. Kita akan melihat bahwa perhitungan yang Kita lakukan dengan cara pertama akan sama hasilnya dengan menggunakan cara kedua yang memanfaatkan dalam sebuah variabel.
Gambar 1.2. Form perhitungan dengan Label
built in function
1.1.5. Aksesibilitas variabel: Aksesibilitas variable adalah suatu keadaan dimana variable tersebut dapat diakses. Beberapa kata kunci yang digunakan untuk mendeklarasikan variable (ataupun elemenelemen lain seperti kelas, fungsi, atau prosedur) berdasarkan aksesibilitas adalah sebagai berikut: 1. Public Variabel yang dideklarasikan dengan kata kunci Public memiliki ruang lingkup global yang juga berarti dapat diakses dibagian manapun dalam suatu project, Bahkan project lain yang memiliki referensi terhadap project trersebut. 2. Protected Kata kunci Protected mendeklarasikan elemen yang hanya dapat diakses dari sebuah kelas atau kelas turunannya. Kata kunci ini hanya digunakan pada level kelas dan hanya untuk mendeklarasikan anggota dari sebuah kelas. 3. Friend Kata kunci Friend mirip dengan Public, hanya saja ruang lingkupnya hanya dalam sebuah project. Project yang lain tidak dapat mengaksesnya. 4. Protected Friend Kata kunci Protected Friend merupakan gabungan dari Protected dan Friend, yang berarti mendeklarasikan sebuah elemen untuk sebuah kelas atau turunannya dan hanya dapat diakses dari dalam sebuah project saja.
5. Private Kata kunci Private digunakan untuk mendeklarasikan elemen yang hanya dapat diakses dari dalam modul, kelas, atau struktur dimana elemen tersebut dideklarasikan. KAta kunci ini tidak dapat digunakan dari dalam sebuah prosedur. Ruang Lingkup dan Type Variabel Sebuah variabel memiliki ruang lingkup (scope) tertentu, tergantung dengan cara bagaimana variabel tersebut dideklarasikan. Terdapat 3 macam scope suatu varibel : 1. Procedure level / local scope
2. Module level 3. Variabel Public Masing-masing scope tersebut dapat dijelaskan sebagai berikut :
Procedure level / local scope Apabila suatu variabel dideklarasikan dalam suatu prosedur tertentu, maka variabel tersebut hanya dapat diakses dan berlaku untuk prosedur tersebut saja. Perhatikan contoh kode berikut : Private
Sub
Button3_Click(ByVal
sender
As
System.Object,
ByVal
e
As
System.EventArgs) Handles Button3.Click Dim sPesan As String sPesan = "tes Variabel local" MessageBox.Show (sPesan, "Variabel local", MessageBoxButtons.OK, _messageBoxIcon.Information) End Sub Variabel sPesan dideklarasikan di dalam prosedur Button3_Click sehingga hanya berlaku di dalam prosedur tersebut saja. sPesan tidak dapat diakses dari luar Button3_Click. Apabila Kita menggunakan variabel yang hanya dipakai dalam suatu prosedur tertentu maka sebaiknya Kita menggunakan jenis variabel ini. Pengertian prosedur di sini menyangkut function, event, dan properti, sehingga tidak terbatas pada event saja sebagaimana dicontohkan di atas. Karena
variabel ini scope nya lokal untuk prosedur
variabel tersebut
hanya
berlaku
di dalam
prosedur
tertentu saja maka nama dimana
variabel
tersebut
dideklarasikan. Misalkan Kita memiliki function bernama A dan memiliki variabel bernama sNama. Kemudian Kita memiliki sebuah event B dan memiliki variabel bernama sama yaitu sNama. Kedua variabel tersebut tidak akan saling berhubungan dan
tetap
terpisah nilainya karena dideklarasikan secara lokal di dalam prosedur
masing-masing.
Module Level Kita dapat membuat suatu variabel yang dapat diakes dari prosedur manapun dalam suatu file. Misalkan Kita ingin mendeklarasikan suatu string koneksi yang akan dipakai terus menerus di dalam suatu module. Maka Kita harus mendeklarasikan variabel tersebut di bagian deklarasi module sebagaimana contoh berikut :
Gambar 1.3. Code deklarasi pada VB.Net
1.2. contoh Soal-soal Buatlah aplikasi dengan konsep objek oriented pada suatu bangunan lingkaran dan tabung dimana masing –masing dimensi dapat diinput dan memiliki konstanta nilai seperti pi=3,14. Pertanyaaan buatlah : a. Buatlah class lingkaran dari bangun lingkaran b. Buatlah class tabung diambil dari class lingkaran.
Jawaban Public Class lingkaran Public jari_jari As Single Const phi = 3.14 Public Function luas_lingkaran() As Double Return phi * jari_jari * jari_jari End Function Public Function keliling_lingkaran() As Double Return 2 * phi * jari_jari End Function End Class Public Class tabung Public tinggi As Single Public jari_jari As Single Const phi = 3.14 Public Function volume_tabung() As Double Return phi * jari_jari * jari_jari * tinggi End Function End Class Button Hitung Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim objlingkaran As New lingkaran With objlingkaran .jari_jari = TextBox1.Text Label8.Text = .luas_lingkaran() Label9.Text = .keliling_lingkaran() End With
End Sub Button Hitung Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim objtabung As New tabung With objtabung .tinggi = TextBox4.Text .jari_jari = TextBox6.Text Label10.Text = .volume_tabung End With End Sub Button Exit Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Me.Close()
1.3. Soal-soal Latihan Minggu 1 Buatlah aplikasi menggunakan VB.net untuk mencari beberapa bangunan salah satu adalah Luas segitiga seperti dalam form dibawah ini, dan buatlah beberapa luas dan volumen dari suatu bangunan seperti : a. Trafesium b. carilah volumen dari kubus dimana didalam terdapat tabung dengan nilai masing- masing variabel dapat diinput melalui aplikasi
Minggu 2 Buatlah aplikasi konversi suhu dari Celcius ke Fahrenheit, Celcius ke Reamur dengan ketentuan sebagai berikut : Fahrenheit =1.8 * Celcius + 32 Celcius = (Fahrenheit
32) / 1,8
Reamur = Celcius × 0,8 Contoh form aplikasi konversi suhu.
Gambar 1.4. Tampilan Form Konversi suhu
MODUL 2 PENGENALAN OBJEK ORIENTED PADA VB.NET
Pertemuan
: 6,8
Peralatan & Perlengkapan
: VISUAL STUDIO 2005 VB.NET dan MySQL
Tujuan pembelajaran praktikum
:
¾ Mahasiswa dapat menggunakan konsep pemrograman objek oriented pada VB.Net yaitu pembuatan class, method/function, dan property (C3) ¾
Mahasiswa pada VB.Net
dapat
menggunakan
yaitu penggunaan
konsep
pemrograman
inheritance,
multiple
objek
oriented
inheritance,
dan
polymorphism (C3)
2.1. Teori/Konsep 2.1.1. Untuk Apa Belajar VB.NET ? Mengapa VB ? Jawabannya tergantung anda tentunya. VB6 merupakan bahasa terpopuler saat ini, dan para pengguna VB klasik akan lebih mudah berpindah ke VB .NET daripada memilih C++ .NET atau C#. Bila anda memiliki pengalaman dalam Java, maka C# lebih cocok bagi anda.
Perpindahan ke VB.NET dapat diandaikan sebagai camp militer untuk para veteran VB6. Mitos selama ini menyebutkan bahwa VB6 merupakan bahasa yang “amburadul”, tidak jelas struktur obyeknya, mendukung Object Oriented tetapi banci, kompatibilitas kurang, dan lain sebagainya. Semua hal tersebut Cepat Mahir Visual Basic .NET M. Choirul
Amri 6terjadi sebagai boomerang dari VB6 yang terlalu longgar dalam kaidah pemrograman,
sehingga tidak sulit menemukan programmer VB6 yang belum
pernah membuat property dalam class modul selama karirnya. Di sisi lain kelonggaran tersebut telah menumbuhkan VB sebagai bahasa yg mudah dipelajari, dan paling populer saat ini. Sebenarnya selama seorang programmer konsisten dan disiplin dengan kaidah konsep COM dan OOP, mitos-mitos
di atas tidak akan terjadi. VB.NET tampil
dengan wajah yang sama sekali berbeda dari VB6 dalam hal kaidah pemrograman, terutama dengan fasilitas strong typing dan code safety. Di samping itu, sifat .NET Framework VB.NET
yang dirancang
dengan
nuansa
OOP juga harus diikuti,
dapat dikatakan sebagi full OOP programming.
sehingga
Hal tersebut
mungkin
bukanlah barang baru bagi anda pemakai Java atau C, tetapi merupakan hal baru bagi kebanyakan programmer VB6. Dengan demikian, mempelajari VB.NET berarti meningkatkan skill veteran VB klasik, sejajar pemrogram berbasis OOP lainnya. 2.1.2.OOA(ObjectOrientedAnalysis) Analisis Berorientasi Objek / Object Oriented Analysis (OOA) dimulai dengan menyatakan suatu masalah, analisis membuat model situasi dari dunia nyata. Model analisis adalah abstraksi yang ringkas dan tepat apa yang harus dilakukan oleh sistem, dan bagaimana melakukannya. Empat kesulitan dalam pengembangan sistem adalah: mamahami problem domain, Komunikasi kepada pihak yang berkaitan, perubahan, dan reuse ( penggunaan kembali).
2.1.3. OOD Oriented Design sistem
(Object
(OOD)
Oriented
merupakan
Design)
tahapan
Desain
lanjutan
Berorientasi setelah
OOA
Objek
/
Object
dimana
tujuan
diorganisasikan kedalam sub system berdasar struktur analisis dan arsitektur yang dibutuhkan. Fokus dari desain objek adalah perencanaan struktur data dan algoritma yang diperlukan untuk implementasi setiap class. Objek domain aplikasi dan objek domain komputer dijelaskan dengan menggunakan konsep dan notasi berorientasi objek yang sama.
2.1.4.
OOP
(Object
Oriented
Programming)
/
Implementasi
Class, objek dan realisasinya di kembagkan dalam tahap pembuatan desain objek yang akhirnya diterjemahkan kedalam bahasa pemrograman, basis data dan implementasi perangkatkeras. Dalam konsep pemrogramam berorientasi objek ada 4 hal yang utama yaitu: 1. Abstraksi (Abstraction). 2. Pewarisan (Inheritance). 3. Pembungkusan (Encapsulation). 4.BanyakBentuk(Polymorphism).
Ada dua metode dalam mendesain dan membuat konstruksi perangkat lunak yaitu pemrograman berorientasi
terstruktur objek
dan
pemrograman
(Inggris:
berorientasi
object-oriented
objek.
programming
Pemrograman disingkat
OOP)
merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman
terstruktur.
Setiap objek dapat menerima
pesan,
memproses data, dan mengirim pesan ke objek lainnya Model data berorientasi objek dikatakan dapat memberi
fleksibilitas
yang
lebih, kemudahan
mengubah
program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa pemula dibanding dengan pendekatan
OOP
lebih
mudah
dipelajari
bagi
sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat. Salah satu keunggulan OOP dibanding dengan terstruktur adalah OOP memungkinkan untuk mebuat modul yang tidak perlu berubah ketika suatu tipe objek yang baru ditambahkan. Pengembang dapat membuat suatu objek baru yang mewarisi beberapa fitur dari objek yang sudah ada. Hal ini membuat
program yang
berorientasi
objek
mudahdimodifikasi. Suatu bahasa pemrograman dikatakan mendukung secara penuh OOP jika memiliki semuafiturberikut: Class — kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi- definisi data dan fungsi-fungsi
yang menunjuk
pada berbagai macam
perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali
oleh
seorang non-programmer
sekalipun
terkait
dengan
domain
permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana
kode
tersebut
digunakan
jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait
dengan
aspek-aspek
dalam masalah yang akan diselesaikan melalui
program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
Objek - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program computer, objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputerberorientasiobjek. Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses
olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahankeadaannya,danberkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan
untuk
mengembangkan
sebuah
pengabstrakan.
Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya,
bila sebuah
menggerakan sayapnya sama,
burung
menerima
dan terbang.
pesan
Bila seekor
"gerak cepat",
singa
menerima
dia akan
pesan yang
dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah
pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah
variable
tungal
dalam
program
dapat
memegang
berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsikelas-pertama. Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan tersebut.
mengetahui
dan
tergantung
kepada
representasi
dalam
objek
Inheritas- Mengatur polimorfisme dan enskapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objekobjek ini dapat
membagi
mengimplementasi ulang memiliki
(dan
perilaku
memperluas) tersebut
perilaku
(bahasa
mereka
berbasis-objek
tanpa
haru
tidak
selalu
inheritas.) Dengan menggunakan OOP maka dalam melakukan pemecahan
suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut(terstruktur) tetapi objek- objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki
manager,
sekretaris,
memiliki
sebuah
departemen
yang
petugas administrasi data dan lainnya. Misal manager
tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya.
Pada kasus tersebut
seorang manager tidak harus mengetahui
bagaimana cara mengambil data tersebut tetapi manager bias mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi
antar
objek
-objek
yang
ada
karena setiap objek memiliki job
descriptionnya sendiri. 2.2. Latihan Soal Dalam aplikasi ini menggunakan konsep class dan method (function) sehingga memudahkan
dalam
pemrograman
objek
untuk menghitung transaksi penjualan produk.
oriented.
Aplikasi
ini
digunakan
Gambar 2.1. Tampilan Form Penjualan Barang
Contoh Koding : Public Class market Public Kode As String = 5 Public Nama As String = 10 Public Satuan As Decimal Public Jumlah As Integer Public Uang As Decimal Public Property mKode() As String Get Return Kode End Get Set(ByVal value As String) Kode = value End Set End Property Public Property mNama() As String Get Return Nama End Get Set(ByVal value As String) Nama = value End Set End Property
Public Property mSatuan() As Decimal Get Return Satuan End Get Set(ByVal value As Decimal) Satuan = value End Set End Property Public Property mJumlah() As Integer Get Return Jumlah End Get Set(ByVal value As Integer) Jumlah = value End Set End Property Public Function Harga(ByVal mSatuan As Decimal, ByVal mJumlah As Integer) As Double Return Satuan * Jumlah End Function Public Function Promo(ByVal Harga As Double) As Double If Harga >= 2000000 Then Return 0.06 * mSatuan * mJumlah ElseIf Harga >= 1500000 Then Return 0.05 * mSatuan * mJumlah ElseIf Harga >= 1000000 Then Return 0.03 * mSatuan * mJumlah ElseIf Harga >= 500000 Then Return 0.02 * mSatuan * mJumlah Else
Return 0
End If End Function Public Function Total(ByVal Harga As Double, ByVal Promo As Double) As Double Return Harga - Promo End Function End Class
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim objmarket As New market With objmarket .Kode = TextBox1.Text .Nama = TextBox2.Text .Satuan = TextBox3.Text .Jumlah = TextBox4.Text .Uang = TextBox5.Text Label11.Text = TextBox5.Text - Label10.Text End With End Sub
Private Sub TextBox4_TextChanged(ByVal
sender As System.Object,
ByVal e As System.EventArgs) Handles TextBox4.TextChanged If TextBox3.Text * TextBox4.Text >= 2000000 Then Label9.Text = 0.06 * TextBox3.Text * TextBox4.Text Label10.Text = TextBox3.Text * TextBox4.Text - Label9.Text ElseIf TextBox3.Text * TextBox4.Text >= 1500000 Then Label9.Text = 0.05 * TextBox3.Text * TextBox4.Text Label10.Text = TextBox3.Text * TextBox4.Text - Label9.Text ElseIf TextBox3.Text * TextBox4.Text >= 1000000 Then Label9.Text = 0.03 * TextBox3.Text * TextBox4.Text Label10.Text = TextBox3.Text * TextBox4.Text - Label9.Text ElseIf TextBox3.Text * TextBox4.Text >= 500000 Then Label9.Text = 0.02 * TextBox3.Text * TextBox4.Text Label10.Text = TextBox3.Text * TextBox4.Text - Label9.Text Else
Label9.Text = 0 Label10.Text = TextBox3.Text * TextBox4.Text - Label9.Text
End If End Sub End Class
2.3. Soal- Soal 1. Buatlah program tentang kepegawaian
untuk mencari
beberapa
perhitungan
seperti PPH, Total Gaji, gaji bersih. Untuk perhitungan gaji sangat dipengaruhi oleh Tunjangan istri dan anak serta status karyawan tersebut. Ketentuan : Jika Status Nikah maka Tunjangan Istri 250.000 bila tidak =0 Jika memiliki anak maka tunjangan setiap anak=200.000 dan maks anak 3 Tunjangan anak=200.000 *jumlah anak PPH=5% dari Gajipokok TotalGaji=Gajipokok+tunjanganIstri +tunjangananak GajiBersih=TotalGaji-pph
Gambar 2.1. Tampilan Form Hitung Gaji 2. Buatlah program kepegawaian dengan mengacu pada latihan sebelumnya dimana untuk ketentuan sama dan tambahkan bonus 0.5 dari gajipokok dan gunakan sub untuk menyimpan setiap file pegawai tersebut dalam format.txt
Gambar 2.2. Tampilan Form Hitung Gaji yang simpan Contoh code untuk menyimpan data dalam bentuk format.txt pada notepad Private Sub AmbilData(ByVal sk As Constructor) sk.NIM = TextBox1.Text sk.Nama = TextBox2.Text sk.MataKuliah = TextBox3.Text sk.Nilai = TextBox4.Text End Sub Private Sub SimpanData(ByVal sk As Constructor) Dim OutputFile As System.IO.StreamWriter OutputFile = System.IO.File.AppendText("DataMahasiswa.txt") OutputFile.WriteLine("NIM
: " & sk.NIM)
OutputFile.WriteLine("Nama
: " & sk.Nama)
OutputFile.WriteLine("Mata
Kuliah : " & sk.MataKuliah)
OutputFile.WriteLine("Nilai
: " & sk.Nilai)
OutputFile.Close() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim objConstructor As New Constructor With objConstructor 'Panggil sub rutin ambil data' AmbilData(objConstructor)
TextBox5.Text = .GradeNilai() SimpanData(objConstructor) MessageBox.Show("Data disimpan", "Konfirmasi") BersihkanLayar() End With End Sub
3. Buatlah program dengan konsep multiple Inheritance dimana class induk memiliki anak kelas yaitu lebih dari satu class. Ketentuan : Jenis Mobil :(Xenia Xi, Li, Avanza S, Avanza M, dst) Merek Mobil (Daihatshu, Toyota, Mazda, BMW dst) Perhitungan Kredit mengacu pada DP dan jumlah angsuran (tenor)
Tampilan Aplikasi Dealer mobil untuk pembayaran Tunai:
Gambar 2.3 Tampilan Form Tunai kendaraan 4. Buatlah program dengan menggunakan konsep Multiple Inheritance mengacu pada latihan sebelumnya Tampilan Aplikasi Dealer Mobil untuk Kredit :
Gambar 2.4. Tampilan Form Kredit Kendaraan
MODUL 3 DESAIN INTERFACE DAN CONTROL OBJEK
Pertemuan
: 10,12
Peralatan & Perlengkapan
: VISUAL STUDIO 2005 VB.NET dan MySQL
Tujuan pembelajaran praktikum
:
¾
Mahasiswa dapat menggunakan Single dan Multiple Document Interface untuk merancang tampilan layar (C3)
¾
Mahasiswa dapat menggunakan control objek event listener, method, propertis dalam pemrogramam vb.net (C3)
3.1. Teori/Konsep 3.1.1. Antarmuka Pengertian antarmuka ( interface) adalah salah satu layanan yang disediakan sistem operasi sebagai sarana interaksi antara pengguna dengan sistem operasi. Antarmuka adalah komponen sistem operasi yang bersentuhan langsung dengan pengguna. Terdapat dua jenis antarmuka, yaitu Command Line Interface(CLI) dan Graphical User Interface(GUI). Dua tipe interface sistem operasi : 1. Command Line Interface (CLI) adalah berbasis teks, yang jika melakukan perintah harus dengan mengetikan perintah. 2.Graphical User Interface (GUI) adalah berbasis grafis, dgn memiliki tampilan berupa menu dan icon-2 CLI adalah tipe antarmuka dimana pengguna berinteraksi dengan sistem operasi melalui text-terminal. tersebut
Pengguna
menjalankan
perintah dan program di sistem operasi
dengan cara mengetikkan baris-baris tertentu.Meskipun konsepnya sama, tiap-tiap sistem operasi memiliki nama atau istilah yang berbeda untuk CLI-nya. UNIX memberi nama CLI-nya sebagai bash, ash, ksh, dan lain sebagainya. Microsoft Disk Operating System (MS-DOS) memberi nama command.com atau Command Prompt. Sedangkan pada Windows Vista, Microsoft menamakannya
PowerShell. Pengguna Linux
mengenal CLI pada Linux sebagai terminal, sedangkan pada Apple namanya adalah commandshell. 3.1.2. Objek Salah
Control
satu kontrol yang paling
populer
di Visual Basic
Tombol
Control
(sebelumnya Komando Pengendalian). Mereka adalah kontrol yang kita klik dan lepaskan untuk melakukan beberapa tindakan. Tombol yang digunakan sebagian besar untuk penanganan peristiwa dalam kode, misalnya, untuk mengirimkan data yang dimasukkan dalam form ke database dan sebagainya. Acara default Button adalah peristiwa Klik Tombol dan kelas didasarkan pada kelas ButtonBase yang didasarkan pada kelas kontrol. Kontrol Obyek Properti Property Properti
Description Deskripsi
AllowDrop
Indicates if the form can accept data that the user drags and drops into it Mengindikasikan jika bentuk dapat menerima data bahwa pengguna menyeret dan tetes k e dalamnya
Anchor
Gets/Sets which edges of the control are anchored Mendapatkan / Set yang tepi kontrol yang berlabuh
BackColor
Gets/Sets the background color for the form Mendapat / Mengatur warna latar belakang untuk formulir
BackgroundImage
Get/Sets the background image in the form Dapatkan / Mengatur gambar latar belakang dalam bentuk
Bottom
Gets the distance bewteen the bottom of the control and the top of its container client area Mendapatkan jarak bewteen bawah kontrol dan bagian atas wilayah klien kontainer
Bounds
Gets/Sets the controls bou nding rectangle Mendapat / Mengatur kontrol persegi panjang melompat-lompat
CanFocus
Returns a value specifying if the control can recieve focu s Mengembalikan nilai menentukan jika kontrol dapat menerima fokus
CanSelect
Returns a value specifying if the control can be selected Mengembalikan nilai menentukan jika kontrol dapat dipilih
Capture
Gets/Sets a valu e specifying if the control has captured the mouse Mendapat / Set nilai menentukan jika kontrol telah menangkap mouse
CausesValidation
Gets/Sets a value specfying if the control causes validation for all
controls that require validation Mendapat / Set nilai specfying jika kontrol penyebab validasi untuk semua kontrol yang membutu hkan validasi ContainsFocu s
Returns a value specifying if the control has the input focus Mengembalikan nilai menentukan jika kontrol memiliki fokus input
ContextMenu
Gets/Sets the shortcut menu for the control Mendapat / Mengatur menu shortcut untuk mengendalikan
Controls
Gets/Sets the collection of controls contained within the control Mendapat / Mengatur koleksi kontrol yang terkandung dalam kontrol
Cursor
Gets/Sets the cursor to be displayed when the user moves the mouse over the form Mendapat / Mengatur kursor yang akan ditampilkan ketika pengguna menggerakkan mouse di atas formulir
DataBindings
Gets the data bindings for the control Gets binding data untuk kontrol
Dock
Gets/Sets which edge of the parent a control is docked to Mendapatkan / Set yang tepi kontrol orangtua merapat ke
Enabled
Gets/Sets a value indicating if the control is enabled Mendapat / Set nilai menunjukkan jika kontrol ini diaktifkan
Focu sed
Returns a value specifying if the control has input focus Mengembalikan nilai menentukan jika kontrol memiliki fokus masukan
Font
Gets/Sets the font for the control Mendapat / Mengatur font untuk kontrol
ForeColor
Gets/Sets the foreground color of the control Mendapat / Mengatur warna latar depan dari k ontrol
HasChildren
Returns a value specifying if the control contains child controls Mengembalikan nilai menentukan jika kontrol berisi kontrol anak
Height
Gets/Sets the height of the control Mendapat / Mengatur tinggi dari kontrol
Left
Gets/Sets the x-coordinates of a control's left edge in pixels Mendapat / Mengatur x-koordinat ujung kiri kontrol dalam piksel
Location
Gets/Sets the co-ordinates of the u pper-left corner of the control Mendapat / Mengatur koordinat sudut kiri atas k ontrol
Name
Gets/Sets name for the control Mendapatkan / Mengatur nama u ntuk kontrol
Parent
Gets/Sets the control's parent container Mendapat / Mengatur wadah induk kontrol yang
Right
Returns the distance between the right edge of the control and the left edge of it's container Mengembalikan jarak antara tepi kanan dari k ontrol dan tepi kiri dari wadah itu
RightToLeft
Gets/Sets the value indicating if the alignment of the control's elements is reversed to support right-to-left fonts Mendapat / Set nilai menunjukkan jika keselarasan elemen kontrol adalah terbalik untuk mendukung hakke-kiri font
Size
Gets/Sets size of the control in pixels Mendapat / Mengatur ukuran dari kontrol dalam pik sel
TabIndex
Gets/Sets the tab order of this control in its container Mendapat / Mengatur urutan tab kontrol ini dalam wadah
TabStop
Gets/Sets a value specifying if the user can tab to this control with the tab key Mendapat / Set nilai menentukan jika pengguna dapat tab untuk kontrol ini dengan tombol tab
Tag
Gets/Sets an object that contains data about the control Mendapat / Set sebuah obyek yang berisi data tentang k ontrol
Text
Gets/Sets the text for this control Mendapat / Mengatur tek s untuk kontrol ini
Top
Gets/Sets the top coordinates of the control Mendapat / Mengatur koordinat atas kontrol
Visible
Gets/Sets a valu e specifying if the control is visible Mendapat / Set nilai menentukan jika kontrol yang terlihat
Width
Gets/Sets the width of the control Mendapat / Set lebar k ontrol
Gambar 3.1. Kontrol Objek Property 3.2. Latihan Soal Buatlah program dengan menggunakan objek control statemen ifelse untuk perintah logika
pada
status
dan
Jabatan
dari
karyawan.
Setiap
status
dan
jabatan
mempengaruhi gaji sesorang karyawan.pada aplikasi program dibawah menggunakan konsep pewarisan (Inheritance).
Gambar 3.2. Tampilan Form konsep Inheritance Contoh soal : Public Class Pegawai Public mNIP As String
Public mNama As String Public mAlamat As String Public mStatus As String Public mJabatan As String Public mGapok As Integer Public Property NIP() As String Get Return mNIP End Get Set(ByVal value As String) mNIP = value End Set End Property Public Property Nama() As String Get Return mNama End Get Set(ByVal value As String) mNama = value End Set End Property Public Property Alamat() As String Get Return mAlamat End Get Set(ByVal value As String) mAlamat = value End Set End Property Public Property Status() As String Get Return mStatus End Get Set(ByVal value As String)
mStatus = value End Set End Property Public Property Jabatan() As String Get Return mJabatan End Get Set(ByVal value As String) mJabatan = value End Set End Property Public Property Gapok() As Integer Get Return mGapok End Get Set(ByVal value As Integer) mGapok = value End Set End Property Public Function HitungGaji(ByVal mGapok As Integer) As Long Return mGapok End Function End Class
Public Class PegawaiTetap Inherits Pegawai Public mTunjanganTetap As Integer Public Property TunjanganTetap() As Integer Get Return mTunjanganTetap End Get Set(ByVal value As Integer) mTunjanganTetap = value End Set
End Property Public Function HitungGajiTetap(ByVal
mGapok As Integer, ByVal
mTunjanganTetap As Integer) As Long Return mGapok + mTunjanganTetap End Function End Class
Public Class PegawaiHonorer Inherits Pegawai Public mTunjanganTransport As Integer Public Property TunjanganTransport() As Integer Get Return mTunjanganTransport End Get Set(ByVal value As Integer) mTunjanganTransport = value End Set End Property Public Function HitungGajiHonorer(ByVal
mGapok As Integer, ByVal
mTunjanganTransport As Integer) As Long Return mGapok + mTunjanganTransport End Function End Class
Public Class Form1 Private Sub Button1_Click(ByVal
sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click Dim objPegawai As New Pegawai Dim objPegawaiTetap As New PegawaiTetap Dim objPegawaiHonorer As New PegawaiHonorer With objPegawai .NIP = TextBox1.Text .Nama = TextBox2.Text
.Alamat = TextBox3.Text .Status = ComboBox1.Text .Jabatan = ComboBox2.Text If ComboBox2.Text = "Direktur" Then TextBox4.Text = 7000000 ElseIf ComboBox2.Text = "Manager" Then TextBox4.Text = 3500000 ElseIf ComboBox2.Text = "Staff" Then TextBox4.Text = 1500000 Else
TextBox4.Text = 1000000
End If .Status = ComboBox1.Text If ComboBox1.Text = "Tetap" Then With objPegawaiTetap .Gapok = TextBox4.Text TextBox5.Text = 2 * TextBox4.Text .TunjanganTetap = TextBox5.Text TextBox6.Text = 0 Label11.Text = .HitungGajiTetap(.mGapok,
.mTunjanganTetap)
End With ElseIf ComboBox1.Text = "Honorer" Then With objPegawaiHonorer .Gapok = TextBox4.Text TextBox5.Text = 0 TextBox6.Text = 25 * 15000 .TunjanganTransport = TextBox6.Text Label11.Text
= .HitungGajiHonorer(.mGapok,
End With End If End With End Sub End Class
.mTunjanganTransport)
3.3. Soal- Soal Buatlah Aplikasi penjualan Tiket Teater 21 atau Bioskop, dimana aplikasi tersebut akan menampilkan pesat pada saat penonton berumur < 17 tahun. Berikan fungsi pada Textbox Tgl lahir sehingga secara otomatis dapat membaca apabila operator memasukan tahun dan sistem akan menkalkulasikan tahun tersebut dengan tahun yang ada disistem aplikasi(sekarang).
Gambar 3.3.Tampilan Aplikasi Bioskop Ketentuan : Kelas bioskop : (Reguler, Premiere) Minggu 6: Buatlah Aplikasi dengan mengandung unsur key event setiap textbox seperti batasan jumlah input (KeyChar), huruf kecil (LowerCase) dan Mnemonic.
MODUL 4 PEMROGRAMAN DATABASE DAN MANIPULASI
Pertemuan
: 14,16
Peralatan & Perlengkapan
: VISUAL STUDIO 2005 VB.NET dan MySQL
Tujuan pembelajaran praktikum
:
¾
Mahasiswa dapat menggunakan aplikasi database untuk pengolahan data pada pemrogram vb.net (C3)
¾
Mahasiswa dapat menggunakan aplikasi database untuk pengolahan, manipulasi data pada pemrogram vb.net (C3)
4.1. Teori/Konsep 4.1.1. DBMS (Database Management System) ¾ DBMS merupakan perantara antara user dengan database. ¾ Cara komunikasi diatur dalam suatu bahasa khusus yang telah ditetapkan oleh DBMS. Contoh: SQL, dBase, QUEL, dsb. ¾ Bahasa database, dibagi dalam 2 bentuk: - Data Definition Language (DDL) Digunakan dalam membuat tabel baru, indeks, mengubah tabel, menetukan struktur tabel, dsb. - Data Manipulation Language (DML) a.Digunakan dalam memanipulasi dan pengambilan data pada database. b.Manipulasi data, dapat mencakup: - Pemanggilan data yang tersimpan dalam database (query) - Penyisipan/penambahan data baru ke database - Penghapusan data dari database
- Pengubahan data pada database client ANTARMUKA BERBENTUK FORM isian: ___ pass: * * * * SUBMIT
Hasil Form
Nama Variabel dan Nilai
PR OGR AM PE MR OSE S R ES PON (ASP, PHP, C GI)
DATABASE
server
HTML
4.1.2. Instalasi MySQL Instala si mysql di lingkungan Windows : 1. Ekstrak file mysql-4.0.18-win ke folder sementara, misal C:\data_mysql 2. Klik Setup untuk memulai instalasi 3. Klik next, sampai ada tampilan seperti berikut : Pastikan Destination Folder di C:\mysql
Gambar 4.1 Instalasi Mysql pada folder
4. Klik next, pilihlah yang : Typical. 5. Klik next, maka instalasi akan dimulai dan klik finish. 6. Dari Windows Explorer, buka folder C:\mysql\bin 7. Klik 2x file winmysqladmin.exe, isikan : Username : root Password : root 8. Klik OK, dan di kanan bawah akan muncul tanda ikon WinMySql.
Gambar 4.2. Tampilan aktif WinMysql 4.1.3. DASAR-DASAR MYSQL Dalam bahasa SQL pada umumnya informasi tersimpan dalam tabel-tabel yang secara logik merupakan struktur dua dimensi terdiri dari baris (row atau record) dan kolom (column atau field). Sedangkan dalam sebuah database dapat terdiri dari beberapa table. Beberapa tipe data dalam MySQL yang sering dipakai:
Membuat Database Dan Table Untuk masuk ke dalam program MySQL pada prompt jalankan perintah berikut ini: C:\> mysql\bin>mysql (Enter) Kemudian akan masuk kedalam MySQL seperti tampilan dibawah ini:
Gambar 4.3. Tampilan layar pada prompt Mysql Bentuk prompt “mysql>” adalah tempat menuliskan perintah-perintah MySQL. Setiap perintah SQL harus diakhiri dengan tanda titik-koma “;” . Cara untuk membuat sebuah database baru adalah dengan perintah: create database namadatabase; Contoh: create database pens; Untuk membuka sebuah database dapat menggunakan perintah berikut ini: use namadatabase; Contoh: use pens; Perintah untuk membuat tabel baru adalah: create table namatabel ( struktur );
Constraint Constraint adalah batasan atau aturan yang ada pada table. MySQL menyediakan beberapa tipe constraint berikut : • NOT NULL Suatu kolom yang didefinisikan dengan constraint NOT NULL tidak boleh berisi nilai NULL. Kolom yang befungsi sebagai kunci primer (primary key) otomatis tidak boleh NULL. • UNIQUE Mendefinisikan suatu kolom menjadi bersifat unik, artinya antara satu data dengan data lainnya namanya tidak boleh sama, misal alamat email. • PRIMARY KEY Constraint PRIMARY KEY membentuk key yang unik untuk suatu table. • FOREIGN KEY FOREIGN KEY constraint didefinisikan pada suatu kolom yang ada pada suatu table, dimana kolom tersebut juga dimiliki oleh table yang lain sebagai suatu PRIMARY KEY, biasa dipakai untuk menghubungkan antara 2 tabel. 4.2. Latihan Soal Buatlah Tabel berikut ini dengan menggunakan perintah Mysql :
Dengan menggunakan perintah MySQL: create table anggota ( nomor int(6) not null primary key, nama char(40) not null, email char(255) not null, alamat char(80) not null, kota char(20) not null );
Perintah Memasukan data dengan MySQL: Insert into anggota (nomor,nama,email,alamat,kota) values (100,’Adi’, ’ad
[email protected]’,’Jl. Keputih 2A no 5’,’Surabaya’); atau Insert into anggota values (100,’Adi’, ’
[email protected]’,’Jl. Keputih 2A no 5’, ’Surabaya’); Dari table Anggota dibawah ini lakukan manipulasi data : Nomor 100 101
Nama Refiyanto Tono
Email
[email protected] tono@hotma il.com
Alamat Jl. Keputih 2A no 5 Jl. Galunggung 2B
Kota Surabaya Cengkareng
102
Iqbal
[email protected]
Jl. Klampis 3
Surabaya
103 104 105 106 107
Yanti Ilham Samsyu Faruq Hari
Ya nt i78@ma ilcity.com ilha m@ya hoo.com
[email protected] [email protected] hari@ya hoo.com
Jl. Madiun 45 Jl. Surabaya 9 Jl. Percetakan Jl. Raya 5 Jl. Raya 9
Jawa Tengah Malang Surabaya Kediri Banyuwangi
Hapuslah data dari tabel anggota berikut ini: Delete from anggota where no=’103’; or
Delete from anggota where no=103;
Untuk meng-update data email di tabel anggota, nomor 104. update anggota set email=’
[email protected]’ where nomor=’104’; 1. Untuk menampilkan semua kolom(field) pada tabel anggota select * from anggota; 2. Untuk menampilkan kolom (field) nomor dan nama pada tabel anggota select nomor, nama from anggota; 3. Untuk menampilkan semua kolom pada tabel anggota yang berada pada kota ‘Surabaya’ select * from anggota where kota=’Surabaya’; 4. Untuk menampilkan semua kolom pada tabel anggota dengan urut nama select * from anggota order by nama; 5. Untuk menghitung jumlah record pada tabel anggota select count(*) from anggota; 6. Untuk menampilkan kota dengan tidak menampikan kota yang sama pada tabel anggota select distinct kota from anggota;
7. Untuk menampilkan nama dan email yang mempunyai email di ‘yahoo.com’ select nama,email from anggota where email like ‘%yahoo.com’; 8. Untuk menampilkan nomor, nama dan email yang nomornya diatas 103 dan yang berawalan dengan huruf S. select nomor, nama, email from anggota where nomor >= 103 AND nama like ‘S%’; 9. Untuk menampilkan nomor, nama yang nomornya diantara 103 ~ 105 select nomor, nama from anggota where nomor between 103 and 105. 4.3. Soal- Soal Minggu 7 : 1. Buatlah database baru dengan nama lat_mysql 2. Buatlah tabel dengan nama pegawai yang memiliki field sebagai berikut : Kolom / Field ID Nama Alamat Gaji
Tipe data int (5) not null varchar(20) not null varchar(20) not null int (10) not null
3. Masukkan data-data berikut ini : ID 100 101 102 103 104 105 106 107 108
Nama Arif Andi Burhan Fikri Fariz Sigit Ifan Hanif Zakiuddin
Alamat Surabaya Jakarta Malang Madiun Malang Surabaya Kediri Yogyakarta Surabaya
Gaji 10000 14000 12000 15000 17000 20000 16000 12000 21000
Nama Naila Rafi
Alamat Surabaya Semarang
Gaji 10000 14000
4. Hapuslah record dengan ID 100. 5. Update data untuk ID 101 dan 102 sbb : ID 101 102
6. Buat perintah SQL berikut ini untuk menampilkan : a. Semua kolom dari tabel pegawai b. Kolom nama dan gaji dari tabel pegawai
c. Kolom nama dan alamat yang mempunyai nama dengan awalan F. d. Kolom nama dan alamat yang mempunyai nama dengan akhiran n e. Kolom nama dan gaji yang mempunyai gaji diatas 15000. f. Kolom nama, alamat dan gaji yang bergaji diatas 13000 dan beralamat di Surabaya. g. Kolom nama, gaji dengan range gaji antara 15000 ~ 20000. h. Gaji max, min,rata2 dari tabel pegawai > select max(gaji), min(gaji), avg(gaji) from pegawai. Minggu 8: 1. Buat Database dengan Mysql dari tabel-tabel dibawah ini : Nama Tabel : BARANG No. Nama Field 1. TKDBRG (Primary Key) 2. TNMBRG 3. TSATUAN Nama Tabel : SUPPLIER No. Nama Field 1. KDSUP (Primary Key) 2. NMSUP 3. TALAMAT
Tipe Data varchar varchar Int
Tipe Data varchar varchar varchar
Lebar 7 25 4
Lebar 7 25 35
Keterangan Kode Barang Nama Barang Jumlah Barang
Keterangan Kode Supplier Nama Supplier Alamat Supplier
Nama Tabel : SP No. Nama Field 1. NOSP (Primary Key) 2. TGLSP 3. KDSUP
Tipe Data varchar Date varchar
Lebar 7 7
Keterangan Nomor Surat Pesan (SP) Tanggal Surat Pesan (SP) Kode Supplier
Nama Tabel : PESAN No. Nama Field 1. TKDBRG (Primary Key) 2. NOSP (Primary Key) 3. JML 4. HRG
Tipe Data varchar Text Int(4) int
Lebar 7 7 4 7
Keterangan Kode Barang Nomor Surat Pesan (SP) Jumlah Pesan Harga Barang
2. Isilah tabel-tabel diatas 3. Lakukan manipulasi pada tabel supplier dengan menambahkan field Telpon 4. Tampilkan data supplier yang hanya beralamat di “Surabaya”. Atau alamat tertentu. 5. Tambahkan field dari tabel pesan yaitu Total_harga dan gantilah tipe data NoSP menjadi tipe varchar.
MODUL 5 PENGGUNAAN OBJEK ADO.NET
Pertemuan
: 18,20
Peralatan & Perlengkapan
: VISUAL STUDIO 2005 VB.NET dan MySQL
Tujuan pembelajaran praktikum
:
¾
Mahasiswa dapat melakukan koneksi DBMS Mysql dan vb.net dengan menggunakan komponen ADO.Net (C3)
5.1. Teori/Konsep 5.1.1. ADO. NET Sebagian besar aplikasi membutuhkan akses data pada satu titik waktu membuatnya menjadi komponen penting ketika bekerja dengan aplikasi. Akses data adalah membuat aplikasi berinteraksi dengan database, di mana semua data disimpan. Aplikasi yang berbeda memiliki persyaratan yang berbeda untuk mengakses database. VB. NET menggunakan ADO NET (Active X Data Object). Sebagai akses data itu dan protokol manipulasi yang juga memungkinkan kita untuk bekerja dengan data di Internet. Mari kita lihat mengapa ADO. NET datang ke dalam gambar menggantikan ADO.
5.1.2. Evolusi ADO.NET Data pertama model akses, DAO (Data model akses) diciptakan untuk database lokal dengan built-in mesin Jet yang memiliki kinerja dan masalah fungsi. Berikutnya datang RDO (Remote Data Object) dan ADO (Active Data Object) yang dirancang untuk Client Server arsitektur, tetapi segera mengambil alih RDO ADO. ADO adalah arsitektur yang baik tetapi sebagai perubahan bahasa sehingga adalah teknologi. Dengan ADO, semua data yang terkandung dalam objek recordset yang memiliki masalah ketika diimplementasikan pada jaringan dan firewall penetrasi. ADO adalah akses data yang terhubung, yang berarti bahwa ketika koneksi ke database didirikan sambungan tetap
terbuka sampai aplikasi ditutup. Membiarkan sambungan terbuka untuk seumur hidup aplikasi menimbulkan keprihatinan tentang keamanan database dan lalu lintas jaringan. Juga, sebagai database menjadi semakin penting dan karena mereka melayani lebih banyak orang, model data akses terhubung membuat kita berpikir tentang produktivitas. Sebagai contoh, aplikasi dengan akses data yang terhubung dapat melakukannya dengan baik ketika terhubung ke dua klien, sama mungkin melakukan buruk ketika terhubung ke 10 dan mungkin tidak dapat digunakan saat terhubung ke 100 atau lebih. Juga, koneksi database terbuka menggunakan sumber daya sistem sampai batas maksimal membuat kinerja sistem yang kurang efektif. 5.1.3. Mengapa ADO.NET? Untuk mengatasi dengan beberapa masalah yang disebutkan di atas, ADO. NET muncul. ADO. NET membahas masalah di atas dengan mempertahankan model database akses terputus yang berarti, ketika aplikasi berinteraksi dengan database, koneksi dibuka untuk melayani
permintaan
dari
aplikasi
dan
ditutup
segera
setelah
permintaan
selesai. Demikian juga, jika database adalah Diperbarui, koneksi dibuka cukup lama untuk menyelesaikan operasi Update dan ditutup. Dengan menjaga koneksi terbuka hanya untuk jangka waktu minimum, ADO. NET menghemat sumber daya sistem dan menyediakan
keamanan
maksimum untuk database
dan juga memiliki sedikit
dampak pada kinerja sistem. Juga, ADO NET ketika berinteraksi dengan database. Menggunakan XML dan mengkonversi semua data ke dalam format XML untuk operasi database terkait membuat mereka lebih efisien.
5.1.4. Arsitektur Data ADO.NET Akses Data di ADO.NET bergantung pada dua komponen: Penyedia DataSet dan Data. Dataset adalah, diputus dalam-memori representasi data. Hal ini dapat dianggap sebagai salinan lokal dari bagian yang relevan dari database. DataSet adalah bertahan dalam memori dan data di dalamnya dapat dimanipulasi dan diperbarui independen dari database. Ketika penggunaan DataSet ini selesai, perubahan dapat dilakukan kembali ke pusat database untuk memperbarui. Data dalam DataSet dapat dimuat dari sumber data yang valid seperti database server Microsoft SQL, Oracle atau database dari database Microsoft Access.
5.1.5. Data Provider Data Provider bertanggung jawab untuk menyediakan dan memelihara koneksi ke database. Sebuah dataProvider adalah seperangkat komponen terkait yang bekerja sama untuk menyediakan data secara efisien dan kinerja didorong. . NET Framework saat ini dilengkapi dengan dua DataProviders: SQL Data Provider yang dirancang hanya untuk bekerja dengan SQL Server 7.0 Microsoft atau lambat dan dataProvider OLEDB yang memungkinkan kita untuk terhubung ke database jenis lain seperti Access dan Oracle. Setiap dataProvider terdiri dari kelas komponen berikut: Object Connection yang menyediakan koneksi ke database Object Command yang digunakan untuk mengeksekusi perintah Obyek DataReader yang menyediakan forward-only, read only, recordset terhubung Obyek DataAdapter yang populasikan DataSet terputus dengan data dan melakukan pembaruan
Gambar 5.1. Arsitektur Data ADO.NET
5.1.6. Komponen Penyedia data
kelas
yang
membentuk
Obyek Koneksi Object Connection menciptakan koneksi ke database. Microsoft Visual Studio NET menyediakan dua jenis kelas Koneksi: obyek SqlConnection,
yang dirancang
khusus untuk menghubungkan ke Microsoft SQL Server 7.0 atau lambat, dan objek OleDbConnection, yang dapat menyediakan koneksi ke berbagai jenis database seperti Microsoft Access, Mysql dan Oracle. Object Connection berisi semua informasi yang diperlukan untuk membuka koneksi ke database. Objek Command Object
Command
diwakili
oleh
dua
kelas
yang
sesuai:
SqlCommand
dan OleDbCommand. Objek Command digunakan untuk mengeksekusi perintah ke database di sambungan data. Objek Command bisa digunakan untuk mengeksekusi prosedur yang tersimpan pada database, perintah SQL, atau kembali tabel lengkap langsung.
Objek Command
menyediakan
mengeksekusi perintah pada database:
tiga metode yang digunakan untuk
ExecuteNonQuery: Melaksanakan perintah yang memiliki nilai yang tidak kembali seperti INSERT, UPDATE atau DELETE ExecuteScalar: database
Mengembalikan
ExecuteReader: dataReader
Mengembalikan
nilai hasil
tunggal set
dari query
dengan
cara
objek
Objek dataReader Obyek DataReader menyediakan forward-only, read-only, recordset aliran terhubung dari database. Tidak seperti komponen lain dari Data Provider, obyek DataReader tidak dapat secara langsung instantiated. Sebaliknya, dataReader dikembalikan sebagai hasil dari metode ExecuteReader object Command itu. Metode SqlCommand.ExecuteReader mengembalikan
sebuah
OleDbCommand.ExecuteReader
objek
SqlDataReader,
dan
metode
mengembalikan sebuah objek OleDbDataReader.
DataReader dapat memberikan baris data langsung ke logika aplikasi ketika Anda tidak perlu menyimpan data dalam memori cache. Karena hanya satu baris dalam memori pada satu waktu, dataReader menyediakan overhead terendah dalam hal kinerja sistem tetapi memerlukan penggunaan eksklusif dari sebuah object Connection terbuka untuk seumur hidup dataReader tersebut. Obyek DataAdapter DataAdapter
adalah kelas inti dari terputus
akses
data ADO NET.
Ini pada
dasarnya adalah perantara memfasilitasi semua komunikasi antara database dan DataSet. DataAdapter digunakan baik untuk mengisi DataTable atau DataSet dengan data dari database dengan metode Isi itu. Setelah data memori-penduduk telah dimanipulasi, DataAdapter bisa melakukan perubahan ke database dengan memanggil metode Update. DataAdapter menyediakan empat sifat yang mewakili perintah database: 1. SelectCommand 2. InsertCommand 3. DeleteCommand 4. UpdateCommand
Ketika Update metode disebut, perubahan dalam DataSet yang disalin kembali ke database dan yang sesuai InsertCommand, DeleteCommand, atau UpdateCommand dieksekusi. 5.2. Contoh Latihan Soal 1. Buatlah Module Koneksi database mysql dengan form aplikasi VB.net ) Membuat Module
Dalam sistem pembelian ini, koneksi database nya terdapat pada Module. Sehingga dibuat bersifat global. Untuk membuat Module, perlu menambahkan atribut baru berupa module pada project. Dengan cara: Klik kanan pada Project di Solution Explorer, kemudian pilih Add, Add Module.
Be ri n a m a
Gambar 5 . 2l . T a m p ilan membuat Module
Ketiklah Code untuk modul koneksi: Imports System.Data.Odbc Import System.Data Module Koneksi
username database
public strcon = "Driver={MySQL ODBC 3.51 Driver};database=DBLatihan;server=localhost;uid=root" Conn = New OdbcConnection(str) If Conn.State = ConnectionState.Closed Then nama databasenya Conn.Open() End If End module
ubah nama Datagridview1 menjadi GDV
Klik 2x form aplikasi atau source code pilihlah load Private Sub TampilGrid_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Koneksi() da = New OdbcDataAdapter("Select * from siswa", Conn) ds = New DataSet
ds.Clear() da.Fill(ds, "Siswa") DGV.DataSource = (ds.Tables("Siswa")) End Sub End Class Hasil yang didapatkan :
1. Buatlah aplikasi memasukan data barang Form Label
Grou p Box
Button
Labe l
TextBox
Group Box
Button
Rancangan Project Propertis :
OBJEK Form1
NAME frmMasterBarang
TEXT frmMasterBarang
Label1 GroupBox1 Label2 Label3 Label4 Textbox1 Textbox2 Textbox3 Button1 GroupBox2 Button2 Button3 Button4 Button5 Button6
Label1 Groupbox1 Lblkdbrg Lblnmbrg Lblharsat txtKdBrg txtNmBrg txtSatuan BtnCariBrg Groupbox2 cmdSimpan cmdUbah cmdHapus cmdBatal cmdKeluar
ENTRY DATA BARANG Data Barang KODE BARANG NAMA BARANG HARGA SATUAN (kosong) (kosong) (kosong) CARI SIMPAN UBAH HAPUS BATAL KELUAR
PROPERTIES YANG DIUBAH Font , Back Color, StartPosition = CenterScreen Font, Back Color Font, Back Color Font, Back Color Font, Back Color Font, Back Color Font , Back Color Font, Back Color Font, Back Color Font , Back Color Font, Back Color Font , Back Color Font , Back Color Font , Back Color Font, Back Color Font , Back Color
Coding untuk form entry Barang Imports System.Data.OleDb Imports System.Data Public Class frmMasterBarang Dim cnn As OleDbConnection Dim cmmd As OleDbCommand Dim dReader As OleDbDataReader Private Sub frmMasterBarang_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Buka koneksi cnn = New OleDbConnection(strcon) If cnn.State <> ConnectionState.Closed Then cnn.Close() cnn.Open() 'Buat AutoNumber u kode barang Dim strTemp As String = "" Dim strValue As String = "" Dim sql As String sql = "SELECT * FROM BARANG ORDER BY TKDBRG DESC" cmmd = New OleDbCommand(sql, cnn) dReader = cmmd.ExecuteReader If dReader.Read Then strTemp = Mid(dReader.Item("TKDBRG"), 3, 5) ElsetxtKdBrg.Text = "BG00001" Exit Sub
End If
strValue
'MsgBox(strTemp) strValue = Val(strTemp) + 1 txtKdBrg.Text = "BG" & Mid("00000", 1, 5 - strValue.Length) &
End Sub
Tombol Keluar : Private Sub cmdKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdKeluar.Click Me.Dispose() End Sub
TxtBarang : Private Sub txtKdBrg_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtKdBrg.KeyPress If Asc(e.KeyChar) = 13 Then cmmd = New OleDbCommand("SELECT * FROM BARANG WHERE TKDBRG='" & txtKdBrg.Text & "'", cnn) dReader = cmmd.ExecuteReader If dReader.Read Then ''jika data ditemukan cmdSimpan.Enabled = False cmdUbah.Enabled = True cmdHapus.Enabled = True txtNmBrg.Text = dReader.Item("TNMBRG") txtSatuan.Text = Format(CDbl(dReader.Item("TSATUAN")),"##,####,####,###") txtNmBrg.Focus() ElsetxtNmBrg.Focus() txtNmBrg.Text = "" txtSatuan.Text = "" End If End If End Sub
CmdSimpan Private Sub cmdSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSimpan.Click Dim sql As String Dim strTemp As String = "" Dim strValue As String = "" sql = "INSERT INTO BARANG(TKDBRG, TNMBRG, TSATUAN) " & _ "VALUES('" & txtKdBrg.Text & _ "','" & txtNmBrg.Text & "','" & txtSatuan.Text & "')" cmmd = New OleDbCommand(sql, cnn)
Dim x As Integer = cmmd.ExecuteNonQuery If x = 1 Then MessageBox.Show("DATA BERHASIL DISIMPAN") sql = "SELECT * FROM BARANG ORDER BY TKDBRG DESC" cmmd = New OleDbCommand(sql, cnn) dReader = cmmd.ExecuteReader If dReader.Read Then strTemp = Mid(dReader.Item("TKDBRG"), 3, 5) 'caraChris 'strChris = Mid(dReader.Item("TKDBRG"), 3, 5) + 1 ElsetxtKdBrg.Text = "BG00001" Exit Sub End If 'MsgBox(strTemp) strValue = Val(strTemp) + 1 txtKdBrg.Text = "BG" & Mid("00000", 1, 5 - strValue.Length)& strValue txtNmBrg.Text = "" txtSatuan.Text = "" txtNmBrg.Focus() ElseMessageBox.Show("GAGAL MENYIMPAN DATA") End If End Sub
Tombol Ubah: Private Sub cmdUbah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdUbah.Click Dim sql As String sql = "UPDATE BARANG SET TNMBRG='" & txtNmBrg.Text & "'," & _ "TSATUAN='" & txtSatuan.Text & "' " & _ "WHERE TKDBRG='" & txtKdBrg.Text & "'" cmmd = New OleDbCommand(sql, cnn) Dim x As Integer = cmmd.ExecuteNonQuery If x = 1 Then MessageBox.Show("DATA BERHASIL DIUPDATE") txtKdBrg.Text = "" txtNmBrg.Text = "" txtSatuan.Text = "" txtKdBrg.Enabled = True txtKdBrg.Focus() ElseMessageBox.Show("GAGAL UPDATE DATA") End If End Sub
Tombol Hapus Private Sub cmdHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdHapus.Click Dim sql As String sql = "DELETE FROM BARANG WHERE TKDBRG='" & txtKdBrg.Text & "'" cmmd = New OleDbCommand(sql, cnn) Dim x As Integer = cmmd.ExecuteNonQuery If x = 1 Then MessageBox.Show("DATA BERHASIL DIHAPUS") txtKdBrg.Text = "" txtNmBrg.Text = "" txtSatuan.Text = "" txtKdBrg.Enabled = True txtKdBrg.Focus() ElseMessageBox.Show("GAGAL HAPUS DATA") End If End Sub
Tombol Batal Private Sub cmdBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBatal.Click txtNmBrg.Text = "" txtSatuan.Text = "" txtNmBrg.Focus() End Sub
Tombol Cari Private Sub btnCariBrg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCariBrg.Click Dim popupbrg As New PopBrg popupbrg.ShowDialog() If popupbrg.retKdBrg <> "" Then txtKdBrg.Text = popupbrg.retKdBrg txtNmBrg.Text = popupbrg.retNmBrg txtSatuan.Text = Format(CDbl(popupbrg.retSatuan), "##,####,####,###") txtKdBrg.Enabled = False txtNmBrg.Focus() End If End Sub End Class
2. Buatlah aplikasi List Barang yang sudah di simpan :
Imports System.Data.OleDb Imports System.Data Public Class PopBrg Public retKdBrg, retNmBrg, retSatuan As String Dim cnn As OleDbConnection Dim cmmd As OleDbCommand Dim dReader As OleDbDataReader Private Sub popBrg_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call list_data() End Sub
txtKey Private Sub txtKey_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtKey.TextChanged Call list_data() End Sub Public Sub list_data() Call clear_list() Dim sqlx As String Dim x As Integer sqlx = "select TKDBRG, TNMBRG, TSATUAN from BARANG where TNMBRG like '%" & Trim(txtKey.Text) & "%' order by TKDBRG asc" cnn = New OleDbConnection(strConn) If cnn.State <> ConnectionState.Closed cnn.Open() cmmd = New OleDbCommand(sqlx, cnn)
Then cnn.Close()
dReader = cmmd.ExecuteReader Try While dReader.Read = True x = Val(counter.Text) counter.Text = Str(Val(counter.Text) With ListView1 .Items.Add("") .Items(ListView1.Items.Count .Items(ListView1.Items.Count .Items(ListView1.Items.Count .Items(x).SubItems(0).Text = .Items(x).SubItems(1).Text = .Items(x).SubItems(2).Text = End With End While Finally dReader.Close() End Try cnn.Close()
+ 1)
- 1).SubItems.Add("") - 1).SubItems.Add("") - 1).SubItems.Add("") dReader.GetString(0) dReader.GetString(1) dReader.GetValue(2)
End Sub
Private Sub clear_list() While Val(counter.Text) > 0 ListView1.Items(0).Remove() counter.Text = Val(counter.Text) - 1 End While End Sub
ListView1
Private Sub ListView1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.DoubleClick Call pilih() End Sub
Private Sub pilih() Try retKdBrg = ListView1.SelectedItems(0).SubItems(0).Text.ToString retNmBrg = ListView1.SelectedItems(0).SubItems(1).Text.ToString retSatuan = ListView1.SelectedItems(0).SubItems(2).Text.ToString Me.Close() Catch ex As Exception MsgBox("pilih salah satu data", MsgBoxStyle.Information) End Try End Sub
Tombol Ok Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click Call pilih() End Sub End Class
Minggu 10 : Buatlah Aplikasi Entry data Supplier yang terlihat pada gambar dibawah ini.
Imports System.Data.OleDb Imports System.Data Public Class frmMasterSupplier Dim cnn As OleDbConnection Dim cmmd As OleDbCommand Dim dReader As OleDbDataReader Private Sub frmMasterSupplier_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Buka koneksi cnn = New OleDbConnection(strConn) If cnn.State <> ConnectionState.Closed cnn.Open()
Then cnn.Close()
'Buat AutoNumber u kode barang Dim strTemp As String = "" Dim strValue As String = "" Dim sql As String sql = "SELECT * FROM SUPPLIER ORDER BY KDSUP DESC" cmmd = New OleDbCommand(sql, cnn) dReader = cmmd.ExecuteReader If dReader.Read Then strTemp = Mid(dReader.Item("KDSUP"), 3, 5) 'caraChris 'strChris = Mid(dReader.Item("KDSUP"), 3, 5) + 1 ElsetxtKdSup.Text = "SU00001" Exit Sub End If 'MsgBox(strTemp) strValue = Val(strTemp) + 1 txtKdSup.Text = "SU" & Mid("00000", 1, 5 - strValue.Length) & strValue End Sub
Tombol Keluar : Private Sub cmdKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdKeluar.Click Me.Dispose() End Sub
TxtKode Supplier Private Sub txtKdSup_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtKdSup.KeyPress If Asc(e.KeyChar) = 13 Then cmmd = New OleDbCommand("SELECT * FROM SUPPLIER WHERE KDSUP='" & _ txtKdSup.Text & "'", cnn) dReader = cmmd.ExecuteReader If dReader.Read Then ''jika data ditemukan cmdSimpan.Enabled = False cmdUbah.Enabled = True cmdHapus.Enabled = True txtNmSup.Text = dReader.Item("NMSUP") txtAlamat.Text = dReader.Item("TALAMAT") txtNmSup.Focus() ElsetxtNmSup.Focus() txtNmSup.Text = "" txtAlamat.Text = "" End If End If End Sub
Tombol Simpan : Private Sub cmdSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSimpan.Click Dim sql As String Dim strTemp As String = "" Dim strValue As String = "" sql = "INSERT INTO SUPPLIER(KDSUP, NMSUP, TALAMAT) " & _ "VALUES('" & txtKdSup.Text & _ "','" & txtNmSup.Text & "','" & txtAlamat.Text & "')" cmmd = New OleDbCommand(sql, cnn) Dim x As Integer = cmmd.ExecuteNonQuery If x = 1 Then MessageBox.Show("DATA BERHASIL DISIMPAN") sql = "SELECT * FROM SUPPLIER ORDER BY KDSUP DESC" cmmd = New OleDbCommand(sql, cnn) dReader = cmmd.ExecuteReader If dReader.Read Then strTemp = Mid(dReader.Item("KDSUP"), 3, 5) 'caraChris 'strChris = Mid(dReader.Item("KDSUP"), 3, 5) + 1
ElsetxtKdSup.Text = "SU00001" Exit Sub End If 'MsgBox(strTemp) strValue = Val(strTemp) + 1 txtKdSup.Text = "SU" & Mid("00000", 1, 5 - strValue.Length)& strValue
Else
txtNmSup.Text = "" txtAlamat.Text = "" txtNmSup.Focus()
MessageBox.Show("GAGAL MENYIMPAN DATA") End If End Sub
Tombol Ubah : Private Sub cmdUbah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdUbah.Click Dim sql As String sql = "UPDATE SUPPLIER SET NMSUP='" & txtNmSup.Text & "'," & _ "TALAMAT='" & txtAlamat.Text & "' " & _ "WHERE KDSUP='" & txtKdSup.Text & "'" cmmd = New OleDbCommand(sql, cnn) Dim x As Integer = cmmd.ExecuteNonQuery If x = 1 Then MessageBox.Show("DATA BERHASIL DIUPDATE") txtKdSup.Text = "" txtNmSup.Text = "" txtAlamat.Text = "" txtKdSup.Enabled = True txtKdSup.Focus() ElseMessageBox.Show("GAGAL UPDATE DATA") End If End Sub
Tombol Hapus : Private Sub cmdHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdHapus.Click Dim sql As String sql = "DELETE FROM SUPPLIER WHERE KDSUP='" & txtKdSup.Text & "'" cmmd = New OleDbCommand(sql, cnn) Dim x As Integer = cmmd.ExecuteNonQuery If x = 1 Then MessageBox.Show("DATA BERHASIL DIHAPUS") txtKdSup.Text = "" txtNmSup.Text = "" txtAlamat.Text = "" txtKdSup.Enabled = True txtKdSup.Focus() ElseMessageBox.Show("GAGAL HAPUS DATA") End If End Sub
Tombol Batal : Private Sub cmdBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBatal.Click txtNmSup.Text = "" txtAlamat.Text = "" End Sub
5.3. Soal- Soal Minggu 9 1. Buatlah Aplikasi sistem informasi dengan menggunakan manipulasi data pada DBMS Mysql
seperti
Aplikasi
Mahasiswa/Member
Perpustakaan,
untuk
komponen
untuk input
latihan
buatlah
dan output
dapat
form
Data
disesuaikan
berdasarkan hasil obvervasi kebutuhan perpustakaan tersebut. Minggu 10 2. Kelanjutan Program selanjutnya
form peminjaman Buku perpustakaan,
untuk
desain dan input, output dapat disesuaikan. Dimana desain input memiliki lama peminjaman/batas pengembalian.
MODUL 6 MENU DAN CRYSTAL REPORT
Pertemuan
: 22, 24
Peralatan & Perlengkapan
: VISUAL STUDIO 2005 VB.NET dan MySQL
Tujuan pembelajaran praktikum
:
¾
Mahasiswa dapat menggunakan Menu Manager untuk menghubungkan semua form aplikasi secara dinamis. (C3)
¾
Mahasiswa dapat menggnakan Crystal Report untuk pembuatan Laporan pada pemrograman VB.net (C3)
6.1. Teori/Konsep 6.1.1. Crystal Report Menurut Daryanto mengemukakan bahwa Crystal report, yaitu: “Crystal report merupakan tool yang sering digunakan untuk membuat laporan”. [5] Menurut Madcom dalam bukunya yang berjudul Database Visual Basic 6.0 Dengan Crystal Report menyebutkan
bahwa : "Crystal
repots merupakan
program khusus untuk membuat laporan yang terpisah dari program Microsoft Visual Basic tetapi keduanya dapat dihubungkan (linkagge)".[15] Dari uraian diatas dapat disimpulkan bahwa Crystal Report merupakan program khusus untuk membuat laporan yang terpisah dari program Microsoft Visual Basic tetapi keduanya dapat dihubungkan. Pada standar reprts expert terdiri dari delapan langkah yaitu: a. Tab data
Tab data ini harus menentukan tabel atau query yang akan digunakan untuk membuat laporan. b. Tab fields Tab ini dapat menentukan field-field atau kolom-kolom yang akan ditampilkan dalam laporan. c.
Tab sort Tab ini dapat mengurutkan atau mengelompokan data-data yangakan ditampilkan dalam laporan.
d. Tab total Tab ini dapat menampilkan subtotal berdasarkan kriteria atau pengelompokan berdasarkan fields yang telah ditentukan pada tab sebelimnya. e.
Tab topN Tab ini dapat menentukan data yang akan ditampilkan dengan cara memilih N terbesar dari data yang ada.
f.
Tab graph Tab ini dapat membuat dan memilih type grafik yang diinginkan.
g. Tab select Tab ini dapat menyaring atau memfilter record-record yang akan ditampilkan dalam laporan. h. Tab style Tab ini dapat memilih bentuk tampilan laporan dan menuliskan judul laporan yang diinginkan. Kelebihan yang terdapat dalam crystal report adalah hasil cetakan crystal report lebih baik dan lebih mudah, karena pada crystal report banyak tersedia objek maupun komponen yang mudah digunakan. Hubungan crystal report dengan visual basic yaitu percetakan/ hasil akhir dilakukan dalam sebuah form maka objek crystal report yang terdapat didalam form harus dihubungkan dengan file crystal report yang sudah jadi. Berkaitan dengan tampilan laporan ada beberapa tombol yang mendukung, yaitu: 1. Tab Design Fungsi dari tab design ini adalah untuk menampilkan desain laporan yang dibuat.
2. Tab Preview Fungsi dari tab preview adalah untuk menampilkan bentuk/hasil dari laporan.
Untuk membuat menu, pilih didalam toolbox
lalu
ketikkan
nama
menu sesuai dengan yang diinginkan Atau bisa juga dengan mengetikkan menu pada properties text Penggunaan tanda ”&” diantara nama menu, berfungsi agar menu dapat diakses menggunakan keyboard dengan menekan tombol alt disertai dengan huruf yang bergaris bawah. jika program sudah dijalankan, menu ini dapat diakses dengan menekan tombol ”alt dan m” secara bersamaan.
6.2. Latihan Soal Tampilan Menu Utama dari program aplikasi Penjualan Produk
Untuk membuat laporan dengan Crystal Report langkah yang harus dilakukan adalah sebagai berikut :
1. Klik kanan pada Project kemudian pilih Add
lalu pilih Add Windows
Forms setelah itu program akan menampilkan kontak dialog Add New Item 2.
Pada form Add New Item, pilih Crystal Report, lalu tekan tombol Add. Tuliskan nama laporan yang akan dibuat pada kolom Name.
3. Pada Form Crystal Report Gallery
4.
klik As a Blank Report
klik tombol OK
Setelah desain Crystal Report tampil klik kanan pada Database Fields lalu pilih Database Expert.
Sehingga muncul tampilan seperti dibawah. Karena kita menggunakan database Access, maka kita pilih Create New Connection
ADO.net
klik OK
5. Kemudian pilih tabel yang akan dibuat reportnya pada Form Database Expert setelah itu klik OK
6. Desain Tampilan Crystal Raport.
Perbedaan setelah dikoneksik an ta l
7. Untuk mendesign bentuk cetakan, dapat dilakukan di bagian Report Header, Page Header, Report Footer dan Page Footer
Untuk membuat laporan dengan Crystal Report, biasanya diperlukan sebuah form yang menampung tampilan sementara Crystal Report. Maka kita perlu menambah sebuah form baru. Langkah-langkah yang dilakukan adalah sbb:
1.
Klik kanan pada Project di Solution Explorer Æ Klik Add Æ Windows Form
2. Ubah nama pada kolom Name
3. Tambahkan objek CrystalReportViewer dari Toolbox kedalam form. Hal ini berguna untuk koneksi form dengan CrystalReport
4. Kemudian koneksikan form dengan CrystalReport yang telah dibuat : Atur properties Æ ReportSource --> pilih CrystalReport yang telah dibuat
5. Tampilannya akan menjadi :
Ini contoh apabila ingin membuat form cetak barang denga koding sebagai berikut. Pada form FrmCetakSP ketikan code berikut:
1. Buatlah program untuk entry Supplier yang merupakan satu kesatuan dari program pertemuan 9 dan 10 mengacu pada database sebelumnya.tampilan program terlihat pada gambar dibawah ini.
2. Buatlah program pesanan untuk aplikasi penjualan produk dengan mengacu latihan sebelumnya. Untuk desain rancangan tampilan sebagai berikut :
Koding : Imports System.Data.OleDb Imports System.Data Public Class frmEntrySP Dim cnn As OleDbConnection Dim cmmd, cmmd1, cmmd2 As OleDbCommand Dim dReader As OleDbDataReader Private index As Integer = 0 Private Total As Double = 0.0 Private Sub frmEntrySP_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Buka koneksi cnn = New OleDbConnection(strConn)
If cnn.State <> ConnectionState.Closed Then cnn.Close() cnn.Open() 'Buat AutoNumber u Surat Pesanan Dim strTemp As String = "" Dim strValue As String = "" Dim sql As String sql = "SELECT * FROM SP ORDER BY NOSP DESC" cmmd = New OleDbCommand(sql, cnn) dReader = cmmd.ExecuteReader If dReader.Read Then strTemp = Mid(dReader.Item("NOSP"), 3, 5) ElsetxtNoSP.Text = "SP00001" Exit Sub End If 'MsgBox(strTemp) strValue = Val(strTemp) + 1 txtNoSP.Text = "SP" & Mid("00000", 1, 5 - strValue.Length) & strValue End Sub
Untuk Textboxt kode supplier : Private Sub txtNoSP_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNoSP.KeyPress If Asc(e.KeyChar) = 13 Then btnCariSup.Focus() End If End Sub
Tombol Cari : Private Sub btnCariSup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCariSup.Click Dim popupsup As New PopSup popupsup.ShowDialog() If popupsup.retKdSup <> "" Then txtkdsup.Text = popupsup.retKdSup txtNmSup.Text = popupsup.retNmSup txtNmSup.Focus() End If End Sub
Untuk textboxt nama supplier : Private Sub txtNmsup_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNmSup.KeyPress If Asc(e.KeyChar) = 13 Then BtnCariBrg.Focus() End If End Sub
Untuk Textboxt Jumlah barang : Private Sub txtJmlbeli_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtJmlBeli.KeyPress If Asc(e.KeyChar) = 13 Then SetTotal() txtTotal.Focus() End If End Sub
Untuk Textbox Total : Private Sub txtTotal_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTotal.KeyPress If Asc(e.KeyChar) = 13 Then btnTambah.Focus() End If End Sub
Sub SetTotal() Dim a As Integer a = CInt(txtJmlBeli.Text) * CInt(txtSatuan.Text) txtTotal.Text = Format(CDbl(CStr(a)), "##,####,####,###") 'txt.Text = Format(CDbl(txt.Text), "##,####,####,###") End Sub
Untuk tombol cari barang : Private Sub BtnCariBrg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCariBrg.Click Dim popupbrg As New PopBrg popupbrg.ShowDialog() If popupbrg.retKdBrg <> "" Then txtKdBrg.Text = popupbrg.retKdBrg txtNmBrg.Text = popupbrg.retNmBrg txtSatuan.Text = Format(CDbl(popupbrg.retSatuan), "##,####,####,###") txtJmlBeli.Focus() End If End Sub
Untuk Tombol tambah : Private Sub btnTambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTambah.Click Dim Value() As String = {txtKdBrg.Text, txtNmBrg.Text, txtSatuan.Text, txtJmlBeli.Text, txtTotal.Text} AddList(Value)
Total += CDbl(txtTotal.Text) : txtGrandTotal.Text = Format(CDbl(CStr(Total)), "##,####,####,###") txtKdBrg.Text = "" : txtNmBrg.Text = "" : txtSatuan.Text = "" : txtJmlBeli.Text = "" txtTotal.Text = "" txtKdBrg.Focus() End Sub Sub AddList(ByVal Value() As String) Dim subIndex As Integer ListView1.Items.Add("") For subIndex = 0 To 4 ListView1.Items(index).SubItems.Add("") ListView1.Items(index).SubItems(subIndex).Text = Value(subIndex) Next End Sub
index = index + 1
Untuk Tombol Simpan : Private Sub cmdSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSimpan.Click Dim counter As Integer Dim sql1, sql2 As String Try sql1 = "INSERT INTO SP(NOSP, TGLSP, KDSUP) " & _ "VALUES('" & txtNoSP.Text & "','" & _ DateTimePicker3.Text & "','" & _ txtkdsup.Text & "')" cmmd1 = New OleDbCommand(sql1, cnn) Dim x As Integer = cmmd1.ExecuteNonQuery For counter = 0 To index - 1 sql2 = "INSERT INTO PESAN(TKDBRG,NOSP, JML, "VALUES('" & _ ListView1.Items(counter).SubItems(0).Text txtNoSP.Text & "','" & _ ListView1.Items(counter).SubItems(3).Text ListView1.Items(counter).SubItems(2).Text cmmd2 = New OleDbCommand(sql2, cnn) cmmd2.ExecuteNonQuery() Next
HRG) " & _ & "','" & _ & "','" & _ & "')"
If x = 1 Then MessageBox.Show("DATA SP BERHASIL DISIMPAN") End If Catch ex As Exception MsgBox(ex.Message) End Try
End Sub
Untuk tombol Batal : Private Sub cmdBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBatal.Click ListView1.Items.Clear() index = 0 : Total = 0 txtGrandTotal.Text = "" End Sub
Untuk Tombol keluar : Private Sub cmdKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdKeluar.Click Me.Close() End Sub End Class
6.3. Soal- Soal Minggu 11 1. Buatlah aplikasi form stok buku yang dipinjam Mahasiswa atau member tampilan aplikasi dapat menggunakan data gridview dan textbox untuk pencariaan berdasarkan kodebuku atau Nim mahasiswa. Minggu 12 2.
Buatlah Aplikasi form input databuku digunakan untuk menambahkan koleksi buku serta kategori buku yang dapat dipinjam atau tidak. Pada form ini inputan dapat berupa kodebuku, judul buku, penerbit, pengarang, edisi, alamat lokasi penyimpanan dst.
MODUL 7 Package Execute Program
Pertemuan
: 26
Peralatan & Perlengkapan
: VISUAL STUDIO 2005 VB.NET dan MySQL
Tujuan pembelajaran praktikum :
¾
Mahasiswa
dapat
membuat
dan
merancang
sistem
informasi
dengan
menggunakan perograman VB.Net (C5) 7.1. Teori/Konsep Membuat Executable: Program yang telah dibuat biasanya harus dijalankan dengan cara membuka sistem Visual Basic terlebih dahulu, hal ini memerlukan banyak waktu dan tenaga. Untuk melakukan efisiensi maka sebaiknya dibuat sebuah file EXE dari program yang telah lengkap tersebut. Untuk membuat kompilasi program lakukan langkah-langkah di bawah ini : 1. Buka program yang akan dikompilasi (misalnya Aplikasi Penjualan) 2. Klik menu File, pilih Make Aplikasi Penjualan.exe …
3. Tulis nama Penjualan)
file
EXE
(misalnya
Program
4. Tentukan posisi penyimpanan file tersebut (misalnya pada direktori C:\Belajar VB) 5. Kemudian pilih OK Membuat Shortcut Setelah terbentuk file EXE dengan langkah-langkah di atas, maka sebaiknya Anda pun membuat shortcut-nya di desktop dengan tujuan agar pada saat program tersebut dijalankan Anda cukup dengan melakukan double-Click pada shortcut tersebut tanpa harus membuka sistem Visual Basic. 7.2. Latihan Soal Buatlah form cetak surat pesanan mengacu pada program sebelumnya :
Imports System.Data.OleDb Imports System.Data Public Class frmCetakSP Dim cnn As OleDbConnection Dim cmmd As OleDbCommand Dim dReader As OleDbDataReader Private Sub frmCetakSP_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated txtNoSP.Focus() End Sub
Untuk Tombol Cari : Private Sub BtnCarisp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCarisp.Click Dim popupSP As New PopSP popupSP.ShowDialog() If popupSP.retNoSP <> "" Then txtNoSP.Text = popupSP.retNoSP txtTglSP.Text = Format(CDate(popupSP.retTglSP), "dd - MMMM - yyyy") txtKdSup.Text = popupSP.retKdSup cmdCetak.Focus() End If '''' UNTUK MENAMPILKAN NAMA SUPPLIER Dim sqlx As String sqlx = "select NMSUP from SUPPLIER where KDSUP like '%" & Trim(txtKdSup.Text) & "%' order by KDSUP asc" cnn = New OleDbConnection(strConn) cnn.Open() cmmd = New OleDbCommand(sqlx, cnn) dReader = cmmd.ExecuteReader If dReader.Read Then txtNmSup.Text = dReader(0) End If End Sub
Untuk Tombol Keluar : Private Sub cmdKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdKeluar.Click Me.Dispose() End Sub
Tombol Batal : Private Sub cmdBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBatal.Click txtNoSP.Text = "" txtTglSP.Text = "" txtKdSup.Text = "" txtNmSup.Text = "" End Sub
Tombol Cetak : Private Sub cmdCetak_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCetak.Click FrmRptCetakSP.Show() End Sub End Class
Imports System.Data.OleDb Imports System.Data Public Class PopSP Public retNoSP, retTglSP, retKdSup As String Dim cnn As OleDbConnection Dim cmmd As OleDbCommand Dim dReader As OleDbDataReader Private Sub popSP_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call list_data() End Sub
Private Sub txtKey_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtKey.TextChanged Call list_data() End Sub
Private Sub list_data() Call clear_list() Dim sqlx As String Dim x As Integer sqlx = "select NOSP, TGLSP, KDSUP from SP where NOSP like '%" & Trim(txtKey.Text) & "%' order by NOSP asc" cnn = New OleDbConnection(strConn) If cnn.State <> ConnectionState.Closed cnn.Open() cmmd = New OleDbCommand(sqlx, cnn) dReader = cmmd.ExecuteReader
Then cnn.Close()
Try While dReader.Read = True x = Val(counter.Text) counter.Text = Str(Val(counter.Text) With ListView1 .Items.Add("") .Items(ListView1.Items.Count
+ 1)
- 1).SubItems.Add("")
.Items(ListView1.Items.Count - 1).SubItems.Add("") .Items(ListView1.Items.Count - 1).SubItems.Add("") .Items(x).SubItems(0).Text = dReader.GetString(0) .Items(x).SubItems(1).Text Format(CDate(dReader.GetDateTime(1)), "dd-MMMM-yyyy") .Items(x).SubItems(2).Text = dReader.GetString(2) End With End While Finally dReader.Close() End Try cnn.Close() End Sub
Private Sub clear_list() While Val(counter.Text) > 0 ListView1.Items(0).Remove() counter.Text = Val(counter.Text) - 1 End While End Sub
Private Sub ListView1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.DoubleClick Call pilih() End Sub
Private Sub pilih() Try retNoSP = ListView1.SelectedItems(0).SubItems(0).Text.ToString retTglSP = ListView1.SelectedItems(0).SubItems(1).Text.ToString retKdSup = ListView1.SelectedItems(0).SubItems(2).Text.ToString Me.Close() Catch ex As Exception MsgBox("pilih salah satu data", MsgBoxStyle.Information) End Try End Sub
Tombol OK : Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click Call pilih() End Sub End Class
7.3. Soal- Soal 1. Buatlah Aplikasi Sistem Informasi dari salah satu atau berbeda kasus-kasus yang ada pada Industri seperti dibawah : a. Sistem Informasi Rekam Medis b. Sistem Informasi Rawat Jalan dan Inap pada RS. XYZ c. Sistem Informasi card member untuk parkir UBM d. Sistem Informasi Pemesan Tiket Kereta API e. Sistem Informasi Keuangan/ General Ledger pada PT. ABCD f. dst setiap proyek dipresentasikan pada saat akhir perkuliahan atau pertemuan 13 dan burning dalam CD/DVD, untuk perancangan sistem dapat digambarkan menggunakan UML atau DFD, database digambarkan dalam bentuk class diagram atau ERD.
DAFTAR PUSTAKA Drs. Ario Suryo Kusumo. (2004). Visual Basic.Net versi 2002 dan 2003. 1. Elex Media Komputindo, Jakarta. Dodit Suprinato. (2010). Membuat Aplikasi Desktop menggunakan Mysql & VB.net. 1. Mediakita, Jakarta. Rani.(2007). Diktat Bahasa pemrograman 3,Universitas Budi Luhur Ciledug