Blog Nur Akhwan

Blog Nur Akhwan - Blog tentang Pemrograman Web dengan Bahasa PHP, Download Gratis Aplikasi Web PHP

Di bawah ini merupakan listing program dari ke tujuh mode pengalamatan (Addressing Mode) yang saya jadikan menjadi 1 program. Cek this out, mohon koreksi jika ada kesalahan. CMIIW...  :)  :)  :)
;DEKLARASI MAKRO
;Makro Cetak Ganti Baris => untuk ganti baris
ganti_baris macro
 local kal
 kal db 13, 10, '$'
 mov ah,09h
 lea dx,kal
 int 21h
endm
;cetak kalimat
cetak_kal macro kalimat
 mov ah,09h
 lea dx,kalimat
 int 21h
endm
;MAKRO cetak angka
cetak_angka macro angka
local proses, ulang, cetak
proses:
 mov ax,angka
 mov bx,10
 xor cx,cx
ulang:
 xor dx,dx
 div bx
 push dx
 inc cx
 cmp ax,0
 jne ulang
cetak:
 pop dx
 add dl,'0'
 mov ah,02h
 int 21h
 loop cetak
endm
;ENDS MAKROOOOOOOOOOOOOOOOOOOOOOOOOOOOO
;==============================================
.model small
.code
org 100h
proses: jmp mulai
Kar DB 'A'
Kal DB 'ABCDEF'
A   DB 'SELAMAT'
Dia DB 'ABCDEFGHIJKL'
Mahasiswa STRUC
Nim Dw 0 ; 2 byte
Usia Dw 0 ; 1 byte
Nilai Dw 0,0,0 ; 3 byte
Mahasiswa ENDS
Kelas Mahasiswa 10 DUP (<>)
;===============================================
;CONTOH IMMEDIATE ADDRESSING DAN REGISTER ADDRESSING
mulai:
mov al, 65  ;Immediate Addressing
mov ah, 02h ;servis mencetak
mov dl, al  ;Register Addressing
int 21h     ;cetak nilai int 20h
ganti_baris
ganti_baris
;===============================================
;CONTOH DIRRECT ADDRESSING
MOV DL,Kar ;Direct addressing
MOV AH,02h ;servis cetak karakter
INT 21h
ganti_baris
ganti_baris
;================================================
;CONTOH INDIRRECT ADDRESSING
LEA BX,Kal ; Ambil Offset Kal
MOV CX,2
Ulang:
MOV DL,[BX]  ;Register indirect addressing
MOV AH,02h   ;servis cetak karakter
INT 21h
ADD BX, 2 ;BX=BX+1
LOOP Ulang
ganti_baris
ganti_baris
;=================================================
;CONTOH BASE RELATIVE ADDRESSING
xor bx, bx  ;BX=0, penunjuk karakter pertama yg dicetak
mov cx, 7  ;jumlah perulangan
ulang2:
mov dl, A[bx] ;ambil tabel A yang ke BX (untuk pertama kali BX=0)
mov ah, 02h
int 21h
inc bx      ;sama dengan bx+1
loop ulang2
ganti_baris
ganti_baris
;=================================================

;CONTOH DIRECT INDEXED ADDRESSING
lea bx, Dia
xor si, si
mov cx, 12

ulang3:
mov dl, Dia[si]
mov ah, 02h
int 21h
inc si
loop ulang3
ganti_baris
ganti_baris
;==================================================

;CONTOH BASED INDEXED ADDRESSING
LEA BX,kelas ; BX Menunjuk Offset Kelas
ADD BX,18 ; BX Menunjuk pada record ke 4
XOR SI,SI ; SI=0
MOV [BX][SI].Usia,19 ; Usia, record ke 4
cetak_angka [BX][SI].Usia
MOV [BX][SI].Nilai,76 ; Nilai pertama, record ke 4
cetak_angka [BX][SI].Nilai
MOV [BX][SI+1].Nilai,81 ; Nilai kedua, record ke 4
cetak_angka [BX][SI+1].Nilai
MOV [BX][SI+2].Nilai,95 ; Nilai ketiga, record ke 4
cetak_angka [BX][SI+2].Nilai
;====================================================

int 20h
end proses
;SELESAAAAAAAAAAAAAAAAAAIIIIIIIIIIIIIIIII....

Penampakanannya setelah saya modifikasi sedikit adalah sebagai berikut :

Terima kasih............
Membuat aplikasi desktop di Java, sama mudahnya dengan menggunakan bahasa lainnya, seperti Visual Basic, Delphi, dan kawan-kawannya. Salah satu perbedaan Java Desktop dengan yang lainnya, adalah bahwa tampilan form di Java sebenarnya tidak ada secara real, maskutnya bahwa form di Java terbentuk oleh file .JAVA (kode program), dan desain-nya diatur oleh sebuah file .XML. Jadi mirip-mirip dengan file .HTML, yang desain tampilannya diatur oleh file .CSS.

Oke, langsung saja, ke langkah-langkah, yang paling utama :
1. Membuat Proyek Baru

2. Pilih “Java” > “Java Aplication” > “Next”

3. Isikan nama Proyeknya, Finish

4. Otomatis akan terbuat sebuah file dengan nama Main.JAVA. File inilah yang pertama kali di-load atau dipanggil saat program dieksekusi. Sebenarnya di file ini, tidak ada tampilan Form-nya, namun agar tampil formnya, akan dipanggil sebuah Form yang mana digunakan sebagai tampilan Utama dari Program yang kita buat (biasanya diberi menu-menu, status bar, dll).
Untuk memanggil form utama (dalam contoh ini “Utama.JAVA”– yang akan dibuat di langkah selanjutnya), ketikkan kode :
Utama ut = new Utama();
ut.setLocationRelativeTo(null);
ut.setVisible(true);
5. Selanjutnya buat sebuah Form Utama tersebut, dengan cara : Klik kanan di Source Package-nya (icon kotak) > New > JFrameForm. Jika tidak ada di pilihan pilih Other

6. Kemudian isikan namanya (misalnya “Utama.JAVA” – ekstensi JAVA gak usah ditulis), kemudian Finish

7. Nah di file Utama.JAVA inilah kita bisa menempatkan menu, gambar background, dll. Buatlah tampilan sebaik mungkin, karena inilah tampilan utama dari program.

8. Membuat menu, langkah-langkahnya :  Klik kanan pada desain form > Add From Pallete > Swing Menus > Menu Bar

Atau juga bisa memilih dari Pallete (di sebelah kanan Netbeans - jika tidak ada bisa dimunculkan lewat Menu Windows > Pallete) :

9. Memberi submenu  : Klik kanan nama menunya > Add From Pallete > Menu Item 
 

10. Memberi aksi pada menu/sub menu jika diklik. Maksudnya memberi aksi, yaitu mau dibawa kemana program setelah menge-klik menu/submenu tersebut, apakah menampilan form baru, atau yang lainnya. Sebagai contoh, memberi aksi menu, untuk menampilkan form baru (harus sudah dibuat form barunya), adalah sama dengan memanggil suatu kelas. 

Klik kanan pada menu/submenu > Events > Action > ActionPerformed , kemudian akan muncul kode program, nah langsung, jangan pindah ke mana-mana, ketikkan kode dengan format :

Nama_Form_YangDipanggil nama_instance = new Nama_Form_YangDipanggil();
nama_instance.setLocationRelativeTo(null); // untuk men-tengahkan tampilan form
 nama_instance.setVisible(true); // menampilkan form

sebagai contoh untuk memanggil form InputData.JAVA : 

InputData input = new InputData();
input. setLocationRelativeTo(null);
input.setVisible(true);

11. Membuat form InputData.JAVA (form yang akan dipanggil dari menu di Form Utama.JAVA). Langkah-langkahnya adalah, sama dengan membuat form utama tadi, yaitu Klik kanan pada Source Package > New > JFrameForm.

12. Nah, disini Anda dapat berkreasi dengan menambah-nambahkan komponen dari form, seperti label (Teks), Teks Field (Isian Teks), Radio Button, Textarea, Combobox, dll, dengan klik kanan > Add From Pallete > Swing Control > Pilih Sendiri, atau juga dengan meng-klik dan geser (klik and drag) ke jendela desain  dari menu Pallete di sebelah kanan (jika tidak ada, klik menu Windows > Pallete)

13. Sekian dan terimakasih, selamat mencoba. 



