Assembly (02) – Pengantar

Apa itu Bahasa Rakitan (Assembly Language) ?

          Setiap komputer memiliki mikroprosesor yang mengelola aktivitas aritmatika, logika, dan kontrol komputer.

          Setiap keluarga prosesor memiliki set instruksi sendiri untuk menangani berbagai operasi seperti menerima input dari keyboard, menampilkan informasi di layar dan melakukan berbagai pekerjaan lainnya. Serangkaian instruksi ini disebut ‘instruksi bahasa mesin’.

          Prosesor hanya memahami instruksi bahasa mesin, yang terdiri dari string ‘1’ dan ‘0’. Namun, bahasa mesin terlalu kabur dan rumit untuk digunakan dalam pengembangan perangkat lunak. Jadi, bahasa rakitan dirancang untuk keluarga prosesor tertentu yang mewakili berbagai instruksi dalam kode simbolik dan bentuk yang lebih mudah dipahami.

 

Keuntungan Bahasa Rakitan

Memiliki pemahaman tentang bahasa rakitan membuat orang menyadari tentang :

  • Bagaimana program berinteraksi dengan sistem operasi, prosesor, dan BIOS
  • Bagaimana data direpresentasikan dalam memori dan perangkat eksternal lainnya
  • Bagaimana prosesor mengakses dan mengeksekusi instruksi
  • Bagaimana instruksi mengakses dan memproses data
  • Bagaimana program mengakses perangkat eksternal

Keuntungan lain menggunakan rakitan adalah :

  • Penggunaan memori lebih sedikit
  • Waktu eksekusi lebih cepat
  • Memungkinkan  pekerjaan kompleks pada perangkat keras yang spesifik dilakukan dengan cara yang lebih mudah
  •  Sangat cocok untuk pekerjaan yang membutuhkan waktu yang cepat
  • Ini paling cocok untuk menulis rutinitas layanan interupsi dan program memori lainnya

Fitur Dasar Perangkat Keras PC

        Perangkat keras internal utama dari PC terdiri atas prosesor, memori, dan register. Register adalah komponen prosesor yang menyimpan data dan alamat. Untuk mengeksekusi program, sistem menyalinnya dari perangkat eksternal ke dalam memori internal. Prosesor menjalankan instruksi program.

         Unit dasar penyimpanan komputer adalah bit; itu bisa ON (1) atau OFF (0). Kumpulan dari 9 bit yang berkaitan membentuk sebuah byte, 8 bit diantaranya digunakan untuk data dan 1 bit terakhir digunakan untuk paritas. Menurut aturan paritas; jumlah bit 1 di setiap byte harus ganjil. 

           Jadi, bit paritas digunakan untuk membuat jumlah bit dalam sebuah byte menjadi ganjil; jika paritas genap, sistem akan menganggap adanya error (meskipun jarang), yang mungkin disebabkan oleh kesalahan perangkat keras atau gangguan listrik.

            Prosesor mendukung ukuran data berikut:

  • Word            : 2-byte (16 bit) data
  • Doubleword : 4-byte (32 bit) data
  • Quadword    : 8-byte (64 bit) data
  • Paragraph     : 16-byte (128 bit) area
  • Kilobyte        : 1024-byte
  • Megabyte      : 1.048.576-byte

Sistem Angka Biner 

            Setiap sistem angka menggunakan notasi posisi, setiap posisi penulisan digit memiliki nilai posisi yang berbeda. Setiap posisi adalah pangkat dari suatu basis, yaitu 2 untuk sistem bilangan biner, dan pangkat ini dimulai pada 0 dan meningkat sebesar 1.

Bit value
1
1
1
1
1
1
1
1
Position value 
as a power of base 2
128
64
32
16
8
4
2
1
Bit number
7
6
5
4
3
2
1
0

            Nilai angka biner didasarkan pada keberadaan bit 1 dan nilai posisinya. Jadi, nilai bilangan biner pada tabel di atas adalah 1 + 2 + 4 + 8 +16 + 32 + 64 + 128 = 255, atau sama dengan 28 – 1.

