_____________________________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________________________________________________

cuaca

$province_id = substr(trim(strip_tags(@$_GET['province_id'])), 0, 2); require('lib/bmkg.php'); $bmkg = new BMKG(); $data = $bmkg->weather($province_id); header('Content-Type: application/json'); header('Access-Control-Allow-Origin: *'); echo json_encode($data, JSON_PRETTY_PRINT);
Tampilkan postingan dengan label GAMES. Tampilkan semua postingan
Tampilkan postingan dengan label GAMES. Tampilkan semua postingan

Kamis, 16 Mei 2013

Game ORAY menggunakan glut

Projek mata kuliah Komgraf Ane ditugaskan untk bikin aplikasi/game pake glut (C++). akhirnya setelah berusaha sekuat baja ditemukanlah sebuah referensi yang bisa dipake sebagai bahan untuk memuat projek matakuliah tersebut. Setelah menempuh tahap Evaluasi da re Codingisasi serta menambahkan fasilitas-fasilitas game. apikasi ini Anekasih nama ORAY Game. Biasanya kalo orang luar ngasih nama game yang serupa dengan nama "Snacke" maklum ane orang USA jadi ya pake bahasa USA.
Petunjuk game :
  1. Oray digerakan/diarahkan dengan menggunakan tombol arah untuk memakan makanan.
  2. Jika Oray makan Kerupuk, maka scoe akan bertambah 50
  3. Jika Oray makan Apel, maka score akan bertambah 100
  4. Jika Oray makan Bolu, maka scora akan bertambah 200
  5. jika Oray makan B.O.M permainan berakhir (Game Over)
  6. Jika Oray menabrak badannya permainan berakhir (Game Over)
Berikut adalah Screen Shootnya:



Minggu, 20 Mei 2012

Aplikasi Game LABIRIN menggunakan bahasa Asembly

Berikut adalah tampilan Program Game "Labirin"


Tahap awal dalam membuat game Labirin ini adalah menentukan rintangan (jalan). untuk mendesign  jalan keluar (labirin) saya mengguakan Ms Excel untuk mempermudah koordinat si rintangan tersebut. Berikut adalah design rintangan dalam Ms Excel:



Berikut adalah source code Game Labirin:
=================================================================
Tulis_Kar MACRO X,Y,Kar
    MOV AX,0B800h
    MOV ES,AX         ; ES Menunjuk pada segment layar
    MOV AH,Y
    MOV AL,160
    MUL AH             ; Hitung offset baris
    MOV BX,AX         ; Simpan hasilnya pada BX
    MOV AH,X
    MOV AL,2
    MUL AH             ; Hitung offset kolom
    ADD BX,AX         ; Tambahkan hasilnya pada BX
    MOV AL,Kar         ; AL=karakter yang akan ditampilkan
    MOV ES:[BX],AL     ; Tampilkan Karakter
   
ENDM


Tes MACRO X,Y,N1,N2
    LOCAL CIP
    CMP X,N1
    JNE CIP
    CMP Y,N2
    JE Gagal
CIP:
    Tulis_Kar X,Y,1
   
   
ENDM
   

.MODEL SMALL
.STACK 100h
.DATA
.CODE

TData: JMP Proses
   
    Rintangan    DB 0b2h, 15 DUP (0b2h),0b2h,13,10
                DB 0b2h,'   ',0b2h,'   ',0b2h,'    ',0b2h,0b2h,0b2h,0b2h,13,10
                DB 0b2h,,0b2h,0b2h,' ',0b2h,'   ',0b2h,' ',0b2h,0b2h,'  ',0b2h,0b2h,0b2h,13,10
                DB 0b2h,'   ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,'   ',0b2h,13,10
                DB 0b2h,' ',0b2h,0b2h,0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,0b2h,0b2h,' ',0b2h,13,10
                DB 0b2h,'   ',0b2h,' ',0b2h,' ',0b2h,'   ',0b2h,'   ',0b2h,13,10
                DB 0b2h,' ',0b2h,' ',0b2h,0b2h,0b2h,' ',0b2h,0b2h,0b2h,' ',0b2h,'   ',0b2h,13,10
                DB 0b2h,' ',0b2h,' ',0b2h,'   ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,13,10
                DB 0b2h,' ',0b2h,'    ',0b2h,0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,13,10
                DB 0b2h,' ',0b2h,0b2h,0b2h,0b2h,'  ',0b2h,'   ',0b2h,' ',0b2h,' ',0b2h,13,10
                DB 0b2h,' ',0b2h,' ',0b2h,'     ',0b2h,0b2h,'  ',0b2h,' ',0b2h,13,10
                DB 0b2h,'   ',0b2h,0b2h,0b2h,0b2h,'   ',0b2h,'    ',0b2h,13,10
                DB 0b2h,0b2h,0b2h,' ',0b2h,'    ',0b2h,0b2h,0b2h,'  ',0b2h,0b2h,0b2h,13,10
                DB 0b2h,'   ',0b2h,' ',0b2h,0b2h,'    ',0b2h,'  ',0b2h,0b2h,13,10
                DB 0b2h,' ',0b2h,' ',0b2h,'    ',0b2h,0b2h,' ',0b2h,'  ',0b2h,0b2h,13,10
                DB 0b2h,' ',0b2h,'   ',0b2h,0b2h,0b2h,0b2h,'  ',0b2h,0b2h,'   ',13,10
                DB 0b2h, 15 DUP (0b2h),0b2h,13,10,'$'
    GO            DB 'Game over...',7,7,7,7,7,'$'
    Selamat        DB 'SELAMAT!',13,10,'Anda berhasil!!!!!!$'
    X             DB 1
    Y             DB 1

Proses:
    MOV AX,@DATA
    MOV DS,AX
   
   
    MOV AX,0600h
    XOR CX,CX
    MOV DX,284Fh
    MOV BH,11111001b    
    INT 10h            
   
   
    MOV AH,02
    XOR BX,BX
    MOV DH,0            ; posisi X
    MOV DL,0            ; posisi Y
    INT 10h                ; pindahkan kursor ke posisi 0,0
   
   
    ;Cetak Rintangan
    MOV AH,09
    LEA DX,Rintangan
    INT 21h
   
       
    MOV DX,28
    Tulis_Kar X,Y,1
   
