Senin, 22 April 2013

Membuat Program Sederhana Dengan Bahasa Assembler ( Bahasa mesin )

Banyak sekali bahasa pemograman yang digunakan oleh seorang programer untuk menciptakan sebuah program diantara nya bahasa pemograman Visual Basic  , Php , Java , Turbo pascal , C++ dan banyak lagi bahasa pemograman .  Salah satunya bahasa mesin yang disebut ( assembler ) . Program ini biasanya  dibuat dengan menggunakan aplikasi seperti Flat Assembler atau langsung dari CMD yang memang sudah ada dalam sistem operasi Windows kali ini saya akan mencoba membuat sebuah program sederhana dengan menggunakan command yang disediakan oleh windows.Published on February 24, 2012 by    ·   10 Comments
Baiklah langsung saja kita coba langkah –langkah dalam pembuatan program sederhana menggunakan bahasa assembly atau yang sering disebut bahasa mesin.

Langkah 1

Klik tombol START pada windows kemudian cari Run lalu ketikan pada kolom pengisian yang ada pada Run seperti gambar dibawah ini ,  kemudian klik OKE atau takan Enter pada keyboard.

Langkah 2

Setelah muncul tampilan seperti dibawah , langsung saja ketikan debug.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
org         100h
 
jmp        mulai
 
tampilan              db '', 13,10
 
db '                                                   _________________ ', 13,10
 
db '                                                   by:SURIADI     ', 13,10
 
db '         Oo===================== MENU UTAMA =======================oO', 13,10
 
db '         ||                                                        ||', 13,10
 
db '         ||   1) Menghapus Layar                                   ||', 13,10
 
db '         ||   2) Menampilkan Urutan Abjad AAABBC                   ||', 13,10
 
db '         ||   3) Mengalikan Bilangan 2 dan 2                       ||', 13,10
 
db '         ||   4) Menampilkan Biodata Anda                          ||', 13,10
 
db '         ||   5) Selesai                                           ||', 13,10
 
db '         ||                                                        ||', 13,10
 
db '         ||                                                        ||', 13,10
 
db '         ||                                                        ||', 13,10
 
db '         Oo========================================================oO', 13,10
 
db '                         Pilihan Anda [1...5]:$'
 
mulai:                    mov       ah, 09h        ; service number 09h untuk mencetak string
 
mov       dx, tampilan   ; mengisi data string
 
int           21h                ; menampilkan di monitor
 
;aksi input pilihan menu oleh user
 
pilih:                      mov       ah,07h         ; service number 07h untuk input karakter
 
int           21h                ; menampilkan
 
cmp       al,'1'              ; bandingkan input dengan karakter '1'
 
je            hapuslayar     ; jika sama lompat ke prosedur hapuslayar
 
cmp       al,'2'              ; bandingkan input dengan karakter '2'
 
je            urutanabjad    ; jika sama lompat ke prosedur urutanabjad
 
cmp       al,'3'              ; bandingkan input dengan karakter '3'
 
je            perkalian42    ; jika sama lompat ke prosedur perkalian42
 
cmp       al,'4'              ; bandingkan input dengan karakter '4'
 
je            tampilbiodata  ; jika sama lompat ke prosedur tampilbiodata
 
cmp       al,'5'              ; bandingkan input dengan karakter '7'
 
je            keluar          ; jika sama lompat ke prosedur keluar
 
call          kembali        ; panggil prosedur kembali
 
;Untuk mengosongkan layar
 
kosonglayar:      mov       ah,07h         ; service number 07h untuk menghapus layar ke bawah
 
mov       al,00h           ; hapus semua baris
 
mov       bh,71h         ; tampilkan warna background putih tulisan biru
 
mov       ch,00h          ; Baris batas atas 0
 
mov       cl,00h           ; Kolom batas atas 0
 
mov       dh,0ffh        ; baris batas bawah off
 
mov       dl,0ffh        ; kolom batas bawah off
 
int           10h                ; Menjalankan interupt 10h
 
ret
 
kursor: mov       ah,02h         ; Service number 02h (untuk menentukan posisi kursor)
 
mov       dh,00h         ; Nilai baris posisi kursor (baris 0)
 
mov       dl,00h           ; Nilai kolom posisi kursor (kolom 0)
 
mov       bh,00h         ; Nilai nomor halaman layar (halaman 0)
 
int           10h                ; Inisialisasi bentuk dan posisi kursor saat itu
 
ret
 
hapuslayar :        call          kosonglayar    ; kosongkan layar
 
call          kursor          ; letakkan kursor di awal
 
mov       ah,07h         ; servis input
 
int           21h                ; tampilkan
 
call          kembali        ; kembali ke menu
 
komenhuruf      db           '',13,10
 
db           '',13,10
 
db           'Pencetakan karakter membentuk string AAABBC menggunakan program looping .....',13,10
 
db           '',13,10
 
db           '$',13,10
 
urutanabjad:      call          kosonglayar    ; kosongkan layar
 
call          kursor          ; letakkan kursor di awal
 
mov       ah, 09h        ; servis 09h menampilkan string
 
mov       dx, komenhuruf ; ambil data string komenhuruf
 
int           21h                ; tampilkan
 
mov       cx,03h          ; pengulangan 3 kali
 
mov       bl,04h           ; nilai awal bl = 04
 
mov       dl,40h           ; masukkan nilai 40 ke reg dl
 
ulang1:                 dec         bl                   ; kurangi dl dengan 1
 
push      bx                  ; simpan bx ke stack
 
inc          dl                   ; tambah dl dengan 1
 
ulang2:                 dec         bl                   ; kurangi bl dengan 1
 
mov       ah,02h         ; beri nilai ah dengan service 02h - pencetakan karakter
 
int           21h                ; tampilkan
 
jne         ulang2          ; lompat ke ulang2
 
pop        bx                  ; ambil nilai bx dari stack
 
loop       ulang1          ; kebali ke baris ulang1
 
mov       ah,07h         ; servis input
 
int           21h                ; tampilkan
 
call          kembali        ; kembali ke menu
 
komenkali           db           '',13,10
 
db           '',13,10
 
db           'Perkalian antara bilangan 2 dan 2 menggunakan Assembler.',13,10
 
db           'Hasilnya adalah ....',13,10
 
db           '',13,10
 
db           '$',13,10
 
perkalian42: call kosonglayar    ; kosongkan layar
 
call kursor ; panggil kursor ke awal halaman
 
mov ah, 09h  ; servis pencerakan string
 
mov dx, komenkali  ; ambil data string di komenkali
 
int 21h ; tampilkan
 
mov bl,02h ; nilai bl = 04
 
mov al,02h ; nilai al = 02
 
mul bl ; kalikan nilai bl dengan al
 
mov dl,al ; masukkan nilai al ke dl untuk dicetak
 
add dl,30h ; tambahkan nilai dl dengan 30
 
mov       ah,02h         ; servis pencetakan karakter
 
int           21h                ; tampilkan
 
mov       ah,07h         ; servis input
 
int           21h                ; tampilkan
 
call          kembali        ; kembali ke menu
 
komengenap     db           '',13,10
 
db '',13,10
 
db 'Bilangan genap antara 0 sampai dengan 8 adalah.....',13,10
 
db ',13,10
 
db '$',13,10
 
bilgenap08:
 
call          kosonglayar    ; kosongkan layar
 
call          kursor          ; letakkan kursor di awal halaman
 
mov       ah, 09h        ; servis 09h pencetakan string
 
mov       dx, komengenap ; ambil data string dari komengenap
 
int           21h                ; tampilkan
 
mov       cx,05h          ; pengulangan 5 kali
 
mov       ah,02h         ; servis pencetakan karakter
 
