Sabtu, 26 November 2016

Pengantar Sistem Teknologi Informasi - Bus Sistem

A. Pengertian
Bus merupakan lintasan komunikasi yang menghubungkan dua atau lebih perangkat komputer. Karakteristik penting sebuah bus adalah bahwa bus merupakan media transmisi yang dapat digunakan bersama. Sejumlah perangkat yang terhubung ke bus dan suatu sinyal yang ditransmisikan oleh salah satu perangkat ini dapat diterima oleh salah satu perangkat yang terhubung ke bus. Bila dua buah perangkat melakukan transmisi dalam waktu yang bersamaan, maka sinyal-sinyalnya akan bertumpang tindih dan menjadi rusak. Dengan demikain, hanya sebuah perangkat saja yang akan berhasil melakukan transimi pada suatu saat tertentu.
Sistem komputer terdiri dari sejumlah bus yang berlainan yang menyediakan jalan antara dua buah komponen pada bermacam-macam tingkatan hirarki sisterm komputer. Sebuah bus yang menghubungkan komponen-komponen utama komputer (CPU, memori, input/output) disebut bus sistem. Struktur interkoneksi komputer yang umum didasarkan pada penggunaan satu bus sistem atau lebih.
System bus atau bus sistem, dalam arsitektur komputer merujuk pada bus yang digunakan sistem komputer untuk menghubungkan semua komponen. Komponen komputer ada:
1. CPU
2. Memori
3. Perangkat I/O
Transfer data antar komponen komputer.
1.Data atau program yang tersimpan dalam memori dapat diakses dan dieksekusi CPU melalui perantara bus
2.Melihat hasil eksekusi melalui monitor juga menggunakan sistem bus
3.Kecepatan komponen penyusun komputer harus diimbangi kecepatan dan manajemen bus yang baik

B. Struktur Interkoneksi
Kumpulan lintasan atau saluran berbagai modul  (CPU, Memori, I/O). Struktur interkoneksi bergantung pada :
1. Jenis Data
-Memori
Memori umumnya terdiri atas N word memori dengan panjang yang sama. Masing–masing word diberi alamat numerik yang unik (0, 1, 2, …N-1). Word dapat dibaca maupun ditulis pada memori dengan kontrol Read dan Write. Lokasi bagi operasi dispesifikasikan oleh sebuah alamat.
-Modul I/O
Operasi modul I/O adalah pertukaran data dari dan ke dalam komputer. Berdasakan pandangan internal, modul I/O dipandang sebagai sebuah memori dengan operasi pembacaan dan penulisan. Seperti telah dijelaskan pada bab 6 bahwa modul I/O dapat mengontrol lebih dari sebuah perangkat peripheral. Modul I/O juga dapat mengirimkan sinyal interrup.
-CPU
CPU berfungsi sebagai pusat pengolahan dan eksekusi data berdasarkan routine–routine program yang diberikan padanya. CPU mengendalikan seluruh sistem komputer sehingga sebagai konsekuensinya memiliki koneksi ke seluruh modul yang menjadi bagian sistem komputer.
2. Karakteristik Pertukaran Data
Dari jenis pertukaran dat yang diperlukan modul-modul komputer, maka struktur interkoneksi harus mendukung perpindahan data.
-Memori ke CPU : CPU melakukan pembacaan data maupun instruksi dari memori
- CPU ke Memori : CPU melakukan penyimpanan atau penulisan data ke memori
- I/O ke CPU        : CPU membaca data dari peripheral melalui modul I/O
- CPU ke I/O        : CPU mengirimkan data ke perangkat peripheral melalui modul I/O
- I/O ke Memori atau dari Memori : digunakan pada sistem DNA