Jalan:
    MOV AH,0
    INT 16h
    PUSH AX
    CMP AH,77
    JE Kanan
    CMP AH,75
    JE Kiri
    CMP AH,72
    JE Atas
    CMP AH,80
    JE Bawah
    JMP Jalan
   
Kanan:
    Tulis_Kar X,Y,32,248
    INC X
    CMP Y,15
    JNE wuih
    CMP X,16
    JE  Sukses
wuih:
    CMP X,16
    JE Gagal
    JMP Ngecek
   
Kiri:
    Tulis_Kar X,Y,32,248
    DEC X
    CMP X,0
    JE Gagal
    JMP Ngecek
Atas:
    Tulis_Kar X,Y,32,248
    DEC Y
    CMP Y,0
    JE Gagal
    JMP Ngecek
Bawah:
    Tulis_Kar X,Y,32,248
    INC Y
    CMP Y,16
    JE Gagal
    JMP Ngecek
   
   
Ngecek:       
    ;=====================Baris 1   
    Tes X,Y,4,1
    Tes X,Y,8,1
    Tes X,Y,13,1
    Tes X,Y,14,1
    Tes X,Y,15,1
   
    ;=====================Baris2
    Tes X,Y,1,2
    Tes X,Y,2,2
    Tes X,Y,4,2
    Tes X,Y,8,2
    Tes X,Y,10,2
    Tes X,Y,11,2
    Tes X,Y,14,2
    Tes X,Y,15,2
   
    ;====================Baris3
    Tes X,Y,4,3
    Tes X,Y,6,3
    Tes X,Y,8,3
    Tes X,Y,10,3
    Tes X,Y,12,3
   
    ;====================Baris4
    Tes X,Y,2,4
    Tes X,Y,3,4
    Tes X,Y,4,4
    Tes X,Y,6,4
    Tes X,Y,8,4
    Tes X,Y,10,4
    Tes X,Y,12,4
    Tes X,Y,13,4
    Tes X,Y,14,4
   
    ;===================Baris5
    Tes X,Y,4,5    
    Tes X,Y,6,5
    Tes X,Y,8,5
    Tes X,Y,12,5
   
    ;==================Baris6
    Tes X,Y,2,6
    Tes X,Y,4,6
    Tes X,Y,5,6
    Tes X,Y,6,6
    Tes X,Y,8,6
    Tes X,Y,9,6
    Tes X,Y,10,6
    Tes X,Y,12,6
   
    ;=================Baris7
    Tes X,Y,2,7
    Tes X,Y,4,7
    Tes X,Y,8,7
    Tes X,Y,10,7
    Tes X,Y,12,7
    Tes X,Y,14,7
   
    ;=================Baris8
    Tes X,Y,2,8
    Tes X,Y,7,8
    Tes X,Y,8,8
    Tes X,Y,10,8
    Tes X,Y,12,8
    Tes X,Y,14,8
   
    ;================Baris9
    Tes X,Y,2,9
    Tes X,Y,3,9 
    Tes X,Y,4,9
    Tes X,Y,5,9
    Tes X,Y,8,9
    Tes X,Y,12,9
    Tes X,Y,14,9
   
    ;===============Baris10
    Tes X,Y,2,10
    Tes X,Y,4,10
    Tes X,Y,10,10
    Tes X,Y,11,10
    Tes X,Y,14,10
   
    ;===============Baris11
    Tes X,Y,4,11  
    Tes X,Y,5,11
    Tes X,Y,6,11
    Tes X,Y,7,11
    Tes X,Y,11,11
   
    ;===============Baris12
    Tes X,Y,2,12
    Tes X,Y,4,12
    Tes X,Y,9,12
    Tes X,Y,10,12
    Tes X,Y,11,12
    Tes X,Y,14,12
    Tes X,Y,15,12
   
    ;===============Baris13
    Tes X,Y,4,13
    Tes X,Y,6,13
    Tes X,Y,7,13
    Tes X,Y,12,13
    Tes X,Y,15,13
   
    ;===============Baris14
    Tes X,Y,2,14
    Tes X,Y,4,14
    Tes X,Y,9,14
    Tes X,Y,10,14
    Tes X,Y,12,14
    Tes X,Y,15,14
   
    ;===============Baris15
    Tes X,Y,2,15
    Tes X,Y,6,15
    Tes X,Y,7,15
    Tes X,Y,8,15
    Tes X,Y,9,15
    Tes X,Y,12,15
    Tes X,Y,13,15
   
   
    JMP Jalan
   
       
Gagal:
    MOV AH,9h
    LEA DX,GO
    INT 21h
    JMP Akhir
Sukses:
    MOV AH,9h
    LEA DX,Selamat
    INT 21h
    MOV AH,0
    INT 16h

Akhir:   
    MOV AH,4Ch
    INT 33

END TData

Minggu, 06 Mei 2012

Game Menggunakan Bahasa Asembly V (DPT)

Berikut adalah Game menggunakan bahasa asembly Duri, Pohon dan Tembok. Jika pemain berjalan dari titik awal menuju garis finish tanpa harus menginjak/menabrak rintangan tsb (DPT) maka pemain dinyatakan berhasil.

Berikut adalah screen shootnya:

Berikut adalah source code Game DPT
=================================================================

Tulis MACRO X,Y,A,B
    MOV AX,0B800h
    MOV ES,AX         ; ES Menunjuk pada segment layar
    MOV AH,Y
    MOV AL,160
    MUL AH             ; Hitung offset baris
    MOV BX,AX         ; Simpan hasilnya pada BX
    MOV AH,X
    MOV AL,2
    MUL AH             ; Hitung offset kolom
    ADD BX,AX         ; Tambahkan hasilnya pada BX
    MOV AL,A         ; AL=karakter yang akan ditampilkan
    MOV AH,B
    MOV ES:[BX],AL     ; Tampilkan Karakter
    MOV ES:[BX+1],AH ; pada posisi kolom X dan baris Y
