Anda di halaman 1dari 79

i

DAFTAR ISI

DAFTAR ISI i
BAB 1. INTRODUCTION TO PROGRAMMING WORLD 1
Introduction to Programming 1
Introduction to Algorithm 4
Introduction to Flowchart 7
Soal-Soal 9
BAB 2. BASIC PROGRAMMING CASE 10
Introduction to Real Programming Case 10
Progression / Sequence 10
Validation & Verification 11
Positioning & Animation 12
String Manipulation 13
Soal-Soal 13
BAB 3. MICROSOFT .NET FRAMEWORK 14
Introduction to Microsoft .NET Framework 14
Object Oriented Programming Concept 18
Microsoft .NET Framework Component 19
Namespace 22
IDE Visual Studio .NET 23
Console Application 25
Soal-Soal 26
BAB 4. DATA AND CONTROL FLOW 27
Introduction Variable and Data Type 27
Variable 27
Data Type 28
Variable Declaration 32
Type Casting 33
Introduction to Control Flow 36

ii
Console Application Structure 36
Input / Output 40
Operator 40
Selection 42
Loop 45
Procedure and Function 54
Array 60
Array Concept 60
For Each Clause 63
Exception 64
Exception Handling 66
Throwing Exception 67
Soal-Soal 69
BAB 5. STRING MANIPULATION 70
String 70
String Functions 72
StringBuilder 75
Soal-Soal 76

1
BAB 1. INTRODUCTION TO PROGRAMMING
WORLD

Introduction to Programming
Computer Programming adalah suatu proses menulis
(write), menguji (test), dan merawat (maintain) suatu kode
sumber (source code) dari suatu program komputer. Menulis
suatu source code sering disebut dengan istilah programming
ataupun coding. Orang yang menuliskan kode program disebut
dengan programmer, coder, ataupun (software) developer.
Software Engineering adalah penerapan secara sistematis
(systematic), tertib (disciplined) dan bisa dihitung (quantifiable)
pada pendekatan untuk pengembangan (development),
pengoperasian (operation), dan perawatan (maintenance) dari
suatu software. Dalam proses Software Engineering, ada tahap-
tahap sistematis yang secara umum digunakan ketika software
dikembangkan, yaitu:
Requirement Spesification
Membahas mengenai seperti apa sistem yang
dibutuhkan, modul apa saja yang harus ada,
bagaimana proses bisnis perusahaan tersebut, adakah
persyaratan-persyaratan lain yang harus ada pada
sistem tersebut. Tahap ini biasa dilakukan oleh
konsultan atau system analyst.
Design
Tahap merancang sistem pada software yang
akan dibuat. Tahap ini biasa merancang sistem secara
keseluruhan, diantaranya termasuk sistem basis data

2
(database) yang akan digunakan, aliran perpindahan
data, state, maupun object serta parameternya. Tahap
ini biasa akan banyak mengalami negosiasi mengenai
kecocokan desain sistem dengan yang diminta oleh
pembeli sistem. Tahap ini biasa dilakukan oleh
konsultan atau system designer.
Coding
Tahap setelah desain disepakati kedua belah
pihak. Programmer akan melakukan penulisan source
code berdasarkan desain sistem yang telah disepakati.
Project Manager akan membagi sistem menjadi
modul-modul yang lebih kecil untuk dikerjakan para
programmer.
Testing
Untuk menguji sistem yang telah dibuat, tentu
dilakukan proses ujicoba. Pada tahap ini ada yg
dinamakan dengan Alpha Testing dan Beta Testing.
Alpha Testing dilakukan oleh sejumlah user atau
customer potensial ataupun tim penguji independen di
tempat developer untuk menguji penerimaan internal
akan sistem tersebut. Beta Testing dilakukan setelah
Alpha Testing, dengan merilis sistem dengan label
Beta Version untuk pengguna terbatas maupun tidak
terbatas dengan tujuan untuk menemukan dan
memperbaiki error ataupun bug yang ada.
Implementation
Tahap ini dilakukan ketika sistem sudah jadi
dan siap diterapkan. Proses ini sering merupakan
proses yang paling menyita waktu dan tenaga. Sistem
lama (kalau ada) akan digantikan dengan sistem baru,

3
karyawan dilatih untuk menggunakan sistem baru.
Data proses ujicoba ini mungkin akan menggunakan
data cadangan. Proses ujicoba secara LIVE ini biasa
memakan waktu sekitar 3 bulan. Dalam 3 bulan
tersebut bisa saja terjadi berbagai perbaikan. Setelah
sistem berjalan dengan baik, maka sistem akan GO
LIVE dengan menggunakan data asli.
Maintenance
Tahap melakukan perawatan pada sistem baru.
Setelah GO LIVE pun kadang sistem masih tidak
berjalan dengan sempurna, baik disebabkan oleh
faktor internal (karyawan tidak mematuhi instruksi,
bug, dll) maupun faktor eksternal (serangan hacker,
virus, dll). Oleh karena itu perawatan terus menerus
tetap diperlukan untuk menjaga stabilitas sistem baru
tersebut.

Dalam tahapan Software Engineering tersebut,
programming sering disamakan dengan fase coding, dimana
merupakan penulisan kode program, walaupun definisi
programming sendiri termasuk testing dan maintaining dari
source code itu sendiri.

4

Gambar 1: Tahapan pengembangan Software.

Introduction to Algorithm
Algoritma (Algorithm) merupakan suatu daftar yang
terbatas (mempunyai awal dan akhir) untuk menyelesaikan suatu
tugas yang, diberikan suatu kondisi awal, akan berakhir dengan
kondisi akhir yang sudah ditentukan. Konsep ini sering disebut
dengan IPO (Input Process Output) serta merupakan konsep
dasar dari programming secara keseluruhan.


Gambar 2: Bagan Input - Process - Output


5
Filosofi ini bersifat universal dan berlaku untuk semua
kegiatan produksi, contoh:

Input: Ayam, minyak goring, telur ayam, garam, tepung,
merica.
Process: Memasak dan menggoreng.
Output: Ayam goreng tepung.

Input: Air, semen.
Process: Membuat adonan semen.
Output: Campuran semen.

Input: Manusia.
Process: Pengajaran.
Output: Manusia dengan pengetahuan lebih.

Input: J umlah bilangan prima yang diinginkan.
Process: Menampilkan bilangan prima pertama sesuai
dengan jumlah yang diminta.
Output: Deret bilangan prima sebanyak input yang diminta.

Input: Data Transaksi Pelanggan
Process: Pembuatan Laporan.
Output: Laporan pelanggan potensial, laporan sebaran
wilayah pelanggan.

Algoritma merupakan deskripsi bagaimana cara / proses
yang harus dilakukan untuk mengubah semua input tersebut
menjadi output yang dikehendaki. Contoh algoritma:


6
Eating: grab the spoon, fill the spoon with food until it is full
of food, open the mouth, raise the spoon until it reach the mouth
and close the mouth while pulling the spoon out of the mouth.

Walking: Lift the right leg and swing it forward, lean the body
forward until the leg reach the floor, lift the left leg and swing it
forward, lean the body forward until the leg reach the floor, etc.

Algoritma mempunya beberapa kata kunci:
Do something (Lakukan sesuatu).
If this condition was met, do something (J ika suatu
kondisi ditemukan, lakukan sesuatu).
If this condition was met, do something, if not, do
something else (J ika suatu kondisi ditemukan, lakukan
sesuatu, jika tidak, lakukan sesuatu yang lain).
Do something until this condition was met (Lakukan
sesuatu sampai suatu kondisi ditemukan).
If something happened, do something (J ika terjadi
sesuatu, lakukan sesuatu). Konsep event-driven.


7

Gambar 3: Contoh suatu algoritma


Introduction to Flowchart
Flowchart (Bagan Alir) merupakan suatu representasi
berbentuk skema / bagan dari suatu algoritma atau proses.
Flowchart menggunakan simbol-simbol sebagai penanda proses.
Simbol tersebut adalah:

: Merepresentasikan suatu
state awal dan akhir. Bisa menggunakan bentuk elips
atau kotak bulat (rounded rectangle).

8
: Merepresentasikan suatu
aliran kontrol. Anak panah yang dating dari satu simbol
ke simbol lain merepresentasikan bahwa kontrol
program diteruskan ke simbol dimana anak panah
menuju.

: Merepresentasikan suatu
proses. Masing-masing proses dapat diperinci menjadi
proses-proses yang lebih detil.

: Merepresentasikan suatu
proses input maupun output. Proses input adalah
membaca suatu data (bisa dari mana saja, misal:
layar, keyboard, file, database, dll) sedangkan proses
output adalah menuliskan suatu data (bisa ke apa
saja, misal: layar, file, printer, dll).

: Merepresentasikan suatu
kondisi untuk diambil keputusan. Biasa disebut dengan
conditional. Simbol ini memiliki 2 anak panah yang
keluar, biasanya anak panah Yes mengarah ke
bawah dan anak panah No mengarah ke samping.
J ika kondisi di dalam simbol bernilai benar, kontrol
akan mengarah ke simbol yang ditunjukkan oleh anak

9
panah Yes, jika tidak benar, kontrol akan mengarah
ke simbol pada anak panah No.

: Merepresentasikan suatu
proses perulangan (iterasi). Proses ini biasa disebut
dengan loop. Suatu loop mungkin terjadi apabila ada
sebuah conditional dimana salah satu anak panahnya
mengarah ke simbol sebelum conditional tersebut,
sedangkan anak panah yang lain mengarah ke simbol
lain.


Soal-Soal
1. J elaskan apa yang dimaksud dengan Computer
Programming dan Software Engineering.
2. Sebutkan tahap-tahap apa saja yang ada dalam Softwre
Engineering.
3. J elaskan apa yang dimaksud dengan Algoritma.
4. J elaskan apa yang dimaksud dengan Flowchart.
5. Sebut dan jelaskan kegunaan dari tiap symbol yang ada
pada Flowchart.

10
BAB 2. BASIC PROGRAMMING CASE

Introduction to Real Programming Case
Kasus nyata yang terjadi pada programming biasanya
sangat kompleks dan sering berkaitan dengan proses bisnis
maupun prosedur-prosedur. Namun untuk melatih logika
pemrograman serta algoritma yang dibutuhkan untuk
memecahkan kasus yang kompleks tersebut, sering digunakan
kasus sederhana namun dengan tingkat logika yang cukup tinggi.
Kasus kompleks yang terjadi dalam real-case pun kebanyakan
merupakan kombinasi dari kasus sederhana tersebut, dengan
syarat dan ketentuan yang lebih rumit tentunya.
Kasus sederhana yang sering digunakan untuk melatih
logika diantaranya adalah deret, validasi, positioning, serta string
manipulation.

Progression / Sequence
Progression / Sequence / Deret bilangan adalah salah
satu algoritma yang sering digunakan untuk melatih logika dalam
pemrograman. Dalam bentuk yang paling sederhana, latihan
deret hanya menampilkan suatu deret bilangan dimana terdapat
suat perbedaan yang konstan diantara dua bilangan. Contoh:

1, 3, 5, 7, 9, 11, ... Deret bilangan ganjil (setiap bilangan
ditambah 2)
2, 7, 12, 17, 22, ... Setiap bilangan ditambah 5
0, 3, 6, 9, 12, 18, 21, 24, 27, 33 Kelipatan 3 ditampilkan
kecuali yang juga kelipatan 5

11

Deret yang lebih kompleks bisa didapat dengan
perbedaan yang tidak konstan. Contoh:
0, 1, 1, 2, 3, 5, 8, 13, ... Deret Fibonacci (J umlah 2 bilangan
adalah bilangan selanjutnya)
1, 3, 7, 13, 21, 31, 43, ... Setiap bilangan ditambah 2, 4, 6, 8,
...
2, 3, 5, 7, 11, 13, 17, ... Deret bilangan prima (hanya bisa
dibagi 1 dan dirinya sendiri)

Real-case dari deret ini bisa dijumpai dalam positioning,
animation, validation, dsb.

Validation & Verification
Validation adalah suatu proses untuk melakukan
pengecekan apakah suatu input memenuhi kriteria tertentu.
Validation merupakan algoritma yang sangat penting dengan
adanya prinsip GIGO (Garbage In Garbage Out) yang berarti bila
input yang dimasukkan tidak benar, maka output yang dihasilkan
juga tidak benar. Misalkan:

Pilihan

1. Insert
2. Update
3. Delete
Pilihan (1-3):

Nama hanya boleh mengandung huruf.
Input yang boleh diterima hanya 1, 2, dan
3 saja. Yang lain harus ditolak
}

12
Alamat e-mail tidak boleh mengandung @, #, $, %,
dst...
dst...

Meski mempunyai logika yang hampir sama, validation
harus dibedakan dari verification. Validation menentukan mana
input yang boleh diterima (valid) dan tidak, sedangkan verification
memeriksa input yang valid tersebut sesuai dengan yang
dibutuhkan atau tidak. Misalkan input alamat: J l. Buncis no 123
input valid (hanya mengandung karakter huruf, angka, dan
titik), namun harus dilakukan verification apakah J l. Buncis
memang ada dan apakah no 123 benar-benar ada.


Positioning & Animation
Basic Logic yang sering digunakan pada bahasa
pemrograman tingkat rendah seperti C/C++, Pascal, Basic, dll.
Positioning adalah membuat suatu bentuk di layar console
dengan menggunakan karakter dasar seperti *, namun bisa
terlihat sebagai sebuah bentuk lain dengan pengaturan posisi.
Contoh:

* *
*** **
******* * *
***** * *
*** **
* *


13
Positioning juga merupakan dasar untuk animation.
Dengan mengubah posisi setiap satuan waktu, maka suatu
karakter atau kumpulan karakter bisa terlihat seolah-olah
bergerak.

String Manipulation
String Manipulation merupakan suatu kemampuan untuk
mengatur tampilan suatu data agar enak dilihat ataupun agar
data cocok dengan format yang diminta. Misalkan:
Melakukan validation pada nama dan alamat e-mail.
Mengubah format tampilan tanggal agar sesuai
dengan yang diinginkan.
Mengambil sebagian data yang diinginkan dari suatu
format tertentu, misal: No. Faktur: M-04-PUR-
03042007-AL PUR adalah kode Purchasing, AL
adalah kode pemasok, M adalah shift Malam, dsb...

Soal-Soal
1. Buatlah flowchart untuk menampilkan 10 bilangan ganjil
pertama.
2. Buatlah flowchart untuk menampilkan 10 bilangan pertama
yang merupakan kelipatan 4 dan 6.
3. Buatlah flowchart untuk menampilkan n bilangan prima
pertama.
4. Buatlah flowchart untuk menampilkan n bilangan
Fibonacci (0, 1, 1, 2, 3, 5, 8, ).


14
BAB 3. MICROSOFT .NET FRAMEWORK

Introduction to Microsoft .NET Framework

Microsoft .NET Framework merupakan suatu teknologi
baru yang dikeluarkan oleh Microsoft untuk menciptakan suatu
platform aplikasi baru yaitu Microsoft .NET Technology. Sampai
pada saat buku ini ditulis .NET Framework harus dijalankan pada
operating system yang berbasiskan pada Win32, dan juga
Microsoft Windows CE. Ada juga pihak ketiga yang membuat
suatu tools agar .NET Framework bisa berjalan di Linux , Solaris,
Mac OS X, maupun UNIX. Proyek pembuatan tools tersebut
dinamakan Mono Project. Meski bukan besutan resmi dari
Microsoft, proyek ini disambut dengan antusias oleh kalangan
developer secara luas. Microsoft .NET juga memberikan model
pemrograman yang konsisten yang dapat digunakan untuk
membuat berbagai macam aplikasi.
Teknologi .NET muncul karena adanya beberapa alasan
pada teknologi aplikasi Microsoft yang lama. Teknologi aplikasi
Microsoft yang lama berbasiskan pada suatu standar yang
disebut dengan COM. Standar COM ini mempunyai berbagai
macam keterbatasan yang cukup signifikan. Keterbatasan yang
dimiliki oleh COM antara lain :
DLL Hell
Istilah yang sering kali dipakai oleh para
programmer untuk menyatakan masalah versi yang
terjadi pada COM. Ketika COM mengalami
perubahan atau pembaharuan seluruh aplikasi yang
memakai component tersebut harus di compile

15
ulang. J ika tidak sering kali menyebabkan Run Time
Error.

Ketidak cocokan dengan platform lain
Standar COM tidak dapat diterapkan untuk platform
atau mesin yang lain. Ketergantungan COM
terhadap operating system Win32 sangat tinggi.
Sehingga untuk diterapkan pada mesin seperti
PDA, Handphone sangat susah sekali.

Tidak dapat melakukan inheritance
J ika seorang programmer membuat sebuah
komponen yang dapat digunakan oleh banyak
aplikasi di platform Win32, programmer tersebut
harus membuat komponen tersebut sesuai dengan
standar COM. Di dalam standar COM sendiri tidak
dapat dilakukan inheritance (pewarisan sifat)
sehingga sangat sulit jika programmer lain Ingin
mengembangkan lebih lanjut component yang
sudah ada.

Dengan adanya keterbatasan keterbatasan inilah
Microsoft mengeluarkan teknologi barunya yaitu Microsoft .NET
pada tahun 2002. Teknologi yang dikeluarkan oleh Microsoft ini
mempunyai beberapa keunggulan dibandingkan dengan
teknologi COM, yaitu:

Mendukung OOP (Object Oriented Programming),
sehingga kode kode program .NET mudah

16
diorganisasikan untuk pengembangan aplikasi
berskala enterprise.
Mendukung banyak teknik untuk melakukan parsing
dan manipulasi data dalam format XML (eXtensible
Markup Language)
Mampu mengirim dan menerima data dengan berbagai
macam network protocol (HTTP, SOAP, dll)
Mempunyai teknologi baru dalam akses dan
manipulasi database (teknologinya sering disebut
dengan disconnected data source)
Mendukung banyak teknik untuk melakukan enkripsi
dan dekripsi file.
Mempunyai garbage collector untuk mencegah
terjadinya memory leak.


Gambar 4: Struktur Language pada .NET

Dalam teknologi .NET teknik kompilasi yang terjadi pada
source code program memiliki sedikit keunikan. Langkah
langkah kompilasi yang terjadi pada program .NET adalah :


17
Source code program dalam bahasa VB, C#, C++, dll
akan di-compile oleh IL (Intermediate Language)
Compiler menjadi kode kode baru dalam bahasa
yang disebut sebagai MSIL (Microsoft Intermediate
Language)
MSIL adalah kumpulan instruksi instruksi yang tidak
bergantung pada jenis CPU tertentu, dan dapat
dengan efisien diubah menjadi native code. Dengan
konsep ini memungkinkan aplikasi berbasiskan .NET
berjalan di berbagai macam mesin.
Ketika aplikasi .NET ini dijalankan, operating system
akan memanggil CLR untuk menjalankan MSIL dari
aplikasi tersebut.
CLR inilah yang mengkonversi dari MSIL menjadi
native code yang dapat dikenali oleh CPU dari mesin
tertentu atau sering disebut sebagai CPU Instructions.
CLR tidak mengkonversi semua MSIL code menjadi
native code, hanya fungsi fungsi tertentu yang
dipanggil atau yang diperlukan. Mengkompile bagian
bagian tertentu dari MSIL dilakukan oleh salah satu
component dari CLR yang dinamakan J IT (Just In
Time) compiler.
Teknik yang dilakukan oleh J IT Compiler ini dapat
menghemat memory dan waktu untuk menjalankan
aplikasi.

Dengan cara kompilasi seperti itu memungkinkan sebuah
aplikasi .NET dibangun dengan berbagai macam bahasa
pemrograman, dengan catatan bahasa tersebut mempunyai IL

18
Compiler-nya masing masing. Hal ini juga merupakan salah
satu keunggulan dari teknologi .NET, sehingga dalam pembuatan
sebuah proyek aplikasi tidak harus dibatasi oleh satu macam
bahasa.
Teknologi .NET dapat dimanfaatkan untuk menciptakan
berbagai jenis aplikasi, yaitu:
Windows Application
Windows Service
Web Application (sering disebut sebagai teknologi ASP
.NET)
Web Service
Smart Device Application
Microsoft .NET Framework 2.0

Microsoft .NET Framework 2.0 merupakan pengembangan
selanjutnya dari versi .NET Framework sebelumnya (versi 1.1).
Perbedaan paling nyata ditunjukkan pada Framework Class
Library (FCL) yang merupakan kumpulan dari class yang dapat
dipakai secara langsung oleh para developer untuk membuat
suatu aplikasi. Class yang terdapat pada FCL banyak yang
merupakan class tambahan dan penyederhanaan dari class yang
ada pada framework sebelumnya.

Object Oriented Programming Concept
Seperti dikatakan sebelumnya teknologi .NET mendukung
pemrograman berorientasi obyek secara penuh. Tidak seperti
teknologi sebelumnya yaitu COM. Kemampuan kemapuan yang
harus dimiliki oleh suatu teknologi aplikasi sehingga dapat
dikatakan object oriented adalah:

19

Encapsulation
Teknik untuk menyembunyikan detail data /
informasi sehingga tidak dapat diakses secara
langsung oleh programmer lain.
Inheritance
Teknik pewarisan sifat kepada class turunan.
Polymorphism
Satu buah nama fungsi dapat memiliki berbagai
macam bentuk dan penerapan.

Note: COM mendukung teknik encapsulation dan polymorphism,
tetapi tidak mendukung teknik inheritance, sehingga teknologi
COM tidak dapat dikatakan mendukung OOP Concept.

Microsoft .NET Framework Component
.NET Framework terdiri dari beberapa bagian, yaitu:

CLR (Common Language Runtime)
CLR akan bekerja ketika kita menjalankan aplikasi
.NET. Sering dikatakan sebagai execution
environment untuk mengatur kode kode .NET
pada saat runtime (dijalankan). CLR bekerja hampir
seperti J VM (Java Virtual Machine) pada teknologi
J ava. J adi dengan melihat kerja dari CLR ini dapat
disimpulkan bahwa .NET Framework harus diinstall
pada mesin di mana aplikasi .NET akan dijalankan.
Dalam CLR sendiri terdapat 2 teknologi yang
mendukung kinerja CLR secara keseluruhan, yaitu:

20

CTS (Common Type System)
Sebuah fitur dari CLR yang memungkinkan
cross language. J adi kode kode program
untuk membuat class yang dibuat dengan
bahasa yang berbeda beda dapat
berkomunikasi satu dengan yang lainnya.
Hal itu dimungkinkan dengan diciptakan
standarisasi cara untuk merepresentasikan
data (common set of data type). Semua
tipe data yang ada di Intermediate
Language (IL) didefinisikan di dalam CTS.
J adi kesimpulannya semua tipe data pada
berbagai macam bahasa pada akhirnya
disimpan dalam satu macam tipe data.
CTS membedakan tipe data menjadi 2
bagian yaitu value type (primitive data
type) dan reference type. Yang termasuk
dalam value type adalah built-in type
(integer, float, dll), struct, dan enumeration.
Sedangkan yang termasuk dalam
reference type adalah semua variable
yang menyimpan alamat dari suatu
memory, contohnya tipe object.

CLS (Common Language Spesification)
Kelemahan teknologi yang mendukung
banyak bahasa adalah tidak semua fitur
ada di semua bahasa pemrograman.
Contohnya tipe data signed byte (sbyte)

21
terdapat dalam bahasa C# tetapi tidak
terdapat dalam VB .NET. CLS mengatur
bagian mana dari suatu class bisa atau
tidak diakses oleh bahasa yang lain.

Garbage Collector
Dalam bahasa pemrograman lama seperti
C++jika kita mengalokasikan suatu object
di memory, setelah digunakan object
tersebut harus dibersihkan terlebih dahulu
dari memory sebelum aplikasi berakhir.
J ika tidak dibersihkan akan meninggalkan
sampah memory atau sering disebut
sebagai memory leak, jika memory leak
makin banyak di dalam memory akan
menyebabkan turunnya kecepatan
eksekusi suatu program, dan pada
akhirnya dapat menyebabkan operating
system menjadi hang. Garbage collector
dalam .NET akan mengecek semua object
yang ada di memory, jika sudah tidak
dipakai atau dibutuhkan (tidak ada
reference lagi ke alamat memory tersebut)
maka garbage collector akan
membersihkan memory tersebut secara
otomatis. Sehingga dapat mempermudah
pekerjaan programmer. Garbage Collector
bekerja secara otomatis tanpa diperintah
oleh programmer, sehingga kita tidak
dapat mengetahui kapan Garbage

22
Collector tersebut dijalankan, semua diatur
oleh CLR.

Class Library
Menyediakan sekumpulan class library
yang dapat digunakan oleh semua bahasa
pemrograman yang mempunyai
kompatibilitas dengan .NET. Dan
semuanya disimpan dalam bentuk MSIL,
sehingga tidak bergantung pada suatu
bahasa pemrograman.

Namespace
Teknologi .NET Framework terdiri dari kumpulan besar
class library yang terdiri dari berbagai macam kategori. Untuk
mengelompokkan class library yang ada di dalam .NET
Framework diciptakan sebuah struktur yang dinamakan dengan
Namespace. Hubungan antara Namespace dengan Class dapat
dianalogikan dengan hubungan antara folder / directory dengan
file. J adi namespace berguna untuk mengatur class yang ada di
dalam .NET Framework dengan struktur Tree Hierarchy.
Untuk mengakses namespace yang ada, digunakan dot-
syntax naming schema. Contoh untuk mengakses namespace
Data yang terdapat di dalam namespace System ditulis
System.Data.
Namespace System merupakan akar dari semua
namespace yang ada di .NET Framework. Di dalam namespace
System terdapat tipe data Object yang merupakan induk dari
semua tipe yang ada di .NET.

23

Note: Istilah Namespace sama dengan istilah Package pada
J ava.


IDE Visual Studio .NET
Untuk membuat sebuah solution (istilah project group
dalam .NET) baru dalam .NET pertama tama kita harus
membuka Visual Studio .NET terlebih dahulu. Visual Studio .NET
merupakan IDE (Integrated Development Environment) untuk
membuat berbagai macam jenis aplikasi. Berikut ini adalah
tampilan awal dari Visual Studio .NET 2005.

Gambar 5: Tampilan awal Microsoft Visual Studio .NET 2005

Untuk membuat sebuah project baru pilih link Create
Project pada sub-window Recent Projects atau pilih File | New |
Project kemudian akan muncul kotak dialog seperti di bawah ini:


24

Gambar 6: Layar "New Project"

Untuk membuat aplikasi dengan bahasa Visual Basic
pada Project Types pilih Visual Basic. Untuk menentukan jenis
aplikasi yang akan dibuat pada bagian Templates pilih salah satu
aplikasi yang ingin dibuat. Sebagai contoh pilihlah Console
Application. Setelah memilih jenis aplikasi yang ingin dibuat
tentukan nama Project yang Anda buat dengan mengisikan nama
Project Anda di Textbox Name, lokasi penyimpanan Project dapat
Anda tentukan dengan mengisi Textbox Location. Aktifkan
Create directory for solution untuk memasukkan project tersebut
ke dalam solution baru dengan solution folder yang baru sesuai
dengan nama project nya.

25
Microsoft Visual Studio akan secara otomatis membuat
seluruh file yang dibutuhkan untuk project tersebut pada lokasi
yang telah ditentukan.