C. Interkoneksi Bus-Struktur Bus
1. Saluran Data
Saluran data memberikan lintasan bagi perpindahan data antara dua modul sistem. Saluran ini secara kolektif disebut bus data.
2. Saluran Alamat
Saluran alamat digunakan untuk menandakan sumber atau tujuan data pada bus data. Misalnya, bila CPU akan membaca sebuah word data dari memori, maka CPU akan menaruh alamat word yang dimaksud pada saluran alamat. Lebar bus alamat akan menentukan kapasitas memori maksimum sistem. Selain itu, umumnya saluran alamat juga dipakai untuk mengalamati port-port input/outoput.
3. Saluran Kontrol
Saluran kontrol digunakan untuk mengntrol akses ke saluran alamat dan penggunaan data dan saluran alamat. Karena data dan saluran alamat dipakai bersama oleh seluruh komponen, maka harus ada alat untuk mengontrol penggunaannya. Sinyal-sinyal kontrol melakukan transmisi baik perintah maupun informasi pewaktuan diantara modul-modul sistem. Sinyal-sinyal pewaktuan menunjukkan validitas data dan informasi alamat. Sinyal-sinyal perintah mespesifikasikan operasi-operasi yang akan dibentuk. Umumnya saluran kontrol meliputi : memory write, memory read, I/O write, I/O read, transfer ACK, bus request, bus grant, interrupt request, interrupt ACK, clock, reset.
Prinsip Operasi Bus
1. Operasi mengirim data ke modul
- Meminta penggunaan bus
- Apabila telah disetujui, modul akan memindahkan data yang diinginkan ke modul yang dituju.
2. Operasi meminta data dari modul lainnya
- Meminta penggunaan bus
- Mengirim request ke modul yang dituju melalui saluran kontrol dan alamat yang sesuai
- Menunggu modul yang dituju mengirimkan data yang diinginkan
  Hierarki Multiple Bus
Bila terlalu banyak modul atau perangkat yang dihubungkan pada bus maka akna terjadi  penurunan kinerja. Adapun faktor-faktor nya yaitu:
- Semakin besar delay propagasi untuk mengkoordinasikan penggunaan bus, antrian     penggunaan bus semakin panjang.
- Dimungkinkan habisnya kapasitas transfer bus sehingga memperlambat data.

D. Jenis Bus
1. Dedicated Bus
Dedicated bus yaitu bus yang khusus menyalurkan data tertentu, dimana setiap bus atau saluran secara permanen diberi fungsi atau subset fisik komponen komputer . Dedicated bus memiliki kelemahan yaitu, memerlukan saluran banyak. Namun kelebihannya memiliki kecepatan yang tinggi.
2. Multiplexed Bus
Multiplexed bus merupakan bus yang dilalui informasi yang berbeda baik data,alamat,dan sinyal kontrol dengan metode multipleks data. Metode ini merupakan metode penggunaan bus yang sama untuk berbagai keperluan , sehingga menghemat ruang atau biaya namun kecepatan transfer data menurun dan diperlukan mekanisme yang kompleks untuk mengurangi data yang telah dimultipleks.

E. Metode Arbitrasi
Metode ini merupakan metode pengaturan dari penggunaan bus,dan dapat dibedakan seperti berikut:
1. Tersentralisasi
Pada metode ini, sebuah perangkat hardware , yang dikenal sebagai pengontrol bus atau arbitrer, bertanggung jawab atas alokasi waktu pada bus.
2. Terdistribsui
Pada metode ini, tidak terdapat pengontrol sentral. Melainkan setiap modul terdiri dari access control logic dan modul-modul  bekerja sama untuk memakai bus bersama-sama.

F. Timing
Timing berkaitan dengan cara terjadinya event yang diatur pada bus sistem , dan dapat dibedakan atas:
1. Synchronous
Terjadinya event pada bus ditentukan oleh clock (pewaktu). Dalam synchronous bus, semua perangkat mendapatkan informasi timing dari jalur clock bersama. Pulsa yang berjarak setara pada jalur ini mendefinisikan waktu yang setara. Dalam bentuk yang paling sederhana suatu synchronous bus, tiap interval ini merupakan suatu bus cycle dimana satu transfer data. Skema semacam itu diilustrasikan pada gambar berikut, jalur alamat dan data ada gambar.
2. Asynchronous
Terjadinya sebuah event pada bus mengikuti dan tergantung pada event sebelumnya. Pada asynchronous bus untuk mengontrol transfer data pada bus berdasar pada penggunaan handshake antara master dan slave. Konsep handshake adalah generealisasi dari ide sinyal Slave-ready. Clock umum digantikan dengan dua jalur control timing, Master-ready dan Slave-ready. Yang pertama dinyatakan oleh master untuk mengindikasikan telah siap melakukan transaksi, dan yang kedua adalah respon dari Slave.

