recent posts

Monday, 24 November 2014

Penghargaan dan Hukuman dalam Organisasi Perusahaan

DEFINISI PENGHARGAAN DAN HUKUMAN

A. PENGHARGAAN
Penghargaan (reward) adalah sebuah bentuk apresiasi kepada suatu prestasi tertentu yang diberikan, baik oleh dan dari perorangan ataupun suatu lembaga yang biasanya diberikan dalam bentuk material atau ucapan. Dalam organisasi ada istilah insentif, yang merupakan suatu penghargaan dalam bentuk material atau non material yang diberikan oleh pihak pimpinan organisasi perusahaan kepada karyawan agar mereka bekerja dengan menjadikan modal motivasi yang tinggi dan berprestasi dalam mencapai tujuan-tujuan perusahaan atau organisasi.

Fungsi Penghargaan
Ada tiga fungsi penting dari penghargaan yang berperan besar bagi pembentukan tingkah laku yang diharapkan:
• Memperkuat motivasi untuk memacu diri agar mencapai prestasi
• Memberikan tanda bagi seseorang yang memiliki kemampuan lebih
• Bersifat Universal
 

Imbalan intrinsic adalah imbalan yang merupakan bagian dari pekerjaan itu sendiri, imbalan tersebut mencakup rasa penyelesaian, prestasi, otonomi dan pertumbuhan, maksudnya kemampuan untuk memulai atau menyelesaikan suatu proyek pekerjaan merupakan hal yang penting bagi sejumlah individu. (Prof. Dr. FX. Suwarto, M.S.)
Imbalan ekstrinsik adalah imbalan yang berasal dari pekerjaan. Imbalan tersebut mencakup: uang, status, promosi dan rasa hormat.
  • Imbalan uang (Financial reward: Fringe Benefits) adalah imbalan ekstrinsik yang utama, dan secara umum diakui bahwa uang adalah pendorong utama, namun jika karyawan tidak melihat adanya hubungan antara prestasi dengan kenaikan yang pantas, uang tidak akan menjadi motivator yang kuat sehingga perlu diciptakan system penilaian prestasi yang jelas.
  • Tunjangan utama dari kebanyakan organisasi adalah program pensiun, biaya opname, dan sebagainya.
  • Status adalah imbalan antar pribadi (Interpersonal reward) yaitu dengan menugaskan individu pada  pekerjaan yang berwibawa.
  • Rasa hormat/pengakuan adalah penggunaan manajerial atas pengakuan atau penghargaan melibatkan pengetahuan manajer tentang pelaksanaan pekerjaan yang baik
  • Promosi adalah perpindahan seorang karyawan dari satu tempat/ jabatan ke tempat/jabatan  lain yang lebih tinggi
B.     HUKUMAN
Hukuman (punishment) adalah sebuah cara untuk mengarahkan sebuah tingkah laku agar sesuai dengan tingkah laku yang berlaku secara umum. Dalam hal ini, hukuman diberikan ketika sebuah tingkah laku yang tidak diharapkan ditampilkan oleh orang yang bersangkutan atau orang yang bersangkutan tidak memberikan respon atau tidak menampilkan sebuah tingkah laku yang diharapkan.


Dalam menjalankan sebuah organisasi, diperlukan sebah peraturan dan hukuman/sanksi guna melancarkan kinerja dalam organisasi tersebut agar berjalan dengan baik dan dapat lebih mudah tercapai tujuan dari organisasi tersebut. Jika aturan dan hukum dalam suatu organisasi tidak berjalan baik maka akan terjadi konflik kepentingan baik antar individu maupun antar organisasi.
Pada beberapa kondisi tertentu, penggunaan hukuman dapat lebih efektif untuk merubah perilaku pegawai, yaitu dengan mempertimbangkan: Waktu, Intensitas, Jadwal, Klarifikasi, dan Impersonalitas (tidak bersifat pribadi).

Fungsi Hukuman
Ada tiga fungsi penting dari hukuman yang berperan besar bagi pembentukan tingkah laku yang diharapkan:
• Membatasi perilaku. Hukuman menghalangi terjadinya pengulangan tingkah laku yang tidak diharapkan.
• Bersifat mendidik.
• Memperkuat motivasi untuk menghindarkan diri dari tingkah laku yang tidak diharapkan



PENTINGNYA PENGHARGAAN DAN HUKUMAN DI DALAM ORGANISASI

Menurut saya, adanya sebuah penghargaan (reward) dan hukuman (punishment) dalam sebuah organisasi adalah penting. Karena dengan adanya penghargaan dan hukuman para pekerja akan merasa terdorong untuk berupaya lebih baik lagi dalam bekerja karena diberikan suatu penghargaan atas kinerjanya yang memuaskan atau karena diberikan suatu hukuman atas kesalahan tindakan yang dilakukannya, sebagai peringatan untuk lebih teliti lagi dalam bekerja.

Jika penghargaan merupakan bentuk dorongan yang positif, maka hukuman sebagai bentuk dorongan yang negatif, tetapi kalau diberikan secara tepat dan bijak bisa menjadi sarana untuk memotivasi. Tujuan dari metode ini intinya adalah untuk memperbaiki diri ke arah yang lebih baik. Tapi sayangnya, banyak perusahaan belum sepenuhnya dapat menerapkan penghargaan dan hukuman secara utuh. Seringkali hukuman ditegakkan, tetapi penghargaan nyaris tidak pernah diberikan kepada tim atau karyawan kita.


IMPLIKASI HUKUMAN DAN PENGHARGAAN PADA PERUSAHAAN

Sebenarnya hal-hal seperti ini seringkali kita jumpai dalam banyak kasus, contohnya saja ketika membayar pajak kendaraan bermotor misalnya, jika terlambat membayar pajak maka akan dikenakan sanksi (punishment) yang dikenakan kepada wajib pajak, tetapi nyaris tidak ada penghargaan (reward) kepada wajib pajak teladan.
Jika punishment menghasilkan efek jera, maka penghargaan akan menghasilkan efek sebaliknya yaitu ketauladanan, untuk membuat penghargaan dan Punishment dapat berjalan dengan baik diperlukan konsistensi dan harusl bersifat objektif.

Penerapan penghargaan dan punishment secara konsekuen dapat membawa pengaruh positif, antara lain:
1. Mekanisme dan sistem kerja di suatu organisai menjadi lebih baik, karena adanya tolak ukur kinerja yang jelas.
2. Kinerja individu dalam suatu Organisasi semakin meningkat, karena adanya sistem pengawasan yang obyektif dan tepat sasaran.
3. Adaya tingkat pencapaian kinerja para individu Organisai.


Daftar pustaka :

http://irma-mintuna.blogspot.com/2013/05/penghargaan-reward-dan-hukuman.html
http://ahmadcirebon.blogspot.com/2011/11/penghargaan-reward-dan-hukuman.html
http://www.kaffah.biz/artikel/tips_bisnis/pentingnya_reward_dan_punishment_dalam_organisasi_bisnis
http://vimber-firs.blogspot.com/2010/12/pentingnya-penghargaan-dan-hukuman.html 
http://tryisnumberone.blogspot.com/2013/05/imbalan-dan-hukuman-dalam-organisasi.html
http://hairararara.blogspot.com/2013/05/imbalan-dan-hukuman-dalam-organisasi.html


VISIT MY ANOTHER BLOG!
click THIS to see my another blog, enjoy Readers :D

Thursday, 20 November 2014

Set Instruksi dalam Organisasi dan Arsitektur Komputer



Instruction Set Architecture (ISA) didefinisikan sebagai sesuatu aspek dalam arsitektur computer yang dapat dilihat oleh para pemrogram. Disebut jugamachine code (bahasa mesin), aslinya juga berbentuk biner > bahasaassembly.Operasi dari CPU ditentukan oleh instruksi instruksi y yang dilaksanakan ataudijalankannya. Instruksi ini sering disebut sebagai instruksi mesin (MachineInstruction) atau yang dieksekusi membentuk suatu operasi dan berbagai macamfungsi CPU. Sedangkan kumpulan fungsi yang dapat dieksekusi CPU disebut SetInstruksi
(Instruction Set).


1.      Karakteristik Instruksi Mesin

Menurut Kamus Besar Bahasa Indonesia, Karakteristik adalah ciri-ciri khusus atau mempunyai sifat khas sesuai dengan perwatakan tertentu. Instruksi adalah perintah atau arahan (untuk melakukan suatu pekerjaan atau melaksanakan suatu tugas). Mesin adalah perkakas untuk menggerakkan, atau membuat sesuatu yang dijalankan dengan roda-roda dan digerakkan oleh tenaga manusia atau motor penggerak yang menggunakan bahan bakar minyak atau tenaga alam.

Jadi, karakteristik-karakteristik instruksi mesin adalah ciri-ciri khusus atau sifat khas yang dimiliki oleh instruksi-instruksi atau kode operasi dalam pemrograman komputer.. Operasi CPU ditentukan oleh instruksi-instruksi yang dieksekusinya. Instruksi-instruksi ini dikenal sebagai intruksi mesin atau instruksi computer. Set fungsi dari instruksi-instruksi yang berbeda yang dapat di eksekusi oleh CPU dikenal sebagai set instruksi CPU.



A. Elemen-elemen Instuksi Mesin

Setiap instruksi harus terdiri dari informasi yang diperlukan oleh CPU untuk dieksekusi. Gambar langkah-langkah yang terdapat dalam eksekusi instruksi dan bentuk elemen-elemen instruksi mesin, adalah sebagai berikut :



• Kode Operasi : menentukan operasi-operasi yang akan dilakukan (misalnya: ADD,I/O). Operasi itu dispesifilan oleh sebuah kode biner, dikenal sebagai kode operasi.

• Acuan Operand Sumber : Operasi dapat melibatkan satu atau lebih operand sumber, dengan kata lain, operand adalah input bagi operasi.

• Acuan Operand Hasil: Operasi dapat menghasilkan sebuah hasil.

• Acuan Instruksi Berikutnya: Elemen ini memberitahukan CPU posisi instruksi berikutnya yang harus diambil setelah menyelesaikan eksekusi suatu instruksi. Instuksi berikutnya yang akan diambil berada di memori utama atau pada system memori virtual, akan berada baik di dalam memori utama atau memori sekunder. Umumnya, instruksi yang akan segera diambil selanjutnya, berada setelah instruksi saat itu. Ketika acuan eksplisit dibutuhkan, maka alamat memori utama atau alamat memori virtual harus disiapkan. Operand sumber dan hasil dapat berada di salah satu dari ketiga daerah berikut ini:

• Memori Utama atau Memori Virtual: Dengan adanya acuan instruksi berikutnya, maka alamat memori utama atau memori virtual harus diketahui.

• Register CPU: Dengan suatu pengecualian yang jarang terjadi, CPU terdiri dari sebuah register atau lebih yang dapat diacu oleh instruksi-instruksi mesin. Bila hanya terdapat sebuah register saja, maka acuan ke instruksi tersebut dapat berbentuk implicit. Sedangkan jika terdapat lebih dari satu register, maka setiap register diberi nomor yang unik, dan instruksi harus terdiri dari nomor register yang dimaksud.

• Perangkat I/O: Instruksi harus menspesifikan modul I/O dan perangkat yang diperlukan oleh operasi. Jika digunakan I/O memori terpetakan, maka perangkat ini merupakan memori utama atau memori virtual.

B. Representasi Instruksi