ENDM

CekG MACRO X,Y,A,B
    LOCAL Beres
    CMP X,A
    PUSHF
    POP AX
    CMP Y,B
    PUSHF
    POP BX
    ADD AL,BL
    CMP AL,8Ch
    JNE Beres
    JMP Pohon
    Beres:
ENDM

CekD MACRO X,Y,A,B
    LOCAL Beres
    CMP X,A
    PUSHF
    POP AX
    CMP Y,B
    PUSHF
    POP BX
    ADD AL,BL
    CMP AL,8Ch
    JNE Beres
    JMP Duri
    Beres:
ENDM

CekT MACRO X,Y,A,B
    LOCAL Beres
    CMP X,A
    PUSHF
    POP AX
    CMP Y,B
    PUSHF
    POP BX
    ADD AL,BL
    CMP AL,8Ch
    JNE Beres
    JMP Tembok
    Beres:
ENDM

.MODEL SMALL
.STACK 100h
.DATA
    Frame    DB '  ==============================                          ',13,10
            DB ' !   :::    GAME DPT     :::   !       Ket:              ',13,10
            DB '  ==============================                          ',13,10
            DB '                         ', 30 DUP ('*'),13,10
            DB '                        * ,,,,  ,,, * ,, ,, ,,  ,,* ,,,|F|',13,10
            DB '               **********,, ,,, , ,,* , , ,  ,, ,,[ , ,| |',13,10
            DB ' **************  ,,  , ,*, , ,,, , ,[ , ,, ,, ,  ,*, ,,|I|',13,10
            DB '*, ,,,*  ,,, ,* ,, ,, , [, ,,, , ,,,*  , ,  , ,,, [ ,, | |',13,10
            DB '* ,, ,*,, ,,, [, , ,,,, * ,,  , ,, ,[ ,, ,, , , ,,* ,,,|N|',13,10
            DB '* , ,,[ ,,,, ,* , , ,,, [ ,, ,,, ,, * ,, , , ,, , [,,, | |',13,10
            DB '* , , *  ,,,, [ ,, , ,,,*  , ,, ,,, [, ,, , ,,,, ,* ,,,|I|',13,10
            DB '* , ,,*,, , ,,*,, ,, ,,,[ ,, , ,,,,,* , , ,,,  , ,[,, ,| |',13,10
            DB ' ************** ,,,,,,, * ,, , , ,, [,, ,,  , ,,, * , ,|S|',13,10
            DB '               **********  , ,,,,, ,* ,, , ,,,  , [,,,,| |',13,10
            DB '                        *, , ,,, ,, *,, , ,,,  ,,,*, , |H|',13,10
            DB '                         ', 30 DUP ('*'),13,10,'$'

    Aww        DB 13,10,'Aww... Anda menabrak pohon ',13,10
            DB '::: Game Over :::',7,13,10,'$'
    Adaw    DB 13,10,'Aww... Anda menginjak duri',13,10
            DB '::: Game Over :::',7,13,10,'$'
    Gubrak    DB 13,10,'Gubrak... Anda menabrak tembok',13,10
            DB '::: Game Over :::',7,13,10,'$'

    Hore    DB 13,10,'Selamat! Anda berhasil melewati rintangan',13,10,'$'

    X         DB 1
    Y         DB 12

.CODE
Program:
    MOV AX,@DATA
    MOV DS,AX
   
    ; FULL SCREEN
    MOV AX,0600h
    XOR CX,CX
    MOV DX,284Fh
    MOV BH,11110000b     ; Warna layar
    INT 10h             ; Hapus layar (supaya bisa fullscreen)
   
    ; GOTO 0,0
    MOV AH,02
    XOR BX,BX
    MOV DH,0            ; posisi X
    MOV DL,0            ; posisi Y
    INT 10h                ; pindahkan kursor ke posisi 0,0

    ; Frame
    MOV AH,09
    LEA DX,Frame
    INT 21h
    Tulis X,Y,79,240
   
Jalan:
    MOV AH,0
    INT 16h
    PUSH AX
    CMP AH,77
    JE Kanan
    CMP AH,75
    JE Kiri
    CMP AH,72
    JE Atas
    CMP AH,80
    JE Bawah
    JMP Jalan
Kanan:
    Tulis X,Y,32,248
    INC X
    CMP X,55
    JE Sukses
    CekG X,Y,6,10
    CekG X,Y,6,11
    CekG X,Y,6,13
    CekG X,Y,6,14
    CekG X,Y,14,10
    CekG X,Y,14,12
    CekG X,Y,14,14
    CekG X,Y,24,9
    CekG X,Y,24,11
    CekG X,Y,24,13
    CekG X,Y,24,15
    CekG X,Y,36,7
    CekG X,Y,36,8
    CekG X,Y,36,10
    CekG X,Y,36,12
    CekG X,Y,36,14
    CekG X,Y,36,16
    CekG X,Y,36,17
    CekG X,Y,50,7
    CekG X,Y,50,9
    CekG X,Y,50,11
    CekG X,Y,50,13
    CekG X,Y,50,15
    CekG X,Y,50,17
    CekT X,Y,14,11
    CekT X,Y,24,12
    CekT X,Y,24,14
    CekT X,Y,36,9
    CekT X,Y,36,11
    CekT X,Y,36,15
    CekT X,Y,50,10
    CekT X,Y,50,12
    CekT X,Y,50,14
    CekT X,Y,50,16
    CekD X,Y,2,13
    CekD X,Y,5,11
    CekD X,Y,8,12
    CekD X,Y,9,10
    CekD X,Y,12,13
    CekD X,Y,18,12
    CekD X,Y,17,11
    CekD X,Y,21,14
    CekD X,Y,23,9
    CekD X,Y,27,13
    CekD X,Y,27,10
    CekD X,Y,30,11
    CekD X,Y,34,15
    CekD X,Y,26,7
    CekD X,Y,35,17
    CekD X,Y,38,12
    CekD X,Y,45,12
    CekD X,Y,41,17
    CekD X,Y,46,15
    CekD X,Y,48,16
    CekD X,Y,46,8
    CekD X,Y,49,9
    CekD X,Y,40,14
    CekD X,Y,48,7
    CekD X,Y,53,7
    CekD X,Y,52,8
    CekD X,Y,53,9
    CekD X,Y,53,10
    CekD X,Y,53,12
    CekD X,Y,52,13
    CekD X,Y,52,15
    CekD X,Y,54,15
    CekD X,Y,53,17
    Tulis X,Y,79,240
    JMP Jalan
