• Angka dan huruf dapat ditampilkan sebagai nilai biner. Selain untuk menyebutkan keadaan benar atau salah, bilangan biner dapat dikombinasikan untuk mewakili sebuah bilangan dan huruf.
  • Binary adalah representasi dari 2 keadaan yaitu benar dan salah, hidup dan mati, dan lain-lain. Pada sebuah komputer, pada saat kita menyalakan komputer maka kondisi yang direpresentasikan adalah benar dan pada keadaan mematikan komputer maka kondisi yang direpresentasikan adalah salah.
  • Semua rangkaian logika yang sebelumnya kita ketahui adalah rangkaian yang bergerak linear, namun bagaimana jika ada logika yang bergerak berputar arah?
  • CPU memiliki tugas untuk menjalankan program seperti microsoft word, google chrome, dll yang dibuat dari serangkaian operasi individu yang disebut dengan instruksi.
  • Instruksi dalam CPU mempunyai banyak jenis perintah, mulai dari LOAD, ADD, Subtract dan lain-lain. Dan di dalam penggunaanya bisa saja melibatkan ALU atau tidak, contoh jika kita memberikan perintah Add maka hal tersebut membutuhkan ALU.

Minggu, 24 September 2023

Advanced CPU Designs | Crash Course

 Perkembangan CPU hingga zaman sekarang

CPU zaman sekarang mempunyai kecepatan hingga berkali-kali lipat dari pertama kali diciptakan. CPU tersebut mampu menjalankan hingga miliaran perintah dalam satu detik. Ini tidak merubah cara kerja CPU, namun kita hanya mempercepat kerja transistor dan menjadikannya lebih efisien.

CPU modern sekarang mempunyai sirkuit spesial seperti untuk menjalankan operasi grafis, decoding video terkompresi, dan mengenkripsi file. Sirkuit spesial tersebut mempersingkat kerja CPU yang jika hal tersebut dilakukan, maka akan mengalami beberapa kali siklus.

CPU modern mempunyai banyak sekali daftar instruksi karena kemampuannya yang lebih cepat dengan kerja yang efektif dan efisien. 


Keterlambatan Data

Ketika kita mempunyai CPU yang sangat cepat, maka kendala yang akan kita temukan adalah proses transfer data dari RAM ke CPU yang melalui BUS. Ketika menggunakan BUS maka kecepatan transfer akan berkurang dan menyebabkan keterlambatan data.


Solusi dari permasalahan ini dengan menambahkan sedikit RAM dalam CPU yang disebut Cache. Ukuran cache mungkin hanya sekitar Megabyte atau Kilobyte saja karena keterbatasan ukuran, namun kinerja dari cache memungkinkan ram mengirim tidak hanya satu persatu data, namun juga bisa berupa blok dari data tersebut. 


Ketika data yang diminta berada di dalam cache, maka hal tersebut disebut Cache Hit. Namun, apabila data yang diminta oleh CPU tidak berada dalam cache, maka hal tersebut disebut Cache Miss. Ketika kita selesai melakukan operasi dan ingin menyimpan data pada RAM, maka ketika tempat yang di tuju masih ada dalam cache, kita bisa langsung mengubahnya pada cache yang selanjutnya dicatat sebagai Dirty Bit. Dirty bit (bit yang kotor) digunakan untuk menyinkronisasi antara Cache dan RAM.

Paralelisasi Proses

Dalam CPU terdapat 3 fase yaitu Fetch, Decode, dan execute dalam 1 kali loop. Untuk meningkatkan performa CPU maka dilakukan Instruction Pipeling.  Alih-alih menggunakan CPU untuk 1 kali loop per waktu, Kita dapat memprosesnya secara bersamaan asalkan terdapat perbedaan fase. 




Conditional Jump

Conditional jump adalah hal untuk meningkatkan performa CPU dengan cara menjalankan instruksi selanjutnya apabila inputnya tidak bisa dikenali.


Simak tulisan lain, mengenai dasar-dasar komputer di link berikut :

  1. Blog 1 : https://blog.its.ac.id/5026231022/2023/09/25/the-central-processing-unit-cpu/
  2. Blog 2 : https://blog.its.ac.id/5026231154/2023/09/24/instruksi-dan-program-crashcourse/
  3. Blog 3 : https://blog.its.ac.id/5026231134/2023/09/25/advanced-cpu-design/ 
Referensi : https://www.youtube.com/@crashcourse

Program dan Instruksi | CrashCourse

Pengenalan Instruksi

Instruksi dalam CPU mempunyai banyak jenis perintah, mulai dari LOAD, ADD, Subtract dan lain-lain. Dan di dalam penggunaanya bisa saja melibatkan ALU atau tidak, contoh jika kita memberikan perintah Add maka hal tersebut membutuhkan ALU.


  • Perintah LOAD_A
Perintah LOAD A memberikan intruksi untuk mengambil data pada addres lalu menjalankannya pada register A

  • Perintah LOAD_B
Hampir sama dengan LOAD A yaitu  memberikan intruksi untuk mengambil data pada addres lalu menjalankannya pada register B

  • Perintah STORE_A
Perintah STORE_A memberikan instruksi untuk menyimpan data yang ada pada register A

  • Perintah ADD
Perintah ADD berarti memberikan instruksi unruk menjumlahkan data. Biasanya perintah add akan diikuti registrer mana saja yang akan dijumlahkan. Perintah ini berhubungan dengan operasi matematika maka akan menggunakan ALU untuk menyelesaikan operasi itu.

  • Perintah SUB
Perintah SUB berarti memberikan instruksi untuk membagi data. Sama seperti perintah ADD biasanya akan diikiti register mana saja yang akan dibagi. Perintah ini berhubungan dengan operasi matematika maka akan menggunakan ALU untuk menyelesaikan operasi itu.

  • Perintah JUMP
Perintah JUMP berarti memberikan insturksi untuk mengubah atau menimpa input pada address register. Sehingga input yang pertama tidak akan digunakan kembali dan berubah sesuai dengan input pada JUMP.
  • Perintah JUMP_NEG
Perintah JUMP_NEG berarti memberikan instruksi untuk mengubah atau menimpa input dengan sebuah syarat apabila ALU bernilai negatif maka operasi JUMP tidak dilakukan.

  • Perintah HALT
Perintah HALT berarti memberikan instruksi bagi computer untuk diam atau beristirahat


Ini contoh perintah pada CPU Intel 4004 dengan operasi 4-Bit


Simak tulisan lain, mengenai dasar-dasar komputer di link berikut :

  1. Blog 1 : https://blog.its.ac.id/5026231022/2023/09/25/the-central-processing-unit-cpu/
  2. Blog 2 : https://blog.its.ac.id/5026231154/2023/09/24/instruksi-dan-program-crashcourse/
  3. Blog 3 : https://blog.its.ac.id/5026231134/2023/09/25/advanced-cpu-design/ 
Referensi : https://www.youtube.com/@crashcourse

Central Processing Unit | CrashCourse

 Pengenalan Central Processing Unit (CPU)

CPU memiliki tugas untuk menjalankan program seperti microsoft word, google chrome, dll yang dibuat dari serangkaian operasi individu yang disebut dengan instruksi. Jika operasi tersebut merupakan operasi matematika, maka CPU akan menggunakan ALU untuk melakukan operasi matematika. 

Terdapat banyak bagian dari CPU yang saling terhubung satu sama lain dalam microarchitecture. Jadi untuk menjalankan sebuah aplikasi, kita membutuhkan memori. Memory menyimpan data dalam bentuk bit dan untuk operasi di dalamnya kita juga membutuhkan bit.



Kita menggunakan 4 bit pertama untuk mengindikasikan operasi yang akan dijalankan. dan 4 bit terakhir digunakan untuk menentukan lokasi dari data tersebut. jadi 

Di sana terdapat beberapa modul yang dengan fungsi yang berbeda-beda.

1. Fase Fecth

Dalam fase fecth, kita mengambil data yang tersimpan dalam ram sesuai dengan lokasi data tersebut yang pada perintah bit yang diberikan.

2. Fase Decode

Dalam fase decode, kita mengubah kode bit yang telah kita dapat menjadi 2 bagian yaitu Operation Code dan Address Code.

3. Fase Eksekusi

Dalam fase eksekusi, kita menjalankan perintah sesuai dengan kode operasi dan lokasi yang telah diterjemahkan. Selanjutnya ketika operasi berhasil, kita dapat memasukkan input kode selanjutnya.


Kita dapat mengelompokkan semua fase tadi menjadi sebuah control unit sederhana dalam CPU. Jika dalam perintahnya terdapat operasi matematika maka kita dapat menambahkan modul ALU. 


Kita juga menambahkan modul jam yang digunakan untuk menghitung berapa waktu yang dibutuhkan untuk 1 kali proses.



