Semester 1 Oleh : Acep Taryana, SSi Arie! "atchul #uda, SSi $urusan Teknik %n!ormatika (S1) %nstitut Agama %slam &egeri Sunan 'unung ()ati *andung Tahun A)aran +,,, - +,,1 Pengantar : Bahasa program merupakan suatu wahana untuk menuangkan pikiran manusia yang dapat dimengerti oleh mesin komputer sehingga bernilai guna. Suatu bahasa program akan terikat aturan dari paradigma bahasa. Ada berbagai macam paradigma bahasa : Prosedural, Fungsional, Deklaratif, b!ect riented, "onkuren. Paradigma yang dia!arkan dalam #atakuliah Algoritma dan Pemrograman ini adalah paradigma prosedural. Perlu diperhatikan perbedaan antara bela!ar bahasa program dengan bela!ar memprogram$$$ Bela!ar bahasa program hanya bela!ar tentang sintak %aturan& dari bahasa sedangkan bela!ar memprogram akan tercakup beberapa hal yang didalamnya terkandung tentang bela!ar bahasa program itu sendiri. 'ang harus diperhatikan oleh mahasiswa yang sedang bela!ar memprogram, yaitu : Simulasi , sensibilitas terhadap masalah dan kemungkinan solusi. "egiatan dilakukan di kelas, melalui permainan. (ontoh : #engurutkan tinggi badan mahasiswa dari tinggi ke pendek atau sebaliknya. Permainan dapat dilakukan secara manual maupun dengan komputer. Analisis masalah secara lebih formal dan membuat spesifikasi dan algoritma dalam notasi yang ditetapkan. #ahasiswa harus menuliskan solusi algoritmiknya dalam notasi standar di kelas. Penulisan notasi algoritmik bertu!uan untuk menyeragamkan pemahaman tentang algoritma program yang terbebas dari sintak %aturan& penulisan bahasa program . Menulis program, yaitu menter!emahkan notasi algoritmik ke dalam sintak bahasa program. (e-ugging dan mengu)i co-a program. )al ini bertu!uan untuk mendapatkan program yang benar. Program dikatakan benar !ika terbebas dari salah lo!ik dan sintak bahasa. Secara ideal mahasiswa hanya diberi kesempatan untuk me*run program sebanyak + kali : pertama untuk membersihkan program dari kesalahan sintak dan kedua untuk mendapatkan program benar. Pada tahap ini diharapkan tidak ter!adi kesalahan lo!ik !ika analisa benar. Mengamati peristi.a eksekusi, perlu dilakukan untuk meningkatkan kepercayaan bahwa !ika analisa benar maka sisa peker!aan men!adi mudah. Pada pemrograman prosedural, aspek ini penting untuk memahami fenomena eksekusi dan perubahaan nilai suatu struktur data. Mem-aca program : orang akan dapat menulis dengan baik kalau sering membaca. )al ini !uga berlaku dalam memprogram. "egiatan yang dapat dilakukan di kelas adalah dengan saling tukar menukar teks algoritma, dan saling mengkritik algoritma teman. #ahasiswa harus berlatih sendiri pada kegiatan bela!ar bersama. Mem-uktikan ke-enaran program secara !ormal , satu*satunya hal yang men!amin kebenaran, tetapi kontradiktif dan sulit diterapkan dalam kehidupan sehari*hari. Program yang hanya lima baris pembuktiannya bisa sehalaman, sehingga seringkali tidak pernah diterapkan dalam aplikasi nyata. Aktifitas ini dicakup dalam matakuliah Analisis Algoritma. Petun!uk Praktikum : Dari pengantar dapat disimpulkan bahwa peker!aan memprogram tidak ,-- . di depan komputer %artinya mahasiswa tidak langsung memecahkan permasalahan di komputer& melainkan ada fase sebelum di depan komputer yaitu fase /Analisa0. 1ntuk program yang kecil anda bisa langsung memecahkan di depan komputer namun bagaimana untuk program yang besar 2 Secara kon3ensional, isi fase /Analisa0 berupa oret*oretan di kertas yang men!elaskan tentang solusi permasalahan. 1ntuk itu maka ditetapkan langkah*langkahnya, Fase 4 % analisa sederhana &: )asil proses dari fase ini adalah oretan 5otasi Algoritmik yang siap diter!emahkan ke dalam bahasa program pascal. Fase ini dilakukan sebelum masuk ke laboratorium. Di 6ab, mahasiswa hanya diperkenankan membawa oretan 5otasi Algoritmik untuk masalah yang bersangkutan ditambah (atatan kuliah dan Buku pendukung lainnya% artinya mahasiswa tidak diperkenankan membawa lembaran source code yang telah tercetak untuk masalah yang bersangkutan& Fase 44 % pembuatan source code& : #eliputi penter!emahan notasi algoritmik, debugging dan run, dan testing program. Dilakukan di dalam 6ab selama waktu yang ditentukan untuk setiap praktikum. )asil dari fase ini adalah Source (ode yang benar dan "asus u!i. Fase 444 %dokumentasi &: merupakan rekaman hasil kegiatan dari setiap fase di atas. #ahasiswa harus membuatkan laporan yang terdiri dari : /Analisa #asalah yang dilengkapi dengan 5otasi Algoritmik0, /Source (ode0, /"asus 1!i0, dan /"esimpulan0 !ika perlu. Source (ode dan kasus 1!i harus merupakan hasil Print*ut "omputer di 6ab, sedangkan yang lainnya bebas %boleh dengan tulisan tangan&. Fase ini dilakukan di luar 6ab. Fase 47 %pengumpulan laporan &: 6aporan diserahkan ke Assistan 6ab untuk Pascal dalam waktu yang telah ditentukan. Pengumpulan laporan di luar waktu yang telah ditentukan tidak akan diterima. (ontoh : )arus dibuatkan program pascal untuk memilah suatu bilangan bulat %integer& yang terdiri dari bilangan negatif, nol dan positif. Bilangan diinputkan dari keyboard. )asil pemilahan harus ditampilkan ke layar. % Analisa Masalah #emilah bilangan men!adi 8 bagian, yaitu wilayah negatif , nol dan positif. 9ilayah negatif akan dicirikan oleh suatu aturan !ika bilangan yang diinputkan dari keyboard adalah lebih kecil dari nol % dalam bahasa #atematik /bilangan : - / &. 9ilayah positif adalah !ika bilangan lebih besar dari nol Modul Praktikum / Alpro-1 / AT, AFH/ 31-05-14 Halaman 1 dari 4 atau /bilangan ; - / sedangkan wilayah nol adalah bilangan samadengan nol % yaitu bilangan yang bukan bagian dari /bilangan ; - dan bilangan : -0&. <ika perlu gambarlah garis bilangannya$$$ 11 Spesi!ikasi : 4nput : suatu nilai bertipe integer yang ditampung dalam 3ariabel /Bil0 Proses : memilah klasifikasi bilangan. utput : /5egatif / !ika Bil : - /Positif0 !ika Bil ; - /5ol0 !ika Bil = - 1+ &otasi Algoritmik : Program PilahBilangan > dibaca Bil%4nteger&, bilangan bulat secara sembarang dari keyboard ? > harus dituliskan klasifikasi Bil : apakah negatif, positif atau nol ? "amus Bil : 4nteger Algoritma @ Proses 4nput %Bil& 4f Bil : - Ahen utput%B Bilangan 5egatifC& Dlse if Bil ; - Ahen utput%B Bilangan PositifC& Dlse utput%B Bilangan 5olC& Dndif Dndif + Source /ode Program PilahBilanganE { Name of File : c:\pilah.pas } { Create by : Pulan bin Wulan } { Date : 12 !ustus 2""" } { Description : } { #ibaca $il%&nte!er'( bilan!an bulat secara sembaran! #ari )eyboar# } { harus #itulis)an )lasifi)asi $il : apa)ah ne!atif( positif atau nol } uses crt* {+amus} ,ar $il : &nte!er* $e!in {l!oritma - Proses} {.....&nput %$il'.... } /rite%01asu)an bilan!an : 0'* rea#ln%$il'* &f $il 2 " 3hen {.....4utput%0 $ilan!an Ne!atif0'....} /rite%0$ilan!an itu a#alah bilan!an Ne!atif0' 5lse if $il 6 " 3hen {......4utput%0 $ilan!an Positif0'.....} /rite%0$ilan!an itu a#alah bilan!an Positif0' 5lse { .... 4utput%0 $ilan!an Nol0'.... } /rite%0$ilan!an itu a#alah bilan!an Nol0'* rea#ln { untu) menahan la7u proses beri)utnya } en#. 0 1asus 2)i
)arus diu!ikan kasus*kasus yang dapat mewakili domain permasalahan. Pada kasus ini domain permasalahannya adalah bilangan 4nteger. Berarti harus diinputkan bilangan*bilangan yang termasuk ke dalam kriteria 4nteger. Dalam spesifikasi disebutkan diinputkan bilangan 4nteger%artinya program tidak akan berfungsi dengan benar !ika dimasukan nilai selain 4nteger&. "asus u!i bilangan yang diinputkan : )arus dicobakan minimal satu bilangan untuk wilayah 5egatif )arus dicobakan minimal satu bilangan untuk wilayah Positif )arus dicobakan satu bilangan - untuk wilayah 5etral )asil program : 1asu)an bilan!an : .2""" $ilan!an itu a#alah bilan!an Ne!atif 1asu)an bilan!an : 8""" $ilan!an itu a#alah bilan!an Positif 1asu)an bilan!an : " $ilan!an itu a#alah bilan!an Nol #emunculkan kasus u!i merupakan usaha untuk mendeteksi program dari kesalahan lo!ik yang tidak sesuai dengan spesifikasi. Pendeteksian kebenaran program didasarkan atas kecocokan kasus u!i dengan domain permasalahan yang ada dalam spesifikasi. (ontoh : <ika program di atas di !alankan, kemudian user memasukan nilai F.G % dibaca empat koma delapan, merupakan bilangan real&. "omputer akan memberikan warning kesalahan dari input data user karena tidak cocok. Pada kasus ini program tidak salah, yang salah adalah user : #engapa user memasukan bilangan Heal 2 Padahal spesifikasi program mengharapkan masukan bilangan 4nteger. esimpula! " Program aka! disebut be!ar #ika #ala!!$a program sesuai de!ga! spesi%ikasi& Format penulisan laporan bebas, yang penting isinya meliputi hal*hal yang telah disebutkan di atas. "$ Modul Praktikum / Alpro-1 / AT, AFH/ 31-05-14 Halaman 2 dari 4 Praktikum : 4 Aopik : Assignment, %nput dan Output Aanggal : 9aktu : Soal ,. %#erupakan soal 9arming 1p Pemrograman Pascal, !ika anda benar membuatkan program ini maka kepercayaan diri anda akan muncul, selamat mencoba$&. Buatlah program untuk menuliskan kalimat /Assalammualikum wH. 9B0 ke layar. Soal +. Buatlah program untuk mendeklarasikan sebuah 3ariabel bertipe integer dan isilah 3ariabel tersebut dengan cara assignment kemudian mencetak nilai 3ariabel tersebut. (obalah assignment 3ariabel tersebut dengan bilangan real, apa yang ter!adi, amatilah $$$ Soal 8, SoalF, SoalI. 4dem no +, dengan tipe data lainnya %real, karakter, boolean&. (obalah untuk mengisi 3ariabel dengan nilai yang berbeda dengan tipe data 3ariabel tersebut $$$ Soal J. Dibaca bilangan yang menyatakan tinggi badan seseorang dalam centimeter. 5ilai tinggi badan dimungkinkan dalam pecahan %,--,F E ,J-,JK E ,+-, FI&. Buatlah program yang tepat untuk mendeklarasikan 3ariabel, mengisi 3ariabel dan mencetak isi 3ariabel sesuai permasalahan tersebut. Praktikum : 44 Aopik : 1onstanta 3 1alkulasi, Operator 3 4kspresi Aanggal : 9aktu : Soal ,. Buatlah program yang mendeklarasikan suatu bilangan bertipe real, mengisi bilangan bertipe real tersebut dari keyboard, lakukan operasi tambah L kurang L bagi L kali* kurangdari* lebihdari. Aampilkan hasil dari setiap operasi ke layar. Soal +. Program untuk menghitung luas lingkaran. 6uas lingkaran didefinisikan sbb : 6= pi M r M r, dimana pi adalah konstanta yang bernilai 8,,F,I sedangkan r adalah !ari*!ari lingkaran. Soal 8. 4dem dengan soal no +. #isal 6=JI.IJKG maka penulisan luas lingkaran di layar adalah sbb : JI.IK % lebar tulisan adalah N digit dengan + digit di belakang koma& Soal F. Bool, dan Bool+ adalah 3ariabel yang masing*masing berisi nilai AH1D dan FA6SD. Buatlah program untuk melakukan operasi A5D, H, OH, 5A terhadap 3ariabel tersebut. Soal I. Diketahui nilai 3ariabel n= G %desimal&. Buatlah program untuk menggeser bit bilangan G dalam desimal sebanyak + ke kiri dan 8 ke kanan.. Praktikum : 444 Aopik : 1ondisional Aanggal : 9aktu : Soal ,. Program yang membaca nilai integer dan menuliskan nilainya !ika positif. Soal +. Program yang membaca nilai integer dan menuliskan B5ilai a positifC !ika a ;= - dan B5ilai a negatifC !ika a : -. Soal 8. Program yang membaca nilai integer dan menuliskan B5ilai a positifC !ika a ; - , B5ilai a negatif B !ika a : -, dan B5ilai 5ol B !ika a=-. Soal F. Dibaca tiga buah harga a, b dan c, harus dituliskan secara terurut mulai dari yang terkecil sampai dengan yang terbesar. "etiga bilangan yang dibaca selalu berlainan harganya. Soal I. 4dem no F. Bagaimana !ika ketiga bilangan yang dibaca adalah sama 2 Soal J. Dibaca suatu nilai bertipe integer. <ika dimasukan harga , maka tulis di layar BSAA1C <ika dimasukan harga + maka tulis di layar BD1AC <ika dimasukan harga 8 maka tulis di layar BA4PAC QQQQQ <ika dimasukan harga N maka tulis di layar BSD#B46A5C <ika dimasukan harga - maka tulis di layar B56C <ika dimasukan harga selain - s@d N maka tulis di layar BB46A5PA5 SD6A45 - s@d NC Soal K. Buatlah program untuk menentukan bonus pegawai, berdasarkan ketentuan yang diberikan oleh bagian personalia dan keuangan sebagai berikut : Pegawai perusahaan digolongkan men!adi dua golongan, yaitu staf dan non staf. Staf akan mendapatkan bonus sebesar , !uta rupiah dengan syarat bahwa ia telah beker!a paling tidak I tahun dan umurnya sudah mencapai I- tahunE staf yang beker!a kurang dari I tahun dan berapapun umurnya, hanya mendapat bonus sebesar Hp. I--.---. Pegawai non staf yang telah beker!a lebih dari I tahun akan mendapat bonus sebesar Hp. F--.--- !ika berumur lebih dari I- tahun sedangkan pegawai non staf yang berumur kurang dari I- tahun hanya mendapat bonus Hp. +I-.---. Pegawai staf yang umurnya kurang dari I- tahun akan mendapat bonus Hp. 8--.--- Praktikum : 44 Modul Praktikum / Alpro-1 / AT, AFH/ 31-05-14 Halaman 3 dari 4 Aopik : Pengulangan (5epeat-2ntil, 6hile, "or) Aanggal : 9aktu : Soal ,. Program untuk mencetak bilangan bulat dari , s@d 5 menggunakan struktur pengulangan Hepeat*1ntil, 9hile dan For. 5ilai 5 diinputkan dari keyboard. Soal +. Program untuk mencetak bilangan bulat dari 5 s@d , menggunakan struktur pengulangan Hepeat*1ntil, 9hile dan For. 5ilai 5 diinputkan dari keyboard. Soal 8. Program untuk mencetak bilangan bulat sbb: , 8 I K N ,, ,8 ,I menggunakan struktur pengulangan Hepeat*1ntil, 9hile dan For. Soal F. Program untuk mencetak bilangan bulat sbb: ,I ,8 ,, N K I 8 , menggunakan struktur pengulangan Hepeat*1ntil, 9hile dan For. Soal I. Program untuk memasukan bilangan yang lebih besar dari nol. Program akan terus menerus minta inputan !ika nilai yang dimasukan lebih kecil atau samadengan nol. Modul Praktikum / Alpro-1 / AT, AFH/ 31-05-14 Halaman 4 dari 4
Pendekatan sederhana untuk komunikasi profesional: Panduan praktis untuk komunikasi profesional dan strategi komunikasi bisnis tertulis dan interpersonal terbaik