dasar logika pemrograman net

Upload: vendi-sudibyo

Post on 18-Oct-2015

66 views

Category:

Documents


1 download

TRANSCRIPT

  • i

    DAFTAR ISI

    DAFTAR ISI iBAB 1. INTRODUCTION TO PROGRAMMING WORLD 1

    Introduction to Programming 1Introduction to Algorithm 4Introduction to Flowchart 7Soal-Soal 9

    BAB 2. BASIC PROGRAMMING CASE 10Introduction to Real Programming Case 10Progression / Sequence 10Validation & Verification 11Positioning & Animation 12String Manipulation 13Soal-Soal 13

    BAB 3. MICROSOFT .NET FRAMEWORK 14Introduction to Microsoft .NET Framework 14Object Oriented Programming Concept 18Microsoft .NET Framework Component 19Namespace 22IDE Visual Studio .NET 23Console Application 25Soal-Soal 26

    BAB 4. DATA AND CONTROL FLOW 27Introduction Variable and Data Type 27

    Variable 27Data Type 28Variable Declaration 32Type Casting 33

    Introduction to Control Flow 36

  • ii

    Console Application Structure 36Input / Output 40Operator 40Selection 42Loop 45Procedure and Function 54

    Array 60Array Concept 60For Each Clause 63

    Exception 64Exception Handling 66Throwing Exception 67

    Soal-Soal 69BAB 5. STRING MANIPULATION 70

    String 70String Functions 72StringBuilder 75Soal-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: 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:

  • 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 (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.

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

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

  • 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 (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

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

    * * *** **

    ******* * *

    ***** * *

    *** **

    * *

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

  • 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 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

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

  • 20

    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)

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

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

    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:

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

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

  • 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

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

    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,

  • 33

    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

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

    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

  • 36

    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

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

  • 39

    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.

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

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

  • 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 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

  • 43

    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

  • 44

    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_matched

    End Select

    Contoh:

  • 45

    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 :

  • 46

    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:

  • 47

    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

  • 48

    Perulangan tersebut akan mengecek suatu

    kondisi sebelum memulai perulangan.

    Apabila kondisi awal 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 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 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 memulai perulangan.

    Apabila kondisi awal sudah tidak

    terpenuhi, maka perulangan bisa tidak

    dilakukan sama sekali.

  • 50

    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:

  • 51

    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

  • 52

    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

  • 53

    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

  • 54

    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

  • 55

    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

  • 56

    End Sub

    Pemanggilan procedure dilakukan dengan

    menuliskan nama procedure 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:

  • 57

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

  • 58

    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

  • 59

    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 )

  • 60

    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 pada waktu pemanggilan

    Procedure1 nilai di variable 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:

  • 61

    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:

  • 62

    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

  • 63

    Console.WriteLine(i(0)) Console.WriteLine(i(1)) Console.WriteLine(i(2)) Console.WriteLine(i(3)) Console.WriteLine(i(4)) 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

    For num As Integer = 0 To i.Length - 1

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

  • 65

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

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

    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 berkali-

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

  • 67

    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

  • 68

    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

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

    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:

  • 71

    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

  • 72

    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

  • 73

    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)

  • 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: 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.

  • 75

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

    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:

  • 77

    Input: buDi sanTOsO ALEX

    Ouput: Budi Santoso Alex

    DAFTAR ISI BAB 1. INTRODUCTION TO PROGRAMMING WORLDIntroduction to ProgrammingIntroduction to AlgorithmIntroduction to Flowchart Soal-Soal

    BAB 2. BASIC PROGRAMMING CASEIntroduction to Real Programming CaseProgression / SequenceValidation & VerificationPositioning & AnimationString Manipulation Soal-Soal

    BAB 3. MICROSOFT .NET FRAMEWORK Introduction to Microsoft .NET Framework Object Oriented Programming ConceptMicrosoft .NET Framework ComponentNamespaceIDE Visual Studio .NETConsole ApplicationSoal-Soal

    BAB 4. DATA AND CONTROL FLOWIntroduction Variable and Data TypeVariableData TypeVariable DeclarationType Casting

    Introduction to Control FlowConsole Application StructureInput / OutputOperatorSelectionLoopProcedure and Function

    ArrayArray ConceptFor Each Clause

    ExceptionException HandlingThrowing Exception

    Soal-Soal

    BAB 5. STRING MANIPULATIONStringString FunctionsStringBuilderSoal-Soal