Minggu, 29 Januari 2012

Jawaban Soal 2 (Yusuf fahlevi)
Kasus:
“List View”
Listing Program:

Public Class frmMahasiswa

    Private Sub btnSelesai_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelesai.Click
        End
    End Sub

    Sub Proses()
        Dim xJenjang, xJurusan As String
        txtTahun.Text = "20" & Microsoft.VisualBasic.Left(txtNPM.Text, 2)

        xJenjang = Microsoft.VisualBasic.Mid(txtNPM.Text, 3, 1)
        If xJenjang = "0" Then
            txtJenjang.Text = "Diploma-III"
        ElseIf xJenjang = "1" Then
            txtJenjang.Text = "Strata-I"
        Else
            txtJenjang.Text = ""
        End If

        xJurusan = Microsoft.VisualBasic.Mid(txtNPM.Text, 4, 2)
        If xJurusan = "20" Then
            txtJurusan.Text = "Manajemen Informatika"
        ElseIf xJurusan = "10" Then
            txtJurusan.Text = "Teknik Informatika"
        ElseIf xJurusan = "11" Then
            txtJurusan.Text = "Sistem Informasi"
        Else
            txtJurusan.Text = ""
        End If
    End Sub

    Sub CariAbjad()
        If txtNilai.Text >= 80 Then
            txtHuruf.Text = "A"
        ElseIf txtNilai.Text >= 75 Then
            txtHuruf.Text = "B+"
        ElseIf txtNilai.Text >= 70 Then
            txtHuruf.Text = "B"
        ElseIf txtNilai.Text >= 65 Then
            txtHuruf.Text = "C+"
        ElseIf txtNilai.Text >= 60 Then
            txtHuruf.Text = "C"
        ElseIf txtNilai.Text >= 50 Then
            txtHuruf.Text = "D"
        Else
            txtHuruf.Text = "E"
        End If
    End Sub

    Private Sub txtNilai_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNilai.KeyPress
        If e.KeyChar = Chr(13) Then
            Call CariAbjad()
            btnSimpan.Focus()
        End If
    End Sub

    Sub BuatTabel()
        LV.Columns.Add("NPM", 60, HorizontalAlignment.Left)
        LV.Columns.Add("Nama", 150, HorizontalAlignment.Left)
        LV.Columns.Add("Jurusan", 100, HorizontalAlignment.Center)
        LV.Columns.Add("Jenjang", 70, HorizontalAlignment.Center)
        LV.Columns.Add("Tahun", 50, HorizontalAlignment.Center)
        LV.Columns.Add("Nilai", 50, HorizontalAlignment.Center)
        LV.Columns.Add("Huruf", 50, HorizontalAlignment.Center)
        LV.View = View.Details
        LV.GridLines = True
        LV.FullRowSelect = True
    End Sub

    Sub IsiTabel()
        Dim Lst As New ListViewItem
        Lst.Text = txtNPM.Text
        Lst.SubItems.Add(txtNama.Text)
        Lst.SubItems.Add(txtJurusan.Text)
        Lst.SubItems.Add(txtJenjang.Text)
        Lst.SubItems.Add(txtTahun.Text)
        Lst.SubItems.Add(txtNilai.Text)
        Lst.SubItems.Add(txtHuruf.Text)
        LV.Items.Add(Lst)
    End Sub

    Private Sub frmMahasiswa_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        BuatTabel()
        txtNPM.Focus()
    End Sub

    Sub HapusIsian()
        txtNPM.Text = ""
        txtNama.Text = ""
        txtJurusan.Text = ""
        txtJenjang.Text = ""
        txtTahun.Text = ""
        txtNilai.Text = ""
        txtHuruf.Text = ""
        txtNPM.Focus()
    End Sub

    Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpan.Click
        IsiTabel()
        HapusIsian()
    End Sub

    Private Sub btnHapusSemua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHapusSemua.Click
        LV.Items.Clear()
    End Sub

    Private Sub btnHapusSatu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHapusSatu.Click
        LV.Items.Remove(LV.SelectedItems(0))
    End Sub

    Private Sub btnBersih_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBersih.Click
        HapusIsian()
    End Sub

    Private Sub txtNPM_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtNPM.TextChanged
        Call Proses()
    End Sub