Console Application
Console Application merupakan salah satu jenis aplikasi
yang dapat dibuat dengan teknologi .NET. Console Application
merupakan aplikasi yang berbasis text, aplikasi ini dibuat jika
aplikasi tidak memerlukan tampilan Graphical User Interface
(GUI), namun lebih mementingkan kepada proses kerja aplikasi.
Contoh aplikasi semacam ini adalah aplikasi server yang hanya
bertugas memberikan layanan pada client. Console Application
juga banyak dipakai untuk mengajarkan pemahaman dasar
mengenai logika pemrograman dan algoritma karena lebih
sederhana daripada Desktop Application.


Gambar 7: Contoh tampilan "Console Application"


26
Soal-Soal
1. Apa yang dimaksud dengan .NET Framework?
2. Apa yang dimaksud dengan Microsoft Visual Studio .NET
3. Apa yang dimaksud dengan Visual Basic?
4. Apakah perbedaan dari .NET Framework, Microsoft Visual
Studio .NET dengan Visual Basic?


27
BAB 4. DATA AND CONTROL FLOW

Introduction Variable and Data Type

Dalam pembuatan suatu aplikasi sering dibutuhkan tempat
untuk menyimpan data sementara sehingga nantinya bisa diolah
lebih lanjut. Untuk menyimpan data tersebut, tempat
penyimpanan terbaik adalah di RAM. J ika penyimpanan
dilakukan di memory harddisk dapat memperlambat kinerja dari
suatu program. Untuk melakukan penyimpanan data pada RAM
digunakan variable.

Variable
Variable adalah suatu representasi dari
memory yang digunakan untuk menampung suatu nilai.
J enis nilai atau data yang dapat disimpan oleh suatu
variabel ditentukan oleh tipe data dari variabel tersebut.
Variabel harus dideklarasikan dulu tipenya sebelum
dipakai.

Note: Meskipun terdapat cara yang dapat memakai
variabel tanpa harus mendeklarasikannya, sangat
disarankan untuk mendeklarasikan variabel terlebih
dahulu untuk mempercepat kinerja dari aplikasi.

Variable secara garis besar dapat dibedakan
menjadi dua jenis yaitu

28
Local Variable: Variable yang hanya
dikenal secara lokal oleh suatu scope
tertentu.
Global Variable: Variable yang dikenal oleh
beberapa scope.

Yang dimaksud dengan scope adalah bagian
dari suatu program, bisa berupa procedure, function,
atau suatu compound statement (gabungan dari
beberapa perintah). Penentuan suatu variabel akan
bersifat lokal atau global sangat tergantung pada sudut
pandang seorang programmer. Penentuan variabel lokal
atau global sangat berpengaruh sekali pada kualitas dari
sebuah kode program. Semakin banyak variabel lokal
yang digunakan, biasanyaberarti kualitas kode program
yang dihasilkan semakin bagus, karena mempermudah
pembacaan, meningkatkan penggunaan kembali
(reusability) dari kode program tersebut, serta
mempercepat pembersihan memory yang tidak
digunakan oleh garbage collector.

Data Type
J enis nilai yang dapat ditampung oleh suatu
variable ditentuikan pada saat deklarasi variable,
dimana sekaligus menyatakan apa tipe data dari
variable tersebut. Penentuan tipe data juga berpengaruh
pada berapa jumlah memory yang dialokasikan untuk
variable tersebut. Efisiensi dari tipe data sangat
dibutuhkan agar aplikasi bisa berjalan dengan lancar.


29


Tipe
Data
.NET Class Keterangan
Byte System.Byte
(structure)
Tipe data ini dapat
menampung bilangan bulat
antara 0 hingga 255. Tipe
data ini berukuran 1 byte
Short System.Int16
(structure)
Tipe data ini dapat
menampung bilangan bulat
antara -32.768 hingga
32.767. Tipe data ini
berukuran 2 byte
Integer System.Int32
(structure)
Tipe data ini dapat
menampung bilangan bulat
antara
-2.147.483.648 hingga
2.147.483.647. Tipe data
ini berukuran 4 byte.
Long System.Int64
(structure)
Tipe data ini dapat
menampung bilangan bulat
antara
-
9,223,372,036,854,775,80
8 hingga
9,223,372,036,854,775,80
7

Single System.Single Tipe data ini dapat

30
(structure) menampung bilangan real
antara
-3.4028235E+38 hingga
-1.401298E-45 untuk nilai
negatif, sedangkan untuk
nilai positif antara
1.401298E-45 hingga
3.4028235E+38
Double System.Double
(structure)
Tipe data ini dapat
menampung bilangan real
antara
-
1.79769313486231570E+3
08 hingga
-4.94065645841246544E-
324 untuk nilai negatif,
sedangkan untuk nilai
positif antara
4.94065645841246544E-
324 hingga
1.79769313486231570E+3
08
Decim
al
System.Decimal
(structure)
Tipe data ini dapat
menampung bilangan
desimal dengan jumlah
digit antara 0 sampai 28
Boolea
n
System.Boolean
(structure)
Tipe data ini hanya dapat
menampung 2 jenis nilai,
yaitu nilai true atau false.

31
J ika direpresentasikan
dengan angka nilai false
dinyatakan dengan nilai 0,
dan nilai true dinyatakan
dengan nilai 1.
Date System.DateTi
me
(structure)
Tipe data ini dikhususkan
untuk menampung nilai
yang berupa tanggal atau
waktu. Dengan
memanfaatkan tipe data ini
kita dapat mengolah data
tanggal dengan memakai
fungsi fungsi tertentu.
Char Sytem.Char
(structure)
Tipe data ini hanya dapat
menampung satu buah
karakter. J ika diisi lebih
dari satu karakter maka
secara otomatis akan
dipotong menjadi satu.
String System.String
(class)
Tipe data ini digunakan
untuk menampung
rangkaian karakter atau
kata. J umlah memory yang
dipakai oleh tipe data ini
bersifat dinamis.



32
Variable Declaration
Seperti yang telah disebutkan di atas ketika
hendak memakai sebuah variabel harus terlebih dahulu
mendeklarasikan variabel tersebut.
Sintaks untuk mendeklarasikan variabel :

Di m<nmVariabel> as <DataType>
Contoh :
Di mt ot al Empl oyee as I nt eger
Di mst af f Name as St r i ng

Untuk penamaan variabel terdapat beberapa
aturan tertentu :
Nama variabel tidak boleh menggunakan
karakter karakter khusus seperti : ! , @, #,
%, - , spasi, dll. J ika ingin menggunakan
pemisah, bisa digunakan karakter _
(underscore).
Nama variabel tidak boleh memakai
keyword (kata kunci) yang ada di dalam VB
.NET ataupun nama class di .NET
Framework, contoh : I nt eger , St r i ng,
Col or , new, dll.
Nama variabel boleh mengandung angka
selain di bagian awal. Contoh: box2,
t r i angl e3, st af f 3Account i ng.

Deklarasi variabel dapat ditulis pada bagian
awal atau di tengah tengah sebuah function, method,

33
atau class. Pemberian nilai bisa dilakukan bersamaan
dengan deklarasi. Misal:

Di mt ot al Empl oyee as I nt eger = 100
Di m nama_empl oyee as St r i ng =
J ohn

Type Casting
Pengisian nilai pada suatu variabel terkadang
berasal dari variabel yang bertipe data berbeda. J ika
terjadi perbedaan tipe data pada operasi assignment,
maka terjadilah proses yang dinamakan dengan
konversi atau type casting. Konversi dapat dibedakan
menjadi 2 jenis yaitu:

Implicit Conversion
Konversi ini dilakukan secara otomatis pada
saat runtime. Terjadi ketika melakukan
konversi dari tipe data yang ukurannya lebih
kecil ke tipe data yang ukurannya lebih
besar. Misalkan dari tipe data byte ke
Integer, dari tipe data single ke double.
Contoh:

Di ml engt h1 as byt e
Di ml engt h2 as I nt eger
l engt h1 = 4
l engt h2 = l engt h1

Explicit Conversion

34
Konversi ini dilakukan dengan memakai
fungsi fungsi yang telah disediakan.
Konversi ini terjadi ketika melakukan
konversi ke tipe data yang tidak sejenis atau
dari tipe data yang berukuran besar ke tipe
data yang berukuran kecil. contohnya dari
tipe data String ke tipe data Integer. Berikut
ini adalah daftar tabel fungsi fungsi
konversi pada VB .NET :

Nama Fungsi Keterangan
Cbool() Untuk mengkonversi suatu nilai
menjadi Boolean
CDbl() Untuk mengkonversi suatu nilai
menjadi Double
CObj() Untuk mengkonversi suatu nilai
menjadi Object
Cbyte() Untuk mengkonversi suatu nilai
menjadi Byte
CDec() Untuk mengkonversi suatu nilai
menjadi Decimal
Cshort() Untuk mengkonversi suatu nilai
menjadi Short
Cchar() Untuk mengkonversi suatu nilai
menjadi Char
CInt() Untuk mengkonversi suatu nilai

35
menjadi Integer
CSng() Untuk mengkonversi suatu nilai
menjadi Single
Cdate() Untuk mengkonversi suatu nilai
menjadi Date
CLng() Untuk mengkonversi suatu nilai
menjadi Long
CStr() Untuk mengkonversi suatu nilai
menjadi String

