Rabu, 14 September 2016

Mekanisme Input ke Output

Pengertian Input dan Output

a) Pengertian Input
Input adalah semua data dan perintah yang dimasukkan ke dalam memori komputer untuk selanjutnya diproses lebih lanjut oleh prosesor. Sebuah perangkat input adalah komponen piranti keras yang memungkinkan user atau pengguna memasukkan data ke dalam komputer, atau bisa juga disebut sebagai unit luar yang digunakan untuk memasukkan data dari luar ke dalam mikroprosesor.

     1. Input

Alat yang digunakan untuk menerima masuk data dan program yang akan diproses di dalam computer.
Berfungsi sebagai media untuk memasukkan data dari luar ke dalam suatu memori dan  processor untuk menghasilkan informasi yang diperlukan.
Input devices atau unit masukan yang biasa digunakan oleh personal computer (PC) adalah keyboard dan mouse, keyboard dan mouse adalah unit yang menghubungkan user (pengguna) dengan komputer.
Kemudian scanner, untuk mengambil gambar sebagai gambar digital yang nantinya dapat dimanipulasi.
Selain itu terdapat joystick, yang biasa digunakan untuk bermain games atau permainan dengan komputer
Data yang dimasukkan ke dalam sistem komputer berbentuk signal input dan maintenance input.Signal input berbentuk data yang dimasukkan ke dalam sistem komputer, manakala maintenance input berbentuk program yang digunakan untuk mengolah data yang dimasukkan. Jadi Input device selain digunakan untuk memasukkan data dapat juga digunakan untuk  memasukkan program. Peralatan input terdiri daripada 2 sifat iaitu:-
Peratalan input langsung, iaitu input yang dimasukkan secara langsung oleh alat pemroses. Contohnya : keyboard, mouse, dan scanner . Peralatan input tidak langsung, input yang melalu media tertentu sebelum suatu input diproses oleh  alat pemroses. Contohnya : punched card, disket, harddisk.

b) Pengertian Output
Output adalah data yang telah diproses menjadi bentuk yang dapat digunakan. Artinya komputer memproses data-data yang diinputkan menjadi sebuah informasi. Yang disebut sebagai perangkat output adalah semua komponen piranti keras yang menyampaikan informasi kepada orang-orang yang menggunakannya
       
     

          1. Output

Output  ialah alat yang berfungsi untuk mengeluarkan hasil pemrosesan ataupun  pengolahan data yang berasal dari CPU kedalam suatu media yang dapat dibaca oleh manusia ataupun dapat digunakan untuk penyimpanan data hasil daripada proses. Jenis dan media dari output device yang dimiliki oleh komputer cukup banyak. Output yang dihasilkan adalah seperti-

         - Tulisan
         - Image
         - Suara
           Output terdiri daripada Monitor,Printer dan speaker.

c) Mekanisme output ke input




Alur pemrosesan data
Input >>> i/o >>> proses >>> memori >>> storage >>> memori >>> proses >>> i/o >>> output
Keterangan:
Input : data yang akan di proses atau dibuat.
I/O : Input / Output.
Proses : Pengolahan data yang dimasukkan.
Memori : Tempat menyimpan data sementara pada saat data diproses.
Storage : Tempat menyimpan data secara permanen seteah diproses.
Output : Hasil dari proses yang berupa tampilan, suara, cetakan.

Sistem komputer memiliki siklus pengolahan yang pasti. Siklus pengolahan itu sendiri mengacu kepada makna dari arti komputer itu sendiri. Ada tiga pokok dalam siklus pengolahan data dengan menggunakan komputer tersebut, yaitu input, proses, dan output. Sedangkan untuk proses sendiri, pemroses dibantu oleh beberapa bagian lain, yaitu program serta penyimpan (storage). Input Merupakan aktifitas pemberian data kepada komputer, dimana data tersebut merupakan masukan bagi komputer. Agar data dapat diterima oleh komputer dengan baik, komputer memiliki peralatan yang berfungsi untuk hal ini, yang disebut dengan input device .  Pada komputer, input device ini juga bermacam-macam, tergantung bagaimana proses input tersebut dilaksanakan. Bermacam-macam input device yang digunakan oleh komputer, contohnya adalah keyboard untuk mengetikkan informasi, pembaca kode batang pada transaksi di supermarket, kamera untuk menangkap gambar, dan lain sebagainya. Masukan yang didapatkan oleh input device tersebut informasinya dikirimkan ke pemroses (otaknya komputer) untuk diproses lebih lanjut, diabaikan atau informasi tersebut disimpan dalam media penyimpanan. Proses Setiap masukan yang disampaikan kepada komputer akan masuk ke pemroses, pemroses ini dikenal juga dengan nama processor . Pemroses ini bisa disebut dengan otaknya komputer. Pemroses ini akan menentukan akan diapakan informasi yang masuk tersebut. Jika diolah lebih lanjut, maka data tersebut diolah sesuai dengan ketentuan yang telah disusun sedemikian kedalam otak komputer. Ketentuan yang telah disusun ini adalah instruction set. Instruction set ini merupakan format baku perintah yang dapat dilaksanakan oleh pemroses. Pemroses memiliki hubungan dengan media input, program, storage serta media output. Masing-masing akan dikontak oleh pemroses sesuai dengan tugasnya masing-masing. Pemroses ini hanya berfungsi untuk menjalankan perintah yang diterimanya dari program. Tindak lanjut dari masing-masing perintah, katakanlah menampilkan data terebut ke monitor atau ke printer, maka pemroses akan mengirimkan lagi hasil olahannya ke media yang dituju. Dengan mengirimkan data ke media yang dituju, maka berarti pemroses menyerahkan tugasnya kepada media tersebut sambil mengirimkan data-data yang diperlukan oleh media yang dituju serta instruksi yang diminta untuk dilaksanakan oleh media yang dituju itu tadi. Bus Bus merupakan jalur penghubung antar alat pada komputer yang digunakan sebagai media dalam proses melewatkan data pada suatu proses. Bus ini bisa dianggap sebagai sebuah pipa, dimana pipa atau saluran tersebut digunakan untuk mengirimkan dan menerima informasi antar alat yang dihubungkannya. Pada sistem komputer, bus ini termasuk perangkat internal, kecepatan pengiriman informasi melalui bus ini dilakukan dengan kecepatan tinggi. Program Program merupakan kumpulan instruction set yang akan dijalankan oleh pemroses, yaitu berupa software. Bagaimana sebuah sistem komputer berpikir diatur oleh program ini. Program inilah yang mengendalikan semua aktifitas yang ada pada pemroses. Program berisi konstruksi logika yang dibuat oleh manusia, dan sudah diterjemahkan ke dalam bahasa mesin sesuai dengan format yang ada pada instruction set. Storage Dalam menjalankan proses, selain proses diatur oleh program, pemroses juga memiliki akses ke media penyimpan yang disebut dengan storage. Storage ini berfungsi untuk menyimpan berbagai informasi yang dibutuhkan untuk menjalankan fungsi pemroses, baik untuk penyimpan sementara maupun untuk jangka panjang. Pemroses melakukan tugasnya sesuai dengan kendali yang ada pada program. Proses untuk mengambil data atau menyimpan data pada storage ini dilaksanakan oleh pemroses sesuai dengan perintah yang diterima pemroses dari program yang sedang ia jalankan. Output Merupakan aktifitas menerima data dari hasil pengolahan pada bagian pemroses. Jika terdapat data pada aktifitas output ini, berarti pemroses menyerakan tugas selanjutnya kepada bagian ini. Tentu saja pada bagian ini diperlukan juga peralatan yang bekerja, dimana peralatan terebut disebut dengan output device.   Pada komputer contoh output device ini adalah printer (pencetak). Ketika data output dari pemroses diterimanya maka printer akan melaksanakan tugas yang diterima dari pemroses tadi.




KESIMPULAN

         Komputer(CPU) memiliki sistem yaitu Sistem I/O (Input/Output). Dalam sistem komputer, I/O     bertanggung jawab atas pengontrolan sebuah perangkat luar atau eksternal dan bertanggung jawab pula dalam  pertukaran data antara perangkat luar tersebut dengan register-register CPU. Dalam untuk melakukan hal ini, di perlukan antarmuka internal dengan komputer(CPU Interface) dan antarmuka dengan perangkat  eksternalnya untuk menjalankan fungsi-fungsi pengontrolannya. Selain sistem I/O ada juga modul modul  I/O sistem komputer ini yang bertanggung jawab atas pengontrolan sebuah perangkat luar atau lebih dan  bertanggung jawab pula dalam pertukaran data antara perangkat luar tersebut dengan memori utama ataupun  dengan register – register CPU. Dan ada juga I/O terprogram yang berperan sebagai pertukaran data antar CPU  seperti pemindahan data, pengiriman perintah baca maupun tulis, dan monitoring perangkat tapi kelemahan   teknik ini adalah CPU akan menunggu sampai operasi I/O selesai dilakukan modul I/O sehingga akan membuang waktu, apalagi CPU lebih cepat proses operasinya. Inti semuanya dalam I/O itu mempunyai fungsi     dan perintah tersendiri yang berperan sangat penting untuk sistem komputer