Di dalam computer, instruksi dipresentasikan oleh sehimpunan bit. Himpunan bit ini dibagi menjadi beberapa bidang, dengan bidang-bidang ini berkaitan dengan elemen-elemen yang akan memuat instruksi. Layout instruksi ini dikenal sebagai bentuk instruksi. Contoh yang sederhana ditunjukkan pada gambar. Pada sebagian besar set instruksi, dapat digunakan lebih dari satu bentuk. Selama berlangsungnya eksekusi instruksi, instruksi dibaca ke dalam register instruksi yang terdapat dalam CPU. Untuk melakukan operasi yang diperlukan, CPU harus dapat mengeluarkan data dari berbagai bidang instruksi. Opcode direpresentasikan dengan singkatan-singkatan, yang disebut mnemorik, yang mengindikasikan operasi, contohnya adalah:

ADD Add (Menambahkan)
SUB Substract (Pengurangan)
MPY Multiply (Perkalian)
DIV Divide (Pembagian0
LOAD Muatkan data data dari memori
STOR Simpan data ke memori

Operand-operand juga direpresentasikan secara simbolik. Misalnya instruksi ADD R,Y Berarti tambahkan niali yang terdapat pada lokasi Y ke isi register R. Dalam contoh ini, Y berkaitan dengan alamat lokasi di dalam memori, dan R berkaitan dengan register tertentu. Perlu dicatat bahwa operasi dilakukan terhadap isi alamat, bukan terhadap alamatnya.

Sehingga adalah mungkin untuk menuliskan program bahasa mesin dalam bentuk simbolik. Setiap opcode simbolik memiliki representasi biner yang tetap, dan pemrograman dapat menetapkan masing-masing operand simbolik. Misalnya, pemrograman dapat memulainya dengan definisi-definisi:
X=523
Y=514
dan seterusnya. Sebuah program yang sederhana akan menerima input simbol ini, kemudian mengkonversiakn opcode dan acuan operand menjadi bentuk biner, dan akhirnya membentuk instruksi mesin biner.

C. Jenis-Jenis Instruksi

Sebuah instuksi yang dapat diekspresikan dalam bahasa BASIC atau FORTRAN. X = X+Y Pernyataan ini menginstruksiakna komputer untuk menambahkan nilai yang tersimpan di Y ke nilai yang tersimpan di X dan menyimpan hasilnya di X. Variabel X dan Y berkorespondensi dengan lokasi 513 dan 514. Jika kita mengasumsikan set instruksi mesin yang sederhana, maka operasi ini dapat dilakukan dengan tiga buah instruksi:

1. Muatkan sebuah register dengan isi lokasi memori 513
2. Tambahkan isi lokasi memori ke register
3. Simpan isi register di lokasi memori 513

Suatu komputer harus memiliki set instruksi yang memungkinkan pengguna untuk memformulasikan pengolahan data atau dengan memperhatikan kemampuan pemrograman bahasa tingkat tinggi. Agar dapat dieksekusi, setiap program yang ditulis dalam bahasa program tingkat tinggi harus diterjemahkan ke dalam bahasa mesin. Jadi, set instruksi mesin harus dapat mengekspresikan setiap instruksi bahas atingkat tinggi.

Adapun Jenis-jenis instrusi sebagai berikut:
- Pengolahan Data : Instrusi-instruksi aritmatika dan logika
- Penyimpanan Data : Instriksi-instruksi memori
- Perpindahan Data : Instruksi I/O
- Kontrol : Instruksi pemeriksaan dan percabangan
2.      Tipe – Tipe Operand
Operand adalah sebuah objek yang ada pada operasi matematika yang dapat digunakan untuk melakukan operasi. Operand atau operator dalam bahasa C berbentuk simbol bukan berbentuk keyword atau kata yang biasa ada di bahasa pemrograman lain. Simbol yang digunakan bukan karakter yang ada dalam abjad tapi ada pada keyboard kita seperti =,,* dan sebagainya.
Tipe-tipe operand diantaranya :
1. Addresses (akan dibahas pada addressing modes)
2. Numbers :
- Integer or fixed point
- Floating point
- Decimal (BCD)
3. Characters :
- ASCII
- EBCDIC
4. Logical Data :
 Bila data berbentuk binary: 0 dan 1
Jenis-jenis operator adalah sebagai berikut :
 1. Operator Aritmetika
Operator untuk melakukan fungsi aritmetika seperti : +(penjumlahan), – (mengurangkan), * (mengalikan), / (membagi).
2. Operator relational
Operator untuk menyatakan relasi atau perbandingan antara dua operand, seperti > (lebih besr), =(lebih besar atau sama), <= (lebih kecil atau sama), == (sama), != (tidak sama).
3. Operator Logika
Operator untuk merelasikan operand secara logis seperti && (and), || (or), !(not).

3.      Tipe – Tipe Operasi
Dalam perancangan arsitektur komputer, jumlah kode operasi akan sangat berbeda untuk masing-masing komputer, tetapi terdapat kemiripan dalam jenis operasinya.
Jenis operasi komputer
- Transfer data
1. Menetapkan lokasi operand sumber dan operand tujuan.

2. Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas daripada stack.
3. Menetapkan panjang data yang dipindahkan.
4. Menetapkan mode pengalamatan.
- Aritmatika
Tindakan CPU untuk melakukan operasi arithmetic :
1. Transfer data sebelum atau sesudah.
2. Melakukan fungsi dalam ALU.
3. Menset kode-kode kondisi dan flag.
-Logika
Tindakan CPU sama dengan arithmetic
Operasi set instruksi untuk operasi logical :
1. AND, OR, NOT, EXOR
2. COMPARE : melakukan perbandingan logika.
3. TEST : menguji kondisi tertentu.
4. SHIFT : operand menggeser ke kiri atau kanan menyebabkan
konstanta pada ujung bit.
5. ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.
- Konversi

Tindakan CPU sama dengan arithmetic dan logical.
Instruksi yang mengubah format instruksi yang beroperasi terhadap format data.
Misalnya pengubahan bilangan desimal menjadi bilangan biner.
Operasi set instruksi untuk conversi :
 1. TRANSLATE : menterjemahkan nilai-nilai dalam suatu bagian memori berdasrkan tabel   korespodensi.
 2. CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
- Input / Output

Tindakan CPU untuk melakukan INPUT /OUTPUT :
1. Apabila  memory mapped I/O maka menentukan alamat memory mapped.
2. Mengawali perintah ke modul I/O
Operasi set instruksi Input / Ouput :
1. INPUT : memindahkan data dari pernagkat I/O tertentu ke tujuan
2. OUTPUT : memindahkan data dari sumber tertentu ke perangkat I/O
3. START I/O : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O
4. TEST I/O : memindahkan informasi dari sistem I/O ke tujuan
- Transfer Control

Tindakan CPU untuk transfer control :
Mengupdate program counter untuk subrutin , call / return.
Operasi set instruksi untuk transfer control :
·         JUMP (cabang) : pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu.
·         JUMP BERSYARAT : menguji persyaratan tertentu danmemuat PC dengan alamat tertentu atau tidak melakukan apa tergantung dari persyaratan.
·         JUMP SUBRUTIN : melompat ke  alamat tertentu.
·         RETURN : mengganti isi PC dan register lainnya yang berasal dari lokasi tertentu.
·         EXECUTE : mengambil operand dari lokasi tertentu dan mengeksekusi sebagai instruksi
·         SKIP : menambah PC sehingga melompati instruksi berikutnya.
·         SKIP BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan pada persyaratan
·         HALT : menghentikan eksekusi program.
·         WAIT (HOLD) : melanjutkan eksekusi pada saat persyaratan dipenuhi.
·         NO OPERATION : tidak ada operasi yang dilakukan.
- Control System

Hanya dapat dieksekusi ketika prosesor berada dalam keadaan khusus tertentu atau sedang mengeksekusi suatu program yang berada dalam area khusus, biasanya digunakan dalam sistem operasi.
Contoh : membaca atau mengubah register kontrol.
4.     Pengalamatan

Metode pengalamatan adalah bagaimana cara menunjuk dan  mengalamati suatu lokasi memori pada  sebuah alamat di mana operand akan diambil. Mode pengalamatan diterapkan pada set instruksi, pengalamatan memberikan fleksibilitas khusus yang sangat penting.
JUMLAH ALAMAT (NUMBER OF ADDRESSES) 

* Salah satu cara tradisional untuk menggambarkan arsitektur prosessor adalah dengan melihat jumlah alamat yang terkandung dalam setiap instruksinya.
* Jumlah alamat maksimum yang mungkin diperlukan dalam sebuah instruksi : 

1. Empat Alamat ( dua operand, satu hasil, satu untuk alamat instruksi berikutnya)
2. Tiga Alamat (dua operand, satu hasil)
3. Dua Alamat (satu operand merangkap hasil, satunya lagi operand)
4. Satu Alamat (menggunakan accumulator untuk menyimpan operand dan hasilnya)

Macam-macam instruksi menurut jumlah operasi yang dispesifikasikan
1. O – Address Instruction
2. 1 – Addreess Instruction.
3. N – Address Instruction
4. M + N – Address Instruction

Macam-macam instruksi menurut sifat akses terhadap memori atau register
1. Memori To Register Instruction
2. Memori To Memori Instruction
3. Register To Register Instruction

ADDRESSING MODES 

            1. Immediate addressing
            Operand (data yang akan dikomputasi) berada langsung pada set instruksi.

2.   Direct Addressing
Operand berada pada memori, set instruksi memegang alamat lokasi memori dimana operand tersebut berada.

3.   Indirect Addresing
Operand berada pada memori, untuk mendapatkan operand ini CPU harus melakukan penelusuran dua kali yaitu dari data alamat memori yang ada pada set instruksi serta alamat yang ditunjuk oleh alamat memori yang diperoleh dari set instruksi tadi.

4.   Register addressing
Operand berada pada register, cara kerjanya mirip dengan direct addressing hanya saja CPU mengakses alamat register bukan alamat memori.

5.   Register Indirect Addressing
Operand berada pada memori, untuk mendapatkan operand CPU harus mengakses register terlebih dahulu karena informasi lokasi operand berada pada register.

6.  Displacement
Operand berada pada memori, cara kerjanya merupakan gabungan dari teknik direct addressing dan register indirect addressing.

7.   Stack
            Operand berada pada stack, operand secara berkala dimasukan ke stack sehingga ketika 
operand dibutuhkan maka operand sudah berada pada “top of the stack”.
Teknik pengalamatan tersebut harus dapat memenuhi kebutuhan komputasi yang dilakukan oleh computer yang secara garis besar dapat dibagi kedalam tiga kategori yaitu:
-         Operasi load (memasukan data).
-         Operasi branch (percabangan).                                                                                                  
-         Operasi aritmatik dan logika.


5.      Format Instruksi
Format instruksi menentukan layout bit suatu instruksi. Format instruksi harus mencakup opcode dan secara implisit atau eksplisit, nol operand atau lebih. Secara implisit atau eksplisit, format harus dapat mengindikasikan mode pengalamatan seluruh operand-nya. Pada sebagian besar set instruksi, digunakan lebih dari satu format instruksi. Rancangan format instruksi merupakan seni yang kompleks, dan telah diimplementasikan bermacam-macam rancangan.
Suatu instruksi terdiri dari beberapa field yang sesuai dengan elemen dalam instruksi tersebut. Layout dari suatu instruksi sering disebut sebagai  Format Instruksi (Instruction Format).











Bentuk instruksi:
-          Format instruksi 3 alamat
Mempunyai bentuk umum seperti : [OPCODE][AH],[AO1],[AO2]. Terdiri dari satu alamt hasil, dan dua alamat operand, misal SUB Y,A,B Yang mempunyai arti dalam bentuk algoritmik : Y := A – B dan arti dalam bentuk penjelasan : kurangkan isi reg a dengan isi reg B, kemudian simpan hasilnya di reg Y. bentuk bentuk pada format ini tidak umum digunakan di dalam computer, tetapi tidak dimungkinkan ada pengunaanya, dalam peongoprasianya banyak register sekaligus dan program lebih pendek.
Contoh:
A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D × E)
SUB Y, A, B              Y := A – B
MPY T, D, E               T := D × E
ADD T, T, C               T := T + C
DIV Y, Y, T               Y:= Y / T
Memerlukan 4 operasi
-          Format instruksi 2 alamat
Mempunyai bentuk umum : [OPCODE][AH],[AO]. Terdiri dari satu alamat hasil merangkap operand, satu alamat operand, missal : SUB Y,B yang mempunyai arti dalam algoritmik : Y:= Y – B dan arti dalam bentuk penjelasan : kurangkan isi reg Y dengan isi reg B, kemudian simpan hasillnya di reg Y. bentuk bentuk format ini masih digunakan di computer sekarang, untuk mengoprasikan lebih sedikit register, tapi panjang program tidak bertambah terlalu banyak.
Contoh :
A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D × E)
MOVE Y, A               Y := A
SUB Y, B                   Y := Y – B
MOVE T, D                T := D
MPY T, E                    T := T × E
ADD T, C                   T := T + C
DIV Y, T                    Y:= Y / T
Memerlukan 6 operasi
-          Format instruksi 1 alamat
Mempunyai bentuk umum : [OPCODE][AO]. Terdiri dari satu alamat operand, hasil disimpan di accumulator, missal : SUB B yang mempunyai arti dalam algoritmik : AC:= AC – B dan arti dalam bentuk penjelasan : kurangkan isi Acc dengan isi reg B, kemudian simpan hasillnya di reg Acc. bentuk bentuk format ini masih digunakan di computer jaman dahulu, untuk mengoprasikan di perlukan satu  register, tapi panjang program semakin bertambah.
Contoh :
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)
LOAD D                     AC := D
MPY E                        AC := AC × E
ADD C                       AC := AC + C
STOR Y                      Y := AC
LOAD A                     AC := A
SUB B                        AC := AC – B
DIV Y                                     AC := AC / Y
STOR Y                      Y := AC
Memerlukan 8 operasi
-          Format instruksi 0 alamat