G. Lebar Bus
1. Address
Lebar bus alamat mempengaruhi kapasitas. Semakin lebar bus alamat, semakin besar range lokasi yang dapat.
2. Data
Lebar bus data mempengaruhi kinerja sistem. Semakin lebar bus data semakin besar bit yang dapat ditransfer pada suatu waktu.

H. Jenis Transfer Data
Transfer data yang menggunakan bus adalah:
1. Operasi Read
Slave menaruh data pada bus data begitu slave mengetahui alamat dan mengambil datanya.
2. Operasi Write
Master menaruh data pada bus data begitu alamat stabil dan slave mempunyai kesempatan untuk mengetahui alamat.
3. Operasi Read Modify Write
Operasi Read yang diikuit operasi Write ke alamat yang sama. Tujuan untuk melindungi sumber daya memori yang dapat dipakai bersama di dalam multiprogramming.
4. Operasi Read After Write
Operasi yang tidak dapat dibagi yang berisi operasi Write diikuti operasi Read dari alamat yang sama.
5. Operasi Block
Sebuah siklus lamat diikuti oleh n siklus data.

Jumat, 25 November 2016

Introduction: Bahasa Pemrograman

A. Bahasa Pemrograman
- Algoritma
Algoritma adalah urutan atau langkah-langkah logis dalam penyelesaian suatu masalah yang disusun secara sistematis. Dalam menganalisa suatu masalah diperlukan tindakan untuk mengidentifikasi informasi masukan yang menjadi keluaran pemecahan masalah. Dalam hal ini diperlukan prosedur untuk mengolah input menjadi output yang dikehendaki, yang disebut dengan algoritma.
- Interpreter,Pustaka
Interpreter adalah perangkat lunak yang mampu mengeksekusi kode program dan menterjemahkan ke dalam bahasa mesin , sehingga mesin melakukan instruksi yang diminta oleh programer. Proses eksekusi perintah-perintah tersebut dilakukan baris demi baris sambil mengikuti logika yang terdapat dalam program tersebut. Pustaka, pustaka merupakan suatu library standar yang terdapat pada bahasa pemrograman dan didalamnya terdapat suatu perintah yang berfungsi untuk mendukung dalam pembuatan suatu program.
-Sintaks
Sintaks merupakan suatu kumpulan aturan yang mendefinisikan suatu bentuk bahasa, sintaks juga mendefinisikan bagaimana suatu kalimat dibentuk sebagai barisan/urutan dari pemilihan suatu kata dasar.
-IDE + OS
IDE merupakan program komputer yang diperlukan dalam pembangunan software. IDE ini berfungsi untuk menulis kode untuk membuat program, menjalankan kode-kode dan mengecek apakah ada kesalah dalam program yang sedang dibuat. Terdapat banyak IDE yang dapat kita gunakan dan sangat berpengaruh terhadap dukungan dari OS yang kita gunakan.

B. Model Pemrograman
Dalam pemrograman kita mengetahui dua model pemrograman, apa saja dua model itu? Mari kita simak bersama-sama:
Model pemrograman yang pertama yaitu pemrograman struktural yang terdiri dari dua yaitu:
1. Function/fungsi

Fungsi adalah suatu bagian dari program yang dirancang untuk melaksanakan tugas tertentu dan letaknya  terpisah dari program program utamanya. Pada umumnya fungsi memerlukan nilai masukan atau parameter untuk me-return nilainya. 
2. Prosedur
Prosedur merupakan suatu program terpisah yang berada dalam blok sendiri yang memiliki fungsi sebagai subprogram atau program bagian. Prosedur dapat digunakan untuk mempersingkat program yang melakukan proses yang sama berulang kali.