mov       dl,30h           ; masukkan nilai 30h ke dl
 
a: int 21h                ; tampilkan
 
add        dl,02h           ; tambah dl dengan 2
 
loop       a                     ; lompat ke baris a sebanyak pengulangan
 
mov       ah,07h         ; servis input
 
int           21h                ; tampilkan
 
call          kembali        ; kembali ke menu
 
; berikut adalah data yang akan ditampilkan pada menu Biodata
 
biodata:               db           '      ___________________________________________________________________',13,10
 
db '      //=========================== BIODATA ============================\\',13,10
 
db '      ||                                                                ||',13,10
 
db           '      ||    Nama       : suriadi                                        ||',13,10
 
db           '      ||    Alamat     : Jl. KH. Ahmad Dahlan No.81 Pekanbaru           ||',13,10
 
db           '      ||    Umur       : 20 tahun                                       ||',13,10
 
db           '      ||    Pekerjaan  : mahasiswa                                      ||',13,10
 
db           '      ||    Hobi       : berenang                                       ||',13,10
 
db           '      ||    email      : adie putra 11@gmail.com                        ||',13,10
 
db           '      ||    Website    : maz adie.blogspot.com                          ||',13,10
 
db           '      ||                                                                ||',13,10
 
db           '      Oo================================================================oO$',13,10
 
tampilbiodata:   call          kosonglayar    ; kosongkan layar
 
call kursor ; letakkan kursor di awal
 
mov dx,biodata  ; ambil data string dari biodata
 
mov  ah,09h ; servis 09h untuk pencetakan string
 
int 21h ; tampilkan
 
mov  ah,07h ; servis input
 
int 21h ; tampilkan
 
call kembali  ; kembali ke menu
 
keluar: int 20h ; program selesai
 
kembali : call kosonglayar    ; kosongkan layar
 
call  kursor  ; letakkan kursor di awal
 
jmp mulai ; lompat ke prosedur mulai (menampilkan menu)
Setelah kode diatas dimasukan kedalam Cmd maka bila dijalankan akan muncul tampilan seperti dibawah ini
Tampilan program setelah dieksekusi:
Jika di tekan angka 1 (satu ) pada keyboard maka program akan merespon dan menghapus layar atau menghapus layar pada Cmd seperti tampilan dibawah ini  .

Langkah 3

Untuk kembali kemenu semula tekan angka 1 (satu ) maka program akan menu awal kemudian jika anda ingin mengeksekusi perintah yang kedua yankni menampilkan percetakan karakter membentuk string AAABBC menggunakan program looping atau pengulangan maka tekan angka 2 (Dua )pada keyboard dan akan muncul tampilan seperti dibawah ini.
Untuk kembali kemenu awal tekan satu pada keyboard setelah itu lakukan eksekusi berikutnya dengan menekan angka  3 ( tiga ) pada keyboard maka program akan merespon seperti tampilan dibawah ini yakni perkalian antara bilangan 2 dan 2.

Langkah 4

Setelah itu seperti biasa jika kita akan kembali ke menu awal maka kita tekan angka 1 (satu ) pada keyboard dan untuk menampilkan biodata kita seperti dibawah ini maa kita harus menekan tombol 4 (empat ) pada keyboard maka program akan langsung mengeksekusi dengan menampilkan tampilan seperti dibawah ini.
Dari program ini maka kita harus tekan tombol 5 ( lima ) pada keyboard maka program langsung keluar atau logout.
Sekian tutorial dari saya semoga dapat bermanfaat!. Mungkin dari tutorial diatas yang tadi nya hanya ingin belajar pemograman yang berbasiskan visual maka dengan adanya tutorial di atas maka anda ingin mencoba bahasa pemograman yang berbasiskan bahasa mesin atau assembler dan saya harap anda dapat  mengembangkannya lebih dari tutorial diatas .

Selasa, 09 April 2013