Sistem Angka Heksadesimal

             Sistem angka heksadesimal menggunakan basis 16. Angka dalam sistem ini berkisar dari 0 hingga 15. Menurut kesepakatan, huruf ‘A’ – ‘F’ digunakan untuk merepresentasikan digit heksadesimal yang bersesuian dengan nilai desimal 10 – 15.

             Angka heksadesimal dalam komputasi digunakan untuk menyingkat representasi biner yang panjang. Pada dasarnya, sistem bilangan heksadesimal mewakili data biner dengan membagi setiap byte menjadi setengah(4 bit) dan menyatakan nilai dari setiap setengah byte.

Tabel berikut ini memberikan persamaan desimal, biner, dan heksadesimal:

Desimal  Biner  Heksadesimal
0 0 0
1 1 1
2 10 2
3 11 3
4 100 4
5 101 5
6 110 6
7 111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

            Untuk mengonversi bilangan biner menjadi bilangan heksadesimalnya, pisahkan menjadi kelompok-kelompok yang masing-masing terdiri dari 4 bit, mulai dari kanan, dan tulis grup-grup itu di atas angka-angka heksadesimal yang sesuai.

Contoh – Angka biner 1000 1100 1101 0001 setara dengan heksadesimal – 8CD1.

            Untuk mengkonversi angka heksadesimal menjadi biner, cukup tulis setiap digit heksadesimal menjadi kelompok 4 bit biner. 

Contoh – Angka heksadesimal FAD8 setara dengan biner – 1111 1010 1101 1000.

Aritmatika Biner

Tabel berikut mengilustrasikan empat aturan sederhana untuk penjumlahan biner.

(i) (ii) (iii) (iv)
      1
0 1 1 1
+0 +0 +1 +1
=0 =1 =10 =11

Aturan (iii) dan (iv) menunjukkan carry 1-bit ke posisi kiri berikutnya.

Contoh:

Desimal Biner
60 00111100
+42 00101010
102 01100110

Nilai biner negatif dinyatakan dalam notasi komplemen dua. Menurut aturan ini, untuk mengkonversi angka biner ke nilai negatifnya adalah membalikkan nilai bitnya dan menambahkan 1.

Contoh:

Number 53 00110101
Reverse the bits 11001010
Add 1 00000001
Number -53 11001011

Untuk melakukan pengurangan, konversikan angka yang dikurangkan ke format komplemen dua lalu tambahkan dengan pengurang.

Contoh:

53 dikurang 42

Number 53 00110101
Number 42 00101010
Reverse the bits of 42 11010101
Add 1 00000001
Number -42 11010110
53 – 42 = 11 00001011

*) Bit 1 di paling kiri dihilangkan

Pengalamatan Data di Memori

              Sebuah proses di mana prosesor mengontrol pelaksanaan instruksi disebut sebagai siklus fetch-decode-execute / execution cycle. Ini terdiri dari tiga langkah berkelanjutan :

  • Mengambil instruksi dari memori ( fetch )
  • Menguraikan kode atau mengidentifikasi instruksi ( decode )
  • Menjalankan instruksi ( execute )

              Prosesor dapat mengakses satu atau lebih byte memori pada satu waktu. Mari kita perhatikan bilangan heksadesimal 0725H. Angka ini akan membutuhkan dua byte memori. Byte orde tinggi / most significant byte adalah 07 dan byte orde rendah / least significant byte adalah 25.

              Prosesor menyimpan data dalam urutan byte terbalik, byte orde rendah disimpan di alamat memori rendah dan byte orde tinggi di alamat memori tinggi. Jadi, jika prosesor membawa nilai 0725H dari register ke memori, prosesor akan mentransfer 25 ke alamat memori yang lebih rendah dan 07 ke alamat memori berikutnya.

Agile : Model Proses terkini yg berkembang pada industri TI

 Siklus Agile Developments Method

 

