Pemrograman Komputer 9/6/3 mailto: Luknanto@tsipil.ugm.ac.id Pemrograman Komputer Pendahuluan & Sejarah Pemrograman Komputer Pendahuluan. Organisasi komputer Sistem hitungan Organisasi memori Sistem bilangan Penyimpan data Perintah pemrosesan Pemrograman Komputer 3 Pemrograman Komputer 4 Perangkat lunak komputer Ksep simpan program yang dikembangkan v Neumann merupakan kemajuan yang sangat berarti, walaupun komputer awal masih saja sulit digunakan. Sebagai suatu ksekuensi dari kemajuan perangkat keras, maka perusahaan komputer mengembangkan kumpulan perangkat lunak yang disebut system software, yang membuat komputer lebih mudah dioperasikan. Perangkat lunak Salah satu perkembangan system software yang paling penting adalah pembuatan operating system, yang mengalokasi storage untuk program dan data serta melakukan beberapa fungsi penting lainnya Sistem operasi berfungsi sebagai perantara (interface) antara pengguna dan komputer; menterjemahkan perintah dari user dan memerintahkan system software dan hardware untuk melakukan perintah terkait. Pemrograman Komputer 5 Pemrograman Komputer 6 Perangkat lunak Sistem operasi yang paling banyak digunakan adalah UNIX,, yang dikembangkan pada 97, dan masih dikembangkan sampai saat ini. Satu-satunya OS yang digunakan untuk komputer mikro maupun komputer super. OS paling populer untuk komputer mikro selama beberapa tahun yl adalah MS-DOS yang diciptakan oleh Microsoft Corporati, 98. Perangkat lunak Saat ini, graphical user interface (GUI( GUI), seperti yang digunakan pada Apple Macintosh dan Microsoft s Windows untuk PC, merupakan OS yang lebih canggih dan lebih mudah digunakan dibandingkan DOS. Perkembangan penting lainnya dalam perangkat lunak adalah pengembangan high high-level languages, yang memungkinkan pengguna menulis perangkat lunak seperti menggunakan bahasa manusia. Djoko Luknanto JTS FT UGM
Pemrograman Komputer 9/6/3 Pemrograman Komputer 7 High-level language Sebuah program yang ditulis dalam high level language dikenal sebagai source program Kebanyakan high level language harus diubah menjadi machine language yaitu bahasa yang dimengerti oleh komputer Machine language ini disebut object program Perangkat lunak yang mengubah dari source program menjadi object program disebut compiler Pemrograman Komputer 8 skema bahasa Manusia high level language source program hanya difahami manusia Komputer machine language object program hanya difahami mesin diterjemahkan oleh Compiler Pemrograman Komputer 9 Pemrograman Komputer high-level language Keuntungan utama high level language adalah dapat digunakan untuk sembarang jenis komputer. Sedangkan machine language atau assembly language sangat tergantung jenis komputer. Oleh karena itu assembly language untuk komputer Macintosh tidak dapat digunakan untuk komputer IBM PC. high-level language High level language yang populer pertama kali adalah FORTRAN (FORmula TRANslati) yang dibuat oleh John Backus dkk. untuk komputer IBM 74, selama tiga tahun (954-957). 957). Bersama dengan berkembangnya hardware, FORTRAN mengalami perkembangan pula, misalkan FORTRAN IV, FORTRAN 77, FORTRAN 9. Pemrograman Komputer high-level language Selain FORTRAN beberapa bahasa pemrograman yang populer saat ini adalah: BASIC (Beginner All purpose Simbolic Instructi Code) COBOL Algol, Pascal (diciptakan oleh Niklaus Wirth) Modula- C, C++ Ada dll Pemrograman Komputer Bahasa pemrograman Bahasa FORTRAN Algol Cobol Lisp Snobol BASIC PL/I APL Pascal Tahun 957 96 96 96 96 965 965 967 97 Deskripsi Untuk aplikasi numeris. Untuk aplikasi numerik, banyak digunakan di Eropa Untuk aplikasi busines. Untuk aplikasi kecerdasan buatan. Untuk aplikasi/manipulasi karakter. Untuk sembarang aplikasi, interaktif dan mudah. Untuk aplikasi numeris maupun busines. Untuk aplikasi matrik dan program linier. Untuk sembarang aplikasi, digunakan untuk mengajar pemrograman. Djoko Luknanto JTS FT UGM
Pemrograman Komputer 9/6/3 Pemrograman Komputer 3 Pemrograman Komputer 4 Organisasi komputer Sistem hitungan bagian terpenting adalah central processing unit (CPU( CPU), yang mengtrol seluruh kegiatan: melakukan operasi aritmetika dan logika, menyimpan dan mengambil perintah serta data. perintah dan data disimpan didalam unit memori berkecepatan tinggi. sistem hitungan Unit ktrol akan menjemput perintah dari memori, mengubahnya, kemudian mengarahkan sistem untuk melakukan operasi yang diperintah perintahkan. Operasi aritmetika dan logika dilakukan pada unit khusus yang disebut dengan arithmetic-logic unit (ALU( ALU) Pemrograman Komputer 5 memori Unit memori terdiri atas beberapa bagian: bagian penyimpan perintah dan data disebut internal, main, primary, dan random access memory (RAM( RAM) memori khusus berkecepatan tinggi didalam CPU yang biasa disebut register. Data tersimpan dalam register dapat digunakan ribuan kali lebih cepat dibanding data tersimpan dalam RAM. Pemrograman Komputer 6 memori Kelemahan register dan RAM adalah pada saat listrik mati, seluruh data yang tersimpan hilang semuanya. Untuk kepentingan itu dibutuhkan alat penyimpan perintah dan data yang tahan lama disebut external atau auxiliary atau memori kedua. Biasa dijumpai berupa: disk magnetik (harddisk, disket, zip) disk optik (compact disk) Pemrograman Komputer 7 Pemrograman Komputer 8 Alat peripheral Penyimpan eksternal ini merupakan salah satu alat peripheral. Sangat berguna untuk menyimpan data dalam jumlah besar dan jangka panjang. Tidak hilang walaupun listrik mati. Ribuan kali lebih lambat dari RAM. alat peripheral Alat peripheral yang lain digunakan untuk menyalurkan perintah, data, dan hasil hitungan diantara pengguna dan CPU. Alat semacam ini disebut alat input-output, dapat berupa csole, terminal, scanner, voice input device, printer, dan plotters. Fungsinya: untuk mengubah informasi dari bentuk yang difahami pengguna ke bentuk yang dimengerti komputer, dan sebaliknya. Djoko Luknanto JTS FT UGM 3
Pemrograman Komputer 9/6/3 Pemrograman Komputer 9 skema organisasi komputer Alat Input Alat Output Memori Eksternal bagian utama komputer CPU (central processing unit) Unit Ktrol Memori Utama Unit Aritmetika- Logika (ALU) Pemrograman Komputer Interaksi Pengguna-Komputer PENGGUNA/MANUSIA PERANGKAT LUNAK SISTEM OPERASI BAHASA MESIN CPU/KOMPUTER Pemrograman Komputer Pemrograman Komputer Organisasi memori Unit memori komputer terdiri dari alat yang hanya mempunyai keadaan. Jika keadaan pertama difahami sebagai, maka keadaan kedua difahami sebagai. Lahirlah sebutan sistem binari, yaitu sistem yang hanya menggunakan dua angka binari/binary digits (bits( bits) ) yaitu dan,, untuk merepresentasikan informasi dalam komputer. Alat keadaan ini dikelompokkan menjadi sebuah grup yang disebut byte. bit-bytes Sebuah byte biasanya terdiri dari sejumlah bit tertentu, biasanya delapan. Memory komputer biasanya dinyatakan dalam byte. Satu blok memory sebesar = 4 byte, disebut Kb. Jadi 5Kb memori adalah 5 x 4 byte = 9 x = 9 byte = 9 x 3 = bit atau 4.94.34 bit. Pemrograman Komputer 3 Pemrograman Komputer 4 word Beberapa byte memori biasanya dikelompokkan dalam sebuah word. Jumlah bit sebuah word biasanya sama dengan jumlah bit dalam register CPU. Jadi ukuran word, berbeda untuk berbagai jenis komputer, ukuran yang umum adalah 6 bit (= byte), 3 bit (= 4 byte), 64 bit (= 8 byte), atau 8 bit (= 6 byte). address Setiap kelompok bit baik berupa: byte maupun word didalam komputer, selalu mempunyai alamat/address. Alamat ini memungkinkan kita untuk menyimpan dan mengambil informasi dari byte dan word yang ada. Djoko Luknanto JTS FT UGM 4
Pemrograman Komputer 9/6/3 Pemrograman Komputer 5 Sistem binari: alamat/address byte = 8 bit byte = 8 bit word = byte = 6 bit word = 4 byte = 3 bit Pemrograman Komputer 6 Sistem bilangan Sistem bilangan yang biasa kita gunakan adalah sistem bilangan desimal atau basis,, yaitu menggunakan angka untuk membentuk bilangan. Nilai angka dalam bilangan tergantung letaknya dalam bilangan tersebut Pemrograman Komputer 7 Sistem bilangan desimal Angka yang digunakan:,,,3,4,5,6,7,8,9 485 angka 4 diinterpretasikan sebagai 4 ratusan angka 8 diinterpretasikan sebagai 8 puluhan angka 5 diinterpretasikan sebagai 5 satuan Dalam bentuk panjang (4x) + (8x)( + (5x)( (4x ) + (8x( ) + (5x( ) Pemrograman Komputer 8 Sistem bilangan binari Angka yang digunakan:, (x ) + (x( ) + (x( ) (x4) + (x)( + (x)( = 5 (desimal) (x 5 ) + (x( 4 ) + (x( 3 ) + (x( ) + (x( ) + (x( ) (x3) + (x6)( + (x8)( + (x4)( + (x)( + (x)( = 58 (desimal) Pemrograman Komputer 9 Pemrograman Komputer 3 Sistem bilangan octal Angka yang digunakan:,,,3,4,5,6,7 73 8 (x8x8 3 ) + (7x8( ) + (x8( ) + (3x8( ) (x5) x5) + (7x64)( + (x8)( + (3x)( = 963 (desimal) Sistem bilangan hexadecimal Angka yang digunakan:,,,3,4,5,6,7,8,9,a(),b(),c(), D(3), E(4),F(5) 5E4 6 (5x6x6 ) + (Ex6( ) + (4x6( ) (5x56) x56) + (4( 4x6) + (4x)( = 58 (desimal) Djoko Luknanto JTS FT UGM 5
Pemrograman Komputer 9/6/3 Pemrograman Komputer 3 Representasi numeris sistem bilangan Desimal 3 4 5 6 7 8 9 3 4 5 6 7 8 Binari Octal 3 4 5 6 7 3 4 5 6 7 Hexadesimal 3 4 5 6 7 8 9 A B C D E F Pemrograman Komputer 3 Penyimpan data Integer (bilangan utuh) disimpan dalam memori word andaikan bilangan utuh 58 (= ) akan disimpan dalam komputer word = 6 bit maka 6 bit harus digunakan untuk menyimpannya sbb: Pemrograman Komputer 33 Bilangan utuh pos. dan neg. bilangan negatif harus pula dapat direpresentasikan kedalam memori komputer. salah satu cara yang biasa dilakukan adalah dengan cara komplemen-dua. dalam skema ini, bilangan positif direpresentasikan dengan cara yang dijelaskan didepan. bit paling kiri harus = untuk menunjukkan bilangan positif Pemrograman Komputer 34 Bilangan utuh negatif Representasi bilangan utuh negatif n, dilakukan dengan merepresentasikan bilangan positifnya n,, dgn melakukan:. komplemennya mengubah setiap angka menjadi mengubah setiap angka menjadi. kemudian tambahkan kepada komplemennya Bilangan utuh negatif Pemrograman Komputer 35 Representasi bilangan utuh negatif 58,, dilakukan dengan merepresentasikan bilangan positifnya 58, dgn melakukan:. bilangan positif 58. komplemennya 3. kemudian tambahkan kepada komplemennya (menjadi 58) Pemrograman Komputer 36 Bilangan utuh positif terbesar Ukuran word yang tetap,, membatasi bilangan utuh yang bisa disimpan. untuk word 6 bit, bilangan positif terbesar: = 5 = 3767 untuk word 6 bit, bilangan negatif terbesar: = - 5 = -3768 Djoko Luknanto JTS FT UGM 6
Pemrograman Komputer 9/6/3 Pemrograman Komputer 37 Bilangan utuh positif terbesar untuk word 3 bit, bilangan positif terbesar: = 3 = 47483647 untuk word 3 bit, bilangan negatif terbesar: = - 3 = -47483648 Untuk bilangan diluar kisaran tersebut akan terjadi keadaan yang disebut dengan overflow Pemrograman Komputer 38 Bilangan real/pecah, desimal Representasi bilangan real/pecah tidak berbeda jauh dengan bilangan utuh. Angka di kiri tanda pecahan dikalikan dengan pangkat positif dari. Angka di kanan tanda pecahan dikalikan dengan pangkat negatif dari. Jadi 56.37,, direpresentasikan sebagai: (5x ) + (6x( ) + (3x( - ) + (x( - ) + (7x( -3 ) Pemrograman Komputer 39 Bilangan real/pecah, binari Angka di kiri tanda pecahan dikalikan dengan pangkat positif dari. Angka di kanan tanda pecahan dikalikan dengan pangkat negatif dari. Jadi.,, direpresentasikan sebagai: (xx ) + (x( ) + (x( ) + (x( - ) + (x( - ) + (x -3 ) 4 + + +.5 + +.5 = 6.65 Pemrograman Komputer 4 Mantissa/Bagian pecahan. = 6.65 dapat ditulis sebagai. x 3, sehingga bagian tertentu dari word dapat digunakan untuk: menyimpan mantissa atau bagian pecahan. dan bagian expen, 3 = pada word 3 bit, maka 4 bit untuk mantissa dan 8 bit untuk expen dapat ditulis sbg: Pemrograman Komputer 4 Pemrograman Komputer 4 Overflow karena ukuran word yang sudah tertentu, terdapat kemungkinan expen tidak mampu merepresentasikan bilangan tertentu, hal ini disebut overflow. terdapat pula suatu bilangan yang representasinya pada bagian mantissa tidak cukup disimpan dgn ukuran word tertentu. Error pembulatan kita tinjau bilangan desimal.7, yang representasi binarinya adalah (. ) dengan blok berulang tanpa henti. Jika dihentikan pada bit ke 4 dan dipotg yaitu (.) sama dengan.69999998474463 Jika dihentikan pada bit ke 4 dan dibulatkan yaitu (.) sama dengan.747683759 Djoko Luknanto JTS FT UGM 7
Pemrograman Komputer 9/6/3 Pemrograman Komputer 43 Pemrograman Komputer 44 Nilai logikal Komputer tidak hanya memproses bilangan tetapi juga data boolean/logikal (true atau false), data karakter, dan data n-numeris numeris lainnya. Nilai logikal sangat mudah ditangani yaitu false ditulis sebagai dan true ditulis sebagai. Nilai karakter Representasi karakter didalam komputer mengikuti dua skema standar:. ASCII (American Standard Code for Informati Exchange). EBCDIC (Extended Binary Coded Decimal Interchange Code) Pemrograman Komputer 45 Karakter A B C D E F G H I J K L M N O ASCII & EBCDIC Desimal 65 66 67 68 69 7 7 7 73 74 75 76 77 78 79 ASCII Binari-8 8 bit Desimal 93 94 95 96 97 98 99 9 3 4 EBCDIC Binari-8 8 bit Pemrograman Komputer 46 Pemrosesan Perintah Selain data, perintah juga harus disimpan dalam komputer. Misalkan kita punya 3 bilangan 8 =, 4 =, 58 =, disimpan dalam memori dengan alamat 4, 5, 6. Kita ingin mengalikan bilangan pertama & kedua, kemudian menambah dengan bilangan ketiga. Hasilnya disimpan di memori word nomor 7. Pemrograman Komputer 47 Alamat 3 4 5 6 7 proses perintah Memori-6 bit Desimal 8 4 58 hasil Pemrograman Komputer 48 langkah-langkah perintah. Copy isi dari memori word 4, masukkan kedalam register akumulator dari ALU.. Copy isi dari memori word 5, hitung perkaliannya dengan nilai dalam register akumulator. 3. Copy isi dari memori word 6, tambahkan kedalam register akumulator. 4. Simpan hasil yang ada di akumulator kedalam memori word 7. Djoko Luknanto JTS FT UGM 8
Pemrograman Komputer 9/6/3 Pemrograman Komputer 49 Pemrograman Komputer 5 Alamat & Perintah Alamat, harus diubah ke binari 4 = 5 = 6 = 7 = Perintah, harus diubah ke binari LOAD = 6 = STORE = 7 = ADD = 35 = MULTIPLY = 36 = Perintah bahasa mesin No. 3 Perintah Alamat operan 5 Pemrograman Komputer 5 Pemrograman Komputer 5 Bahasa assembly Pada era komputer awal, perintah tersebut harus ditulis dengan bahasa assembly (dibawah high-level language) menjadi:. LOAD A. MULTIPLY B 3. ADD C 4. STORE X Bhs assembly diatas harus diubah menjadi bahasa mesin dengan perangkat lunak yang disebut assembler assembler" High-level language Sekarang perintah tersebut ditulis dengan high-level language, misal FORTRAN, menjadi: X = A * B + C Perintah ini harus diubah kedalam bahasa mesin dengan menggunakan perangkat lunak yang disebut compiler compiler. Pemrograman Komputer 53 Pemrograman Komputer 54 Compiler vs Interpreter Ctoh diatas menggunakan compiler untuk menghasilkan object program dalam bhs mesin. Ada jenis bahasa yang tidak menggunakan compiler namun interpreter interpreter Interpreter menterjemahkan high-level language ke bhs mesin baris demi baris, kemudian langsung dikerjakan, tanpa menghasilkan suatu object program. Compiler, interpreter, intermediate Bhs yang menggunakan interpreter lebih lambat dibandingkan yang menggunakan compiler. Namun biasanya interpreter lebih interaktif dan mudah. Ada bahasa yang menghasilkan intermediate code yang kemudian dapat diproses dengan interpreter ataupun compiler. Djoko Luknanto JTS FT UGM 9
Pemrograman Komputer 9/6/3 skema bahasa Pemrograman Komputer 55 Manusia high level language source program hanya difahami manusia Komputer machine language object program hanya difahami mesin diterjemahkan oleh Compiler Djoko Luknanto JTS FT UGM