Selasa, 13 Desember 2011

Tugas Pemrograman Visual Lanjut

Dalam Lingkungan pekerjaan, Informasi mengenai sebuah laporan yang dibutuhkan seringkali membutuhkan waktu yang lama untuk menyajikannya, karena banyak faktor, salah satu faktornya adalah cara yang dilakukan masih manual. Sebagai contoh, dalam penyajian informasi Surat Perintah Perjalanan Dinas. Pada Kesempatan ini, saya mencoba penyajian informasi Surat Perjalanan Dinas (SPPD) dengan mengaplikasikannya dengan sebuah program yang dibuat dalam Visual Basic 6.0. 

Rancangan Program
  1. Mulai
  2. Mengumpulkan Data Kepegawaian yang dibutuhkan
Pada contoh program ini, kami mengumpulkan data :  namapegawai, tanggallahir, jeniskelamin, status, alamat, jabatan sebagai data dasar untuk membuat program. ada 10 data pegawai yang kami dapatkan.
  1. Menganalisa Data
Data yang telah kami peroleh tersebut masih berupa data mentah, yang menurut kami akan lebih efisien dan membutuhkan data unik yang akan menjadi induk dan mewakili data masing-masing pegawai. Maka dari itu, kami membuat satu data tambahan lagi yaitu kodepegawai.

  1. Membuat Flowchart
Flowchart dibuat sebagai pedoman dalam membuat program nantinya.  Input dan output sama yaitu kodepegawai, namapegawai, tanggallahir, jeniskelamin, status, alamat, jabatan. Dan sebagai prosesnya adalah tombol-tombol DML yang terdiri dari cmd_input, cmd_simpan, cmd_batal, cmd_ubah, cmd_hapus, cmd_cari, cmd_keluar. kurang lebih Flowchartnya seperti ini:


  1. Membuat Rancangan Design Program
Kurang lebih seperti ini rancangan tampilan yang kami buat dengan menggunakan Ms. Visual Basic.


  1. Membuat Data Base dengan Ms Acces 2003 Data Pegawai
  2. Membuat Rancangan Design dan Memilih tools-tools yang dibutuhkan dan sesuai pada design di Visual Basic
Kode Pegawai           = textbox
Nama Pegawai          = textbox
Tanggal Lahir             = dtPicker
Jenis Kelamin            = Combo box
Status                          = Combo box
Alamat                         = textbox
Jabatan                       = Combo box
  1. Membuat Programnya
Membuat coding yang dibutuhkan dan sesuai dengan yang dimaksudkan di Visual Basic
1.    Mengkondisikan textbox jika penekan Enter dilakukan maka kursor akan pindah di textbox berikutnya
If KeyAscii = 13 Then
    DTPicker1.SetFocus
End If


2.    Memesan variabel yang dibutuhkan,
Dim penghubung As New ADODB.Connection
Dim rspegawai As New ADODB.Recordset
Dim rscari As New ADODB.Recordset
Dim proses, xxx As String
Dim even As String

3.    Mengkoneksikan tabelpegawai yang ada didalam database ke dalam Visual Basic,
Set penghubung = New ADODB.Connection
penghubung.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DBSPPD.mdb;Persist Security Info=False"
Set rspegawai = New ADODB.Recordset
rspegawai.CursorLocation = adUseClient
rspegawai.Open "select * from TBPEGAWAI ", penghubung, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rspegawai

4.    Masih dalam form Load (), memasukan nilai(value) yang nantinya akan menjadi nilai / pilihan dari masing-masing combo box yang ada :
Combo box Jenis Kelamin :
CMB_JENISKELAMIN.AddItem "Laki-laki"
CMB_JENISKELAMIN.AddItem "Perempuan"
Combo box Status :
CMB_STATUS.AddItem "Menikah"
CMB_STATUS.AddItem "Belum Menikah"
Combo box Jabatan :
CMB_JABATAN.AddItem "Kepala Desa"
CMB_JABATAN.AddItem "Sekretaris Desa"
CMB_JABATAN.AddItem "Kepala Dusun I"
CMB_JABATAN.AddItem "Kepala Dusun II"
CMB_JABATAN.AddItem "Kepala Dusun III"
CMB_JABATAN.AddItem "Kasi Pemerintahan"
CMB_JABATAN.AddItem "Kasi Pembangunan"
CMB_JABATAN.AddItem "Kasi Kesra"
CMB_JABATAN.AddItem "Kaur Umum"
CMB_JABATAN.AddItem "Kaur Keuangan"