Agile Developments Method adalah salah satu metodologi dalam pengembangan perangkat lunak jangka pendek yang memerlukan adaptasi dan pengembangan yang cepat terhadap perubahan dalam benntuk apapun. Dalam metode ini terdapat nilai-nilai yang harus diutamakan yang dikenal dengan The Agile Manifesto yaitu:

  1. Orang dan interaksi diatas proses dan tools.
  2. Software yang berfungsi diatas dokumentasi komprehensive.
  3. Kolaborasi customer diatas negosiasi kontrak.
  4. Merespon akan perubahan diatas mengikuti rencana.

Ada beberapa langkah dalam Agile Development Methods, yaitu :

  • Perencanaan, pada langkah ini pengembang dan klien membuat rencana tentang kebutuhan dari perangkat lunak yang akan dibuat.
  • Implementasi, bagian dari proses dimana programmer melakukan pengkodean perangkat lunak.
  • Tes perangkat lunak, disini perangkat lunak yang telah dibuat di tes oleh bagian kontrol kualitas agar bug yang ditemukan bisa segera diperbaiki dan kualitas perangkat lunak terjaga.
  • Dokumentasi, setelah dilakukan tes perangkat lunak langkah selanjutnya yaitu proses dokumentasi perangkat lunak untuk mempermudah proses maintenanance kedepannya.
  • Deployment, yaitu proses yang dilakukan oleh penjamin kualitas untuk menguji kualitas sistem. Setelah sistem memenuhi syarat maka perangkat lunak siap dideployment.
  • Pemeliharaan, langkah terakhir yaitu pemeliharaan. Tidak ada perangkat lunak yang 100% bebas dari bug, oleh karena itu sangatlah penting agar perangkat lunak dipelihara secara berkala

Framework Agile

  1. Scrum

Scrum adalah sebuah metode iteratif yang termasuk dalam metode Agile tentang bagaimana cara Anda mengelola dan menjalankan sebuah proyek. Scrum membantu Anda untuk mengorganisir sebuah tim dan Anda harus memiliki komunikasi yang kuat antar member tim tersebut. Scrum mengatakan bahwa setiap pekerjaan dimulai dengan meeting singkat untuk perencanaan dan diakhiri dengan review.

Peran di Scrum

Ada tiga peran berbeda yang diperlukan dalam melakukan metode Scrum, yaitu:

Master Scrum memastikan prosedur diikuti, memastikan semua berjalan lancar, dan melindungi tim dari gangguan.

Product Owner (Pemilik Produk), biasanya merupakan orang yang dianggap paling penting dari sebuah proyek. Bagian dari tanggung jawab pemilik produk adalah memiliki visi produk dan menyampaikan visi tersebut ke tim scrum.

Tim Scrum . Sebuah tim Scrum adalah tim yang bisa mengatur pekerjaan mereka sendiri . Member tim akan melakukan analisis, implementasi, perancangan, pengujian, dan lain-lain.

Scrum ini cocok untuk tipe pengembangan produk yang kompleks, yang membutuhkan requirement yang berubah-ubah. Dalam hal ini, klien memegang peranan kunci dalam pengembangan, sehingga menuntut kesiapan klien/ customer/business owneruntuk bisa berinteraksi dengan tim development setiap saat, untuk memastikan kelancaran pengembangan produk/ proyek.

2. Kanban

Berasal dari bahasa Jepang, Kanban memiliki arti “Kartu yang dapat dilihat”.

Kanban adalah framework yang sangat baik bila digunakan untuk proses kontinyu atau rilis produk harian. Ia juga baik untuk diterapkan dalam proyek-proyek pemeliharaan/ maintenance. Kanban memiliki ciri-ciri alur kerja yang tervisualisasi (visualized workflow), tugas yang dipecah menjadi item-item diskrit, progres kerja yang dibatasi, dan pengaturan tugas-tugas dari backlog.

Sama seperti Scrum, klien/ customer/ business owner memegang peran sentral. Bedanya dengan Scrum, klien hanya diperlukan pada periode-periode tertentu saja, untuk melakukan pendetailan.