Soal Perombakan, Benny Dollo Masih Bungkam

 Persija Jakarta berniat melakukan berbagai perombakan pada putaran kedua kompetisi Indonesian Super League (ISL) musim 2012/2013. Namun perombakan seperti apa yang akan dilakukan, Benny Dollo, juru taktik Persija, masih bungkam.

Perjalanan Macan Kemayoran, julukan Persija, diputaran pertama ISL memang terbilang menyedihkan. Pada putaran pertama ISL, Fabiano Beltrame dkk bisa dibilang selalu berkutat dipapan bawah klasemen sementara ISL. Yang lebih parah, tercatat dua kali sudah Persija menghuni dasar klasemen sementara.

Fakta terseok-seoknya Persija diputaran pertama pun, bisa dilihat dari laju klub berkostum orange yang telah melewati 14 pertandingan sejauh ini. 10 kali kalah, dua kali imbang, dan baru dua kali meraih angka penuh jadi gambarannya. Persija pun sejauh ini, telah enam kali secara beruntun dipencundangi lawan-lawannya.

Untuk memperbaiki performa anak-anak asuhnya pada paruh pertama, Bendol, sapaan akrab Benny Dollo, berniat untuk melakukan berbagai perombakan. Sayang, perombakan seperti apa yang akan dilakukan mantan pelatih tim nasional (timnas) Indonesia tersebut, masih dirahasiakan jajaran pelatih dan manajemen Persija.

“Kalau melihat apa yang ada saat ini, kami masih melakukan berbagai pembahasan dengan pak Ferry Paulus (Ketua Umum Persija). Kami juga belum bisa mengekspos berapa pemain yang kami butuhkan pada putaran kedua nanti. Masalah itu masih dalam pembahasan internal kami,” ungkap Bendol.

“Yang jelas, kami harus melakukan perubahan tersebut. Jika hal itu tidak dilakukan, mungkin Persija untuk bangkit akan suit. Karena dalam kondisi seperti ini, mentalitas pemain pun harus dipompa kembali. Kami harus bisa sama-sama keluar dari kemelut ini,” sambungnya.

Adapun alasan Bendol tidak ingin menyampaikan berbagai perombakan yang akan dilakukannya pada putaran kedua nanti, lebih dikarenakan ingin menjaga kesolitan tim. Menurutnya, jika hal itu sudah diberitahukan saat ini, bisa jadi malah akan jadi bumerang kepada anak-anak asuhnya sekarang.

“Sekarang kami masih dalam berkompetisi. Jika adanya perombakan itu dilakukan sekarang, pasti akan mengganggu konsentrasi para pemain kami. Kami tidak ingin membuat pemain berfikir macam-macam dulu saat ini. Kami hanya berharap seluruh pemain bisa terus fokus,” papar pelatih berusia 62 tahun tersebut.

Aremania Menghitung Gol

Arema Cronous bertekad melanjutkan rekor kemenangan yang bertahan di lima pertandingan terakhir. Menyambut Persepam madura United (P-MU), Rabu (10/4) di Stadion Kanjuruhan, klub berjuluk Singo Edan diunggulkan mutlak bisa memulangkan klub asal Madura itu dengan kepala tertunduk.
 
Melihat kekuatan lawan yang jauh di bawah Arema, kemungkinan bakal terjadinya hujan gol masih terbuka lebar. Sekadar catatan, sejak bertanding di Indonesia Super League (ISL) 2013, suporter Aremania selalu disuguhi kemenangan dengan skor memuaskan atau minimal tiga gol.
 
Malah di dua pertandingan kandang terakhir lawan Pelita Bandung Raya dan Sriwijaya FC, klub berjuluk Singo Edan mencetak masing-masing empat gol. Tak berlebihan jika pada pertandingan menjamu P-MU nanti Aremania berpotensi kembali tinggal menghitung gol yang melesak ke jala lawan.
 
