DASAR-DASAR PEMROGRAMAN KOMPUTER I. Pendahuluan Komputer berasal dari kata computare atau computer atau to compute yang mengandung arti menghitung. Secara umum komputer diartikan sebagai : “Alat komputasi elektronis yang mempunyai penyimpan (memori), sederetan instruksi yang tersimpan dalam penyimpan serta kemampuan untuk memodifikasi aliran pelaksanaan instruksi dalam eksekusinya. Komputer menerima masukan berupa data kemudian menyajikan perhitungan aritmetika maupun pengambilan keputusan pada data tersebut dan menyajikannya sebagai keluaran bagi pemakai. Keseluruhan proses tersebut dikontrol oleh suatu program yang tersimpan dalam komputer.” Sejarah perkembangan komputer dimulai dari timbulnya peradaban hitung-menghitung. Secara singkat dapat dirinci tahapan perkembangannya sebagai berikut : 1. Abad 17 : Blaise Pascal menemukan alat hitung mekanis dengan roda-roda gigi. 2. Abad 19 : Charles Babbage ilmuwan dan matematikawan Inggris memulai idenya menggunakan kartu berlubang dalam otomatisasi pabrik tenunnya. 3. 1930 : Model kartu berlubang mulai banyak dipakai. 4. 1937 : Howard Aitken dan Harvard mengusulkan pada IBM agar menggunakan kartu plong untuk menghitung jejak peluru pada Perang Dunia II. 5. 1943 : S.P Eckert dan J.W Mauchly dari Sekolah Tinggi Teknik Moore Universitas Pensylvania membangun komputer ENIAC yang menggunakan tabung hampa. Sejak penemuan tabung hampa perkembangan komputer menjadi lebih pesat. Kemudian dikembangkan lagi dengan membangun EDVAC yang programnya tersimpan dalam memori. Komputer jenis ni kemudian disebut sebagai Komputer Program Tersimpan. 6. 1944 : J.V. Neumann menciptakan IAS, memasukkan hampir semua konsep umum dari komputer program tersimpan biner sejajar. 7. 1950 : Mulai dipasangnya UNIVAC I untuk keperluan komersial, yaitu sejak ditemukannya transistor sebagai pengganti tabung hampa yang jauh lebih kecil dan murah. 8. 1960 : Mulai berkembangnya ilmu komputer. 9. 1965 : Ditemukannya IC (integrated Circuit) yang merupakan rangkaian terpadu dari banyak transistor sehingga ilmu komputer berkembang lebih pesat lagi. Secara ringkas perkembangan komputer dapat dibagi menjadi empat generasi : 1. Komputer Generasi I : jaman tabung hampa 2. Komputer Generasi II : jaman transistor 3. Komputer Generasi III : jaman IC Modul Pembelajaran Pemrograman Komputer I (e-Learning) Oleh : Ahmad Tusi ([email protected]) 1 4. Komputer Generasi IV : jaman LSI dan VLSI (sekarang)(Large Scale Integration dan Very Large Scale Integration) Berdasarkan kegunaannya komputer dapat dibedakan menjadi 2 (dua), yaitu : • Special Purpose : Komputer untuk tujuan tertentu seperti komputer yang terpasang pada pesawat tempur, video game, robot. • General Purpose : Komputer untuk tujuan umum seperti PC (personal komputer) dan sebagainya. Sedangkan berdasarkan prinsip kerjanya dibedakan menjadi 2 (dua) yaitu : • Komputer Digital : Bekerja atas dasar menghitung sehingga komputer ini dipakai untuk memproses data angka yang disajikan dengan sederetan berhingga dari digit-digit. • Komputer Analog : Bekerja atas dasar mengukur besaran fisis dalam suatu untai yang dipasang setara dengan persamaan dari gejala (fenomena) yang diselidiki. 1.1. Organisasi Komputer Komputer merupakan alat elektronik untuk menunjang ilmu pengetahuan dan teknologi yang digunakan untuk memproses dan menyimpan data maupun informasi yang cepat dan akurat dan sebagai alat bantu dalam memecahkan masalah. Data dimasukkan dalam komputer, kemudian diproses dalam komputer hingga menghasilkan suatu keluaran tertentu. Secara sederhana dapat digambarkan sebagaimana tersaji dalam Gambar 1. Gambar 1. Komputer sebagai alat bantu pengolah data dan menghasilkan informasi Organisasi komputer secara global didukung oleh tiga komponen sebagai berikut : a. Hardware; merupakan komponen fisik dari komputer yang bersama-sama menjalankan proses masukan dan keluaran. b. Program Komputer; sejumlah instruksi bahasa mesin yang dijalankan oleh komputer. c. Software; merupakan rangkaian program yang ditulis untuk dijalankan dalam komputer dengan bantuan assembler atau compiler. 1.1.1. Komponen Masukan (Input) dan Keluaran (Output) dalam Komputer (I/O Devices) Komponen masukan (input) dan keluaran (output) berfungi sebagai media komunikasi antarapengguna (user) dan komputer. Komponen I/O umumnya merupakan komponen eksternal komputer, seperti : keyboard, mouse, joystick yang merupakan komponen masukan; Modul Pembelajaran Pemrograman Komputer I (e-Learning) Oleh : Ahmad Tusi ([email protected]) 2 sedangkan printer, hard disk, card`reader machine, disket, magnetic tape merupakan sebagai media atau komponen keluaran. Secara garis besar komputer terdiri dari dua bagian utama, yaitu : unit memori dan central processing unit (CPU) (lihat Gambar 2). Gambar 2. Komponen Utama Komputer; unit memori dan CPU 1.1.2. Unit Memori Unit memori komputer terdiri dari ribuan sel memori yang masing-masing memiliki kode yang unik, yang dikenal sebagai alamat memori. Ketika sebuah program komputer dijalankan, data atau program yang sering digunakan akan disimpan sementara di memori, oleh karena itu terkadang saat pertama kali kita memanggil/menjalankan suatu program terasa lama, tetapi setelah dilakukan berulang kali terasa lebih cepat prosesnya. Pengertian unit memory adalah memori utama yang terpasang dalam komputer seperti yang kita kenal di pasaran sebagai memori komputer (SDRAM, DDRAM, RDRAM) serta memori yang terpasaang dalam processor, sedangkan hard disk, floppy drive, USB drive digolongkan sebagai komponen sekunder tempat menyimpan data secara permanen. Memori merupakan tempat menyimpan sementara sebelum data diolah ke dalam CPU/ untuk menyimpan sementara sebelum dikeluarkan oleh alat output. Memori utama terdiri dari beri-ribu piranti yang masing-masing mampu menahan / menyimpan suatu muatan listrik dan mereka semuanya dirangkai dalam rangkaian yang cukup rumit. Suatu alat tersebut dapat menyajikan suatu digit biner (binary digit) dan disingkat BIT. Jika bit bermuatan positif maka dikatakan ON atau 1. Sebaliknya ditulis OFF atau 0. Karena dasar kerja itulah maka data dan instruksi disimpan dalam bentuk kode biner. Dengan pengertian bit tersebut maka suatu bilangan desimal dapat disajikan dalam 4 buah “bit” yang dideretkan sebagai berikut : 0000 = 0 0001 = 1 0010 = 2 0011 = 3 0100 = 4 0101 = 5 0110 = 6 0111 = 7 1000 = 8 1001 = 9 Modul Pembelajaran Pemrograman Komputer I (e-Learning) Oleh : Ahmad Tusi ([email protected]) 3 Jadi suatu bit yang ON (1) papa posisi paling kanan bernilai 1, pada posisi sebelah kirinya bernilai 2, kemudian 4, 8, 16, dst. Dengan menambah cacah bit pada kelompok tersebut di atas maka suatu bilangan desimal dapat disajikan sebagai berikut : 128 1 64 0 32 1 16 1 8 0 4 1 2 0 1 1 Akan mempunyai nilai : 128 + 32 + 16 + 4 + 1 = 181. Sehingga didapat 10110101 = 181. Untuk menyajikan aksara-aksara lainnya diperlukan dua bit lagi, jadi total menjadi 6 bit; sebagai contoh : Z 0 0 0 0 Z 0 0 1 1 8 0 0 0 0 4 0 1 0 1 2 1 1 0 1 1 0=2 1=7 1=A 1=G Z 0 1 1 1 Z 1 0 0 1 8 1 0 1 0 4 1 0 1 0 2 1 1 1 1 1 1=O 1=R 1=$ 0=* Satu kelompok bit di atas selanjutnya merupakan satu pengertian tunggal, dan dikaitkan dengan address / alamat penyimpanan dalam memori utama. Untuk komputer yang berbeda cara pengelompokannya berbeda pula. Yang paling popular saat ini adalah cara pengelompokan 8 bit. Satu kelompok 8 bit ini kemudian disebut 1 byte. Sedangkan apabila 4 byte membentuk satu kelompok (yang lebih besar) lagi maka disebut 1 word. Jadi 1 WORD = 4 BYTE = 32 BIT. Nantinya yang disebut dengan ASCII (American Standard Code for Information Interchange) adalah salahsatu cara pengkodean dari bilangan atau aksara lain ke dalam biner. Dikenal pula cara lain yaitu EBCDIC (Extended Binary – Coded – Decimal Interchange Code). 1.1.3. Unit Pengolah Pusat/Central Processing Unit (CPU) CPU secara langsung mengontrol seluruh proses pengolahan data dan informasi di dalam komputer. CPU terdiri dari : a. ALU (Aritmatic Logical Unit) Menggabungkan data, mengolah data, tempat hitungan, memilih data dan mensortir data. b. Control Unit Untuk mngontrol semua kegiatan/proses yang harus dijalani oleh komputer. Modul Pembelajaran Pemrograman Komputer I (e-Learning) Oleh : Ahmad Tusi ([email protected]) 4 Gambar 3. Komponen CPU dan Unit Memori (Primer) 1.2. Bahasa Mesin Sistem komputer menggunakan bahasa khusus untuk menterjemahkan, mengolah dan mempresentasikan data dan informasi. Semua instruksi, data dan informasi dalam komputer dinyatakan dengan kode binary (0 dan 1). Program pada level ini dikenal dengan istilah bahasa mesin. Bahasa mesin sangat tergantung pada jenis dan tipe hardware serta tujuan/kepentingan dari design hardware itu sendiri. Contoh sebuah mesin yang diciptakan untuk mengontrol keadaan cuaca di dalam rumah kaca tentunya memiliki perbedaan dalam hardware dan program dengan mesin yang diciptakan untuk menyeleksi kualitas buahbuahan. Karena bahasa mesin ini sangat rumit, sehigga dalam menyelesaikan satu instruksi sederhana saja memerlukan tahapan yang sangat banyak, maka berkembang bahasa pemrograman untuk menyederhanakan proses/instruksi-instruksi ke dalam komputer. Ada dua tingkatan/level bahasa pemrograman yang kita kenal yaitu : bahasa pemrograman tingkat rendah dan bahasa pemrograman tingkat tinggi. Kedua tingkat bahasa pemrograman tersebut memerlukan assembler/compiler yang berfungsi menterjemahkan bahasa program ke dalam bahsa mesin, sehingga dapat dimengerti oleh komputer. Semakin berkembang teknologi dan pengetahuan, maka berkembang bahasa-bahasa program yang lebih tinggi tingkatannya. Semakin tinggi tingkatan/level bahasa pemrograman maka akan semakin mudah dimengerti oleh kita. Contoh bahasa pemrograman tingkat tinggi : Basic, Pascal, Fortran, Visual Basic, Visual C, dsb. Karakteristik dari bahasa pemrograman tingkat tinggi adalah : Tidak tergantung pada komputer/mesin yang digunakan Umumnya menggunakan bahasa inggris, bahasa komunikasi yang sering digunakan oleh kita Dilengkapi dengan compiler (interpreter) yang berfungsi menterjemahkan instruksi ke dalam bahasa mesin (kode binary) Sedangkan contoh bahasa pemrograman tingkat rendah adalah bahasa assembly. Modul Pembelajaran Pemrograman Komputer I (e-Learning) Oleh : Ahmad Tusi ([email protected]) 5 1.3. Satuan Penghitung Aritmetika Satuan ini berfungsi sebagai kalkulatornya pemroses pusat dalam arti sempit, sebab selain untuk perhitungan arimetika juga untuk perhitungan nalar. Di dalam satuan ini terdapat rangkaian nalar yang sangat rumit. Untuk mempelajarinya diperlukan bekal pengetahuan aljabar nalar (aljabar boole) dan elektronika. Sistem Bilangan : Dikenal beberapa sistem bilangan : Sistem Desimal 10 simbol : 0123456789 Sistem Biner 2 simbol : 01 Sistem Terner 3 simbol : 012 Sistem Oktal 8 simbol : 01234567 12 simbol : 0123456789AB Sistem Duodesimal Sistem Heksadesimal 16 simbol : 0123456789ABCDEF Konversi Bilangan : - Desimal Terner - 277 dikonversikan ke basis 3 277 = 3x92 + 1 92 = 3x30 + 2 30 = 3x10 + 0 10 = 3x3 + 1 3 = 3x1 + 0 1 = 3x0 + 1 Desimal ke Biner 107 dikonversikan ke Biner 107 = 2x53 + 1 53 = 2x26 + 1 26 = 2x13 + 0 13 = 2x6 + 1 6 = 2x3 + 0 3 = 2x1 + 1 1 = 2x0 + 1 ( 13 ) 10 = ----------13 / 2 = 6 …. 1 6 / 2 = 3 …. 0 3 / 2 = 1 …. 1 1 / 2 = 0 …. 1 Dengan membalik urutan suku sisa diperoleh konversi : (277)10 = 1010213 Dengan membalik urutan suku sisa diperoleh konversi : (107)10 = 11010112 Dengan membalik urutan suku sisa diperoleh konversi : (13)10 = ( 1101 )2 Modul Pembelajaran Pemrograman Komputer I (e-Learning) Oleh : Ahmad Tusi ([email protected]) 6 - Biner ke Desimal ( 1101 ) 2 = 1x23 + 1x22 + 0x21 + 1x20 = 8 + 4 + 0 + 1 = 13 Decimal 1 3 binary code 1 = Dua digit 1 0 bit (binary digit) 1 4 bit (kode) - Desimal ke Oktal dan Biner ke Oktal Karena 8 = 23 maka tiga angka biner dapat mewakilkan satu angka oktal. Biner 000 001 010 011 100 101 110 111 3925 490 61 7 Oktal 0 1 2 3 4 5 6 7 = 8x490 + 5 = 8x61 + 2 = 8x7 + 5 = 8x0 + 7 Serial Transmition : 010 101 110 Dengan membalik urutan suku sisa diperoleh konversi : (3925)10 = (7525)8 = 111 101 010 101 transmition line 0 1 0 1 0 1 1 1 0 t - Desimal ke Heksadesimal dan Biner ke Heksadesimal Karena 16 = 24 maka setiap 4 angka biner dapat mewakilkan satu angka heksadesimal. Biner 0000 0001 0010 0011 Oktal 0 1 2 3 Modul Pembelajaran Pemrograman Komputer I (e-Learning) Oleh : Ahmad Tusi ([email protected]) 7 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 4 5 6 7 8 9 A B C D E F 2742 = 16x171 + 6 171 = 16x10 + B 10 = 16x0 + A Dengan membalik urutan suku sisa diperoleh konversi : (2742)10 = (AB6)16 = 1010 1011 0110 Modul Pembelajaran Pemrograman Komputer I (e-Learning) Oleh : Ahmad Tusi ([email protected]) 8