Senin, 13 Januari 2014

Set Intruksi Mikroprosesor 8088

Intel 8088 adalah prosesor mikro buatan intel berbasis pada 8086 dengan 16-bit register dan menggunakan 8-bit external data bus. intel 8088 merupakan prosesor yang digunakan pada IBM PC.
8088 ditargetkan pada sistem yang ekonomis, diikuti oleh penggunaan desain 8-bit.Jalur bus yang lebar dalam circuit boards masih sangatlah mahal ketika ini di luncurkan.Queue yang ungul dari 8088 adalah 4 bytes, sebagai penggunaan dalam 8086 6 bytes.8088 termasuk keturunan dari 80188, 80186, 80286, 80386 dan 80486, mikrocontrolller seperti yang masih digunakan sekarang. lihat daftar lengkap di bawah
komputer mikro Yang paling berpengaruh untuk penggunaan 8088, atau lebih dikenal IBM PC. pengolah PC yang mampu berjalan di clock frequency 4.77 MHz.Suatu clone populer dengan menggunakan 8088 adalah Model D, dimana tombol pilihan dapat berjalan pada clock 4.77 MHZ atau 7.16 MHZ.
sepertinya insinyur IBM ingin menggunakan Motorola 68000, dan akan digunakan kemudian dalam IBM yang menggunakan Instrumen 9000 pada Laboratorium Komputer, namun IBM telah mempunyai hak-hak untuk membuat keluarga 8086, sebagai pertukarannya dengan memberi Intel hak-hak untuk membuat disain bubble memory. Suatu faktor yang menggunakan 8-Bit Intel 8088 versi adalah dapat digunakan di luar tipe komponen Intel 8085, dan mengijinkan pembuatan komputer yang didasarkan pada suatu dimodifikasi dari desain 8085. 68000 komponen tidak tersedia secara luas pada waktu itu, dengan pemikiran menggunakan komponen Motorola 6800 sebagai pertukarannya. Intel bubble memory untuk semetara tersedia dipasaran, namun Intel memindahkan pasarnya untuk Japanese corporations yang bisa memotong anggaran, dan meninggalkan pasar memory dan berfocus pada prosesor.
Suatu compatible pengganti chip, V20, merupakan produksi dari NEC dimana dapat melebihi kemampuan 20 persen dalam computing power.



Set Instruksi Pada Microprocessor 8088

1. Transfer Data
                Set instruksi 8088 mencakup 14 transfer data yang menggerakkan byte atau kata data antara memori dan register selain juga antara akumulator dan port I/O.
a. General Purpose (Umum)      : MOV, PUSH, POP, XCHG, SXLAT                                                                           
b. Input/Output                               : In, Out
c. Address Transfer (Pemindahan Alamat)         : LEA, KDS, KES
d. Flag Transfer (Pemindahan Flag)                       : LAHF, SAHF, PUSHF, POPF
2. Arithmetic Instructions (Instruksi Perhitungan)
                8088 mampu melakukan penambahan, pengurangan, pengurangan dan pembagian data selain juga bytes dan kata. Sistem ini menambah dan mengurangi dengan menggunakan bytes atau kata yang bertanda atau tak bertanda dan data BCD atau ASCII.
a. Addition (Penjumlahan)         : ADD, ADC, AAA, DAA, INC
b. Substraction (Pengurangan) : SUB, SBB, AAS, DAS, DES, NEG, CMP
c. Multiplication (Perkalian)     : MUL, IMUL, AAM
d. Division (Pembagian)              : DIV, IDIV, AAD
e. Sign Extension                             : CBW, CWD
3. Manipulasi Bit
                Instruksi ini mencakup operasi logika, shift dan rotasi.
a. Logical (Logika)          : AND, OR, XOR, NOT, TEST
b. Shift (Geser)                 : SAL/SHL, SAR, SHR
c. Rotate (Gulung)          : ROL, ROR, RCL, RCR
4. Instruksi String
                Instruksi string digunakan untuk memanipulasi string data dalam memori. Setiap string tersusun baik dari bytes maupun kata dan hingga mencapai 64 K bytes panjang.nya
a. Direction                        : CLD, STD
b. Repeat Prefixes           : REP, REPE/REPZ, REPNE/REPNZ,
c. Move                              : MOVSB, MOVSW
d. Compare                        : CMPS, CMPSB, CMPSW
e. Scan                                  : CSAS, SCASB, SCASW
d. Load and Store            : LODS, LODSB, LODSW, STOS, STOSB, STOSW
 
5. Transfer Program
                Instruksi transfer program mencakup jump,  call, dan return, instruksi yang sudah kita kenal dalam 8085.
a. Unconditional transfer (Pemindahan)                             : CAL, RET, JMP
b. Conditional transfer (Pemindahan Bersyarat)             : JA/JNBE, JAE/JNB, JB/JNAE/JC, JBE/JNA, JCXZ, JE/JZ, JG/JNLE, JGF/JNL, JL/JNGE, JLE/JNG, JNC, JNE/JNZ, JNO, JNP/JPO, JNS, JO, JP/JPE, JS
c. Loop/Jump                                                                                 : LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ
 
6. Kontrol Prosesor
                Instruksi kontrol prosesor memungkinkan dan tidak memungkinkan interupsi, memodifikasi bit flag dan mensinkronisasi kejadian eksternal.
a. Flag Operations                           : CLC, STC, CMC, CLD, STD, CLI, STI,
b. External Synchronization     
7. Interrupt : INT, INTO, IRET


SEKILAS INTEL 8088
Intel 8088 adalah prosesor mikro buatan Intel berbasis pada 8086, dengan 16-bit register dan menggunakan 8-bit external data bus. intel 8088 merupakan prosesor yang digunakan pada IBM PC.
8088 ditargetkan pada sistem yang ekonomis, diikuti oleh pengunaan desain 8-bit. Jalur bus yang lebar dalam circuit boards masih sangatlah mahal ketika ini di luncurkan. Queue yang ungul dari 8088 adalah 4 bytes, sebagai penggunaan dalam 8086 6 bytes. 8088 termasuk keturunan dari 80188, 80288, 80186, 80286, 80386, 80486, dan 80388, microcontroller seperti yang masih digunakan sekarang. Clone yang populer dengan menggunakan 8088 adalah Model D, dimana tombol pilihan dapat berjalan pada clock 4.77 MHZ atau 7.16 MHZ.
Spesifikasi 8088
Mikroprosesor Intel 8088 hampir serupa dengan prosesor Intel 8086, kecuali pada data  eksternal bus. Lebar data eksternal bus 8088 dikurangi menjadi 8 bit, dan instruksi ukuran queue dan prefetching algoritmanya diubah. Intel 8088 menggunakan dua urutan bus siklus untuk menulis atau membaca 16 data bit sebagai ganti satu siklus untuk 8086. Ini menjadikan prosesor  bergerak  lebih lambat, tetapi ada nilai plus pada perangkat keras yang menjadikan CPU 8088 kompatibel dengan peripheral 8080/8085.
                Pin SSO pada 8088 menggantikan BHE/S7 pada 8086, dan pin IO/M pada 8088, bukan M/IO seperti pada 8086. 8088 membutuhkan catu daya +5,0 V dengan toleransi + 10%. Mikroprosesor 8088 akan kompatibel TTL (Transistor-Transistor Logic) jika kekebalan terhadap noise disesuaikan menjadi 350 mV dari nilai 400 mV yang biasa. Mikroprosesor 8088 dapat menjalankan satu 74XX, lima 74LSXX, satu 74SXX, sepuluh 74ALSXX, dan sepuluh 74HCXX beban satuan. Jika mikroprosesor 8088 direset, mikroprosesor ini mulai mengeksekusi perangkat lunak pada lokasi meori FFFF0H (FFF:0000) dengan pin interrupt request di-disable. Karena bus-bus 8088 dimultipleks dan kebanyakan memori dan peralatan I/O tidak, system harus didemultipleks sebelum pengantarmukaan dengan memori atau I/O. Demultipleks dilakukan oleh latch delapan bit yang pulsa clocknya didapat dari sinyal ALE. Operasi minimum 8088 sama dengan mikroprosesor Intel 8085A, sementara mode maksimum adalah baru dan khusus dirancang untuk operasi koprosesor aritmatika 8087.
REGISTER
Sebuah register adalah sebuah tempat penampungan sementara untuk data-data yng akan diolah oleh prosesor, dan dibentuk oleh 16 titik elektronis di dalam chip mikroprosesor itu sendiri. Dengan adanya tempat-tempat penampungan data sementara ini, proses pengolahan akan bisa dilakukan
secara jauh lebih cepat dibandingkan apabila data-data tersebut harus diambil langsung dari lokasi-lokasi memori. Register-register tersebut sebagai register internal dan terdiri dari empat belas register dan keseluruhannya dapat dibagi dalam beberapa jenis, yaitu : Register Segment, Register Data, Register pointer, Register index, Register index, dan General Purpose Register.
Semua general register mikroprosesor  8088 dapat digunakan untuk perhitungan dan operasi logika.
Pada 8088, register data diwujudkan oleh AX, BX, CX dan BX (sebagai general purpose register), sehubungan dengan fungsinya yang selain menangani tugas-tugas khusus, juga bisa dimanfaatkan untuk membantu proses-proses pengolahan data didalam internal mikroprosesor.
Mikroprosesor 8088 mempunyai kemampuan untuk bekerja dalam mode 'langkah tunggal' (single-step), yaitu semua instruksi dilaksanakan dengan cara satu demi satu. Mode ini dimungkinkan
dengan jalan membuat TF (Trap Flag) masuk ke logika '1' atau 'set'. Bagi seorang programmer, mode ini akan sangat berguna dalam pekerjaan 'debugging'.
Organisasi Ruang Memori Dan Register
Unsur terkecil memori adalah 'sel memori' (memory-cell), yaitu suatu elemen penyimpanan data yang berkapasitas sebesar 1 bit. Dengan menggabungkan sejumlah sel memori, akan bisa membentuk suatu ruang penyimpanan data dengan berbagai ukuran, misalnya 1 byte, 1 word, 1 Kilobyte, 1 Megabyte, 1 Gigabyte, 1 Terabyte, dsb.
Organisasi memori dapat dibandingkan dengan sistem 'locker' (susunan laci yang mempunyai kode nomor setiap lacinya sehingga memudahkan orang mengenal lacinya masing-masing sebelum mengambil atau memasukkan barang titipannya).
Susunan chip prosesor Intel 8088.
• Catu Daya/VCC (pin 40) dan GND (pin 1 dan 20)
• Bus Data (AD0 - AD7)
• Bus Alamat (AD0 - AD7 dan A8 - A19)
• Bus Kendali (NMI, INTR, CLK, Reset).
Dalam mikroprosesor 8088 secara fisik, bus alamat terdiri dari 20 bit (A0-A19), sementara register-register internal terbentuk dari 16 bit data. Oleh sebab itu, untuk menyesuaikan perbedaan jumlah bit antara bus alamat 8088 dengan register internal, sistem pengalamatan memori dilaksanakan
dengan format segment:offset. Format yang membutuhkan 32 bit ini dibentuk dengan jalan menggabungkan data dari 2 buah register sekaligus. Register pertama adalah satu satu dari 4 register segment, sedangkan register lainnya diambil dari salah sebuah register pointer atau register indeks.
Kenyataannya, segment-segment yang didefinisikan pada ruang memori itu boleh dibuat saling berdampingan, terpisah atau tumpang tindih sekalipun. Prosesor memiliki bus alamat sebanyak 20 bit, yang berarti ia mampu mengalamati hingga 1.048.575 lokasi memori. Secara heksadesimal, jumlah ini dinyatakan sebagai angka 00000 sampai  dengan FFFFF.  Ini adalah alamat-alamat fisik (physical addresses) dari mikroprosesor. Untuk 8088 dan 8086 yang bus alamatnya terdiri dari 20 bit, otomatis penulisan alamat fisiknya terdiri dari 5 digit heksadesimal. Sistem segmentasi pada IBM PC dilaksanakan agak unik. 1 segment adalah bagian dari ruang memori yang besarnya 65536 byte atau 64 Kb. Namun, segment-segment itu tidaklah diletakkan secara berdampingan sambung menyambung satu sama lain, akan tetapi saling tumpang tindih sehingga jarak antara titik awal suatu segment hanya terpaut 16 byte terhadap segment lainnya.
Peta Memori (Memory Map)
Kapasitas memori untuk IBM PC/XT yang berbasis prosesor Intel 8088/8086 adalah 1.048.576 byte atau lebih mudah disebut 1 (satu) Megabyte. Nilai sebesar 1 MB inilah yang menjadi dasar sistem pemetaan memori dalam keluarga IBM PC Kompatibel, sehingga dalam produk-produk yang lebih mutakhir pun, peta memori tersebut tetap dipertahankan. Hal ini berhubungan dengan konsistensi yang harus dijaga pada Disk Operating System, yang dalam keadaan bagaimanapun, harus tetap bisa dijalankan mulai dari produk yang paling awal seperti PC/XT, sampai kepada yang terbaru seperti AT 486 kompatibel.
ARSITEKTUR
Arsitektur dari 8088 tetap sama degan 8086 yakni: 16-bit registers, 16-bit internal data bus dan 20-bit address bus, yang bisa menjadikan prosesor mencapai memori 1 MB. 8088 memiliki pembagian memori yang sama dengan 8086: prosesor bisa mencapai 64 KB dari memori secara langsung, dan untuk mencapai lebih dari 64 KB, salah satu dari bagian khusus register harus di update.
Program, data dan stack memori menduduki ruang memori yang sama. Total kapasitas memory yang bisa dicapai adalah 1MB KB. Sebagaimana kebanyakan instruksi prosesor yang menggunakan 16-bit pointers, prosesor dapat mengolah secara efektif jika hanya memorinya 64 KB. Untuk mengakses memori diluar 64 KB,  CPU menggunakan bagian  register khusus untuk menspesifikasi di mana kode, stack dan 64 KB segmen data diposisikan di dalam memori 1 MB.
16-bit pointers dan data disimpan sebagai:
address: low-order byte
address+1: high-order byte
32-bit addresses disimpan di "segment:offset" dengan format:
address: low-order byte of segment
address+1: high-order byte of segment
address+2: low-order byte of offset
address+3: high-order byte of offset
Physical memory address ditunjukkan oleh pasangan segment:offset dihitung dengan:
address = (<segment> * 16) + <offset>
Program Memori- program dapat ditempatkan di manapun di dalam memori. perintah jump and call dapat digunakan untuk menyingkat lompatan di dalam segmen kode 64 KB, seperti halnya untuk lompatan jauh di manapun di dalam memori 1 MB. Seluruh perintah lompatan yang bersyarat dapat digunakan untuk melompat sekitar + 127 - - 127 bytes dari instruksi yang ada.
Memori data - prosesor dapat mengakses data di tiap orang lebih dari 4 segmen yang tersedia, yang membatasi ukuran dari memori yang dapat diakses sampai 256 KB ( jika seluruh empat segmen menunjuk pada 64 KB blok berbeda). Mengakses data dari Data, Code, segmen Extra atau Stack biasanya dapat dilaksanakan dengan awalan perintah DS:, CS:, SS: atau ES: ( beberapa register dan instruksi dengan tak hadir boleh gunakan segmen SS atau ES sebagai ganti segmen DS).
Set Instruksi
Set instruksi 8088  terdiri dari perintah-perintah berikut:
 * Instruksi perpindahan data.
 * Aritmatika - penjumlahan, pengurangan, penaikan, penurunan, mengkonversi byte/word dan pembandingan.
 * Logika - DAN, OR, eksklusif OR, shift/rotate dan test.
 * Manipulasi string - load, store, move, compare dan scan untuk byte/word.
 * Kontrol transfer - conditional, unconditional, panggilan subroutine dan kembali dari subroutine.
 * Perintah Input/Output.
 * Lain-lain - setting/clearing flag bits, stack operations, software interrupts, dan lain-lain.
KESIMPULAN
8088 adalah desain hybrid 8/16-bit: 16-bit internal, dengan 8-bit I/O. ini berarti bahwa Sistem designer dapapt menggunakan chip pendukung 8-bit yang murah dan tersedia. Sehingga menurunkan harga sebuah sistem komputer. Kemampuannya tidak begitu hebat, mesin-mesin Z-80 dan 8085 kadang-kadang lebih unggul, tetapi 8088 terjual cukup banyak. Apalagi setelah divisi IBM memilihnya sebagai prosesor utama IBM PC. 8088 menjadi sejarah dan terjual jutaan unit, rekor kedua setelah Z-80.
Sayangnya Intel membuat beberapa keputusan yang buruk dalam desain. Pertama, 8088 menggunakan arsitektur bersegmen. Kedua untuk alasan yang tidak efisien, Intel memutuskan untuk membatasi akses base-memory dalam suatu cara menjadi hanya 640K. Meskipun pada masa itu keputusan ini adalah untuk jangka pendek semua user prosesor x86 hingga saat ini merasa kesulitan dengan pembatasan 640K tersebut. Ini dapat ditemukan jika user menerima pesan kesalahan 'out of memory'. DOS, Windows, dan bahkan Windows 95 memiliki permasalahan base-memory yang disebabkan oleh batas 640K. Hanya sistem operasi murni 32-bit seperti OS/2 dan Windows NT yang tidak memiliki masalah ini. Saat itu user harus menunggu 7 tahun sebelum kemunculan 386. <b>[muchad 2008]</b>
 
 
 
 
 
 
Sumber : http://id.wikipedia.org/wiki/Intel_8088 ,  
http://muklis87.blogspot.com/2013/06/set-instruksi-mikroprosesor-8088.html
 