Tidak ada kendala bagi tuan rumah untuk mewujudkan kemenangan besar. Arema nyaris sempurna menghadapi P-MU, kecuali Egi Megiansyah yang terkena akumulasi kartu kuning. Secara teknis Arema sudah siap menghancurkan lawannya. Tantangan justru pada psikologi pemain sendiri.
 
“Kalau teknis tidak ada persoalan sama sekali. Kami tinggal berupaya menjaga bagaimana pemain tidak terlalu percaya diri dan tidak meremehkan. Kami selalu menang besar di kandang, tapi itu bukan garansi kami bisa menang mudah di setiap pertandingan,” kata Pelatih Arema Rahmad 'RD' Darmawan.
 
Tetap menurunkan kuartet Christian 'El Loco' Gonzales, Beto Goncalves, Kayamba Gumbs dan Greg Nwokolo, tampaknya formasi 4-2-4 bakal diluncurkan RD. Formasi yang sebenarnya tranformasi dari 4-1-3-2, untuk mengakomodir keempat striker non-pribumi tersebut.
 
Gumbs di kiri dan Greg di kanan bakal mengapit duet Beto dan El Loco. Mereka ditopang dua gelandang bertahan, Hendro Siswanto dan Purwaka Yudhi. Formasi ini sangat menakutkan bagi pertahanan P-MU yang digalang Fachrudin Wahyudi. Bahkan dengan formasi apa pun, daya gempur Singo Edan dijamin bakal tetap garang di Kanjuruhan.
 
Mengenai kekuatan lawan, kapten Arema Greg Nwokolo mengungkapkan, “Kami memiliki segalanya untuk bisa menang. Persepam mungkin berupaya merepotkan, tapi kami harus bisa memenangkan pertandingan. Skor berapa pun tak masalah, karena yang terpenting tiga poin,” tukas Greg.
 
Sementara, kubu tamu mengakui kekuatan yang dihadapi kali ini bakal sangat berat. Kendati menang di dua pertandingan away sebelumnya, Pelatih P-MU Daniel Roekito mengakui level Arema jauh di atas kekuatan miliknya. Sehingga timnya tidak hanya berharap permainan bagus saja.
 
“Kami butuh bermain bagus, keberuntungan dan kalau bisa keajaiban untuk bisa mendapatkan poin di Malang. Bukan saya tidak percaya diri, tapi karena fakta menunjukkan begitu. Namun tahap pertama yang kami lakukan adalah bermain sedisiplin mungkin,” terang Daniel Roekito.
 
Ditanya siapa pemain Arema yang pantas menjadi fokus marking, Daniel malah kesulitan menyebutnya. “Masalahnya semua pemain Arema membahayakan. Ada Gonzales, Greg, Beto, dan Gumbs. Kalau kami terfokus satu-dua pemain, bisa jadi pemain lainnya yang lolos. Jadi ya semuanya kami awasi lah,” cetusnya sembari tersenyum
 
Kendati menghadapi bahaya besar, formasi 4-4-2 bakal tetap menjadi pilihan walau lebih defensif. Kemungkinan formasi itu berubah menjadi 4-1-3-2, karena Kristian Adelmund yang biasa sebagai gelandang bertahan bisa agak merangsek ke belakang demi membantu pertahanan.
 
Prakiraan Formasi Permain:
Arema Cronous (4-2-4):
Kurnia Meiga (gk), Hasyim Kipuw, Munhar, Victor Igbonefo, Thierry Gathuessy (belakang), Purwaka Yudhi, Hendro Siswanto (tengah), Kayamba Gumbs, Greg Nwokolo, Christian Gonzales, Beto Goncalves (depan).
 
Persepam MU (4-4-2):
Alfonsius Kelvan (gk), Denny Rumba, Firly Apriansyah, Fachrudin Wahyudi, Michael Orah (belakang), Busari, Ali Khadafi, Kristian Adelmund, Isack Djober (tengah), Osas Saha, Zaenal Arif (depan).