5.    Mengisikan coding pada Cmb_Input :
proses = "INPUT"
Call TEXTBOX_TRUE
Call KOSONGKAN
Call EVENINPUT
TXT_KODEPEGAWAI.SetFocus

6.    Menulis Coding pada cmb_Batal :
Call KOSONGKAN
Call EVENBATAL
Call TEXTBOX_FALSE
CMD_INPUT.SetFocus

7.    Menulis coding pada cmb_keluar :
End

8.    Menulis Coding pada cmd_simpan :
If proses = "INPUT" Then
    penghubung.Execute "insert into tbpegawai (KODEPEGAWAI, NAMAPEGAWAI, TANGGALLAHIR, JENISKELAMIN, STATUS, ALAMAT, JABATAN)" & _
    " VALUES ('" & TXT_KODEPEGAWAI.Text & "','" & TXT_NAMAPEGAWAI.Text & "', #" & DTPicker1.Value & "#, '" & CMB_JENISKELAMIN.Text & "', '" & CMB_STATUS.Text & "', '" & TXT_ALAMAT.Text & "', '" & CMB_JABATAN.Text & "' )"
    rspegawai.Requery
    MsgBox "Data Telah Tersimpan"
    Call KOSONGKAN
    Call EVENSIMPAN
    Call TEXTBOX_FALSE
    Else
    penghubung.Execute "update tbpegawai set KODEPEGAWAI='" & TXT_KODEPEGAWAI.Text & "', NAMAPEGAWAI='" & TXT_NAMAPEGAWAI.Text & "', TANGGALLAHIR= #" & DTPicker1.Value & "#, JENISKELAMIN='" & CMB_JENISKELAMIN.Text & "', STATUS='" & CMB_STATUS.Text & "', ALAMAT='" & TXT_ALAMAT.Text & "', JABATAN= '" & CMB_JABATAN.Text & "' where KODEPEGAWAI='" & xxx & "' "
    rspegawai.Requery
    MsgBox "Data Telah Diperbaharui"
    Call KOSONGKAN
    Call EVENSIMPAN
    Call TEXTBOX_FALSE
    CMD_INPUT.SetFocus
End If

9.    Menulis coding pada cmd_cari :
xxx = InputBox("Masukan Kode Pegawai yang dicari :", "Cari")
Set rscari = New ADODB.Recordset
rscari.Open "select * from TBPEGAWAI where KODEPEGAWAI='" + xxx + "' ", penghubung, adOpenDynamic, adLockOptimistic
If rscari.EOF Then
    MsgBox "Data Tidak ditemukan"
    Call EVENSIMPAN
    CMD_CARI.SetFocus
Else
    Call TEXTBOX_FALSE
    Call TAMPILKAN
    Call EVENCARI
    CMD_UBAH.SetFocus
End If

10. Menulis coding pada cmd_ubah :
proses = "UBAH"
xxx = InputBox("Masukan Kode Pegawai yang dicari :", "Ubah Data")
Set rscari = New ADODB.Recordset
rscari.Open "select * from TBPEGAWAI where KODEPEGAWAI='" & xxx & "' ", penghubung, adOpenDynamic, adLockOptimistic
If rscari.EOF Then
    MsgBox "Data Tidak ditemukan"
    Call KOSONGKAN
    Call TEXTBOX_FALSE
    Call EVENSIMPAN
    CMD_UBAH.SetFocus
Else
    Call TAMPILKAN
    Call TEXTBOX_TRUE
    Call EVENUBAH
    CMD_SIMPAN.SetFocus
End If

11. Menulis coding pada cmd_hapus :
xxx = InputBox("Masukan Kode Pegawai yang diHapus :", "Hapus Data")
Set rscari = New ADODB.Recordset
rscari.Open "select * from TBPEGAWAI where KODEPEGAWAI='" + xxx + "' ", penghubung, adOpenDynamic, adLockOptimistic
If rscari.EOF Then
    MsgBox "Data Tidak ditemukan"
    Call EVENSIMPAN
    CMD_HAPUS.SetFocus
Else
    Call TAMPILKAN
    tanya = MsgBox("Yakin Data Ini akan Dihapus?", vbQuestion + vbYesNo, "Konfirmasi")
    If tanya = 6 Then
        penghubung.Execute "delete from TBPEGAWAI where KODEPEGAWAI='" & xxx & "' "
    rspegawai.Requery
    Call KOSONGKAN
    Call EVENHAPUS
    End If
End If

  1. Evaluasi terhadap program yang telah dibuat
