Anda di halaman 1dari 59

BAB I PENGENALAN .

NET FRAMEWORK DAN MICROSOFT VISUAL STUDIO 2008


1. Pendahuluan Sering sekali di dunia pemrograman, sebuah ide baru yang diperkenalkan dapat mengubah segalanya. Microsoft salah satunya. Sebagai pemain besar dalam industri teknologi informasi memberikan terobosan dengan memperkenalkan .NET Framework. Lingkungan pemrograman ini jelas telah menjadi pemain utama dalam dunia pemrograman saat ini. Adapun .NET Framework menjanjikan segala macam yang dahulu diimpikan oleh para programmer, seperti penyederhanaan sintaks bahasa, kemudahan penggunaan model objek, dan kemudahan integrasi dari database ke dalam bahasa pemrograman. 2. Sekilas .NET Framework .NET Framework adalah perangkat lunak framework untuk sistem operasi Microsoft Windows. Perangkat lunak ini memiliki library yang besar, dan mendukung beberapa bahasa pemrograman yang memungkinkan suatu bahasa pemrograman menggunakan suatu kode yang ditulis dengan bahasa pemrograman lain (interoperabilitas). Program yang ditulis pada .NET Framework dieksekusi dalam sebuah lingkungan perangkat lunak, yang disebut Common Language Runtime (CLR). CLR adalah sebuah aplikasi mesin virtual yang membantu programmer sehingga tidak perlu untuk mempertimbangkan kapabilitas dari CPU tertentu yang akan mengeksekusi program. Selain itu CLR juga menyediakan layanan penting lainnya seperti keamanan, menajemen memory, dan penanganan kesalahan. 3. Hubungan Bahasa Pemrograman .NET dengan .NET Framework Bahasa pemrograman .NET adalah bahasa pemrograman yang membutuhkan .NET Framework untuk dapat menjalankan aplikasi yang dibuat dengan bahasa pemrograman ini. Bahasa pemrograman .NET terdiri dari Visual C++, Visual C# dan Visual Basic. Aplikasi yang dibuat dengan bahasa pemrograman .NET walaupun berekstensi .exe tetapi tidak dapat dieksekusi langsung karena bahasa didalamnya tidak dapat dipahami
1

oleh mesin. Sebenarnya program yang dihasilkan oleh bahasa pemrograman .NET sebenarnya bukanlah bahasa mesin umum yang dikenal selama ini. Bahasa yang dihasilkan oleh compiler .NET dinamakan sebagai Intermediate Language (IL). Bahasa inilah yang dikenal pada CPU Virtual buatan Microsoft yang bernama CLR, sehingga tidak dikenal pada CPU nyata. Setelah itu .NET Framework menerjemahkan perintah dalam bahasa IL menjadi bahasa mesin murni yang dapat dijalankan pada CPU sebenarnya. 4. Keunggulan yang Ditawarkan .NET Framework Adapun keunggulan .NET Framework yang ditawarkan oleh Microsoft adalah sebagai berikut: .NET Framework memungkinkan penggunaan bahasa pemrograman yang berbeda dalam pembangunan aplikasi. Aplikasi yang dibangun bergantung pada .NET Framework, bukan pada sistem operasi atau CPU sehingga bisa dijalankan dimana saja asalkan .NET Framework tersedia. Sebelum diberikan ke sistem operasi dan CPU, kode program akan ditangani oleh .NET Framework sehingga memungkinkan pencegahan terhadap kode yang membahayakan sistem operasi dapat dicegah. 5. Sekilas Microsoft Visual Studio 2008 Microsoft Visual Studio adalah sebuah Integrated Development Environment (IDE) atau aplikasi perangkat lunak dari Microsoft yang menyediakan fasilitas untuk pengembangan perangkat lunak. Microsoft Visual Studio dapat digunakan untuk mengembangkan aplikasi console ataupun aplikasi yang berbasis graphical user interface untuk semua platform yang didukung oleh Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework, dan Microsoft Silverlight. Microsoft Visual Studio mendukung beberapa bahasa pemrograman melalui layanan bahasa, sehingga memungkinkan code editor dan debugger untuk mendukung (dalam berbagai tingkat) hampir semua bahasa pemrograman serta memberikan layanan tertentu pada suatu bahasa.

Bahasa bawaan yang ada pada Microsoft Visual Studio 2008 antara lain adalah C/C+ +, VB.NET, dan C#. Bahasa yang didukung antara lain M, Phyton, dan Ruby. Juga didukung XML/XSLT, HTML/XHTML, JavaScript dan CSS. 6. Area Kerja Microsoft Visual Studio 2008 Adapun area kerja pada Microsoft Visual Studio 2008 diperlihatkan pada Gambar 1.1 sebagai berikut.
Menu Bar Panel

Stage Panel Toolbox

Panel

Gambar 1.1 Area Kerja Microsoft Visual Studio 2008 Area kerja Microsoft Visual Studio 2008 terdiri dari empat bagian utama. Adapun empat bagian itu adalah: a. Menu Bar Menu Bar adalah kumpulan menu-menu yang menyimpan kumpulan-kumpulan instruksi yang digunakan dalam Microsoft Visual Studio 2008. Contohnya untuk instruksi menyimpan aplikasi yang dibuat, terdapat pada menu File -> Save All.

b. Stage Stage adalah area yang digunakan untuk membuat aplikasi perangkat lunak baik secara code maupun secara visual. c. Toolbox Toolbox adalah wadah peralatan-peralatan yang digunakan untuk membangun aplikasi secara visual pada Microsoft Visual Studio 2008. d. Panel Panel adalah kendali fungsi yang dipakai dalam Microsoft Visual Studio 2008. Contoh panel antara lain adalah Properties, Output, dan Class View. 7. Penutup Walaupun bahasa pemrograman yang terdapat pada Microsoft Visual Studio dan yang menggunakan .NET Framework cukup banyak, tetapi pada praktikum Analisis dan Perancangan Sistem ini akan digunakan bahasa C# yang pada Microsoft Visual Studio ditawarkan dalam bentuk Visual C#. C# dipilih mengingat dasar bahasa pemrograman yang telah dipelajari praktikan pada kuliah sebelumnya, yaitu bahasa pemrograman Java. Perpindahan bahasa dari Java ke C# akan mudah, karena C# mengimplementasi 70% mirip seperti Java.

BAB II PENGENALAN BAHASA PEMROGRAMAN C#


1. Pendahuluan Bahasa pemrograman C# adalah bahasa yang dikembangkan oleh Microsoft yang mempergunakan .NET Framework. Bahasa C# merupakan bahasa pemrograman multi paradigma yang meliputi imperatif, deklaratif, fungsional, berorientasi objek, dan berorientasi komponen. Pada saat ini, bahasa C# diklaim sebagai bahasa yang kuat dan dipakai oleh banyak professional IT. 2. Konsep Dasar Bahasa Pemrograman C# Konsep dasar pada pemrograman C# adalah jelas dan nyata bahkan sampai program yang paling sederhana. Pada dasarnya, program C# dianggap sebagai bawang dengan banyak lapisan. Seperti yang terlihat pada Gambar 2.1 berikut.

Gambar 2.1 Lapisan pada Program C# Dalam program C#, terdapat lapisan kode dalam bentuk umum ke lapisan kode dalam bentuk yang lebih spesifik. Bagian luar lapisan, atau yang paling umum, adalah lapisan namespace. Di dalam namespace terdapat serangkaian kelas (class), yang di dalam kelaskelas tersebut terkandung metode (method). Lapisan akhir adalah pernyataan (statement) yang terdapat di dalam metode. Namespace adalah elemen yang memungkinkan programmer untuk menyatukan berbagai program mandiri. Program mandiri itu antara lain sistem komputer itu sendiri, elemen Windows seperti Textbox dan Buttons. Sebagai catatan, program mandiri itu adalah namespace itu sendiri.
5

Kelas (class) adalah definisi untuk suatu objek dalam dunia pemrograman sedangkan objek adalah segala sesuatu yang dapat komputer deskripsikan. Setiap namespace dapat memiliki beberapa kelas di dalamnya. Kelas biasanya akan digunakan untuk mendeskripsikan suatu entitas. Jika suatu objek melakukan sesuatu menggunakan suatu struktur yang disebut metode (method). Dalam bahasa pemrograman seperti C atau Delphi, metode hampir mirip dengan fungsi atau subprogram pada bahasa tersebut. Di dalam metode terdapat instruksiinstruksi yang akan di eksekusi oleh komputer. Instruksi-instruksi itulah yang disebut dengan pernyataan (statement). Pada program berikut ini akan dijelaskan tentang lapisan-lapisan yang terdapat dalam program C#. Program pada pertemuan kali ini akan menggunakan console. Percobaan 2.1
using System;