End Class

Hasil Program:


Senin, 10 Oktober 2011

Bahasa Mesin Komputer

Kode mesin atau bahasa mesin adalah sistem instruksi dan data yang dijalankan langsung oleh komputer central processing unit. Kode mesin dapat dianggap sebagai primitif (dan rumit) atau sebagai bahasa pemrograman tingkat terendah representasi dari disusun dan / atau program komputer rakitan. Program dalam menafsirkan bahasa  tidak diwakili oleh kode mesin tetapi, walaupun penerjemah mereka (yang dapat dilihat sebagai sebuah prosesor melaksanakan program tingkat yang lebih tinggi) sering terjadi. Kode mesin kadang-kadang disebut kode asli ketika mengacu pada platform-bagian dari bahasa tergantung fitur atau perpustakaan. kode Mesin tidak boleh disamakan dengan apa yang disebut “bytecode”, yang dilaksanakan oleh seorang juru bahasa.
Kode Mesin Instruksi
Setiap prosesor atau keluarga prosesor memiliki set instruksi kode mesin. Instruksi pola bit yang oleh desain fisik sesuai dengan perintah yang berbeda ke mesin. Set instruksi demikian khusus untuk kelas prosesor menggunakan (banyak) arsitektur yang sama. Penerus atau derivatif desain prosesor sering mencakup semua instruksi dari pendahulunya dan dapat menambah petunjuk tambahan. Kadang-kadang desain pengganti akan menghentikan atau mengubah arti dari beberapa kode instruksi (biasanya karena dibutuhkan untuk keperluan baru), kode yang mempengaruhi kompatibilitas sampai batas tertentu, bahkan hampir sepenuhnya kompatibel dengan prosesor mungkin akan menampilkan perilaku yang sedikit berbeda untuk beberapa instruksi tetapi ini jarang yang masalah. Sistem mungkin juga berbeda dalam rincian lainnya, seperti pengaturan memori, sistem operasi, atau perangkat periferal; karena biasanya program bergantung pada faktor-faktor seperti, sistem yang berbeda akan biasanya tidak menjalankan kode mesin yang sama, bahkan ketika jenis prosesor yang sama digunakan.
Sebuah set instruksi kode mesin mungkin memiliki semua instruksi yang sama panjang, atau hal itu mungkin karena panjang variabel-instruksi. Bagaimana pola diorganisir sangat bervariasi dengan arsitektur tertentu dan sering juga dengan jenis instruksi. Sebagian besar instruksi memiliki satu atau lebih opcode bidang yang menentukan jenis instruksi dasar (seperti aritmatika, logis, melompat, dll) dan operasi sebenarnya (seperti menambah atau membandingkan) dan bidang lain yang mungkin memberikan jenis operand (s) , mode pengalamatan (s), pengalamatan offset (s) atau indeks, atau nilai aktual itu sendiri (Operand konstan seperti yang terdapat dalam sebuah instruksi disebut immediates).
Program
Sebuah program komputer adalah suatu urutan instruksi yang dijalankan oleh CPU. Sementara prosesor mengeksekusi instruksi sederhana satu demi satu, prosesor superscalar mampu menjalankan beberapa instruksi sekaligus. Program aliran mungkin dipengaruhi oleh khusus ‘melompat’ instruksi yang mentransfer eksekusi ke instruksi lain dari yang di bawah satu. Lompatan bersyarat diambil (eksekusi berlanjut pada alamat lain) atau tidak (eksekusi berlanjut pada instruksi berikutnya) tergantung pada beberapa kondisi.
Bahasa Assembly
Yang jauh lebih mudah dibaca rendition of bahasa mesin, disebut bahasa assembly, menggunakan kode mnemonic untuk merujuk pada instruksi kode mesin, bukan hanya menggunakan instruksi “nilai numerik. Sebagai contoh, pada prosesor Zilog Z80, kode mesin 00.000.101, yang menyebabkan CPU untuk pengurangan prosesor B mendaftar, akan diwakili dalam bahasa assembly sebagai Desember B.
Contoh
Arsitektur MIPS memberikan contoh khusus untuk instruksi kode mesin yang selalu 32 bit panjang. Jenis umum instruksi yang diberikan oleh op (operasi) bidang, 6 bit tertinggi. J-jenis (melompat) dan I-jenis (langsung) instruksi sepenuhnya ditentukan oleh op. R-type (pendaftaran) instruksi meliputi bidang tambahan Fungsi untuk menentukan operasi yang tepat. Kolom yang digunakan dalam tipe ini adalah:

rs, rt, dan rd menunjukkan daftar Operand; shamt memberikan jumlah pergeseran dan alamat atau lapangan langsung berisi operand langsung.
Misalnya menambahkan register 1 dan 2 dan menempatkan hasilnya dalam register 6 dikodekan:
Memanggil sebuah nilai ke dalam register 8, diambil dari memori sel sel setelah lokasi 68 yang tercantum dalam register 3:

Melompat ke alamat 1024

Hubungan terfokus
Dalam beberapa arsitektur komputer, kode mesin ini diterapkan oleh lapisan yang lebih mendasar dari program yang disebut microprograms, menyediakan antarmuka bahasa mesin Common melintasi sebuah garis atau keluarga model yang berbeda dengan komputer yang mendasari dataflows sangat berbeda. Hal ini dilakukan untuk memfasilitasi port dari program bahasa mesin antara model yang berbeda. Contoh dari penggunaan ini adalah IBM System/360 komputer keluarga dan para penerus mereka. Dengan jalan dataflow lebar dari 8 bit dengan 64 bit dan seterusnya, mereka tetap menyajikan sebuah arsitektur umum pada tingkat bahasa mesin di seluruh baris.
Menggunakan lapisan terfokus untuk menerapkan sebuah emulator memungkinkan komputer untuk menyajikan arsitektur komputer yang sama sekali berbeda. Baris System/360 ini digunakan untuk mengizinkan program port dari mesin IBM sebelumnya untuk keluarga baru komputer, misalnya IBM 1401/1440/1460 emulator pada IBM S/360 model 40.

Dasar Program Assembly

Bahasa Assembly adalah bahasa komputer yang kedudukannya di antara bahasa mesin dan bahasa level tinggi misalnya bahasa C atau Pascal. Bahasa C atau Pascal dikatakan sebagai bahasa level tinggi karena memakai kata-kata dan pernyataan yang mudah dimengerti manusia, meskipun masih jauh berbeda dengan bahasa manusia sesungguhnya. Bahasa mesin adalah kumpulan kode biner yang merupakan instruksi yang bisa dijalankan oleh komputer. Sedangkan bahasa Assembly memakai kode Mnemonic untuk menggantikan kode biner, agar lebih mudah diingat sehingga lebih memudahkan penulisan program.
Program yang ditulis dengan bahasa Assembly terdiri dari label; kode mnemonic dan lain sebagainya, pada umumnya dinamakan sebagai program sumber (Source Code) yang belum bisa diterima oleh prosesor untuk dijalankan sebagai program, tapi harus diterjemahkan dulu menjadi bahasa mesin dalam bentuk kode biner.
Program sumber dibuat dengan program editor biasa, misalnya Notepad pada Windows atau SideKick pada DOS, selanjutnya program sumber diterjemahkan ke bahasa mesin dengan menggunakan program Assembler. Hasil kerja program Assembler adalah “program objek” dan juga “assembly listing”.
Program Objek berisikan kode kode bahasa mesin, kode-kode bahasa mesin inilah yang diumpankan ke memori-program prosesor. Dalam dunia mikrokontroler biasanya program objek ini diisikan ke UV EPROM, dan khusus untuk mikrokontroler buatan Atmel, program ini diisikan ke dalam Flash PEROM yang ada di dalam chip AT89C51 atau AT89C2051.
Assembly Listing merupakan naskah yang berasal dari program sumber, dalam naskah tersebut pada bagian sebelah setiap baris dari program sumber diberi tambahan hasil terjemahan program Assembler. Tambahan tersebut berupa nomor memori-program berikut dengan kode yang akan diisikan pada memori-program bersangkutan. Naskah ini sangat berguna untuk dokumentasi dan sarana untuk menelusuri program yang ditulis.
Yang perlu diperhatikan adalah setiap prosesor mempunyai konstruksi yang berlainan, instruksi untuk mengendalikan masing-masing prosesor juga berlainan, dengan demikian bahasa Assembly untuk masing-masing prosesor juga berlainan, yang sama hanyalah pola dasar cara penulisan program Assembly saja.