Di Run jika masih ada kekurangan dan eror (bug), maka harus diperbaiki dan disempurnakan.
  1. Penyajian program.
  2. Selesai.
Catatan :
Dalam contoh program yang saya buat ini, terdiri dari dua form, form pegawai dan form SPPD. Namun, dalam tugas ini saya hanya membuat alur program dan flowchartnya secara detail hanya pada form pegawai. Adapun FLOWCHART dari program pengisian formulir SPPD ini kuranglebihnya sebagai berikut :

Untuk projectnya, silahkan Download disini. Mohon Maaf jika masih banyak kekurangan dan dan mungkin kesalahan. u

Jumat, 18 November 2011

UAS Teori Pemrograman Bahasa Rakitan


Pemrograman Bahasa Rakitan
Dosen : Nahar Mardiyanto, M.Kom
NAMA                    :     Ari Dwijayanti
NIM                         :     SIA201036

UJIAN AKHIR SEMESTER
TEORI.

1.      No Servis dan No Interupt
no service:no fungsi pada dos untuk melakukan perintah sesuai dengan penomoran angak service
no service:nilai service yang terdapat pada nilai ah yang mana nilai ini yang akan di kerjakan oleh interrupter Misalkan bila nilai AH adalah 2 maka komputer akan mencetak sebuah karakter, berdasarkan kode ASCII yang terdapat pada register DL. Bila nilai pada register AH bukanlah 2, pada saat dilakukan interupsi 21h maka yang dikerjakaan oleh komputer akan lain lagi.jadi no service mempunyai nilai pasangannya sendiri-sendiri dengan nilai interrupt.  
Interrupt adalah permintaan kepada microprocessor untuk melakukan suatu perintah. Ketika terjadi permintaan interupsi, microprocessor akan mengeksekusi interrupt handler ,Setiap interrupt handler itu memiliki alamat masing – masing yang disimpan dalam bentuk array yang masing – masing terdiri dari 4 byte (2 offset dan 2 segment). Array ini disebut vektor interupsi . Vektor interupsi ini disusun berdasarkan nomor interupsi yaitu dari hexa maksudnya adalah bahwa setiap interrupt itu dibagi menjadi beberapa bagian yang mempunyai tugas masing – masing. Tetapi ada juga interrupt yang tidak memiliki service, contohnya int 29.
 Bila dihasilkan interupsi 21h apa yang akan dikerjakan oleh komputer ?. Jawabnya, ada banyak sekali kemungkinan. Pada saat terjadi interupsi 21h maka pertama-tama yang dilakukan komputer adalah melihat isi atau nilai apa yang terdapat pada register AH. Misalkan bila nilai AH adalah 2 maka komputer akan mencetak sebuah karakter, berdasarkan kode ASCII yang terdapat pada register DL. Bila nilai pada register AH bukanlah 2, pada saat dilakukan interupsi 21h maka yang dikerjakaan oleh komputer akan lain lagi.

2.      Dalam menerima input karakter dari keyboard, dapat dilakukan dengan menggunakan beberapa no service. Contoh no service adalah :
02h,01h,07h
02h: bila nilai AH adalah 2 maka komputer akan mencetak sebuah   karakter, berdasarkan kode ASCII yang terdapat pada register DL.
01h: no service ini berfungsi untuk mengInput 1 Karakter (Keyboard Input)
 Mengambil Input Dari Keyboard (Standard Input Device),
 lalu menampilkan karakter ke layar (Standard Output Device) dan menyimpan karakter tersebut di AL.
 Penekanan tombol Ctrl-Break akan dicek. Jika tombol tersebut ditekan, interupt 23h akan dieksekusi
07h: no service ini berfungsi untuk mengInput 1 Karakter Tanpa Echo Tidak Mengecek Ctrl-C (Direct Console Input Without
 Echo). Menunggu hingga sebuah karakter diketikkan dari standard input device dan menyimpannya ke
 register AL. Service ini sangat mirip dengan service 01h, hanya saja pada service ini karakter tak
ditampilkan ke layar. Service ini tidak mengecek Ctrl-C atau Ctrl-Break. Service ini sering dipakai untuk
 pemasukan password karena tak menampilkan karakter yang diketikkan
08h: no service ini berfungsi untuk mengInput 1 Karakter Tanpa Echo Mengecek Ctrl-C (Console Input Without Echo With ^C).
 Menunggu hingga sebuah karakter diketikkan dari standard input device dan menyimpannya ke AL.
 Service ini juga tidak menampilkan karakter yang diketikkan ke layar monitor tapi mencek Ctrl-C atau
 Ctrl-Break. Jika tombol tersebut ditekan, INT 23h akan dieksekusi.