Kiri:
    Tulis X,Y,32,248
    DEC X
    CMP X,0
    JE Pohon
    CekG X,Y,6,10
    CekG X,Y,6,11
    CekG X,Y,6,13
    CekG X,Y,6,14
    CekG X,Y,14,9
    CekG X,Y,14,10
    CekG X,Y,14,12
    CekG X,Y,14,14
    CekG X,Y,14,15
    CekG X,Y,24,7
    CekG X,Y,24,8
    CekG X,Y,24,9
    CekG X,Y,24,11
    CekG X,Y,24,13
    CekG X,Y,24,15
    CekG X,Y,24,16
    CekG X,Y,24,17
    CekG X,Y,36,7
    CekG X,Y,36,8
    CekG X,Y,36,10
    CekG X,Y,36,12
    CekG X,Y,36,14
    CekG X,Y,36,16
    CekG X,Y,36,17
    CekG X,Y,50,7
    CekG X,Y,50,9
    CekG X,Y,50,11
    CekG X,Y,50,13
    CekG X,Y,50,15
    CekG X,Y,50,17
    CekT X,Y,14,11
    CekT X,Y,24,12
    CekT X,Y,24,14
    CekT X,Y,36,9
    CekT X,Y,36,11
    CekT X,Y,36,15
    CekT X,Y,50,10
    CekT X,Y,50,12
    CekT X,Y,50,14
    CekT X,Y,50,16
    CekD X,Y,2,13
    CekD X,Y,5,11
    CekD X,Y,8,12
    CekD X,Y,9,10
    CekD X,Y,12,13
    CekD X,Y,18,12
    CekD X,Y,17,11
    CekD X,Y,21,14
    CekD X,Y,23,9
    CekD X,Y,27,13
    CekD X,Y,27,10
    CekD X,Y,30,11
    CekD X,Y,34,15
    CekD X,Y,26,7
    CekD X,Y,35,17
    CekD X,Y,38,12
    CekD X,Y,45,12
    CekD X,Y,41,17
    CekD X,Y,46,15
    CekD X,Y,48,16
    CekD X,Y,46,8
    CekD X,Y,49,9
    CekD X,Y,40,14
    CekD X,Y,48,7
    CekD X,Y,53,7
    CekD X,Y,52,8
    CekD X,Y,53,9
    CekD X,Y,53,10
    CekD X,Y,53,12
    CekD X,Y,52,13
    CekD X,Y,52,15
    CekD X,Y,54,15
    CekD X,Y,53,17
    Tulis X,Y,79,240
    JMP Jalan
Atas:
    Tulis X,Y,32,248
    DEC Y
    CMP Y,6
    JE Pohon
    CekG X,Y,1,9
    CekG X,Y,2,9
    CekG X,Y,3,9
    CekG X,Y,4,9
    CekG X,Y,5,9
    CekG X,Y,6,11
    CekG X,Y,7,9
    CekG X,Y,8,9
    CekG X,Y,9,9
    CekG X,Y,10,9
    CekG X,Y,11,9
    CekG X,Y,12,9
    CekG X,Y,13,9
    CekG X,Y,14,10
    CekG X,Y,15,8
    CekG X,Y,16,8
    CekG X,Y,17,8
    CekG X,Y,18,8
    CekG X,Y,19,8
    CekG X,Y,20,8
    CekG X,Y,21,8
    CekG X,Y,22,8
    CekG X,Y,23,8
    CekG X,Y,24,9
    CekG X,Y,36,8
    CekG X,Y,50,7
    CekG X,Y,14,12
    CekG X,Y,24,11
    CekG X,Y,24,13
    CekG X,Y,36,10
    CekG X,Y,36,12
    CekG X,Y,36,14
    CekG X,Y,50,9
    CekG X,Y,50,11
    CekG X,Y,50,13
    CekG X,Y,50,15
    CekD X,Y,2,13
    CekD X,Y,5,11
    CekD X,Y,8,12
    CekD X,Y,9,10
    CekD X,Y,12,13
    CekD X,Y,18,12
    CekD X,Y,17,11
    CekD X,Y,21,14
    CekD X,Y,23,9
    CekD X,Y,27,13
    CekD X,Y,27,10
    CekD X,Y,30,11
    CekD X,Y,34,15
    CekD X,Y,26,7
    CekD X,Y,35,17
    CekD X,Y,38,12
    CekD X,Y,45,12
    CekD X,Y,41,17
    CekD X,Y,46,15
    CekD X,Y,48,16
    CekD X,Y,46,8
    CekD X,Y,49,9
    CekD X,Y,40,14
    CekD X,Y,48,7
    CekD X,Y,53,7
    CekD X,Y,52,8
    CekD X,Y,53,9
    CekD X,Y,53,10
    CekD X,Y,53,12
    CekD X,Y,52,13
    CekD X,Y,52,15
    CekD X,Y,54,15
    CekD X,Y,53,17
    Tulis X,Y,79,240
    JMP Jalan
Bawah:
    Tulis X,Y,32,248
    INC Y
    CMP Y,18
    JE Pohon
    CekG X,Y,1,15
    CekG X,Y,2,15
    CekG X,Y,3,15
    CekG X,Y,4,15
    CekG X,Y,5,15
    CekG X,Y,6,13
    CekG X,Y,7,15
    CekG X,Y,8,15
    CekG X,Y,9,15
    CekG X,Y,10,15
    CekG X,Y,11,15
    CekG X,Y,12,15
    CekG X,Y,13,15
    CekG X,Y,14,14
    CekG X,Y,15,16
    CekG X,Y,16,16
    CekG X,Y,17,16
    CekG X,Y,18,16
    CekG X,Y,19,16
    CekG X,Y,20,16
    CekG X,Y,21,16
    CekG X,Y,22,16
    CekG X,Y,23,16
    CekG X,Y,24,15
    CekG X,Y,36,16
    CekG X,Y,50,17
    CekG X,Y,14,12
    CekG X,Y,24,11
    CekG X,Y,24,13
    CekG X,Y,36,10
    CekG X,Y,36,12
    CekG X,Y,36,14
    CekG X,Y,50,9
    CekG X,Y,50,11
    CekG X,Y,50,13
    CekG X,Y,50,15
    CekD X,Y,2,13
    CekD X,Y,5,11
    CekD X,Y,8,12
    CekD X,Y,9,10
    CekD X,Y,12,13
    CekD X,Y,18,12
    CekD X,Y,17,11
    CekD X,Y,21,14
    CekD X,Y,23,9
    CekD X,Y,27,13
    CekD X,Y,27,10
    CekD X,Y,30,11
    CekD X,Y,34,15
    CekD X,Y,26,7
    CekD X,Y,35,17
    CekD X,Y,38,12
    CekD X,Y,45,12
    CekD X,Y,41,17
    CekD X,Y,46,15
    CekD X,Y,48,16
    CekD X,Y,46,8
    CekD X,Y,49,9
    CekD X,Y,40,14
    CekD X,Y,48,7
    CekD X,Y,53,7
    CekD X,Y,52,8
    CekD X,Y,53,9
    CekD X,Y,53,10
    CekD X,Y,53,12
    CekD X,Y,52,13
    CekD X,Y,52,15
    CekD X,Y,54,15
    CekD X,Y,53,17
    Tulis X,Y,79,240
    JMP Jalan

Pohon:
    LEA DX,Aww
    MOV AH,9h
    INT 21h
    JMP Beres
Duri:
    LEA DX,Adaw
    MOV AH,9h
    INT 21h
    JMP Beres
Tembok:
    LEA DX,Gubrak
    MOV AH,9h
    INT 21h
    JMP Beres
Sukses:
    LEA DX,Hore
    MOV AH,9h
    INT 21h

Beres:   
    MOV AH,4Ch
    INT 33

END Program

Game Menggunakan Bahasa Asembly IV (Mobil)

Berikut adalah source code Game Mobil Bahasa Asembly
=================================================================
cls macro ; untuk menghapus jejak rintangan 1
gotoxy xx,yh
inc yh
string hkar
endm

cls1 macro ;untuk menghapus jejak rintangan 2
gotoxy xxx,yyh
inc yyh
string hkar
endm

cls2 macro ; untuk menghapus jejak rintangan 3
gotoxy xxxx,yyyh
inc yyyh
string hkar
endm

bcls macro x ;menghapus jejak mobil
gotoxy X,18
string hkar
endm

gotoXY macro x,y ; untuk memindahkan kursor/menentukan posisi cetak
mov ah,02
xor bx,bx
mov dh,Y
mov dl,X
int 10h
endm

string macro s ;untuk mencetak karakter
mov ah,09h
lea dx, s
int 21h
endm

delay macro n
mov ah,2ch ;mengambil time di komputer
int 21h ;detik disimpan pada register dh

mov bh,dh ;menmpung nilai dh, yang kemudian dijadikan pembanding

balik:
mov ah,2ch
int 21h

sub dh,bh
cmp dh,n
jb balik
endm

.model small
.code
org 100h

jmp pro

Frame        DB 176,'         ',176,13,10
            DB 176,'         ',176,13,10
            DB 176,'         ',176,13,10
            DB 176,'         ',176,13,10
            DB 176,'         ',176,13,10
            DB 176,'         ',176,13,10
            DB 176,'         ',176,32,32,32,47,16 DUP (176),92,13,10
            DB 176,'         ',176,32,32,32,176,' Nurul Arifin S ',176,13,10
            DB 176,'         ',176,32,32,32,176,'   G64114018    ',176,13,10
            DB 176,'         ',176,32,32,32,176,'    Noordama    ',176,13,10
            DB 176,'         ',176,32,32,32,176,'   G64114025    ',176,13,10
            DB 176,'         ',176,32,32,32,92,16 DUP (176),47,13,10
            DB 176,'         ',176,13,10
            DB 176,'         ',176,13,10
            DB 176,'         ',176,13,10
            DB 176,'         ',176,13,10
            DB 176,'         ',176,13,10
            DB 176,'         ',176,13,10
            DB 176,'         ',176,13,10
            DB 176,'         ',176,13,10
            DB 176,'         ',176,13,10
            DB 92,9 DUP (176),47,13,10
            DB 13,10
            DB 13,10
            DB 13,10
            DB 13,10,'$'

kiri    equ 4bh ; keyboard arah kiri
kanan   equ 4dh ;keyboard arah kanan
atas    equ 48h ;keyboard arah atas

nilai   db 'Nilai : $'
score   db '0','$'
bscore  db '00','$'
seribu  db '1000','$'
stop db 'Tekan sembarang tombol untuk keluar..$'
mati db 'Game over...!!!$'
sukses db 'Anda Menang..!!!$'
baru db 0
kbaru db 0

kar db 223,223,223,'$' ; rintangan
hkar db 32,32,32,'$' ; hapus rintangan
zkar db 19,94,19,'$' ;mobil

