BAB ENAM: TATASUSUNANKAWALAN TATASUSUNANApabila butang pilihan (option button) atau kotak pilihan (check box) dikumpulkan ...
Tatasusunan    Sebarang pengujian bagi pemilihan dan keputusan dengan pengekodan struktur Casejuga boleh dikodkan mengguna...
TatasusunanContoh:   Private Sub optWarna_Click (Index As Integer)          ’Setkan warna berdasarkan butang yang akan dip...
Tatasusunan   Sebagai contoh, kita ingin menyimpan senarai kod kursus. Di sini, kita boleh menggunakantatasusunan bagi men...
TatasusunanTatasusunan juga boleh didimensikan dengan kurungan tanpa nilai (empty parenthesis)                         Pub...
Tatasusunan   Private Sub lstKursus_Click()       lblKursus.Caption = "Subscript bagi Kursus " &       strKodKursus(1stKur...
TatasusunanTATASUSUNAN 2 DIMENSI DAN MULTI-DIMENSITatasusunan 2 dimensi atau lebih, membenarkan kita untuk merujuk kepada ...
TatasusunanApabila ingin merujuk elemen di dalam tatasusunan, kita mesti menentukan kedua-dua subscriptelemen tersebut. Su...
TatasusunanMencetak Jadual 2 DimensiApabila ingin mencetak kandungan jadual 2 dimensi, kita juga boleh menggunakan pernyat...
TatasusunanFor intRowIndex = 1 To 4   For intCollndex = 1 To 6       curRowTotal(intRowlndex) = curRowTotal(intRoxlndex) +...
TatasusunanFor ilndex = 0 To 2    optWeight(ilndex).Value = FalseNext iIndexEnd SubPrivate Sub cmdExit_Click()Print report...
TatasusunanIf miNumberTransactions <= 20 Then                  Allow only 20 transactions   If cboType.Listlndex <> -1 The...
TatasusunanmePrice(l., 2) = 6.1mcPrice(2. 0) = 8.75mcPrice(-2- 1) = 9.75mcPrice(2. 2) = 11.25End SubPrivate Sub optWeight_...
Upcoming SlideShare
Loading in …5
×

Bab6 tatasusunan

1,184 views

Published on

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,184
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
35
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Bab6 tatasusunan

  1. 1. BAB ENAM: TATASUSUNANKAWALAN TATASUSUNANApabila butang pilihan (option button) atau kotak pilihan (check box) dikumpulkan di dalamsatu kumpulan, ini bermaksud anda membina suatu kawalan tatasusunan. Kawalan Tatasusunanadalah suatu kumpulan kawalan yang mempunyai nama yang sama. Kebaikan menggunakankawalan tatasusunan berbanding kawalan yang berasingan, ialah kawalan tatasusunan akanberkongsi suatu Event Click. Di dalam tatasusunan event click, struktur Case digunakan bagimenentukan butang atau kotak pilihan yang dipilih.Contoh : Katakan kita ingin membuat pilihan warna pada butang pilihan. Untuk memudahkanpenulisan aturcara kita gunakan objek yang sama dan nama yang sama. Apabila diberikan namayang sama, satu mesej akan dipaparkan untuk memberi pilihan untuk membina kawalantatasusunan. Apabila butang `Yes diklik, satu kawalan tatasusunan bernama optWarna telahdibina.Kawalan tatasusunan menggunakan index untuk mewakilkan objek. Berdasarkan contoh, kitatelah membina optWarna(0) untuk objek yang pertama, optWarna(1) bagi yang kedua danseterusnya optWama(2), optWarna(3). Index bermula dengan 0 sekiranya tidak diberi nilaiawal. Nilai (?) akan bergantung kepada bilangan butang pilihan atau kotak pilihan yang dibina.Struktur CaseDalam Bab 5, pernyataan If digunakan bagi pengujian pemilihan dan keputusan. Apabilaingin menguji pembolehubah tunggal dengan pelbagai nilai, struktur Case akandigunakan kerana ianya fleksibel dan mudah. Dengan kata lain, Case membolehkan suatuproses dilakukan mengikut cabang tindakan yang ditetapkan.
  2. 2. Tatasusunan Sebarang pengujian bagi pemilihan dan keputusan dengan pengekodan struktur Casejuga boleh dikodkan menggunakan pernyataan If, tetapi penggunaan struktur Case adalahlebih mudah dan lebih jelas.Bentuk am: Select Case Ungkapan Case constant list 1 Tindakan 1 Case constant list 2 Tindakan2 . . . Case Else Tindakan seterusnya End SelectUngkapan bagi struktur Case terdiri daripada pembolehubah atau properti yang akan diuji.Constant list pula adalah nilai yang akan disepadankan; yang mungkin terdiri daripadapembolehubah atau pemalar tetap bagi numerik atau string, operator perbandingan, suatulingkungan nilai dan mungkin juga penggabungan nilai-nilai tersebut. Tiada had ditentukanbagi bilangan Case ini.Pengujian Butang Pilihan dengan Struktur CaseStruktur Case sangat sesuai digunakan apabila hendak membuat pengujian untuk memilihbutang pilihan. Apabila suatu butang dipilih ini akan menyebabkan event Clickdilaksanakan. Berdasarkan contoh berikut, Visual Basic mengumpukkan Index yangberjenis data Integer kepada event Click. Index memegang nombor butang yang dipilih(0, l, 2 atau 3). Nilai bagi Index ini boleh digunakan di dalam struktur Case.Mohd Farid Jaafar 78JSM, FSKTM, UPM
  3. 3. TatasusunanContoh: Private Sub optWarna_Click (Index As Integer) ’Setkan warna berdasarkan butang yang akan dipilih Select Case Index Case 0 ‘Butang pertama dipilih lblMesej.Caption = "Warna yang dipilih ialah" & _ UCase(optWarna(0).Caption) lbIMesej.ForeColor = vbRed Case 1 ‘Butang kedua dipilih lbIMesej.Caption = "Warna yang dipilih ialah" & _ UCase(optWama(1).Caption) lblMesej.ForeColor = vbBlue Case 2 ‘Butang ketiga dipilih lblMesej.Caption = "Warna yang dipilih ialah" & _ UCase(optWama(2).Caption) lbIMesej.ForeColor = vbYellow Case 3 ‘Butang keempat dipilih lbIMesej.Caption = "Warna yang dipilih ialah" & _ UCase(optWarna(3).Caption) lbIMesej.ForeColor = vbBlack End Select End SubTATASUSUNAN 1 DIMENSIKita telah mempelajari bagaimana tatasusunan telah digunakan pada kawalan. Sekarang kita inginmembina tatasusunan pada pembolehubah. Pembolehubah tatasusunan boleh mengandungibeberapa nilai, sama seperti list box atau combo box. Bagi list box atau combo box, Visual Basictelah menyimpan nilai di dalam Property List menggunakan tatasusunan. Dengan menggunakankonsep yang sama, kita ingin membina tatasusunan bagi pembolehubah.Mohd Farid Jaafar 79JSM, FSKTM, UPM
  4. 4. Tatasusunan Sebagai contoh, kita ingin menyimpan senarai kod kursus. Di sini, kita boleh menggunakantatasusunan bagi menyimpan senarai tersebut. Tatasusunan merupakan senarai nilai yangdiwakilkan dengan nama yang sama, juga dikenali sebagai jadual (table) atau subscriptedvariables. Katakan kita menggunakan nama strKodKursus, setiap data dalam tatasusunan akandirujuk menggunakan nama strKodKursus(0), strKodKursus(2) dan seterusnya. Setiap pembolehubah tersebut dipanggil elemen bagi tatasusunan, Subscript (jugadipanggil index) mewakilkan kedudukan elemen di dalam tatasusunan. Rajah dibawahmenunjukkan tatasusunan yang mengandungi 10 elemen dengan subscript dari 0-9. Tatasusunan strKodKursus (0) SAK 1110 (1) SAK 1111 (2) SAK 2401 (3) SAK 2309 (4) MGM 1191 (5) MGM 2191 (6) POL 2409 (7) FAL 2221 (8) MTK 1111 (9) MTK 2111Penisytiharan Tatasusunan Dim ArrayName ([LowerSubscript To] UpperSubscript) [As DataType]Contoh: Dim strKodKursus (0 To 10) As String Dim strNama (0 To 25) As String Dim curBalance (10) As Currency Dim mintValue (-10 To 10) As IntegerMohd Farid Jaafar 80JSM, FSKTM, UPM
  5. 5. TatasusunanTatasusunan juga boleh didimensikan dengan kurungan tanpa nilai (empty parenthesis) Public strNama 0 As StringSekiranya diisytiharkan seperti di atas, tatasusunan dipanggil dynamic array kerana bilanganelemen akan berubah setiap kali program dilarikan menggunakan pernyataan Redim. Redim strNama (1 To 10)SubscriptPenggunaan tatasusunan tidak akan bermakna sehingga kita menggunakan subscript bagimencapai elemen. Subscript boleh terdiri daripada constant, variables dan pemyataan numerik.Contoh: Option Explicit Dim strKodKursus(0 To 9) As String Dim num As Integer Private Sub DaftarKursus() For num = 0 To 9 strKodKursus(num) = InputBox ("Masukkan Kod Kursus") lstKursus.Addltem strKodKursus(num) Next num End Sub Private Sub cmdDaftarKursus_Click() DaftarKursus End Sub Private Sub cmdKeluar_Click() End End SubMohd Farid Jaafar 81JSM, FSKTM, UPM
  6. 6. Tatasusunan Private Sub lstKursus_Click() lblKursus.Caption = "Subscript bagi Kursus " & strKodKursus(1stKursus.Listlndex) & " yang dipilih ialah strKodKursus (" & 1stKursus.Listlndex & “)” End SubPernyataan For Each / NextBagi merujuk kepada setiap elemen yang terdapat di dalam tatasusunan, pernyataan ForEach/Next amat sesuai digunakan. Kelebihan menggunakan pernyataan ini ialah kita tidakperlu memanipulasi subscript bagi tatasusunan.Bentuk am: For Each ElementName In ArrayAame `laksanakan arahan di dalam loop Next [ElementName]Visual Basic secara automatik akan merujuk setiap elemen yang terdapat di dalam tatasusunan.Arahan yang biasa diberikan seperti memberi nilai kepada setiap elemen. Sekiranyatatasusunan mengandungi 12 elemen, gegelung akan dilaksanakan sebanyak 12 kali. Jenis databagi ElementName mestilah berjenis Variant. Berikut ialah contoh pernyataan For Each/ Nextbagi tatasusunan strName dan intTotal yang telah diisytiharkan dan mengandungi data. Dim vntOneName As Variant For Each vntOneName In strName Printer.Print vntOneName Cetak data bagi setiap elemen Next vntOneName Dim vntTotal As Variant For Each vntTotal In intTotal vntTotal = 0 `Beri nilai awal (0) pada setiap elemen Next vntTotal**Sekiranya ingin keluar awal dari pernyataan For, gunakan pemyataan Exit For.Mohd Farid Jaafar 82JSM, FSKTM, UPM
  7. 7. TatasusunanTATASUSUNAN 2 DIMENSI DAN MULTI-DIMENSITatasusunan 2 dimensi atau lebih, membenarkan kita untuk merujuk kepada lebih daripada 2data. Bagi tatasusunan 2 dimensi, 2 subscript akan digunakan bagi mewakili satu elemen, dimanadata di atur dalam bentuk baris dan lajur.Aplikasi yang biasa menggunakan tatasusunan 2 dimensi ialah aplikasi menggunakan jadualuntuk mewakilkan data seperti jadual Taburan Hujan, jadual Cukai dan jadual Kadar Insurans.Untuk menghasilkan tatasusunan 2 dimensi, pernyataan Dim akan menentukan bilangan baris danlajur. Contoh di bawah merupakan jadual yang mengandungi 3 baris dan 4 lajur.Pengisytiharan Tatasusunan 2 Dimensi Dim ArrayName ([LowerLimit To] UpperLimit, [LowerLimit To] UpperLimit) [As DataType]Contoh: Dim strNama (2, 3) As String Dim strNama (0 To 2, 0 To 3) As StringKedua-dua contoh di atas akan menghasilkan tatasusunan yang mengandungi 12 elemen, dengan3 baris dan 4 lajur. (0,0) (0,1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) (2,0) (2,1) (2,2) (2,3)Mohd Farid Jaafar 83JSM, FSKTM, UPM
  8. 8. TatasusunanApabila ingin merujuk elemen di dalam tatasusunan, kita mesti menentukan kedua-dua subscriptelemen tersebut. Subscript yang pertama ialah baris (row) dan subscript kedua ialah lajur(column). Berikut ialah contoh rujukan yang sah: strName (1,2) = "Value" strName(intRowlndex, intCollndex) = "Value" lblDisplay.Caption = strName (1,2) Printer.Print strName (intRowlndex, intCollndex)Rujukan kepada elemen adalah tidak sah sekiranya (bagi contoh strName) nilai subscript pertamalebih dari 2 dan subscript kedua lebih dari 3.Memberi nilai awal Kepada Tatasusunan 2-DimensiBiasanya nilai awalan elemen bagi tatasusunan numerik ialah 0 dan elemen string disetkankepada string kosong, tetapi bagi sesetengan kes, kita perlu memberi nilai awal kepadatatasusunan. Bagi tujuan ini, pernyataan For/Next Tersarang atau For Each/Next boleh digunakan.Contoh: Dim intRow As Integer Dim intCol As Integer For intRow = 1 To 3 For intColumn = 1 To 4 strName (intRow, intColumn) = “” ‘Initialize each element Next intColumn Next intRow Dim vntName As Variant For Each vntName In strName vntName Initialize each element Next vntNameMohd Farid Jaafar 84JSM, FSKTM, UPM
  9. 9. TatasusunanMencetak Jadual 2 DimensiApabila ingin mencetak kandungan jadual 2 dimensi, kita juga boleh menggunakan pernyataangegelung For Each/Next. Dim vntName As Variant For Each vntName In strName Printer.Print vntName Next vntNameJika ingin mencetak keseluruhan baris pada satu garisan, gunakan gegelung For/Next dansetkan arahan print untuk multi elemen. For intRowlndex = 0 To 2 Printer.Print strName(intRowIndex,0); Tab(15); strName(intRowIndex,1); _ Tab(30); strName(intRowIndex,2), Tab(45); strName(intRowlndex,3) Next intRowIndexMenambah nilai elemen bagi Tatasusunan 2 DimensiBerikut merupakan contoh untuk menambah nilai elemen tatasusunan. Bagi menambah nilaikesemua elemen, setiap lajur mestilah mempunyai satu medan jumlah dan setiap baris jugamempunyai medan jumlah.Contoh:Dim curAmount (1 To 4, 1 To 6) As CurrencyDim curRowTotal (1 To 4) As CurrencyDim curColTotal (I To 6) As CurrencyDim intRowIndex As IntegerDim intCollndex As IntegerMohd Farid Jaafar 85JSM, FSKTM, UPM
  10. 10. TatasusunanFor intRowIndex = 1 To 4 For intCollndex = 1 To 6 curRowTotal(intRowlndex) = curRowTotal(intRoxlndex) + _ curAmount(intRowIndex, intCollndex) curRowTotal(intRowlndex) = curRowTotal(intRoxlndex) + _ curAmount(intRowlndex, intCollndex) Next intCollndexNext intRowIndexContoh:Option ExplicitDim mcPrice(0 To 2, 0 To 2) As Currency Table to store coffee pricesPrivate Type CoffeeSale stType As String stQuantity As String cPrice As CurrencyEnd TypeDim mTransaction(20) As CoffeeSale Store transactions for reportDim miNumberTransactions As IntegerDim mlWeight As LongPrivate Sub cmdClear_Click()Remove the selection from the lists and clear the priceDim iIndex As IntegercboType.ListIndex = -1 Clear selectionlblPrice.Caption = “”mlWeight = 0Mohd Farid Jaafar 86JSM, FSKTM, UPM
  11. 11. TatasusunanFor ilndex = 0 To 2 optWeight(ilndex).Value = FalseNext iIndexEnd SubPrivate Sub cmdExit_Click()Print report and terminate the projectDim iIndex As IntegerDim stPrintPrice As StringPrinter.Print Tab(45); "Sales Report"Printer.Print ""Printer.Print Tab(15); "Type"; Tab(40); "Quantity"; Tab(60); "Price"Printer.Print ""For iIndex = 0 To miNumberTransactions – 1 stPrintPrice = Format$(mTransaction(iIndex).cPrice, "Currency") Printer.Print Tab(10); mTransaction(ilndex).stType; Tab(35); _ mTransaction(ilndex).stQuantity; Tab(65 - Len(stPrintPrice)); _ stPrintPriceNext iIndexEnd SubPrivate Sub cmdFindPrice_Click()Lookup the price using the quantity and typeDim iRow As IntegerDim iCol As IntegerDim cPrice As CurrencyiRow = mlWeightMohd Farid Jaafar 87JSM, FSKTM, UPM
  12. 12. TatasusunanIf miNumberTransactions <= 20 Then Allow only 20 transactions If cboType.Listlndex <> -1 Then iCol = cboType.Listlndex Select Case mlWeight Case 0 mTransaction(miNumberTransactions).stQuantity = "Quarter Pound" Case 1 mTransaction(miNumberTransactions).stQuantity = "Half Pound" Case 2 mTransaction(miNumberTransactions).stQuantity = "Full Pound" Case Else Default to quarter pound mTransaction(miNumberTransactions).stQuantity = "Quarter Pound" End Select cPrice = mcPrice(iRow,iCol) lblPrice.Caption = Format$(cPrice, "Currency") mTransaction(miNumberTransactions).stType = cboType.List(iCol) mTransaction(miNumberTransactions).cPnce = cPrice miNumberTransactions = miNumberTransactions + 1 Else MsgBox "Select a type and quantity", vbExclamation, "Entry Error" End IfEnd IfEnd SubPrivate Sub Form_Load()Load prices into the tablemcPrice(0, 0) = 2.6mcPrice(0, 1) = 2.9mcPrice(0. 2) = 3.25mcPrice(1, 0) = 4.9mcPrice(1, 1) = 5.6Mohd Farid Jaafar 88JSM, FSKTM, UPM
  13. 13. TatasusunanmePrice(l., 2) = 6.1mcPrice(2. 0) = 8.75mcPrice(-2- 1) = 9.75mcPrice(2. 2) = 11.25End SubPrivate Sub optWeight_Click(Index As Integer)Find the selected weightmlWeight = IndexEnd SubMohd Farid Jaafar 89JSM, FSKTM, UPM

×