Selain dari fungsi fungsi yang di sebutkan di
tabel tersebut, ada satu fungsi yang dapat mengkonversi
suatu nilai menjadi tipe data apa saja yaitu CType( ) .

Sintaks :
CType ( <Nilai>, <TipeDataTujuan>)

Contoh :
Di mst r Wi dt h as St r i ng
Di mwi dt h as I nt eger
st r Wi dt h = 4
wi dt h = CType( wi dt h, I nt eger )

Konversi eksplisit dapat juga dilakukan melalui
fungsi dari class Convert.
Contoh:
Di mdi amet er as Si ngl e
Di mst r Di amet er as St r i ng

36

di amet er = 2. 54
st r Di amet er =
Conver t . ToSt r i ng( di amet er )

Note: Meskipun konversi implisit bisa dilakukan oleh
compiler, usahakan tetap menggunakan fungsi fungsi
type casting untuk mempercepat kinerja dari aplikasi

Pada VB6 terdapat tipe data var i ant yang
sudah tidak ada lagi pada VB .NET. J ika seorang
programmer ingin memanfaatkan tipe data seperti
variant di dalam VB .NET dapat digunakan tipe data
Object. Ketika suatu nilai dimasukkan ke variable bertipe
Object akan terjadi proses Boxing. Contoh :

Di mx as I nt eger = 5

Di mobj as Obj ect = x
Boxing terjadi

Di m y as Long = CType( obj , Long)
Unboxing terjadi

Introduction to Control Flow
Console Application Structure
Console Application mempunyai struktur file
dan kode proyek yang berbeda dibandingkan dengan
struktur pada Desktop Application. Struktur default nya

37
terdiri dari satu file module dengan extension .vb dimana
merupakan kode yang pertama kali dieksekusi ketika
program dijalankan (sering disebut dengan Application
Entry Point). J ika terdapat beberapa module, maka entry
point bisa dipindah dengan mengklik kanan solution
name pada Solution Explorer dan pilih Properties.
Pada Startup object pilih module yang akan dijadikan
entry point.

Gambar 8: Solution Explorer


Gambar 9: Solution Properties

J ika ingin memasukin bagian code nya, double-
click module yang bersangkutan dan tampilan source
code akan muncul. Struktur penulisan source code
secara umum adalah:


38

Gambar 10: Struktur penulisan source code dalam VB .NET

Adapun aturan-aturan yang berlaku dalam
penulisan source code pada VB .NET adalah:
Sub Mai n( ) pada module yang dipilih
pada Startup object merupakan Program
Entry Point dimana akan dijalankan pertama
kali ketika program di-run. Bukan
merupakan kewajiban untuk mempunyai
function ini, namun class yang akan di-plot
sebagai Main Program harus mempunyai
procedure ini.
Statement harus dituliskan di dalam
procedure atau function. Contoh statement:
Consol e. Wr i t eLi ne( Hel l o Wor l d)

39

I f i =5 Then
Consol e. Wr i t eLi ne( i adal ah
5)
End I f

i = 5

Di mi as I nt eger Deklarasi (boleh di
luar function)
i = 5 Assignment (Harus di dalam
function)
Di m i as I nt eger = 5 Deklarasi +
Assignment (boleh di luar function)

Variable declaration boleh dituliskan di luar
maupun di dalam function. J ika di dalam
function, maka akan menjadi local variable
dimana tidak bisa diakses oleh function
maupun class lain, sedangkan jika
dideklarasikan di luar function, maka akan
menjadi global variable dimana bisa diakses
oleh function lain, dan bisa diakses oleh
class lain apabila dideklarasikan secara
public.
Function declaration tidak boleh ada di
dalam function dan harus di dalam class.


40
Input / Output
Operasi Input dan Output merupakan operasi
dasar dalam pemrograman. Pada Console Application,
Input biasa diambil dari keyboard, namun pada tingkat
yang lebih tinggi (biasa pada visual application) bisa
menggunakan mouse, file, database, barcode,
bluetooth, dll. Sedangkan untuk operasi Output, pada
tingkat dasar menggunakan layar, namun pada tingkat
lanjut bisa melalui file, database, printer, mekanis /
gerakan, Bluetooth, sinyal, dll).

Sintaks Output ke Console:
Consol e. Wr i t eLi ne( String )
Contoh:
Consol e. Wr i t eLi ne( Hel l o
Wor l d)

Sintaks Input dari Keyboard:
Consol e. ReadLi ne( )
Contoh:
Di mname as St r i ng
name = Consol e. ReadLi ne( )
Consol e. Wr i t eLi ne( My name
i s & name)

Operator
VB .NET menyediakan beberapa operator,
yaitu operator aritmatika untuk melakukan operasi
matematis, operator perbandingan untuk melakukan

41
perbandingan kondisi, dan operator logika untuk kondisi
yang lebih dari satu. Rincian operator tersebut adalah:
Arithmetic Operator
VB .NET mempunyai operator perhitungan
dengan meng-implementasikan operator
discrimination, yang berarti operator
tersebut mempunyai prioritas. J ika terdapat
2 operator atau lebih dalam satu operasi,
maka yang prioritas lebih tinggi akan
diutamakan. Demikian urutan operator
berdasarkan prioritasnya:
( ... ) (Tanda Kurung / Compound)
^ (Pangkat / Power)
* (Perkalian / Multiplication) dan /
(Pembagian/ Division) dan mod (Sisa Bagi
/ Remainder)
+ (Penjumlahan / Addition) dan -
(Pengurangan / Substraction)

Comparison Operator
Operator untuk melakukan perbandingan.
Biasanya digunakan dalam I f maupun
Whi l e.
= (Sama dengan)
<> (Tidak sama dengan)
< / <= (Lebih kecil / lebih kecil dan
sama dengan)
> / >= (Lebih besar / lebih besar
dan sama dengan)

42

Logical Operator
Operator yang biasanya dipakai untuk 2
kondisi atau lebih
AND Hanya benar jika semua kondisi
benar
OR Benar jika salah satu kondisi benar
NOT Membalikkan true menjadi false,
dan sebaliknya

Selection
Conditional Statement atau Selection
merupakan statement yang meminta komputer untuk
melakukan suatu pilihan action berbasiskan suatu
condition yang diberikan. VB .NET menyediakan 2
pilihan sintaks untuk melakukan percabangan action
dimana masing-masing mempunyai kegunaan sendiri,
yaitu:
If Clause
I f statement merupakan selection yang
digunakan dengan pertimbangan suatu
condition untuk melakukan sesuatu apabila
condition tersebut benar dan mungkin
melakukan sesuatu yang lain apabila
condition tersebut salah. Syntaxnya adalah:

I f condition Then
Action if condition
true

43
End I f

J ika ingin melakukan sesuatu yang lain
apabila condition bernilai salah maka
sintaks nya menjadi:

I f condition Then
Action if condition
true
El se
Action if condition
false
End I f

I f hanya mendukung untuk 2 action untuk
1 condition, jika ingin memberikan lebih dari
2 action bisa dilakukan nested if (I f di
dalam I f ). Sintaks nya menjadi:

I f condition_1 Then
Action if condition_1 true
El se
I f condition_2 Then
Action if condition_2
true
El se
Action if condition_2
false
Or


44
I f condition_3 Then
. . .

End I f
End I f

Select Case Clause
Sel ect Case statement merupakan
selection yang digunakan dengan
pertimbangan suatu nilai dari suatu variable
atau dari suatu condition. Sintaks nya
adalah:

Sel ect Case var/condition
Case value_1 : statement_if_
value_1

Case value_2
statement_if_value_2
statement_if_value_2


Case El se

statement_if_no_value_matche
d

End Sel ect

Contoh:

45

Di mqual i t y as I nt eger = 2
Di mst r Qual i t y as St r i ng

Sel ect Case qual i t y
Case 1: st r Qual i t y = Bad
Qual i t y
Case 2: st r Qual i t y =
Aver age Qual i t y
Case 3: st r Qual i t y =
Excel l ent Qual i t y
Case El se
Consol e. Wr i t eLi ne( No such
qual i t y)
End Sel ect


Loop
Loop adalah teknik perulangan dimana
programmer bisa mengulang baris perintah yang ada di
dalam kode program sebanyak yang diinginkan. Ada
beberapa perulangan yang dikenal dalam bahasa Visual
Basic .NET, antara lain:
For Next Clause
Perulangan For Next dipakai ketika
ada baris perintah yang diulang, dan
jumlah perulangannya telah diketahui
dengan pasti.

Syntaks :

46

For varname = initvalue To maxvalue
St ep increment
statement_for_loop
[ Exi t For ]
Next

St ep bersifat optional artinya dapat ditulis
atau tidak jika tidak ditulis maka nilai St ep
secara default adalah 1. St ep digunakan
untuk penambahan nilai dari suatu
variabel setiap kali statement di dalam
For Next diulang. Exi t For
merupakan cara untuk secara paksa
keluar dari loop (optional).

Contoh:
Perulangan dari nilai kecil ke nilai besar:

Di mi as I nt eger
For i = 0 To 20
Consol e. Wr i t eLi ne( Nomor &
i )
Next

Perulangan dari nilai besar ke nilai kecil:


47
For i as I nt eger = 20 t o 1
st ep - 1
Consol e. Wr i t eLi ne( Nomor &
i )
Next

Variable juga bisa secara langsung
dideklarasikan pada For - Next yang
bersangkutan seperti contoh diatas.
Variable tersebut akan bersifat lokal dan
hanya dikenali pada For Next
tersebut.

Do While Loop Clause
Loop selain For Next Clause biasa
digunakan untuk jumlah iterasi yang tidak
ditentukan. Biasanya loop akan selesai
saat ditemui satu atau beberapa kondisi.
Loop akan selesai setelah kondisi yang
disebutkan pada Whi l e bernilai false.

Sintaks :

Do Whi l e condition
statement_for_loop
[ Exi t Do]
Loop


48
Perulangan tersebut akan mengecek suatu
kondisi sebelum memulai perulangan.
Apabila kondisi awal sudah tidak
terpenuhi, maka perulangan bisa tidak
dilakukan sama sekali.

Contoh:

Di mi as I nt eger = 1
Do Whi l e i < 5
Consol e. Wr i t eLi ne( Angka = &
i )
i += 1
Loop

Pada loop selain For Next ,
penambahan variable yang digunakan
untuk proses loop perlu disebutkan secara
manual karena loop tidak mengandung
penambahan variable seperti pada For
Next .


49

Gambar 11: Siklus Do While - Loop

Do Until Loop Clause
Hampir sama dengan Do Whi l e - Loop
Clause, namun loop akan selesai setelah
kondisi yang disebutkan pada Unt i l
bernilai true.

Sintaks :

Do Unt i l condition
statement_for_loop
[ Exi t Do]
Loop

Perulangan tersebut akan mengecek suatu
kondisi sebelum memulai perulangan.
Apabila kondisi awal sudah tidak
terpenuhi, maka perulangan bisa tidak
dilakukan sama sekali.

50

Contoh:

Di mi as I nt eger = 1
Do Unt i l i > 5
Consol e. Wr i t eLi ne( Angka =
& i )
i += 1
Loop


Gambar 12: Struktur Do Until - Loop

Do Loop While Clause
Hampir sama dengan Do Whi l e - Loop
Clause, namun kondisi akan diperiksa di
akhir loop, sehingga apabila kondisi awal
sudah salah, baris perintah di dalam loop
tetap akan dilakukan sekali, sebelum
keluar dari loop.

Syntaks:

51
Sintaks :

Do
statement_for_loop
[ Exi t Do]
Loop Whi l e condition

Perulangan tersebut akan mengecek suatu
kondisi setelah perulangan dilakukan
sekali. Apabila kondisi awal sudah tidak
terpenuhi, maka statement di dalam loop
hanya akan dilakukan sekali saja.

Contoh:

Di mi as I nt eger = 1
Do
Consol e. Wr i t eLi ne( Angka =
& i )
i += 1
Loop Whi l e i < 5


52

Gambar 13: Struktur Do - Loop While

Do Loop Until Clause
Hampir sama dengan Do Loop Whi l e
Clause, namun loop akan selesai setelah
kondisi yang disebutkan pada Unt i l
bernilai true.


Sintaks :

Do
statement_for_loop
[ Exi t Do]
Loop Unt i l condition


Contoh:

Di mi as I nt eger = 1

53
Do
Consol e. Wr i t eLi ne( Angka
= & i )
i += 1
Loop Unt i l i > 5


Gambar 14: Struktur Do - Loop Until

While End While Clause
Bentuk ini sama persis dengan Do While
Loop, hanya akhiran dan cara keluar
paksa dari loop nya saja yang berbeda.
Secara struktur dan alur, sama persis.

Sintaks :

Whi l e condition
statement_for_loop
[ Exi t Whi l e]
End Whi l e


54
Contoh:

Di mi as I nt eger = 1
Whi l e i < 5
Consol e. Wr i t eLi ne( Angka
= & i )
i += 1
End Whi l e


Gambar 15: Struktur While - End While

For Each - Next Clause
Bentuk ini banyak digunakan ketika
menggunakan Array maupun ArrayList.
Bentuk ini akan dijelaskan lebih lanjut saat
membahas Array.

Procedure and Function

Dalam pembuatan program sering kali terdapat
kumpulan kumpulan perintah yang dipakai berulang

55
kali. J ika kumpulan kumpulan perintah tersebut ditulis
berkali kali pada program maka akan memperpanjang
jumlah baris kode program. Dan jika terjadi perubahan
perintah pada kumpulan kumpulan perintah tersebut,
maka kita harus mengubahnya pada tiap bagian. Dalam
bahasa Visual Basic .NET terdapat dua cara untuk
mengelompokkan kumpulan kumpulan perintah, yaitu
dengan memakai procedure dan function. Keduanya
dapat dikategorikan sebagai sub-program.

Procedure
Procedure adalah suatu sub-program
yang tidak mengembalikan nilai. Procedure banyak
dipakai untuk kumpulan perintah yang sering
digunakan namun tidak perlu mengembalikan
suatu nilai tertentu.

Sintaks:

Sub nmprocedure ( parameter )
statements
End Sub

Contoh:

Sub Cet akBi l anganGenap( )
For i as I nt eger = 2 To 100
St ep 2
Consol e. Wr i t eLi ne( i )
Next

56
End Sub

Pemanggilan procedure dilakukan dengan
menuliskan nama procedure dengan disertai
parameter yang dibutuhkan (jika diperlukan).

Sub Mai n( )
Consol e. Wr i t eLi ne( Pr ogr am
menul i s bi l angan genap
dar i 2 100)
Cet akBi l anganGenap( )
End Sub

Function
Function sama dengan procedure,
namun mengembalikan nilai ke pemanggil function
tersebut. Function banyak dipakai untuk
mengelompokkan perintah untuk melakukan suatu
pengujian atau perhitungan terhadap suatu nilai.

Sintaks:

Funct i on nmFunction ( parameter
) [ As data_type]
statements

Ret ur n value
End Funct i on

Default:

57
J ika tidak disebutkan [ As data_type]
akan dianggap: As Obj ect

Function harus menyebutkan tipe data
apa yang akan dia kembalikan ke pemanggil dan
nilai yang akan dia kembalikan sesuai dengan tipe
data yang telah disebutkan. Nilai yang ditulis pada
perintah Ret ur n adalah nilai keseluruhan dari
Function tersebut.

Contoh:

Funct i on TesGanj i l ( byVal x as
I nt eger ) As Bool ean
I f x mod 2 = 0 Then
Ret ur n Fal se
El se
Ret ur n Tr ue
End I f
End Funct i on

Pemanggilan function dilakukan dengan
menuliskan nama function dengan disertai
parameter yang dibutuhkan (jika diperlukan), serta
dilakukan penampungan pada nilai function
tersebut. Bisa juga nilai function tidak perlu
ditampung dalam satu variable sendiri, namun
langsung dipakai dalam selection atau loop.

Sub Mai n( )

58
Consol e. Wr i t eLi ne( Pr ogr am
menent ukan bi l angan
ganj i l )

Consol e. Wr i t e( Masukkan sat u
bi l angan: )
Di m i nput as I nt eger =
Consol e. ReadLi ne( )

I f TesGanj i l ( i nput )

Consol e. Wr i t eLi ne( Bi l angan
Ganj i l )
El se

Consol e. Wr i t eLi ne( Bi l angan
Genap)
End I f
End Sub

Parameter
Parameter merupakan data yang di
sertakan dalam pemanggilan function atau
procedure. Data tersebut akan mempengaruhi
kinerja dari procedure atau function yang dipanggil.
Cara melewatkan (passing) parameter ke dalam
function atau procedure ada dua cara yaitu :
passing by value dan passing by reference.

Passing by Value

59
Passing by Value adalah cara
passing parameter dengan menyalin
nilai dari suatu variable ke parameter
tersebut. J adi jika nilai parameter
tersebut diubah tidak akan
mempengaruhi nilai variable asalnya.

Passing by Reference
Passing by Reference adalah cara
passing parameter dengan menyalin
alamat memory dari variable ke
parameter. J adi jika nilai parameter
tersebut diubah akan mempengaruhi
nilai variable asalnya.

Contoh :

Sub Pr ocedur e1( byVal a as
I nt eger , byRef b as
I nt eger )
a = a + 2
b = b + 3
End Sub

Sub Mai n( )
Di mx, y as I nt eger
X = 2
Y = 2
Pr ocedur e1( x , y )

60
Consol e. Wr i t eLi ne( Ni l ai x =
& x)
Consol e. Wr i t eLi ne( Ni l ai y =
& y)
End Sub

Ketika bagian program tersebut dijalankan maka di
layer console akan ditampilkan tulisan Nilai x =2
dan Nilai y = 5. Nilai x tidak mengalami
perubahan karena pada waktu pemanggilan
Pr ocedur e1 nilai di variable x disalin ke
parameter a di Pr ocedur e1 jadi perubahan pada
variable a tidak akan mempengaruhi variable x.
Nilai y berubah dari 2 menjadi 5 karena di passing
by reference ke dalam Pr ocedur e1, atau yang
disalin adalah alamat memory dari variable x. J adi
perubahan terhadap variable b akan
mempengaruhi nilai variable y.


Array
Array Concept
Secara kasar, Array dapat diartikan sebagai
suatu data yang letaknya terurut sehingga mudah untuk
di-referensikan. Variable yang biasa digunakan harus
direferensikan langsung dengan menggunakan nama
variable nya, hal ini akan menjadi sulit jika ada banyak
data yang secara sekaligus ingin diproses. Misal:


61
Di ma, b, c, d, e As I nt eger
. . .
Consol e. Wr i t eLi ne( a)
Consol e. Wr i t eLi ne( b)
Consol e. Wr i t eLi ne( c)
Consol e. Wr i t eLi ne( d)
Consol e. Wr i t eLi ne( e)

Untuk menampilkan semua variable tersebut,
dibutuhkan 5 statement karena masing-masing variable
harus disebutkan dengan menggunakan nama variable
nya secara langsung. Dengan menggunakan Array,
kendala pengulangan tersebut bisa diatasi dengan
menggunakan bantuan loop. Syntax deklarasi Array
adalah:

Di mvar_name( length) [ As data_type]
at au
Di mvar_name( ) [ As data_type]

Cara pertama digunakan untuk menghasilkan
array dengan elemen yang tetap (static array)
sedangkan cara kedua akan menghasilkan array tanpa
panjang tetap (dynamic array). Dynamic array digunakan
untuk menampung array yang tidak diketahui jumlahnya,
biasanya dari hasil suatu fungsi. J ika hasil fungsi berupa
array ditampung pada dynamic array maka dynamic
array akan secara otomatis menyesuaikan jumlah
elemennya. Contoh:


62
Di mMyAddr ess as St r i ng = 192. 168. 1. 31

Di mResul t ( ) as St r i ng = MyAddr ess. Spl i t
atau
Di m Resul t ( 6) as St r i ng =
MyAddr ess. Spl i t

Gambar 16: Perbandingan Dynamic Array dengan Static Array
Array bisa diperpanjang berkali-kali dengan
menggunakan ReDim, namun seluruh elemennya akan
di-reset ulang. Untuk tetap mempertahankan nilai array
tersebut bisa digunakan ReDim Preserve. Contoh:

ReDi mResul t ( 10)
ReDi mPr eser ve Resul t ( 10)

Secara default, array pada .NET dimulai pada
index 0 sampai dengan index length. J adi length
sebanyak 5 akan menghasilkan 6 elemen (0, 1 , 2, 3, 4,
5). Selanjutnya array bisa langsung digunakan dengan
mengkases index nya:

Di mi ( 5) As I nt eger
. . .
Bisa dipersingkat dengan loop

63

Consol e. Wr i t eLi ne( i ( 0) )
Consol e. Wr i t eLi ne( i ( 1) )
Consol e. Wr i t eLi ne( i ( 2) )
Consol e. Wr i t eLi ne( i ( 3) )
Consol e. Wr i t eLi ne( i ( 4) )
Consol e. Wr i t eLi ne( i ( 5) )


J ika data yang ingin ditampilkan jumlahnya
semakin besar, tentu akan lebih menguntungkan
penggunaan array. Hal-hal yang harus diperhatikan
adalah:
Tipe data variable i bukan I nt eger ,
melainkan I nt eger ( ) atau dengan kata
lain Array of Integer. J adi variable i tidak
bisa dioperasikan secara aritmatika (+,-,*,/).
Yang bisa dioperasikan secara aritmatika
adalah elemen-elemen dari i yaitu i ( 0) ,
i ( 1) , dst... yang bertipe I nt eger .
Karena merupakan suatu Array, variable i
mendapatkan hak sebagai Array untuk
menggunakan Lengt h untuk mengetahui
panjang elemen Array tersebut (dalam
kasus ini i . Lengt h akan bernilai 6).

For Each Clause
For Each Clause merupakan salah satu loop
yang bisa digunakan di .NET, namun penggunaannya
For numAs I nt eger = 0
To i . Lengt h - 1

Consol e. Wr i t eLi ne( i ( num) )
Next
}

64
hanya berguna pada lingkup Array dan Collection. For
Each Clause akan melakukan loop sebanyak elemen
dari Array maupun Collection tanpa perlu menyebutkan
Length secara spesifik, serta membutuhkan satu
variable dengan tipe data yang sesuai dengan elemen
pada Array maupun Collection tersebut. Sintaks nya
adalah:

For Each var_name [ As data_type] i n
array_name

Next

Contoh:

Di mMyAr r ay( ) As I nt eger = {1, 2, 3, 4}
For Each el ement as I nt eger i n MyAr r ay
Consol e. Wr i t eLi ne( el ement )
Next

Exception
Exception adalah suatu event yang terjadi saat eksekusi
suatu program yang mengganggu alur normal instruksi. Dengan
kata lain, saat terjadi sesuatu yang mungkin mengacaukan alur
program (seperti pengaksesan elemen array yang melebihi
kapasitas, pengkasesan suatu Object yang masih null / nothing,
maupun pengaksesan file yang sebenarnya tidak ada), Exception
akan di-throw sehingga baris dibawahnya yang kemungkinan
menggunakan resource yang sama (dimana pendefinisian

65
resource tersebut ternyata mengalami kegagalan) tidak akan
dieksekusi. Filosofi penggunaan exception bisa diberikan contoh:

Algoritma pembacaan suatu file:

r eadFi l e
{
open t he f i l e;
det er mi ne i t s si ze;
al l ocat e t hat much memor y;
r ead t he f i l e i nt o memor y;
cl ose t he f i l e;
}

Kesalahan yang mungkin terjadi adalah:
Apa yang terjadi apabila file tidak bisa dibuka?
Apa yang terjadi apabila panjang file tidak bisa
diketahui?
Apa yang terjadi apabila tidak bisa mengalokasikan
memori yang cukup?
Apa yang terjadi apabila pembacaan file gagal?
Apa yang terjadi apabila file tidak bisa ditutup?

Dalam satu rangkaian proses pembacaan file tersebut,
satu proses saja yang gagal akan menggagalkan seluruh proses
di belakangnya. Disini exception menjadi solusi dengan tidak
dieksekusinya proses berikutnya apabila salah satu proses gagal
dijalankan (sehingga terjadi exception).


66
Exception Handling
Exception pada .NET tidak wajib untuk di-
handle, namun eksekusi program akan terhenti jika
terjadi suatu exception dan tidak di-handle. Karena itu
exception cukup penting untuk diperhatikan, karena bisa
menghambat jalannya program secara keseluruhan.
Untuk meng-handle exception digunakan Try-Catch
Clause. Sintaksnya adalah:


Tr y
Statements
Cat ch var_name As exception_type
Action_if_this_exception_occurs
[ Cat ch var_name As exception_type]
[ Action_if_this_exception_occurs]
. . .
End Tr y

Statement yang berpotensi menimbulkan
exception diletakkan diantara Try dan Catch, dan apa
yang akan dilakukan jika terjadi exception akan
diletakkan di bawah Catch. Catch bisa dituliskan berkali-
kali sesuai dengan spesifik exception yang diinginkan,
namun jika ingin menangkap semua exception tanpa
kecuali digunakan Class Exception. Contoh:

Tr y
Consol e. Wr i t e( " Masukkan bi l angan: " )
Di mi As I nt eger =
Consol e. ReadLi ne( )

67


Cat ch ex As I nval i dCast Except i on
MsgBox( ex. Message)

Cat ch ex As Except i on
Exi t Sub

End Tr y

Throwing Exception
Fungsi utama exception sebenarnya adalah
agar jika terjadi kesalahan, maka user (dalam kasus ini
adalah developer) akan bisa menentukan sendiri apa
action yang akan dilakukan. Hal ini sangat efektif
mengingat perilaku user yang satu dengan yang lain
akan berbeda, apalagi jika memang proses yang
diinginkan berbeda, sehingga sangat berguna apabila
bisa menentukan action sendiri jika terjadi kesalahan.
Dalam konsep lama, setiap kesalahan yang terjadi akan
di-handle dengan cara developer package itu sendiri,
sedangkan dengan konsep exception, setiap kesalahan
yang terjadi cukup Throw sebuah exception saja, user
yang akan melakukan Try Catch dan menentukan action
apa yang akan dia lakukan jika kesalahan terjadi.
Sintaks nya adalah:

Thr ow exception_object

Contoh:

Funct i on j uml ah( ByVal bi l 1 As St r i ng,
ByVal bi l 2 As St r i ng) As I nt eger

68

I f ( Not ( I sNumer i c( bi l 1) And
I sNumer i c( bi l 2) ) ) Then
Thr ow New Except i on( " Har us
angka" )
El se
Ret ur n CI nt ( bi l 1) + CI nt ( bi l 2)
End I f
End Funct i on

Sub Mai n( )
Tr y
Di mi As I nt eger = j uml ah( " 2" ,
" 3" )
' Di mi As I nt eger = j uml ah( " 2" ,
" e" )

Consol e. Wr i t eLi ne( i )
Cat ch ex As Except i on
Consol e. Wr i t eLi ne( ex. Message)
End Tr y

Consol e. ReadLi ne( )
End Sub

Contoh diatas menggunakan fungsi
I sNumer i c dimana akan menghasilkan true apabila
String bisa diubah menjadi angka dan akan
menghasilkan false apabila tidak bisa.
Anggaplah yang membuat fungsi j uml ah
adalah orang lain, sedangkan kita hanya sebagai user
dari fungsi tersebut. J ika ada salah satu yang bukan
angka, fungsi j uml ah akan melemparkan exception
sehingga terserah kita (user) untuk menentukan apa
yang akan dilakukan jika kesalahan terjadi. J auh lebih
bagus daripada fungsi jumlah tersebut menuliskan
Consol e. Wr i t eLi ne ( Har us angka) jika salah