Program Apa Kabar S1 Ilmu Komputer USU


//menggunakan namespace System

namespace ApaKabar //nama namespace(program) adalah ApaKabar { class Hello //memberikan nama kelas adalah Hello { static void Main(string[] args) //metode main { Console.Write("Apa Kabar S1 Ilmu Komputer USU!!"); Console.ReadKey(); } } }

Program di atas menggunakan namespace System dan Class Console. Namespace dan Class tersebut diperlukan karena pada program di atas menggunakan console Windows untuk dapat berinteraksi dengan pengguna. Untuk mencetak kata : Apa Kabar S1 Ilmu Komputer USU!! diperlukan method Write yang terdapat dalam class Console sehingga statement yang dituliskan adalah : nama_class.nama_methods. Dalam hal ini adalah Console.Write(Apa Kabar S1 Ilmu Komputer USU!!);. Perintah selanjutnya yaitu Console.Readkey(); digunakan untuk menahan layar console agar tidak langsung menutup setelah mencetak kata yang diinginkan. 3. Input Output dalam Bahasa Pemrograman C# Setiap program yang dibuat haruslah interaktif. Maka dari itu bahasa C# menyediakan cara agar dapat menerima input dari pengguna program. Contoh program berikut ini akan dijelaskan mengenai input dan output pada bahasa C#.
6

Percobaan 2.2
using System;

Program Halo Pengguna

namespace HaloPengguna { class Pengguna { static void Main(string[] args) { string nama; //inisialisasi variabel nama dgn tipe string Console.Write("Please Enter Username = "); nama = Console.ReadLine(); //input nama user ke variabel nama Console.WriteLine("Halo {0}!", nama); //cetak variabel nama Console.WriteLine("Please press any key to continue"); Console.ReadLine(); } } }

4. Tipe Data dalam Bahasa Pemrograman C# Dalam bahasa C# terdapat beberapa tipe data dasar. Setiap tipe data akan memerlukan jumlah memory yang berbeda dan mempunyai cara kerja yang berbeda. Contohnya tipe data int digunakan untuk bilangan bulat dan tipe data float digunakan untuk bilangan desimal. Tabel 2.1 memperlihatkan mengenai tipe data dasar yang tersedia di bahasa C#. Tabel 2.1 Tipe Data Dasar pada C# Type bool char string int long float double Deskripsi Boolean (Trus/False) Satu karakter Banyak karakter Integer (positif atau negatif) Long Integer Floating point angka real Double precision angka real Nilai True / False Karakter abjad Kalimat -2 milyar 2 milyar +/- 9 * 1018r +/- 3.5*1038 +/- 1.7*10308 Contoh true a ilmu komputer 34, -7 3L, -23L 1.5f, -3.1415927f -2.5, 3.1415

5. Struktur Percabangan pada Bahasa C# Untuk membuat program komputer lebih menarik adalah dengan membuatnya terlihat dapat mengubah kebiasaan. Fleksibilitas tersebut dapat dilakukan dengan menggunakan struktur percabangan. Seperti bahasa pemrograman lain, struktur percabangan di bahasa C# adalah dengan menggunakan struktur If dan struktur Switch. Pada percobaan berikut akan dijelaskan pemakaian struktur If sekaligus menjelaskan penggunaan tipe data pada C#.

Percobaan 2.3
using System;

Program Nilai Mahasiswa

namespace NilaiMahasiswa { class Hitung { string nama; char car; int a, b; float c; float rata(int a, int b) //method untuk mengitung nilai rata-rata { return (a + b) / 2; //mengembalikan nilai hasil (a+b)/2 } static void Main(string[] args) { Hitung nilai = new Hitung(); //membuat instance class Hitung Console.Write("Masukkan nama Anda = "); nilai.nama = Console.ReadLine(); Console.Write("input nilai tugas a = "); nilai.a = Convert.ToInt32(Console.ReadLine()); //mengubah inputan string ke dalam bentuk nilai integer Console.Write("input nilai tugas b = "); nilai.b = Convert.ToInt32(Console.ReadLine()); nilai.c = nilai.rata(nilai.a, nilai.b); //memanggil method rata dan hasilnya dimasukkan ke nilai.c if (nilai.c > 8) //struktur percabangan If { nilai.car = 'A'; } else if (nilai.c > 5) { nilai.car = 'B'; } else { nilai.car = 'C'; } Console.WriteLine("Nilai {0} adalah {1}", nilai.nama, nilai.car); Console.ReadLine();

} } }

Contoh program selanjutnya akan menunjukkan penggunaan struktur percabangan dengan menggunakan statement Switch.

Percobaan 2.4
using System;

Program Sapaan Satpam

namespace SapaanSatpam { class Satpam { string nama; string sapaan; void input() { Console.Write("Siapa Anda ? "); nama = Console.ReadLine(); } void cekNama(string nama) { switch (nama) //penggunaan struktur switch { case "Bill Gates" : //case untuk inputan = Bill Gates sapaan = "Selamat atas kehebatan bahasa C#"; break; //statement untuk mengakhiri case case "James Gosling" : //case untuk inputan = James Gosling sapaan = "Selamat atas kehebatan bahasa Java"; break; case "Alan Turing" : //case untuk inputan = Alan Turing sapaan = "Mesin Turing sangat mengagumkan!"; break; case "Grace Hopper" : //case untuk inputan = Grace Hopper sapaan = "Terima kasih telah menemukan bug pertama"; break; default : //case untuk inputan yang belum didefinisikan sapaan = "Selamat datang " +nama+ " sang calon penemu teknologi berikutnya"; break; } } static void Main(string[] args) { Satpam andi = new Satpam(); andi.input(); andi.cekNama(andi.nama); Console.WriteLine(); Console.WriteLine(); Console.Write(andi.sapaan); Console.ReadLine(); } } }

//membuat instance class Satpam //memanggil method input //memanggil method cekNama //membuat baris baru //mencetak hasil sapaan

6. Struktur Perulangan pada Bahasa C# Salah satu bagian penting dari pemrograman komputer adalah kemampuan untuk mengulangi suatu perintah. Hal ini dilakukan dengan menggunakan struktur perulangan. Struktur perulangan pada bahasa C# dapat dilakukan dengan menggunakan perintah For dan perintah While.
9

Pada contoh program di bawah ini akan menunjukkan penggunaan struktur perulangan dengan menggunakan statement For. Percobaan 2.5
using System; namespace HitungDomba { class Domba { int jlhDomba; void hitung() { for (jlhDomba = 1; jlhDomba <= 10; jlhDomba++) //statement for { Console.WriteLine("Domba {0}", jlhDomba); } } static void Main(string[] args) { Domba dombaPutih = new Domba(); //membuat instance class Domba dombaPutih.hitung(); //memanggil method hitung Console.WriteLine(); if (dombaPutih.jlhDomba >= 10) { Console.WriteLine("Selamat Tidur"); } Console.ReadLine(); }

Program Hitung Domba

} }

Pada contoh program di berikutnya akan menunjukkan penggunaan struktur perulangan dengan menggunakan statement While. Percobaan 2.6
using System; namespace OpenSesame { class PintuSihir { string nama; string kataKunci; void input() { while (nama != "Ali Baba" && kataKunci != "Open Sesame") //struktur while { Console.Write("Siapa Anda ??"); nama = Console.ReadLine();

Program Open Sesame!!

10

} }

Console.WriteLine(); Console.Write("Sebutkan Kata Kunci !!"); kataKunci = Console.ReadLine(); Console.WriteLine(); cekKataKunci(nama, kataKunci);

void cekKataKunci(string nama, string kataKunci) { if (nama != "Ali Baba" && kataKunci != "Open Sesame") { Console.WriteLine("Pergi Dari Sini!!"); Console.WriteLine(); } else { Console.Write("Silahkan Masuk Tuan {0}", nama); Console.WriteLine(); } } static void Main(string[] args) { PintuSihir pintuGua = new PintuSihir(); pintuGua.input(); Console.ReadLine(); } } }

7. Konsep Object Oriented Programming pada C# Object Oriented Programming merupakan suatu pendekatan yang menyajikan suatu cara dalam membuat modul program dengan membuat bagian-bagian memori disekat untuk data dan fungsi yang dapat digunakan sebagai suatu template untuk membuat salinan yang dapat digunakan kembali. a. Class Class pada C# merupakan kumpulan variabel, property dan method. Cara untuk menggunakan class adalah dengan membuat instan class-nya (instance). Pada percobaa-percobaan sebelumnya telah dijelaskan pendeklarasian class dan penggunaan class-nya. b. Access Modifier Access modifier digunakan untuk menentukan hak akses dari suatu class dan method. Adapun access modifier yang ada di C# diperlihatkan pada Tabel 2.2 dan contoh penggunaan access modifier diperlihatkan pada Percobaan 2.7 berikut.
11

Tabel 2.2 Access Modifier pada C# Kata Kunci internal internal protected private protected public Deskripsi Dapat diakses pada class yang ada dalam satu assembly/ aplikasi Dapat diakses pada class yang satu assembly dan class turunannya Hanya dapat diakses dari class itu sendiri Dapat diakses dari class itu sendiri dan class turunannya Dapat diakses dari lain assembly yang mereferensi class tersebut

Percobaan 2.7
using System;

Program Access

namespace Access { class Waktu { public int year; //variabel dapat diakses class lain private int month; //variabel tidak dapat diakses class lain protected int date; //variabel bisa diakses oleh class turunan Waktu public void DisplayCurrentTime() //method dapat diakses class lain { Console.WriteLine("Tahun Sekarang : {0}", year); Console.WriteLine("Bulan Sekarang : {0}", month); Console.WriteLine("Tanggal Sekarang : {0}", date); } } class Utama { static void Main(string[] args) { Waktu objTime = new Waktu(); objTime.year = 2011; objTime.month = 2; //statement yang salah objTime.date = 7; //statement yang salah objTime.DisplayCurrentTime(); } } } Console.ReadLine();

Sebagai catatan, jika suatu variabel atau method tidak didefinisikan access modifiernya, maka variabel atau method tersebut di-default-kan oleh C# sebagai private. c. Enkapsulasi Data dengan Property Enkapsulasi atau penyembunyian informasi adalah konsep dimana informasi dibungkus dalam sebuah class sehingga untuk menggunakan class tersebut hanya cukup
12

mengetahui method dan property apa saja yang ada dalam class tersebut dan kegunaannya. Biasanya variabel pada suatu class diberi access modifier private. Pada C#, untuk mengakses variabel tersebut dapat menggunakan property set dan get. Contoh penggunaan set dan get dapat dilihat pada contoh program berikut. Percobaan 2.8 Program Enkapsulasi

using System; namespace Enkapsulasi { class Waktu { private int year; private int month; private int date; public int Tahun { get { return year; } set { year = value; } } public int Bulan { get { return month; } set { month = value; } } public int Tanggal { get { return date; } set { date = value; } } } class Utama { static void Main(string[] args) { Waktu objTime = new Waktu(); objTime.Tahun = 2011; //panggil method Tahun objTime.Bulan = 2; //panggil Method Bulan objTime.Tanggal = 7; //panggil method Tanggal Console.WriteLine("Tahun : {0}", objTime.Tahun); Console.WriteLine("Bulan : {0}", objTime.Bulan); Console.WriteLine("Tanggal : {0}", objTime.Tanggal); Console.ReadLine(); } } }

//property get (mengambil nilai) //property set (menetapkan nilai)

13

d. Konstruktor Konstruktor adalah method yang namanya sama dengan nama class-nya. Konstruktor digunakan untuk inisialisasi variabel ketika membuat instan ( instance) class. Sebenarnya setiap kali membuat instance class, maka konstruktor akan dijalankan. Jika konstruktor tidak didefinisikan secara eksplisit maka akan dianggap sebagai konstruktor kosong. Konstruktor juga dapat di-overload atau dapat dibuat lebih dari satu konstruktor asal jumlah parameternya berbeda atau tipe data parameternya berbeda. Contoh penggunaan konstruktor diperlihatkan pada contoh program berikut. Percobaan 2.9 Program Konstruktor

using System; namespace Access { class Waktu { private int year; private int month; private int date; public Waktu() { year = 2011; month = 2; date = 7; } //konstruktor

public Waktu(int year, int month, int date) //overload konstruktor { this.year = year; this.month = month; this.date = date; } public int Tahun {...} //statement sama dengan program sebelumnya public int Bulan {...} //statement sama dengan program sebelumnya public int Tanggal {...} //statement sama dengan program sebelumnya } class Utama { static void Main(string[] args) { Waktu objTime = new Waktu(); //instance objTime Waktu birth = new Waktu(1989,3,2); //instance birth Console.WriteLine("Waktu Sekarang : {0}, {1}, {2}", objTime.Tahun, objTime.Bulan, objTime.Tanggal); Console.WriteLine(); Console.WriteLine("Waktu Lahir : {0}, {1], {2}", birth.Tahun, birth.Bulan, birth.Tanggal); Console.ReadLine(); } } }

14

e. Inheritance Inheritance atau pewarisan bertujuan untuk pemakaian kembali kode program yang sudah pernah ditulis. Konsep ini memungkinkan programmer untuk mengembangkan class baru dari class lama yang sudah pernah dibuat sehingga tidak perlu untuk membuat class baru dengan kode yang sama dengan class sebelumnya. Contoh penggunaan konsep inheritance pada C# diperlihatkan pada contoh program berikut. Percobaan 2.10 Program Konstruktor
using System; namespace inheritance { class Person { protected string nama; protected int umur; public Person(string nama, int umur) { this.nama = nama; this.umur = umur; } public string getNama() { return this.nama; } public int getUmur() { return this.umur; } //konstruktor

class Student : Person //class student anak dari class person { private string namaSekolah; public Student(string nama, int umur, string namaSekolah) : base(nama, umur) //konstruktor { this.namaSekolah = namaSekolah; } public string getnamaSekolah() { return this.namaSekolah; }

class Utama { static void Main(String[] args) { Person orang = new Person("Tania", 17);

15

Student pelajar = new Student("Indah", 17, "SMAN 2"); Console.WriteLine("Informasi Tentang Objek Person"); Console.WriteLine("Nama = " + orang.getNama()); Console.WriteLine("Umur = " + orang.getUmur()); Console.WriteLine(); Console.WriteLine("Informasi Tentang Objek Student"); Console.WriteLine("Nama = " + pelajar.getNama()); Console.WriteLine("Umur = " + pelajar.getUmur()); Console.WriteLine("Nama Sekolah = " + pelajar.getnamaSekolah()); Console.ReadLine(); } } }

f. Polymorphism Polymorphism atau polimorfisme adalah penggunaan method yang sama tetapi menghasilkan suatu hasil yang berbeda tergantung class yang menggunakan method tersebut. Contoh penggunaan polymorfisme pada C# diperlihatkan pada contoh program berikut. Percobaan 2.11 Program Polymorphism
using System; namespace polymorphisme { class Kendaraan { private int posisi; public Kendaraan(int posisi) { this.posisi = posisi; } public int Position { get { return posisi; } set { posisi = value; } } public virtual void Move() { return; } //konstruktor

class Motor : Kendaraan { public Motor(int posisi) : base(posisi) { } public override void Move() { base.Position = base.Position + 30; }

16

class Mobil : Kendaraan { public Mobil(int posisi) : base(posisi) { } public override void Move() { base.Position = base.Position + 70; } } class Program { static void Main(string[] args) { int posisi = 10; Kendaraan[] kendaraan = new Kendaraan[2]; kendaraan[0] = new Motor(posisi); kendaraan[1] = new Mobil(posisi); for (int i = 0; i < kendaraan.Length; i++) { Console.WriteLine("objek[" + i + "] memanggil method move"); Console.WriteLine("Posisi sebelum method move di panggil " + kendaraan[i].Position); kendaraan[i].Move(); Console.WriteLine("Posisi setelah method move di panggil " + kendaraan[i].Position); Console.WriteLine(); } Console.ReadLine(); } }

17

BAB III PEMROGRAMAN GUI PADA C# BAGIAN 1


1. Pendahuluan Pada bab sebelumnya, telah dipelajari pemrograman C# dan juga konsep pemrograman berorientasi objek yang dilengkapi dengan contoh program. Tetapi program-program tersebut masih tidak terlihat modern karena ditulis untuk menggunakan antarmuka console yang tidak menarik dan tidak bersahabat. Pada bab ini, akan diperkenalkan bagaimana menggunakan pemrogramaan C# yang sehingga program yang dibuat akan memiliki kapabilitas tampilan grafik antarmuka seperti Windows. 2. Graphical User Interface (GUI) Graphical User Interface (GUI) adalah terobosan yang bertujuan untuk memudahkan pengguna aplikasi komputer. Terobosan ini memungkinkan pengguna untuk menggunakan mouse dan menekan beberapa elemen grafik sebagai pengganti mengetik perintah pada menu yang berbasis teks. Kegunaan lain dari GUI adalah membatasi input pengguna. Hal ini mencegah pengguna untuk menginput data yang salah dan hal ini sangat membantu programmer untuk meminimalkan penulisan kode pengecekan kesalahan. 3. Bekerja dengan Windows Form pada Microsoft Visual Studio 2008 Windows Form adalah nama yang diberikan untuk graphical user interface (GUI) pada application programming interface yang merupakan bagian dari Microsoft .NET Framework, yang menyediakan akses ke element interface Microsoft Windows. Untuk menggunakan Windows Form, diperlukan membuat project Windows Form Application terlebih dahulu. Caranya pilih menu File New Project. Ketika muncul kotak dialog untuk pemilihan template, pilih template untuk Windows Form Application. Ketika template telah dipilih dengan menekan tombol OK, maka akan terbuka Microsoft Visual Studio Integrated Development Environment (IDE). Didalamnya terdiri dari tools yang digunakan untuk merancang aplikasi secara visual. Pada layar kerja Microsoft Visual Studio 2008 IDE terdapat dua tampilan: Design View dan Code View. Tampilan saat Visual Studio 2008 IDE dibuka adalah Design View

18

yang digunakan untuk merancang tampilan aplikasi. Code View adalah tampilan area kode program untuk mengimplementasikan fungsionalitas aplikasi. Untuk mengubah Design View ke Code View pilih menu View Code dan sebaliknya. 4. Penggunaan Form Form adalah area dimana elemen-elemen grafik akan diletakkan. Ibaratkan sebagai kanvas untuk melukis, Form adalah kanvas tersebut. Beberapa properties yang ada pada Form diperlihatkan pada Tabel 3.1 berikut. Tabel 3.1 Beberapa Properties Dari Form dan Kegunaannya No. 1. 2. 3. 4. 5. Nama Properties Text (Name) Size StartPosition BackColor Kegunaan Mengatur judul Form Mengatur nama Form Mengatur ukuran Form Mengatur posisi Form ketika dipanggil Mengatur warna Form

5. Penggunaan Button Button adalah elemen grafik atau komponen yang digunakan untuk mengeksekusi event. Event adalah pesan atau perintah dari suatu objek. Misalnya jika suatu Button di tekan, maka Button tersebut akan mengeksekusi event untuk mengeluarkan pesan konfirmasi. Beberapa properties yang ada pada Button diperlihatkan pada Tabel 3.2 berikut. Tabel 3.2 Beberapa Properties Dari Button dan Kegunaannya No. 1. 2. 3. 4. 5. 6. 7. Nama Properties Font Image ImageAlign Text Enable Visible (Name) Kegunaan Mengatur bentuk huruf Button Mengatur gambar pada Button Mengatur posisi gambar pada Button Mengatur tulisan pada Button Mengatur ketersediaan Button Mengatur kenampakan Button Mengatur nama Button

Contoh program di bawah ini akan memperlihatkan penggunaan Form dan Button serta penggunaan event.

19

Percobaan 3.1 Design View

Program Jangan Click!!

No. Nama Objek 1. Form 2 3. Label Button

Nama Properties (Name) Text (Name) Text Font (Name) Text Font

Nilai frContoh1 Contoh Form Dan Button lblJangan Jangan Click Comic Sans MS; 16 btKlik Click Di Sini Comic Sans MS; 12

Code View
using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; //mengakses eleman penggambaran misalnya ukuran dan letak posisi objek di layar using System.Linq; using System.Text; using System.Windows.Forms; //program dapat menggunakan Forms dan tools lain dalam toolbox namespace JanganClick { public partial class frContoh1 : Form { public frContoh1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { lblJangan.Text = "Aduh!!!"; //Jika tombol ditekan maka label akan mengubah teksnya menjadi Aduh!! }

20

6. Penggunaan TextBox TextBox adalah komponen grafik yang digunakan untuk melakukan masukan berupa teks atau angka terbatas. Beberapa properties yang ada pada TextBox diperlihatkan pada Tabel 3.3 berikut. Tabel 3.3 Beberapa Properties Dari TextBox dan Kegunaannya No. 1. 2. 3. 4. 5. 6. 7. 8. 6. 7. Nama Properties Font Text TextAlign Enable MaxLength MultiLine PasswordChar ReadOnly Visible (Name) Kegunaan Mengatur bentuk huruf pada TextBox Mengatur tulisan pada TextBox Mengatur posisi tulisan pada TextBox Mengatur ketersediaan TextBox Mengatur panjang maksimal inputan yang dapat diterima Mengatur textbox berbentuk multi line atau single line Mengatur penyembunyian karakter untuk inputan tipe password Mengatur tipe TextBox hanya dapat dibaca saja Mengubah kenampakan TextBox Mengubah nama TextBox

Percobaan 3.2 Design View

Program Akar Persamaan Kuadrat

No. Nama Objek 1. Form 2 3. 4. 5. 6. 7. 8. Label (1) Label (2) Label (3) Label (4) Label (5) Button TextBox (1)

Nama Properties (Name) Text Text Text Text Text Text (Name) Text (Name)

Nilai frPersamaan Akar Persamaan Kuadrat X^2 + X+ =0 X1 X2 btCari Cari Akar - Akar edA
21

9. 10. 11. 12. Code View


using using using using using using using using

TextBox (2) TextBox (3) TextBox (4) TextBox (5)

(Name) (Name) (Name) (Name)

edB edC edX1 edX2

System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms;

namespace Hitung { public partial class frPersamaan : Form { int a, b, c; double x1, x2; public frPersamaan() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { a = Convert.ToInt32(edA.Text); b = Convert.ToInt32(edB.Text); c = Convert.ToInt32(edC.Text); hitung(a, b, c); } public void ubah(double x1,double x2) { edX1.Text = Convert.ToString(x1); edX2.Text = Convert.ToString(x2); } public void hitung(int a, int b, int c) { int D; D = (b * b) - (4 * a * c); if (D > 0) { x1 = ((-b) + Math.Sqrt((b * b) - (4 * a * c))) / (2 * a); x2 = ((-b) - Math.Sqrt((b * b) - (4 * a * c))) / 2 * a; ubah(x1,x2); } else if (D == 0) { x1 = -b / 2 * a; x2 = x1; ubah(x1,x2); } else

22

{ } } } }

edX1.Text = "Imaginer"; edX2.Text = "Imaginer";

7. Penggunaan ListBox ListBox adalah komponen grafik yang biasa digunakan untuk memberikan keluaran berupa daftar teks berupa string. Beberapa properties yang ada pada ListBox diperlihatkan pada Tabel 3.4 berikut. Tabel 3.4 Beberapa Properties Dari TextBox dan Kegunaannya No. 1. 2. 3. 4. 5. Nama Properties Font Enable Sorted Items (Name) Kegunaan Mengatur bentuk huruf pada ListBox Mengatur ketersediaan ListBox Mengatur pengurutan list pada ListBox Mengatur daftar ListBox Mengubah nama ListBox

8. Penggunaan CheckBox CheckBox adalah komponen grafik yang digunakan untuk melakukan masukan berupa pilihan dan biasanya pilihan dengan CheckBox dapat dipilih lebih dari satu. Beberapa properties yang ada pada CheckBox diperlihatkan pada Tabel 3.5 berikut. Tabel 3.5 Beberapa Properties Dari CheckBox dan Kegunaannya No. 1. 2. 3. 4. 5. 6. Nama Properties Checked Font Text Enable Visible (Name) Kegunaan Mengatur centangan CheckBox Mengatur bentuk huruf pada CheckBox Mengatur tulisan pada CheckBox Mengatur ketersediaan CheckBox Mengubah kenampakan CheckBox Mengubah nama CheckBox

9. Penggunaan RadioButton RadioButton adalah komponen grafik yang digunakan untuk melakukan masukan berupa pilihan. Bedanya dengan CheckBox, RadioButton hanya menerima satu pilihan. Atau dengan kata lain jika satu RadioButton telah dipilih maka RadioButton yang lain tidak dapat dipilih. Beberapa properties yang ada pada RadioButton diperlihatkan pada Tabel 3.6 berikut.
23

Tabel 3.6 Beberapa Properties Dari RadioButton dan Kegunaannya No. 1. 2. 3. 4. 5. 6. Nama Properties Checked Font Text Enable Visible (Name) Kegunaan Mengatur centangan RadioButton Mengatur bentuk huruf pada RadioButton Mengatur tulisan pada RadioButton Mengatur ketersediaan RadioButton Mengubah kenampakan RadioButton Mengubah nama RadioButton

Percobaan 3.3 Design View

Program Pemilihan Huruf

No. Nama Objek 1. Form 2 3. Label ListBox

Nama Properties (Name) Text (Name) Text (Name) Item (Name) Text (Name) Text Checked (Name) Text (Name) Text

4. 5.

RadioButton (1) RadioButton (2) CheckBox (1) CheckBox (2)

Nilai frPilihHuruf Pemilihan Huruf lblTeks Sampe Text lstHuruf Arial Times New Roman Comic Sans MS rb10 10 pts rb20 20 pts True cbBold Bold cbItalic Italic
24

6. 7.

8. Code View
using using using using using using using using

CheckBox (3)

(Name) Text

cbUnderline Underline

System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms;

namespace PemilihanHuruf { public partial class frPilihHruf : Form { private System.Drawing.Font myFont; private string fontName = "Arial"; private int fontSize = 20; private FontStyle myStyle = FontStyle.Regular; public frPilihHruf() { InitializeComponent(); } private void assignFont() { fontName = lstHuruf.Text; myStyle = FontStyle.Regular; if (cbBold.Checked) { myStyle = myStyle | FontStyle.Bold; } if (cbItalic.Checked) { myStyle = myStyle | FontStyle.Italic; } if (cbUnderline.Checked) { myStyle = myStyle | FontStyle.Underline; } myFont = new Font(fontName, fontSize, myStyle); lblTeks.Font = myFont; } private void lstHuruf_SelectedIndexChanged(object sender, EventArgs e) { assignFont(); } private void cbBold_CheckedChanged(object sender, EventArgs e) { assignFont(); } private void cbItalic_CheckedChanged(object sender, EventArgs e) { assignFont();

25

} private void cbUnderline_CheckedChanged(object sender, EventArgs e) { assignFont(); } private void rb10_CheckedChanged(object sender, EventArgs e) { fontSize = 10; assignFont(); } private void rb20_CheckedChanged(object sender, EventArgs e) { fontSize = 20; assignFont(); } }

26

BAB IV PEMROGRAMAN GUI PADA C# BAGIAN 2


1. Pendahuluan Pada bab sebelumnya, telah dipelajari beberapa komponen untuk membuat aplikasi dengan tampilan grafik antarmuka Windows. Pada pertemuan kali ini akan dilanjutkan tentang pembahasan beberapa komponen grafik lainnya. 2. Penggunaan PictureBox PictureBox adalah komponen yang digunakan untuk menampung sebuah gambar. PictureBox dapat menampung gambar dengan format Windows Bitmap (.bmp), Graphical Interchange Format (.gif), dan Joint Experts Group (.jpg). Biasanya untuk mempertimbangkan besar aplikasi yang dibuat nantinya, gambar yang dipakai adalah gambar yang telah terkompres seperti gambar format .gif atau .jpg. Beberapa properties yang ada pada PictureBox diperlihatkan pada Tabel 4.1 berikut. Tabel 4.1 Beberapa Properties Dari PictureBox dan Kegunaannya No. Nama Properties 1. Image 2. 3. 4. ErrorImage SizeMode (Name) Kegunaan Mengatur gambar yang akan ditampilkan pada PictureBox Mengatur gambar yang akan ditampilkan jika gambar yang telah diatur tidak dapat ditampilkan pada PictureBox Mengatur tampilan ukuran gambar pada PictureBox Mengubah nama RadioButton

3. Penggunaan ScrollBar ScrollBar adalah komponen input ynag digunakan untuk memberikan nilai dengan hanya menggeser kotak kecil yang biasa disebut dengan elevator. Nilai dari ScrollBar adalah integer dan bergantung pada posisi dari elevator. Beberapa properties yang ada pada ScrollBar diperlihatkan pada Tabel 4.2 berikut.

27

Tabel 4.2 Beberapa Properties Dari ScrollBar dan Kegunaannya No. 1. 2. 3. 4. 4. Nama Properties LargeChange Maximum Minimum SmallChange (Name) Kegunaan Mengatur besar perubahan dari elevator pada ScrollBar Mengatur nilai maksimum yang dapat diberikan ScrollBar Mengatur nilai minimum yang dapat diberikan ScrollBar Mengatur besar perubahan ketika tanda panah ditekan pada ScrollBar Mengubah nama ScrollBar

Percobaan 4.1 Design View

Program Pembesar Gambar

No. Nama Objek 1. Form 2 3. PictureBox HScrollBar

Nama Properties (Name) Text (Name) SizeMode Size (Name) Maximum Minimum LargeChange SmallChange

Nilai frSizer Pembesar Gambar pbGambar StretchImage 50, 50 sbSizer 200 50 10 1

Code View
using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms;

namespace ImagedanScrool {

28

public partial class frSizer : Form { public frSizer() { InitializeComponent(); } private void hScrollBar1_Scroll(object sender, ScrollEventArgs e) { pbGambar.Size = new Size(sbSizer.Value,sbSizer.Value); }

} }

4. Penggunaan ComboBox ComboBox adalah elemen masukan yang item masukannya telah terdefinisi terlebih dahulu dan menjadi pilihan masukan untuk pengguna aplikasi nantinya. ComboBox biasanya diperlukan untuk menghindari kesalahan masukan oleh pengguna dan memudahkan pengguna karena masukan sudah tersedia dan hanya dipilih. Tabel 4.3 Beberapa Properties Dari ScrollBar dan Kegunaannya No. 1. 2. 3. 4. Nama Properties Items MaxDropDownItem Enable (Name) Kegunaan Mengatur daftar item yang ada dalam ComboBox Mengatur banyak item dalam ComboBox Mengatur ketersediaan ComboBox Mengubah nama ComboBox

Percobaan 4.2 Design View

Program Pemilihan Gambar

No. Nama Objek 1. Form

Nama Properties (Name)

Nilai frPilih
29

2 3. 4. 5. 6.

PictureBox (1) PictureBox (2) PictureBox (3) PictureBox (4) ComboBox

Text (Name) SizeMode Size (Name) SizeMode Size (Name) SizeMode Size (Name) SizeMode Size (Name) Items

Pemilihan Gambar pbPemain StretchImage 315, 234 pbIbra StretchImage 40, 40 pbInza StretchImage 40, 40 pbRonal StretchImage 40, 40 cbPemain Z. Ibrahimovic F. Inzaghi C. Ronaldo

Code View
using using using using System; using System.Collections.Generic; System.ComponentModel; using System.Data; System.Drawing; using System.Linq; System.Text; using System.Windows.Forms;

namespace ComboBox { public partial class FrPilih : Form { public Form1() { InitializeComponent(); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { switch (cbPemain.Text) { case "Z. Ibrahimovic" : pbPemain.Image = pbIbra.Image; break; case "F. Inzaghi" : pbPemain.Image = pbInza.Image; break; case "C. Ronaldo" : pbPemain.Image = pbRonal.Image; break; default : pbPemain.Image = null; break; } }

} }

5. Penggunaan Timer

30

Timer biasa digunakan untuk membuat animasi atau splash screen pada aplikasi. Timer terlihat ketika melakukan perancangan desain aplikasi, tetapi ketika aplikasi dijalankan tidak akan terlihat. Beberapa properties yang ada pada ScrollBar diperlihatkan pada Tabel 4.4 berikut. Tabel 4.4 Beberapa Properties Dari Timer dan Kegunaannya No. Nama Properties 1. Enable 2. Interval 3. (Name) Kegunaan Mengatur ketersediaan Timer (On/Off Timer) Mengatur waktu per putaran Timer mengeksekusi perintah (1000 = 1 detik) Mengubah nama Timer

Percobaan 4.3 Design View

Program BOM

No. Nama Objek 1. Form 2 Label

Nama Properties (Name) Text (Name) Font Text (Name) Enable Interval

3.

Timer

Nilai frBom BOM lblTampil Micosoft Sans MS, Bold, 48 10 Timer1 True 1000

Code View
31

using using using using using using using using

System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms;

namespace Counter { public partial class frBom : Form { int counter = 10; public frBom() { InitializeComponent(); } private void timer1_Tick(object sender, EventArgs e) { counter--; lblTampil.Text = Convert.ToString(counter); if (counter == 0) { lblTampil.Text = "BOOM!!!"; timer1.Enabled = false; } } } }

6. Penggunaan DataGridView DataGridView dirancang untuk menampilkan data tabular pada tampilan Windows. DataGridView dapat dikonfigurasi dan diperluas serta menyediakan banyak property, method, dan event. Beberapa properties yang ada pada ScrollBar diperlihatkan pada Tabel 4.5 berikut. Tabel 4.5 Beberapa Properties Dari DataGridView dan Kegunaannya No. Nama Properties 1. AllowUserToAddRows 2. 3. 4. 5. Kegunaan Mengatur izin pengguna untuk menambahkan baris pada DataGridView AllowUserToDeleteRows Mengatur izin pengguna untuk menghapus baris pada DataGridView AllowUserToOrderColumns Mengatur izin pengguna untuk mengurutkan kolom pada DataGridView AllowUserToResizeColumns Mengatur izin pengguna untuk mengubah ukuran kolom pada DataGridView AllowUserToResizeRows Mengatur izin pengguna untuk mengubah ukuran baris pada DataGridView

Tabel 4.5 Beberapa Properties Dari DataGridView dan Kegunaannya (Lanjutan)


32

No. Nama Properties 6. MultiSelect 7. 8. 9. ReadOnly DataSource (Name)

Kegunaan Mengatur berapa banyak bagian yang dapat dipilih pada DataGridView dalam satu waktu Mengatur DataGridView hanya dapat dibaca Mengatur database yang akan dipakai untuk ditampilkan pada DataGridView Mengubah nama Timer

BAB V
33

PEMROGRAMAN XML
1. Pendahuluan Pada pertemuan ini kita akan mempelajari tentang XML. XML merupakan Extensible Markup Language. Merupakan versi lanjutan dari HTML (Hyper Text Markup Language). XML menawarkan kekuatan dan kemudahan ketimbang HTML. Pada XML kamu dapat membuat tags kamu sendiri tanpa ada batasan seperti pada HTML. Dan kamu dapat menyimpan data dalam bentuk yang terstruktur. Tidak seperti HTML, XML merupakan tempat menyimpan dan pertukaran data. Tag adalah bagian dari program yang dimulai < dan diakhiri > (tanpa tanda petik). 2. Struktur XML Sekarang coba buat kode XML dibawah ini dengan menggunakan editor yang anda suka ataupun dengan notepad/vi lalu simpan dengan nama books.xml.
<?xml version=1.0?> <bookstore> <book> <title>Programming With C#</title> <author>Budi Anduk</author> <price>50.500</price> </book> </bookstore>

File xml tersebut menyimpan informasi tentang toko buku. Root node dari dokumen tersebut adalah <bookstore>. Tag yang lain harus diantara tag <bookstore>, dan akhir dari dokumennya adalah </bookstore>. Tag lain yang ada didalamnya antara lain <book>,
<title>, <author> version=1.0?>

dan <price>. Pada baris pertama dari sebuah XML diawali oleh <?xml

yang menyatakan versi XML.

Ada beberapa hal penting yang wajib kita ketahui tentang XML. Tidak seperti HTML, XML itu case-sensitive. <Books> dan <books> merupakan dua tag yang berbeda. Semua tag pada XML harus dibuat sesuai format dan mempunyai tag penutup untuk masing-masing tagnya. Sebuah bahasa dikatakan sesuai format jika mengikuti standar sintaks bahasa yang telah didefenisikan. Untuk membaca XML kita dapat menggunakan XML parser. XML parser adalah sebuah program diantara dokumen XML dan aplikasi yang akan menggunakan dokumen tersebut. Tugas dari parser adalah untuk memastikan dokumen sesuai dengan struktur yang
34

terdefinisi, teruji, dan masih dalam batas. Kita dapat mendefinisikan aturan validasi dan batas dalam Document Type Definition (DTD) atau skema. Pada modul ini kita tidak akan membahas secara mendetil tentang XML, diharapkan agar praktikan yang ingin mengetahui XML dapat mencari bahan yang lebih lengkap. Percobaan 5.1 Simple XML Reader Buatlah sebuah projek bernama SimpleXMLReader.Pastikan pada References projek yang dibuat telah ada System.Xml seperti diperlihatkan pada Gambar 5.1, jika belum ada silahkan ditambah dengan klik kanan pada References lalu pilih Add References. Lalu cari
System.Xml

dan klik tombol Ok.

Gambar 5.1 System.Xml dalam References projek

Gambar 5.2 Menambah Reference dari projek


35

Buatlah desain form seperti pada Gambar 5.3. Tambahkan komponen OpenDialog dari toolbox ke form. Design View

Gambar 5.3 Desain Form Berikut adalah nilai dari properti setiap komponen. Tabel 5.1 Properti Form No. Nama Objek 1. Form 2 3. 4. Nama Properties (Name) Text TreeView (Name) Button (Name) Text OpenFileDialog (Name) Filter Nilai MainForm Simple XML Reader XMLTreeView OpenXMLButton &Open XML File XMLOpenFileDialog XML File *.xml|*.*

Code View
using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; System.Xml;

namespace SimpleXMLReader { public partial class MainForm : Form { public MainForm()

36

{ }

InitializeComponent();

private void OpenXMLButton_Click(object sender, EventArgs e) { XMLTreeView.Nodes.Clear(); if (XMLOpenFileDialog.ShowDialog() == DialogResult.OK) { XmlTextReader reader = new XmlTextReader(XMLOpenFileDialog.FileName); TreeNode root = null; TreeNode node = null; int lastDepth = -1; while (reader.Read()) { XmlNodeType nodetype = reader.NodeType; if (nodetype == XmlNodeType.Element) { if (root == null) { root = XMLTreeView.Nodes.Add(reader.Name); lastDepth = reader.Depth; } else { if (reader.Depth == 1) { node = root.Nodes.Add(reader.Name); } else if (lastDepth < reader.Depth) { node = node.Nodes.Add(reader.Name); } else if (lastDepth == reader.Depth) { node = node.Parent.Nodes.Add(reader.Name); } lastDepth = reader.Depth; } } else if (nodetype == XmlNodeType.Text) { node.Nodes.Add(reader.ReadString()); } } reader.Close(); } XMLTreeView.ExpandAll(); } } }

Berikut adalah properti maupun metode publik yang ada pada class XmlReader.

37

Tabel 5.2 Properti Publik class XmlReader


PUBLIC INSTANCE PROPERTY AttributeCount BaseURI Depth EOF HasAttributes HasValue IsDefault IsEmptyTag Item LocalName Name NamespaceURI NameTable NodeType Prefix ReadState Value XmlLang XmlSpace DESCRIPTION Returns the number of attributes on the current node Returns the base URI of the current node Returns the level of the current node Indicates whether its pointer is at the end of the stream Indicates if a node has attributes or not Indicates if a node has a value or not Indicates whether the current node is an attributes generated from the default value defined in the DTD or schema Returns if the current node is empty or not Returns if value of the attribute Name of the current node without the namespace prefix Name of the current node with the namespaces prefix Namespace uniform Resource Name (URN) of the current namespace scope Returns the XmlNameTable associated with this implementation Returns the type of node Returns the namespace associated with a node Read state Returns the value of a node Returns the current xml:lang scope Returns the current xml:space scope

Tabel 5.3 Metode Publik class XmlReader


PUBLIC INSTANCE METHOD Close GetAttribute IsStartElement LookupNamespace MoveToAttribute, MoveToContent, MoveToElement, MoveToFirstAttribute, MoveToNextAttribute Read ReadAttributeValue ReadXXXX (ReadChar, ReadBoolean, ReadDate, ReadIn32, and so on) ReadInnerXml Skip DESCRIPTION Close the stream and changes ReadState to Closed Returns the value of an attribute Checks if a node has start tag Resolves a namespace prefix in the current elements scope Moves to specified attributes, content, and element Moves to the first and next attributes Reads a node Parses the attributes value into one or more Text and/or EntityReference node types Reads the contents of an element into the specified type including char, double, string, date, and so on Reads all the content as a string Skips the current element

38

Tugas 5.1: Buatlah sebuah file XML dengan isi data Universitas Sumatera Utara beserta fakultas dan departemen yang ada didalamnya. Contoh:
<?xml version='1.0'?> <universitas nama="Universitas Sumatera Utara"> //atribut nama yg isinya //Universitas Sumatera Utara <fakultas nama="MIPA"> <departemen>Matematika</departemen> <departemen>Fisika</departemen> <departemen>Kimia</departemen> <departemen>Biologi</departemen> <departemen>Ilmu Komputer</departemen> <departemen>Teknologi Informasi</departemen> </fakultas> ... (Lanjutkan untuk fakultas dan departemen yang lainnya) </universitas>

Buat program seperti Percobaan 1 dengan menampilkan data pada file XML diatas. Jika pada node xml-nya ada attribute maka jadikan nilai attribut itu menjadi nilai node tersebut pada TreeView. Percobaan 5.2 XML to DataGridView Pada pertemuan sebelumnya kita telah mempelajari DataGridView dan apa gunanya. Sekarang kita akan mencoba menampilkan data dari XML kedalam DataGridView. Buat sebuah file XML seperti dibawah ini dan simpan dengan nama mahasiswa.xml.
<?xml version='1.0'?> <mahasiswa departemen="Ilmu Komputer"> <data> <nama>Alfarisi</nama> <nim>061401078</nim> </data> <data> <nama>Muhammad Alvin</nama> <nim>061401088</nim> </data> <data> <nama>Lira Meladya</nama> <nim>071401013</nim> </data> </mahasiswa>

Design View

39

Gambar 5.4 Desain Form Berikut adalah nilai dari properti setiap komponen. Tabel 5.1 Properti Form No. Nama Objek 1. Form 2 3. 4. DataGridView Button OpenDialog Nama Properties (Name) Text (Name) (Name) Text (Name) Filter Nilai MainForm Simple XML Reader XMLDataGridView OpenXMLButton &Open XML File XMLOpenFileDialog XML File *.xml|*.*

Code View
using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; System.Xml;

namespace XmlToGrid { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void OpenXMLButton_Click(object sender, EventArgs e) { XmlDataDocument xmlDataDocument = new XmlDataDocument();

40

if (XMLOpenFileDialog.ShowDialog() == DialogResult.OK) { xmlDataDocument.DataSet.ReadXml(XMLOpenFileDialog.FileName); XMLDataGridView.DataSource = xmlDataDocument.DataSet.DefaultViewManager; XMLDataGridView.DataMember = "data"; } } } }

Tugas 5.2 Cari bahan dan buat projek sederhana bagaiamana menyimpan data dari DataGridView kedalam file XML.

BAB VI PEMROGRAMAN VISUAL C# DENGAN BASIS DATA 1


1. Pendahuluan Satu hal yang tidak dapat dilupakan dan sangat penting dalam membuat suatu program komputer adalah data. Terkadang sejumlah besar data disimpan dalam suatu wadah termanajemen yang biasa disebut menajemen basis data contohnya dalam Access,
41

Oracle, atau SQL Server. Visual C# sebagai bahasa pemrograman yang canggih, menyediakan seperangkat class yang bekerja pada basis-basis data tersebut. Bahasa ini juga menyediakan perangkat untuk membuat basis data. Pada pertemuan ini akan dibahas bagaimana membuat basis data pada Visual C# dan menghubungkannya dengan aplikasi yang ditulis dengan bahasa C#. 2. Menciptakan Basis Data pada Visual Studio 2008 Basis data yang dibuat dengan Visual Studio adalah salah satu cara termudah untuk menciptakan basis data. Basis data yang akan tercipta nantinya akan berformat .sdf. Untuk memulai menciptakan basis data format .sdf terlebih dahulu buka IDE Microsoft Visual Studio 2008. Pilih menu Data Add New DataSource. Akan muncul jendela baru untuk menciptakan basis data baru. Kemudian pilih menu Database dan klik tombol Next. Klik tombol New Connection untuk membuat koneksi dan basis data baru. Akan terbuka jendela baru untuk menambahkan koneksi basis data. Pilih Data Source : SQL Server Compact Edition 3.5. Isikan nama basis data baru pada isian Database. Untuk menyamakan nama basis data, akan diberikan nama basis data adalah coba. Klik tombol Create setelahnya. Pada jendela yang baru terbuka, masukkan alamat penyimpanan basis data (.sdf file). Isi password jika perlu, tetapi langkah pada modul ini akan mengosongkan bagian password. Kemudian klik tombol Ok. Klik tombol Test Connection untuk memastikan koneksi ke basis data berjalan dengan mulus. Kemudian klik tombol Ok. Untuk langkah selanjutnya, klik tombol Next. Akan muncuk kotak dialog, klik tombol Yes. Pada halaman berikutnya centang kalimat Yes, save the connection as dan isi nama koneksinya. Setelah selesai klik tombol tombol Next. Setelah itu klik tombol Finish. Maka basis data baru dan koneksi baru untuk basis data tersebut akan tercipta. 3. Menciptakan Tabel pada Basis Data Basis data haruslah memiliki tabel untuk dapat menyimpan data. Maka dari itu perlu dibuat tabel pada basis data yang telah dibuat. Untuk menciptakan tabel, terlebih dahulu bukalah Server Explorer. Pilih basis data sdf, klik kanan pada folder Table. Pilih menu Create Table. Akan muncul jendela baru seperti Gambar 6.1 berikut.

42

Gambar 6.1 Jendela New Table Isikan nama tabel pada isian Name. Untuk menyamakan nama tabel maka berikan nama : produk. Langkah selanjutnya klik Colomn Name untuk mengisi nama kolom pada tabel. Isian tabel produk secara lengkap dijelaskan pada Tabel 6.1 berikut. Setelah mengisi tabel produk, klik tombol Ok untuk membuat tabel pada basis data coba.

Tabel 6.1 Properti Tabel Produk No. 1. 2. 3. 4. Column Name noProduk namaProduk jumlahProduk hargaProduk DataType Nvarchar Nvarchar Numeric Money Length 2 50 5 19 Nulls No Yes Yes Yes Unique Yes No No No Primary Key Yes No No No

4. Memasukkan Data pada Tabel


43

Tabel yang baru dibuat belum memiliki data didalamnya, tetapi telah siap untuk menampung data. Untuk memasukkan data aktual kedalam tabel klik kanan pada tabel produk. Pilih menu Show Table Data maka akan muncul jendela yang memuat data pada tabel produk. Masukkan data pada Tabel 6.2 berikut. Tabel 6.2 Data Tabel Produk noProduk 1 2 3 4 namaProduk Cola Sprite Sosro Fanta jumlahProduk 10 12 15 5 hargaProduk 3000 3500 2500 3000

5. Memakai Basis Data pada Aplikasi C# Setelah basis data dibuat, saatnya beralih kembali pada program C#. Pada percobaan 6.1 berikut akan dijelaskan bagaimana menampilkan data yang ada pada basis data ke program yang dibuat dengan C# dengan menggunakan DataAdapter SqlCeDataAdapter. Untuk menampilkan data, terlebih dahulu dibuka koneksi dengan basis data kemudian menciptakan DataAdapter untuk memanipulasi basis data. Percobaan 6.1 Design View Program Menampilkan Isi Basis Data

No. Nama Objek 1. Form 2 Code View DataGridView

Nama Properties (Name) Text (Name)

Nilai frProduk DaftarProduk DataGridView1

using System; using System.Collections.Generic; using System.ComponentModel;

44

using using using using using using

System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; System.Data.SqlServerCe; //namespace untuk penggunaan SqlServerCe

namespace database { public partial class frProduk : Form { public frProduk() { InitializeComponent(); fillData(); } void fillData() { //buka koneksi using (SqlCeConnection c = new SqlCeConnection(Properties.Settings.Default.cobaConnectionString)) { c.Open(); //manipulasi tabel using (SqlCeDataAdapter a = new SqlCeDataAdapter("select * from produk", c)) { DataTable t = new DataTable(); a.Fill(t); //tampilkan hasil manipulasi dataGridView1.DataSource = t; } } } } }

BAB VII PEMROGRAMAN VISUAL C# DENGAN BASIS DATA 2


1. Pendahuluan Pada pertemuan sebelumnya kita telah mempelajari bagaimana mengakses dan mengelola data pada database. Pada pertemuan kali ini kita akan mempelajari cara
45

pengaksesan database dengan menggunakan teknologi terbaru dari Microsoft. Buatlah sebuah Projek dengan nama SimpleLinq. Tambahkan sebuah local database dengan nama library.sdf. Tambahkan sebuah table book dengan properti seperti Gambar 7.1

Gambar 7.1 Properti Tabel books

Setelah itu tambahkan sebuah ADO.NET Entity Data Model dengan nama libraryModel.edmx.

46

Gambar 7.2 Tambah ADO.NET Entity Data Model

Setelah itu akan muncul window Entity Data Model Wizard seperti pada Gambar 7.3. Pilih Generate from database dan klik Next.

Gambar 7.3 Entity Data Model Wizard

47

Pilihlah database yang telah kita buat pada data connection-nya. Centang checkbox Save Entity connection settings in App.Config as dan simpan dengan nama libraryEntities lalu klik Next.

Gambar 7.4 Choose Your Data Connection


48

Pilihlah table books yang telah kita buat sebelumnya lalu buat nama Model Namespace-nya libraryModel lalu klik Finish. Setelah itu maka Editor Visual Studio anda akan terlihat seperti pada Gambar 7.6.

Gambar 7.5 Choose Your Data Objects

49

Gambar 7.5 Tampilan Editor dengan Entity Data Model Designer

Buatlah sebuah form baru dengan design sebagai berikut. Design View

Gambar 7.6 Tampilan Design Form

50

Berikut adalah nilai dari properti setiap komponen. Tabel 7.1 Properti Form No. Nama Objek 1. Form 2 DataGridView Nama Properties (Name) Text (Name) Anchor ReadOnly AllowUserToAddRow AllowUserToDeleteRow SelectionMode (Name) Anchor Text (Name) Text (Name) Text (Name) Text (Name) Text (Name) Text (Name) Text Anchor (Name) Text Anchor (Name) Text Anchor Nilai Form1 Simple Linq dataGridView1 Top, Bottom, Left, Right True False False FullRowSelect groupBox1 Bottom, Left Pencarian label1 Judul label2 Penulis label3 Abstrak ResetButton Reset SearchButton Cari AddButton Tambah Bottom, Left EditButton Ubah Bottom, Left DeleteButton Hapus Bottom, Left

3 4 5 6 7 8 9 10 11

GroupBox Label Label Label Button Button Button Button Button

Source Code
using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms;

namespace SimpleLinq { public partial class Form1 : Form { public Form1()

51

InitializeComponent(); } private libraryEntities library; private void Form1_Load(object sender, EventArgs e) { library = new libraryEntities(); Filter(); } private void SearchButton_Click(object sender, EventArgs e) { Filter(); } private void Filter() { var books = (from b in library.books select new { b.id, b.title, b.author, b.@abstract }); if (Title.Text != "") { books = books.Where(b => b.title.Contains(Title.Text)); } if (Author.Text != "") { books = books.Where(b => b.author.Contains(Author.Text)); } if (Abstract.Text != "") { books = books.Where(b => b.@abstract.Contains(Abstract.Text)); } dataGridView1.DataSource = books; dataGridView1.Columns[0].Visible = false; dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; } private void ResetButton_Click(object sender, EventArgs e) { Title.Text = ""; Author.Text = ""; Abstract.Text = ""; Filter(); } private void AddButton_Click(object sender, EventArgs e) { BookForm form = new BookForm(); form.Mode = BookForm.FormMode.Simpan; form.ShowDialog(); Filter(); } private void EditButton_Click(object sender, EventArgs e) { BookForm form = new BookForm(); Guid guid = new Guid(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());

52

form.Mode = BookForm.FormMode.Ubah; form.Id = guid; form.ShowDialog(); Filter(); } private void DeleteButton_Click(object sender, EventArgs e) { if (MessageBox.Show("Anda yakin mau menghapus data?", "Title", MessageBoxButtons.YesNo) == DialogResult.Yes) { Guid guid = new Guid(dataGridView1.SelectedRows[0].Cells[0].Value.ToString()); var deleteBooks = (from b in library.books where b.id == guid select b).FirstOrDefault(); if (deleteBooks != null){ library.DeleteObject(deleteBooks); library.SaveChanges(); Filter(); } } } } }

Buatlah sebuah form baru.

Gambar 7.7 Tambah Form baru

53

Design View

Gambar 7.8 Tampilan Design Form

Berikut adalah nilai properti dari setiap komponen. Tabel 7.2 Properti Form No. Nama Objek 1. Form Nama Properties (Name) Text FormBorderStyle MaximizeBox MinimizeBox StartPosition (Name) Text (Name) Text (Name) Text (Name) Text (Name) Text (Name) Text Nilai BookForm Buku FixedDialog False False CenterScreen label1 Judul label2 Penulis label3 Abstrak ResetButton Reset SaveButton &Simpan CancelButton &Batal

2 3 4 5 6 7

Label Label Label Button Button Button

Source Code
using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms;

namespace SimpleLinq {

54

public partial class BookForm : Form { public enum FormMode { Simpan, Ubah } public FormMode Mode { get; set; } public Guid Id { get; set; } private libraryEntities library; public BookForm() { InitializeComponent(); } private void BookForm_Load(object sender, EventArgs e) { library = new libraryEntities(); if (Mode == FormMode.Ubah) { var book = (from b in library.books where b.id == Id select b).FirstOrDefault(); Title.Text = book.title; Author.Text = book.author; Abstract.Text = book.@abstract; } } private void CancelButton_Click(object sender, EventArgs e) { this.Close(); } private void SaveButton_Click(object sender, EventArgs e) { if (Mode == FormMode.Simpan) { books newBook = new books(); newBook.id = Guid.NewGuid(); newBook.title = Title.Text; newBook.author = Author.Text; newBook.@abstract = Abstract.Text; library.AddObject("books", newBook); //library.AddTobooks(newBook); library.SaveChanges(true); } else if (Mode == FormMode.Ubah) { books editBook = (from b in library.books where b.id == Id select b).FirstOrDefault(); editBook.title = Title.Text; editBook.author = Author.Text; editBook.@abstract = Abstract.Text; library.SaveChanges(); } this.Close(); } } }

55

Tugas Tambahkan fungsi untuk peminjaman dan pengembalian buku pada program diatas.

56

BAB VIII PEMBUATAN LAPORAN DENGAN REPORT VIEWER


1. Pendahuluan Dalam pembuatan sebuah aplikasi sangat dibutuhkan modul untuk dapat memperlihatkan laporan-laporan yang ada dan telah diproses didalam sebuah sistem. Disini kita akan membuat laporan dengan menggunakan komponen Report Viewer yang disediakan oleh Microsoft. 2. Report Viewer Buka source code program pada pertemuan minggu lalu. Tambahkan sebuah form baru dengan nama FormReport. Setelah itu tambahkan komponen Report Viewer pada toolbox seperti pada Gambar 8.1.

Gambar 8.1 Tambah Komponen Report Viewer

57

Setelah itu drag komponen ReportViewer ke FormReport. Design View

Gambar 8.2 Tampilan FormReport Berikut adalah nilai properti dari setiap komponen. Tabel 8.1 Properti Form No. Nama Objek 1. Form 2 ReportViewer Nama Properties (Name) Text (Name) Dock Modifiers Nilai ReportForm ReportForm reportViewer1 Fill Public

Pada Form1 modul sebelumnya tambahkan sebuah button dengan properti sebagai berikut. Tabel 8.2 Properti Button No. Nama Objek 1. Button Nama Properties (Name) Text Nilai PrintButton &Cetak

58

59