BEKERJA DENGAN STRUKTUR DATA PADA VB.NET
APA YANG AKAN ANDA PELAJARI PADA BAB INI:
1. Menggunakan
array
2. Bekerja
dengan enumerasi
3. Menggunakan
konstanta
4. Bekerja
dengan struktur
Pada bab-bab terdahulu,
Anda telah bekerja dan menggunakan sejumlah tipe data sederhana, seperti
variabel Integer dan String. Meskipun kedua tipe data ini
berguna pada banyak situasi, tetapi pada program yang lebih kompleks, struktur
data sangat diperlukan. Struktur data adalah sekelompok elemen data yang
diorganisir menjadi satu entitas atau unit. Pada bab ini, Anda akan belajar
tentang sejumlah struktur data yang tersedia pada Visual Basic. Anda akan
melihat sejumlah cara dimana Anda dapat menggunakan himpunan data yang
kompleks. Terakhir, Anda akan belajar bagaimana membangun kelas-kelas koleksi
untuk menciptakan dan memanipulasi list-list yang memuat data kompleks.
MEMAHAMI ARRAY
Salah satu hal yang
sering dijumpai dalam menuliskan piranti lunak adalah kebutuhan akan list atau
daftar yang memuat data yang berelasi. Anda dapat menyediakan fungsionalitas
ini menggunakan array. Array memuat sejumlah elemen dengan tipe data sama.
Sebagai contoh, Anda bisa saja ingin menyimpan beberapa umur dari sejumlah teman
Anda di dalam suatu array integer atau nama-nama teman Anda di dalam sebuah
array string.
Bagian ini akan
menjelaskan bagaimana mendefinisikan, mengisi, dan menggunakan array pada
aplikasi-aplikasi Anda.
Mendefinisikan dan Menggunakan Array
Ketika Anda
mendefinisikan sebuah array, Anda sebenarnya sedang menciptakan sebuah variabel
yang memuat lebih dari satu dimensi. Sebagai contoh, jika Anda mendefinisikan
sebuah variabel sebagai suatu string, Anda hanya dapat memuat satu nilai string
di dalamnya:
Dim strNama
As String
Namun, dengan array Anda
dapat menciptakan sejenis efek pengganda pada suatu variabel, sehingga Anda
dapat memiliki lebih dari satu nilai di dalam suatu variabel. Array
didefinisikan dengan memberikan ukuran array setelah nama variabel. Sebagai
contoh, jika Anda ingin mendefinisikan sebuah array string dengan 10 elemen,
Anda melakukan ini:
Dim
strNama(9) As String
Ketika Anda memiliki
sebuah array, Anda dapat mengakses elemen-elemen individual di dalamnya dengan
memberikan sebuah nilai indeks antara 0 sampai nilai maksimum yang mungkin.
Nilai maksimum yang mungkin ini adalah ukuran array yang dikurangi dengan 1.
Sebagai contoh, untuk
menetapkan elemen dengan indeks 2 di dalam array, Anda melakukan ini:
strNama(2)
= "Vivian"
Untuk mmbaca elemen
tersebut, Anda melakukan ini:
MessageBox.Show(strNama(2))
Apa yang penting adalah
bahwa elemen-elemen lain di dalam array tetap tidak terpengaruh ketika Anda
menetapkan elemen tertentu. Jadi, jika Anda melakukan ini:
strNama(3)
= "Beti"
strNama(2) tetap memuat “Vivian”.
LATIHAN
|
Mendefinisikan dan Menggunakan Sebuah Array Sederhana
|
Cara terbaik dalam
memahami array adalah dengan menuliskan kode untuk mendemonstrasikannya.
1. Klik File kemudian New Project. Pada dialog New Project, ciptakan sebuah Windows
Forms Application yang baru dengan nama Demo Array.
2. Ketika mode Design untuk Form1 ditampilkan, tambahkan sebuah
kontrol ListBox pada form. Dengan
menggunakan jendela Properties,
tetapkan proper Name menjadi listTeman dan properti IntegralHeight menjadi False.
3. Tambahkan sebuah kontrol Button pada form. Tetapkan properti Name menjadi tombolElemenArray dan tetapkan properti Text menjadi Elemen Array. Tata kontrol-kontrol Anda
sehingga form tampak seperti pada Gambar 3.1.
GAMBAR
3.1
4. Klik ganda pada tombol tersebut dan
tambahkan kode yang ditebalkan berikut pada event handler Click. Anda akan
menerima pesan error yang menyatakan bahwa prosedur BersihkanList tidak
didefinisikan. Anda dapat mengabaikan error ini karena Anda akan menambahkan
prosedur ini pada langkah selanjutnya:
Private Sub
tombolElemenArray_Click(sender As Object, e As EventArgs)
Handles tombolElemenArray.Click
'Membersikan list
BersihkanList()
'Mendeklarasikan sebuah array
Dim strTeman(4) As String
'Mengisi array
strTeman(0) = "Widi"
strTeman(1) = "Hari"
strTeman(2) = "Jodi"
strTeman(3) = "Misel"
strTeman(4) = "Rico"
'Menambahkan item pertama di
dalam array pada list
listTeman.Items.Add(strTeman(0))
End Sub
5.
Sekarang ciptakan prosedur berikut:
Private Sub BersihkanList()
'Membersikan list
listTeman.Items.Clear()
End Sub
6. Simpan projek Anda dengan mengklik
tombol Save All pada toolbar dan
kemudian jalankan program. Ketika form ditampilkan, klik tombol Elemen Array. Kotak list pada form Anda akan diisi dengan nama Widi.
Penjelasan
Pada contoh ini, Anda
membersihkan kotak list dengan memanggil metode BersihkanList. Meskipun list
kosong pada titik ini, Anda akan menambahkan tombol-tombol lain pada projek
inipada latihan-latihan selanjutnya, dan membandingkan hasil yang didapat dari
tiap tombol:
'Membersikan list
BersihkanList()
Ketika Anda
mendefinisikan sebuah array, Anda perlu menetapkan tipe data dan ukuran array.
Pada kasus ini, Anda menetapkan sebuah array dengan tipe data String dan menetapkan ukuran array 5.
Ingat bahwa cara dalam mendefinisikan ukuran array sedikit memerlukan
kehati-hatian. Anda perlu menetapkan ukuran dengan ukuran akhir dikurangi
dengan satu. Oleh karena itu, di sini Anda menggunakan baris berikut:
'Mendeklarasikan sebuah array
Dim strTeman(4)
As String
Dengan cara ini, Anda
akan memiliki sebuah array dengan ukuran 5. Cara lain dalam mengekspresikan ini
adalah bahwa Anda memiliki sebuah array yang memuat 5 elemen.
Setelah selesai, Anda
telah memiliki sebuah array, dan Anda dapat mengakses setiap item di dalam
array menggunakan indeks. Indeks diberikan sebagai suatu nilai di dalam kurung
setelah nama array. Indeks diawali dari nol dan berakhir dengan banyak item
dikurangi satu. Contoh berikut menetapkan lima item di dalam array:
'Mengisi array
strTeman(0) = "Widi"
strTeman(1) = "Hari"
strTeman(2) = "Jodi"
strTeman(3) = "Misel"
strTeman(4) = "Rico"
Sama seperti Anda dapat
menggunakan indeks untuk mengisi array, Anda juga dapat menggunakannya untuk
membaca elemen array. Pada kasus ini,Anda akan menampilkan item pertama di
dalam array pada kotak list:
'Menambahkan item pertama di dalam array pada list
listTeman.Items.Add(strTeman(0))
Metode yang Anda
mendefinisikan hanya memuat sebaris kode tetapi pendaur-ulangannya
didemonstrasikan pada latihan berikut. Metode ini hanya membersikan koleksi Items pada kotak list:
Private Sub
BersihkanList()
'Membersikan
list
listTeman.Items.Clear()
End Sub
Menggunakan For Each…Next
Salah satu cara umum
dalam menggunakan array adalah dengan memanfaatkan loop For Each…Next. Loop ini telah dikenalkan pada Bab 2, ketika Anda
menggunakannya dengan sebuah koleksi string yang dihasilkan dari metode My.Computer.FileSystem.GetDirectories.
LATIHAN
|
Menggunakan For Each…Next dengan Array
|
Latihan ini
mendemonstrasikan bagaimana Anda menggunakan loop For Each…Next dengan sebuah array.
1. Tutup program Anda jika ia sedang
dijalankan dan buka editor kode untuk Form1.
Tambahkan deklarasi variabel yang ditebalkan berikut di bagian atas dari kelas
form Anda:
Public
Class Form1
'Mendeklarasikan sebuah array level form
Private strTeman(4) As String
2. Pada jendela properties, pilih event
Load untuk Form1. Ini akan menyebabkan event handler Form1_Load disisipkan pada kode Anda. Tambahkan kode yang
ditebalkan berikut pada prosedur ini:
Private Sub
Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Mengisi
array
strTeman(0)
= "Widi"
strTeman(1)
= "Hari"
strTeman(2)
= "Jodi"
strTeman(3)
= "Misel"
strTeman(4)
= "Rico"
End Sub
3. Kembali ke mode Design dan tambahkan
kontrol Button lain. Tetapkan
properti Name menjadi tombolEnumerasiArray dan properti Text menjadi Enumerasi Array.
4. Klik ganda pada tombol ini dan
tambahkan kode yang ditebalkan berikut pada event handler Click:
Private
Sub tombolEnumerasiArray_Click(sender As Object, e As EventArgs)
Handles tombolEnumerasiArray.Click
'Membersikan list
BersihkanList()
'Mengenumerasi array
For Each strNama As String In strTeman
'Menambahkan item array pada list
listTeman.Items.Add(strNama)
Next
End
Sub
5. Jalankan projek dan klik tombol ini.
Anda akan melihat hasil seperti ditunjukkan pada Gambar 3.2.
GAMBAR 3.2
Penjelasan
Anda memulai latihan ini
dengan mendeklarasikan sebuah variabel array yang merupakan variabel lokal pada
form, yang berarti bahwa variabel ini tersedia bagi semua prosedur di dalam
kelas form. Ketika variabel dideklarasikan di luar dari suatu metode di dalam
kelas form, variabel itu tersedia bagi semua metode di dalam form:
'Mendeklarasikan
sebuah array level form
Private
strTeman(4) As String
Selanjutnya, Anda
menambahkan event handler Load untuk
form dan kemudian menambahkan kode untuk mengisi array. Prosedur ini dipanggil
kapanpun form dimuat, yang memastikan bahwa array Anda selalu terisi:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
'Mengisi array
strTeman(0) = "Widi"
strTeman(1) = "Hari"
strTeman(2) = "Jodi"
strTeman(3) = "Misel"
strTeman(4) = "Rico"
End Sub
Bab 2 menunjukkan loop For Each…Next beriterasi pada sebuah
koleksi string; pada contoh ini, koleksi string tersebut berada di dalam sebuah
array. Prinsipnya sama; Anda menciptakan sebuah variabel kendali yang bertipe For Each…Next data sama dengan elemen
array. Hal ini dilakukan dalam satu baris kode. Variabel kendali, strNama, dideklarasikan dan digunakan
pada statemen For Each dengan menggunakan katakunci As String.
Internal di balik loop
menjejak array yang diawali pada elemen 0 sampai elemen array terakhir. Untuk
tiap iterasi, Anda dapat memeriksa nilai dari variabel kendali dan melakukan
sesuatu padanya; pada kasus ini, Anda menambahkan nama pada list:
'Mengenumerasi
array
For
Each strNama As String In strTeman
'Menambahkan item array pada list
listTeman.Items.Add(strNama)
Next
Perhatikan bahwa item-item ditambahkan pada list dengan urutan yang sama seperti sesuai dengan urutannya di dalam array. Hal ini karena For Each…Next menjejak dari item pertama sampai item terakhir.
Melewatkan Array Sebagai Parameter
Pelewatan array sebagai
parameter kepada suatu fungsi adalah hal yang sangat berguna. Hal ini
didemonstrasikan pada latihan berikut.
LATIHAN
|
Melewatkan Array Sebagai Parameter
|
Pada latihan ini, Anda
akan melihat bagaimana melewatkan sebuah array kepada suatu fungsi sebagai
parameter.
1. Kembali ke form Design pada projek Demo Array dan tambahkan kontrol Button lain. Tetapkan properti Name menjadi tombolArraySebagaiParameter dan properti Text menjadi Array Sebagai Parameter.
2. Klik ganda pada tombol dan tambahkan
kode yang ditebalkan berikut pada event handler Click. Anda akan menerima pesan error yang menyatakan bahwa
prosedur TambahkanItemPadaList tidak
didefinisikan. Anda dapat mengabaikan error ini karena Anda akan menambahkan
prosedur ini pada langkah selanjutnya:
Private
Sub tombolArraySebagaiParameter_Click(sender As Object, e As EventArgs)
Handles tombolArraySebagaiParameter.Click
'Membersikan list
BersihkanList()
‘Tampilkan teman Anda
TambahkanItemPadaList(strTeman)
End
Sub
3.
Tambahkan prosedur TambahkanItemPadaList sebagai berikut:
Private
Sub TambahkanItemPadaList(ByVal arrayList() As String)
'Mengenumerasi array
For Each strNama As String In arrayList
'Menambahkan item array pada list
listTeman.Items.Add(strNama)
Next
End
Sub
4. Jalankan projek dan klik pada tombol
ini. Anda akan melihat hasil yang sama seperti ditunjukkan pada Gambar 3.2.
Penjelasan
Tekniknya di sini adalah
memberitahu metode TambahkanItemPadaList bahwa parameter yang diharapkan adalah
sebuah array bertipe String. Anda melakukan inidengan menggunakan header
prosedur berikut:
Private Sub TambahkanItemPadaList(ByVal arrayList() As
String)
Jika Anda menetapkan
sebuah array tetapi tidak mendefinisikan ukuran array (atau nilai batas atas),
maka Anda sedang memberitahu Visual Basic bahwa Anda tidak mengetahui atau
tidak peduli seberapa besar array itu. Ini berarti
bahwa Anda dapat melewatkan sebuah array dengan ukuran apapun kepada TambahkanItemPadaList. Pada prosedur tombolArraySebagaiParameter, Anda
mengirimkan array semula Anda:
‘Tampilkan teman
Anda
TambahkanItemPadaList(strTeman)
LATIHAN
|
Menambahkan Teman Lain
|
Apa yang terjadi jika
Anda mendefinisikan array lain dengan ukuran yang berbeda? Pada latihan ini,
Anda akan melihatnya.
1. Kembali ke form Design pada projek Demo Array dan tambahkan kontrol Button lain. Tetapkan properti Name menjadi tombolParameterArrayLain dan properti Text menjadi Parameter Array
Lain.
2. Klik ganda pada tombol dan tambahkan
kode yang ditebalkan berikut pada event handler Click:
Private
Sub tombolParameterArrayLain_Click(sender As Object, e As EventArgs)
Handles tombolParameterArrayLain.Click
'Membersikan list
BersihkanList()
'Mendeklarasikan sebuah array
Dim strTemanLain(1) As String
'Mengisi array
strTemanLain(0) = "Elsa"
strTemanLain(1) = "Debi"
'Menampilkan teman Anda
TambahkanItemPadaList(strTeman)
TambahkanItemPadaList(strTemanLain)
End
Sub
3. Jalankan projek dan klik tombol ini.
Anda akan melihat form yang ditunjukkan pada Gambar 3.3.
GAMBAR
3.3
Penjelasan
Apa yang telah Anda
lakukan di sini adalah membuktikan bahwa array yang Anda lewatkan sebagai
parameter tidak harus berukuran tetap. Anda menciptakan sebuah array baru
berukuran 2 dan melewatkannya kepada fungsi TambahkanItemPadaList yang sama.
Ketika Anda menuliskan
kode, Anda dapat memberitahu apakah sebuah parameter adalah bertipe array
dengan melihat kurung kosong pada kotak pop-up IntelliSense, seperti ditunjukkan pada Gambar 3.4.
GAMBAR 3.4
Mengurutkan Array
Kadangkala adalah berguna
untuk bisa mengurutkan sebuah array. Hal ini berguna ketika Anda menampilkan
data pada user sehingga ia dapat dengan mudah mencari atau mengevaluasi data
secara logis.
LATIHAN
|
Mengurutkan Array
|
Latihan ini akan mendemonstrasikan bagaimana mengurutkan array
secara alfabetis.
1. Kembali ke form Design pada projek Demo Array dan tambahkan kontrol Button lain. Tetapkan properti Name menjadi tombolUrutArray dan properti Text
menjadi Urut Array.
2. Klik ganda pada tombol dan tambahkan
kode yang ditebalkan berikut pada event handler Click:
Private
Sub tombolUrutArray_Click(sender As Object, e As EventArgs) Handles
tombolUrutArray.Click
'Membersikan list
BersihkanList()
'Mengurutkan array
Array.Sort(strTeman)
'Menampilkan teman Anda
TambahkanItemPadaList(strTeman)
End
Sub
3. Jalankan projek dan klik pada tombol
ini. Anda akan melihat kotak list pada form Anda yang diisi dengan nama-nama
dari array yang telah diurutkan secara alfabetis.
Penjelasan
Semua array secara
internal diimplementasikan di dalam sebuah kelas dengan nama System.Array. Pada kasus ini, Anda
menggunakan sebuah metode dengan nama Sort
dari kelas itu. Metode Sort
mengambil sebuah parameter, yaitu array yang akan diurutkan. Pada kasus ini,
Anda menggunakan sebuah array string, jadi Anda mendapatkan pengurutan
alfanumeris. Jika Anda menggunakan teknik untuk mengurutkan sebuah array yang
memuat nilai-nilai integer atau titik-mengambang, maka array akan diurutkan
dengan tatanan numeris.
'Mengurutkan
array
Array.Sort(strTeman)
Bergerak Mundur
Loop For Each…Next menjejak array hanya dengan satu arah. Penjejakan di
awali dari posisi 0 dan loop menjejak sampai akhir array. Jika Anda bermaksud
untuk menjejak mundur array (dari panjang array – 1 sampai 0), Anda memiliki
dua opsi.
Satu, Anda dapat menjejak
loop secara mundur dengan menggunakan loop For…Next
standar untuk memulai penjejakan dari batas indeks atas di dalam array sampai 0
menggunakan katakunci Step – 1,
seperti ditunjukkan pada contoh berikut:
For
intIndeks As Integer = strTeman.GetUpperBound(0) To 0 Step -1
‘Menambahkan item array pada list
listTeman.Items.Add(strTeman(intIndeks))
Next
Cara lain, Anda dapat
memanggil metode Reverse dari kelas Array untuk membalik urutan elemen
array dan kemudian menggunakan loop For
Each…Next.
LATIHAN
|
Membalikkan Array
|
Latihan ini akan mendemonstrasikan bagaimana mengurutkan
array secara alfabetis.
1.
Kembali ke form Design pada projek Demo Array dan tambahkan kontrol Button lain. Tetapkan properti Name menjadi tombolBalikArray dan properti Text
menjadi Balik Array.
2. Klik ganda pada tombol dan tambahkan
kode yang ditebalkan berikut pada event handler Click:
Private
Sub tombolBalikArray_Click(sender As Object, e As EventArgs) Handles
tombolBalikArray.Click
'Membersikan list
BersihkanList()
'Membalik urutan elemen array sehingga
menjadi
'tatanan menurun
Array.Reverse(strTeman)
'Menampilkan teman Anda
TambahkanItemPadaList(strTeman)
End
Sub
3. Jalankan projek dan klik pada tombol
ini. Anda akan melihat teman-teman dengan urutan terbalik, seperti ditunjukkan
pada Gambar 3.5.
GAMBAR
3.5
Penjelasan
Metode Reverse membalikkan urutan elemen di
dalam sebuah array satu-dimensi. Dengan melewatkan array strTeman kepada metode Reverse,
Anda meminta metode Reverse untuk
membalikkan ulang array dari atas ke bawah:
'Membalik
urutan elemen array sehingga menjadi
'tatanan
menurun
Array.Reverse(strTeman)
Setelah item-item di
dalam array dibalik, Anda hanya perlu memanggil prosedur TambahkanItemPadaList untuk menampilkan item-item tersebut pada
list:
'Menampilkan
teman Anda
TambahkanItemPadaList(strTeman)
Menginisialisasi Array
Adalah dimungkinkan untuk
menciptakan sebuah array dalam Visual Basic dan mengisinya dengan satu baris
kode, daripada harus menuliskan sejumlah baris kode untuk mendeklarasikan dan
mengisi array, seperti ditunjukkan di sini:
'Mendeklarasikan sebuah array
Dim strTeman(4) As String
'Mengisi array
strTeman(0) = "Widi"
strTeman(1) = "Hari"
strTeman(2) = "Jodi"
strTeman(3) = "Misel"
strTeman(4) = "Rico"
LATIHAN
|
Membalikkan Array
|
Latihan ini akan mendemonstrasikan bagaimana mengurutkan
array secara alfabetis.
1. Kembali ke form Design pada projek Demo Array dan tambahkan kontrol Button
lain. Tetapkan properti Name menjadi
tombolInisialisasiArray dan properti
Text menjadi Inisialisasi Array.
2. Klik ganda pada tombol dan tambahkan
kode yang ditebalkan berikut pada event handler Click:
Private
Sub tombolInisialisasiArray_Click(sender As Object, e As EventArgs)
Handles tombolInisialisasiArray.Click
'Membersikan list
BersihkanList()
'Mendeklarasikan dan mengisi array
Dim strTemanKu() As String =
{"Widi", "Hari", "Jodi",
"Misel",
"Rico"}
'Menampilkan teman Anda
TambahkanItemPadaList(strTemanKu)
End
Sub
3. Jalankan projek dan klik tombol ini.
Kotak list Anda akan diisi dengan teman-teman yang dimuat di dalam array.
Penjelasan
Sepasang kurung kurawl
({}) dapat Anda pakai untuk menetapkan nilai-nilai yang akan dimuat di dalam
array secara langsung. Pada kasus ini, Anda memiliki lima nilai yang dimasukkan
ke dalam array, yang dipisahkan dengan koma. Perhatikan bahwa ketika Anda
melakukan ini, Anda tidak menetapkan batas atas untuk array; tetapi, Anda
menggunakan kurung kosong. Visual Basic akan menghitung batas atas array bagi
Anda berdasarkan nilai-nilai yang Anda sediakan:
'Mendeklarasikan
dan mengisi array
Dim strTemanKu()
As String = {"Widi", "Hari", "Jodi",
"Misel",
"Rico"}
'Menampilkan teman
Anda
TambahkanItemPadaList(strTemanKu)
Teknik ini tidak praktis
ketika Anda mengisi array yang berukuran besar. Jika program Anda menggunakan
array berukuran besar, Anda lebih baik menggunakan metode yang sebelumnya:
menetapkan posisi elemen dan nilainya.
MEMAHAMI ENUMERASI
Sejauh ini,
variabel-variabel yang telah Anda lihat secara virtual tidak memiliki
keterbatasan pada jenis data yang dapat disimpan di dalamnya. Jika Anda
memiliki sebuah variabel yang didefinisikan Integer, maka Anda dapat menempatkan sembarang nilai ke dalamnya.
Hal yang sama berlaku pada String
dan Double. Anda belum pernah
melihat tipe variabel lain, yang hanya memiliki dua kemungkinan nilai: variabel
Boolean hanya dapat bernilai True atau False.
Sering, ketika menuliskan
kode, Anda ingin membatasi nilai-nilai yang mungkin yang dapat disimpan di
dalam sebuah variabel. Sebagai contoh, jika Anda memiliki sebuah variabel yang
dapat menyimpan banyak pintu yang dapat dimiliki sebuah mobil, apakah Anda ingin
menyimpan nilai 1234 ke dalamnya? Tentu, tidak.
Menggunakan Enumerasi
Enumerasi memampukan Anda
untuk membangun sebuah tipe variabel baru, berdasarkan salah satu dari tipe
data ini: Integer, Long, Short, atau Byte.
Variabel ini dapat ditetapkan menjadi salah satu dari sehimpunan nilai yang
Anda definisikan, yang secara ideal mencegah seseorang dari pemberian
nilai-nilai yang tak valid.
LATIHAN
|
Menggunakan Enumerasi
|
Pada latihan ini, Anda
akan melihat bagaimana membangun sebuah aplikasi yang memeriksa waktu, dan
berdasarkan itu Anda dapat merekam salah satu kegiatan dari sejumlah kegiatan
berikut:
a. Tidur
b. Bersiap
pergi kerja
c. Berangkat
kerja
d. Bekerja
e. Makan
siang
f. Berangkat
pulang
g. Bercengkerama
dengan teman
h. Bersiap
tidur
1.
Ciptakanlah sebuah aplikasi Windows Forms dengan nama Demo Enum.
2.
Tetapkan properti Text dari Form1 menjadi Apa yang
Dilakukan oleh Kristof?
3.
Sekarang tambahkan sebuah kontrol DateTimePicker dan tetapkan
properti-properti berikut:
Tetapkan
Name menjadi dtpJam.
Tetapkan
Format menjadi Time.
Tetapkan
ShowUpDown menjadi True.
Tetapkan
Value menjadi 01:00 am.
Tetapkan
Size menjadi 90, 20.
4. Tambahkan sebuah kontrol Label pada form, tetapkan properti Name menjadi labelStatus dan properti Text-nya
menjadi Status Tak Diinisialisasi. Ubah ukuran form Anda sehingga ia tampak
seperti pada Gambar 3.6.
5. Lihat editor kode dari form dengan
mengklik kanan pada form dan pilih View
Code dari menu konteks. Di atas
kelas tambahkan enumerasi berikut:
Public
Class Form1
'Enumerasi AktifitasHari
Private Enum AktifitasHari As Integer
Tidur = 0
BersiapPergiKerja = 1
BerangkatKerja = 2
Bekerja = 3
MakanSiang = 4
BerangkatPulang = 5
BercengkeramaDenganTeman = 6
BersiapTidur = 7
End Enum
6. Dengan enumerasi didefinisikan, Anda
dapat menciptakan variabel-variabel anggota baru yang menggunakan enumerasi
sebagai tipe datanya. Tambahkan anggota ini:
'Mendeklarasikan
variabel
Private
StatusSekarang As AktifitasHari
7.
Tambahkan kode berikut di bawah
variabel yang baru saja Anda tambahkan:
'Properti
Jam
Private
Property Jam() As Integer
Get
'Menghasilkan jam sekarang yang
ditampilkan
Return dtpJam.Value.Hour
End Get
Set(ByVal nil As Integer)
'Menetapkan tanggal menggunakan jam
yang dilewatkan kepada properti ini
dtpJam.Value = New Date(Now.Year,
Now.Month, Now.Day, nil, 0, 0)
'Menetapkan teks yang ditampilkan
labelStatus.Text = "Pada pukul
" & nil & ":00, Kristof sedang "
End Set
End
Property
8.
Tambahkan event Load untuk form, dengan mengklik ganda form:
Private
Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Menetapkan properti Jam menjadi jam
sekarang
Me.Jam = Now.Hour
End
Sub
9. Pilih kontrol dtpJam dan pilih event ValueChanged
dari jendela Properties untuk
kontrol ini. Tambahkan kode yang ditebalkan berikut pada event handler ini:
Private
Sub dtpJam_ValueChanged(sender As Object, e As EventArgs) Handles
dtpJam.ValueChanged
'Memperbarui properti Jam
Me.Jam = dtpJam.Value.Hour
End
Sub
10.
Simpan projek Anda dan kemudian jalankan program. Anda
akan mengklik anak panah bawah dan atas pada kontrol DateTimePicker dan melihat teks yang diperbarui yang merefleksikan
jam terseleksi, seperti ditunjukkan pada Gambar 3.7.
Penjelasan
Pada aplikasi ini, user
menggunakan kontrol DateTimePicker
untuk memilih jam. Program kemudian melihat jam dan menentukan salah satu dari
kedelapan status Kristof yang sesuai dengan jam tersebut. Untuk melakukan ini,
Anda perlu menjejak jam. Untuk menyimpan jam, Anda menciptakan sebuah properti
untuk form selain properti-properti yang dimilikinya, seperti Name dan Text. Properti baru ini dinamakan dengan Jam, dan ia dipakai untuk menetapkan jam terkini pada kontrol DateTimePicker dan kontrol Label. Properti ini didefinisikan
dengan statemen Property.End Property:
Private
Property Jam() As Integer
Get
'Menghasilkan jam sekarang yang
ditampilkan
Return dtpJam.Value.Hour
End Get
Set(ByVal nil As Integer)
'Menetapkan tanggal menggunakan jam
yang dilewatkan kepada properti ini
dtpJam.Value
= New Date(Now.Year, Now.Month, Now.Day, nil, 0, 0)
'Menetapkan teks yang ditampilkan
labelStatus.Text = "Pada pukul
" & nil & ":00, Kristof sedang "
End Set
End
Property
Perhatikan blok Get.End Get dan Set.End Set di dalam statemen Property.End
Property. Blok Get memuat sebuah
statemen Return dan dipanggil secara otomatis untuk menghasilkan nilai properti
ketika nama properti ditampilkan pada sebuah ekspresi. Tipe data yang
dihasilkan tidak ditetapkan pada statemen Get
karena ia telah dideklarasikan sebagai Integer pada statemen Property. Blok Set dipanggil secara otomatis ketika nilai ditetapkan, seperti
dengan menempatkan nama properti di sisi kiri dari tanda sama dengan.
Ketika aplikasi
dijalankan, Anda menetapkan properti Jam
menjadi jam terkini pada komputer Anda. Anda mendapatkan informasi ini dari Now, sebuah variabel Date yang memuat tanggal dan waktu
terkini:
Private
Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Menetapkan properti Jam menjadi jam
sekarang
Me.Jam = Now.Hour
End Sub
Anda juga menetapkan
properti Jam ketika properti Value berubah pada kontrol DateTimePicker:
Private
Sub dtpJam_ValueChanged(sender As Object, e As EventArgs) Handles
dtpJam.ValueChanged
'Memperbarui properti Jam
Me.Jam = dtpJam.Value.Hour
End
Sub
Ketika properti Jam ditetapkan, Anda perlu memperbarui
nilai dari kontrol DateTimePicker
untuk menunjukkan nilai jam yang baru, dan Anda perlu memperbarui label pada
form juga. Kode untuk melakukannya ditempatkan di dalam blok Set pada properti Jam.
Pembaruan pertama yang
Anda lakukan adalah memperbarui properti Value
dari kontrol DateTimePicker.
Properti Value dari kontrol ini
bertipe data Date; jadi, Anda tidak
bisa begitu saja menetapkan jam pada kontrol ini, meskipun Anda bisa membaca
jam dari properti ini. Untuk memperbarui properti ini, Anda harus melewatkan
kepadanya sebuah tipe data Date.
Anda melakukan ini dengan
memanggil New dari kelas Date, melewatkannya bagian tanggal dan
waktu yang berbeda seperti ditunjukkan pada kode: tahun, bulan, hari, jam,
menit, detik. Anda membaca tahun, bukan, dan hari dengan mengekstraksinya dari
variabel Now. Jam dilewatkan
menggunakan parameter nil yang sebelumnya
dilewatkan kepada properti Jam ini, dan menit dan detik dilewatkan sebagai 0,
karena Anda tidak ingin memperbaruinya:
'Menetapkan
tanggal menggunakan jam yang dilewatkan kepada properti ini
dtpJam.Value
= New Date(Now.Year, Now.Month, Now.Day, nil, 0, 0)
Pembaruan kedua yang
dilakukan oleh properti Jam adalah
memperbarui label pada form menggunakan teks statis dan jam yang ditetapkan
pada properti ini:
'Menetapkan
teks yang ditampilkan
labelStatus.Text
= "Pada pukul " & nil & ":00, Kristof sedang "
Anda tidak mengevaluasi
properti Jam untuk menentukan status
menggunakan enumerasi AktifitasHari,
tetapi Anda akan melakukannya nanti.
Menentukan Status
Pada latihan ini, Anda
akan menentukan statusketipa properti Jam
ditetapkan. Anda mengambil jam yang dihasilkan oleh kontrol DateTimePicker dan menggunakannya untuk
menentukan nilai mana pada enumerasi yang cocok dengannya.
LATIHAN
|
Menentukan Status
|
Latihan ini
mendemonstrasikan hal ini dan menampilkan nilai itu pada form Anda.
1.
Buka editor kode untuk Form1 dan modifikasi properti Jam sebagai berikut:
'Properti
Jam
Private
Property Jam() As Integer
Get
'Menghasilkan jam sekarang yang
ditampilkan
Return dtpJam.Value.Hour
End Get
Set(ByVal nil As Integer)
'Menetapkan tanggal menggunakan jam
yang dilewatkan kepada properti ini
dtpJam.Value = New Date(Now.Year,
Now.Month, Now.Day, nil, 0, 0)
'Menentukan status
If nil >= 6 And nil < 7 Then
StatusSekarang =
AktifitasHari.BersiapPergiKerja
ElseIf nil >= 7 And nil < 8 Then
StatusSekarang =
AktifitasHari.BerangkatKerja
ElseIf nil >= 8 And nil < 13 Then
StatusSekarang = AktifitasHari.Bekerja
ElseIf nil >= 13 And nil < 14 Then
StatusSekarang = AktifitasHari.MakanSiang
ElseIf nil >= 14 And nil < 17 Then
StatusSekarang = AktifitasHari.Bekerja
ElseIf nil >= 17 And nil < 18
Then
StatusSekarang = AktifitasHari.BerangkatPulang
ElseIf nil >= 18 And nil < 22
Then
StatusSekarang =
AktifitasHari.BercengkeramaDenganTeman
ElseIf nil >= 22 And nil < 23
Then
StatusSekarang = AktifitasHari.BersiapTidur
Else
StatusSekarang = AktifitasHari.Tidur
End If
'Menetapkan teks yang ditampilkan
labelStatus.Text = "Pada pukul "
& nil & ":00, Kristof sedang " _
& StatusSekarang
End Set
End
Property
2.
Jalankan projek. Anda akan melihat
seperti ditunjukkan pada Gambar 3.8.
3. Berikut masih ada permasalahannya:
User tidak mengetahui apa itu 2. Tutup projek dan cari bagian kode di akhir
dari properti Jam:
'Menetapkan teks yang ditampilkan
labelStatus.Text = "Pada pukul "
& nil & ":00, Kristof sedang " _
& StatusSekarang
End
Set
4. Ubah baris terakhir sehingga menjadi
seperti ini:
'Menetapkan teks yang ditampilkan
labelStatus.Text = "Pada pukul "
& nil & ":00, Kristof sedang " _
& StatusSekarang.ToString()
End
Set
5.
Jalankan projek. Anda akan melihat
seperti ditunjukkan pada Gambar 3.9.
Penjelasan
Ketika Anda mengetik kode
pada contoh ini, Anda dapat memerhatikan bahwa kapanpun Anda mencoba untuk
menetapkan nilai pada StatusSekarang,
Anda akan disajikan sejumlah daftar enumerasi yang mungkin, seperti ditunjukkan
pada Gambar 3.10.
Visual Studio mengetahui bahwa StatusSekarang adalah bertipe AktifitasHari. Ia juga mengetahui bahwa AktifitasHari adalah sebuah enumerasi dan bahwa ia mendefinisikan delapan kemungkinan nilai, masing-masing ditampilkan pada kotak pop-up IntelliSense. Dengan mengklik salah satu item pada daftar enumerasi tersebut, sebuah ToolTip akan ditampilkan dengan nilai aktual dari item tersebut; sebagai contoh, pengklikan AktifitasHarian.BercengkeramaDenganTeman akan menampilkan sebuah ToolTip dengan nilai 6.
Secara fundamental,
karena AktifitasHarian didasarkan
pada integer, StatusSekarang juga
bernilai integer. Inilah mengapa, pertama kali Anda menjalankan projek dengan
kode penentuan status, Anda melihat sebuah integer di akhir string status. Pada
7:00 a.m, Anda mengetahui bahwa Kristof sedang berangkat kerja, atau StatusSekarang sama dengan AktifitasHari.BerangkatKerja. Anda mendefinisikan
ini sebagai 2, yang ditampilkan di akhir string.
Menetapkan Nilai Tak Valid
Salah satu keterbatasan
atau kekurangan enumerasi adalah bahwa dimungkinkan untuk menyimpan sebuah
nilai yang secara teknis bukan merupakan salah satu nilai terdefinisi yang
mungkin dari enumerasi. Sebagai contoh, Anda dapat mengubah properti Jam sehingga daripada menetapkan StatusSekarang menjadi Tidur, Anda dapat menetapkannya menjadi
999:
ElseIf nil >= 22 And nil < 23 Then
StatusSekarang
= AktifitasHari.BersiapTidur
Else
StatusSekarang
= 999
End If
Jika Anda membangun
projek, Anda akan memerhatikan bahwa Visual Basic tidak memandang ini sebagai
error jika opsi Option Strict dimatikan. Ketika Anda
menjalankan projek, Anda akan melihat bahwa nilai untuk StatusSekarang ditampilkan pada form sebagai 999.
Jadi, Anda dapat
menetapkan sebuah variabel yang mereferensi suatu enumerasi menjadi sebuah
nilai yang tidak didefinisikan pada enumerasi dan aplikasi dapat tetap
dijalankan (sepanjang nilai tersebut bertipe data sama dengan enumerasi).
MEMAHAMI KONSTANTA
Salah satu teknik
pemrograman yang baik adalah kesadaran akan konstanta. Bayangkan Anda memiliki
dua metode berikut, masing-masing melakukan sesuatu pada file tertentu:
Public
Sub LakukanSesuatu()
‘Apa nama file?
Dim strNamaFile As String =
"c:\Temp\Demo.txt"
‘Membuka file
…
End
Sub
Public
Sub LakukanYangLain()
‘Apa nama file?
Dim strNamaFile As String =
"c:\Temp\Demo.txt"
‘Lakukan sesuatu lain pada file
…
End
Sub
Menggunakan Konstanta
Kode yang mendefinisikan
sebuah literal string memberikan nama file dua kali. Ini merupakan praktek
pemrograman yang buruk, karena kedua metode dimaksudkan untuk mengakses file
yang sama, dan jika nama file itu berubah, perubahan ini harus dilakukan di dua
tempat yang terpisah.
Pada contoh ini, kedua
metode berada di sisi satu sama lain dan program itu sendiri berukuran kecil.
Namun, bayangkan jika Anda memiliki sebuah program berukuran panjang dimana di
dalamnya sebuah literal string terpisah yang menunjuk ke file didefinisikan di
10, 50, atau bahkan 1000 tempat. Jika Anda perlu mengubah nama file, Anda akan
mengubahnya di banyak tempat itu. Ini merupakan masalah serius dalam
pengembangan piranti lunak.
Apa yang Anda perlu lakukan
adalah mendefinisikan nama file secara global dan kemudian menggunakan simbol
global untuk nama file pada kode, daripada menggunakan literal string. Inilah
yang dikenal dengan konstanta. Konstanta adalah sejenis variabel spesial yang
tidak dapat diubah ketika program dijalankan.
LATIHAN
|
Menggunakan Konstanta
|
Pada latihan ini, Anda
akan belajar menggunakan konstanta.
1. Ciptakanlah sebuah aplikasi Windows Forms pada Visual Studio dengan nama Demo Konstanta.
2. Ketika mode Design ditampilkan,
tambahkan tiga kontrol Button.
Tetapkan properti Name dari tombol
pertama menjadi tombolSatu, tombol
kedua menjadi tombolDua, dan tombol
ketiga menjadi tombolTiga. Ubah
program Text dari tiap tombol
menjadi Satu, Dua, dan Tiga. Tata
kontrol-kontrol pada form Anda sehingga tampak seperti pada Gambar 3.11.
3. Lihat editor kode untuk form ini
dengan mengklik kanan pada form dan memilih View Code dari menu
konteks. Di atas dari definisi kelas, tambahkan kode yang ditebalkan berikut:
Public
Class Form1
'Konstanta
nama file
Private Const strNamaFile As String =
"C:\Temp\Halo.txt"
4. Klik ganda pada kontrol tombolSatu untuk menghasilkan event
handler Click untuk tombol tersebut
dan tambahkan kode yang ditebalkan:
Private
Sub tombolSatu_Click(sender As Object, e As EventArgs) Handles tombolSatu.Click
'Menggunakan sebuah konstanta
MessageBox.Show("1: " &
strNamaFile, "Demo Konstanta")
End
Sub
5. Klik ganda pada kontrol tombolDua untuk menghasilkan event
handler Click untuk tombol tersebut
dan tambahkan kode yang ditebalkan:
Private
Sub tombolDua_Click(sender As Object, e As EventArgs) Handles tombolDua.Click
'Menggunakan konstanta lagi
MessageBox.Show("2: " &
strNamaFile, "Demo Konstanta")
End
Sub
6. Klik ganda pada kontrol tombolTiga untuk menghasilkan event
handler Click untuk tombol tersebut
dan tambahkan kode yang ditebalkan:
Private
Sub tombolTiga_Click(sender As Object, e As EventArgs) Handles tombolTiga.Click
'Mendaur-ulang konstanta satu kali lagi
MessageBox.Show("3: " &
strNamaFile, "Demo Konstanta")
End
Sub
7. Simpan dan jalankan projek dan klik
tombol Satu. Anda akan melihat kotak pesan seperti ditunjukkan pada Gambar
3.12.
Sama halnya, Anda akan melihat nama
file yang sama ketika Anda mengklik tombol Dua dan Tiga.
Penjelasan
Contoh ini
mendemonstrasikan bahwa sebuah konstanta sebenarnya adalah sejenis nilai yang
tidak dapat diubah ketika program dijalankan. Konstanta didefinisikan sebagai
sebuah variabel, tetapi Anda menambahkan Const
pada definisi, yang mengindikasikan bahwa variabel tersebut adalah konstanta
dan tidak dapat diubah:
'Konstanta nama file
Private Const strNamaFile As String =
"C:\Temp\Halo.txt"
Anda akan memerhatikan
bahwa ia memiliki tipe data, sama seperti variabel biasa, dan Anda perlu
memberikannya nilai ketika ia didefinisikan.
Ketika Anda ingin
menggunakan konstanta itu, Anda mengaksesnya sama seperti ketika Anda mengakses
variabel biasa:
Private Sub
tombolSatu_Click(sender As Object, e As EventArgs) Handles tombolSatu.Click
'Menggunakan
sebuah konstanta
MessageBox.Show("1:
" & strNamaFile, "Demo Konstanta")
End Sub
Tipe Konstanta Berbeda
Anda telah melihat
bagaimana menggunakan konstanta string, tetapi pada bagian ini, Anda dapat
menggunakan tipe variabel lain sebagai konstanta. Pada dasarnya, sebuah
konstanta harus tidak bisa diubah, jadi Anda tidak menyimpan sebuah tipe data
objek di dalam sebuah konstanta.
Integer adalah tipe
konstanta yang sering dijumpai. Ia dapat didefinisikan seperti ini:
Public
Const intJamTidurPerHari As Integer = 8
Selain itu, Anda akan
sering menjumpai konstanta yang digunakan dengan enumerasi seperti ini:
Public Const
intKristofStatus As AktifitasHari = AktifitasHari.Bekerja
STRUKTUR
Aplikasi umumnya perlu
menyimpan beberapa potong informasi dengan sejumlah tipe data berbeda yang
semuanya berkaitan satu sama lain dan perlu disimpan dalam satu grup, seperti
nama dan alamat konsumen (string) dan saldo (nilai). Umumnya, sebuah objek
kelas dipakai untuk memuat grup variabel semacam itu. Tetapi, untuk melakukan
hal yang sama, Anda bisa menggunakan struktur.
Membangun Struktur
Struktur mirip dengan
objek kelas, tetapi lebih sederhana. Ketika Anda merancang aplikasi, Anda perlu
memutuskan apakah struktur atau kelas yang diperlukan. Jika Anda memerlukan
banyak metode untuk dipakai, maka sebaiknya Anda menggunanakan kelas. Jika
tidak, sebaiknya Anda menggunakan struktur.
LATIHAN
|
Membangun Struktur
|
Amati bagaimana Anda
dapat membangun sebuah struktur.
1. Ciptakan sebuah aplikasi Windows Forms pada Visual Studio dengan nama Demo Struktur.
2. Ketika mode Design ditampilkan,
tambahkan empat kontrol Label, empat
kontrol TextBox, dan sebuah kontrol Button. Tata kontrol-kontrol Anda
sehingga tampak seperti pada Gambar 3.13.
GAMBAR
3.13
3.
Tetapkan properti Name sebagai berikut:
Tetapkan
Label1 menjadi labelNama.
Tetapkan
TextBox1 menjadi teksNama.
Tetapkan
Label2 menjadi labelNamaDepan.
Tetapkan
TextBox2 menjadi teksNamaDepan.
Tetapkan
Label3 menjadi LabelNamaBelakang.
Tetapkan
TextBox3 menjadi teksNamaBelakang.
Tetapkan
Label4 menjadi labelEmail.
Tetapkan
TextBox4 menjadi teksEmail.
Tetapkan
Button1 menjadi tombolDaftarKonsumen.
4.
Tetapkan properti Text dari kontrol-kontrol berikut:
- Tetapkan labelNama menjadi Nama.
- Tetapkan labelNamaDepan menjadi Nama Depan.
- Tetapkan labelNamaBelakang menjadi Nama Belakang.
- Tetapkan labelEmail menjadi Email.
- Tetapkan tombolDaftarKonsumen menjadi Daftar Konsumen.
5. Klik kanan pada nama projek pada
jendela Solution Explorer, pilih Add dan kemudian New Item dari menu konteks, dan kemudian
pilih item submenu Class. Masukkan
nama bidang Konsumen dan kemudian
klik tombol Add.
6. Ketika editor kode ditampilkan, ganti kode yang ada
dengan kode berikut:
Public Structure Konsumen
'Anggota publik
Public NamaDepan As String
Public NamaBelakang As String
Public Email As String
End Structure
7.
Lihat editor kode untuk form dan
tambahkan prosedur ini:
Public
Class Form1
Public Sub TampilkanKonsumen(ByVal konsumen
As Konsumen)
'Menampilkan detil konsumen pada form
teksNamaDepan.Text = konsumen.NamaDepan
teksNamaBelakang.Text =
konsumen.NamaBelakang
teksEmail.Text = konsumen.Email
End Sub
8. Pilih kontrol tombolDaftarKonsumen, dan klik ganda pada kontrol tersebut.
Tambahkan kode yang ditebalkan pada event handler Click:
Private
Sub tombolDaftarKonsumen_Click(sender As Object, e As EventArgs)
Handles
tombolDaftarKonsumen.Click
'Menciptakan konsumen baru
Dim objKonsumen As Konsumen
objKonsumen.NamaDepan = "John"
objKonsumen.NamaBelakang =
"Kristof"
objKonsumen.Email =
"jKristof@gmail.com"
'Menampilkan konsumen
TampilkanKonsumen(objKonsumen)
End
Sub
9. Simpan dan jalankan projek Anda.
Ketika form ditampilkan, klik pada tombol Daftar
Konsumen dan Anda akan melihat hasil
seperti ditunjukkan pada Gambar 3.14.
GAMBAR
3.14
Penjelasan
Pada contoh ini, Anda
mendefinisikan sebuah struktur menggunakan statemen Structure.End Structure.
Di dalam blok ini, variabel-variabel yang membangun struktur dideklarasikan
berdasarkan nama dan tipe datanya: Variabel-variabel ini dinamakan dengan
anggota-anggota struktur:
Public Structure Konsumen
'Anggota publik
Public NamaDepan As String
Public NamaBelakang As String
Public Email As String
End Structure
Perhatikan katakunci Public di depan tiap deklarasi
variabel, dan juga di depan statemen Structure.
Anda telah sering melihat Private
dipakai pada posisi yang sama. Katakunci Public
berarti bahwa Anda dapat mengakses anggota struktur (seperti NamaDepan) dari luar struktur.
Pada prosedur tombolDaftarKonsumen_Click, Anda
mendefinisikan sebuah variabel dengan tipe Konsumen
menggunakan statemen Dim. (Jika Konsumen adalah sebuah kelas, Anda akan
perlu menginisialisasi variabel dengan menetapkan objKonsumen sama dengan New
Konsumen).
Private Sub
tombolDaftarKonsumen_Click(sender As Object, e As EventArgs)
Handles
tombolDaftarKonsumen.Click
'Menciptakan konsumen baru
Dim
objKonsumen As Konsumen
Kemudian Anda dapat
mengakses tiap variabel anggota yang ada di dalam struktur Konsumen dengan memberikan nama dari variabel struktur, yang
diikuti dengan dot, dan diikuti dengan nama anggota:
objKonsumen.NamaDepan
= "John"
objKonsumen.NamaBelakang
= "Kristof"
objKonsumen.Email
= "jKristof@gmail.com"
'Menampilkan
konsumen
TampilkanKonsumen(objKonsumen)
Metode TampilkanKonsumen menerima sebuah
struktur Konsumen sebagai parameter masukannya dan kemudian mengakses
anggota-anggota struktur untuk menetapkan properti Text dari tiap kotak teks pada form:
Public Sub
TampilkanKonsumen(ByVal konsumen As Konsumen)
'Menampilkan
detil konsumen pada form
teksNamaDepan.Text
= konsumen.NamaDepan
teksNamaBelakang.Text
= konsumen.NamaBelakang
teksEmail.Text
= konsumen.Email
End Sub
Menambah Properti Pada Struktur
Ketika Anda perlu
menyimpan informasi dasar, Anda dapat menambahkan properti-properti pada sebuah
struktur seperti ketika Anda melakukannya pada projek Demo Enum sebelumnya.
Anda belajar bagaimana ini dilakukan pada latihan berikut.
LATIHAN
|
Menambahkan Properti Nama
|
Pada latihan ini, Anda
akan menambahkan sebuah properti Nama
yang dideklarasikan ReadOnly.
1. Buka editor kode untuk Konsumen dan
tambahkan kode yang ditebalkan berikut untuk menciptakan sebuah properti
read-only Nama:
'Anggota
publik
Public
NamaDepan As String
Public
NamaBelakang As String
Public
Email As String
'Properti Nama
Public ReadOnly Property
Nama() As String
Get
Return NamaDepan & " "
& NamaBelakang
End Get
End Property
2. Buka editor kode untuk Form1. Modifikasi metode TampilkanKonsumen dengan kode yang
ditebalkan berikut:
Public Sub
TampilkanKonsumen(ByVal konsumen As Konsumen)
'Menampilkan detil konsumen pada form
teksNama.Text = konsumen.Nama
teksNamaDepan.Text = konsumen.NamaDepan
teksNamaBelakang.Text =
konsumen.NamaBelakang
teksEmail.Text = konsumen.Email
End Sub
3. Jalankan projek dan klik pada tombol
Daftar Konsumen. Anda akan melihat kotak teks Nama, yang sebelumnya kosong pada Gambar 3.14, sekarang diisi
dengan nama depan dan nama belakang dari konsumen.
Penjelasan
Pertama-tama, Anda
menciptakan properti dan menandainya dengan ReadOnly sehingga ia tidak bisa diubah:
'Properti Nama
Public ReadOnly
Property Nama() As String
Get
Return NamaDepan & " " &
NamaBelakang
End
Get
End Property
Selanjutnya, Anda
menggunakan properti baru tersebut untuk mengisi kotak teks untuk Nama.
teksNama.Text = konsumen.Nama
BEKERJA DENGAN ARRAYLIST
Dimisalkan bahwa Anda
ingin menyimpan beberapa struktur Konsumen. Anda dapat menggunakan array,
tetapi pada banyak kasus array tidak mudah untuk digunakan.
- Jika Anda perlu menambahkan sebuah Konsumen baru pada array, maka Anda perlu mengubah ukuran array dan menyisipkan item baru tersebut ke posisi terakhir di dalam array.
- Jika Anda ingin menghapus sebuah Konsumen dari array, Anda perlu mencari tiap item di dalam array secara bergiliran. Ketika Anda menemukan yang Anda cari, Anda perlu menciptakan versi lain dari array dengan satu elemen lebih kecil dari array semula dan menyalin setiap elemen kecuali elemen yang ingin Anda hapus.
- Jika Anda ingin mengganti sebuah Konsumen di dalam array dengan konsumen lain, maka Anda perlu melihat setiap item secara bergiliran sampai Anda menemukan elemen yang ingin Anda ganti secara manual.
.
ArrayList menawarkan cara untuk menciptakan array yang dapat dengan
mudah dimanipulasi.
Menggunakan ArrayList
ArrayList dapat dipakai untuk menyimpan sekumpulan objek yang
berukuran dinamis. Anda dapat menambah dan menghapus item-item pada lokasi
manapun. Ketika Anda tidak yakin berapa banyak item yang akan dimuat koleksi
Anda, ArrayList merupakan opsi
terbaik. Lihat bagaimana menggunakan ArrayList
pada latihan berikut.
LATIHAN
|
Menggunakan ArrayList
|
Pada latihan ini, Anda
melihat bagaimana menggunakan sebuah ArrayList.
1. Kembali ke projek Demo Struktur. Buat form lebih besar, pindahkan kontrol-kontrol yang ada
ke bawah, dan kemudian tambahkan sebuah kontrol ListBox seperti ditunjukkan pada Gambar 3.15. Tetapkan properti Name dari kotak list menjadi listKonsumen dan properti IntegralHeight menjadi False.
2. Buka editor kode untuk Form1 dan tambahkan kode yang
ditebalkan di sini di atas definisi kelas:
Public
Class Form1
'Anggota level form
Private objKonsumen As New ArrayList
3. Tambahkan metode ini pada Form1 untuk menciptakan sebuah konsumen
baru:
Public Sub
CiptakanKonsumen(ByVal namaDepan As String,
ByVal namaBelakang As String, ByVal email As
String)
'Mendefinisikan sebuah objek Konsumen
Dim objKonsumenBaru As Konsumen
'Menciptakan konsumen baru
objKonsumenBaru.NamaDepan = namaDepan
objKonsumenBaru.NamaBelakang = namaBelakang
objKonsumenBaru.Email = email
'Menambahkan konsumen baru pada list
objKonsumen.Add(objKonsumenBaru)
'Menambahkan konsumen barupada kontrol
ListBox
listKonsumen.Items.Add(objKonsumenBaru)
End Sub
4.
Modifikasi metode tombolDaftarKonsumen, dengan
perubahan-perubahan berikut:
Private Sub
tombolDaftarKonsumen_Click(sender As Object, e As EventArgs)
Handles
tombolDaftarKonsumen.Click
'Menciptakan
beberapa konsumen
CiptakanKonsumen("John", "Kristof",
"jKristof@gmail.com")
CiptakanKonsumen("Vivian", "Siahaan",
"vSiahaan@yahoo.com")
CiptakanKonsumen("Rico", "Chandra",
"rChandra@yahoo.co.uk")
End Sub
5. Jalankan projek dan klik tombol Daftar Konsumen. Anda akan melihat hasil seperti ditunjukkan pada Gambar
3.16.
GAMBAR
3.16
Penjelasan
Anda menambahkan beberapa
struktur Konsumen pada list, tetapi ia ditampilkan sebagai Demo_Struktur.Konsumen; ini merupakan nama lengkap dari struktur.
Kontrol ListBox menerima nilai-nilai
string, jadi dengan menetapkan bahwa Anda ingin menambahkan struktur Konsumen pada kotak list, Visual Basic
memanggil metode ToString dari
struktur Konsumen. Secara default,
metode ToString untuk sebuah
struktur menghasilkan nama struktur, bukan isi dari struktur. Oleh karena itu,
Anda perlu memodifikasi struktur Konsumen
agar yang ditampilkan sesuatu yang ingin Anda lihat.
LATIHAN
|
Mendefinisikan Ulang Metode ToString
|
Pada latihan ini, Anda
perlu memodifikasi struktur Konsumen.
1. Kembali ke projek Demo Struktur dan buka editor kode untuk Konsumen dan tambahkan metode
berikut pada struktur, pastikan bahwa ia ditempatkan di bawah
deklarasi-deklarasi anggota. Untuk menyisipkan sebuah komentar dokumen XML,
Anda memerlukan tiga tanda kutip di atas nama metode:
'"
<summary>
'" Mendefinisikan ulang metode
ToString default
'" </summary>
'"
<returns>String</returns>
'" <remarks>Menghasilkan nama
konsumen dan alamat email
Public Overrides Function ToString() As
String
Return Nama & " (" &
Email & ")"
End Function
End
Structure
2. Jalankan projek dan klik pada tombol
Daftar Konsumen. Anda akan melihat hasil seperti ditunjukkan pada Gambar
3.17.
GAMBAR
3.17
Penjelasan
Kapanpun sebuah struktur
Konsumen ditambahkan pada list, kotak list akan memanggil metode ToString pada struktur tersebut untuk
mendapatkan suatu representasi string dari struktur itu. Dengan kode ini, Anda
mendefinisikan ulang fungsionalitas default dari metode ToString sehingga Anda tidak mendapatkan nama struktur tetapi
representasi dari nama dan alamat email dari struktur.
'"
<summary>
'"
Mendefinisikan ulang metode ToString default
'"
</summary>
'"
<returns>String</returns>
'"
<remarks>Menghasilkan nama konsumen dan alamat email
Public
Overrides Function ToString() As String
Return Nama & " (" & Email
& ")"
End Function
Sebuah ArrayList dapat dipakai untuk menyimpan
sejumlah objek/struktur dengan tipe apapun. Pada dasarnya, Anda dapat mencampur
tipe-tipe di dalam sebuah ArrayList.
Pada contoh ini, Anda menciptakan sebuah metode dengan nama CiptakanKonsumen yang menginisialisasi
sebuah struktur Konsumen baru
didasarkan parameter-parameter yang dilewatkan:
Public
Sub CiptakanKonsumen(ByVal namaDepan As String,
ByVal namaBelakang As String, ByVal email As
String)
'Mendefinisikan sebuah objek Konsumen
Dim objKonsumenBaru As Konsumen
'Menciptakan konsumen baru
objKonsumenBaru.NamaDepan = namaDepan
objKonsumenBaru.NamaBelakang = namaBelakang
objKonsumenBaru.Email = email
Setelah struktur
diinisialisasi, Anda menambahkannya pada ArrayList
yang disimpan di dalam objKonsumen:
'Menambahkan
konsumen baru pada list
objKonsumen.Add(objKonsumenBaru)
Anda juga menambahkannya
pada kotak list, seperti ini:
'Menambahkan
konsumen barupada kontrol ListBox
listKonsumen.Items.Add(objKonsumenBaru)
Dengan CiptakanKonsumen didefinisikan, Anda
dapat memanggilnya untuk menambahkan anggota-anggota baru pada ArrayList dan pada kontrol ListBox ketika user mengklik tombol Daftarkan Konsumen:
Private Sub
tombolDaftarKonsumen_Click(sender As Object, e As EventArgs)
Handles tombolDaftarKonsumen.Click
'Menciptakan beberapa konsumen
CiptakanKonsumen("John",
"Kristof",
"jKristof@gmail.com")
CiptakanKonsumen("Vivian",
"Siahaan",
"vSiahaan@yahoo.com")
CiptakanKonsumen("Rico",
"Chandra",
"rChandra@yahoo.co.uk")
End Sub
Menghapus Dari ArrayList
Sekarang Anda telah
mengetahui prinsip di balik sebuah ArrayList.
Anda menggunakannya untuk melakukan sesuatu yang secara tradisional sangat
sulit dilakukan tetapi hal itu dapat dengan mudah dilakukan dengan ArrayList.
LATIHAN
|
Menghapus Dari ArrayList
|
Pada latihan ini, Anda
akan ditunjukkan bagaimana penghapusan item dari sebuah ArrayList dapat dengan mudah dilakukan.
1. Kembali ke editor kode pada projek Demo Struktur dan tambahkan properti KonsumenTerseleksi pada form sebagai berikut:
Public ReadOnly Property
KonsumenTerseleksi() As Konsumen
Get
If listKonsumen.SelectedIndex <>
-1 Then
'Menghasilkan konsumen terseleksi
Return
CType(objKonsumen(listKonsumen.SelectedIndex), Konsumen)
End If
End Get
End Property
2. Sekarang tukar ke mode Design dan
tambahkan sebuah kontrol Button di
bawah form dan tetapkan properti Name
menjadi tombolHapusKonsumen dan
properti Text menjadi Hapus Konsumen.
3.
Klik ganda pada tombol tersebut dan
tambahkan kode yang ditebalkan berikut:
Private
Sub tombolHapusKonsumen_Click(sender As Object, e As EventArgs)
Handles
tombolHapusKonsumen.Click
'Jika tidak ada konsumen yang diseleksi
pada ListBox
If listKonsumen.SelectedIndex = -1 Then
'Menampilkan sebuah pesan
MessageBox.Show("Anda harus
memilih sebuah konsumen untuk dihapus.",
"Demo Struktur")
'Keluar dari metode ini
Exit Sub
End If
'Meminta user untuk menghapus konsumen
terseleksi
If MessageBox.Show("Anda yakin ingin
menghapus " &
KonsumenTerseleksi.Nama &
"?", "Demo Struktur",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question) =
DialogResult.Yes Then
'Membaca konsumen yang akan dihapus
Dim objKonsumenHapus As Konsumen =
KonsumenTerseleksi
'Menghapus konsumen dari ArrayList
objKonsumen.Remove(objKonsumenHapus)
'Menghapus konsumen dari ListBox
listKonsumen.Items.Remove(objKonsumenHapus)
End If
End
Sub
4. Jalankan projek dan klik tombol Daftar Konsumen.
5. Sekarang pilih sebuah konsumen dan
klik tombol Hapus Konsumen. Anda akan melihat sebuah
kotak konfirmasi yang ditunjukkan seperti pada Gambar 3.18.
GAMBAR
3.18
6.
Klik Yes, dan konsumen yang diseleksi akan dihapus.
Penjelasan
Triknya di sini adalah
membangun sebuah properti read-only yang menghasilkan struktur Konsumen yang diseleksi pada kotak
list. Properti SelectedIndex dari
kotak list menghasilkan sebuah nilai -1 jika tidak ada seleksi yang dilakukan.
Sebaliknya, ia menghasilkan indeks berbasis nol. Karena koleksi Items dari
kotak list memuat sebuah koleksi yang memuat tipe-tipe data Object, Anda perlu mengkonversi objek
yang dihasilkan menjadi objek Konsumen,
yang Anda lakukan menggunakan fungsi CType:
Public
ReadOnly Property KonsumenTerseleksi() As Konsumen
Get
If listKonsumen.SelectedIndex <>
-1 Then
'Menghasilkan konsumen terseleksi
Return
CType(objKonsumen(listKonsumen.SelectedIndex), Konsumen)
End If
End Get
End Property
Karena tidak ada statemen
Else untuk If, Anda akan melihat peringatan tantang lintasan kode tanpa-hasil.
Anda perlu hati-hati ketika menuliskan kode semacam ini. Untuk memperbaikinya,
Anda dapat menambahkan statemen Else
untuk situasi ini.
Sama seperti properti Nama yang Anda tambahkan pada struktur
Konsumen, properti ini diidentifikasi sebagai read-only dengan katakunci ReadOnly. Ia memuat sebuah blok Get, tanpa blok Set. Alasan membuatnay read-only adalah bahwa ia mengkonstruksi
nilai yang dihasilkan dari informasi lain (isi dari struktur Konsumen di dalam list).
Di dalam event handle Click untuk tombol Hapus Konsumen, Anda
lebih dahulu menguji untuk melihat apakah sebuah konsumen telah diseleksi pada
kotak list atau tidak. Jika tidak ada konsumen yang diseleksi, maka Anda
menampilkan sebuah kotak pesan yang mengindikasikan bahwa sebuah konsumen perlu
diseleksi. Kemudian, Anda keluar dari metode, dan mengijinkan user untuk
memilih sebuah konsumen dan mencoba kembali:
'Jika
tidak ada konsumen yang diseleksi pada ListBox
If
listKonsumen.SelectedIndex = -1 Then
'Menampilkan sebuah pesan
MessageBox.Show("Anda harus memilih
sebuah konsumen untuk dihapus.",
"Demo Struktur")
'Keluar dari metode ini
Exit Sub
End
If
Jika sebuah konsumen
telah diseleksi, Anda meminta user untuk mengkonfirmasi penghapusan:
'Meminta
user untuk menghapus konsumen terseleksi
If
MessageBox.Show("Anda yakin ingin menghapus " &
KonsumenTerseleksi.Nama &
"?", "Demo Struktur",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question) = DialogResult.Yes
Then
Jika user benar-benar
ingin menghapus konsumen, Anda akan mendapatkan sebuah nilai balik dari MessageBox.Show berupa DialogResult.Yes. Kemudian Anda
mendeklarasikan sebuah struktur Konsumen
untuk menyimpan konsumen yang akan dihapus dan mengisi struktur itu dengan
konsumen terseleksi:
'Membaca
konsumen yang akan dihapus
Dim
objKonsumenHapus As Konsumen = KonsumenTerseleksi
Metode Remove dari ArrayList kemudian dapat dipakai untuk menghapus konsumen
terseleksi:
'Menghapus
konsumen dari ArrayList
objKonsumen.Remove(objKonsumenHapus)
Anda juga dapat
menggunakan teknik yang sama untuk menghapus konsumen dari kotak list:
'Menghapus
konsumen dari ListBox
listKonsumen.Items.Remove(objKonsumenHapus)
Menampilkan Item-Item Di Dalam ArrayList
Untuk keutuhan, Anda akan
menambahkan satu lagi fungsionalitas untuk meningkatkan kemampuan antarmuka
dari aplikasi Anda.
LATIHAN
|
Menampilkan Detil Dari Item Terseleksi
|
Pada latihan ini, Anda
menambahkan kode pada event SelectedIndexChanged
untuk kotak list konsumen. Setiap kali konsumen baru diseleksi, detil konsumen
akan ditampilkan pada kotak-kotak teks pada form.
1. Kembali ke mode Design pada projek Demo Struktur dan klik ganda pada kotak list. Ini akan menciptakan
sebuah event handler SelectedIndexChanged.
Tambahkan kode yang ditebalkan:
Private
Sub listKonsumen_SelectedIndexChanged(sender As Object, e As EventArgs)
Handles listKonsumen.SelectedIndexChanged
'Menampilkan
detil konsumen
TampilkanKonsumen(KonsumenTerseleksi)
End
Sub
2. Jalankan projek dan klik tombol Daftar Konsumen untuk mengisi kotak list. Sekarang ketika Anda memilih
sebuah konsumen pada kotak list, informasi konsumen akan ditampilkan pada
bidang-bidang di bawah form, seperti ditunjukkan pada Gambar 3.19.
GAMBAR
3.19
Penjelasan
Pada contoh ini, Anda
mengaitkan event SelectedIndexChanged
pada konsumen yang terseleksi sehingga informasinya ditampilkan ketika event
dipicu.
'Menampilkan
detil konsumen
TampilkanKonsumen(KonsumenTerseleksi)
BEKERJA DENGAN KOLEKSI
ArrayList adalah sejenis koleksi, yang digunakan oleh .NET Framework
secara ekstensif. Koleksi adalah cara mudah dalam menciptakan grup yang memuat
item-item berelasi. Jika Anda kembali ke kode Demo Struktur dan
melihat metode CiptakanKonsumen,
Anda akan memerhatikan bahwa penambahan item-item pada ArrayList dan pada kotak list, Anda menggunakan sebuah metode
dengan nama Add:
'Menambahkan konsumen baru pada list
objKonsumen.Add(objKonsumenBaru)
'Menambahkan konsumen barupada kontrol ListBox
listKonsumen.Items.Add(objKonsumenBaru)
Kode yang menghapus
sebuah konsumen menggunakan suatu metode dengan nama Remove:
'Menghapus konsumen dari ArrayList
objKonsumen.Remove(objKonsumenHapus)
'Menghapus konsumen dari ListBox
listKonsumen.Items.Remove(objKonsumenHapus)
Microsoft sangat ingin
melihat para developer menggunakan paradigma koleksi kapanpun mereke bekerja
menggunakan list item. Ini lah mengapa Anda menggunakan Add untuk menambah sebuah item dan Remove untuk menghapus sebuah item, meskipun Anda menggunakan objek
System.Collections.ArrayList pada
satu kasus dan objek System.Windows.Forms.ListBox.
ObjectCollection pada kasus lain. Microsoft sangat hati-hati dalam
menangani fitur ini ketika membangun .NET Framework.
Konsistensi adalah hal
yang baik. Hal itu memampukan para pengembang untuk memetakan pemahaman akan
suatu hal dan menggunakan pemahaman yang sama itu pada sesutu yang sama. Ketika
merancang struktur data untuk digunakan dalam aplikasi Anda, Anda sebaiknya melakukan
langkah-langkah yang dianjurkan Microsoft. Sebagai contoh, jika Anda memiliki
sebuah kelas koleksi dan ingin menciptakan sebuah metode yang menghapus sebuah
item, Anda sebaiknya menamainya dengan Remove,
bukan Delete.
Para pengembang yang
menggunakan kelas Anda akan memiliki pemahaman intuisi tentang apa yang
dilakukan oleh Remove karena mereka familiar dengan istilah itu.
Salah satu permasalahan
pada penggunaan ArrayList adalah
bahwa pengembang piranti lunak yang memiliki list tidak dapat menjamin bahwa
setiap item di dalam list memiliki tipe data yang sama. Karena alasan ini,
setiap kali sebuah item diekstraksi dari ArrayList,
tipe data selalu diperiksa untuk menghindari error.
Solusinya adalah
menciptakan koleksi dengan aturan tipe data ketat, yang hanya memuat
elemen-elemen dengan tipe data tertentu. Koleksi dengan aturan tipe data ketat
sangat mudah diciptakan. Sesuai dengan praktek pemrograman .NET yang
didefinisikan oleh Microsoft, cara terbaik untuk menciptakannya adalah dengan
menderivasi sebuah kelas baru dari System.Collections.
CollectionBase dan menambahkan dua metode (Add dan Remove) dan satu
properti (Item):
ü Add
menambahkan sebuah item baru pada koleksi.
ü Remove
menghapus sebuah item dari koleksi.
ü Item
menghasilkan item pada indeks tertentu di dalam koleksi.
Menciptakan KonsumenKoleksi
Kadangkala, Anda perlu
menyimpan banyak struktur. Anda dapat melakukannya menggunakan sebuah koleksi.
LATIHAN
|
Menciptakan KonsumenKoleksi
|
Pada latihan ini, Anda
menciptakan sebuah KonsumenKoleksi
yang dirancang untuk memuat sebuah koleksi yang memuat struktur-struktur Konsumen.
1. Kembali ke projek Demo Struktur dan pada jendela Solution
Explorer, klik kanan pada projek dan
pilih Add dari menu konteks dan
kemudian pilih item submenu Class.
Pada dialog tersebut, masukkan KonsumenKoleksi
pada bidang Name dan kemudian klik
tombol Add untuk memiliki kelas
tersebut pada projek Anda.
2. Tambahkan kode yang ditebalkan
berikut:
Public
Class KonsumenKoleksi
Inherits CollectionBase
End
Class
3. Anda perlu menambahkan sebuah metode
Add untuk menambahkan sebuah
konsumen pada koleksi. Tambahkan kode berikut:
'Menambahkan
sebuah konsumen pada koleksi
Public
Sub Add(ByVal konsumenBaru As Konsumen)
Me.List.Add(konsumenBaru)
End
Sub
4. Anda juga perlu menambahkan sebuah
metode Remove untuk menghapus sebuah
konsumen dari koleksi:
'Menghapus
sebuah konsumen dari koleksi
Public
Sub Remove(ByVal konsumenLama As Konsumen)
Me.List.Remove(konsumenLama)
End
Sub
5. Buka editor kode untuk form dan cari
definisi untuk anggota objKonsumen.
Ubah tipe datanya dari ArrayList
menjadi KonsumenKoleksi seperti yang ditebalkan berikut:
Public
Class Form1
'Anggota level form
Private objKonsumen As New KonsumenKoleksi
6. Terakhir, jalankan projek. Anda akan
memerhatikan bahwa aplikasi dapat dijalankan seperti semula.
Penjelasan
Sekarang, kelas KonsumenKoleksi Anda adalah kelas
pertama yang Anda ciptakan secara eksplisit (meskipun Anda telah menggunakannya
secara implisit dari awal). Kelas dan objek akan didiskusikan nanti pada bab
selanjutnya. Untuk sekarang, perhatikan bahwa, seperti struktur, sebuah kelas merepresentasikan
sebuah tipe data yang mengelompokkan satu atau lebih anggota dengan tipe-tipe
data yang bisa berbeda, dan kelas juga dapat memiliki properti-properti dan
metode-metode yang terkait dengannya. Tidak seperti struktur, kelas dapat
diderivasi dari kelas lain, dimana pada kasus itu, kelas tersebut mewarisi
anggota-anggota, properti-properti, dan metode-metode dari kelas lain (yang
dikenal pula dengan kelas basis). Kelas yang mewarisi juga dapat memiliki
anggota-anggota, properti-properti, dan metode-metode sendiri.
Kelas KonsumenKoleksi Anda mewarisi kelas System.Collections.CollectionBase, yang
memuat sebuah implementasi dasar atas sebuah koleksi yang dapat memuat
sembarang objek. Hal ini sama seperti ArrayList.
Tetapi keuntungan lain adalah bahwa Anda dapat menambahkan metode-metode
sendiri pada kelas ini.
Karena Anda menyediakan
sebuah versi dari metode Add yang
memiliki sebuah parameter dengan tipe data Konsumen,
ia hanya dapat menerima dan menambahkan sebuah struktur Konsumen. Oleh karena itu, adalah tidak mungkin untuk menempatkan
ke dalam koleksi yang bukan merupakan sebuah Konsumen. Anda dapat melihat bahwa IntelliSense memberitahu Anda
bahwa satu-satunya yang dapat Anda lewatkan kepada metode Add adalah struktur Demo_Struktur.Konsumen.
Secara internal, CollectionBase menyediakan sebuah
properti dengan nama List, yang
memiliki metode Add dan Remove yang dapat Anda gunakan:
'Menambahkan sebuah konsumen pada koleksi
Public Sub Add(ByVal konsumenBaru As Konsumen)
Me.List.Add(konsumenBaru)
End Sub
'Menghapus sebuah konsumen dari koleksi
Public Sub Remove(ByVal konsumenLama As Konsumen)
Me.List.Remove(konsumenLama)
End Sub
Pembuatan koleksi dengan
cara ini adalah praktek pemrograman yang direkomendasikan oleh .NET. Sebagai
pendatang baru pada pemrograman .NET, Anda mungkin tidak terlalu mengapresiasi
teknik ini, tetapi percayalah, bahwa hal ini akan berguna bagi Anda. Kapanpun
Anda perlu menggunakan sebuah koleksi yang memuat kelas-kelas, teknik ini
adalah cara yang benar untuk melakukannya.
Menambahkan Sebuah Propery Item
Pada awal bagian ini,
Anda membaca bahwa Anda akan menambahkan dua metode dan satu properti. Anda
telah melihat kedua metode itu, jadi sekarang saatnya Anda untuk menambahkan
properti.
LATIHAN
|
Menambahkan Properti Item
|
Pada latihan ini, Anda
akan menambahkan sebuah properti Item dan membuatnya sebagai properti default
dari kelas.
1. Kembali ke Visual Studio, buka
editor kode untuk kelas KonsumenKoleksi,
dan tambahkan kode ini:
'Properti
Item untuk membaca atau memperbarui sebuah konsumen
'pada
posisi tertentu di dalam list
Default
Public Property Item(ByVal indeks As Integer) As Konsumen
Get
Return CType(Me.List.Item(indeks), Konsumen)
End Get
Set(ByVal nil As Konsumen)
Me.List.Item(indeks) = nil
End Set
End
Property
2. Untuk memverifikasinya, buka editor
kode untuk Form1. Modifikasi
properti KonsumenTerseleksi dengan
kode ini:
Public
ReadOnly Property KonsumenTerseleksi() As Konsumen
Get
If listKonsumen.SelectedIndex <>
-1 Then
'Menghasilkan konsumen terseleksi
Return
objKonsumen(listKonsumen.SelectedIndex)
End If
End Get
End
Property
3. Terakhir, jalankan projek. Anda akan
memerhatikan bahwa aplikasi dapat dijalankan seperti semula.
Penjelasan
Properti Item sebenarnya sangat pentin; ia
memberikan kepada para pengembang akses langsung terhadap data yang disimpan di
dalam list tetapi tetap mempertahankan aturan tipe data ketat pada koleksi.
Jika Anda melihat kode
kembali untuk KonsumenTerseleksi,
Anda akan memerhatikan bahwa ketika Anda ingin menghasilkan item tertentu dari
dalam objKonsumen, Anda tidak perlu
menyediakan nama properti dari Item.
Tetapi, objKonsumen berperilaku
seperti layaknya sebuah array:
If
listKonsumen.SelectedIndex <> -1 Then
'Menghasilkan
konsumen terseleksi
Return
objKonsumen(listKonsumen.SelectedIndex)
End If
IntelliSense memberitahu
Anda untuk memasukkan indeks dari item yang Anda perlukan dan bahwa Anda akan
mendapatkan sebuah struktur Konsumen
sebagai nilai baliknya. Anda tidak perlu menetapkan nama properti dari Item karena Anda menandai properti
tersebut sebagai properti default menggunakan katakunci Default:
'Properti Item untuk membaca atau memperbarui sebuah
konsumen
'pada posisi tertentu di dalam list
Default Public Property Item(ByVal indeks As Integer) As
Konsumen
Get
Return CType(Me.List.Item(indeks), Konsumen)
End Get
Set(ByVal nil As Konsumen)
Me.List.Item(indeks) = nil
End Set
End Property
Sebuah kelas hanya dapat
memiliki satu properti default, dan bahwa properti tersebut harus mengambil
sebuah parameter tertentu. Parameter ini harus berupa indeks atau item yang
dicari. Yang digunakan di sini adalah parameter berupa indeks elemen di dalam
sebuah list koleksi. Anda dapat memiliki versi-versi terbebani dari properti
ini, sehingga Anda bisa menyediakan alamat email, menggantikan indeks.
Apa yang telah Anda capai
sampai titik ini adalah:
Cara
untuk menyimpan sejumlah struktur Konsumen
Cara
untuk menambah item baru pada koleksi
Cara
untuk menghapus item dari koleksi
Cara
untuk mengakses anggota-anggota di dalam koleksi seperti layaknya sebuah ArrayList
MEMBANGUN TABEL LOOKUP DENGAN HASHTABLE
Sejauh ini, kapanpun Anda
ingin mencari sesuatu di dalam sebuah array atau di dalam sebuah koleksi, Anda
perlu menyediakan sebuah indeks integer yang merepresentasikan posisi item.
Adalah wajar jika Anda memerlukan cara lain untuk mencari sebuah item di dalam
suatu koleksi selain menggunakan indeks. Sebagai contoh, Anda bisa saja ingin
mencari sebuah konsumen ketika Anda memiliki sebuah alamat email.
Pada bagian ini, Anda
akanmenggunakan Hashtable. Ini
merupakan koleksi spesial yang dipakai menggunakan prinsip kunci-nilai.
Menggunakan Hashtable
Hashtable adalah sebuah koleksi dimana di dalamnya setiap item
diberikan sebuah kunci. Kunci ini dapat dipakai di waktu lain untuk membuka
kunci dari nilai. Sebagai contoh, jika Anda menambahkan struktur Konsumen dari
Kristof ke dalam Hashtable, Anda
akan memberikannya sebuah kunci yang cocok dengan alamat emailnya jKristof@gmail.com.
Kapanpun Anda menambahkan
sebuah objek pada Hashtable, ia
memanggil sebuah metode dengan nama System.Object.GetHashCode,
yang menyediakan sebuah nilai integer unik untuk objek itu yang bernilai sama
setiap kali dipanggil, dan secara internal menggunakan ID integer ini sebagai
kunci. Sama halnya, kapanpun Anda ingin membaca sebuah objek dari Hashtable, ia memanggil metode GetHashCode pada objek itu untuk
mendapatkan sebuah kunci dan mencocokkan kunci itu terhadap kunci-kunci di
dalam list. Ketika ditemukan, ia menghasilkan nilai yang berkaitan.
Pencarian pada Hashtable
merupakan proses yang sangat cepat. Terlepas dari objek yang dilewatkan, Anda
hanya perlu melakukan pencocokan ID integer kecil. Sebuah ID integer hanya
memerlukan 4 byte memori. Jadi, jika Anda melewatkan sebuah string 100-karakter
(yaitu 200 byte), kode lookup hanya perlu membandingkan 4 byte.
LATIHAN
|
Menggunakan Hashtable
|
Anda akan belajar
menggunakan sebuah Hashtable pada
latihan ini.
1. Kembali ke Visual Studio dan buka
editor kode untuk kelas KonsumenKoleksi.
Tambahkan anggota yang ditebalkan berikut di bagian atas dari definisi kelas:
Public
Class KonsumenKoleksi
Inherits CollectionBase
'Anggota Private
Private objEmailHashtable As New Hashtable
2.
Tambahkan properti read-only berikut
pada kelas:
'Properti
EmailHashtable untuk menghasilkan the Email Hashtable
Public
ReadOnly Property EmailHashtable() As Hashtable
Get
Return objEmailHashtable
End Get
End
Property
3.
Sekarang, lakukan perubahan pada
metode Add:
'Menambahkan
sebuah konsumen pada koleksi
Public
Sub Add(ByVal konsumenBaru As Konsumen)
Me.List.Add(konsumenBaru)
'Menambahkan alamat email pada the Hashtable
EmailHashtable.Add(konsumenBaru.Email,
konsumenBaru)
End
Sub
4. Selanjutnya, tambahkan versi terbebani dari properti Item yang membolehkan Anda untuk
menemukan sebuah konsumen berdasarkan alamat email:
'Membebani properti Item untuk mencari
sebuah konsumen berdasarkan alamat email
Default Public ReadOnly Property Item(ByVal
email As String) As Konsumen
Get
Return
CType(EmailHashtable.Item(email), Konsumen)
End Get
End Property
5. Buka mode Design untuk Form1, ubah ukuran dari kontrol-kontrol
pada form Anda, dan tambahkan sebuah kontrol Button baru di samping kotak teks email seperti ditunjukkan pada
Gambar 3.20. Tetapkan properti Name
dari tombol menjadi tombolLookup dan
properti Text menjadi Lookup.
6. Klik ganda pada tombol Lookup dan tambahkan kode yang
ditebalkan berikut pada event handler Click-nya:
Private
Sub tombolLookup_Click(sender As Object, e As EventArgs) Handles
tombolLookup.Click
'Mendeklarasikan sebuah objek konsumen dan
menetapkannya
'menjadi konsumen dengan alamat email yang
akan ditemukan
Dim objKonsumenDitemukan As Konsumen =
objKonsumen(teksEmail.Text)
If Not
IsNothing(objKonsumenDitemukan.Email) Then
'MEnampilkan nama konsumen
MessageBox.Show("Nama konsumen
adalah: " &
objKonsumenDitemukan.Nama,
"Demo Struktur")
Else
'Menampilkan error
MessageBox.Show("Tidak ada
konsumen dengan alamat " &
" email " &
teksEmail.Text & ".", "Demo Struktur")
End If
End
Sub
7. Jalankan projek dan klik pada tombol
Daftar Konsumen untuk mengisi daftar konsumen. Jika Anda memasukkan sebuah
alamat email yang tidak ada ke dalam kotak Email
dan kemudian menekan tombol Lookup,
Anda akan melihat sebuah kotak pesan yang sama seperti ditunjukkan pada Gambar
3.21.
GAMBAR
3.21
Penjelasan
Pada contoh ini, Anda
menambahkan sebuah anggota baru pada kelas KonsumenKoleksi
yang dapat dipakai untuk memuat sebuah Hashtable:
'Anggota Private
Private
objEmailHashtable As New Hashtable
Kapanpun Anda menambahkan
sebuah Konsumen baru pada koleksi,
Anda juga menambahkannya pada Hashtable:
'Menambahkan sebuah konsumen pada koleksi
Public Sub Add(ByVal konsumenBaru As Konsumen)
Me.List.Add(konsumenBaru)
'Menambahkan
alamat email pada the Hashtable
EmailHashtable.Add(konsumenBaru.Email,
konsumenBaru)
End Sub
Namun, tidak seperti
metode-metode Add yang telah
ditunjukkan sebelumnya, metode EmailHashtable.Add
mengambil dua parameter. Parameter pertama adalah kunci, dan Anda menggunakan
alamat email sebagai kunci. Kunci dapat berupa sembarang objek yang Anda suka,
tetapi ia harus unik. Anda tidak dapat menyuplai kunci yang sama dua kali.
(Jika Anda lakukan, eksepsi akan dilemparkan). Parameter kedua adalah nilai
yang ingin Anda hubungkan dengan kunci itu, sehingga kapanpun Anda memberikan
kunci itu pada Hashtable, Anda
mendapatkan objek itu kembali.
Trik berikutnya adalah
menciptakan sebuah versi terbebani dari properti Item default. Properti ini mengambil sebuah string sebagai
satu-satunya parameter. IntelliSense menampilkan metode terbebani sebagai item
1 dan 2 ketika Anda mengaksesnya dari kode Anda.
Kali ini Anda dapat
menyediakan indeks maupun alamat email. Jika Anda menggunakan alamat email,
Anda akan menggunakan versi terbebani dari properti Item. Ini memerlukan sebuah kunci dan menghasilkan item yang
berelasi, jika kunci tersebut ditemukan:
'Membebani properti Item untuk mencari sebuah konsumen
berdasarkan alamat email
Default Public ReadOnly Property Item(ByVal email As
String) As Konsumen
Get
Return
CType(EmailHashtable.Item(email), Konsumen)
End Get
End Property
Pada titik ini, Anda
memiliki sebuah kelas koleksi yang tidak hanya memampukan Anda untuk mencari
item berdasarkan indeks, tetapi juga memampukan Anda untuk mencari item
berdasarkan alamat emailnya.
Metode Remove, RemoveAt, dan Clear
Karena tidak dimungkinkan
untuk menggunakan kunci yang sama dua kali pada sebuah Hashtable, Anda perlu mengambil langkah-langkah dalam memastikan
bahwa apa yang ada di dalam Hashtable
cocok dengan apapun yang ada di dalam list.
Meskipun Anda telah
mengimplementasikan metode Remove di
dalam kelas KonsumenKoleksi, kelas CollectionBase menyediakan metode RemoveAt dan Clear. Bila metode Remove
memerlukan sebuah objek, metode RemoveAt
memerlukan sebuah indeks.
LATIHAN
|
Membersihkan List
|
Pada latihan ini, Anda
perlu menyediakan implementasi baru dari metode-metode ini untuk memperbarui Hashtable.
1. Kembali ke Visual Studio dan buka
editor kode untuk Form1. Cari metode
tombolDaftarKonsumen_Click dan
tambahkan kode yang ditebalkan untuk membersihkan dua list:
Private
Sub tombolDaftarKonsumen_Click(sender As Object, e As EventArgs)
Handles
tombolDaftarKonsumen.Click
'Membersihkan list-list
objKonsumen.Clear()
listKonsumen.Items.Clear()
'Menciptakan beberapa konsumen
CiptakanKonsumen("John",
"Kristof",
"jKristof@gmail.com")
CiptakanKonsumen("Vivian",
"Siahaan",
"vSiahaan@yahoo.com")
CiptakanKonsumen("Rico",
"Chandra",
"rChandra@yahoo.co.uk")
End
Sub
2. Untuk mendemonstrasikan bagaimana
sebuah Hashtable tidak dapat
menggunakan kunci yang sama dua kali, jalankan projek dan klik pada tombol Daftar Konsumen untuk memuat daftar konsumen. Sekarang klik pada tombol Daftar Konsumen itu lagi dan Anda akan melihat pesan error yang
ditunjukkan pada Gambar 3.22.
GAMBAR
3.22
3.
Klik tombol Break untuk menghentikan program.
4.
Tambahkan metode berikut pada kelas KonsumenKelas:
'Menyediakan
implementasi baru dari kelas Clear
Public
Shadows Sub Clear()
'Membersihkan CollectionBase
MyBase.Clear()
'Membersihkan hashtable
EmailHashtable.Clear()
End
Sub
5. Modifikasi metode Remove sebagai berikut:
'Menghapus
sebuah konsumen dari koleksi
Public
Sub Remove(ByVal konsumenLama As Konsumen)
Me.List.Remove(konsumenLama)
'Menghapus konsumen dari the Hashtable
EmailHashtable.Remove(konsumenLama.Email.ToLower)
End
Sub
6. Tambahkan metode RemoveAt untuk mendefinisikan ulang
metode default yang didefinisikan di dalam kelas CollectionBase:
'Menyediakan
implementasi baru dari metode RemoveAt
Public
Shadows Sub RemoveAt(ByVal indeks As Integer)
Remove(Item(indeks))
End
Sub
7. Jalankan projek dan klik pada tombol
Daftar Konsumen untuk memuat konsumen-konsumen. Klik pada tombol Daftar Konsumen lagi untuk membersihkan daftar konsumen tersebut sebelum
memuat konsumen-konsumen itu lagi. Perhatikan bahwa kali ini tidak ada eksepsi
yang dilemparkan.
Penjelasan
Dengan
perubahan-perubahan ini, eksepsi tidak dilemparkan kedua kalinya karena Anda
telah memastikan bahwa Hashtable dan
list internal yang dikelola oleh CollectionBase
disinkronisasi dengan tepat. Secara spesifik, kapanpun list KonsumenKoleksi Anda dibersihkan
menggunakan metode Clear, Anda
memastikan bahwa Hashtable juga
dibersihkan.
Untuk membersihkan list
internal yang dikelola oleh CollectionBase,
Anda meminta kelas basis untuk menggunakan implementasi Clear sendiri daripada harus menyediakan implementasi sendiri. Anda
melakukan ini dengan memanggil MyBase.Clear.
Setelah itu, Anda memanggil metode Clear
pada Hashtable:
'Menyediakan implementasi baru dari kelas Clear
Public Shadows Sub Clear()
'Membersihkan
CollectionBase
MyBase.Clear()
'Membersihkan
hashtable
EmailHashtable.Clear()
End Sub
Anda juga menemukan bahwa
Anda menghapus item dari koleksi menggunakan Remove, entri terkait juga dihapus dari Hashtable, karena modifikasi pada metode Remove:
'Menyediakan implementasi baru dari metode RemoveAt
Public Shadows Sub RemoveAt(ByVal indeks As Integer)
Remove(Item(indeks))
End Sub
Sensitifitas Huruf
Jika Anda menjalankan
projek dan mengklik tombol Daftar Konsumen dan kemudian memasukkan alamat
email yang valid dengan semua huruf besar, Anda akan menerima kotak pesan yang
mengindikasikan bahwa tidak ada konsumen dengan alamat email itu.
LATIHAN
|
Sensitifitas Huruf
|
Anda menginginkan koleksi
untuk mengabaikan sensitifitas kuruf pada kunci. Pada latihan ini, Anda
melakukan ini dengan memastikan bahwa kapanpun Anda menyimpan sebuah kunci,
Anda mentransformasikan alamat email menjadi semua karakter huruf kecil.
Kapanpun Anda melakukan pencarian berbasis kunci, Anda mentransformasikan
apapun yang Anda cari menjadi semua karakter huruf kecil juga.
1. Kembali ke Visual Studio, buka
editor kode untuk kelas KonsumenKelas,
dan buat perubahan yang ditebalkan berikut pada metode Add:
'Menambahkan
sebuah konsumen pada koleksi
Public
Sub Add(ByVal konsumenBaru As Konsumen)
Me.List.Add(konsumenBaru)
'Menambahkan alamat email pada the
Hashtable
EmailHashtable.Add(konsumenBaru.Email.ToLower, konsumenBaru)
End
Sub
2. Cari properti Item terbebani yang mengambil sebuah alamat email dan lakukan
modifikasi kode seperti ditunjukkan di sini:
'Membebani
properti Item untuk mencari sebuah konsumen berdasarkan alamat email
Default
Public ReadOnly Property Item(ByVal email As String) As Konsumen
Get
Return
CType(EmailHashtable.Item(email.ToLower), Konsumen)
End Get
End
Property
3.
Cari metode Remove dan lakukan modifikasi kode seperti ditunjukkan di sini:
'Menghapus
sebuah konsumen dari koleksi
Public
Sub Remove(ByVal konsumenLama As Konsumen)
Me.List.Remove(konsumenLama)
'Menghapus konsumen dari the Hashtable
EmailHashtable.Remove(konsumenLama.Email.ToLower)
End
Sub
4. Jalankan projek dan klik pada tombol
Daftar Konsumen. Sekarang, jika Anda memasukkan sebuah alamat email yang
valid dengan semua karakter huruf besar, pencarian akan tetap berhasil
dilakukan.
Penjelasan
Pada bab 2, Anda melihat
bahwa Anda dapat melakukan pembandingan string dengan insensitifitas huruf
menggunakan metode String.Compare.
Anda tidak dapat menggunakan teknik ini di sini karena Hashtable yang menangani
perbandingan dan Anda tidak ingin menghasilkan versi sendiri dari kode
perbandingan yang digunakan oleh Hashtable
untuk melakukan pencocokan insensitifitas huruf.
Anda dapat menggunakan
metode ToLower yang tersedia untuk string. Ini menciptakan sebuah string baru
dimana di dalamnya semua karakter ditransformasikan menjadi huruf kecil
ekivalen. Jadi, kapanpun Anda melewatkan JKRISTOF@GMAIL.COM atau
JKristof@GMail.Com, Anda akan selalu mendapatkan jkristof@gmail.com.
Ketika Anda menambahkan
sebuah item pada koleksi, Anda dapat menggunakan ToLower untuk mengkonversi semua alamat email yang disimpan di
dalam struktur Konsumen sehingga ia selalu dengan huruf kecil:
'Menambahkan alamat email pada the Hashtable
EmailHashtable.Add(konsumenBaru.Email.ToLower,
konsumenBaru)
Sama halnya, ketika Anda
melakukan pencarian, Anda juga mengkonversi apapun nilai yang dilewatkan
sebagai parameter menjadi semua karakter huruf kecil:
Return CType(EmailHashtable.Item(email.ToLower),
Konsumen)
MANIPULASI ARRAY LANJUT
Kemampuan untuk
memanipulasi ukuran array dari kode dan untuk menyimpan himpunan data kompleks
di dalam sebuah array merupakan hal penting, tetapi dengan .NET, hal itu dapat
lebih mudah dilakukan dengan memanfaatkan fungsionalitas koleksi.
Array Dinamis
Ketika menggunakan array,
jika Anda ingin mengubah ukurannya untuk menambahkan item, atau membersihkan
ruang ketika Anda menghapus item, Anda perlu menggunakan katakunci ReDim untuk membuat array menjadi array
dinamis.
LATIHAN
|
Menggunakan Katakunci ReDim
|
Pada latihan ini, Anda
akan menggunakan kembali projek Demo
Array yang telah Anda ciptakan di
awal bab ini dan memanipulasinya sedikit sehingga Anda dapat menambahkan
teman-teman baru pada array setelah array awal diciptakan.
1. Cari dan buka projek Demo Array. Buka editor kode untuk Form1
dan modifikasi kode pada metode TambahkanItemPadaList
sehingga ia tampak seperti ini:
Private
Sub TambahkanItemPadaList(ByVal arrayList() As String)
'Mengenumerasi array
For Each strNama As String In arrayList
'Menambahkan item array pada list
listTeman.Items.Add("[" &
strNama & "]")
Next
End
Sub
2. Jalankan projek dan klik tombol Inisialisasi Array. Form Anda akan tampak seperti pada Gambar3.23; perhatikan
kurung siku yang mengitari setiap nama.
GAMBAR
3.23
3. Hentikan projek dan lakukan
perubahan yang ditebalkan berikut pada metode tombolInisialisasiArray_Click:
Private
Sub tombolInisialisasiArray_Click(sender As Object, e As EventArgs) Handles
tombolInisialisasiArray.Click
'Membersikan list
BersihkanList()
'Mendeklarasikan dan mengisi array
Dim strTemanKu() As String =
{"Widi", "Hari", "Jodi",
"Misel",
"Rico"}
'Membuat array strTemanKu menjadi lebih
besar
ReDim strTemanKu(6)
strTemanKu(5) = "Lina"
strTemanKu(6) = "Tobat"
'Menampilkan teman Anda
TambahkanItemPadaList(strTemanKu)
End
Sub
4. Jalankan projek kembali dan klik
pada tombol Inisialisasi Array. Form Anda akan tampak seperti
ditunjukkan pada Gambar 3.24.
GAMBAR
3.24
Penjelasan
Setelah mendefinisikan sebuah array dengan lima elemen, Anda
menggunakan katakunci ReDim untuk
mengubah dimensi array dengan batas atas 6, yang memberikannya ukuran 7.
Setelah Anda melakukannya, Anda memiliki dua item baru di dalam array, item 5
dan item 6:
'Membuat array
strTemanKu menjadi lebih besar
ReDim
strTemanKu(6)
strTemanKu(5) =
"Lina"
strTemanKu(6) =
"Tobat"
Kemudian, Anda melewatkan ukuran dengan ukuran berubah
kepada metode TambahkanItemPadaList:
'Menampilkan
teman Anda
TambahkanItemPadaList(strTemanKu)
Namun, seperti ditunjukkan pada hasil, nilai-nilai untuk
lima item pertama telah hilang. (Inilah mengapa Anda memberikan kurung siku
pada hasil, jika nama di dalam array dibiarkan kosong, Anda masih tetap melihat
sesuatu di dalam list). ReDim memang
mengubah ukuran array, tetapi ketika array diubah ukurannya, secara default
semua nilai di dalam array dihapus, menghilangkan semau nilai yang
didefinisikan ketika Anda menginisialisasi array.
Anda dapat menyelesaikan permasalahan ini menggunakan
katakunci Preserve.
Menggunakan Preserve
Dengan mencantumkan
katakunci Preserve dengan katakunci ReDim, Anda dapat menginstruksikan
Visual Basic untuk tidak menghapus item-item yang ada. Satu hal yang perlu
diingat adalah bahwa jika Anda membuat sebuah array menjadi lebih kecil dari
array semula, data akan hilang dari elemen-elemen yang dieliminasi meskipun
Anda menggunakan katakunci Preserve.
LATIHAN
|
Menggunakan Katakunci Preserve
|
Pada latihan ini, Anda
menggunakan katakunci Preserve.
1. Kembali ke Visual Studio, buka
editor kode untuk Form1, dan
modifikasi metode tombolInisialisasiArray_Click
sebagai berikut:
Private
Sub tombolInisialisasiArray_Click(sender As Object, e As EventArgs) Handles
tombolInisialisasiArray.Click
'Membersikan list
BersihkanList()
'Mendeklarasikan dan mengisi array
Dim strTemanKu() As String =
{"Widi", "Hari", "Jodi",
"Misel",
"Rico"}
'Membuat array strTemanKu menjadi lebih
besar
ReDim Preserve strTemanKu(6)
strTemanKu(5) = "Lina"
strTemanKu(6) = "Tobat"
'Menampilkan teman Anda
TambahkanItemPadaList(strTemanKu)
End
Sub
2. Jalankan projek kembali dan klik
pada tombol Inisialisasi Array.
Penjelasan
Anda sekarang menemukan
bahwa item-item yang ada di dalam array tetap dipertahankan, seperti
ditunjukkan pada Gambar 3.25.
GAMBAR 3.25
No comments:
Post a Comment