69
satu bukan angka, karena dengan demikian user akan
terpaku dengan action tersebut.


Soal-Soal
1. Buatlah aplikasi untuk menampilkan 10 bilangan ganjil
pertama.
2. Buatlah aplikasi untuk menampilkan 10 bilangan pertama
yang merupakan kelipatan 4 dan 6.
3. Buatlah aplikasi untuk menampilkan n bilangan prima
pertama.
4. Buatlah aplikasi untuk menampilkan n bilangan Fibonacci
(0, 1, 1, 2, 3, 5, 8, ).

70
BAB 5. STRING MANIPULATION

String
Pada .NET, String bisa dipakai sebagaimana primitive
data type yang lain (tidak perlu di-new dan bisa diberi nilai
langsung). Namun pada kenyataanya, String sebenarnya adalah
sebuah Class yang memiliki segala property dan method seperti
Class yang lain, namun lebih khusus pada manipulasi atas
rangkaian karakter.

Untuk mendeklarasikan String, bisa dilakukan seperti
variable biasa. Bisa juga langsung diberi nilai dengan diapit tanda
double-quote (). String juga bisa langsung dituliskan tanpa
dimasukkan ke dalam variable. Contoh:

Di mMySt r i ng as St r i ng Just a declaration

Di mMyName as St r i ng = Al ex
Declaration + Initialization

Consol e. Wr i t eLi ne ( Hel l o)
Printing a variable-less String

Consol e. Wr i t eLi ne ( MyName)
Printing a String variable

Untuk menyambung String, bisa digunakan tanda plus (+)
ataupun tanda and (&), namun penggunaan tanda and (&) lebih
disarankan karena tanda plus (+) lebih identik dengan proses
penjumlahan bilangan. Contoh:

71

Di mMyName as St r i ng = Al ex
Consol e. Wr i t eLi ne ( Hel l o + MyName)
Combination of variable-less String and
String variable)

Consol e. Wr i t eLi ne ( Hel l o & MyName)
Combination of variable-less String and
String variable)

Untuk menuliskan karakter Enter (New Line), digunakan
salah satu VB Special Key yaitu vbCr Lf yang merupakan
kepanjangan dari Carriage Return (ASCII: 13) dan Line Feed
(ASCII: 10). Karakter yang dituliskan setelah vbCr Lf akan
dituliskan pada satu baris baris bawahnya. Contoh:

Di mMyName as St r i ng = Al ex
Consol e. Wr i t eLi ne ( Hel l o & vbCr Lf & MyName)
Result will be:
Hello
Alex

J ika suatu String terlalu panjang untuk dituliskan dalam
satu baris pada source code, maka bisa digunakan karakter & _
untuk menyambungkan String ke baris dibawahnya. Namun
pemisahan String dengan cara ini akan memisahkan String
hanya pada source code, tampilan hasil tetap tampak bahwa
String tersebut tersambung. Contoh:

Di mMyName as St r i ng = My name & _
i s Al ex

72
MyName = My name is Alex

Consol e. Wr i t eLi ne ( Hi , ni ce & _
weat her t oday)
Result: Hi, nice weather today


String Functions
Pada .NET, terdapat fungsi-fungsi untuk memanipulasi
String. Fungsi-fungsi tersebut ada yang berasal dari Class String
sendiri, sehingga cara akses nya seperti mengakses fungsi pada
Class. Fungsi-fungsi tersebut antara lain adalah:
ToUpper: Mengubah String menjadi huruf capital
semua. Contoh:
Di mMyName as St r i ng = Al ex
Consol e. Wr i t eLi ne ( MyName. ToUpper )
Result = ALEX

ToLower: Mengubah String menjadi huruf capital
semua. Contoh:
Di mMyName as St r i ng = Al ex
Consol e. Wr i t eLi ne ( MyName. ToLower )
Result = alex

Trim: Menghilangkan whitespace (spasi yang tidak
diperlukan). Contoh:
Di mMyName as St r i ng = Al ex
Consol e. Wr i t eLi ne ( MyName. Tr i m)
Result = Alex


73
PadLeft dan PadRight: Memberikan suatu karakter
sesuai dengan pesanan tempat. Contoh:
Di mMyName as St r i ng = Al ex
Consol e. Wr i t eLi ne( MyName. PadLef t ( 10, - ) )
Result: = -----Hello
Consol e. Wr i t eLi ne( MyName. PadRi ght ( 10, - ) )
Result: = Hello-----



Split: Memisahkan String menjadi beberapa bagian
sesuai dengan karakter pemisahnya. Hasilnya
disimpan dalam bentuk array. Contoh:
Di mMyAddr ess as St r i ng = 192. 168. 1. 31
Di mResul t ( ) as St r i ng = MyAddr ess. Spl i t
For Each s as St r i ng i n Resul t
Consol e. Wr i t eLi ne( s)
Next
Result:
192
168
1
31

Join: Menggabungkan String dengan menggunakan
suatu karakter untuk pembatasnya. Merupakan lawan
dari Split. Contoh:
Di mMyAddr ess( ) As St r i ng = {" 192" , " 168" ,
" 1" , " 31" }
Di mResul t As St r i ng = St r i ng. J oi n( " . " ,
MyAddr ess)
Consol e. Wr i t eLi ne( Resul t )

74
Result = 192.168.1.31

Substring: Mengambil sebagian String. Fungsi ini
hampir sama dengan fungsi Mid pada VB6. Fungsi ini
juga sekaligus menggantikan fungsi Left dan Right
pada VB6 (meskipun Left, Mid, dan Right masih bisa
dipakai di .NET). Substring mempunyai 2 parameter,
yang pertama adalah index awal dari substring yang
ingin diambil (index dimulai dari 0), dan yang kedua
adalah berapa karakter dari index tersebut yang akan
diambil. Contoh:
Di mMyWor d as St r i ng = Hel l o Wor l d
Consol e. Wr i t eLi ne ( MyWor d. Subst r i ng( 4, 3) )
Resul t = o W
Consol e. Wr i t eLi ne ( MyWor d. Subst r i ng( 4)
Resul t = o Wor l d


Gambar 17: Index pada String

Selain fungsi-fungsi dari Class St r i ng tersebut, ada juga
fungsi-fungsi yang merupakan peninggalan dari VB6 yang masih
berguna, yaitu:
Lef t , Mi d, dan Ri ght : 3 fungsi ini sudah bisa
digantikan dengan Substring sehingga jarang
digunakan lagi.

75
For mat : Mengatur suatu angka atau tanggal agar bisa
ditampilkan sesuai keinginan. Misalkan pemisah ribuan
pada angka maupun menampilkan tanggal dengan
pemisah minus (-). Contoh:

Di mMyNumber As I nt eger = 5000
Consol e. Wr i t eLi ne( For mat ( MyNumber ,
" #, ###. ##" ) )
Result: 5,000.00

Di mMyDat e As Dat e = Now
Consol e. Wr i t eLi ne( For mat ( MyDat e, " dd- MMMM-
yyyy" ) )
Result: 02-July-2007


StringBuilder
StringBuilder adalah Class yang digunakan untuk
melakukan modifikasi terhadap String tanpa membuat sebuah
object baru. Hal yang terjadi pada saat kita melakukan
penggabungan (concatenation) terhadap String dengan memakai
operator and (&) adalah terbentuknya sebuah object String baru
untuk menampung nilai sementara. Pembuatan String baru untuk
menyimpan nilai sementara dapat memperlambat program. Untuk
mempercepat proses penggabungan String, dapat digunakan
Class StringBuilder. Idealnya, Class StringBuilder dipakai untuk
mengkonstruksi String sedangkan Class String dipakai untuk
menampilkan String itu sendiri. Untuk mengambil nilai String dari
StringBuilder bisa digunakan fungsi ToString. Contoh


76
Consol e. Wr i t eLi ne( Now)

Di ms As St r i ng
Di msb As New Syst em. Text . St r i ngBui l der

For i As Long = 0 To 30000
s &= i atau gunakan
sb.Append(i)
Next

Consol e. Wr i t eLi ne( Now)
Consol e. Wr i t eLi ne( sb. ToSt r i ng) Unt uk menampi l kan
ni l ai sb


Pada loop diatas, bisa dibandingkan waktu yang
dibutuhkan untuk menggabungkan 30 ribu String dengan
memakai s &= i dan sb. Append( i ) . Dengan cara yang
pertama waktu yang dibutuhkan mencapai 7 detik, sedangkan
dengan cara yang kedua tidak sampai 1 detik. 7 detik tersebut
baru untuk memproses 30 ribu loop, bisa dibayangkan apabila
memproses 300 ribu loop atau mungkin jutaan, maka kecepatan
dari StringBuilder akan terasa sangat signifikan.


Soal-Soal
1. Operator apa yang digunakan untuk menyambung suatu
string?
2. Apa kegunaan dari StringBuilder?
3. Buatlah aplikasi untuk menampilkan format suatu nama
dari suatu string. Contoh:

77
Input: buDi sanTOsO ALEX
Ouput: Budi Santoso Alex

Anda mungkin juga menyukai