Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

Assemby, apaan tuh?

Mungkin kamu tahu kenapa komputer di ciptakan, yaitu untuk memudahkan pekerjaan manusia. tapi apakah kamu tahu bahasa apa yang digunakan manusia untuk berinteraksi dengan komputer :D jawabannya mah, bahasa pemrograman kn.

selanjutnya tahu kah kamu Assembly itu merupakan bahasa yang ngertiin mesin banget deh. dalam kategori bahasa, assembly merupakan bahasa tingkat rendah yang sulit dikuasai. ya, dulu pernah sih belajar bahasa ginian dan asli ngeraba-raba :v sungguh berbeda dengan bahasa Php atau java apalagi Vb.net hehe.

Dulu itu..

pernah dapet tugas buatin bendera di asia dengan Assembly :v haha  gimana tuh, bisa bayangin kan gimana ngerabanya. memang tidak begitu sulit, tapi pemahamannya belum memahami semua syntaknya secara keseluruhan jadinya kendala dalam proses pengerjaannya, tapi syukur semuanya dapat di atasi :8 hehe

jadi Assembly ini dipelajari ketika kamu mengambil mata kuliah Arsitektur dan Organisasi Komputer, disitu kamu diharuskan mengerti tentang arsitektur dari kinerja prossesor dan juga kawan-kawannya baik cara kerja dan lainnya deh.

mari, Write Code! ^_^

untuk mengenang di Assembly, berikut sederhananya implementasi Bahasa Assembly mencari huruf vokal dan total kata yang di inputkan.


org 100h

AWAL:
MOV CL,30H
JMP PROSES
KAL0 DB 'Ketikkan kalimat pertama :$'
KAL6 DB 'Ketikkan kalimat kedua :$'
KAL1 DB 13,10,'Kalimat pertama yang diinput adalah :$'
KAL7 DB 13,10,'Kalimat kedua yang diinput adalah :$'
KAL2 DB 13,10,'Cetak dari belakang :$'       
KAL3 DB 13,10,'Panjang String :$' 
KALX DB 13,10,'$' 
KAL4 DB 13,10,'Jumlah Huruf Vokal :$'      
KAL5 DB 13,10,'Jumlah Huruf Konsonan :$'           
KATA DB 20,?,20 DUP (?)
KATA1 DB 20,?,20 DUP (?)   

VOKAL:INC CL
JMP PLUS

PROSES:
;=============CETAK STRING1=============

MOV AH,09H
MOV DX,OFFSET KAL0
INT 21H  

;============= INPUT STRING1 ===========

MOV AH,0AH
LEA DX,KATA
INT 21H 
 
;============= CETAK STRING1 ===========

MOV AH,09H
MOV DX,OFFSET KAL1
INT 21H      

;============= CETAK VARIABEL =========

MOV BX, OFFSET  KATA+2

CETAK:

MOV DL,[BX]
CMP DL,0DH
JE BELAKANG
MOV AH,02H
INT 21H

CMP DL,'a'
JE VOKAL       

CMP DL,'i'
JE VOKAL  

CMP DL,'u'
JE VOKAL  

CMP DL,'e'
JE VOKAL  

CMP DL,'o'
JE VOKAL  
       
CMP DL,'A'
JE VOKAL       

CMP DL,'I'
JE VOKAL  

CMP DL,'U'
JE VOKAL  

CMP DL,'E'
JE VOKAL  

CMP DL,'O'
JE VOKAL 

PLUS:INC BX
JMP CETAK

;=============== CETAK KATA DARI BELAKANG =========

BELAKANG: MOV AH,09H

JE VOKAL1

;============== CETAK JUMLAH VOKAL ===============

VOKAL1:
MOV AH,09H
MOV DX,OFFSET KAL4
INT 21H

MOV DL,CL
 
MOV AH,02H
INT 21H

;============ CETAK PANJANG STRING ============

AKHIR:

MOV AH,09H
MOV DX,OFFSET KAL3
INT 21H
MOV BX,OFFSET KATA+1
MOV DL,[BX]
ADD DL,30H
MOV AH,02H
INT 21H

SELESAI:
INT 20H
END AWAL
   
ret ;ondynamic


Jadi, hasilnya kalau sudah dicompile dan di run jadinya seperti berikut, saya menggunakan Emu8086 tapi bisa juga sih gunain command Line :D

 
 
tapi kalau dasarnya, ketika belajar bahasa pemrograman itu kan di mulai dari Hello Word!, berikut codenya di Assembly :



#make_BIN#


MOV     AX, 0B800h
MOV     DS, AX

MOV [52h], 'H'

MOV [54h], 'E'
 
MOV [56h], 'L'

MOV [58h], 'L'

MOV [5Ah], 'O'

PUSH    CS
POP     DS      ; DS = CS.
MOV     AX, 0B800h
MOV     ES, AX

MOV ES:[5Eh], 'W'
 
MOV ES:[60h], 'O'

MOV ES:[62h], 'R'

MOV ES:[64h], 'L'

MOV ES:[66h], 'D'

MOV ES:[68h], '!'

HLT

hehe gimana asikkan.. ia Assembly itu asik lo sebenarnya. jika kamu sudah mengerti dasar-dasarnya dimulai dari mengerti akan Binner dan Hexa pasti ngertilah dikit-dikit :D hehe..

 jadi, teruslah belajar.. jangan sebatas belajar di kelas , sekolah atau kampus. belajar lah dimana saja.. yang penting semangat dan niat, jika itu sudah ada baru Usaha. ^_^
Moga bermanfaat, Salam Coding! 

Pada Algorimta atau Pemrograman di komputer juga mengenal namanya konsep Queue pada struktur data dasar di untaian (Linked List). yang menjadi hal menarik konsep Queue ini sama halnya dengan kita mengantri baik itu di bank atau di tempat pembayaran.

Pada Algorimta atau Pemrograman di komputer di kenal yang namanya konsep Stack pada struktur data dasar yaitu tumpukan dari untaian (linked list). yang umumnya digunakan untuk menyimpan informasi yang dapat di akses sesuai dengan keperluan tertentu. yaitu dengan algoritma menyimpan data, mengakses data tersebut. 

Jika kamu seorang aktif dalam dunia web atau pun network, tentunya pernah mendengar kata client dan server. dalam dunia pemrograman web memiliki dua bagian side yakni terdapat pada server juga client yang maksudnya juga hampir sama dengan  dunia jaringan , namun di web bermaksud sebuah bahasa pemrograman atau markah pada bagian tersebut.

Server side berarti bahasa pemrograman yang digunakan pada server. ada banyak bahasa pemrograman server side saat ini yang sudah berkembang dan pupuler seperti Java-based (servlet, JSP, JSF, Struts, Spring, Hibernate), ASP, CGI Script, PHP (Hypertext Preprocessor) dan banyak lainya.  yang di maksud dengan Server Side Proggramming adalah jenis bahasa pemrograman yang syntaxnya di jalankan oleh server yang hasil pengolahan dari syntax tersebut di kirim ke client sebagai hasil dari output. 

Client side adalah hasil dari pengolahan Server Side, hasil tersebut berupa syntax html, css, ataupun javascript. pada sisi client, client tidak dapat melihat proses pengolahan yang di lakukan oleh server. si client hanya dapat menjalankan program atau website seutuhnya.

Pada sisi lain dunia web Server Side sering di sebut dengan istilah "Back-end" atau juga sisi admin, sedangkan Client Side disebut "Front-end", nantinya akan mengarah kepada pekerjaan seorang Web Designer dan Web Develovers.

Bagan Proses Client-Side meminta dari Server-Side

http://www.webstepbook.com/supplements-2ed/slides/images/figure_2_client_side_scripting.png 

Coba perhatihan gambar diatas, terlihat bahwa client hanya dapat melihat "Hello World!" hasil dari Syntax pada Server Side. client meminta hasil dari file "hello.php" web server mengolah dan menghasilkan sebuah markah html yang menjadi output dilihat oleh client. 

http://www.e-cartouche.ch/content_reg/cartouche/interactiv/en/image/interactivity/server_side.jpg 
jadi, interaksi antara server side dan client side adalah meminta dan merespon sebuah dokument yang diminta oleh client dan si server memberikan responsenya dengan hasil permintaan. 
http://assets.osteele.com/images/mvc/mvc-server.png
jika kita melihat gambar diatas, bagian client tidak sama dengan bagian server. server mimiliki model yakni akses database dimana data yang di olah dan di tampilkan di view melalui pemanggilan dari controller. 
sedangkan user meminta hasil ke view dan controller memberikan akses ke database sehingga client dapat melihat hasil. 

Baca dan lihat juga ini, untuk menambah wawasan :

demikian penjelasan singkat dari saya pemula. mungkin terlalu banyak tulisan penjalasan mengenai hal ini, namun saya baru mencoba memulai menulis untuk menjelaskan sedikit pemahaman saya melalui tulisan. semoga bermanfaat. dipersilahkan kripik pedasnya yang konstruksif. ^_^