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 ............................................................................ 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
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
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: •
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.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
1
•
Tool – tool pengembang seperti Microsoft VisualStudio .NET yang penyediaan IDE
(Integrated
terintegrasi)
Development
untuk
Enveronment!
memaksimalkan
lingkungan
produktivitas
pengembangan pengembangan
menggunakan .NET Framework. •
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.
•
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 ke dalam platform distributed computing dengan skalabilitas dan kompatibilitas tinggi. Secara teknikal, .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 Runtime (CLR) yang menyediakan run time environment
2
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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 saya ambil dari penjelasan Microsoft dalam FAQ(Frequently 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: PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
3
VB, C++, C#, J# dan 20 bahasa-bahasa pemrograman lainnya yang kompatibel dengan .NET Framework.
Tujuan dari .NET Framework adalah: •
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).
•
Menyediakan lingkungan untuk menjalankan suatu kode yang meminimalkan konflik saat software deployment disebarkan dan versioning /tentang versi.
•
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.
•
Menyediakan lingkungan untuk menjalankan suatu kode yang dapat mengeliminasi masalah performa dari lingkungan scripted dan interpreted.
•
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 : •
Mempersatukan aplikasi Web yang sekarang masi terisolasi.
•
Membuat informasi tersedia di setiap saat dan di setiap tempat.
•
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:
4
•
Mengelola kode (loading dan menjalankan)
•
Isolasi memori aplikasi
•
Verifikasi untuk kemanan type PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
•
Konversi dari IL (Intermediate Language) ke kode native/asli.
•
Akses metadata (informasi yang dipercaya)
•
Mengelola memori pada objek managed/terkelola
•
Mengelola keamanan kode akses
•
Menangani eksepsi (kejadian yang tidak diharapkan yang muncul saat kode dieksekusi) termasuk eksepsi lintas bahasa
•
Inperoperation di antara managed code, objek COM(Component Object Model)
•
Otomatisasi layout objek
•
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, mengatur keamanan, menentukan class manayang menggunakan metode dan memanggil class jika dibutuhkan. 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 suatu idealisasi di masa depan, dimana sebuah aplikasi bersifat terdistribusi dengan modul-modul yang tersimpan di berbagai tempat, PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
5
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 dalam bentuk XML.
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
gaya
pemrograman,
karena
setiap
programmer
dituntut
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
programming.
Pemrograman
web
menjadi
lebih
mudah
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.
6
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
7
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.
8
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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 yang dirancang dengan nuansa OOP juga harus diikuti, sehingga VB.NET dapat dikatakan sebagi full OOP programming. 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.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
9
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 : • Komputer dengan spesifikasi minimal Pentium IV 1,6 GHz • Memori atau RAM yang disesuaikan dengan sistem operasi yang digunakan. • Monitor Super VGS (1024x768) atau yang lebih tinggi. • Hardisk minimal 10 GB. • Mouse • 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 bermacam-bermacam toolbars, komponen, class, object dan sebagainya. Jika Anda sudah terbiasa dengan Visual Basic kemungkinan besar untuk migrasi ke VB.Net tidak akan mengalami kesulitan, karena hampir semua komponen di Visual Basic versi sebelumnya masih bisa digunakan. Sebagai contoh untuk membuat suatu Project dengan VB.Net Anda tinggal klik Menu
10
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
File, kemudian pilih Project dan akan keluar kotak dialog. Setelah itu pilih Windows Application, kemudian beri nama Project tersebut.
Toolbox: Objekobjek yang digunakan untuk mendesain
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.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
11
Aturan Penamaan Variabel Pemberian nama variable memiliki batasan-batasan sbb: •
Harus dimulai dengan karakter alfabetis
•
Hanya dapat mengandung karakter alfabetis,angka,dan underscore(_)
•
Tidak boleh menggunakan spasi
•
Tidak melebihi 255 karakter
•
Harus unik dalam sebuah ruang lingkup yang sama
•
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).
12
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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, sTinggi, sGaji As Single Ketiga variabe tersebut 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. PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
13
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.Multiply(0.1, dGajiTotal)
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 Total = " & dGajiTotal.ToString 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 built in function dalam sebuah variabel.
Gambar 1.2. Form perhitungan dengan Label
14
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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 PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
15
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 tertentu saja maka nama variabel tersebut hanya berlaku di dalam prosedur 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.
16
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
17
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
18
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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 masingmasing variabel dapat diinput melalui aplikasi
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
19
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
20
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
MODUL 2 PENGENALAN OBJEK ORIENTED PADA VB.NET
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 PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
21
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 yang dirancang dengan nuansa OOP juga harus diikuti, sehingga VB.NET dapat dikatakan sebagi full OOP programming. 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 (Object Oriented Design) Desain Berorientasi Objek / Object Oriented Design (OOD) merupakan tahapan lanjutan setelah OOA dimana tujuan sistem
22
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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 terstruktur
dan pemrograman
berorientasi objek.
Pemrograman
berorientasi objek (Inggris: object-oriented programming 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 OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
23
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 definisidefinisi 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
24
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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 burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, 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
mengetahui dan
tergantung
kepada
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
representasi dalam objek
tersebut.
25
Inheritas- Mengatur polimorfisme dan enskapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.) Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut(terstruktur) tetapi objekobjek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, 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 oriented. Aplikasi ini digunakan untuk menghitung transaksi penjualan produk.
26
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
27
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
28
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
29
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
30
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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)
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
31
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:
32
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
33
MODUL 3 DESAIN INTERFACE DAN CONTROL OBJEK
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. Pengguna menjalankan perintah dan program di sistem operasi tersebut 34
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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. Control Objek Salah 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 ke 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 bounding rectangle Mendapat / Mengatur kontrol persegi panjang melompat-lompat
CanFocus
Returns a value specifying if the control can recieve focus 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 value 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
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
35
controls that require validation Mendapat / Set nilai specfying jika kontrol penyebab validasi untuk semua kontrol yang membutuhkan validasi ContainsFocus
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
Focused
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 kontrol
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 upper-left corner of the control Mendapat / Mengatur koordinat sudut kiri atas kontrol
Name
Gets/Sets name for the control Mendapatkan / Mengatur nama untuk 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 kontrol 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 piksel
TabIndex
Gets/Sets the tab order of this control in its container Mendapat / Mengatur urutan tab kontrol ini dalam wadah
36
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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 kontrol
Text
Gets/Sets the text for this control Mendapat / Mengatur teks untuk kontrol ini
Top
Gets/Sets the top coordinates of the control Mendapat / Mengatur koordinat atas kontrol
Visible
Gets/Sets a value 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 kontrol
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
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
37
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)
38
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
39
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
40
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
.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, .mTunjanganTransport)
End With End If End With End Sub End Class
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
41
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.
42
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
MODUL 4 PEMROGRAMAN DATABASE DAN MANIPULASI
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 PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
43
- Pengubahan data pada database client ANTARMUKA BERBENTUK FORM isian: ___ pass: * * * * SUBMIT
Hasil Form
Nama Variabel dan Nilai
PROGRAM PEMROSES RESPON (ASP, PHP, CGI)
DATABASE
server
HTML
4.1.2. Instalasi MySQL Instalasi 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
44
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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: PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
45
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 );
46
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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 ); PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
47
Perintah Memasukan data dengan MySQL: Insert into anggota (nomor,nama,email,alamat,kota) values (100,’Adi’,’
[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 Nama 100 Refiyanto 101 Tono
Email
[email protected] [email protected]
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
[email protected] [email protected] [email protected] [email protected] [email protected]
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;
48
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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 Medan Jakarta Medan Madiun Malang Surabaya Kediri Medan Surabaya
Gaj 10000 14000 12000 15000 17000 20000 16000 12000 21000
4. Hapuslah record dengan ID 100. 5. Update data untuk ID 101 dan 102 sbb : ID 101 102
Nama Naila Rafi
Alamat Surabaya Semarang
Gaji 10000 14000
6. Buat perintah SQL berikut ini untuk menampilkan : a. Semua kolom dari tabel pegawai b. Kolom nama dan gaji dari tabel pegawai PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
49
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
Tipe Data varchar varchar Int
Lebar 7 25 4
Keterangan Kode Barang Nama Barang Jumlah Barang
Nama Tabel : SUPPLIER No. Nama Field 1. KDSUP (Primary Key) 2. NMSUP 3. TALAMAT
Tipe Data varchar varchar varchar
Lebar 7 25 35
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.
50
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
MODUL 5 PENGGUNAAN OBJEK ADO.NET
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 PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
51
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.
52
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
53
Gambar 5.1. Arsitektur Data ADO.NET
5.1.6. Komponen kelas yang membentuk Penyedia data 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 tiga metode yang digunakan untuk mengeksekusi perintah pada database:
54
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
ExecuteNonQuery: Melaksanakan perintah yang memiliki nilai yang tidak kembali seperti INSERT, UPDATE atau DELETE ExecuteScalar: Mengembalikan nilai tunggal dari query database ExecuteReader: Mengembalikan hasil set dengan cara objek dataReader 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
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
55
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 F 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.
Beri nama Module1.vb
Gambar 5.2.Tampilan membuat Module 56
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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 PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
57
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 Group Box
Button Label
TextBox
Group Box
Button
58
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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) Else txtKdBrg.Text = "BG00001" Exit Sub
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
59
End If 'MsgBox(strTemp) strValue = Val(strTemp) + 1 txtKdBrg.Text = "BG" & 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
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() Else txtNmBrg.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)
60
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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 Else txtKdBrg.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() Else 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 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() Else MessageBox.Show("GAGAL UPDATE DATA") End If End Sub
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
61
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() Else MessageBox.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
62
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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 Then cnn.Close() cnn.Open() cmmd = New OleDbCommand(sqlx, cnn)
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
63
dReader = cmmd.ExecuteReader Try While dReader.Read = True x = Val(counter.Text) counter.Text = Str(Val(counter.Text) + 1) 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).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
64
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
65
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 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 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 Else txtKdSup.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
66
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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() Else txtNmSup.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
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
67
Else txtKdSup.Text = "SU00001" Exit Sub End If 'MsgBox(strTemp) strValue = Val(strTemp) + 1 txtKdSup.Text = "SU" & Mid("00000", 1, 5 - strValue.Length)& strValue txtNmSup.Text = "" txtAlamat.Text = "" txtNmSup.Focus() Else 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() Else MessageBox.Show("GAGAL UPDATE DATA") End If End Sub
68
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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() Else MessageBox.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
Perpustakaan,
untuk
latihan
buatlah
form
Data
Mahasiswa/Member untuk komponen input dan output dapat 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.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
69
MODUL 6 MENU DAN CRYSTAL REPORT
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
70
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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. PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
71
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 :
72
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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 " klik As a Blank Report " klik tombol OK
4. Setelah desain Crystal Report tampil klik kanan pada Database Fields lalu pilih
Database Expert.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
73
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 74
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
6. Desain Tampilan Crystal Raport.
Perbedaan setelah dikoneksikan dengan tabel
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:
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
75
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
76
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
4. Kemudian koneksikan form dengan CrystalReport yang telah dibuat : Atur properties à ReportSource --> pilih CrystalReport yang telah dibuat
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
77
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.
78
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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)
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
79
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) Else txtNoSP.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
80
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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)
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
81
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 index = index + 1 End Sub
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
82
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
83
MODUL 7 Package Execute Program
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 file EXE (misalnya Program Penjualan)
84
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
85
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
86
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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 Then cnn.Close() cnn.Open() cmmd = New OleDbCommand(sqlx, cnn) dReader = cmmd.ExecuteReader Try While dReader.Read = True x = Val(counter.Text) counter.Text = Str(Val(counter.Text) + 1) With ListView1 .Items.Add("") .Items(ListView1.Items.Count - 1).SubItems.Add("")
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
87
.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
88
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
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.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
89
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
90
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN