dasar pemrograman microsoft visual c# 2008
Post on 27-Oct-2015
1.557 Views
Preview:
DESCRIPTION
TRANSCRIPT
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.
2
6. Area Kerja Microsoft Visual Studio 2008
Adapun area kerja pada Microsoft Visual Studio 2008 diperlihatkan pada Gambar 1.1
sebagai berikut.
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.
3
Menu Bar
Stage
Toolbox
Panel
Panel
Panel
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#
4
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 kelas-
kelas 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.
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.
5
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 instruksi-
instruksi 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 Program “Apa Kabar S1 Ilmu Komputer USU”
using System; //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#.
Percobaan 2.2 Program “Halo Pengguna”
using System;
namespace HaloPengguna{ class Pengguna
6
{ 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 Deskripsi Nilai Contohbool Boolean (Trus/False) True / False truechar Satu karakter Karakter abjad ‘a’string Banyak karakter Kalimat ‘ilmu komputer’int Integer (positif atau negatif) -2 milyar – 2 milyar 34, -7long Long Integer +/- 9 * 1018r 3L, -23Lfloat Floating point angka real +/- 3.5*1038 1.5f, -3.1415927fdouble Double precision angka real +/- 1.7*10308 -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 Program “Nilai Mahasiswa”
using System;
namespace NilaiMahasiswa{
7
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 Program “Sapaan Satpam”
using System;
namespace SapaanSatpam{
8
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(); //membuat instance class Satpam andi.input(); //memanggil method input andi.cekNama(andi.nama); //memanggil method cekNama Console.WriteLine(); //membuat baris baru Console.WriteLine(); Console.Write(andi.sapaan); //mencetak hasil sapaan Console.ReadLine(); } }}
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.
Pada contoh program di bawah ini akan menunjukkan penggunaan struktur
perulangan dengan menggunakan statement For.
9
Percobaan 2.5 Program “Hitung Domba”
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(); } }}
Pada contoh program di berikutnya akan menunjukkan penggunaan struktur
perulangan dengan menggunakan statement While.
Percobaan 2.6 Program “Open Sesame!!”
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(); Console.WriteLine(); Console.Write("Sebutkan Kata Kunci !!"); kataKunci = Console.ReadLine(); Console.WriteLine(); cekKataKunci(nama, kataKunci);
10
} }
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.
Tabel 2.2 Access Modifier pada C#
Kata Kunci Deskripsiinternal Dapat diakses pada class yang ada dalam satu assembly/
11
aplikasiinternal protected Dapat diakses pada class yang satu assembly dan class
turunannyaprivate Hanya dapat diakses dari class itu sendiriprotected Dapat diakses dari class itu sendiri dan class turunannyapublic Dapat diakses dari lain assembly yang mereferensi class
tersebut
Percobaan 2.7 Program “Access”
using System;
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 modifier-
nya, 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
mengetahui method dan property apa saja yang ada dalam class tersebut dan
kegunaannya.
12
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; } //property get (mengambil nilai) set { year = value; } //property set (menetapkan nilai) }
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(); } }}
d. Konstruktor
13
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() //konstruktor { year = 2011; month = 2; date = 7; }
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(); } }}
e. Inheritance
14
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) //konstruktor { this.nama = nama; this.umur = umur; }
public string getNama() { return this.nama; }
public int getUmur() { return this.umur; } }
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); Student pelajar = new Student("Indah", 17, "SMAN 2"); Console.WriteLine("Informasi Tentang Objek Person");
15
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) //konstruktor { this.posisi = posisi; }
public int Position { get { return posisi; } set { posisi = value; } }
public virtual void Move() { return; } }
class Motor : Kendaraan { public Motor(int posisi) : base(posisi) { }
public override void Move() { base.Position = base.Position + 30; } } class Mobil : Kendaraan {
16
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(); } }}
BAB III
17
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
yang digunakan untuk merancang tampilan aplikasi. Code View adalah tampilan area
18
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. Nama Properties Kegunaan1. Text Mengatur judul Form2. (Name) Mengatur nama Form3. Size Mengatur ukuran Form4. StartPosition Mengatur posisi Form ketika dipanggil5. BackColor 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. Nama Properties Kegunaan1. Font Mengatur bentuk huruf Button2. Image Mengatur gambar pada Button3. ImageAlign Mengatur posisi gambar pada Button4. Text Mengatur tulisan pada Button5. Enable Mengatur ketersediaan Button6. Visible Mengatur kenampakan Button7. (Name) Mengatur nama Button
Contoh program di bawah ini akan memperlihatkan penggunaan Form dan Button
serta penggunaan event.
19
Percobaan 3.1 Program “Jangan Click!!”
Design View
No. Nama Objek Nama Properties Nilai1. Form (Name) frContoh1
Text Contoh Form Dan Button2 Label (Name) lblJangan
Text Jangan ClickFont Comic Sans MS; 16
3. Button (Name) btKlikText Click Di SiniFont Comic Sans MS; 12
Code View
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing; //mengakses eleman penggambaran misalnya
ukuran dan letak posisi objek di layarusing 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. Nama Properties Kegunaan1. Font Mengatur bentuk huruf pada TextBox2. Text Mengatur tulisan pada TextBox3. TextAlign Mengatur posisi tulisan pada TextBox4. Enable Mengatur ketersediaan TextBox5. MaxLength Mengatur panjang maksimal inputan yang dapat diterima6. MultiLine Mengatur textbox berbentuk multi line atau single line7. PasswordChar Mengatur penyembunyian karakter untuk inputan tipe
password8. ReadOnly Mengatur tipe TextBox hanya dapat dibaca saja6. Visible Mengubah kenampakan TextBox7. (Name) Mengubah nama TextBox
Percobaan 3.2 Program “Akar Persamaan Kuadrat”
Design View
No. Nama Objek Nama Properties Nilai1. Form (Name) frPersamaan
Text Akar Persamaan Kuadrat2 Label (1) Text X^2 +3. Label (2) Text X +4. Label (3) Text = 05. Label (4) Text X16. Label (5) Text X27. Button (Name) btCari
Text Cari Akar - Akar8. TextBox (1) (Name) edA9. TextBox (2) (Name) edB
21
10. TextBox (3) (Name) edC11. TextBox (4) (Name) edX112. TextBox (5) (Name) edX2
Code View
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using 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 { edX1.Text = "Imaginer";
22
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. Nama Properties Kegunaan1. Font Mengatur bentuk huruf pada ListBox2. Enable Mengatur ketersediaan ListBox3. Sorted Mengatur pengurutan list pada ListBox4. Items Mengatur daftar ListBox5. (Name) 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. Nama Properties Kegunaan1. Checked Mengatur centangan CheckBox2. Font Mengatur bentuk huruf pada CheckBox3. Text Mengatur tulisan pada CheckBox4. Enable Mengatur ketersediaan CheckBox5. Visible Mengubah kenampakan CheckBox6. (Name) 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. Nama Properties Kegunaan1. Checked Mengatur centangan RadioButton2. Font Mengatur bentuk huruf pada RadioButton3. Text Mengatur tulisan pada RadioButton4. Enable Mengatur ketersediaan RadioButton5. Visible Mengubah kenampakan RadioButton6. (Name) Mengubah nama RadioButton
Percobaan 3.3 Program “Pemilihan Huruf”
Design View
No. Nama Objek Nama Properties Nilai1. Form (Name) frPilihHuruf
Text Pemilihan Huruf2 Label (Name) lblTeks
Text Sampe Text3. ListBox (Name) lstHuruf
Item ArialTimes New RomanComic Sans MS
4. RadioButton (1)
(Name) rb10
Text 10 pts5. RadioButton
(2)(Name) rb20
Text 20 ptsChecked True
6. CheckBox (1) (Name) cbBoldText Bold
7. CheckBox (2) (Name) cbItalicText Italic
8. CheckBox (3) (Name) cbUnderlineText Underline
24
Code View
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using 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 Kegunaan1. Image Mengatur gambar yang akan ditampilkan pada
PictureBox2. ErrorImage Mengatur gambar yang akan ditampilkan jika gambar
yang telah diatur tidak dapat ditampilkan pada PictureBox
3. SizeMode Mengatur tampilan ukuran gambar pada PictureBox 4. (Name) 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. Nama Properties Kegunaan1. LargeChange Mengatur besar perubahan dari elevator pada ScrollBar2. Maximum Mengatur nilai maksimum yang dapat diberikan
ScrollBar3. Minimum Mengatur nilai minimum yang dapat diberikan ScrollBar4. SmallChange Mengatur besar perubahan ketika tanda panah ditekan
pada ScrollBar4. (Name) Mengubah nama ScrollBar
Percobaan 4.1 Program “Pembesar Gambar”
Design View
No. Nama Objek Nama Properties Nilai1. Form (Name) frSizer
Text Pembesar Gambar2 PictureBox (Name) pbGambar
SizeMode StretchImageSize 50, 50
3. HScrollBar (Name) sbSizerMaximum 200Minimum 50LargeChange 10SmallChange 1
Code View
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;
28
namespace ImagedanScrool{ 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. Nama Properties Kegunaan1. Items Mengatur daftar item yang ada dalam ComboBox2. MaxDropDownItem Mengatur banyak item dalam ComboBox3. Enable Mengatur ketersediaan ComboBox4. (Name) Mengubah nama ComboBox
Percobaan 4.2 Program “Pemilihan Gambar”
Design View
29
No. Nama Objek Nama Properties Nilai
30
1. Form (Name) frPilihText Pemilihan Gambar
2 PictureBox (1) (Name) pbPemainSizeMode StretchImageSize 315, 234
3. PictureBox (2) (Name) pbIbraSizeMode StretchImageSize 40, 40
4. PictureBox (3) (Name) pbInzaSizeMode StretchImageSize 40, 40
5. PictureBox (4) (Name) pbRonalSizeMode StretchImageSize 40, 40
6. ComboBox (Name) cbPemainItems Z. Ibrahimovic
F. InzaghiC. Ronaldo
Code View
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;using System.Drawing; using System.Linq;using 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
31
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 Kegunaan1. Enable Mengatur ketersediaan Timer (On/Off Timer)2. Interval Mengatur waktu per putaran Timer mengeksekusi
perintah (1000 = 1 detik)3. (Name) Mengubah nama Timer
Percobaan 4.3 Program “BOM”
Design View
No. Nama Objek Nama Properties Nilai1. Form (Name) frBom
Text BOM2 Label (Name) lblTampil
Font Micosoft Sans MS, Bold, 48
Text 103. Timer (Name) Timer1
Enable TrueInterval 1000
Code View
32
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using 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 Kegunaan1. AllowUserToAddRows Mengatur izin pengguna untuk menambahkan baris
pada DataGridView2. AllowUserToDeleteRows Mengatur izin pengguna untuk menghapus baris
pada DataGridView3. AllowUserToOrderColumns Mengatur izin pengguna untuk mengurutkan kolom
pada DataGridView4. AllowUserToResizeColumns Mengatur izin pengguna untuk mengubah ukuran
kolom pada DataGridView5. AllowUserToResizeRows Mengatur izin pengguna untuk mengubah ukuran
baris pada DataGridView
Tabel 4.5 Beberapa Properties Dari DataGridView dan Kegunaannya (Lanjutan)
33
No. Nama Properties Kegunaan6. MultiSelect Mengatur berapa banyak bagian yang dapat dipilih
pada DataGridView dalam satu waktu7. ReadOnly Mengatur DataGridView hanya dapat dibaca 8. DataSource Mengatur database yang akan dipakai untuk
ditampilkan pada DataGridView9. (Name) Mengubah nama Timer
BAB V
34
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> dan <price>. Pada baris pertama dari sebuah XML diawali oleh <?xml
version=’1.0’?> 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 tag-
nya. 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
35
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
36
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 Nama Properties Nilai1. Form (Name) MainForm
Text Simple XML Reader2 TreeView (Name) XMLTreeView3. Button (Name) OpenXMLButton
Text &Open XML File4. OpenFileDialog (Name) XMLOpenFileDialog
Filter XML File *.xml|*.*
Code View
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Xml;
namespace SimpleXMLReader{ public partial class MainForm : Form { public MainForm()
37
{ 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.
38
Tabel 5.2 Properti Publik class XmlReader
PUBLIC INSTANCE PROPERTY DESCRIPTIONAttributeCount Returns the number of attributes on the current nodeBaseURI Returns the base URI of the current nodeDepth Returns the level of the current nodeEOF Indicates whether its pointer is at the end of the stream
HasAttributes Indicates if a node has attributes or notHasValue Indicates if a node has a value or notIsDefault Indicates whether the current node is an attributes
generated from the default value defined in the DTD or schema
IsEmptyTag Returns if the current node is empty or notItem Returns if value of the attributeLocalName Name of the current node without the namespace prefixName Name of the current node with the namespaces prefixNamespaceURI Namespace uniform Resource Name (URN) of the current
namespace scopeNameTable Returns the XmlNameTable associated with this
implementation NodeType Returns the type of node Prefix Returns the namespace associated with a node ReadState Read state Value Returns the value of a node XmlLang Returns the current xml:lang scopeXmlSpace Returns the current xml:space scope
Tabel 5.3 Metode Publik class XmlReader
PUBLIC INSTANCE METHOD DESCRIPTIONClose Close the stream and changes ReadState to
ClosedGetAttribute Returns the value of an attributeIsStartElement Checks if a node has start tagLookupNamespace Resolves a namespace prefix in the current
element’s scope MoveToAttribute, MoveToContent, MoveToElement,
Moves to specified attributes, content, and element
MoveToFirstAttribute, MoveToNextAttribute
Moves to the first and next attributes
Read Reads a nodeReadAttributeValue Parses the attributes value into one or more Text
and/or EntityReference node typesReadXXXX (ReadChar, ReadBoolean, ReadDate, ReadIn32, and so on)
Reads the contents of an element into the specified type including char, double, string, date, and so on
ReadInnerXml Reads all the content as a stringSkip Skips the current element
39
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
40
Gambar 5.4 Desain Form
Berikut adalah nilai dari properti setiap komponen.
Tabel 5.1 Properti Form
No. Nama Objek Nama Properties Nilai1. Form (Name) MainForm
Text Simple XML Reader2 DataGridView (Name) XMLDataGridView3. Button (Name) OpenXMLButton
Text &Open XML File4. OpenDialog (Name) XMLOpenFileDialog
Filter XML File *.xml|*.*
Code View
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Xml;
namespace XmlToGrid{ public partial class MainForm : Form { public MainForm() { InitializeComponent(); }
private void OpenXMLButton_Click(object sender, EventArgs e) { XmlDataDocument xmlDataDocument = new XmlDataDocument();
41
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,
42
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.
43
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. Column Name DataType Length Nulls Unique Primary Key1. noProduk Nvarchar 2 No Yes Yes2. namaProduk Nvarchar 50 Yes No No3. jumlahProduk Numeric 5 Yes No No4. hargaProduk Money 19 Yes No No
4. Memasukkan Data pada Tabel
44
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 namaProduk jumlahProduk hargaProduk1 Cola 10 30002 Sprite 12 35003 Sosro 15 25004 Fanta 5 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 Program “Menampilkan Isi Basis Data”
Design View
No. Nama Objek Nama Properties Nilai1. Form (Name) frProduk
Text DaftarProduk2 DataGridView (Name) DataGridView1
Code View
using System;using System.Collections.Generic;using System.ComponentModel;
45
using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using 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
46
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.
47
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
48
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
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.
49
Gambar 7.5 Choose Your Data Objects
50
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
51
Berikut adalah nilai dari properti setiap komponen.
Tabel 7.1 Properti Form
No. Nama Objek Nama Properties Nilai1. Form (Name) Form1
Text Simple Linq2 DataGridView (Name) dataGridView1
Anchor Top, Bottom, Left, RightReadOnly TrueAllowUserToAddRow FalseAllowUserToDeleteRow FalseSelectionMode FullRowSelect
3 GroupBox (Name) groupBox1Anchor Bottom, LeftText Pencarian
4 Label (Name) label1Text Judul
5 Label (Name) label2Text Penulis
6 Label (Name) label3Text Abstrak
7 Button (Name) ResetButtonText Reset
8 Button (Name) SearchButtonText Cari
9 Button (Name) AddButtonText TambahAnchor Bottom, Left
10 Button (Name) EditButtonText UbahAnchor Bottom, Left
11 Button (Name) DeleteButtonText HapusAnchor Bottom, Left
Source Code
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;
namespace SimpleLinq{ public partial class Form1 : Form { public Form1()
52
{ 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());
53
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
54
Design View
Gambar 7.8 Tampilan Design Form
Berikut adalah nilai properti dari setiap komponen.
Tabel 7.2 Properti Form
No. Nama Objek Nama Properties Nilai1. Form (Name) BookForm
Text BukuFormBorderStyle FixedDialogMaximizeBox FalseMinimizeBox FalseStartPosition CenterScreen
2 Label (Name) label1Text Judul
3 Label (Name) label2Text Penulis
4 Label (Name) label3Text Abstrak
5 Button (Name) ResetButtonText Reset
6 Button (Name) SaveButtonText &Simpan
7 Button (Name) CancelButtonText &Batal
Source Code
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;
namespace SimpleLinq{
55
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(); } }}
56
Tugas
Tambahkan fungsi untuk peminjaman dan pengembalian buku pada program diatas.
57
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
58
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 Nama Properties Nilai1. Form (Name) ReportForm
Text ReportForm2 ReportViewer (Name) reportViewer1
Dock FillModifiers Public
Pada Form1 modul sebelumnya tambahkan sebuah button dengan properti sebagai
berikut.
Tabel 8.2 Properti Button
No. Nama Objek Nama Properties Nilai1. Button (Name) PrintButton
Text &Cetak
59
60
top related