Dasar Logika Pemrograman .NET (sample) - Shvirist

40 downloads 160 Views 1MB Size Report
Soal-Soal. 13. BAB 3. MICROSOFT .NET FRAMEWORK. 14. Introduction to Microsoft . .... satu algoritma yang sering digunakan untuk melatih logika dalam.
DAFTAR ISI DAFTAR ISI



BAB 1. INTRODUCTION TO PROGRAMMING WORLD



Introduction to Programming



Introduction to Algorithm



Introduction to Flowchart



Soal-Soal

9  10 

BAB 2. BASIC PROGRAMMING CASE Introduction to Real Programming Case

10 

Progression / Sequence

10 

Validation & Verification

11 

Positioning & Animation

12 

String Manipulation

13 

Soal-Soal

13  14 

BAB 3. MICROSOFT .NET FRAMEWORK 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  27 

BAB 4. DATA AND CONTROL FLOW

27 

Introduction Variable and Data Type Variable

27 

Data Type

28 

Variable Declaration

32 

Type Casting

33  36 

Introduction to Control Flow i

Console Application Structure

36 

Input / Output

40 

Operator

40 

Selection

42 

Loop

45 

Procedure and Function

54  60 

Array Array Concept

60 

For Each Clause

63  64 

Exception Exception Handling

66 

Throwing Exception

67  69 

Soal-Soal

70 

BAB 5. STRING MANIPULATION String

70 

String Functions

72 

StringBuilder

75 

Soal-Soal

76 

ii

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 tahaptahap 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 1

(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, 2

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.

3

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

4

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: Jumlah 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:

5

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 (Jika suatu kondisi ditemukan, lakukan sesuatu).



If this condition was met, do something, if not, do something else (Jika 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 (Jika terjadi sesuatu, lakukan sesuatu). Î Konsep event-driven.

6

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).

7



: 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. Jika kondisi di dalam simbol bernilai benar, kontrol akan mengarah ke simbol yang ditunjukkan oleh anak

8

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. Jelaskan

apa

yang

dimaksud

dengan

Computer

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

9

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.

pemrograman

serta

Namun

algoritma

untuk

yang

melatih

logika

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 10

Deret yang lebih kompleks bisa didapat dengan perbedaan yang tidak konstan. Contoh: 0, 1, 1, 2, 3, 5, 8, 13, ... Î Deret Fibonacci (Jumlah 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

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

Pilihan (1-3): •

Nama hanya boleh mengandung huruf. 11



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: Jl. Buncis no 123 Î input valid (hanya mengandung karakter huruf, angka, dan titik), namun harus dilakukan verification apakah Jl. 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: * *** ******* ***** *** *

* ** * * * * ** *

12

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, …).

13

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 14

ulang. Jika 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 Jika

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 15

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 :

16



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 JIT (Just In Time) compiler.



Teknik yang dilakukan oleh JIT 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 17

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: 18



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 JVM (Java Virtual Machine) pada teknologi Java. Jadi 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: 19

ƒ

CTS (Common Type System) Sebuah fitur dari CLR yang memungkinkan cross language. Jadi 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. Jadi 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) 20

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. Jika tidak dibersihkan akan meninggalkan sampah

memory

atau

sering

disebut

sebagai memory leak, jika memory leak makin banyak di dalam memory akan menyebabkan eksekusi

turunnya

suatu

program,

kecepatan 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 21

Collector tersebut dijalankan, semua diatur oleh CLR. •

Class Library Menyediakan sekumpulan class library yang dapat digunakan oleh semua bahasa pemrograman

yang

kompatibilitas

dengan

mempunyai .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. Jadi namespace berguna untuk mengatur class yang ada di dalam .NET Framework dengan struktur Tree Hierarchy. Untuk mengakses namespace yang ada, digunakan dotsyntax 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. 22

Note: Istilah Namespace sama dengan istilah Package pada Java.

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:

23

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. 24

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"

25

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?

26

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

penyimpanan

terbaik

menyimpan adalah

di

data RAM.

tersebut, Jika

tempat

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. Jenis 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

27



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, (reusability) mempercepat

meningkatkan dari

kode

penggunaan

program

pembersihan

tersebut,

memory

yang

kembali serta tidak

digunakan oleh garbage collector.

Data Type Jenis 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. 28

Tipe

.NET Class

Keterangan

Data Byte

System.Byte

Tipe

data

ini

dapat

(structure)

menampung bilangan bulat antara 0 hingga 255. Tipe data ini berukuran 1 byte

Short

System.Int16

Tipe

(structure)

menampung bilangan bulat antara 32.767.

data

ini

-32.768 Tipe

dapat

hingga data

ini

berukuran 2 byte Integer

System.Int32

Tipe

(structure)

menampung bilangan bulat

data

ini

dapat

antara -2.147.483.648

hingga

2.147.483.647. Tipe data ini berukuran 4 byte. Long

System.Int64

Tipe

data

ini

dapat

(structure)

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 29

(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

Tipe

data

ini

dapat

(structure)

menampung bilangan real antara 1.79769313486231570E+3 08 hingga -4.94065645841246544E324 untuk nilai negatif, sedangkan

untuk

positif

nilai antara

4.94065645841246544E324

hingga

1.79769313486231570E+3 08 Decim

System.Decimal

Tipe

al

(structure)

menampung desimal

data

ini

dengan

dapat bilangan jumlah

digit antara 0 sampai 28 Boolea

System.Boolean

Tipe data ini hanya dapat

n

(structure)

menampung 2 jenis nilai, yaitu nilai true atau false. 30

Jika

direpresentasikan

dengan angka nilai false dinyatakan dengan nilai 0, dan nilai true dinyatakan dengan nilai 1. Date

System.DateTi

Tipe data ini dikhususkan

me

untuk

(structure)

yang berupa tanggal atau

menampung

waktu.

nilai

Dengan

memanfaatkan tipe data ini kita dapat mengolah data tanggal dengan memakai fungsi – fungsi tertentu. Char

Sytem.Char

Tipe data ini hanya dapat

(structure)

menampung

satu

buah

karakter. Jika diisi lebih dari satu karakter maka secara

otomatis

akan

dipotong menjadi satu. String

System.String

Tipe data ini digunakan

(class)

untuk rangkaian

menampung karakter

atau

kata. Jumlah memory yang dipakai oleh tipe data ini bersifat dinamis.

31

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

Dim as Contoh : Dim totalEmployee as Integer Dim staffName as String

Untuk penamaan variabel terdapat beberapa aturan tertentu : •

Nama variabel tidak boleh menggunakan karakter – karakter khusus seperti : !, @, #, %, -, spasi, dll. Jika 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 : Integer, String, Color, new, dll. •

Nama variabel boleh mengandung angka selain di bagian awal. Contoh: box2, triangle3, staff3Accounting.

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

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

Dim totalEmployee as Integer = 100 Dim

nama_employee

as

String

=

”John”

Type Casting Pengisian nilai pada suatu variabel terkadang berasal dari variabel yang bertipe data berbeda. Jika 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:

Dim length1 as byte Dim length2 as Integer length1 = 4 length2 = length1 •

Explicit Conversion 33

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

suatu

nilai

suatu

nilai

suatu

nilai

suatu

nilai

suatu

nilai

suatu

nilai

suatu

nilai

menjadi Boolean CDbl()

Untuk

mengkonversi

menjadi Double CObj()

Untuk

mengkonversi

menjadi Object Cbyte()

Untuk

mengkonversi

menjadi Byte CDec()

Untuk

mengkonversi

menjadi Decimal Cshort()

Untuk

mengkonversi

menjadi Short Cchar()

Untuk

mengkonversi

menjadi Char CInt()

Untuk

mengkonversi

34

menjadi Integer CSng()

Untuk

mengkonversi

suatu

nilai

suatu

nilai

suatu

nilai

suatu

nilai

menjadi Single Cdate()

Untuk

mengkonversi

menjadi Date CLng()

Untuk

mengkonversi

menjadi Long CStr()

Untuk

mengkonversi

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 (, )

Contoh : Dim strWidth as String Dim width as Integer strWidth = “4” width = CType(width, Integer)

Konversi eksplisit dapat juga dilakukan melalui fungsi dari class Convert. Contoh: Dim diameter as Single Dim strDiameter as String 35

diameter = 2.54 strDiameter = Convert.ToString(diameter)

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 variant yang sudah tidak ada lagi pada VB .NET. Jika 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 :

Dim x as Integer = 5

Dim obj as Object = x ‘ Boxing terjadi

Dim

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 36

terdiri dari satu file module dengan extension .vb dimana merupakan kode yang pertama kali dieksekusi ketika program dijalankan (sering disebut dengan Application Entry Point). Jika 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

Jika ingin memasukin bagian code nya, doubleclick module yang bersangkutan dan tampilan source code akan muncul. Struktur penulisan source code secara umum adalah:

37

Gambar 10: Struktur penulisan source code dalam VB .NET

Adapun aturan-aturan yang berlaku dalam penulisan source code pada VB .NET adalah: •

Sub

Main() 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: Console.WriteLine(“Hello World”) 38

If i=5 Then Console.WriteLine(“i

adalah

5”) End If

i = 5 Dim i as Integer Î Deklarasi (boleh di luar function) i = 5 Î Assignment (Harus di dalam function) Dim i as Integer = 5 Î Deklarasi + Assignment (boleh di luar function) •

Variable declaration boleh dituliskan di luar maupun di dalam function. Jika 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.

39

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: Console.WriteLine( String ) Contoh: Console.WriteLine(“Hello World”)

Sintaks Input dari Keyboard: Console.ReadLine() Contoh: Dim name as String name = Console.ReadLine() Console.WriteLine(“My

name

is “ & name)

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

40

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

discrimination,

yang

berarti

operator operator

tersebut mempunyai prioritas. Jika 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 If maupun While. ƒ

=

(Sama dengan)

ƒ



(Tidak sama dengan)

ƒ

< / / >=

(Lebih besar / lebih besar

dan sama dengan) 41



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 If 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:

If condition Then Action if condition true 42

End If Jika ingin melakukan sesuatu yang lain apabila condition bernilai salah maka sintaks nya menjadi:

If condition Then Action if condition true Else Action if condition false End If If hanya mendukung untuk 2 action untuk 1 condition, jika ingin memberikan lebih dari 2 action bisa dilakukan “nested if” (If di dalam If). Sintaks nya menjadi:

If condition_1 Then Action if condition_1 true Else If condition_2 Then Action if condition_2 true Else Action if condition_2 false Or

43

If condition_3 Then ...

End If End If •

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

Select Case var/condition Case value_1 : statement_if_ value_1

Case value_2 statement_if_value_2 statement_if_value_2

Case Else

statement_if_no_value_matche d

End Select

Contoh: 44

Dim quality as Integer = 2 Dim strQuality as String

Select Case quality Case 1: strQuality = “Bad Quality” Case 2: strQuality = “Average Quality” Case 3: strQuality = “Excellent Quality” Case Else Console.WriteLine(“No such quality”) End Select

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 : 45

For varname = initvalue To maxvalue Step increment statement_for_loop [Exit For] Next

Step bersifat optional artinya dapat ditulis atau tidak jika tidak ditulis maka nilai Step secara default adalah 1. Step digunakan untuk

penambahan

nilai

dari

suatu

variabel setiap kali statement di dalam For



Next

diulang.

Exit

For

merupakan cara untuk secara paksa keluar dari loop (optional).

Contoh: Perulangan dari nilai kecil ke nilai besar:

Dim i as Integer For i = 0 To 20 Console.WriteLine(“Nomor “ & i) Next

Perulangan dari nilai besar ke nilai kecil:

46

For i as Integer =

20 to 1

step -1 Console.WriteLine(“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 While bernilai false.

Sintaks :

Do While condition statement_for_loop [Exit Do] Loop

47

Perulangan tersebut akan mengecek suatu kondisi

sebelum

Apabila

kondisi

memulai awal

perulangan. sudah

tidak

terpenuhi, maka perulangan bisa tidak dilakukan sama sekali.

Contoh:

Dim i as Integer = 1 Do While i < 5 Console.WriteLine(“Angka = “ & i) i += 1 Loop

Pada

loop

penambahan

selain variable

For yang



Next,

digunakan

untuk proses loop perlu disebutkan secara manual karena loop tidak mengandung penambahan variable seperti pada For – Next.

48

Gambar 11: Siklus Do While - Loop



Do Until – Loop Clause Hampir sama dengan Do While - Loop Clause, namun loop akan selesai setelah kondisi yang disebutkan pada Until bernilai true.

Sintaks :

Do Until condition statement_for_loop [Exit Do] Loop

Perulangan tersebut akan mengecek suatu kondisi

sebelum

Apabila

kondisi

memulai awal

perulangan. sudah

tidak

terpenuhi, maka perulangan bisa tidak dilakukan sama sekali. 49

Contoh:

Dim i as Integer = 1 Do Until i > 5 Console.WriteLine(“Angka = “ &

i)

i += 1 Loop

Gambar 12: Struktur Do Until - Loop



Do – Loop While Clause Hampir sama dengan Do While - 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: 50

Sintaks :

Do statement_for_loop [Exit Do] Loop While 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:

Dim i as Integer = 1 Do Console.WriteLine(“Angka = “ &

i)

i += 1 Loop While i < 5

51

Gambar 13: Struktur Do - Loop While



Do – Loop Until Clause Hampir sama dengan Do – Loop While Clause, namun loop akan selesai setelah kondisi yang disebutkan pada Until bernilai true.

Sintaks :

Do statement_for_loop [Exit Do] Loop Until condition

Contoh:

Dim i as Integer = 1 52

Do Console.WriteLine(“Angka = “ &

i)

i += 1 Loop Until 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 :

While condition statement_for_loop [Exit While] End While

53

Contoh:

Dim i as Integer = 1 While i < 5 Console.WriteLine(“Angka = “ &

i)

i += 1 End While

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 54

kali. Jika 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 CetakBilanganGenap() For i as Integer = 2 To 100 Step 2 Console.WriteLine(i) Next 55

End Sub

Pemanggilan menuliskan

procedure nama

dilakukan

procedure

dengan

dengan

disertai

parameter yang dibutuhkan (jika diperlukan).

Sub Main() Console.WriteLine(“Program menulis bilangan genap dari 2 – 100”) CetakBilanganGenap() 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:

Function nmFunction ( parameter ) [As data_type] statements

Return value End Function

Default: 56



Jika tidak disebutkan [As data_type] akan dianggap: As Object

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 Return

adalah nilai keseluruhan dari

Function tersebut.

Contoh:

Function

TesGanjil(byVal

x

as

Integer) As Boolean If x mod 2 = 0 Then Return False Else Return True End If End Function

Pemanggilan menuliskan

function nama

dilakukan

function

dengan

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 Main() 57

Console.WriteLine(“Program menentukan bilangan ganjil”)

Console.Write(“Masukkan satu bilangan: ”) Dim

input

as

Integer

=

Console.ReadLine()

If TesGanjil(input)

Console.WriteLine(“Bilangan Ganjil”) Else

Console.WriteLine(“Bilangan Genap”) End If 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 58

Passing

by

Value

adalah

cara

passing parameter dengan menyalin nilai dari suatu variable ke parameter tersebut. Jadi 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. Jadi jika nilai parameter tersebut diubah akan mempengaruhi nilai variable asalnya.

Contoh :

Sub

Procedure1(byVal

a

as

Integer, byRef b as Integer) a = a + 2 b = b + 3 End Sub

Sub Main() Dim x, y as Integer X = 2 Y = 2 Procedure1( x , y )

59

Console.WriteLine(“Nilai x = “ & x) Console.WriteLine(“Nilai 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

Procedure1

nilai

pada di

waktu

variable

pemanggilan x

disalin

ke

parameter a di Procedure1 jadi perubahan pada variable a tidak akan mempengaruhi variable x. Nilai y berubah dari 2 menjadi 5 karena di passing by reference ke dalam Procedure1, atau yang disalin adalah alamat memory dari variable x. Jadi 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:

60

Dim a, b, c, d, e As Integer ... Console.WriteLine(a) Console.WriteLine(b) Console.WriteLine(c) Console.WriteLine(d) Console.WriteLine(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:

Dim var_name(length) [As data_type] atau Dim var_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. Jika hasil fungsi berupa array ditampung pada dynamic array maka dynamic array akan secara otomatis menyesuaikan jumlah elemennya. Contoh:

61

Dim MyAddress as String = “192.168.1.31”

Dim Result() as String = MyAddress.Split atau Dim

Result(6)

as

String

=

MyAddress.Split

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:

ReDim Result(10) ReDim Preserve Result(10)

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

Dim i(5) As Integer ... Bisa dipersingkat dengan loop 62

Console.WriteLine(i(0)) Console.WriteLine(i(1)) Console.WriteLine(i(2)) Console.WriteLine(i(3)) Console.WriteLine(i(4))

For num As Integer = 0

}

To i.Length - 1

Console.WriteLine(i(num))

Next

Console.WriteLine(i(5))

Jika data yang ingin ditampilkan jumlahnya semakin besar, tentu akan lebih menguntungkan penggunaan array. Hal-hal yang harus diperhatikan adalah: •

Tipe data variable i bukan Integer, melainkan Integer() atau dengan kata lain “Array of Integer”. Jadi 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 Integer.



Karena merupakan suatu Array, variable i mendapatkan hak sebagai Array untuk menggunakan Length untuk mengetahui panjang elemen Array tersebut (dalam kasus ini i.Length akan bernilai 6).

For Each Clause For Each Clause merupakan salah satu loop yang bisa digunakan di .NET, namun penggunaannya 63

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]

in

array_name

Next

Contoh:

Dim MyArray() As Integer = {1, 2, 3, 4} For Each element as Integer in MyArray Console.WriteLine(element) 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 64

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

Algoritma pembacaan suatu file:

readFile { open the file; determine its size; allocate that much memory; read the file into memory; close the file; }

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).

65

Exception Handling Exception pada .NET tidak wajib untuk dihandle, 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:

Try Statements Catch var_name As exception_type Action_if_this_exception_occurs [Catch var_name As exception_type] [Action_if_this_exception_occurs] ... End Try

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 berkalikali sesuai dengan spesifik exception yang diinginkan, namun jika ingin menangkap semua exception tanpa kecuali digunakan Class Exception. Contoh:

Try Console.Write("Masukkan bilangan: ") Dim i As Integer = Console.ReadLine() 66

Catch ex As InvalidCastException MsgBox(ex.Message) Catch ex As Exception Exit Sub End Try

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:

Throw exception_object

Contoh:

Function jumlah(ByVal bil1 As String, ByVal bil2 As String) As Integer 67

If (Not (IsNumeric(bil1) And IsNumeric(bil2))) Then Throw New Exception("Harus angka") Else Return CInt(bil1) + CInt(bil2) End If End Function Sub Main() Try Dim i As Integer = jumlah("2", "3") 'Dim i As Integer = jumlah("2", "e") Console.WriteLine(i) Catch ex As Exception Console.WriteLine(ex.Message) End Try Console.ReadLine() End Sub

Contoh

diatas

menggunakan

fungsi

IsNumeric dimana akan menghasilkan true apabila String

bisa

diubah

menjadi

angka

dan

akan

menghasilkan false apabila tidak bisa. Anggaplah yang membuat fungsi jumlah adalah orang lain, sedangkan kita hanya sebagai user dari fungsi tersebut. Jika ada salah satu yang bukan angka, fungsi jumlah akan melemparkan exception sehingga terserah kita (user) untuk menentukan apa yang akan dilakukan jika kesalahan terjadi. Jauh lebih bagus daripada fungsi jumlah tersebut menuliskan Console.WriteLine (“Harus angka”) jika salah 68

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, …).