Model pemrograman yang kedua yaitu model pemrograman berorientasi objek, pemrograman berorientasi object merupakan bahasa pemrograman yang mampu memanfaatkan objek-objek yang tersedia atau membuat suatu objek tertentu dengan menggunakan bahasa pemrograman, model pemrgraman ini juga dibagi menjadi dua yaitu:
1. Object
Yaitu elemen yang memiliki fungsi,metode,karakteristik, tertentu yang dapat dibedakan dalam dunia nyata. Objek ini adalah dasar dari struktur suatu bahasa pemrograman berorientasi objek, dimana objek ini membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program.
2. Class
Kumpulan Objek-objek yang memiliki kesamaan karakteristik. Class digunakan untuk mengidentifikasi tentang karakteristik dari suatu data ataupun fungsi.
Contoh: Java (JZEE, JZGE, JZME), python.

C. Peran
Adapun peran-peran dari bahasa pemrograman adalah sebagai berikut:
1. Jaringan komputer : socket programming
Socket programming adalah pemrograman yang bertujuan agar satu program dapat berinteraksi dengan program lainnya dalam satu jaringan. Dalam suatu program atau aplikasi yang kita gunakan untuk berkomunikasi melalui jaringan komputer terpadat bahasa pemrograman yang berfungsi untuk menerjemahkan data yang kita kirim menjadi data analog agar dimengerti oleh bahasa mesin, yang kemudian dikelompokan berdasarkan jenis paket data yang dikirimkan.
2. Database 
Dalam database peran pemrograman yaitu digunakan dalam pengelolaan suatu database, mulai dari penyimpanan, penambahan, penghapusan, pengeditan data . Bahasa pemrograman dalam database juga digunakan sebagai antar muka dengan pengguna dan pembuat dari database tersebut, serta dapat digunakan untuk menghubungkan satu database dengan database lainnya. Contohnya DBC (Java ODBC, Python).
3. Internet Of Things
Internet Of Things artinya semua barang fisik yang dapat di-monitor dan dikendalikan dari jarak jauh menggunakan  internet. Dengan bahasa pemrograman kita bisa membuat suatu alat cerdas yang bisa memonitoring semua hal, dengan memanfaatkan teknologi jaringan komputer terutama jaringan wireless.
4. Cloud Computting
Cloud Computing merupakan gabungan pemanfaatan teknologi komputer dan pengembangan berbasis Internet. Cloud Computing ini merupakan suatu metoda komputasi di mana kapabilitas terkait teknologi informasi disajikan sebagai suatu layanan (as a service),  sehingga pengguna dapat mengaksesnya lewat Internet  tanpa mengetahui apa yang ada didalamnya, ahli dengannya, atau memiliki kendali terhadap infrastruktur teknologi yang membantunya.
5. ITS ( Inteligent Transportation System)
Intelligent transfortation system merupakan suatu metode transportasi cerdas yang memberikan penggunanya mudah dalam menjalankannya sebagai contoh  adalah suatu mobil cerdas dimana dalam hal parkir di tempat yang sangat sulit mobil tersebut bisa melakukannya sendiri tanpa perlu diarahkan oleh pengemudi, mobil ini memanfaatkan teknologi sensor cerdas yang telah diprogramkan oleh programernya untuk memudahankan suatu hal yang dianggap sulit.
6. Parallel Computing
Salah satu teknik melakuakan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Paralel computing juga dapat diartikan sebagai suatu metode dengan memanfaatkan komputer dengan spesifikasi yang minimal, namun dalam jumlah banyak yang saling terkoneksi untuk membangun suatu server. Komputer parallel membutuhkan algoritma, bahasa pemrograman, dan compiler. Metode ini banyak digunakan oleh perusahaan-perusahaan besar seperti google.
7. Bio Informatika, E-Health.
Bio informatika dan e-health merupakan suatu pengecekan kesehatan yang bisa dilakukan melalui komputer. Hal ini tentunya bisa dilakukan, dengan bantuan bahasa pemrograman dan ilmu kesehatan. Dalam pembuatan aplikasi ini kita menggunakan bahasa pemrograman tertentu untuk mengecek suatu gejala ataupun penyakit yang diderita oleh seseorang dan memberi solusi untuk penyakit tersebut dan tentunya harus dengan bantuan dan sesuai dengan ilmu kesehatan.