y db 0         ; posisi y ritangnan 1 awal
yh db -1     ;hapus rintangan 1
yy db 0     ;posisi y ritangnan 2 awal
yyh db -1     ;hapus ritangnan 2
yyy db 0     ;posisi y ritangnan 3 awal
yyyh db -1     ;ritangnan 3
x db 4         ; mobil
xx db 1     ;posisi x ritangnan 1
xxx db 4     ;posisi x ritangnan 2
xxxx db 7     ;posisi x ritangnan 3

pro:
; untuk menghapus layar dan membuatnya warna putih, tulisan biru
mov ax,0600h
xor cx,cx
mov dx,184fh ;
mov bh,11111001b
int 10h

;mencetak frame
string Frame

;mencetak nilai
gotoxy 1,21
string nilai

process:
;cek score
cmp score,57
ja ribu
gotoxy 7,21
string score
gotoxy 8,21
string bscore
jmp biasa
ribu:
gotoxy 7,21
string seribu
je menang

biasa:
; menyembunykan kursor
mov ah, 1
mov ch, 2bh
mov cl, 0bh
int 10h

;cek inputan user
mov     ah, 01h
int     16h
jz      no_input

xor ax,ax
int 16h
cmp al, 1bh    ; tekan esc keluar
    je  exit
cmp ah, kiri
    je  kekiri
cmp ah, kanan
    je  kekanan


no_input:
; cetak rintangan 1
cls 
gotoxy xx,y
inc y
string kar

; cek dan rintangan 2
cmp baru,5
jb kbar
cls1
gotoxy xxx,yy
inc yy
string kar

; cek dan rintangan 3
kbar:
cmp kbaru,10
jb lewat
cls2
gotoxy xxxx,yyy
inc yyy
string kar

lewat:
gotoxy x,18
string zkar

;cek score ketika berhasil melewati rintangan
mov dh,xx
cmp dh,x
jne scorexx
cmp y,19
je over
scorexx:
cmp y,19
jne cek2
inc score

cek2:
mov dh,xxx
cmp dh,x
jne scorexxx
cmp yy,19
je over
scorexxx:
cmp yy,19
jne cek3
inc score

cek3:
mov dh,xxxx
cmp dh,x
jne scorexxxx
cmp yyy,19
je over
scorexxxx:
cmp yyy,19
jne trus
inc score

trus:
mov ah, 01h
int 16h
jz  slow
xor ax,ax
int 16h
cmp ah, atas ; gas rintangan
    je gas

slow:
delay 1

gas:
jmp keloop

;belok kiri
kekiri:
    cmp x,1
    je bs
    bcls x
    sub x,3
    bs:
    gotoxy x,18
    string zkar
    jmp no_input

;belok kiri   
kekanan:
    cmp x,7
    je bsa
    bcls x
    add x,3
    bsa:
    gotoxy x,18
    string zkar
    jmp no_input

; cek sudah rintangan sudah sampai bawah belum   
keloop:
inc baru
inc kbaru
cmp y,19
jne dua
cls
sub y,19
sub yh,20

dua:
cmp yy,19
jne tiga
cls1
sub yy,19
sub yyh,20
mov baru,0

tiga:
cmp yyy,19
jne process
cls2
sub yyy,19
sub yyyh,20
mov kbaru,0
jmp process

;jika mati
over:
    gotoxy 0,23
    string mati
    jmp exit

    ;jika menang
menang:
    gotoxy 0,23
    string sukses
    jmp exit
   
exit:
    gotoxy 0,24
    string stop
    xor ax,ax
    int 16h
    int 20h
end

Game Menggunakan Bahasa Asembly III (Makan)

Berikut adalah tampilan Game Makan


Berikut Source code Game Makan bahasa asembly
=================================================================
 ; MACRO untuk menuliskan satu karakter pada posisi X Y di layar
; Punyanya S'to :)


Tulis_Kar MACRO X,Y,Kar,Attr
    MOV AX,0B800h
    MOV ES,AX         ; ES Menunjuk pada segment layar
    MOV AH,Y
    MOV AL,160
    MUL AH             ; Hitung offset baris
    MOV BX,AX         ; Simpan hasilnya pada BX
    MOV AH,X
    MOV AL,2
    MUL AH             ; Hitung offset kolom
    ADD BX,AX         ; Tambahkan hasilnya pada BX
    MOV AL,Kar         ; AL=karakter yang akan ditampilkan
    MOV AH,Attr
    MOV ES:[BX],AL     ; Tampilkan Karakter
    MOV ES:[BX+1],AH ; pada posisi kolom X dan baris Y
ENDM

CekF MACRO X,Y,Kar,Attr

    LOCAL Beres
    CMP X,Kar
    PUSHF
    POP AX
    CMP Y,Attr
    PUSHF
    POP BX
    ADD AL,BL
    CMP AL,8Ch
    JNE Beres
    INC Nilai
    Tulis_Kar 7,23,Nilai,240
Beres:
    ENDM

.MODEL SMALL

.STACK 100h
.DATA
    Score    DB 'Score: 000',13,10,'$'
    Nilai    DB 48
    Frame    DB 47, 23 DUP (45), 92,13,10
            DB 124,'                       ',124,13,10
            DB 124,'  *                    ',124,13,10
            DB 124,'                       ',124,13,10
            DB 124,'             *         ',124,13,10
            DB 124,'                       ',124,13,10
            DB 124,'    *                  ',124,13,10
            DB 124,'                       ',124,13,10
            DB 124,'                       ',124,13,10
            DB 124,'                 *     ',124,13,10
            DB 124,'                       ',124,13,10
            DB 124,'                       ',124,13,10
            DB 124,'                       ',124,13,10
            DB 124,'       *               ',124,13,10
            DB 124,'                    *  ',124,13,10
            DB 124,'                       ',124,13,10
            DB 124,'                       ',124,13,10
            DB 124,'                       ',124,13,10
            DB 124,'   *                   ',124,13,10
            DB 124,'                       ',124,13,10
            DB 124,'                       ',124,13,10
            DB 124,'           *           ',124,13,10
            DB 92, 23 DUP (45),47,13,10,'$'
    Ouch    DB 'Game over...',7,'$'
    Yeah    DB 'Selamat! Anda berhasil!$'
    X         DB 12
    Y         DB 11