69

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:

Dim MyString as String

‘ Just a declaration

Dim MyName as String = “Alex” ‘ Declaration + Initialization

Console.WriteLine (“Hello”) ‘ Printing a variable-less String

Console.WriteLine (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: 70

Dim MyName as String = “Alex” Console.WriteLine (“Hello “ + MyName) ‘ Combination of variable-less String and ‘ String variable)

Console.WriteLine (“Hello “ & MyName) ‘ Combination of variable-less String and ‘ String variable)

Untuk menuliskan karakter Enter (New Line), digunakan salah satu VB Special Key yaitu vbCrLf yang merupakan kepanjangan dari Carriage Return (ASCII: 13) dan Line Feed (ASCII: 10).

Karakter yang dituliskan setelah vbCrLf akan

dituliskan pada satu baris baris bawahnya. Contoh:

Dim MyName as String = “Alex” Console.WriteLine (“Hello“ & vbCrLf & MyName) ‘ Result will be: ‘ Hello ‘ Alex

Jika 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:

Dim MyName as String = “My name “ & _ “ is Alex”

71

‘ MyName = “My name is Alex”

Console.WriteLine (“Hi, nice “ & _ “weather today”) ‘ 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: Dim MyName as String = “Alex” Console.WriteLine (MyName.ToUpper) ‘ Result = “ALEX”