D. Tips Pemrograman
Berikut merupakan tips-tips yang harus diperhatikan agar program yang kita buat sesuai dengan keinginan dan kita cepat paham serta menguasai pemrograman komputer:
1. Pahami Algoritma
Untuk membuat suatu program hal yang paling pertama kita perhatikan yaitu algoritmanya. Kita harus paham bagaimana algoritma itu bekerja agar program kita dapat berjalan sesuai dengan urutan-urutan yang logis.
2. Kuasai sintaks
Untuk menerjemahkan algoritma ke dalam bahasa pemrograman kita harus menguasai sintaks dari bahasa pemrograman yang kita gunakan.
3. Pahami model pemrograman (structural/object oriented)
Kita juga harus memahami model pemrograma apa yang akan kita gunakan, sehingga tidak terjadi kebingungan dalam proses pengerjaannya.
4. Berlatih
Selain memahami algoritma, menguasai sintaks, dan memahami model pemrograman kita juga harus sering berlatih, karena dengan berlatih lah kita akan terbiasa dalam membuat program.
5. Studi kasus sehari-hari
Studi kasus sehari-hari ini berarti kita dapat menggunakan hal-hal yang terjadi dalam kehidupan sehari-hari untuk membuat program dengan menerjemahkannya ke dalam bahasa pemrograman.
6. Aktif dalam pengembangan (Open source,project,github,dll)
Untuk memperluas wawasan, kita dapat turut serta dalam pengembangan program yang sudah dibuat agar tidak mentok sampai disitu saja. 

E. Security
Security dalam pemrograman  tidak hanya berarti keamanan. Securitydisini juga bisa berarti, segala kemungkian yang bisa membuat program yang  kita buat tidak bisa berjalan sesuai dengan logika atau keinginan dari programernya. Berikut merupakan security dalam pemrograman:
1. Kesalahan Algoritma
Sering kali dalam pembuatan program  kita salah dalam menerjemahkan algoritmanya ke dalam bahasa pemrograman  Jika hal tersebut tidak diatasi bisa dipastikan bahwa program yang dibuat tidak akan berjalan sesuai dengan urutan logika. 
2. Buffer Overflow
Buffer overflow adalah suatu  keadaan dimana pogram  yang  kita buat memerlukan sumber daya memori yang begitu besar, sehingga bisa memenuhi memori komputer yang kita gunakan. Buffer overflow ini bisa terjadi jika kita membuat suatu  program yang bisa memecah dirinya sendiri, sehingga bisa memenuhi memori komputer yang akhirnya bisa membuat suatu komputer manjadi hang. 

F. Tingkat Pemrograman
Tingkat pemrograman dalam hal ini yaitu tingkat bahasanya, tingkat bahasa pemrograman dapat dibagi menjadi dua yaitu tingkat rendah dan tingkat tinggi.
1. Tingkat Tinggi
Bahasa pemrograman tingkat tinggi yaitu bahasa pemrograman yang mudah dipahami dan dipelajari, karena bahasa pemrograman ini sudah mendekati bahasa manusia, sehingga mudah dimengerti dan dipahami.
Contohnya yaitu bahasa pemrograman pascal,java dan C.
2. Tingkat Rendah
Bahasa pemrograman tingkat rendah yaitu bahasa mesin yang mana bahasa pemrograman ini cukup sulit untuk dimengerti dan dipahami, selain itu dalam membuat suatu perintah bahasa mesin ini memerlukan sintaks yang panjang, namun hingga saat ini bahasa pemrograman ini masih banyak digunakan dalam beberapa kasus.
Cotoh bahasa mesin: assembly.

Baik sekian pengenalan bahasa pemrograman dan peranannya, semoga bermanfaat untuk kita semua!:)