Minggu, 06 Januari 2013

Mengkoneksikan Database Ms acces dg Visual Basic

Meilita Rahayu TI 11 C 2486

Mengkoneksikan Ms,Acces ke Visual Basic 2010

Terlebih dahulu buat database menggunakan Ms.Acces.. sebagai contoh saya membuat database mahasiswa seperti berikut





Lalu isikan atribut dalam tabel tersebut



Lalu buka visual basic 2010 -> New Project -> Windows form Application -> OK
Setelah muncul tampilan form, Klik Data pada toolbar standar -> pilih Add New Data source
akan muncul dialog seperti dan klik next
kemudian klik Next
pilih new connection
pilih Ms access database file pada change data source dan browse file database yg tadi dibuat..klik test conection untuk mengetahui berhasil atau tidak koneksinya.
Jika sudah succeed klik ok lalu ok
klik Next kemudian Yes
centang tables lalu pilih finish

drag tbmahasiswa dan ubah jurusan menjadi combobox pada tada panah kebawah disamping kanan
buat button pertama,terakhir,sebelum,selanjutnya,simpan,cari,hapus,tambah dan keluar


Setelah program dijalankan
klik tombol tambah
 
 tombol simpan

tombol hapus
 tombol pertama
tombol terakhir
tombol sebelum
tombol cari




Listing program diatas

Public Class Formmahasiswa

    Private Sub TbMahasiswaBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TbMahasiswaBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.TbMahasiswaBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.DbMahasiswaDataSet)

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'DbMahasiswaDataSet.TbMahasiswa' table. You can move, or remove it, as needed.
        Me.TbMahasiswaTableAdapter.Fill(Me.DbMahasiswaDataSet.TbMahasiswa)

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TbMahasiswaBindingSource.MoveFirst()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        TbMahasiswaBindingSource.MoveLast()
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        TbMahasiswaBindingSource.MovePrevious()
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        TbMahasiswaBindingSource.MoveNext()
    End Sub


    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Me.Validate()
        Me.TbMahasiswaBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.DbMahasiswaDataSet)
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        TbMahasiswaBindingSource.AddNew()
    End Sub

    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        Me.Validate()
        Me.TbMahasiswaBindingSource.RemoveCurrent()
        Me.TableAdapterManager.UpdateAll(Me.DbMahasiswaDataSet)
    End Sub

    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
        Dim carinama As String
        Dim posisi As Integer = 1

        carinama = InputBox("Masukkan Nama", "Cari Nama")
        If (TbMahasiswaBindingSource.Find("Nama_Mahasiswa", carinama)) > -1 Then
            MsgBox("Data Ditemukan", vbOKOnly, "Pencarian data")
            Me.TbMahasiswaBindingSource.Position = TbMahasiswaBindingSource.Find("Nama_Mahasiswa", carinama)
            posisi = TbMahasiswaBindingSource.Find("Nama_Mahasiswa", carinama) + 1
        Else
            MsgBox("Data Tidak ditemukan", vbOKOnly, "Pencarian Data")
        End If
    End Sub

    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
        Me.Close()
    End Sub