Mempunyai bentuk umum : [OPCODE]. Terdiri dari semua alamat operand implicit, disimpan dalam bentuk stack. Operasi yang biasanya membutuhkan 2 operand, akan mengambil isi stack paling atas dan dibawahnya missal : SUB yang mempunyai arti dalam algoritmik : S[top]:=S[top-1]-S[top] dan arti dalam bentuk penjelasan : kurangkan isi stack no2 dari atas dengan isi stack paling atas, kemudian simpan hasilnya di stack paling atas, untuk mengoprasikan ada beberapa instruksi khusus stack PUSH dan POP.
Contoh :
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)
PUSH A                      S[top] := A
PUSH B                      S[top] := B
SUB                            S[top] := A – B
PUSH C                      S[top] := C
PUSH D                      S[top] := D
PUSH E                      S[top] := E
MPY                           S[top] := D × E
ADD                           S[top] := C + S[top]
DIV                             S[top] := (A – B) /S[top]
POP Y                         Out := S[top]




6.      Kesimpulan

 
Instruction Set Architecture (ISA) didefinisikan sebagai sesuatu aspek dalam arsitektur computer yang dapat dilihat oleh para pemrogram. Disebut jugamachine code (bahasa mesin), aslinya juga berbentuk biner > bahasa assembly. Operasi – operasi yang berjalan di dalam CPU ditentukan oleh instruksi-instruksi yang dieksekusinya. Set instruksi CPU adalah set fungsi dari instruksi-instruksi yang berbeda dan dapat dieksekusi  oleh CPU. Di dalam set instruksi ada elemen-elemen yang akan digunakan untuk dieksekusi. Intruksi yang dilakukan di dalam CPU direpresentasikan oleh sehimpunan bit agar dapat dimengerti oleh manusia / programmer.  
Operand merupakan salah satu elemen dari set instruksi di computer, operand dapat digunakan untuk melakukan operasi seperti transfer data, aritmatika, logika, dll. Pengalamatan adalah cara menunjuk suatu lokasi memori pada  sebuah alamat di mana operand akan diambil. Di dalam instruksi itu sendiri terdiri dari beberapa field, dan layout dari suatu instruksi tersebut disebut format instruksi, yang di dalamnya harus terdapat opcode dan operand 0 atau lebih. 

