MODUL PRAKTIKUM PENGANTAR TEKNIK KOMPUTER
LABORATORIUM DIGITAL DEPARTEMEN TEKNIK ELEKTRO UNIVERSITAS INDONESIA DEPOK 2010
MODUL 1
PENGENALAN PERANGKAT KERAS KOMPUTER I.
TUJUAN PERCOBAAN 1. 2.
Mempelajari setiap perangkat keras pada sebuah sistem komputer Mampu merakit sebuah komputer hingga sampai bisa berkerja.
II. Dasar Teori Secara umum komputer tersusun dari 3 unsur berikut: CPU/Prosesor Memori Perangkat I/O Ketiga unsur tersebut diletakkan dalam motherboard. Sesuai dengan namanya, motherboard merupakan induk dari sebuah komputer. Pada bagian ini, semua perangkat dipasang, seperti prosesor, memori, kartu VGA, dll. Jenis dari mother board ini sangat bermacam-macam. Mulai dari berbagai macam prosesor yang dapat disupport, jenis RAM, jenis, power supply, dll.
Central Processing Unit / Processor Merupakan bagian utama dari komputer karena processor berfungsi untuk mengatur semua aktifitas yang ada pada komputer. Semakin cepat kinerja suatu computer, semakin banyak tugas yang dapat dilakukan oleh komputer terebut dalam satu waktu. Saat ini kecepatan dari clock prosessor, Hz (Hertz), bukan merupakan penentu utama dari kinerja komputer. Yang lebih menentukan adalah teknologi yang digunakannya. Perkembangan prosesor x86 yang dibuat oleh Intel antara lain: 8086 – 8088 286, 386, 486 Keluarga Pentium : Pentium 1 hingga Pentium D, Pentium M. Keluarga Core: Core solo dan duo. Keluarga Core 2: Core 2 duo, Quad, Extreme, dll. Copyright © Digital Laboratory
1
Keluarga Xeon: Untuk kebutuhan server dan workstation. Keluarga Atom: Untuk kebutuhan mobile dan low power. dan lain-lain. Selain prosesor yang dibuat oleh Intel, terdapat pula beberapa produsen lain yang memproduksi prosesor baik dengan arsitektur x86 maupun arsitektur lainnya, yaitu AMD, SUN, VIA, IBM, Motorola, dan lain-lain.
Socket prosesor Pada motherboard terdapat tempat untuk meletakkan prosesor yang disebut slot/socket. Jenis slot/socket yang dimiliki sebuah komputer menentukan jenis prosesor yang dapat dipasang pada motherboard tersebut. Berikut adalah beberapa slot/socket prosesor yang pernah ada yaitu: Socket 478: Digunakan oleh prosesor Intel Pentium 4 dan Intel Celeron. Socket LGA775: Digunakan oleh prosesor Intel Pentium 4, Intel Pentium D, Intel Core 2 Duo, Quad, Extreme, Intel Celeron D. Socket 754: Digunakan oleh prosesor AMD Athlon 64, AMD Sempron. Socket 939: Digunakan oleh prosesor AMD Athlon 64, AMD Athlon 64 FX, AMD Athlon 64 X2. Socket 940: Digunakan oleh prosesor AMD Opteron. Socket AM2/AM3: Digunakan oleh prosesor AMD Athlon 64, AMD Athlon 64 FX, AMD Athlon 64 X2, AMD Phenom/PhenomII X3/X4. Socket F: Digunakan oleh prosesor AMD Opteron. LGA 1386 : Digunakan oleh prosesor Intel Core i7. dan lain-lain. Selain itu, ada beberapa macam socket yang tidak digunakan lagi, namun masih dapat ditemui di komputer-komputer lawas. Socket 1, 3, 4, 5, 7, 8: Sudah tidak digunakan lagi. Dahulu digunakan untuk Prosesor 386, 486, Pentium, Pentium MMX, Pentium Pro, AMD K6-2, AMD K6-III, Cyrix M-II, IDT Winchip dan lain-lain. Slot 1: Digunakan oleh prosesor Intel Pentium II, Pentium III generasi awal dan Celeron. Slot 2: Digunakan oleh prosesor Intel Pentium II Xeon 9 Slot A: Digunakan oleh prosesor AMD Athlon, Copyright © Digital Laboratory
2
Socket A: Digunakan oleh prosesor AMD Athlon, AMD Athlon MP, AMD Duron, AMD Sempron. Socket 370: Digunakan oleh prosesor Intel Pentium III, Intel Celeron dan Via Cyrix MIII. Socket 603/604: Digunakan oleh prosesor Intel Xeon. Socket 423: Digunakan oleh prosesor Intel Pentium 4 generasi awal. dan lain-lain. Selain itu, ada beberpa motherboard yang telah memiliki prosesor yang terintegerasi tanpa dapat dilepas. Biasanya digunakan untuk motherboard-motherboard ekonomis.
Memori Memori berfungi sebegai tempat untuk menyimpan program dan data. Memori yang digunakan dalam sistem komputer bermacam-macam. Hirarki dari memori bedasarkan dari yang tercepat sampai yang terlambat yaitu Register, Cache Memory, Main Memory, dan Secondary Memory. Register merupakan memori yang paling cepat diakses. Namun, ukurannya sangat kecil, hanya sekitar beberapa ratus kilobyte hingga beberapa Mega byte. Sebaliknya, secondary memory contoh: harddisk drive, jauh lebih lambat dari register namun ukurannya dapat mencapai beberapa Tera byte. Semakin cepat memorinya semakin mahal pula harganya. Selain itu, semakin besar kapasitas memori, semakin mahal pula harganya. Setiap kali dilakukan pemrosesan pada prosesor, prosesor membaca instruksi dari memori sehingga untuk mempercepat proses eksekusi, data tersebut diusahakan berada di memori dengan akses tercepat. Register: memori ini sesungguhnya merupakan bagian dari prosesor. Register merupakan bentuk memori yang tercepat pada sebuah computer. Cache Memory: memori ini merupakan penghubung antara memori utama dengan prosesor. Memori ini juga memiliki akses data yang sangat tinggi, tetapi tidak lebih cepat dari register. Memori ini memiliki beberapa level, pada umumnya terdapat L1 dan L2 cache, tetapi beberapa prosesor memiliki L3 cache. Semakin tinggi levelnya berarti semakin jauh dari prosesor dan semakin lambat. Main Memory: Pada main memori disimpan macam-macam Copyright © Digital Laboratory
3
program yang sedang dieksekusi oleh prosesor. Program yang disimpan pada secondary memori dipindahkan ke main memory untuk mempercepat proses eksekusi. Main memory disebut juga Random Access Memory (RAM). RAM merupakan memory yang dapat ditulis dan dibaca. Memory ini bersifat volatile, sehingga data yang ada pada RAM akan terhapus apabila komputer dimatikan. Oleh karena itu, perlua ada jenis memori lain yang menyimpan instruksi-instruksi awal yang harus dilakukan oleh prosesor ketika pertama kali dihidupkan. ROM merupakan memory yang hanya bisa dibaca dan tidak kehilangan informasi bila catu daya dimatikan. Pada PC, memori ini berisi BIOS (Basic Input Output System). BIOS antara lain berisi informasi dan konfigurasi dasar dari PC yang bersangkutan. Seting-setting pada BIOS, yang dapat diubah oleh pengguna, disimpan dalam sebuah NVRAM (Non-Volatile RAM) yang dicatu oleh sebuah baterai backup. Selain slot/socket untuk prosesor, pada motherboard juga terdapat slot untuk modul memori. Modul tersebut dipasangkan dalam slot-slot yang bersesuaian. Dahulu, jenis memori yang didukung oleh suatu motherboard ditentukan oleh chipset yang terpasang. Namun perkembangan yang terbaru, jenis memori ditentukan oleh jenis prosesor, karena pengendali memori terletak di prosesor. Secara umum, modul memori dapat dibagi dua: Single Inline Memory Module (SIMM) maupun Dual Inline Memory Module (DIMM). SIMM saat ini sudah sangat langka. Modul tersebut hanya terdapat pada motherboard sebelum zaman Pentium. Generasi terakhir dari SIMM adalah Extended Data Out (EDO) RAM yang digunakan oleh prosesor Pentium. DIMM adalah modul memori yang memiliki 2 sisi. Modul memori seperti inilah yang masih sering ditemui. Berikut adalah macam-macam DIMM yang masih dijual dipasaran: SDRAM: Digunakan oleh keluarga Intel Pentium 1 hingga Pentium 3, AMD Athlon/Duron dan prosesor lainnya pada jamannya. RDRAM/Rambus: Digunakan oleh beberapa generasi Pentium III, Pentium 4 versi awal, dan Xeon. DDR SDRAM: Digunakan pertama kali oleh AMD Athlon. Selanjutnya juga digunakan oleh keluarga Pentium 4. DDR2 SDRAM: Digunakan oleh mayoritas prosesor modern. DDR3 SDRAM: Merupakan memori tercepat yang digunakan PC desktop. Diantaranya adalah Intel Core i7 dan AMD Copyright © Digital Laboratory
4
Phenom II. Selain itu, ada beberapa bentuk lain modul memori, antara lain: Small Outline DIMM (SO-DIMM), memori ini memiliki fungsi yang sama dengan DIMM biasa, namun ukurannya lebih pendek sehingga dapat dipasang pada notebook dan server yang memiliki ruangan yang sangat sempit. Fully Buffered DIMM (FB-DIMM), DIMM ini memiliki buffer di setiap pin sinyalnya untuk memastikan sinyal tetap dalam kondisi sempurna seama 1 clock. Biasanya digunakan oleh server maupun workstation untuk enjamin kondisi data tetap sempurna. ECC/Registered DIMM, DIMM jenis ini dilengkapi Error Control/Correction untuk mendeteksi dan memperbaiki error yang terjadi pada data yang disimpan. Biasanya digunakan pada server maupun workstation. Secondary Memory: Merupakan memori tambahan yang digunakan untuk menyimpan data dan program. Biasanya secondary memory berukuran sangat besar dibandingkan dengan jenis memori lainnya. Secondary memory dapat berupa harddisk, solid state disk, floppy disk, optical drive (CD, DVD, dan BlueRay), magneto optical drive, magnetic tape dan lain-lain. Secondary memory dapat terletak di dalam komputer maupun diluar. Untuk hardisk, solid state disk, dan optical drive biasanya dihubingkan melalui port SATA, PATA, maupun SCSI. Sementara floppy disk memiliki konektor tersendiri. Magneto optical dan magnetic tape biasanya terletak diluar komputer dan dihubungkan melalui port USB, firewire, parallel, SCSI, dan lain-lain. Untuk lebih jelasnya, hubungan antara memori tersebut dapat dilihat pada diagram berikut ini.
Perangkat Input/Output Merupakan alat yang digunakan untuk memasukkan data ke dalam komputer. Jenis data yang dimasukkan berbeda-beda tergantung dari perangkat yang digunakan. Perangkat input misalnya keyboard dan mouse. Perangkat output misalnya monitor dan printer.
Port I/O Perangkat tersebut terhubung ke komputer melalui port I/O. Terdapat beberapa jenis Port I/O yang ada pada suatu Copyright © Digital Laboratory 5
komputer dimana setiap port I/O tersebut dikontrol oleh prosesor. Port parallel (LPT), merupakan port yang digunakan untuk menghubungkan peralatan yang menggunakan transmisi data paralel. Peralatan yang menggunakan port ini yaitu: printer, scanner, dan lain-lain. Port serial (Com), merupakan port yang digunakan untuk menghubungkan peralatan yang menggunakan transmisi data secara serial. Contoh peralatannya yaitu: mouse, modem, dan lain-lain. Port AT/PS2, biasanya digunakan sebagai port masukan untuk mouse dan keyboard. Port USB (Universal Serial Bus), merupakan port serial yang universal. Port ini bekerja dengan sistem transmisi data serial, tetapi dengan bentuk port yang universal. Pada saat ini banyak sekali peralatan yang menggunakan port USB ini. Contoh peralatan yang menggunakna port USB yaitu: Kamera digital, handphone, modem, printer, scanner, dll. Port VGA, merupakan port yang berhubungan langsung dengan monitor. Pada beberapa motherboard, sudah memiliki port ini, tetapi terdapat juga motherboard yang tidak menyertakan port ini, untuk itu harus ditambah dengan memasang VGA card. Port audio, merupakan port yang berhubungan dengan perangkat audio seperti mikrofon, speaker, dll. Selain port-port di atas, terdapat pula port-port lainnya seperti: firewire, DVI, TV-Out, e-SATA, dan lain sebagainya. Untuk mempermudah pengguna dalam memasang berbagai perangkat I/O ke port yang tepat, digunakan sebuah standar PC99 yang mengatur warna dari masing-masing port tersebut sehingga mudah dikenali.
Slot Ekspansi Pada motherboard terdapat beberapa jenis slot ekspansi. Slot ini fungsinya untuk meletakkan berbagai kartu ekspansi untuk memperluas fungsi komputer tersebut. Kartu ekspansi yang digunakan biasanya berupa kartu grafis, kartu suara, TV Tuner, LAN, modem, dan lain-lain. Saat ini slot ekspansi yang digunakan pada umumnya adalah keluarga PCI. Yang paling umum adalah PCI 32-bit. Slot ini biasanya berwarna putih. Hampir seluruh perlengkapan ekspansi menggunakan slot jenis ini. Ada 2 jenis umum slot ini, slot dengan tegangan 3.3V dan 5V. Untuk menentukannya cukup dilihat dari Copyright © Digital Laboratory
6
notch (tonjolan) pada slot ini. Selain itu juga terdapat slot PCI Express. Slot ini merupakan slot PCI yang diserialisasi. Slot ini dianggap lebih unggul dari standar PCI biasa. Terdapat beberapa variasi kecepatan slot ini, dari 1x, 4x, 8x, 16x dan 32x. Saat ini arsitektur PC banyak yang sudah menggunakan PCI Express sebagai bus utamanya. Periferal yang menggunakan slot ini biasanya VGA card (PCIe 16x), souncard, gigabit LAN, dan lain sebagainya. Ada variasi lain dari slot PCI, yaitu slot PCI-x. Slot ini umumnya digunakan pada workstation dan server berperforma tinggi. Periferal yang menggunakan slot ini antara lain adalah: Disk controller, network interface, dan lain-lain. Slot jenis ini jarang ditemui pada PC rumahan. Selain itu, juga terdapat slot AGP yang juga merupakan pengembangan slot PCI yang dikhususkan untuk kartu grafis. Namun slot AGP sudah jarang ditemui pada motherboard baru. Selain slot ekspansi diatas, ada beberapa slot yang sudah ditiggalakan dan tidak ditemui pada PC saat ini, antara lain: ISA, VESA, MCA, dan lain-lain.
Power Supply Agar komputer dapat bekerja, diperlukan asupan daya. Secara umum sebuah motherboard membutuhkan asupan daya DC 3.3V, 5V, 12V, dan ground. Namun, pada standar ATX juga terdapat asupan daya DC -5V dan -12V. Sebuah power supply biasanya memiiki beberapa konektor: Sebuah konektor daya motherboard 20/24 pin. Sebuah konektor daya tambahan 12V untuk prosesor 4 pin. Sebuah atau lebih konektor daya 12V untuk kartu grafis PCIe, 6 atau 8 pin. Beberapa konektor molex untuk daya harddisk, optical drive dan lain-lain. Empat pin, 12V-Gnd-Gnd-5V. Sebuah atau lebih konektor daya untuk floppy disk.
Faktor Bentuk Motherboard Faktor bentuk motherboard adalah standar ukuran suatu motherboard. Faktor bentuk motherboard menentukan jenis cassing yang dapat digunakan. Selain itu, semakin besar sebuah motherboard, biasanya semakin banyak kemampuan ekspansi yang Copyright © Digital Laboratory
7
dapat didukung. Bahkan pada motherboard dengan bentuk SSI MEB dapat menampung lebih dari 4 prosesor, 32 modul ram dan 7 kartu ekspansi. Faktor bentuk yang paling sering ditemui saat ini adalah ATX dan Micro-ATX. Ada beberapa faktor bentuk dari motherboard yang tersedia di pasaran: AT, sudah ditinggalkan Baby AT, sudah ditinggalkan ATX, Micro ATX, Extended ATX BTX Mini-, Nano-, dan Pico- ITX SSI SEB, EEB, MEB EBC, Tin Can, dan berbagai macam faktor bentuk industri lainnya. Selain itu, juga terdapat beberapa motherboard dengan ukuran khusus yang dibuat untuk casing tertentu atau sering disebut barebone.
III. Panduan Praktikum Memasang Power Supply Buka skrup yang ada pada panel samping Buka panel samping tersebut dari casing komputer. Pasang power supply pada casing komputer Pasang sekrup pada power supply tersebut sehingga menempel ke casing komputer.
Memasang Motherboard Perhatikan PIN 1 pada CPU dan pada soket Angkat load lever dan load plate. (LGA) Angkat load lever. (Socket) Buka slot retention pada motherboard. (Slot) Luruskan PIN1 pada CPU dengan bagian soketnya. (LGA dan Socket) Perhatikan notch pada slot dan pada CPU. (Slot) Pasang CPU ke soket/slot. (Perhatian! Untuk LGA dan socket tidak perlu ditekan, prosesor akan masuk sendiri ketempatnya bila sudah pas posisinya, slot perlu sedikit tekanan. Pemaksaan dapat menyebabkan kerusakan Copyright © Digital Laboratory
8
permanen pada CPU) Tutup Load Plate CPU dan amankan dengan menutup load lever dan sangkutkan ke bagian load lever retention tab. (LGA) Turunkan load lever ke posisi awal dan sangkutan. (Socket) Berikan sedikit thermalpaste ke bagian CPU dan ratakan. (LGA dan Socket) Pasang heatsink (LGA dan Socket) Hubungkan konektor kipas ke bagian motherboard Cari slot RAM pada motherboard Tentukan jenis RAM yang dipakai Periksa bagian notch pada RAM Luruskan bagian notch pada bagian bawah RAM dengan notch pada slot Tekan ke bawah kedua ujung RAM secara bersamaan sampai kedua pengaman disampingnya terkunci. (Tekan dengan kuat namun jangan dipaksakan karena modul RAM/slot dapat patah) Pastikan semua konektor pada RAM menempel Pasang motherboard pada casing komputer Pastikan konektor pada bagian belakang motherboard telah lurus dengan lubangnya. Pasang spacer pada casing bila diperlukan. Luruskan posisi lubang skrup pada motherboard dan pada casing/spacer. Pasang skrup pengencang ke seluruh tempat yang tersedia. (Perhatian! Dalam mengencangkan skrup tidak boleh terlalu kencang karena dapat menyebabkan motherboard pecah/patah) Memasang Drive Tentukan jenis drive yang akan dipasang, apakah berukuran 3,5 inch atau 5.25 inch. Biasanya hard disk dan floppy drive berukuran 3.5 inch. Sedangkan optical drive berukuran 5.25 inch. Masukkan drive tersebut ke tempat yang tersedia di casing computer. Amankan dengan memasang sekrup.
Memasang Kartu Ekspansi Copyright © Digital Laboratory
9
Tentukan jenis slot yang digunakan oleh perangkat kartu ekspansi, PCI, PCIe, atau AGP. Keluarkan penutup slot pada bagian belakang casing jika perlu. Masukkan kartu ekspansi ke slot yang sesuai sampai benar-benar terpasang. Amankan kartu tersebut dengan memasang sekrup.
Memasang Kabel Internal Pasang konektor power supply untuk motheboard Jika memiliki konektor power tambahan, pasang konektor tersebut Pasang konektor power ke hard disk, floppy drive, dan ke optical drive. Pasang kabel PATA/SATA ke motherboard dan hubungkan ke hard disk dan ke optical drive. Pasang kabel floppy drive ke motherboard, lalu pasangkan ke floppy drive tersebut.
Memasang komputer Setelah power supply, motherboard, drives, kartu adapter, dan kabel internal terpasang, selanjutnya casing penutup samping dapat ditutup dan disekrup. Pasang kabel monitor ke port VGA Pasang kabel keyboard dan mouse ke Slot PS/2 atau USB. Pasang kabel USB hub ke port USB. Pasang kabel power ke bagian power supply.
Copyright © Digital Laboratory
10
MODUL 2
INSTALASI OS I. TUJUAN PERCOBAAN 1. 2.
Mempelajari cara dalam melakukan Instalasi OS (windows) Mampu dan memahami membuat partisi dan melakukan format pada harddisk.
II. Panduan Percobaan Untuk melakukan instalasi Windows XP, ikuti langkah berikut: Part 1 persiapan 1. Back up semua informasi penting sebelum Anda melakukan instalasi Windows XP. (back up bisa dilakukan lewat CD, flashdisk, external hard disk) 2. Catat serial number, biasanya ada di tempat cd atau di dalam cd. Apa bila ada di dalam cd maka Anda harus memasukan cd windows tersebut ke komputer kemudian mencatatnya Part 2 booting dari cd instalasi 3. Nyalakan computer lalu masuk ke bios (pada pc biasanya dengan menekan del). Setelah masuk bios set pilihan bootingnya ke booting dari cd sebagai pilihan utama. Setelah di set kemudian pilih save and restart. Jangan lupa masukan cd instalasi windows xp 4. Setelah di restart, bila Anda melihat pesan "Press any key to boot from CD", tekan tombol apa saja untuk memulai komputer dari CD Windows XP. Part 3 format, partisi, dan instalasi 5. Pada Welcome to Setup screen, tekan ENTER untuk menginstall Windows XP.
Copyright © Digital Laboratory
11
6. Setelah membaca Microsoft Software License Terms, tekan F8.
7. Setup akan mencari apakah Windows sudah diinstal apa belum. Setelah itu anda akan melihat pilihan "repair” atau “install fresh copy". Screen ini hanya mucul apabila windows sudah diinstal. Copyright © Digital Laboratory
12
8. Untuk clean instal tekan ESC. Disini akan muncul daftar partisi yang ada pada hardisk anda
9. Jika ada lebih dari satu partisi, gunakan panah up atau down untuk memilih partisi mana yang akan diinstall setelah itu tekan Enter. Apabila sudaha ada windows yang terinstall maka akan muncul screen peringatan sebagai berikut Copyright © Digital Laboratory
13
10. Tekan C, dan akan diberikan pilihan penginstalan.
11. Perbedaan antara quick format dengan regular format adalah pada regular format. Semua file dihapus dan harddisk akan di scan apakah ada bad sector apa tidak. Pada quick format semua file dihapus, tapi hardisk tidak akan di scan apakah ada bad sector apa tidak. Pilih format ntfs maka akan muncul screen warning.
Copyright © Digital Laboratory
14
12. Tekan F untuk memformat hardisk
Copyright © Digital Laboratory
15
13. Setelah selesai di format maka setup akan mengcopy file secara otomatis
14. Setelah selesai, computer akan terestart dan memulai proses instalasi
Copyright © Digital Laboratory
16
Part 4 Setelah instalasi 1. Install driver yang belum terinstall, untuk melihat driver apa saja yang belum terinstall dapat dilihat di control panel system hardware tab Device manager 2. amankan computer anda dari virus dan malware(install antivirus, disable auto run, software restricted access)
Copyright © Digital Laboratory
17
MODUL 3
PENGANTAR ALGORITMA I.
TUJUAN PERCOBAAN 1. 2.
Mempelajari prinsip dasar Algoritma Mempelajari penggunaan flowchart dan pseudocode dalam pemrograman.
II. Dasar Teori Algoritma merupakan langkah-langkah untuk menyelesaikan suatu permasalahan, sedangkan pemrograman merupakan pengubahan algoritma kedalam bahasa pemrograman (coding). Algoritma merupakan suatu logika pemikiran manusia bagaimana caranya suatu proses akan dapat berjalan dengan langkah yang jelas. Algoritma adalah logika pemikiran, bukan merupakan bahasa pemrograman. Algoritma dapat direpresentasikan dengan beberapa cara, diantaranya yaitu flow chart dan sandi semu (pseudocode). Tahapan dalam pemrograman yaitu, pendefinisian, deskripsi masalah, lalu perancangan langkah-langkah untuk menyelesaikan permasalahan (algortima) dengan menggunakan flow chart atau sandi semu, lalu yang terakhir yaitu pengkodean (coding). Sebuah program merupakan sebuah algoritma yang ditulis ke dalam bahasa pemrograman. Proses pengubahan algoritma menjadi program disebut dengan pengkodean. Sifat dari pemrograman itu sendiri yaitu, banyak pemikiran, ketelitian berlogika, penjabaran masalah secara rinci, kejelian, keuletan, dan kesabaran. Sandi semu merupakan pilihan terbaik untuk menyatakan algoritma, karena sifatnya lebih terstruktur, rinci, jelas, dan mendekati bahasa pemrograman. Sebuah program yang efisien yaitu program yang mmebutuh kan memori yang sekecil-kecilnya, dengan waktu pelaksan yang secepat-cepatnya. Algoritma dapat didefinisikan lebih jelas sebagai langkah-langkah pemecahan suatu masalah atau pekerjaan, yang dinyatakan secara rinci, sistematis, dan jelas, sehingga bila dilaksanakan pada kondisi awal tertentu, akan berakhir dalam selang waktu terbatas dan menghasilkan keluaran seperti apa yang diharapkan. Karakteristik dari algoritma yaitu terstruktur, efisien, rinci, tidak bermakna ganda, dan independen. Copyright © Digital Laboratory
18
-
-
Terstruktur: Terdiri dari sejumlah langkah, blok, prosedur, dan fungsi. Satu pintu masuk dan satu pintu keluar. Aliran kendali mengikuti pola tertentu. Mudah dikelola dan dikembangkan. Efisien: Mengoptimalkan penggunaan memori dan prosesor. Rinci: Mudah dinyatakan dengan satu atau beberapa perintah bahasa pemrograman. Tidak menimbulkan keraguan makna. Independent: Tidak tergantung pada bahasa pemrograman tertentu.
Keuntungan membuat algoritma terlebih dahulu yaitu mempermudah pemrograman, pemrograman menjadi independen sehingga dapat diimplementasikan ke dalam beberapa bahasa pemrograman. Untuk menyelesaikan suatu masalah, dapat dilakukan dengan pembagian permasalahan menjadi sub-masalah yang lebih mudah dikerjakan. Lalu kemudian sub-masalah tersebut dibagi lagi menjadi sejumlah sub-masalah yang lebih kecil sampai dengan bagian yang mudah diselesaikan. Cara ini disebut dengan pemrograman modular atau top-down design. Flow Chart Flow chart atau diagram alir, merupakan sebuah diagram yang menggambarkan suatu algoritma atau suatu proses. Beberapa symbol yang sering digunakan pada pembuatan flow chart dapat dilihat pada gambar berikut ini: Symbol untuk menunjukkan data (input) atau hasil (output)
Aliran proses
Simbol untuk hasil berupa dokumentasi (dalam hard copy)
Symbol dari proses atau pernyataan program (statement program)
Copyright © Digital Laboratory
19
Symbol untuk pernyataan bersyarat (conditional statement) dimana keputusan berdasarkan pada apakah kondisi tersebut benar atau salah
Symbol dari proses atau pernyataan program (statement program)
Memulai dan mengakhiri suatu proses
Pseudocode Cara lain untuk merepresentasikan sebuah algoritma yaitu dengan menggunakan pseudocode. Pseudocode merupakan urutan baris algortima seperti kode pemrograman dan tidak memiliki sintaks yang baku. Pseudosode lebih umum digunakan oleh programmer, tetapi flowchart lebih mudah dimengerti. Pseudocode sangat mudah diimplementasikan ke dalam bahasa pemrograman jika dibandingkan dengan flowchart. Dalam menulis pseudocode, penulis bebas menulis dengan bahasanya sendiri asalkan mudah dimengerti oleh orang lain. Tetapi, disarankan untuk menggunakan keyword yang umum digunakan seperti if, then, else, while, do, for, dan lainlain. Beberapa action keyword yang sering digunakan yaitu: - input: read, obtain, get - output: print, display, show, write - compute: calculate, compute, determine - initialize: set, int - add one: increment, add one Contoh penggunaan dari keyword dapat dilihat seperti dibawah ini: - IF – THEN – ELSE IF hoursworked > normalmax THEN DISPLAY overtime message ELSE DISPLAY regular time message ENDIF - CASE CASE title_of Mr : PRINT “Mister” Copyright © Digital Laboratory
20
Mrs : PRINT “Missus” Miss : PRINT “Miss” Dr : PRINT “Doctor” OTHERS : Print “M.” ENDCASE - WHILE WHILE population < limit COMPUTE population_as_population + births – deaths ENDWHILE - FOR each months of the year DISPLAY number of days ENDFOR - REPEAT – UNTIL SET total to zero REPEAT READ temperature IF temperature > freezing THEN INCREMENT total ENDIF UNTIL temperature < zero PRINT total
Copyright © Digital Laboratory
21
MODUL 4 dan 5
PENGENALAN BAHASA C I.
TUJUAN PERCOBAAN 1. 2.
II.
Memahami penggunaan bahasa C sebagai bahasa pemrograman Mampu membuat program sederhana dengan menggunakan Bahasa C.
Dasar Teori
Bahasa C merupakan bahasa pemrograman tingkat tinggi yang memiliki struktur sebagai berikut: /* Struktur sebuah program C */ main() { statement; fungsiLain(); } // Komentar untuk dokumentasi fungsiLain() { statement; } Statement adalah suatu pernyataan yang akan diproses oleh compiler C sebagai suatu perintah untuk menjalankan logika tertentu.
II.1 Tipe Data Tipe data merupakan bagian program yang paling penting karena tipe data mempengaruhi setiap instruksi yang akan dilaksanakan oleh computer. Misalnya saja 5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya. Jika 5 dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe float maka akan menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi lebih efisien dan efektif.
Copyright © Digital Laboratory
22
Konstanta Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung. Konstanta nilainya selalu tetap. Konstanta harus didefinisikan terlebih dahulu di awal program. Konstanta dapat bernilai integer, pecahan, karakter dan string. Contoh konstanta : 50; 13; 3.14; 4.50005; ‘A’; ”Bahasa C”. Selain itu, bahasa C juga menyediakan beberapa karakter khusus yang disebut karakter escape, antara lain : \a : untuk bunyi bell (alert) \b : mundur satu spasi (backspace) \f : ganti halaman (form feed) \n : ganti baris baru (new line) \r : ke kolom pertama, baris yang sama (carriage return) \v : tabulasi vertical \0 : nilai kosong (null) \’ : karakter petik tunggal \” : karakter petik ganda \\ : karakter garis miring Variable Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut : a. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. Bahasa C bersifat casesensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara nim, NIM dan Nim dianggap berbeda. b. Tidak boleh mengandung spasi. c. Tidak boleh mengandung symbol-simbol khusus, kecuali garis Copyright © Digital Laboratory
23
bawah (underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, + , = , dsb d. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai. Contoh penamaan variabel yang benar: NIM, a, x, nama_mhs, f3098, f4, nilai, budi Contoh penamaan variable yang salah: %nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!
II.2 Deklarasi Deklarasi diperlukan bila kita akan menggunakan pengenal (identifier) dalam program. Identifier dapat berupa variable, konstanta dan fungsi. Deklarasi Variabel Bentuk umum pendeklarasian suatu variable adalah : nama_tipe nama_variabel; Contoh : int x; char y, huruf, nim[10]; float nilai; double beta; int array[5][4]; char *p;
// Deklarasi x bertipe integer // Deklarasi variable bertipe char // Deklarasi variable bertipe float // Deklarasi variable bertipe double // Deklarasi array bertipe integer // Deklarasi pointer p bertipe char
Deklarasi Konstanta Dalam bahasa C konstanta preprocessor #define. Contohnya : #define PHI 3.14 #define nim “0402030123” #define nama “Lab Digital FTUI”
dideklarasikan
menggunakan
Deklarasi Fungsi Fungsi merupakan bagian yang terpisah dari program dan dapat diaktifkan atau dipanggil di manapun di dalam program. Fungsi dalam bahasa C ada yang sudah disediakan sebagai fungsi pustaka seperti printf(), scanf(), getch() dan untuk menggunakannya tidak perlu dideklarasikan. Fungsi yang perlu dideklarasikan terlebih dahulu adalah fungsi yang dibuat oleh programmer. Bentuk umum deklarasi sebuah fungsi adalah : tipe_fungsi nama_fungsi(parameter_fungsi); Contohnya : float luas_lingkaran(int jari); Copyright © Digital Laboratory
24
void tampil(); int tambah(int x, int y);
II.3 Operator Operator Penugasan Operator Penugasan (Assignment operator) dalam bahasa C berupa tanda sama dengan (“=”). Contoh : nilai = 80; A = x * y; Artinya : variable “nilai” diisi dengan 80 dan variable “A” diisi dengan hasil perkalian antara x dan y.
Operator Aritmatika Bahasa C menyediakan lima operator aritmatika, yaitu : * : untuk perkalian / : untuk pembagian % : untuk sisa pembagian (modulus) + : untuk pertambahan : untuk pengurangan Catatan : operator % digunakan untuk mencari sisa pembagian antara dua bilangan. Operator Hubungan (Perbandingan) Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah operand (sebuah nilai atau variable. Operator hubungan dalam bahasa C : Table 1-11. The relational operators Operator Meaning Example Result: 1 (true) or 0 (false) < less than x
greater than x>y 1 if x is greater than y greater than 1 if x is greater than or equal to >= x >= y or equal to y == equal to x == y 1 if x is equal to y 1 if x is not equal to y. In all != not equal to x != y other cases, the expression yields 0.
Copyright © Digital Laboratory
25
Operator Logika Jika operator hubungan membandingkan hubungan antara dua buah operand, maka operator logika digunakan untuk membandingkan logika hasil dari operator-operator hubungan. Operator logika ada tiga macam, yaitu : && : Logika AND (DAN) || : Logika OR (ATAU) ! : Logika NOT (INGKARAN) Operator Bitwise Operator bitwise digunakan untuk memanipulasi bit-bit dari nilai data yang ada di memori. Operator bitwise dalam bahasa C : << : Pergeseran bit ke kiri >> : Pergeseran bit ke kanan & : Bitwise AND ^ : Bitwise XOR (exclusive OR) | : Bitwise OR ~ : Bitwise NOT
Copyright © Digital Laboratory
26
Operator Unary Operator Unary merupakan operator yang hanya membutuhkan satu operand saja.
II.4 INPUT DAN OUTPUT Memasukkan Data Dalam bahasa C proses memasukkan suatu data bisa menggunakan beberapa fungsi pustaka yang telah tersedia. Beberapa fungsi pustaka yang bisa digunakan adalah : scanf() Fungsi pustaka scanf() digunakan untuk menginput data berupa data numerik, karakter dan string secara terformat. Hal-hal yang perlu diperhatikan dalam pemakaian fungsi scanf() : Fungsi scanf() memakai penentu format Fungsi scanf() memberi pergantian baris secara otomatis Fungsi scanf() tidak memerlukan penentu lebar field Variabelnya harus menggunakan operator alamat & Kode penentu format : %c : Membaca sebuah karakter %s : Membaca sebuah string %i, %d : Membaca sebuah bilangan bulat (integer) %f, %e : Membaca sebuah bilangan pecahan (real) %o : membaca sebuah bilangan octal %x : Membaca sebuah bilangan heksadesimal %u : Membaca sebuah bilangan tak bertanda gets() Fungsi gets() digunakan untuk memasukkan data bertipe karakter dan tidak dapat digunakan untuk memasukkan data numerik. Harus diakhiri dengan penekanan tombol enter. Cursor secara otomatis akan pindah baris. Tidak memerlukan penentu format. getchar() Fungsi getchar() digunakan untuk membaca data yang bertipe karakter. Harus diakhiri dengan penekanan tombol enter. Karakter yang dimasukkan terlihat pada layar. Pergantian baris secara otomatis. getch() dan getche() Fungsi getch() dan getche() digunakan untuk membaca data karakter. Karakter yang dimasukkan tidak perlu diakhiri dengan penekanan tombol enter. Tidak memberikan efek pergantian baris secara otomatis. Jika menggunakan fungsi getch() karakter yang dimasukkan tidak akan ditampilkan pada layer sehingga sering Copyright © Digital Laboratory
27
digunakan untuk meminta inputan berupa password. Sedangkan pada getche() karakter yang dimasukkan akan ditampilkan pada layar. Menampilkan Data Menampilkan data ke layar monitor Menggunakan fungsi printf(), puts(), dan putchar(). Fungsi printf() digunakan untuk menampilkan semua jenis data (numerik dan karakter) Fungsi puts() digunakan untuk menampilkan data string dan secara otomatis akan diakhiri dengan perpindahan baris. Fungsi putchar() digunakan untuk menampilkan sebuah karakter. Mengatur tampilan bilangan pecahan (float). Bentuk umum : printf(“%m.nf”, argument); m : menyatakan panjang range n : menyatakan jumlah digit di belakang koma. argument : nilai atau variable yang akan ditampilkan. Contoh : printf(“%5.2f”, nilai); artinya variable nilai akan ditampilkan sebanyak 5 digit dengan 2 digit di belakang koma.
II.5 PENYELEKSIAN KONDISI STRUKTUR KONDISI “IF….” Struktur if dibentuk dari pernyataan if dan sering digunakan untuk menyeleksi suatu kondisi tunggal. Bila proses yang diseleksi terpenuhi atau bernilai benar, maka pernyataan yang ada di dalam blok if akan diproses dan dikerjakan. Bentuk umum struktur kondisi if adalah : if(kondisi) pernyataan; STRUKTUR KONDISI “IF......ELSE….” Dalam struktur kondisi if.....else minimal terdapat dua pernyataan. Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah maka pernyataan yang kedua yang dilaksanakan. Bentuk umumnya adalah sebagai berikut : if(kondisi) pernyataan-1 else pernyataan-2
Copyright © Digital Laboratory
28
STRUKTUR KONDISI “SWITCH....CASE....DEFAULT…” Struktur kondisi switch....case....default digunakan untuk penyeleksian kondisi dengan kemungkinan yang terjadi cukup banyak. Struktur ini akan melaksanakan salah satu dari beberapa pernyataan ‘case’ tergantung nilai kondisi yang ada di dalam switch. Selanjutnya proses diteruskan hingga ditemukan pernyataan ‘break’. Jika tidak ada nilai pada case yang sesuai dengan nilai kondisi, maka proses akan diteruskan kepada pernyataan yang ada di bawah ‘default’. Bentuk umum dari struktur kondisi ini adalah : switch(kondisi) { case 1 : pernyataan-1; break; case 2 : pernyataan-2; break; ..... ..... case n : pernyataan-n; break; default : pernyataan-m }
II.6 PERULANGAN STRUKTUR PERULANGAN “ WHILE” Perulangan WHILE banyak digunakan pada program yang terstruktur. Perulangan ini banyak digunakan bila jumlah perulangannya belum diketahui. Proses perulangan akan terus berlanjut selama kondisinya bernilai benar (true) dan akan berhenti bila kondisinya bernilai salah. while(condition) { … } STRUKTUR PERULANGAN “DO.....WHILE…” Pada dasarnya struktur perulangan do....while sama saja dengan struktur while, hanya saja pada proses perulangan dengan while, seleksi berada di while yang letaknya di atas sementara pada perulangan do....while, seleksi while berada di bawah batas perulangan. Jadi dengan menggunakan struktur do…while sekurang-kurangnya akan terjadi satu kali perulangan. do { ... } while (condition) STRUKTUR PERULANGAN “FOR” Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya. Dari segi Copyright © Digital Laboratory
29
penulisannya, struktur perulangan for tampaknya lebih efisien karena susunannya lebih simpel dan sederhana. Bentuk umum perulangan for adalah sebagai berikut : for (inisialisasi; syarat; penambahan) pernyataan; Keterangan : Inisialisasi : pernyataan untuk menyatakan keadaan awal dari variabel kontrol. syarat : ekspresi relasi yang menyatakan kondisi untuk keluar dari perulangan. penambahan : pengatur perubahan nilai variabel kontrol. Contoh Program: #include <stdio.h> #define QUIT 3 int get_menu_choice( void ); void print_report( void ); main() { int choice = 0; while (choice != QUIT) { choice = get_menu_choice(); if (choice == 1) printf("\nBeeping the computer\a\a\a" ); else { if (choice == 2) print_report(); } } printf("You chose to quit!\n"); return 0; } int get_menu_choice( void ) { int selection = 0; do { printf( "\n" ); Copyright © Digital Laboratory
30
printf( printf( printf( printf( printf(
"\n1 - Beep Computer" ); "\n2 - Display Report"); "\n3 - Quit"); "\n" ); "\nEnter a selection:" );
scanf( "%d", &selection ); } while ( selection < 1 || selection > 3 ); return selection; } void print_report( void ) { printf( "\nSAMPLE REPORT" ); printf( "\n\nSequence\tMeaning" ); printf( "\n=========\t=======" ); printf( "\n\\a\t\tbell (alert)" ); printf( "\n\\b\t\tbackspace" ); printf( "\n...\t\t..."); }
Copyright © Digital Laboratory
31