ToLower: Mengubah String menjadi huruf capital semua. Contoh: Dim MyName as String = “Alex” Console.WriteLine (MyName.ToLower) ‘ Result = “alex”



Trim: Menghilangkan whitespace (spasi yang tidak diperlukan). Contoh: Dim MyName as String = “

Alex



Console.WriteLine (MyName.Trim) ‘ Result = “Alex”

72



PadLeft dan PadRight: Memberikan suatu karakter sesuai dengan pesanan tempat. Contoh: Dim MyName as String = “Alex” Console.WriteLine(MyName.PadLeft(10, “-“)) ‘ Result: = “-----Hello” Console.WriteLine(MyName.PadRight(10, “-“)) ‘ Result: = “Hello-----”



Split: Memisahkan String menjadi beberapa bagian sesuai

dengan

karakter

pemisahnya.

Hasilnya

disimpan dalam bentuk array. Contoh: Dim MyAddress as String = “192.168.1.31” Dim Result() as String = MyAddress.Split For Each s as String in Result Console.WriteLine(s) Next ‘ Result: ‘ 192 ‘ 168 ‘ 1 ‘ 31



Join: Menggabungkan String dengan menggunakan suatu karakter untuk pembatasnya. Merupakan lawan dari Split. Contoh: Dim MyAddress() As String = {"192", "168", "1", "31"} Dim Result As String = String.Join(".", MyAddress) Console.WriteLine(Result) 73