Gambar 7
Proses Assembly
Konstruksi Program Assembly
Program sumber dalam bahasa Assembly menganut prinsip 1 baris untuk satu perintah, setiap baris perintah tersebut bisa terdiri atas beberapa bagian (field), yakni bagian Label, bagian mnemonic, bagian operand yang bisa lebih dari satu dan terakhir bagian komentar. Untuk membedakan masing-masing bagian tersebut dibuat ketentuan sebagian berikut:
o Masing-masing bagian dipisahkan dengan spasi atau TAB, khusus untuk operand yang lebih dari satu masing-masing operand dipisahkan dengan koma.
o Bagian-bagian tersebut tidak harus semuanya ada dalam sebuah baris, jika ada satu bagian yang tidak ada maka spasi atau TAB sebagai pemisah bagian tetap harus ditulis.
· Bagian Label ditulis mulai huruf pertama dari baris, jika baris bersangkutan tidak mengandung Label maka label tersebut digantikan dengan spasi atau TAB, yakni sebagai tanda pemisah antara bagian Label dan bagian mnemonic.
Label mewakili nomor memori-program dari instruksi pada baris bersangkutan, pada saat menulis instruksi JUMP, Label ini ditulis dalam bagian operand untuk menyatakan nomor memori-program yang dituju. Dengan demikian Label selalu mewakili nomor memori-program dan harus ditulis dibagian awal baris instruksi.
Disamping Label dikenal pula Symbol, yakni satu nama untuk mewakili satu nilai tertentu dan nilai yang diwakili bisa apa saja tidak harus nomor memori-program. Cara penulisan Symbol sama dengan cara penulisan Label, harus dimulai di huruf pertama dari baris instruksi.
Mnemonic (arttinya sesuatu yang memudahkan diingat) merupakan singkatan perintah, dikenal dua macam mnemonic, yakni manemonic yang dipakai sebagai instruksi mengendalikan prosesor, misalnya ADD, MOV, DJNZ dan lain sebagainya. Ada pula mnemonic yang dipakai untuk mengatur kerja dari program Assembler misalnya ORG, EQU atau DB, mnemonis untuk mengatur kerja dari program Assembler ini dinamakan sebagai ‘Assembler Directive’.
Operand adalah bagian yang letaknya di belakang bagian mnemonic, merupakan pelangkap bagi mnemonic. Kalau sebuah instrksi di-ibaratkan sebagai kalimat perintah, maka mnemonic merupakan subjek (kata kerja) dan operand merupakan objek (kata benda) dari kalimat perintah tersebut.
Tergantung pada jenis instruksinya, operand bisa berupa berbagai macam hal. Pada instruksi JUMP operand berupa Label yang mewakili nomor memori-program yang dituju misalnya LJMP Start, pada instruksi untuk pemindahan/pengolahan data, operand bisa berupa Symbol yang mewakili data tersebut, misalnya ADD A,#Offset. Banyak instruksi yang operandnya adalah register dari prosesor, misalnya MOV A,R1. Bahkan ada pula instruksi yang tidak mempunyai operand, misalnya RET.
Komentar merupakan bagian yang sekedar sebagai catatan, tidak berpengaruh pada prosesor juga tidak berpengaruh pada kerja program Assembler, tapi bagian ini sangat penting untuk keperluan dokumentasi.
Assembler Directive
Seperti sudah dibahas di atas, bagian Mnemonic dari sebuah baris perintah bisa merupakan instruksi untuk prosesor, maupun berupa Assembler Directive untuk mengatur kerja dari program Assembler. Mnemonic untuk instruksi prosesor, sangat tergantung pada prosesor yang dipakai, sedangkan mnemonic untuk Assembler Directive tergantung pada program Assembler yang dipakai. Meskipun demikian, terdapat beberapa Assembler Directive yang umum, yang sama untuk banyak macam program Assembler.
Assembler Directive yang bersifat umum tersebut, antara lain adalah
o ORG – singkatan dari ORIGIN, untuk menyatakan nomor memori yang dipakai setelah perintah itu, misalnya ORG $1000 maka memori berikutnya yang dipakai Assembler adalah $1000. ORG berlaku untuk memori program maupun memori-data. Dalam hal penomoran memori, dikenal tanda $ sebagai awalan untuk menyatakan nomor memori dari baris bersangkutan. Misalnya :
ORG 1000
LJMP $+1000
Operand $+$500 mempunyai arti nomor memori-program bersangkutan ditambah dengan $500, karena instruksi LJMP ini terletak persis di bawah ORG $1000 maka nomor memori-program baris ini adalah $1000, sehingga operand $+$500 bernilai $1500 dan instruksi ini indentik dengan LJMP $1500
o EQU – singkatan dari EQUATE, dipakai untuk menentukan nilai sebuah Symbol.
Misalnya Angka88 EQU 88 memberi nilai 88 pada Symbol Angka88, atau CR EQU $0D mempunyai makna kode ASCII dari CR (Caarriage Return) adalah $08.
o DB – singkatan dari DEFINE BYTE, dipakai untuk memberi nilai tertentu pada memori-program. Nilai tersebut merupakan nilai 1 byte, bisa berupa angka ataupun kode ASCII. DB merupakan Assembler Directive yang dipakai untuk membentuk teks maupun tabel.
ORG $0200
STRING DB ‘Atmel AT89C2051’
PANJANG EQU $-STRING
o ORG $0200 memerintahkan program Assembler agar bekerja mulai dari memori-program nomor $0200, instruksi selanjutnya memerintahkan program Assembler agar mengisi memori-program nomor $0200 dan berikutnya dengan tulisan ‘Atmel AT89C2051’’ (yang diisikan adalah kode ASCII dari ‘A’, ‘t’ dan seterusnya), PANJANG dari STRING bisa dihitung dengan cara PANJANG EQU $-STRING, yakni selisih dari nomor memori-program baris bersangkutan dikurangi dengan nomor awal memori-program yang diisi STRING.
o DW – singkatan dari DEFINE WORD, dipakai untuk memberi nilai 2 byte ke memori-program pada baris bersangkutan. Assembler Directive ini biasa dipakai untuk membentuk suatu tabel yang isinya adalah nomor-nomor memori-program.
o DS – singkatan dari Define Storage, Assembler Directive ini dipakai untuk membentuk variable. Sebagai variabel tentu saja memori yang dipakai adalah memori-data (RAM) bukan memori-program (ROM). Hal ini harus benar-benar dibedakan dengan Assembler Directive DB dan DW yang membentuk kode di memori-program. Dan karena DS bekerja di RAM, maka DS hanya sekedar menyediakan tempat di memori, tapi tidak mengisi nilai pada memori bersangkutan.
Perintah-Perintah Command Prompt Pada Windows XP

Untuk informasi lebih spesifik tentang suatu perintah, ketik “HELP nama-perintah” di DOS prompt
ASSOC Menampilkan atau mengubah asosiasi ekstensi file.
AT Menjadwalkan perintah dan program agar berjalan di komputer.
ATTRIB Menampilkan atau mengubah atribut file.
BREAK Mengeset atau menghilangkan pengecekan extended CTRL+C.
CACLS Menampilkan atau mengubah access control lists (ACLs) dai files.
CALL Memanggil sebuah program batch dari program batch yang lain.
CD Menampilkan nama atau mengubah direktori sekarang.
CHCP Menampilkan atau mengubah active code page number.
CHDIR Menampilkan nama atau mengubah direktori sekarang.
CHKDSK Memeriksa sebuah disket/harddisk dan menampilkan laporan status..
CHKNTFS Menampilkan atau mengubah pemeriksaan disket pada saat booting.
CLS Menghapus layar..
CMD Menjalankan interpreter command Windows yang baru.
COLOR Mengubah warna foreground dan background pada command prompt.
COMP Membandingkan isi dari dua atau beberapa file.
COMPACT Menampilkan atau mengubah kompresi file pada partisi NTFS.
CONVERT Mengkonversi FAT ke NTFS. Anda tidak dapat mengkonversi drive yang sedang aktif.
COPY Menyalin satu atau beberapa file ke lokasi lain.
DATE Menampilkan atau mengubah tanggal.
DEL Menghapus satu atau beberapa file.
DIR Menampilkan daftar file dan subdirektori dalam sebuah direktori.
DISKCOMP Membandingkan isi dari dua buah disket.
DISKCOPY Menyalin isi dari satu disket ke disket lain.
DOSKEY Mngedit baris perintah, memanggil kembali perintah Windows, dan membuat macro.
ECHO Menampilkan pesan, atau mengubah command echoing on atau off.
ENDLOCAL Mengakhiri localization dari environment changes in a batch file.
ERASE Menghapus satu atau beberapa fie.
EXIT Keluar dari program CMD.EXE.
FC Membandingkan 2 atau beberapa file, dan Menampilkan perbedaan file-file tersebut.
FIND Mencari string teks dalam sebuah file atau beberapa file.
FINDSTR Mencari string dalam file.
FOR Menjalankan perintah yang spesifik untuk masing-masing file dalam sekumpulan file.
FORMAT Mem-Formats sebuah hardisk/disket untuk digunakan dalam Windows.
FTYPE Menampilkan atau mengubah tipe file yang digunakan dalam asosiasi ekstensi file.
GOTO Mengarahkan Windows command interpreter ke baris yang berlabel dalam sebuah program batch.
GRAFTABL Membolehkan Windows untuk menampilkan sekumpulan karakter extended dalam mode grafik.
HELP Menyediakan informasi Help untuk perintah-perintah Windows.
IF Menjalankan proses kondisi dalam program batch.
LABEL Membuat, mengubah, atau menghapus volume label dari sebuah disket/harddisk.
MD Membuat direktori.
MKDIR Membuat direktori.
MODE Mengkonfigurasi system device.
MORE Menampilkan hasil perlayar..
MOVE Memindahkan satu atau beberapa file dari satu direktori ke direktori yang lain.
PATH Menampilkan ata mengeset search path untuk executable files.
PAUSE Menunda pemrosesan dari sebuah batch file dan Menampilkan pesan.
POPD Mengembalikan nilai sebelumnya dari direktori sekarang yang disimpan oleh PUSH.
PRINT Mencetak file teks.
PROMPT Mengubah command prompt Windows.
PUSHD Menyimpan direktori sekarang kemudian mengubahnya.
RD Menghapus direktori.
RECOVER Mengembalikan informasi yang masih dapat dibaca dari sebuah disket/harddisk yang sudah bad/rusak.
REM Merekam kemontar dalam batch files atau CONFIG.SYS.
REN Mengubah nama file.
RENAME Mengubah nama file.
REPLACE Menggantikan file.
RMDIR Menghapus direktori.
SET Menampilkan, mengatur, atau menghapus Windows environment variables.
SETLOCAL Memulai localization dari environment changes dalam sebuah batch file.
SHIFT Menggeser posisi parameters yang replacable dalam batch files.
SORT Mensortir input.
START Memulai jendela terpisah untuk menjalankan perintah atau program spesifik.
SUBST Meng-asosiasikan sebuah path dengan drive letter.
TIME Menampilkan atau mengatur waktu sistem.
TITLE Mengatur judul jendela untuk sesi CMD.EXE.
TREE Menampilkan secara grafis struktur direktori dari sebuah drivve atau path.
TYPE Menampilkan isi dari sebuah file eks.
VER Menampilkan versi windows.
VERIFY memberitahu Windows untuk mem-verifikasi file anda telah disimpan secara benar dalam harddisk/disket.
VOL Menampilkan nomor serial dan volume label dari sebuah harddisk/disket
XCOPY Menyalin file dan pohon direktori.