7.      Daftar Pustaka
http://harnowicaksono.blogspot.com/2013/11/karakteristik-instruksi-mesin.html
http://gudang-tugasku.blogspot.com/2014/03/set-instruksi-pada-sistem-komputer.html
http://zilan7green.blogspot.com/2013/02/makalah-arsitektur-komputer-mode.html
http://farhanarrahman.blogspot.com/

Tuesday, 4 November 2014

Computer Arithmetic

Arithmetic Logical Unit

ALU, singkatan dari Arithmetic And Logic Unit (bahasa Indonesia: unit aritmatika dan logika), adalah salah satu bagian dalam dari sebuah mikroprosesor yang berfungsi untuk melakukan operasi hitungan aritmatika dan logika. Contoh operasi aritmatika adalah operasi penjumlahan dan pengurangan, sedangkan contoh operasi logika adalah logika AND dan OR. tugas utama dari ALU (Arithmetic And Logic Unit)adalah melakukan semua perhitungan aritmatika atau matematika yang terjadi sesuai dengan instruksi program. ALU melakukan operasi arithmatika dengan dasar pertambahan, sedang operasi arithmatika yang lainnya, seperti pengurangan, perkalian, dan pembagian dilakukan dengan dasar penjumlahan. sehingga sirkuit elektronik di ALU yang digunakan untuk melaksanakan operasi arithmatika ini disebut adder. Tugas lalin dari ALU adalah melakukan keputusan dari operasi logika sesuai dengan instruksi program. Operasi logika (logical operation) meliputi perbandingan dua buah elemen logika dengan menggunakan operator logika, yaitu:
a. sama dengan (=)
b. tidak sama dengan (<>)
c. kurang dari (<)
d. kurang atau sama dengan dari (<=)
e. lebih besar dari (>)
f. lebih besar atau sama dengan dari (>=)