3. .model small
          .code
           org 100h
           mulai :
       mov ah,07h
                                int 21h
     mov ah, 02h
     mov dl,al
int 21h
int 20h
end mulai

4.sistem penginjeksian firus ke dalam system aplikasi dengan cara membatasi scope pencarian penduplikatan di mana dalam menjalankan routine pada saat computer idle sehingga tidak terdeteksi oleh user,virus ini akan mencari file com jika tidak ketemu dia akan mencari file berikutnya sampai ketemu dan jika ketemu dia akan mereplace dan mengcopy setelah  itu menghidden dan menginjeksi system program aplikasi jika tidak menemukan file com maka dia akan keluar dari pencarian file com.

5.dengan menggunakan bahasa assembly akan dengan mudah membelokan interupsi sebuah software/hardware hal ini akan dengan mudah merubah pengalamatan sebuah hardware hanya dengan menggunakan bahasa yg simple atau bahasa tingkat rendah.

Kamis, 10 November 2011

Pemrograman Visual Lanjut 1

Alhamdulillah, Sebuah Program sederhana menggunakan Microsoft Visual Basic 6.0 beserta Database nya dalam Microsoft Acces telah selesai. Walaupun contoh program ini masih sangat sederhana dan masih banyak kekurangannya, semoga dapat bermanfaat. Berikut adalah contoh program dalam sebuah Perpustakaan, Silahkan Download disini.

Sabtu, 15 Oktober 2011

PEMROGRAMAN BAHASA RAKITAN


UTS PRAKTEK
PEMROGRAMAN BAHASA RAKITAN
Dosen : Nahar Mardiyantoro, M.Kom

1.       Menampilkan karakter beratribut M-A dengan foreground merah dan background hitam :
Flowchart :

.model small
.code
org 100h
mulai:
        mov ah,09h
        mov bl,00001100b
        mov cx,13           
int 10h         
a:
        mov ah,02h
        mov dl,77
        mov cx,13
ulang:
        int 21h
        dec dl
        loop ulang
int 20h
end mulai


jika coding tersebut dijalankan akan tampak seperti dalam gambar berikut :


Mov ah,09h adalah perintah untuk memasukan instruksi dengan alamat mov bl,00001100b. Intruksi mov bl,00001100b berfungsi untuk merubah karakter hasilnya menjadi warna merah. Mov cx,13 adalah perulangan sebanyak 13 kali perulangan yang dalam coding diatas akan menampilkan 13 karakter dimulai dari huruf M sampai dengan A. Mov ah,02h adalah perintah untuk mengcopy atau memindahkan. Mov dl,77 adalah intruksi yang berisi bilangan hexa yang merupakan karakter ascii yang akan dicetak. 77 adalah ascii dari “M”.  Karena hasil yang akan ditampilkan adalah pengurangan dari huruf M – A, maka menggunakan dec dl. Perulangan akan berlaku hingga nilai dl = 64 baru stop.

2.       Menampilkan kalimat jika menemukan huruf tertentu maka pencetakan selesai.
Flowchart :



Coding :
.model small
.code
org 100h
mulai :
            jmp ulang
            vkal db 'ARI DWIJAYANTI$'
ulang :
            mov dl, vkal[bx]
            mov ah, 02h
            int 21h
            inc bx
            mov ax, bx
            cmp ax,9
            je keluar
            jmp ulang
        keluar: int 20h

end mulai
 
Jika dijalankan :


 Jmp adalah perintah loncat/lompat. mov dl,vkal [bx] maka dengan alamat vkal[bx] akan dimasukan ke dl, yang dalam intruksi di atas berisi ARI DWIJAYANTI. mov ah 02h pasangan dengan int 21h merupakan perintah untuk menampilkan . inc bx  artinya mengurangi 1 karakter yang ada didalam bx mov ax secara khusus register AX digunakan pada operasi aritmatika dalam operasi pembagian dan pengurangan sedangkan bx biasanya digunakan untuk menunjukan suatu alamat offset dari suatu segmen. cmp ax,9 adalah perintah membandingkan (compare) dengan 9 karakter yang diminta yaitu jika bertemu dengan huruf Y maka akan berhenti mencetak. Jika sudah bertemu dengan karakter yang dimaksud maka akan keluar. Sebaliknya selamat belum menemukan huruf Y, maka instruksi akan diulang terus.


 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | Best Buy Printable Coupons