Dalam Bahasa Assembly ada yang dinamakan Mode Pengalamatan atau bahasa Inggrisnya adalah Addressing Mode, yaitu Mode pengalamatan berbagai didefinisikan dalam sebuah arsitektur set instruksi yang diberikan menentukan bagaimana instruksi bahasa mesin dalam arsitektur yang mengidentifikasi operan (operand atau) dari setiap instruksi. Sebuah mode pengalamatan menentukan bagaimana menghitung alamat memori efektif operand dengan menggunakan informasi yang dimiliki dalam register dan / atau konstanta yang terkandung dalam instruksi mesin atau tempat lain. Addressing mode ini terdapat 7 macam, sebagai berikut ini, yaitu :



1. IMMEDIATE ADRESSING => pengcopyan variabel angka secara langsung
2. REGISTER ADDRESSING => pencopyan variabel antar register yang berukuran sama, contoh : AL dan BH, CX dan AX, contoh penggunaan keduanya :
.model small
.code
org 100h
imme:
mov al, 65 ; disini contoh penggunaan Immediate Addressing  mencopy nilai 65 ke register AL mov ah, 02h
mov dl, al ; disini contoh penggunaan Register Addressing  mencopy nilai AL (65) ke register DL int 21h ; nilai 65 Hexa dicetak ke ASCII = huruf "A"
int 20h
end imme
3. DIRRECT ADRESSING => pengcopyan variabel dari suatu register atau simbol, contohnya  :

.model small
.code
org 100h
mulai: jmp dir
A db 45h ; kode ASCII huruf E
dir: mov ah, 02h
mov dl, A ; disini contoh penggunaan Dirrect Addressing  mencopy nilai A (45h) ke register AL int 21h ; nilai A = 45h Hexa dicetak ke ASCII = huruf "A"
int 20h
end mulai
4. REGISTER INDIRRECT ADRESSING => mengakses suatu variabel yang banyak dengan mengambil alamat efektifnya, contohnya :

.model small
.code
org 100h
mulai: jmp regin
A db 'INDONESIA'
regin:
lea bx, A ; pengambilan variabel A ("selamat sore") dengan register indirect addressing
                        ; register BX menunjukan alamat efektif dari "Kal"
mov cx, 3 ; counter untuk Looping
ulang:
mov dl, [bx] ; mengambil nilai yang ditunjukkan register BX
mov ah, 02h
int 21h
add bx, 2 ; menambahkan nilai BX=+2, sehingga BX akan menujukkan ke 2 alamat selanjutnya
loop ulang
int 20h
end mulai
5. BASE RELATIVE ADRESSING => mengakses suatu tabel dengan mengambil alamat efektifnya.

.model small
.code
org 100h
mulai: jmp barel
A db 'SELAMAT' ; kode ASCII huruf E

barel:
xor bx, bx ; BX = 0, sebagai patokan penunjuk karakter pertama yg dicetak
mov cx, 7 ; jumlah perulangan
ulang:
mov dl, A[bx] ;ambil tabel A yang ke BX (untuk pertama kali BX = 0)
mov ah, 02h int 21h
inc bx ; inc bx sama dengan bx+1
loop ulang
int 20h
end mulai
6. Direct Indexed Addressing ==> mirip  dengan  base  addressing,  perbedaannya  hanya  penggunaan  register  yang dipakai untuk perhitungan alamat  efektif. Pada indexed addressing dipakai register-register index  yaitu SI dan DI.

Contoh-nya lagi  [UNDER CONTRUCTION]

7. Base Indexed Addressing ==> merupakan  gabungan  antara  base  addressing  dan  indexed  addressing.  Mode  pengalamatan  ini sering digunakan untuk menangani array dua dimensi.  Contoh :
;MAKRO cetak angka
cetak_angka macro angka
local proses, ulang, cetak
proses:
 mov ax,angka
 mov bx,10
 xor cx,cx
ulang:
 xor dx,dx
 div bx
 push dx
 inc cx
 cmp ax,0
 jne ulang
cetak:
 pop dx
 add dl,'0'
 mov ah,02h
 int 21h
 loop cetak
endm