‘ 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: Dim MyWord as String = “Hello World” Console.WriteLine (MyWord.Substring(4, 3)) ‘ Result = “o W” Console.WriteLine (MyWord.Substring(4) ‘ Result = “o World”

Gambar 17: Index pada String

Selain fungsi-fungsi dari Class String tersebut, ada juga fungsi-fungsi yang merupakan peninggalan dari VB6 yang masih berguna, yaitu: •

Left, Mid, dan Right: 3 fungsi ini sudah bisa digantikan

dengan

Substring

sehingga

jarang

digunakan lagi.

74



Format: Mengatur suatu angka atau tanggal agar bisa ditampilkan sesuai keinginan. Misalkan pemisah ribuan pada angka maupun menampilkan tanggal dengan pemisah minus (-). Contoh: Dim MyNumber As Integer = 5000 Console.WriteLine(Format(MyNumber, "#,###.##")) ‘ Result: 5,000.00

Dim MyDate As Date = Now Console.WriteLine(Format(MyDate, "dd-MMMMyyyy")) ‘ 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

75

Console.WriteLine(Now)

Dim s As String Dim sb As New System.Text.StringBuilder

For i As Long = 0 To 30000 s &= i

atau gunakan

sb.Append(i) Next

Console.WriteLine(Now) ‘ Console.WriteLine(sb.ToString) Î Untuk menampilkan nilai 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: 76

Input: buDi sanTOsO ALEX Ouput: Budi Santoso Alex

77