End Class



Senin, 24 Desember 2012

Menjelaskan Program

Meilita Rahayu
TI 11 C
11.11.2486

FUNCTION DENGAN RETURN VALUE BERUPA ARRAY

Terdapat form design seperti dibawah ini dengan listing programnya

Public Class Form1

    Private Function fstat(ByVal ParamArray args() As Object) As Single()
        Dim hasil(3) As Single
        Dim i As Integer
        For i = 0 To UBound(args)
            hasil(0) = hasil(0) + args(i)
            If i = 0 Then
                hasil(1) = args(i)
                hasil(2) = args(i)
            End If
            If hasil(1) < args(i) Then hasil(1) = args(i)
            If hasil(2) > args(i) Then hasil(2) = args(i)
        Next i
        Return hasil
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim statistik As Single() = fstat(4, 5, 2, 7, 3, 10)
        TextBox1.Text = statistik(0)
        TextBox2.Text = statistik(1)
        TextBox3.Text = statistik(2)

    End Sub
End Class

Penjelasan dari program diatas
            Ketentuannya jika kita mengklik button, maka akan muncul total angka terbesar dan angka terkecil. Disitu terdapat fungsi dengan nama fstat dengan menggunakan paramater ByVal ParramArray, yang artinya melewatkan secara nilai dan berupa array yang bisa menampung banyak elemen.  Nama parameternya yaitu args() dan bertipe data object sedang fstat nya single.

Private Function fstat(ByVal ParamArray args() As Object) As Single()



Dim hasil(3) As Single
       Dim i As Integer
Pendeklarasian variabel secara lokal dengan nama variabel “hasil (3)” berarti menampung 3 elemen yaitu hasil(0), hasil(1), dan hasil(2) bertipe single dan variabel ”i” bertipe integer.


For i = 0 To UBound(args)
       hasil(0) = hasil(0) + args(i)

Perulangan for berfungsi untuk melakukan perulangan sebanyak Ubound (args) yaitu sampai batas atas array args.


If i = 0 Then
      hasil(1) = args(i)
      hasil(2) = args(i)

Jika i=0 maka hasil(1)=array args jumlah indeksnya, begitu juga dengan hasil(2)




If hasil(1) < args(i) Then hasil(1) = args(i)
If hasil(2) > args(i) Then hasil(2) = args(i)

Jika hasil(1) < args(i), args(i) elemen dari array fstat maka nilai hasil(1) diganti args(i), dan jika hasil(2) > args(i) maka nilai hasil(2) diganti dengan args(i) yang tadi. Sebagai contoh, hasil (1) sebelumnya nilainya 4, berarti dia memenuhi syarat yang pertama yaitu 4  <  5 (args(i)) lalu nilai 4 diganti 5, begitupun seterusnya. Dan hasil(2) yang nilainya 4 tidak lebih besar dari 6 tidak memenuhi syarat yang kedua jadi hasil(2) nilainya tetap 4. Disitu ada fungsi return, yang artinya akan mengembalikan nilai. Jadi si pemanggil meminta ke fungsi tersebut dan langsung mengembalikan ke pemanggil yaitu hasil.



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim statistik As Single() = fstat(4, 5, 2, 7, 3, 10)
        TextBox1.Text = statistik(0)
        TextBox2.Text = statistik(1)
        TextBox3.Text = statistik(2)

Perintah diatas untuk memanggil fungsi fstat yang disamakan dengan statistik.
 Textbox1 akan dimunculkan total atau jumlah dari bilangan yang berada didalam kurung
Textbox2 akan dimunculkan nilai yang paling besar dari bilangan tersebut
Textbox3 akan memuat nilai yang terkecil dari bilangan tersebut


OVERLOADING FUNCTION
Overloading function adalah function yang mempunyai nama yang sama tetapi mempunyai parameter yang berbeda..
Contohnya ada pada program dibawah ini