Simple Expression





Arithmatic Logical Unit (ALU), fungsi unit ini adalah untuk melakukan suatu proses data yang berbentuk angka dan logika, seperti data matematika dan statistika. ALU terdiri dari register-register untuk menyimpan informasi.Tugas utama dari ALU adalah melakukan perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. Rangkaian pada ALU (Arithmetic and Logic Unit) yang digunakan untuk menjumlahkan bilangan dinamakan dengan Adder. Adder digunakan untuk memproses operasi aritmetika, Adder juga disebut rangkaian kombinasional aritmatika.


Ada 3 jenis adder:
    1. Rangkaian Adder dengan menjumlahkan dua bit disebut Half Adder.
    2. Rangkaian Adder dengan menjumlahkan tiga bit disebut Full Adder.
    3. Rangkain Adder dengan menjumlahkan banyak bit disebut Paralel Adder

         1. HALF ADDER
Rangkaian Half Adder merupakan dasar penjumlahan bilangan Biner yang terdiri dari satu bit, oleh karena itu dinamai Penjumlah Tak Lengkap.
a. jika A = 0 dan B = 0 dijumlahkan, hasilnya S ( Sum ) = 0.
b. jika A = 0 dan B = 1 dijumlahkan, hasilnya S ( Sum ) = 1.
c. jika A = 1 dan B = 1 dijumlahkan, hasilnya S ( Sum ) = 0
jika A = 1 dan B =1 dijumlahkan, hasilnya S ( Sum ) = 0. dengan nilai pindahan cy(Carry Out) = 1
Dengan demikian, half adder memiliki 2 masukan ( A dan B ) dan dua keluaran ( S dan Cy ).






2. FULL ADDER
Sebuah Full Adder menjumlahkan dua bilangan yang telah dikonversikan menjadi bilangan-bilangan biner. Masing-masing bit pada posisi yang sama saling dijumlahkan. Full Adder sebagai penjumlah pada bit-bit selain yang terendah. Full Adder menjumlahkan dua bit input ditambah dengan nilai Carry-Out dari penjumlahan bit sebelumnya. Output dari Full Adder adalah hasil penjumlahan (Sum) dan bit kelebihannya (carry-out).





3. PARALEL  ADDER
Rangkaian Parallel Adder adalah rangkaian penjumlah dari dua bilangan yang telah dikonversikan ke dalam bentuk binenggap ada dua buah register A dan B, masing-masing register terdiri dari 4 bit biner : A3A2A1A0 dan B3B2B1B0.
Rangkaian Parallel Adder terdiri dari Sebuah Half Adder (HA) pada Least Significant Bit (LSB) dari masing-masing input dan beberapa Full Adder pada bit-bit berikutnya. Prinsip kerja dari Parallel Adder adalah sebagai berikut : penjumlahan dilakukan mulai dari LSB-nya. Jika hasil penjumlahan adalah bilangan desimal “2” atau lebih, maka bit kelebihannya disimpan pada Cout, sedangkan bit di bawahnya akan dikeluarkan pada Σ. Begitu seterusnya menuju ke Most Significant Bit (MSB)nya.





Integer Representation



Apa itu 8 bit, 16 bit, 32 bit, 64 bit?

Bit adalah suatu data yang hanya menyimpan bilangan 0 (false) atau 1 (true).
Sesimpel itu, tapi jika digabung2 akan lebih banyak maknanya 
Satu byte adalah 8 bit.

Integer yang biasanya ditemukan dalam dunia programming itu biasanya bisa dibedakan jadi 2 tipe, signed dan unsigned.

Apa artinya? Secara sederhana signed itu bisa mengandung nilai negatif, sedangkan unsigned hanya nilai positif.
 
Penjelasan Unsigned Integer 