.MODEL SMALL
.CODE
ORG 100h
Data :   JMP Proses
Mahasiswa STRUC
Nim Dw 0 ; 2 byte
Usia Dw 0 ; 1 byte
Nilai Dw 0,0,0 ; 3 byte
Mahasiswa ENDS
Kelas Mahasiswa 10 DUP (<>)
Proses:
LEA BX,kelas ; BX Menunjuk Offset Kelas
ADD BX,18 ; BX Menunjuk pada record ke 4
XOR SI,SI ; SI=0

MOV [BX][SI].Usia,19 ; Usia, record ke 4
cetak_angka [BX][SI].Usia
MOV [BX][SI].Nilai,76 ; Nilai pertama, record ke 4
cetak_angka [BX][SI].Nilai
MOV [BX][SI+1].Nilai,81 ; Nilai kedua, record ke 4
cetak_angka [BX][SI+1].Nilai
MOV [BX][SI+2].Nilai,95 ; Nilai ketiga, record ke 4
cetak_angka [BX][SI+2].Nilai
INT 20h ; Selesai, kembali ke DOS
END Data 



Java merupakan bahasa pemrogramman yang berorientasi Obyek (ya, iyalah, lha nama mata kuliahnya aja "PEMROGRAMAN BERORIENTASI OBYEK". Inheritance, overloading dan overriding merupakan contoh aspek OO yang dapat diimplementasikan di JAVA. 

  1. Inheritance merupakan pewarisan dimana superkelas(kelas induk) mewariskan semua atributnya dan methodnya (selain yang private). 
  2. Overloading merupakan fungsionalitas yang memungkinkan kita untuk mendefinisikan beberapa method yang mempunyai nama sama tetapi memiliki body method yang berbeda. Overloading dimungkinkan karena adanya perbedaan signature (jumlah parameter method, dan tipe datanya)
  3. Overriding, yaitu mekanisme untuk melakukan penindihan/pergantian method yang sebelumnya sudah didefinisikan pada superclass dengan method yang sama(nama nya) yang ada di subclass. 


Contoh skrip Overriding : 
package tug1;
class Olahragawan {
    public void berolahraga() {
        System.out.println("Jenis Olahraganya" + "belum didefinisikan");
    }
}
class Pembalap extends Olahragawan {
    @Override
    public void berolahraga() {
       System.out.println("Pembalap membalap di sirkuit");
    }
}
class Pelari extends Olahragawan {
    @Override
    public void berolahraga() {
        System.out.println("Pelari berlari di lintasan lari");
    }
}
class Pesepakbola extends Olahragawan {
    @Override
    public void berolahraga() {
        System.out.println("Pesepakbola bermain sepakbola di stadion");
    }
}
class Main {
    public static void main(String[] args) {
        Olahragawan Ol;
        Pembalap Rossi = new Pembalap();
        Pelari Suryo = new Pelari();
        Pesepakbola Andik = new Pesepakbola();
        Ol = Rossi;
        Ol.berolahraga();
        Ol = Suryo;
        Ol.berolahraga();
        Ol = Andik;
        Ol.berolahraga();
    }
}
Contoh Skrip Overloading :
package overload;
class Mobil{
private String warna;
private int tahunProduksi;
// Konstruktor Pertama
public Mobil(String warna){
this.warna = warna;
}
// Konstruktor Kedua
public Mobil (int tahunProduksi){
this.tahunProduksi = tahunProduksi;
}
public void info1 ( ){
System.out.println("Warna : " + this.warna);
}
//Metode2
public void info2 ( ){
System.out.println("Tahun : " + this.tahunProduksi);
}
}
public class Main {
    public static void main(String[] args) {
        Mobil mobilku1=new Mobil("Putih");
        mobilku1.info1();
        Mobil mobilku2 = new Mobil (2009);
        mobilku2.info2();
    }
}
Sekian, yang bisa saya tangkap dan saya tuliskah setelah mempelajarai mata kuliah Pemrograman Berorientasi Obyek, yang membahas tentang Overriding, Overloading dan Inheritance.. Nuwun..
Beberapa hari yang lalu, Selasa, 6 Desember 2011 merupakan mata kuliah Bahasa Rakitan, yang membahas mengenai Makro, dan Pustaka Makro. Beberapa kesimpulan yang bisa saya dapatkan  (kebetulan saat itu saya sungguh-sungguh kuliah, dengan memperhatikan satu-demi satu penjelasan materi dosen) yaitu :

MAKRO
1. Makro kurang lebih mirip dengan Prosedur, hanya saja Makro lebih canggih, karena bisa menggunakan Parameter.
2. Makro tidak menggunakan perintah CALL seperti pada Procedure
3. Format penulisan Makro :
nama_macro MACRO [P1/P2]
<Program>
ENDM
4. Penggunaan Parameter ([P1/P2]) boleh ada, boleh tidak, boleh lebih dari 1 dengan dipisahkan tanda koma.
5. Jika Makro menggunakan Label, yang dipanggil lebih dari 1, maka HARUS menggunakan kata kunci LOCAL

Contoh Program dengan MAKRO :

; DEKLARASI MAKRO
; terdiri dari 3 makro, yaitu cetak_kar, cetak_kal, cetak_angka
;cetak karakter
cetak_kar macro kar
local ulang
mov cx, 2
mov ah, 02
mov dl, kar
ulang:
int 21h
loop ulang
endm
;cetak kalimat
cetak_kal macro kal
mov ah,09h
lea dx,kal
int 21h
endm
;cetak angka
cetak_angka macro angka
local proses, ulang, cetak
proses:
mov ax,angka ;ax =1234
mov bx,10 ;bx=10
xor cx,cx ;cx=0
ulang:
xor dx,dx
div bx ;dx=ax/bx
push dx ;push untuk menyimpan data ke dalam steck
inc cx
cmp ax,0
jne ulang
cetak:
pop dx ;pop untuk mengambil data dari stack
add dl,'0' ;ubah angka menjadi code ascii
mov ah,02h
int 21h
loop cetak
endm
; SELESAI deklarasi MAKRO

;mulai penggunaan makro
.model small
.code
org 100h
proses: jmp x
k db ' STMIK EL RAHMA YOGYAKARTA $'
a dw 2009
x:
cetak_kar 'w'
cetak_kal k
cetak_angka a
int 20h
end proses
PUSTAKA MAKRO

1. Bila banyak menggunakan makro, maka dapat dijadikan 1 menjadi suatu Pustaka Makro
2. Pustaka Makro adalah suatu File dengan Extensi .MCR yang berisi beberapa atau banyak Makro
3. File .MCR tadi harus 1 folder dengan file .ASM yang memanggilnya.
4. Untuk memanggilnya menggunakan kata kunci INCLUDE nama_file_pustaka.MCR

Contoh program dengan Pustaka Makro.
a. Buat file pustaka makronya dengan nama "pustaka.mcr", isinya :

;cetak karakter
cetak_kar macro kar
local ulang
mov cx, 2
mov ah, 02
mov dl, kar
ulang:
int 21h
loop ulang
endm
;cetak kalimat
cetak_kal macro kal
mov ah,09h
lea dx,kal
int 21h
endm
;cetak angka
cetak_angka macro angka
local proses, ulang, cetak
proses:
mov ax,angka ;ax =1234
mov bx,10 ;bx=10
xor cx,cx ;cx=0
ulang:
xor dx,dx
div bx ;dx=ax/bx
push dx ;push untuk menyimpan data ke dalam steck
inc cx
cmp ax,0
jne ulang
cetak:
pop dx ;pop untuk mengambil data dari stack
add dl,'0' ;ubah angka menjadi code ascii
mov ah,02h
int 21h
loop cetak
endm
b. Buat file .ASMnya, tempat memanggil file pustaka.MCR tadi, dengan nama "pakai.asm". isinya :

include pustaka.mcr  ; pemanggilan file pustaka makro __BAHAYA __Sesuaikan nama file mcr-nya
.model small
.code
org 100h
proses: jmp x
k db ' STMIK EL RAHMA YOGYAKARTA $'
a dw 2009
x:
cetak_kar 'w'
cetak_kal k
cetak_angka a
int 20h
end proses
Hasil jadinya yang pustaka makro :


Nggih, sampun, cekap semanten kemawon share bahan kuliah Pemrograman Bahasa Rakitan dari Saya : Nur Akhwan @ Teknik Informatika Angkatan 2009 STMIK El Rahma Yogyakarta