Terdapat form design dengan 1 textbox dan 1 button dengan listing program :
Public Class Form1
    Function hitung(ByVal bil1 As Integer, ByVal bil2 As Integer) As Integer
        hitung = bil1 + bil2
    End Function

    Function hitung(ByVal bil1 As Integer, ByVal bil2 As Integer, ByVal bil3 As Integer) As Integer
        hitung = bil1 + bil2 + bil3
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = hitung(1,2)
       
    End Sub

End Class


Penjelasan dari program diatas sebagai berikut

Program diatas memiliki nama fungsi “hitung” tetapi memiliki jumlah parameter yang berbeda, fungsi pertama terdapat 2 parameter dengan nama bil1,bil2 sedangkan fungsi kedua mempunyai parameter 3 yaitu bil1,bil2,bil3

                                    
    Function hitung(ByVal bil1 As Integer, ByVal bil2 As Integer) As Integer
        hitung = bil1 + bil2
    End Function                      

    Function hitung(ByVal bil1 As Integer, ByVal bil2 As Integer, ByVal bil3 As Integer) As Integer
        hitung = bil1 + bil2 + bil3
    End Function                                 


Pemanggilan fungsi tersebut ditempatkan pada button1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = hitung(1,2)

Angka 1 dalam kurung menyatakan bil1 pada parameter yang telah dideklarasikan sedangkan angka 2 mewakili bil2. Jika di Run, hasilnya akan muncul seperti ini

Dalam texbox langsung muncul angka 3, karena hasil penjumlahan bil1 dengan bil2 1+2=3. Lalu mengapa terdapat parameter bil1,bil2,bil3? Coba kita tambahkan program dalam button1 seperti dibawah ini
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = hitung(1,2)
        TextBox1.Text = hitung(1,2,3)

Terdapat 3 bilangan yang masing-masing mewakili bil1,bil2,bil3..Setelah program di Run akan muncul

Terdapat angka 6 dalam textbox,itu karena hasil penjumlahan 1+2+3 pada program yang kita tambahkan tadi.
 Secara singkat,walaupun 2 fungsi diatas mempunyai nama yang sama, tetapi compiler tahu fungsi manakah yang harus dipanggil.


MACAM-MACAM FUNGSI BAWAAN
Dalam Visual Basic, fungsi bawaan adalah suatu fungsi yang sudah ada dalam Visual Basic dan dapat digunakan secara langsung. Ada sejumlah fungsi-fungsi bawaan dalam VB diantaranya adalah fungsi untuk mengubah suatu tipe data String dari suatu TextBox menjadi tipe data numerik agar dapat digunakan untuk melakukan operasi perhitungan, fungsi yang berkaitan dengan matematika, dll.

1.      Fungsi untuk mengkonversi ke integer
Ada tiga macam fungsi yang melakukan konversi ke tipe integer,antara lain
-          Int()
Yaitu pembulatan kebawah suatu nilai decimal
-          Fix()
Yaitu pemotongan suatu nilai desimal menjadi integer
-          Cint()
Yaitu pembulatan nilai desimal 0.5 atau lebih ke integer yang lebih dekat

2.      Fungsi untuk konversi tipe data
-          Ccur()
Mengkonversi argumen menjadi tipe data currency
-          CDbl()
Mengkonversi argumen menjadi tipe data Double(Presisi ganda)
-          CLng()
Mengkonversi argumen menjadi tipe data long integer
-          CSng()
Mengkonversi argumen menjadi tipe data single
-          CStr()
Mengkonversi argumen menjadi tipe data string
-          Ivar()
Mengkonversi argumen menjadi tipe data variant

3.      Fungsi-fungsi matematika
-          Abs()
Mengembalikan nilai Absolut dari argumen
-          Atn()
Mengembalikan nilai arc tangen dari argumen dalam bentuk radian
-          Cos()
Mengembalikan nilai cosinus dari argumen dalam radian
-          Exp()
Mengembalikan nilai Eksponensial dari argumen
-          Log()
Mengembalikan nilai logaritma dari argumen
-          Sin()
Mengembalikan nilai sinus dari argumen dalam radian
-          Sqr()
Mengembalikan nilai akar dari argumen
-          Tan()
Mengembalikan nilai tangen dari argumen dalam radian


4.      Fungsi Tanggal dan Waktu