Misalkan 8 bit unsigned integer, yang biasanya disebut char, itu ada integer dengan 8 bit misalnya 01010110.
Angkanya secara sederhana dengan mengubah itu dari basis 2 ke basis 10 (supaya bisa dimengerti manusia

Cara ngubahnya itu tiap posisi bit itu kita kasih nomor dari paling kanan itu 1, semakin ke kiri itu adalah 2 kali dari sebelah kanannya.

Contoh:

01010110
1286432168421

Nah yang ada 1 nya itu ditambah semua, kalau contoh di atas 64 + 16 + 4 + 2 = 86.

Artinya range untuk 8 bit unsigned integer itu dari 00000000 = 0 sampe 11111111 = 255. Jadi sekarang harusnya kamu tahu berapa range untuk 16 bit unsigned integer (short). Hal itu juga berlaku untuk 32 bit (long) dan 64 bit (long long).


                      Play video ini untuk penjelasan secara visual

                   atau klik ini 


Penjelasan Signed integer

Biasanya program - program komputer kalau bicara signed integer itu dia pake Two's complement.
Karena ada lebih dari satu cara untuk mempresentasikan signed integer.

Bit paling kiri di signed integer itu namanya signed bit, itu yang menandakan itu bilangan negatif atau kalau 0, artinya positif, kalau 1 artinya negatif.

Untuk representasi bilangan positif, sama kayak sebelumnya dengan bit paling kiri itu 0.
Untuk representasi bilangan negatif ini yang agak dikit ribet, jadi caranya semua bit diinvert dulu semuanya (0 jadi 1, 1 jadi 0), dan kita memperoleh angka yang positif, tapi sebelum dibaca, kita harus tambah satu dulu baru kita baca sebagai angka positif.

Contoh bilangan negatif : 11101000
Pertama kita tau itu negatif (ngeliat bit pertama), karena itu kita invert semua bitnya : 00010111
Trus kita tambah 1 ke bilangan itu (penjumlahan basis 2 ya, diinget) :

?
1
2
3
4
5
    111  <<< caret
00010111
       1
-------- +
00011000

Jadi hasilnya 00011000, trus diitung pake kayak ngitung positif, 16 + 8 = 24. Jadi karena kita tahu ini negatif, hasilnya jadi -24.
Dan artinya range untuk 8 bit signed integer itu 1000000 = -128 sampe 01111111 = 127. Dan cara yang sama berlaku untuk 16 bit, 32 bit, dan 64 bit.

Dan kalau ada yang bingung kenapa dirancang kayak gini, jawabannya ada pada penjumlahan dua bilangan, karena kalau pakai kayak gini menjumlahkan positif sama negatif value itu gampang. Seandainya 86 (01010110) dijumlah dengan -24 (11101000), untuk ngejumlahin keduanya tinggal kayak ngejumlahin binary biasa.

?
1
2
3
4
5
11        <<< caret
 01010110
 11101000
--------- +
x00111110

Bisa dilihat pas ngejumlahin bisa lebih dari 8 bit, karena itu yang lewat itu dibuang, hasilnya cuman ngambil 00111110, dan itu adalah 32 + 16 + 8 + 4 + 2= 62 dimana 86 + (-24) = 62.

Nah karena bisa lebih dari 8 bit dan ada bit yang dibuat ini yang biasanya menyebabkan angka gede banget ujung2nya jadi negatif, misalnya kita punya 127 dalam 8 bit signed integer, kita tambahin satu aja, dia bakal menjadi -128 (muter lagi).

Integer Arithmetic


1. Pengertian Bilangan Bulat

Bilangan bulat terdiri dari
– bilangan asli : 1, 2, 3, …
– bilangan nol : 0
– bilangan negatif : …, -3, -2, -1
Bilangan Bulat dinotasikan dengan : B = {…, -3, -2, -1, 0, 1, 2, 3, …}
Bilangan lain yang berada dalam bilangan bulat, di antaranya adalah bilangan:
a. Cacah : C = {0, 1, 2, 3, 4, …}
b. Ganjil : J = {1, 3, 5, 7, …}
c. Genap : G = {2, 4, 6, 8, …}
d. Cacah Kuadrat : K = {0, 1, 4, 9, …}
e. Prima : {2, 3, 5, 7, 11, …}

2. Membandingkan Bilangan Bulat
Dengan memperhatikan tempat pada garis bilangan, dapat kita nyatakan (dalam contoh) bahwa :
a. 7 > 4, karena 7 terletak di sebelah kanan 4,
b. (-5) < 2, karena (-5) terletak di sebelah kiri 2, dan lain sebagainya.

3. Penjumlahan dan Sifatnya
Salah satu Rumus penting :

Contoh : 7 + (-10) = 7 – 10 = -3
Sifat-sifatnya :
a. Komutatif :

b. Asosiatif :

c. Tertutup :

d. Memiliki identitas :

e. Invers penjumlahan :
4. Pengurangan
Pengurangan merupakan lawan (invers) dari penjumlahan.
Rumus :

Contoh : 8 – (-2) = 8 + 2 = 10
5. Perkalian dan Sifatnya
contoh :
3 x (-2) = (-2) + (-2) + (-2)

Sifat-sifat :
6. Pembagian
Pembagian adalah kebalikan (invers) dari perkalian.
Rumus :
7. Perpangkatan dan Sifat
8. Akar Pangkat Dua dan Akar Pangkat Tiga


Floating Point Representation


Floating-point atau bilangan titik mengambang, adalah sebuah format bilangan yang dapat digunakan untuk merepresentasikan sebuah nilai yang sangat besar atau sangat kecil. Bilangan ini direpresentasikan menjadi dua bagian, yakni bagian mantisa dan bagian eksponen (E). Bagian mantisa menentukan digit dalam angka tersebut, sementara eksponen menentukan nilai berapa besar pangkat pada bagian mantisa tersebut (pada posisi titik desimal). Sebagai contoh, bilangan 314600000 dan bilangan 0.0000451 dapat direpresentasikan dalam bentuk bilangan floating point: 3146E5 dan 451E-7 (artinya 3146 * 10 pangkat 5, dan 451 * 10 pangkat -7).
Kebanyakan CPU atau mikroprosesor sederhana tidak mendukung secara langsung operasi terhadap bilangan floating-point ini, karena aslinya mikroprosesor ini hanya memiliki unit aritmetika dan logika, serta unit kontrol yang beroperasi berdasarkan pada bilangan bulat (integer) saja.
Perhitungan atau kalkulasi terhadap nilai floating point pada jenis mikroprosesor sederhana dapat dilakukan dengan menggunakan perangkat lunak, sehingga operasinya sangat lambat. Untuk itulah, sebuah prosesor tambahan dibutuhkan untuk melakukan operasi terhadap jenis bilangan ini, yang disebut dengan unit titik mengambang.
Dalam bahasa pemrograman, khususnya keluarga bahasa pemrograman C, bilangan titik mengambang direpresentasikan dengan tipe data float.

Bilangan Floating-Point 32-bit (single-precision)

Bilangan floating-point 32-bit tersusun atas (Gambar 0.1↓):
  • 1 bit tanda (S),
  • 8 bit eksponen (E), dan
  • 23 bit untuk mantisa (M)
Figure 0.1 Format bilangan floating-point 32-bit
Bit tanda (S) menyatakan bilangan positif jika S=0 dan negatif jika S=1.
Field eksponen adalah radix 2. Nilai eksponen bisa negatif atau positif untuk menyatakan bilangan yang sangat kecil atau sangat besar. Format eksponen yang digunakan adalah excess-127. Nilai 127 ditambahkan dari nilai eksponen sebenarnya (Exp), yaitu Exp = E − 127Dengan excess-127, nilai E akan selalu positif dengan jangkauan 0 sampai 255.
  • Nilai ekstrem adalah untuk E=0 dan E=255
    • E=0 menyatakan bilangan NOL (jika M = 0) dan subnormal (jika M ≠ 0)
    • E=255 menyatakan bilangan TAK TERHINGGA (jika M = 0) dan NAN/not-a-number (jika M ≠ 0);
  • Nilai normal adalah 1 ≤ E ≤ 254 yang menunjukkan nilai eksponen sebenarnya dari -126 sampai 127
    • Contoh: Emin(1) =  − 126E(50) =  − 77 dan Emax(254) = 127;
Eksponen (E)Mantissa=0Mantissa ≠ 0Persamaan
00, -0subnormal( − 1)S × 0.bit signifikan × 2 − 126
1-254Nilai ternormalisasi( − 1)S × 1.bit signifikan × 2E − 127
255bukan bilangan (NAN=not-a-number)
Table 0.1 Nilai eksponen di format floating-point 32-bit
Saat nilai mantisa (M) dinormalisasi, most significant bit (MSB) selalu 1. Namun, bit MSB ini tidak perlu disertakan secara eksplisit di field mantisa (Tabel 0.1↑). Nilai mantisa yang sebenarnya adalah1.M, sehingga nilai bilangan floating-pointnya menjadi:
Di bilangan subnormal, nilai mantisa sebenarnya adalah 0.M, sehingga bilangan floating-pointnya menjadi:
Dengan mantissa 23 bit ini ditambah 1 bit implisit, total presisi dari representasi floating-point 32-bit ini adalah 24 bit atau sekitar 7 digit desimal (yaitu 24 × log10(2) = 7.225).
Dalam pemrograman, suatu bilangan single-precision ini dideklarasikan dengan tipe data float(bahasa C, C++, Java) dan single (Pascal, VB, MATLAB).
float anumber; // 32-bit single precision number
int main(){
anumber = -1.1245;
...
return 0;
}
Contoh 1
Bilangan floating-point dinyatakan dengan B = 0x3E600000 . Nyatakan B sebagai bilangan pecahan desimal.
Representasi bilangan floating-point 32-bit dapat dinyatakan seperti Gambar 0.2↓.
Jadi, B = 0x3E6300000 menyatakan bilangan floating-point 0.21875
Figure 0.2 Contoh bilangan floating-point 32-bit B = 0x3E60000


Bilangan Floating-Point 64-bit (double-precision)

Bilangan floating-point 64-bit tersusun atas (Gambar 0.6↓):
  • 1 bit tanda (S),
  • 11 bit eksponen (E), dan
  • 52 bit untuk mantisa (M)
Figure 0.6 Format bilangan floating-point 64-bit
Seperti halnya dengan bilangan single-precission, bit tanda (S) menyatakan bilangan positif jika S=0 dan negatif jika S=1. Field eksponen adalah radix 2. Nilai eksponen bisa negatif atau positif untuk menyatakan bilangan yang sangat kecil atau sangat besar. Format eksponen yang digunakan adalah excess-1023. Nilai 1023 ditambahkan dari nilai eksponen sebenarnya (Exp), yaitu Exp = E − 1023Dengan excess-1023, nilai E akan selalu positif dengan jangkauan 0 sampai 2047.
  • Nilai ekstrem adalah untuk E = 0 dan E = 2047
    • E=0 menyatakan bilangan NOL (jika M = 0) dan subnormal (jika M ≠ 0)
    • E=2047 menyatakan bilangan TAK TERHINGGA (jika M = 0) dan NAN/not-a-number (jika M≠ 0) (Tabel 0.2↓);
  • Nilai normal adalah 1 ≤ E ≤ 2046 yang menunjukkan nilai eksponen sebenarnya dari -1022 sampai 1023
    • Contoh: Emin(1) =  − 1022E(100) =  − 923 dan Emax(2046) = 1023;
Eksponen (E)Mantissa=0Mantissa ≠ 0Persamaan
00, -0subnormal( − 1)S × 0.bit signifikan × 2 − 1022
1-2046Nilai ternormalisasi( − 1)S × 1.bit signifikan × 2E − 1023
2047bukan bilangan (NAN=not-a-number)
Table 0.2 Nilai eksponen di format floating-point 64-bit
Nilai mantisa (M) dinormalisasi, yang berarti most significant bit (MSB) selalu 1. Bit MSB ini tidak perlu disertakan secara eksplisit di field mantisa. Nilai mantisa sebenarnya adalah 1.M, sehingga nilai bilangan floating-pointnya menjadi:
Dengan mantissa 52 bit ini ditambah 1 bit implisit, total presisi dari representasi floating-point 32-bit ini adalah 53 bit atau sekitar 16 digit desimal (yaitu 53 × log10(2) = 15.995).
Dalam pemrograman, suatu bilangan single-precision ini dideklarasikan dengan tipe data double(bahasa C, C++, Java).
double anumber; // 64-bit double precision number
int main(){
anumber = -1.1245;
...
return 0;
}
Contoh 5
Bilangan floating-point dinyatakan dengan B = 0x3FD5000000000000 . Nyatakan B sebagai bilangan pecahan desimal.
Representasi bilangan floating-point 64-bit dapat dinyatakan seperti Gambar 0.7↓.

Jadi, B = 0x3FD5000000000000 menyatakan bilangan floating-point 0.328125
Figure 0.7 Contoh bilangan floating-point 64-bit B = 0x3FD5000000000000 = 0.328125

Floating Point Arithmetic 

Sistem penempatan titik desimal dengan cara membagi word menjadi dua bagian. Satu bagian berisi angka pecahan, sebagian lainnya merupakan eksponen dari sepuluh. Posisi efektif dari titik desimal akan berubah ketika eksponennya diubah. Sistem ini digunakan untuk menyatakan hasil perhitungan yang sangat besar atau sangat kecil.







Sumber terkait :
1. http://lookupmens.blogspot.com/2011/03/pengertian-dan-cara-kerja-arithmatic.html
2.  http://id.wikipedia.org/wiki/Berkas:ALU_symbol.svg
3. http://teknikrandi.wordpress.com/2013/10/21/2/
4. http://alijayameilio.blogspot.com/2013/07/quick-integer-representation.html
5. http://id.wikipedia.org/wiki/Floating-point
6. http://didik.blog.undip.ac.id/2012/06/01/bilangan-floating-point/



Visit my another blog!
aliamutiamayanda.wordpress.com