REFERENSI:
http://ahmad-kataku.blogspot.co.id/2012/09/sistem-input-output-pengertian-alat-dan.html
http://prihantini.blogs.uny.ac.id/2015/10/07/proses-kerja-komponen-sistem-komputer/
http://comaddict007.blogspot.co.id/2012/12/penjelasan-input-proses-output-device.html

http://aryoadiprabowo.blogspot.co.id/2014/10/sistem-io-inputoutput.html

Bahasa Pemograman

Bahasa pemrograman
Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer atau bahasa pemrograman komputer, adalah instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:
Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya kode_mesin|MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb.
Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.
Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb. Komputer dapat mengerti bahasa manusia itu diperlukan program compiler atau interpreter.
Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.
Pengertian Bahasa Pemrograman
Bahasa Pemrograman (programming language) adalah sebuah instruksi standar untuk memerintah komputer agar mempunyai fungsi tertentu. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Fungsi
Fungsi bahasa pemrograman yaitu memerintah komputer untuk mengolah data sesuai dengan alur berpikir yang kita inginkan. Keluaran dari bahasa pemrograman tersebut berupa program/aplikasi. Contohnya adalah program yang digunakan oleh kasir di mal-mal atau swalayan, penggunaan lampu lalu lintas di jalan raya, dll.

Bahasa Pemrograman yang kita kenal ada banyak sekali di belahan dunia, tentang ilmu komputer dan teknologi dewasa ini. Perkembangannya mengikuti tingginya inovasi yang dilakukan dalam dunia teknologi. Contoh bahasa pemrograman yang kita kenal antara lain adalah untuk membuat aplikasi game, antivirus, web, dan teknologi lainnya.
Bahasa pemrograman komputer yang kita kenal antara lain adalah Java, Visual Basic, C++, C, Cobol, PHP, .Net, dan ratusan bahasa lainnya. Namun tentu saja kebutuhan bahasa ini harus disesuaikan dengan fungsi dan perangkat yang menggunakannya.
Secara umum bahasa pemrograman terbagi menjadi 4 kelompok, yaitu :
Object Oriented Language (Visual dBase, Visual FoxPro, Delphi, Visual C)
High Level Language (seperti Pascal dan Basic)
Middle Level Language (seperti bahasa C), dan
Low Level Language (seperti bahasa Assembly)
Tingkatan
Bahasa Tingkat Tinggi[sunting Bahasa pemrograman masuk tingkat ini karena bahasa tersebut mendekati bahasa manusia. Contohnya bahasa Basic, Visual Basic, Pascal, Java, PHP.
Bahasa Tingkat Menengah
Disebut tingkat menengah karena bisa masuk ke dalam bahasa tingkat tinggi maupun rendah. Contohnya bahasa C.
Bahasa Tingkat Rendah
Bahasa pemrograman masuk tingkat ini karena bahasanya masih jauh dari bahasa manusia. Contohnya bahasa Assembly.

Generasi
Sedangkan menurut generasinya, bahasa pemrograman digolongkan menjadi 4 generasi:
Generasi ke-1: machine language
Generasi ke-2: assembly language: Assembler
Generasi ke-3: high level programming language, contoh: C dan Pascal
Generasi ke-4: 4 GL (fourth-generation language), contoh: SQL
Generasi ke-5: Programming Language Based Object Oriented & Web Development
Proses Pembuatan Program
Proses pembuatan program yaitu kita menulis kode sumber pada teks editor misalnya notepad kemudian mengubahnya menjadi bahasa mesin yang bisa dieksekusi oleh CPU. Proses pengubahan kode sumber (source code) menjadi bahasa mesin (machine language) ini terdiri dari dua macam yaitu kompilasi dan interpretasi.
Kompilasi
Dalam proses kompilasi semua kode sumber dibaca terlebih dahulu dan jika tidak ada kesalahan dalam menulis program maka akan dibentuk kode mesinnya sehingga program bisa dijalankan. Program yang melakukan tugas ini disebut Compiler. Program hasil kompilasi akan berbentuk executable. Program bisa langsung dijalankan tanpa harus memiliki Compiler di komputer yang menjalankan program tersebut. Bahasa yang menggunakan teknik kompilasi misalnya bahasa C, C++, Pascal, Assembly dan masih banyak lagi.
Interpretasi (Interpretation)
 Bahasa yang menggunakan teknik interpretasi akan membaca kode sumber perbaris dan dieksekusi perbaris. Jika ditemukan kesalahan dalam penulisan program maka di baris kesalahan itulah program akan dihentikan. Program yang melakukan tugas ini disebut Interpreter. Pada teknik interpretasi tidak ada akan dihasilkan program standalone, artinya untuk menjalankan program kita harus mempunyai kode sumbernya sekaligus interpreter program tersebut. Bahasa yang menggunakan teknik interpretasi misalnya bahasa Perl, Python, Ruby dan masih banyak lagi.
Kompilasi Sekaligus Interpretasi
Ada juga bahasa pemrograman yang menghasilkan programnya dengan teknik kompilasi sekaligus interpretasi. Misalnya bahasa java. Dalam pembuatan program java kode sumber diubah menjadi bytecode. Meskipun nampak seperti bahasa mesin namun ini bukanlah bahasa mesin dan tidak executable. Untuk menjalankan bytecode tersebut kita membutuhkan Java Runtime Environment (JRE) yang bertugas sebagai interpreter sehingga menghasilkan program dari bytecode tersebut.
Meskipun setiap bahasa pemrograman dibuat untuk membuat program namun setiap bahasa dibuat dengan tujuan dan fungsi yang berbeda-beda. Misalnya untuk membuat driver hardware kita tidak bisa menggunakan bahasa Visual Basic. Untuk membuat program berbasis sistem seperti driver kita bisa gunakan bahasa C atau Assembly. Contohnya sistem operasi linux yang open source. Jika anda melihat kode sumbernya anda akan menemukan bahwa linux dibuat menggunakan bahasa C. Sedangkan untuk pemrograman desktop kita bisa menggunakan Visual Basic. Bahasa tersebut dirancang oleh Microsoft untuk pemrograman desktop dengan tampilan GUI yang memukau.
Bahasa pemrograman yang umum digunaka
HTML / CSS 
banyak yang tidak menggaggap ini bagian dari bahasa pemprograman, tapi jika di lihat dari mana program web berasal maka bisa di pastikan html/CSS adalah dasar dari itu semua,jadi jika anda ingin belajar membuat web statis terebih dahulu anda pasti akan belajar HTML/CSS dasar.
JavaScript 
JavaScript adalah cara yang sangat populer untuk menambahkan fitur interaktif untuk halaman web dan aplikasi . Ini adalah salah satu bahasa yang paling mudah untuk dipelajari dan dapat digunakan untuk apa pun seperti memvalidasi data formulir untuk mengembangkan permainan , menjadikannya pilihan yang sangat populer untuk pemula .
PHP 
bahasa program yang digunakan terutama untuk mengembangkan halaman web dinamis . Ini berarti bahwa daripada menciptakan sebuah file terpisah penuh kode untuk setiap halaman situs , Anda dapat menulis seperangkat aturan untuk mengakses dan menampilkan informasi dari database yang kemudian dapat membuat halaman dan memanggil mereka ketika mereka dibutuhkan .
C + + 
. Dikembangkan untuk menambahkan fitur berorientasi objek dengan bahasa C , dengan penambahan kelas dan fitur lainnya . C + + yang sekarang banyak digunakan dengan berbagai besar aplikasi . Belajar C + + juga memiliki keuntungan yaitu lebih mudah untuk mempelajari bahasa C lainnya yaitu C # dan C. Semua bahasa C umumnya dipandang sebagai bahasa pemprograman tingkat menengah .
C # 
Diucapkan C Sharp , bahasa ini diciptakan oleh Microsoft dalam kerangka NET . . Jika Anda ingin menulis aplikasi jendela , atau terutama jika Anda ingin menulis kode untuk perangkat lunak desktop , ini sangat penting. Ini adalah tujuan OOP umum yang berbagi banyak kesamaan dengan bahasa C tua.
ini adalah versi C yang digunakan oleh sistem operasi Apple serta sejumlah kecil aplikasi lain . Jika Anda ingin mengkhususkan diri dalam menulis kode untuk produk Apple maka ini adalah program yang harus anda kuasai.
Python 
Sangat populer dalam komunitas ilmiah dan akademik , tetapi juga telah digunakan untuk membuat situs web populer seperti Pinterest . Hal ini relatif mudah untuk belajar dibandingkan dengan sesuatu seperti C atau turunannya , namun masih sangat fleksibel dalam hal apa yang dapat Anda lakukan dengan itu .
Java 
Digunakan oleh Google sebagai bagian integral dari sistem operasi Android , dan oleh pengembang independen untuk membuat aplikasi android ( serta kegunaan lain ) . Java diciptakan dengan " tulis sekali , jalankan di mana saja " ( WORA ) pendekatan untuk memudahkan kode yang ditulis pada satu mesin untuk berjalan di lain mesin.
Ruby 
Ini adalah OOP murni populer dari Jepang. Bahasa pemrograman open source dinamis, mudah dimengerti dan produktif. Sintaks Ruby elegan, natural, mudah dibaca dan ditulis.
Visual Basic 
Berasal dari ' BASIC ' , yang sangat populer di hari-hari awal komputasi personal , Visual Basic ( VB ) memungkinkan program sederhana yang akan dibuat dengan cepat dan mudah, sementara juga memungkinkan untuk coding yang lebih kompleks.
Daftar Bahasa Pemrograman
Berikut ini adalah daftar bahasa pemrograman komputer.
Aro
Ada
ALGOL
Applescript
Assembly
BASIC:
ASP
BASIC
COMAL
Visual Basic
Visual Basic for Applications
VBScript
Batch (MS-DOS)
COBOL
UNIX shell script:
Bourne shell (sh) script
Bourne-Again shell (bash) script
Korn shell (ksh) script
C shell (csh) script
C:
C++
C#
Visual C++
ColdFusion
dBase dkk.:
Clipper
Foxbase
Visual FoxPro
Eiffel
Fortran
Go
Haskell
Java
JavaScript
JSP
Lisp
Logo
Pascal
Delphi
Perl
Prolog
Python
PHP
Pike
R
REXX
REBOL
RPG
Ruby
Simula
Smalltalk
Scheme
SQL
Bahasa Mesin Komputer
Kode mesin atau bahasa mesin adalah sistem instruksi dan data yang dijalankan langsung oleh komputer central processing unit. Kode mesin dapat dianggap sebagai primitif (dan rumit) atau sebagai bahasa pemrograman tingkat terendah representasi dari disusun dan / atau program komputer rakitan. Program dalam menafsirkan bahasa  tidak diwakili oleh kode mesin tetapi, walaupun penerjemah mereka (yang dapat dilihat sebagai sebuah prosesor melaksanakan program tingkat yang lebih tinggi) sering terjadi. Kode mesin kadang-kadang disebut kode asli ketika mengacu pada platform-bagian dari bahasa tergantung fitur atau perpustakaan. kode Mesin tidak boleh disamakan dengan apa yang disebut “bytecode”, yang dilaksanakan oleh seorang juru bahasa.
Kode Mesin Instruksi
Setiap prosesor atau keluarga prosesor memiliki set instruksi kode mesin. Instruksi pola bit yang oleh desain fisik sesuai dengan perintah yang berbeda ke mesin. Set instruksi demikian khusus untuk kelas prosesor menggunakan (banyak) arsitektur yang sama. Penerus atau derivatif desain prosesor sering mencakup semua instruksi dari pendahulunya dan dapat menambah petunjuk tambahan. Kadang-kadang desain pengganti akan menghentikan atau mengubah arti dari beberapa kode instruksi (biasanya karena dibutuhkan untuk keperluan baru), kode yang mempengaruhi kompatibilitas sampai batas tertentu, bahkan hampir sepenuhnya kompatibel dengan prosesor mungkin akan menampilkan perilaku yang sedikit berbeda untuk beberapa instruksi tetapi ini jarang yang masalah. Sistem mungkin juga berbeda dalam rincian lainnya, seperti pengaturan memori, sistem operasi, atau perangkat periferal; karena biasanya program bergantung pada faktor-faktor seperti, sistem yang berbeda akan biasanya tidak menjalankan kode mesin yang sama, bahkan ketika jenis prosesor yang sama digunakan.
Sebuah set instruksi kode mesin mungkin memiliki semua instruksi yang sama panjang, atau hal itu mungkin karena panjang variabel-instruksi. Bagaimana pola diorganisir sangat bervariasi dengan arsitektur tertentu dan sering juga dengan jenis instruksi. Sebagian besar instruksi memiliki satu atau lebih opcode bidang yang menentukan jenis instruksi dasar (seperti aritmatika, logis, melompat, dll) dan operasi sebenarnya (seperti menambah atau membandingkan) dan bidang lain yang mungkin memberikan jenis operand (s) , mode pengalamatan (s), pengalamatan offset (s) atau indeks, atau nilai aktual itu sendiri (Operand konstan seperti yang terdapat dalam sebuah instruksi disebut immediates).
Program
Sebuah program komputer adalah suatu urutan instruksi yang dijalankan oleh CPU. Sementara prosesor mengeksekusi instruksi sederhana satu demi satu, prosesor superscalar mampu menjalankan beberapa instruksi sekaligus. Program aliran mungkin dipengaruhi oleh khusus ‘melompat’ instruksi yang mentransfer eksekusi ke instruksi lain dari yang di bawah satu. Lompatan bersyarat diambil (eksekusi berlanjut pada alamat lain) atau tidak (eksekusi berlanjut pada instruksi berikutnya) tergantung pada beberapa kondisi.
Hubungan terfokus
Dalam beberapa arsitektur komputer, kode mesin ini diterapkan oleh lapisan yang lebih mendasar dari program yang disebut microprograms, menyediakan antarmuka bahasa mesin Common melintasi sebuah garis atau keluarga model yang berbeda dengan komputer yang mendasari dataflows sangat berbeda. Hal ini dilakukan untuk memfasilitasi port dari program bahasa mesin antara model yang berbeda. Contoh dari penggunaan ini adalah IBM System/360 komputer keluarga dan para penerus mereka. Dengan jalan dataflow lebar dari 8 bit dengan 64 bit dan seterusnya, mereka tetap menyajikan sebuah arsitektur umum pada tingkat bahasa mesin di seluruh baris.
Menggunakan lapisan terfokus untuk menerapkan sebuah emulator memungkinkan komputer untuk menyajikan arsitektur komputer yang sama sekali berbeda. Baris System/360 ini digunakan untuk mengizinkan program port dari mesin IBM sebelumnya untuk keluarga baru komputer, misalnya IBM 1401/1440/1460 emulator pada IBM S/360 model 40.
Bahasa rakitan (Assembly)
Bahasa rakitan atau lebih umum dikenal sebagai Assembly adalah bahasa pemrograman tingkat rendah yang digunakan dalam pemrograman komputer, mikroprosesor, pengendali mikro, dan perangkat lainnya yang dapat diprogram. Bahasa rakitan mengimplementasikan representasi atas kode mesin dalam bentuk simbol-simbol yang secara relatif lebih dapat dipahami oleh manusia. Berbeda halnya dengan bahasa-bahasa tingkat tinggi yang berlaku umum, bahasa rakitan biasanya mendukung secara spesifik untuk suatu ataupun beberapa jenis arsitektur komputer tertentu. Dengan demikian, portabilitas bahasa rakitan tidak dapat menandingi bahasa-bahasa lainnya yang merupakan bahasa pemrograman tingkat tinggi. Namun demikian, bahasa rakitan memungkinkan programmer memanfaatkan secara penuh kemampuan suatu perangkat keras tertentu yang biasanya tidak dapat ataupun terbatas bila dibuat dengan menggunakan bahasa pemrograman tingkat tinggi.
Pada bahasa rakitan, programmer umumnya menggunakan sebuah program utilitas yang disebut sebagai perakit (bahasa Inggris: assembler) yang digunakan untuk menerjemahkan kode dalam bahasa rakitan tersebut ke dalam kode mesin untuk perangkat keras tertentu. Sebuah perintah dalam bahasa rakitan biasanya akan diterjemahkan menjadi sebuah instruksi mnemonic dalam kode mesin, berbeda halnya dengan kompiler pada bahasa pemrograman tingkat tinggi yang menerjemahkan sebuah perintah menjadi sejumlah instruksi dalam kode mesin.
Beberapa perangkat lunak bahasa rakitan terkenal biasanya menyediakan tambahan fitur untuk memfasilitasi proses pengembangan program, mengontrol proses perakitan, dan alat bantupengawakutuan (debugging).
Dasar alasan menggunakan bahasa rakitan
Ada beberapa dasar alasan menggunakan bahasa rakitan dilihat dari sudut pandang penggunaannya:
Bahasa rakitan dibandingkan dengan bahasa mesin, bahasa rakitan merupakan representasi atas bahasa mesin yang dirancang agar lebih mudah dipahami oleh manusia. Dengan menggunakan bahasa rakitan, seorang programmer dapat lebih mudah mengingat instruksi-instruksi dengan menggunakan simbol yang lebih dimengerti dibandingkan bila menggunakan simbol mnemonic kode mesin secara langsung. Demikian halnya pula dengan mekanisme lompatan yang umum terdapat dalam bahasa mesin yang biasanya menggunakan alamat memori, programmer dapat lebih mudah menggunakan fasilitas pelabelan yang terdapat pada bahasa rakitan dibandingkan menggunakan alamat memori tertentu dalam kode mnemonic.
Bahasa rakitan dibandingkan dengan bahasa tingkat tinggi, bahasa rakitan memungkinkan programmer untuk mengontrol serta memanfaatkan secara penuh kapabilitas yang terdapat atas suatu perangkat keras, berbeda halnya dengan bahasa pemrograman tingkat tinggi yang memiliki banyak keterbatasan dalam pemanfaatan secara penuh suatu perangkat keras. Bahasa rakitan menjanjikan tingkat unjuk kerja yang maksimum karena sifatnya yang menerjemahkan secara langsung instruksi rakitan menjadi instruksi mesin, berbeda halnya dengan bahasa pemrograman tingkat tinggi yang biasanya menerjemahkan sebuah instruksi menjadi sejumlah kode mesin.
Representasi kode mesin
Bahasa rakitan menerjemahkan sebuah instruksi rakitan menjadi instruksi mesin, umumnya mekanisme penerjemahan ini bersifat 1-1, karenanya dapat disebutkan pula bahwa setiap instruksi dalam bahasa rakitan merupakan representasi dari instruksi kode mesin.
Sebagai contoh, berikut adalah instruksi yang digunakan pada prosesor x86 untuk memindahkan nilai 97 sebesar 8-bit ke dalam register prosesor AL. Kode biner atas instruksi pemindahan adalah 10110 diikuti dengan 3-bit pengenal atas register yang akan digunakan. Pengenal atas register AL dalam hal ini adalah 000. Kemudian, nilai 97 dalam kode biner adalah 01100001, sehingga kode mesin yang digunakan untuk memindahkannya adalah sebagai berikut :
10110000 01100001
Kode biner ini dapat diubah agar lebih mudah dibaca manusia dengan mengkonversikannya dalam bilangan heksadesimal sebagai berikut:
B0 61
Pada instruksi diatas, B0 berarti: ‘Pindahkan nilai berikut ke register AL’, dan 61 adalah representasi bilangan heksadesimal untuk nilai 01100001, atau 97 dalam bilangan desimal. Bahasa rakitan untuk prosesor Intel menyediakan simbol mnemonic MOV (yang merupakan singkatan dari move) untuk instruksi serupa sehingga kode mesin sebelumnya dapat ditulis dalam bahasa rakitan sebagai berikut:
Bahasa rakitan memungkinkan programmer menambahkan komentar atas setiap instruksi yang ditulis untuk mempermudah pembacaan dan lebih mudah pemahaman.
bahasan pemrograman tingkat menengah
seperti halnya bahasa pemrograman tinggkat tinggi, bedanya bahasa ini memakai simbol-simbol seperti {, }, ?, <<, >>, &&, ||, dsb.
Bahasa pemrograman tingkat tinggi
Bahasa pemrograman tingkat tinggi adalah sebuah bahasa pemrograman yang jika dibandingkan dengan bahasa pemrograman tingkat rendah memiliki sifat lebih mudah digunakan, lebih portabel (mudah diadaptasikan) antar-platform, dan lebih abstrak. Bahasa-bahasa semacam ini sering melakukan abstraksi terhadap beberapa operasi CPU, seperti halnya pengaksesan memori.
Fitur-fitur Bahasa pemrograman tingkat tinggi
Istilah “bahasa pemrograman tingkat tinggi” tidak serta merta menjadikan bahasa tersebut lebih baik dibandingkan dengan bahasa pemrograman tingkat rendah. Akan tetapi, maksud dari “tingkat tinggi” di sini merujuk kepada abstraksi yang lebih tinggi dibandingkan dengan bahasa tingkat rendah terhadap bahasa mesin. Dibandingkan dengan harus berurusan dengan register, alamat memori dan stack-stack panggilan, bahasa pemrograman tingkat tinggi akan berurusan dengan variabel, larik, dan ekspresi aritmetika atau aljabar Boolean. Selain itu, tidak seperti bahasa rakitan, bahasa tingkat tinggi tidak memiliki opcode atau kode operasi yang dapat secara langsung menjadikan bahasa tersebut menjadi kode mesin. Fitur lainnya seperti rutin-rutin penangananstring, fitur pemrograman berorientasi objek, input/output terhadap berkas juga terdapat di dalam jenis bahasa ini.
Secara umum, bahasa tingkat tinggi akan membuat pemrograman komputer yang kompleks menjadi lebih sederhana, sementara bahasa tingkat rendah cenderung untuk membuat kode yang lebih efisien. Dalam sebuah bahasa tingkat tinggi, elemen-elemen kompleks dapat dipecah ke dalam beberapa elemen yang lebih sederhana, meski masih dapat dianggap kompleks, di mana bahasa tersebut menyediakan abstraksi. Karena alasan ini, kode-kode yang harus berjalan dengan efisien dapat ditulis dalam bahasa pemrograman tingkat rendah, sementara bahasa tingkat tinggi digunakan untuk mempermudah pemrograman.
Akan tetapi, dengan bertambah rumitnya arsitektur mikroprosesor modern, kompilator-kompilator bahasa pemrograman tingkat tinggi dapat membuat kode yang lebih efisien dibandingkan dengan para programmer bahasa pemrograman tingkat rendah yang melakukannya secara manual.
Perlu dicatat bahwa istilah “tingkat tinggi” dan “tingkat rendah” adalah relatif. Pada awalnya, bahasa rakitan dianggap sebagai bahasa tingkat rendah, sementara COBOL, C, dan lain-lainnya dianggap sebagai bahasa tingkat tinggi, mengingat mereka mengizinkan abstraksi terhadap fungsi, variabel, dan evaluasi ekspresi. Akan tetapi, banyak programmer saat ini mungkin menganggap bahasa C sebagai bahasa pemrograman tingkat rendah, mengingat bahasa pemrograman tersebut mengizinkan akses memori secara langsung dengan menggunakan alamatnya, dan juga dapat menggunakan beberapa direktif bahasa rakitan.
Model eksekusi
Ada tiga buah model eksekusi untuk bahasa tingkat tinggi, yakni:
Diinterpretasikan
Bahasa jenis ini akan dibaca dan dieksekusi secara langsung tanpa adanya proses atau tahap kompilasi oleh kompilator. Alat bantu yang mampu melakukannya disebut sebagai penerjemah(interpreter).
Dikompilasi
Bahasa jenis ini akan ditransformasikan ke dalam bentuk yang dapat dieksekusi sebelum dijalankan. Ada dua jenis kompilasi yang sering digunakan, yakni:
Intermediate representation
Ketika sebuah bahasa dikompilasi ke dalam intermediate representation, representasi tersebut dapat dioptimalkan atau disimpan untuk eksekusi pada lain waktu tanpa adanya kebutuhan untuk membaca lagi kode sumber program. Ketika representasi intermediate disimpan, umumnya, hal tersebut dinamakan dengan bytecode.
Machine code generation
Beberapa bahasa dapat melakukan kompilasi secara langsung ke dalam bahasa mesin.
Ditranslasikan
Sebuah bahasa juga dapat ditranslasikan ke dalam bahasa pemrograman tingkat rendah di mana kompilator kode bahasa asli telah beredar luas. Bahasa pemrograman C merupakan salah satu target yang umum untuk translator
REFERENSI: