Friday 18 April 2014

Program bahasa Assembly Hello World



   Disini saya akan menjelaskan atau lebih tepatnya mempraktekkan langsung bagaimana membuat program sederhana dengan menggunakan bahasa assembly di OS linux yaitu menggunakan nasm
     nasm merupakan compiler untuk bahasa pemrograman assembly pada sistem operasi linux, dan perlu kita ketahui kalau di sistem operasi windows digunakan tasm (turbo assembly). dan saya menganggap anda sudah mengerti dasar-dasar bahasa Assembly.

•  Ok pertama-tama mari kita install nasm dengan menggunakan Terminal
 


  Setelah itu kita buat program sederhana menggunakan aplikasi editor, kali ini saya menggunakan gedit, lalu ketik program berikut:


  ; section text khusus buat code
  section .text

  global _start

  _start:
  ; systemcall => write(1,msg,len)
  mov edx,len   ; panjang string dimasukkan dalam register EDX
  mov ecx,msg  ; alamat memori yang menyimpan string dimasukkan dalam register ECX
  mov ebx,1     ; file descriptor (1=stdout=defaultnya console) disimpan dalam   register EBX
  mov eax,4     ; Nomor syscall 4 adalah fungsi sys_write()
  int 0x80        ; panggil system call dengan interrupt 80 hexa.

  ; systemcall => exit(0)
  xor ebx,ebx     ; membuat EBX menjadi 0 sebagai return code ketika exit
  mov eax,1     ; nomor syscall 1 adalah fungsi exit()
  int 0x80      ; panggil system call dengan interrupt 80 hexa.

  section .data ; section data khusus buat data/variable
  msg db "Hello, World!",0xa ; String diikuti dengan 0xA yaitu new line \n.
  len equ $ - msg  ; Panjang string didapat dengan mengurangi address di baris ini dengan alamat string.

  •   Ketika sudah selesai mengetik program diatas, lalu simpan di folder yang anda inginkan dengan file dengan format .asm (contoh : hello.asm), dan kali ini saya akaan menyimpan di Documents.
  •  Kemudian lakukan compile program dari source *.asm ke *.o sekalian output dari program diatas yaitu dengan cara:


 
Selamat, anda telah berhasil membuat program program sederhana dengan output Hello World dalam bahasa Assembly

Wednesday 9 April 2014

Sejarah Rekayasa Perangkat Lunak

Disini saya akan meringkas artikel tentang sejarah dari rekayasa perangkat lunak (software engineering)
    Ketika komputer muncul pada awal tahun 1940-an, pada saat itu komputer masih menggunakan bahasa mesin , dan peelu disadari design ini tidak fleksibel dan susah dimengerti, maka 10 tahun kemudian yaitu tahun 1950 terciptalah bahasa pemrograman dan ini langkah utama dalam kemajuan di dunia komputer. Bahasa utama seperti Fortran, ALGOL, dan COBOL yang berurusan dengan ilmiah, algoritma, masalah bisnis dsb. E.W. Dijkstra menulis makalah yang berjudul "Go To Statement Considered Harmful" pada tahun 1968 dan David Parnas memperkenalkan konsep kunci modularitas dan menyembunyikan informasi pada tahun 1972 untuk membantu programer berurusan dengan kompleksitas yang semakin meningkat dari sistem perangkat lunak.
    Istilah Rekayasa Perangkat Lunak pertama di gunakan pada tahun 1968 sebagai judul konferensi pertama di dunia tentang Rekayasa Perangkat Lunak  yang disponsori oleh NATO. Hasil dari konferensi ini adalah sebuah laporan yang mendefinisikan bagaimana perangkat lunak harus dikembangkan.
    Rekayasa Perangkat Lunak diciptakan untuk mengatasi rendahnya kualitas software, dan memastikan perangkat lunak yang dibangun secara sistematis,  dapat terukur tepat wakru sesuai anggaran dan sesuai anggaran serta sesuai spesifikasi.
    Pada tahun 1984, Software Engineering Institute (SEI) didirikan sebagai pusat penelitian dan pengembangan yang didanai pemerintah federal berkantor pusat di kampus Carnegie Mellon University di Pittsburgh, Pennsylvania, Amerika Serikat. Watts Humphrey mendirikan Program Proses SEI Software, bertujuan untuk memahami dan mengelola proses rekayasa perangkat lunak. Bukunya 1989, “Managing the Software Process”, menegaskan bahwa Proses Pengembangan Perangkat Lunak harus dikontrol, diukur, dan ditingkatkan. Proses Tingkat Kematangan diperkenalkan akan menjadi Capability Maturity Model Integrasi Pembangunan, yang telah menentukan bagaimana Pemerintah AS mengevaluasi kemampuan dari tim pengembangan perangkat lunak.

Source : http://en.wikipedia.org/wiki/Software_engineering