Time : mencari tahu waktu saat ini atau menetapkan waktu, tergantung format
pemakaiannya ( lihat contoh di bawah ini)
A$ = Time ‘hasil 18:16:35 AM
MyTime = #4:35:17 PM# ‘assign a time
Time = MyTime ‘set system time to MyTime

Now :
 merekam tanggal dan waktu sekarang
A$ = Now ‘hasil 10/8/02 18:16:35 AM
Timer : menghitung  jumlah  detik  sejak tengah malam
Start = Timer ‘hasilnya 29991
Date : menetapkan hari pada sistem komputer
Dim MyDate
MyDate = #February 12, 1985 # ‘Assign a date
Date = MyDate ‘Change system date

DateAdd 
: menghasilkan Varian(Date) yang berisi tanggal baru setelah suatu interval waktu yang ditetapkan dari tanggal lama.

Contoh pemakaiannya :
Dim FirstDate As_Date ‘Declare variables
Dim IntervalType As String
Dim Number As Integer
Dim Msg
FirstDate = InputBox(“Enter a date”)
Bynber = InputBox(“Enter number of months to add”)
Msg = “New date : “ & DateAdd(“m”, Number, FirstDate)
MsgBox Msg

DateDiff : mencari interval waktu antara dua tanggal
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]]) Dim TheDate As Date ‘declare variables
TheDate = InputBox(“Enter a date”) Msg = “Day from today : “ & DateDiff(“d”, Now, TheDate)
MsgBox Msg

DateSerial : menghasilkan tanggal dengan bulan/hari/tahun
MyDate = DateSerial(1969, 2, 12) ‘Hasil 2/12/69

DateValue : menghasilkan tanggal
MyDate = DateValue(“February 12, 1969”) ‘Hasil 2/12/69

Year : menghasilkan tahun sekarang
MyYear = Year(#2/12/1969#) ‘Hasil 1969

Month : menghasilkan bilangan integer yang menunjukkan bulan
MyDate = #February 12, 1969# ‘Assign a date
MyMonth = Month(MyDate) ‘MyMonth = 2

MonthName : menghasilkan teks yang menunjukkan nama bulan
a$ = MonthName(1, True) ‘a$ = Jan
b$ = MonthName(1, False) ‘b$ = January
c$ = MonthName(1) ‘c$ = January

Day : menghasilkan integer yang menunjukkan tanggal dari data date
MyDate = #February 12, 1969# ‘Assign a date
MyDay = Day(MyDate) ‘MyDay berisi 12

Hour : menghasilkan integer yang menunjukkan jam dari data timer
MyTime = #4:35:17 PM# ‘Assign a time
MyHour = Hour(MyTime) ‘MyHour berisi 16

Minute : menghasilkan integer yang menunjukkan menit dari data timer
MyTime = #4:35:17 PM# ‘Assign a time
MyMinute = Minute(MyTime) ‘MyMinute berisi 35

Second : menghasilkan integer yang menunjukkan detik dari data timer
MyTime = #4:35:17 PM# ‘Assign a time
MySecond = Second(MyTime) ‘MySecond berisi 17

TimeSerial : menghasilkan waktu dengan jam/menit/detik
MyTime = TimeSerial(16, 35, 17) ‘Isinya 4:35:17 PM

TimeValue : mengubah string waktu dari pukul 0:00:00 (12:00:00 AM) sampai 23:59:59 (11:59:59 PM) menjadi data waktu
MyTime = TimeValue(“4:35:17 PM”) ‘Isinya 4:35:17 PM
MyTime = TimeValue(“0:00:00”) ‘Isinya 12:00:00 AM
WeekDay : menghasilkan bilangan petunjuk hari dari suatu tanggal
Hari = #February 12, 1969# ‘Hari Rabu
MyweekDay = Weekday(Hari) ‘MyweekDay isinya 4
WeekDayName : menghasilkan teks nama hari dalam satu minggu

WeekDayName(weekday, abbreviate, firstdayofweek)
Hari = #2/12/1969# ‘Assign a date
MyWeekDay = Weekday(Hari) ‘MyWeekDay isinya 4
MyTime = WeekdayName(MyWeekDay) ‘Isinya Wednesday