Simak tulisan lain, mengenai dasar-dasar komputer di link berikut :

  1. Blog 1 : https://blog.its.ac.id/5026231022/2023/09/25/the-central-processing-unit-cpu/
  2. Blog 2 : https://blog.its.ac.id/5026231154/2023/09/24/instruksi-dan-program-crashcourse/
  3. Blog 3 : https://blog.its.ac.id/5026231134/2023/09/25/advanced-cpu-design/
Referensi : https://www.youtube.com/@crashcourse





Senin, 18 September 2023

Registers and RAM | Crash Course Computer Science

 Perkenalan Registers dan RAM

Dengan menggunakan logika boolean, kita mendapatkan sebuah output yaitu benar dan salah. Keadaan benar dan salah tersebut tidak akan mempunyai arti jika hanya terbuang sia-sia. Logika boolean akan berguna jika digunakan untuk menyimpan atau menjalankan operasi secara berturut-turut. Dalam penerapan aslinya, logika tersebut berupa memory dalam sebuah komputer.

Semua rangkaian logika yang sebelumnya kita ketahui adalah rangkaian yang bergerak linear, namun bagaimana jika ada logika yang bergerak berputar arah?

Mekanisme RAM (Random Access Memory)

RAM menggunakan sistem susunan yang bergerak berputar arah, yang tergambarkan dalam komponen sederhana berikut ini.

Rangkaian Balik OR



Rangkaian balik OR apabila diberikan input 1, maka output akan berubah menjadi 1 dan tidak bisa berganti kembali menjadi angka 0 karena input kedua telah diubah menjadi 0.

Rangkaian Balik AND


Rangkaian balik AND apabila diberikan input 1, maka output akan berubah menjadi 1 dan dapat kembali berubah ketika input kita ganti menjadi 0 maka output akan berubah menjadi 0.

Rangkaian AND-OR-LATCH


Rangkaian balik AND-OR-LATCH memiliki 2 input yaitu Set dan Reset. Fungsi set merupakan fungsi untuk memberikan nilai output 1 dan menyimpannya. serta fungsi teset merupakan fungsi untuk mengubah nilai kembali sepert semula yaitu 0.

Proses untuk menetapkan sebuah data disebut Writing sedangkan proses untuk mengeluarkan data disebut Reading. 

Rangkaian Gated Latch


Rangkaian Gated Latch adalah gabungan dari AND-OR-LATCH dengan struktur lain yang membuat ketika kita ingin menulis sebuah data (Write), maka kita harus terlebih dahulu menyatakan adanya input Write Enable lalu kita dapat mengubah output

Struktur RAM




Struktur ini digunakan untuk menyimpan data 1 Bit dan mempunyai mekanisme yang sama seperti RAM, hanya saja RAM mempunyai banyak sekali gabungan rangkaian-rangkaian seperti ini sehingga dapat menyimpan banyak sekali data-data memory. Serta ram juga mempunyai sistem select latch yang memungkinkan RAM untuk memilih tempat latch dengan menggunakan kode binary.



Misalkan untuk mengakses kolom 1 baris ke 1 maka kita harus memasukkan input 00010001, ketika kita ingin megakses kolom 3 baris ke 1 maka kita harus masukkan input 00010011.


Simak tulisan lain, mengenai dasar-dasar komputer di link berikut :

  1. Logika Boolean & Gerbang Logika : Logika Boolean & Gerbang Logika – Tiffany Catherine Prasetya Blog (its.ac.id)
  2. Mewakili Angka dan Huruf dengan Biner : Menampilkan Angka dan Huruf dengan Binary | CrashCourse – Muhammad Ade Dzakwan Blog (its.ac.id)
  3. Register dan RAM : Register dan RAM – Muhammad Artha Maulana Suswanto Blog (its.ac.id)

Referensi : https://www.youtube.com/@crashcourse



















Boolean Logic & Logic Gates | Crash Course Computer science

Perkenalan

Binary adalah representasi dari 2 keadaan yaitu benar dan salah, hidup dan mati, dan lain-lain. Pada sebuah komputer, pada saat kita menyalakan komputer maka kondisi yang direpresentasikan adalah benar dan pada keadaan mematikan komputer maka kondisi yang direpresentasikan adalah salah. Kita juga dapat menulis binary sebagai kode "1" dam "0" untuk menyatakan sebuah kondisi.

Awal Mula Boolean Logic

Pertama kali, kondisi representasi logika digambarkan dengan 3 keadaan dan 5 keadaan. Namun, masalahnya terdapat banyak sekali perantara untuk mencapai kedaan benar dan salah.



Dan representasi 2 keadaan dciptakan untuk mengatasi masalah-masalah tersebut. Kemudian alasan lain karena dalam ilmu matematika telah menerapkan dan mempelajari keadaan benar dan salah. Ilmu matematika telah mempunyai cara-cara operasi dan manipulasi dari 2 keadaan benar atau salah.

George Boole kemudian menciptakan aljabar boole yang memiliki basis yang sama seperti 
2 keadaan. Pendekatan boole dapat dibuktikan kebenarannya melalui sistematis dan formal. Aljabar Boole diperkenalkan dalam buku pertamanya yaitu "The Matematichal Analysis of Logic" pada tahun 1847

Ada 3 operasi dasar dalam aljabar boolean, yaitu: Operasi NOT, Operasi AND dan Operasi OR. 


Operasi dan Logic Gates dalam Boolean

  • Operasi NOT

Operasi NOT adalah sebuah operator dalam aljabar boolean yang mengganti nilai sebenarnya menjadi kebalikannya. Contohnya jika P maka Benar, maka NOTP adalah Salah.


Jika kita menggunakan pemahaman elektronika, maka hal tersebut sama dengan modifikasi dari transistor. Transistor pada umumnya bekerja seperti sakelar, jika kita menyalakan listrik maka hasilnya akan benar, dan jika kita mematikan listrik maka hasilnya akan salah. 


Namun ketika kita memodifikasi transistor tersebut dengan memberikan output sebelum input maka yang terjadi adalah nilai akan berbalik arah.



  • Operasi AND

Operasi AND adalah sebuah operator dalam aljabar boolean yang akan bernilai benar jika kedua input bernilai benar dan selain itu output akan bernilai salah. Sebagai contoh, A suka makanan manis dan pedas, maka output akan bernilai benar ketika A memang menyukai makanan manis dan penas.


Dalam elektronika, maka hal tersebut akan sesuai dengan modifikasi dari 2 transistor yang digabung menjadi satu secara seri sehingga kita mempunyai 2 jalur yang saling mempengaruhi satu sama lain.

  • Operasi OR
Operasi OR adalah operasi dalam aljabar boolean yang akan memberikan nilai salah ketika kedua inpunya salah, selain itu output yang dihasilkan akan bernilai benar. Contohnya adalah B mempunyai makanan atau B mempunyai minuman. Sehingga output yang akan bernilai salah ketika B tidak mempunyai makanan dan minuman.



Dalam elektronika, maka hal tersebut akan sesuai dengan modifikasi dari 2 transistor yang digabung menjadi satu secara paralel sehingga kita mempunyai 2 jalur yang terpisahi satu sama lain.




  • Operasi XOR
Operasi XOR adalah operasi dalam aljabar boolean yang memberikan nilai benar hanya jika salah satu dari input bernilai benar. Sebagai contoh ketika kita ingin memilih bekerja saat pagi atau malam, kita tidak bisa memlih keduanya secara sekaligus dan kita harus memilih salah satu dari keduanya.


Dalam elektronika, XOR merupakan gabungan dari 3 komponen dasar tersebut yang disusun sedemikian rupa sehiigga menghasilkan output yang sesuai. Berikut merupakan susunan dari komponen-komponen tersebut.


Simak tulisan lain, mengenai dasar-dasar komputer di link berikut :

  1. Logika Boolean & Gerbang Logika : Logika Boolean & Gerbang Logika – Tiffany Catherine Prasetya Blog (its.ac.id)
  2. Mewakili Angka dan Huruf dengan Biner : Menampilkan Angka dan Huruf dengan Binary | CrashCourse – Muhammad Ade Dzakwan Blog (its.ac.id)
  3. Register dan RAM : Register dan RAM – Muhammad Artha Maulana Suswanto Blog (its.ac.id)

Referensi : https://www.youtube.com/@crashcourse





















Rabu, 13 September 2023

Menampilkan Angka dan Huruf dengan Binary | CrashCourse

1. Notasi Desimal dan Notasi Biner

Angka dan huruf dapat ditampilkan sebagai nilai biner. Selain untuk menyebutkan keadaan benar atau salah, bilangan biner dapat dikombinasikan untuk mewakili sebuah bilangan dan huruf.

Penjabaran Angka dengan Notasi Desimal

Mulai dari Taman Kanak-Kanak, kita diberikan penjelasan bahwa angka memiliki tingkatan, mulai dari satuan, puluhan, ratusan, dan tingkatan seterusnya. Dan setiap tingkatan tersebut dapat kita lambangkan dengan tabel berikut.
Setiap tingkatan tersebut hanya dapat diisi oleh 10 angka saja yaitu 0 sampai 9, dan ketika sampai dengan angka 9 kita harus menambahkan 1 ke depan. cara ini disebut dengan Decimal Notation karena di setiap kolom hanya dapat diisi oleh 10 angka saja.

Contoh angka 136 dapat kita masukkan ke dalam tabel identitas tersebut.
Baris atas adalah faktor pengali yang membentuk identitas. 1 dikali 100, 3 dikali 10 dan 6 dikali 1. Jadi angka tersebut didapatkan dengan menambahkan semuanya, 100+30+6 sehingga angka tersebut terepresentasi menjadi "satu ratus tiga puluh enam" atau "seratus tiga puluh enam"

Penjabaran Angka dengan Notasi Biner

Dalam Notasi biner, angka akan diwakilkan dalam 2 kombinasi saja antara 0-1 sehingga variasinya adalah 2. Ketika decimal notation akan berubah saat angka 9 menuju ke 10, maka dalam notasi biner akan berubah ketika angka 1 menuju angka 2. Perhatikanlah tabel notasi angka biner berikut ini. 

Setiap tingkatan tersebut akan bertambah 2 kali lipat dari tingkatan sebelumnya. Disana ada 5 kotak yang berarti sekarang kita sedang menggunakan 5 bit dan nilai maksimumnya adalah 32 (11111). 

Sama seperti notasi desimal, disana terdapat faktor pengali yang menentukan identitas mereka. 1 dikali 1, 0 dikali 2, dan 1 dikali 4. Jadi angka tersebut didapatkan dengan menambahkan semuanya, 1+0+4 sehingga angka tersebut terepresentasi menjadi "Lima" atau 5.

Angka Negatif

Untuk angka negatif, cara merepresentasikannya dengan menambahkan 1 bit di depan, nilai 1 untuk angka yang bernilai negatif dan 0 untuk angka yang bernilai positif. Perhatikan tabel berikut.

Jadi dari tabel tersebut, dapat kita lihat nilainya negatif, dengan angka 1 kali 8, 1 kali 4, 0 kali 2 dan 1 kali 1. Jadi didapatkan nilai -(8+4+0+1) sehingga angka yang terepresentasi menjadi "negatif tiga belas" atau -13

Angka Desimal

Untuk angka desimal atau menurut istilah "float" yang berarti mengambang diantara bilangan bulat, harus diubah terlebih dahulu menjadi bentuk seperti berikut.
Sehingga mempunyai 2 element yaitu significant dan eksponen. Bentuk tabel pun berbeda, coba perhatikan tabel berikut.


Tabel yang berwarna oranye merepresentasikan bagian eksponen, sedangkan tabel yang berwarna hijau merepresentasikan bagian significant. sehingga nilai yang didapatkan yaitu "lima koma lima" atau 5,5

2. Representasi Huruf

Untuk huruf, ide yang pertama kali muncul adalah ide dari Baconian yang menggunakan 5 Bit dan merepresentasikan huruf sesuai dengan urutannya.

Output= A
Output= B
Output= C

Namun hal tersebut tidak bisa melambangkan kode untuk huruf besar, huruf kecil dan tanda baca.

Kemudian ada ASCII yang menggunakan 7 Bit untuk menyimpan 128 nilai yang berbeda. Termasuk dengan kapital, simbol matematika, dam lain lain. Setelah itu, ASCII kembali memperluas jangkauan kode dengan menggunakan 8 Bit seiring populernya istilah Byte. Dengan penggunaan 8 Bit, lebih banyak lagi kode, simbol dan huruf yang tersimpan, seperti element grafis dan lain lain.

Seiring berjalannya waktu, komputer juga berkembang di berbagai negara lainnya seperti Rusia dan Asia (Jepang dan Cina) yang notabenenya mempunyai sistem huruf yang berbeda. Sehingga para penduduk jepang mempunyai pengkodeannya sendiri yaitu "MOJIBAKE"



Akhirnya Unicode lahir untuk menghilangkan semua skema internasional yang berbeda. Sehingga unicode menggabungkan semua kode bahasa dalam 16 Bit.




Simak tulisan lain, mengenai dasar-dasar komputer di link berikut :

  1. Logika Boolean & Gerbang Logika : [url posting yang ditulis si A di blog ITS]
  2. Register dan RAM : [url posting yang ditulis si C blog ITS] "
Referensi : https://www.youtube.com/@crashcourse