.CODE

Program:
    MOV AX,@DATA
    MOV DS,AX
   
    ; FULL SCREEN
    MOV AX,0600h
    XOR CX,CX
    MOV DX,284Fh
    MOV BH,11110000b     ; Warna layar
    INT 10h             ; Hapus layar (supaya bisa fullscreen)
   
    ; GOTO 0,0
    MOV AH,02
    XOR BX,BX
    MOV DH,0            ; posisi X
    MOV DL,0            ; posisi Y
    INT 10h                ; pindahkan kursor ke posisi 0,0
    ; Frame & Scoreboard
    MOV AH,09
    LEA DX,Frame
    INT 21h
    LEA DX,Score
    INT 21h
   
    MOV DX,28
    Tulis_Kar X,Y,88,240
Jalan:
    MOV AH,0
    INT 16h
    PUSH AX
    CMP AH,77
    JE Kanan
    CMP AH,75
    JE Kiri
    CMP AH,72
    JE Atas
    CMP AH,80
    JE Bawah
    JMP Jalan
   
Kanan:
    Tulis_Kar X,Y,32,248
    INC X
    CMP X,24
    JE Gagal
    ; Cek posisi "makanan"
    CekF X,Y,3,2
    CekF X,Y,14,4
    CekF X,Y,5,6
    CekF X,Y,18,9
    CekF X,Y,8,13
    CekF X,Y,21,14
    CekF X,Y,4,18
    CekF X,Y,12,21
    Tulis_Kar X,Y,88,240
    CMP Nilai,'8'
    JE Sukses
    JMP Jalan
Kiri:
    Tulis_Kar X,Y,32,248
    DEC X
    CMP X,0
    JE Gagal
    ; Cek posisi "makanan"
    CekF X,Y,3,2
    CekF X,Y,14,4
    CekF X,Y,5,6
    CekF X,Y,18,9
    CekF X,Y,8,13
    CekF X,Y,21,14
    CekF X,Y,4,18
    CekF X,Y,12,21
    Tulis_Kar X,Y,88,240
    CMP Nilai,'8'
    JE Sukses
    JMP Jalan
Atas:
    Tulis_Kar X,Y,32,248
    DEC Y
    CMP Y,0
    JE Gagal
    ; Cek posisi "makanan"
    CekF X,Y,3,2
    CekF X,Y,14,4
    CekF X,Y,5,6
    CekF X,Y,18,9
    CekF X,Y,8,13
    CekF X,Y,21,14
    CekF X,Y,4,18
    CekF X,Y,12,21
    Tulis_Kar X,Y,88,240
    CMP Nilai,'8'
    JE Sukses
    JMP Jalan
Bawah:
    Tulis_Kar X,Y,32,248
    INC Y
    CMP Y,22
    JE Gagal
    ; Cek posisi "makanan"
    CekF X,Y,3,2
    CekF X,Y,14,4
    CekF X,Y,5,6
    CekF X,Y,18,9
    CekF X,Y,8,13
    CekF X,Y,21,14
    CekF X,Y,4,18
    CekF X,Y,12,21
    Tulis_Kar X,Y,88,240
    CMP Nilai,'8'
    JE Sukses
    JMP Jalan
   
Gagal:
    LEA DX,Ouch
    MOV AH,9h
    INT 21h
    JMP Beres
Sukses:
    LEA DX,Yeah
    MOV AH,9h
    INT 21h

Beres:   

    MOV AH,4Ch
    INT 33

END Program

Selasa, 01 Mei 2012

Tutorial Menambahkan Sountrack PES 2011

Siapa sih yang ga tau PES 2011. Game Sepak bola fenomenal yang dikeluatkan oleh produsen KONAMI. Sejak dikeluarkannya versi PES 2008 sampai versi sekarang (PES2012) mulai banyak Musik/lagu mancanegara yang dijadiin sountracknya. tentunya game ini akan lebih asyik jika sountracknya menggunakan lago faforit kita. Berikut Ane bikinin Tutorial untuk menambahkan/mengganti sountrack PES 2011 dengan lagu faforit kita. (Untuk PES 2012 caranya ga jauh berbeda)
  1. Instal/jalankan untuk mengkonversi tipe file *MP3 ato *WAV menjadi tipe *ADX (tipe file untuk sondtrack PES 2011) di sini  .
          Berikut adalah tampilan software tsb:


           
   
   2. Klik button Add untuk menambahkan file mp3  yang akan dijadikan sountrack PES 2011
   3. Klik Next
   4. maka akan tampil tampilan seperti dibawah ini, kemudian pilik folder penyimpanan hasil  konversi   
      (sementara taro ada di my documents).
   5. Klik Convert

Setelah proses konversi file selesai langkah selanjutnya adalah mengedit playlist sountrack (song.txt) yang ada pada  direktori C:\Program Files\KONAMI\Pro Evolution Soccer 2011\kitserver\pesedit
   6. Edit file songs.txt dan tuliskan <kode ID. "Judul Lagu", "Nama Artist"> musik yang mau anda    
       tambahkan. 
   7. Kode ID yang bisa anda masukan diusahakan yang belum terpakai sebelumnya agar tidak mereplace file 
       yang ada. Untuk lebih jelas lihat gambar dibawah ini.
   8. Kemudian Save dan close (jika gagal di save, save as aja di my documents kemudian file tsb dicopykan 
       ke direktori C:\Program Files\KONAMI\Pro Evolution Soccer 2011\kitserver\pesedit lalu replace).
  9. Mengacu pada daftar lagu yang telah agan ganti pada songs.txt, rename semua file .adx yang telah ente 
        konversi di awal (yang ada di my documen tadi)  
      dengan format < unnamed_kode id.adx > 
         Contohnya : unnamed_46.adx ; unnamed_47.adx;  
         unnamed_48.adx 
10. Langkah terakhir adalah Copy  file .adx tersebut ke direktori PES 2011\kitserver\pesedit \img\dt02.img .

DAN HASILNYA ADALAH SEPERTI GAMBAR BERIKUT

LAGU FAVORIT ANE (Juve,Storia di un grande Amore; E- Bianconero dan Forza Juve) bisa didengar ketika main PES 2011.

SELAMAT MENCOBAA!!!....

 
      




Sabtu, 07 April 2012

Teknik Memahami Paper Ilmiah

Artikel ini saya kutip dari konsultasi bersama dengan Bung Romi Satria Wahono (Ilmukomputer.com)

Musim mengerjakan tugas akhir, artinya musim membaca makalah alias paper ilmiah alias scientific paper. Banyak yang beranggapan bahwa konsentrasi membaca paper ilmiah adalah pada aspek teknis (technical aspect). Padahal ngotot fokus ke aspek teknis dari paper ilmiah akan membuat kita pusing, puyeng, mual, ngantuk, dan ga ngerti juntrungnya :) . Meskipun ada juga mahasiswa yang nekat memahami satu paper ilmiah sampai perlu waktu berbulan-bulan. Padahal sebenarnya kekuatan paper ilmiah bukan hanya dilihat dari aspek teknis. Nah lho, terus di bagian mana sebaiknya kita konsentrasi membaca sebuah paper ilmiah?
Pada hakekatnya ada empat hal utama yang perlu kita pahami dari sebuah paper ilmiah, khususnya paper di bidang computing (computer science). Empat hal utama tersebut adalah masalah penelitian, kontribusi (solusi), substansi dan kesimpulan. Kita tidak perlu langsung masuk ke substansi alias aspek teknis yang bikin pening kepala.  Bahkan ketika kita menemukan bahwa masalah penelitian tidak berkualitas, maka kita tidak perlu melanjutkan lagi membaca paper tersebut. Bahasa mahasiswa kasmaran-nya, lupakan aku kembali padanya :)
Kembali ke masalah memahami paper, empat hal utama tersebut kalau dijabarkan adalah seperti di bawah. Penjabaran saya rangkumkan dari tulisan menarik dari Philip W. L. Fong, Amanda Stent, dan William G. Griswold (paper lengkap ada di referensi).
  1. Pahami Masalah Penelitian:  Pahami, sebenarnya masalah penelitian apa yang sedang dibidik oleh paper tersebut.  Pertanyaan lain untuk mengecek masalah penelitian di paper adalah seperti tertulis di bawah.
    • Apa motivasi  mengerjakan penelitian itu?
    • Apakah ada hal penting (kritis) dalam bidang yang digarap yang ingin diselesaikan oleh paper tersebut?
    • Apakah penelitian bertujuan untuk mengatasi kelemahan dari pendekatan yang ada?
    • Apakah masalah  penelitian cukup menantang atau unik?
  2. Pahami Kontribusi: Pahami, dari masalah penelitian yang dibidik, kontribusi seperti apa yang diklaim oleh penulis di paper ilmiah. Pertanyaan lain untuk mengecek kontribusi penelitian di paper adalah seperti tertulis di bawah.
    • Apa yang baru dan orisinil di paper itu?
    • Adakah pemahaman baru dari masalah penelitian yang diangkat?
    • Adakah metodologi baru untuk memecahkan masalah?
    • Adakah algoritma baru?
    • Adakah sistem atau tool software baru?
    • Adakah metode eksperimen baru?
    • Adakah teknik pembuktian baru?
    • Adakah notasi atau formalisme baru?
    • Apakah termasuk bidang penelitian baru?
  3. Pahami Substansi: Pahami, substansi dari kontribusi atau solusi seperti apa yang diklaim oleh peneliti bahwa itu hasil karyanya? Pertanyaan lain untuk mengecek substansi penelitian di paper adalah seperti tertulis di bawah.
    • Metodologi apa yang digunakan untuk memperkuat klaim?
    • Apa argumentasi dan teori utama dari paper?
    • Apakah telah dilakukan eksperimen, analisa data, simulasi, benchmark, studi kasus, dan contoh implementasi?
    • Apakah klaim kontribusi telah dibuktikan secara ilmiah?
  4. Pahami Kesimpulan: Pahami, bagaimana kesimpulan penelitian yang ditarik oleh peneliti lewat papernya? Pertanyaan lain untuk mengecek kesimpulan penelitian di paper adalah seperti tertulis di bawah.
    • Apa yang bisa kita pelajari dan dapatkan dari paper tersebut?
    • Apakah standard practice dari bidang ilmu berubah karena adanya penemuan baru di paper ini?
    • Apakah hasilnya bisa digeneralisasi dan diaplikasikan ke bidang yang lain?
Lebih maknyus lagi bila setelah memahami empat hal diatas, masalah penelitian, kontribusi, substansi, dan kesimpulan, kita masukkan ke dalam Kerangka Pemikiran yang sudah saya jelaskan sebelum tulisan ini.
BTW, bagi yang belum tahu darimana bisa download paper ilmiah yang dipublikasi di journal dan proceedings conference, jawabannya ada di tulisan saya tentang Literatur Ilmiah dan Jurnal Penelitian Gratis.
Untuk mahasiswa computing yang punya kelonggaran uang sekitar Rp 200 ribu, sebaiknya menjadi member ACM. ACM dan IEEE Computer Society adalah dua asosiasi yang paling disegani dan publikasinya paling shahih dan  mutawatir (ilmu hadith kaleee ;) ) untuk bidang ilmu computing. Untuk wilayah Indonesia dan sekitarnya yang dikategorikan negara miskin hihihi, student membership plus fasilitas digital library hanya dicharge oleh ACM sebesar 18 USD pertahun. Klik disini untuk menjadi member ACM.
Ayo mulai baca lagi, kalau satu kali baca masih nggak paham, ya ulangi lagi dan ulangi lagi sampai kita bisa benar-benar paham :)
Tetap dalam perdjoeangan!
ttd-small.jpg