MODUL: ALGORITMA & PEMROGRAMAN I
NAMA MHS
: ........................
NPM
: ........................
PROGRAM STUDI : ........................
DOSEN PENGAMPU: Rita Wiryasaputra, ST., M. Cs.
FAKULTAS ILMU KOMPUTER UNIV. INDO GLOBAL MANDIRI PALEMBANG
1
A. ALGORITMA Sebelum melangkah dalam pembuatan program dengan bahasa pemrograman PASCAL, maka terlebih dahulu harus dimengerti beberapa hal yang meliputi: Identifikasi masalah (input,proses,output) Algoritma Implementasi dengan bahasa pemrograman Definisi algoritma adalah urutan langkah dari awal hingga akhir disusun secara sistematis dan bersifat logis untuk menyelesaikan suatu masalah. Asal kata: Penulis buku Arab Al-Khowarizmi (dibaca algorism) Kitab Al-jabar wal-muqabala (buku pemugaran pengurangan)
dan
Belajar memprogram tidaklah sama dengan belajar bahasa pemrograman. Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi yang mudah dipahami. Sedangkan belajar bahasa pemrograman berarti belajar memakai suatu bahasa tertentu, bagaimana aturan tata bahasanya, instruksi-instruksi yang digunakan, tata cara pengoperasian compiler-nya dan sebagainya. Tidak ada notasi baku dalam penulisan teks algoritma (notasi algoritmik) sebagaimana pada notasi bahasa pemrograman. Namun, agar notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman, sebaiknya notasi algoritmik tersebut berkoresponden dengan notasi bahasa pemrograman secara umum.
Kelompok Assignment Input output
Algoritmik Read write
Pascal := Read/readln Write/writeln
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
C = Scanf Printf
C++ = Cin Cout
2
Bahasa pemrograman Pascal merupakan bahasa pemrograman berbasis teks. Penulisan programnya dan proses eksekusinya dilakukan dari atas ke bawah sehingga disebut pemrograman Linear programming. Bahasa pemrograman Pascal juga termasuk bahasa pemrograman Prosedural, dimana program dibedakan antara data (dalam memori) dengan instruksi. Program terdiri dari runtunan instruksi yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya kondisional. Data dalam memori dimanipulasi oleh instruksi secara beruntun. Algoritma disajikan dalam 2 bentuk : Tulisan ( Pseudocode, English structure) Gambar (Structure chart, HIPO, Flowchart, Nassi-Scheiderman chart) Pada dasarnya struktur algoritma meliputi: 1. Runtunan/sequence 2. Pemilihan/selection (If dan Case) 3. Pengulangan/repetition (For, Repeat dan While)
Teks algoritmik meliputi judul/kepala algoritma, deklarasi, deskripsi algoritma. Ciri-ciri algoritma : 1. input-terdapat nol masukkan atau lebih yang diberikan secara eksternal 2. output-sedikitnya terdapat 1 keluaran yang dihasilkan 3. definite-harus secara sempurna menyatakan apa yang dilakukan 4. efective-setiap instruksi harus dapat dilakukan secara manual dalam jumlah waktu yang terhingga 5. terminate-harus berhenti setelah sejumlah terbatas operasi
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
3
B. PASCAL Pascal merupakan salah satu dari beberapa Bahasa Pemrograman Tingkat Tinggi (High Level Language) yang terstruktur (tidak ada loncatan/berurut, adanya blok yang mempunyai batas yang jelas) dirancang oleh Professor Niklaus Wirth. Nama Pascal terambil dari ahli matematika dan philosophi Perancis (Blaise Pascal). Aplikasi Pascal biasa digunakan untuk menyelesaikan persoalanpersoalan Scientific/Matematika yang memerlukan ketelitian perhitungan yang akurat, database, game, bisnis, teknik. Praktikum ini menggunakan compiler Turbo Pascal 7.0 yang dikeluarkan oleh Borland International. 1.
MEMULAI TURBO PASCAL 7.0 Under Windows Agar anda dapat menjalankan Turbo Pascal 7.0 under Windows, maka anda harus memiliki file yang bernama TPX.EXE dan RTM.EXE. Kedua file ini harus disatukan dalam satu direktori. Cara menjalankan Turbo Pascal melalui Windows Explorer : 1. Klik START 2. Klik PROGRAM 3. Pilih direktori Turbo Pascal 7.0 4. Pilih direktori BIN lalu Double Klik 5. Carilah File bernama Tpx dengan type Application size 464 KB Directori Turbo Pascal yang ada pada komputer berbeda-beda, tapi pada umumnya seperti berikut :C:\Tp7\Bin\TPX Akan tampil jendela EDITOR (JENDELA KERJA UTAMA) sistem Turbo Pascal versi 7.0 Terdapat 10 menu pilihan yang berada pada JENDELA KERJA UTAMA paling atas , yaitu : File , Edit, Search, Run, Compile, Debug, Tools, Options, Window, Help 2.
SUSUNAN PROGRAM PASCAL Sebelum mempelajari suatu bahasa pemrograman, terlebih dahulu harus dipahami aturan-aturan yang berlaku pada suatu bahasa pemrograman tersebut. Aturan-aturan dalam suatu bahasa pemrograman
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
4
biasanya dituangkan ke dalam Struktur Program yang dapat dilihat pada gambar 1. Deklarasi merupakan bagian untuk mendefinisikan semua nama yang digunakan dalam algoritma. Dalam sebuah program, Procedure boleh lebih dari satu, demikian pula dengan function. Variabel diperlukan untuk menampung nilai tertentu pada memori komputer, dimana nilai tersebut dapat berubah dalam proses. Constanta diperlukan untuk menampung nilai yang tetap pada memori komputer. Dalam memprogram diperlukan suatu komentar. Penjelasan komentar dapat berupa tujuan/fungsi program, keterangan saat program dibuat/direvisi, keterangan lain tentang kegunaan sejumlah pernyataan dalam program. Sekalipun pemrogram memahami tentang apa yang ditulis saat ini tanpa menyertakan komentar, di suatu saat nanti pemrogram dapat lupa terhadap perintah yang telah ditulisnya. 3.
TIPE DATA Dalam Pascal, semua peubah(variabel) yang akan dipakai harus sudah ditentukan tipe datanya, setelah itu tentukan batasan nilai peubah dan jenis operasi yang bisa dilaksanakan atas peubah tersebut. Pemilihan tipe data harus memperhatikan faktor penghematan memori. Secara lengkap, tipe data dalam Turbo Pascal 7.0 dapat digambarkan pada gambar 2. 4.
CARA MENJALANKAN PROGRAM 1. Tekan tombol F10 2. Pilihlah menu RUN kemudian Enter 3. Maka akan keluar sejumlah sub menu RUN 4. Pilihlah RUN utk menjalankan program 5. Perintah diatas dapat disingkat dengan menekan tombol CTRL+F9
5.
CARA MENYIMPAN PROGRAM 1. Tekan tombol F10 2. Pilihlah menu FILE kemudian Enter 3. Pilihlah SAVE atau SAVE AS kemudian Enter 4. Pada Kotak dialog SAVE AS ketiklah nama file anda, kemudian tekan Enter. 5. Perintah diatas dapat disingkat dengan menekan tombol F2
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
5
Header
Program JUDUL_PROGRAM; { *** nama program *** } Uses . . . . . . Label . . . . . . Const . . . . . . Type . . . . . . Var . . . . . . .
Blok
{ *** deklarasi piranti *** } { *** deklarasi label *** } { *** deklarasi konstanta *** } { *** deklarasi tipe data *** } { *** deklarasi perubah *** }
Procedure nama_prosedur_SATU; {*** prosedur *** } Procedure nama_prosedur_DUA; { *** prosedur *** } Function nama_fungsi_TAMBAH; { *** fungsi *** } Begin { *** awal program *** } <statemen- statemen ATAU perintah dari program> End. { *** akhir dari program utama *** }
Gambar 1. Struktur Program PASCAL 6.
CARA MEMANGGIL PROGRAM 1. Tekan tombol F10 2. Pilihlah menu FILE kemudian Enter 3. Pilihlah OPEN 4. Pada Kotak dialog NAME ketiklah nama file yang akan dipanggil, kemudian tekan Enter. 5. Perintah diatas dapat digantikan dengan menekan tombol F3
7.
CARA MENUTUP PROGRAM 1. Tekan tombol ALT+F3 2. Jika dilayar terdapat beberapa program yang dibuka maka program yang sedang aktif dilayar akan ditutup. 3. Tekan lagi tombol ALT+F3 maka program sebelumnya akan ditutup, dan seterusnya.
8.
CARA MENCETAK 1. Tekan tombol F10 2. Pilihlah menu FILE kemudian Enter 3. Pilihlah PRINT kemudian Enter
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
6
Tipe data
Tipe sederhana
Tipe string
Tipe terstruktur
Tipe pointer
Array (larik)
Tipe Real
Record(rekaman) Set(himpunan) File (berkas)
Tipe Ordinal Integer ShorInt LongInt Boolean Char Byte Word Subjangkauan (Subrange) Terbilang (Enumerated)
Gambar 2. Tipe Data 9. 1. 2. 3. 4. 5.
KELUAR DARI TURBO PASCAL Jika pada layar masih ada program, simpanlah sebelum keluar dari lembar kerja. Tekan tombol F10 Pilihlah menu FILE kemudian Enter Pilihlah EXIT kemudian Enter Perintah diatas dapat diganti dengan menekan tombol ALT+X
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
7
Praktikum 1 Pengenalan Turbo Pascal Tujuan: Mempelajari sistem operasi DOS dan Windows Mempelajari cara pemakaian (set-up) bahasa pemrograman Turbo Pascal Mempelajari cara menulis program pada editor Turbo Pascal Mempelajari kesalahan yang telah dibuat dan mengoreksinya Mempelajari cara mengedit program Turbo Pascal Mempelajari cara menjalankan (eksekusi) Turbo Pascal Mempelajari pemakaian fungsi clrscr Mempelajari posisi kursor Mempelajari format output di layar Cara Kerja: 1. Salinlah program I.1 untuk mencetak Saya mahasiswa Teknik Informatika UNIVERSITAS IGM kemudian jalankan 2. Simpan program I.1 dengan mengaktifkan menu file lalu pilih save (F2) dan tuliskan nama file tersebut. 3. Salinlah program I.2 dengan mengaktifkan menu File lalu pilih new, kemudian jalankan (CTRL+F9) 4. Simpan program I.2 dengan mengaktifkan menu file lalu pilih save (F2) dan tuliskan nama file tersebut
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
8
Program I.1 {Program Pertamaku} Uses crt; Begin Clrscr; Write(„ Saya Mahasiswa „); Write(„ Teknik Informatika „) Write(„ UNIVERSITAS IGM ); End.
Program I.2 {Program Pertamaku} Uses crt; Begin Clrscr; Write(„ Saya Mahasiswa „); Writeln(„ Teknik Informatika „) Write(„ UNIVERSITAS IGM ); Readln; End.
Praktikum 2 Statement Input/Output Tujuan: Mempelajari cara menempatkan data dlm memori (variabel,konstanta) Mempelajari tipe integer dan string Mempelajari cara menuliskan output ke layar Mempelajari cara membaca data (input) dari keyboard Contoh 2.1 : Tulislah sebuah program yang dapat membaca bilangan dari keyboard, lalu menuliskan kembali bilangan tersebut ke layar monitor. Masukan : bilangan Keluaran : bilangan yang dimasukkan.
Program Bilangan Masukkan bilangan = ? Bilangan yang dimasukkan tersebut adalah bilangan ?
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
9
Program 2.1 {Program Keduaku} Uses crt; Var Nilai : integer; Begin Clrscr; Writeln(„ Program Bilangan „); Write(„ Masukkan bilangan = „); Readln(nilai); Write(„ Bilangan yang dimasukkan tersebut adalah bilangan „, nilai); Readln; End.
Soal – soal Latihan 1.
:
Tulislah sebuah program yang dapat menghitung luas bujursangkar. Adapun rumus luas=sisi * sisi. Telah diketahui bahwa sisi = 5. Masukan : tidak ada Keluaran : hasil luas bujursangkar
Program Luas Bujur Sangkar Luas Bujursangkar yang dihitung adalah … 2.
Tulislah sebuah program yang mendefinisikan sebuah konstanta yang bernilai 25, lalu tuliskan nilai konstanta tersebut ke layar monitor. Masukan : tidak ada Keluaran : nilai konstanta
Program Konstanta Bilangan bulat yang disimpan sebagai konstanta adalah 25 3.
Tulislah sebuah program yang membaca sebuah nama bertipe string dari keyboard, lalu menuliskan pesan tertentu. Masukan : nama Keluaran : pesan dengan nama yang dimasukkan
Program registrasi Registrasi Praktikum Algoritma dan Pemrograman 1 {proses input} Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
10
Nama : XXXXX {proses output, bersihkan layar terlebih dahulu} Selamat pagi, XXXXX Selamat mengerjakan praktikum. 4.
Buatlah program untuk menghitung Nilai Akhir Mata Kuliah Algoritma. Nilai akhir ini ditentukan berdasarkan rumus NA= Nilai Quiz*20% + Nilai UTS*30%+Nilai UAS*50%. Masukan : Tiga Nilai Keluaran : Nilai Akhir
Program Perhitungan Nilai Akhir Mata Kuliah Algoritma Nilai Quiz : … Nilai UTS : … Nilai UAS : … Nilai Akhir : … Perusahaan telepon di kota „X‟ mempunyai tarif Rp. 100 per pulsa. Setiap langganan dikenakan biaya langganan sebesar Rp. 3000 perbulan. Buatlah program untuk menghitung tagihan langganan. Masukan: nama langganan, banyaknya pulsa Keluaran : jumlah tagihan Petunjuk : buatlah biaya langganan dan tarif pulsa sebagai konstanta ( karena untuk semua langganan dianggap sama) 5.
Program Tagihan Langganan Nama Langganan : X Banyak pulsa : … Tagihan Langganan X adalah sebesar Rp… 6. Bila bentuk bumi dianggap sebagai bola dengan jari-jari 6370 km, hitunglah keliling, luas permukaan, dan isi bumi. Masukan : tidak ada Keluaran : keliling,luas, isi
Program Perhitungan Bumi Keliling : 40004 Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
11
Luas Isi
: 1082148051300 : 127057
Petunjuk : buatlah jari – jari bumi sebagai konstanta, utk perpangkatan 3 maka rumus nilai perpangkatan = exp(ln(jari)*3) dimana nilai perpangkatan adlh real Rumus : Keliling = 2 * phi * r Luas permukaan = 4/3 * phi * r3 Isi = 4 * phi * r2 7.
Tulislah program untuk menghitung panjang sisi miring segitiga sikusiku. Rumus yang digunakan C2=A2+B2
8. Mengubah jumlah detik menjadi bentuk jam, menit dan detik. Contoh: 5020 detik = 1 jam 23 menit 40 detik Masukan : jumlah detik Keluaran : satuan jam-menit-detik
Program Konversi Detik Jumlah detik : 5020 Hasil konversi : 1 jam 23 menit 40 detik Petunjuk
: langkah – langkah penyelesaiannya adalah sebagai berikut : jam := total div 3600 sisa := total mod 3600 menit := sisa div 60 detik := sisa mod 60
9.
Tulislah sebuah program yang dapat membaca sebuah nilai suhu dalam derajat celcius dari keyboard. Menghitung konversi celcius menjadi suhu dalam satuan Fahrenheit dan Kelvin Masukan : celcius (real) Keluaran : Hasil perhitungan ke layar monitor dalam Fahrenheit dan Kelvin
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
12
Rumus : Fahrenheit = 1.8 * celcius + 32 Kelvin.= Celcius + 273 Program Konversi Suhu Nilai suhu dalam derajat celcius : XXX XXX oC = XXX.XX oF XXX oC = XXX.XX oK
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
13
Tugas
:
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
Nilai :
14
Praktikum 3 dan 4 Statement Kontrol Pengkondisian IF Tujuan: Mempelajari pengkondisian IF Dalam program, adakalanya suatu aksi hanya dilakukan bila memenuhi kondisi tertentu. Penulisan dalam PASCAL: If kondisi then begin
; ; end else begin ; ; end; Contoh 3.1 : Tulislah sebuah program yang dapat membaca bilangan dari keyboard, lalu menuliskan apakah bilangan yang dimasukkan tersebut merupakan bilangan genap atau ganjil. Masukan : bilangan Keluaran : GENAP / GANJIL
Program Bilangan Genap Ganjil Masukkan bilangan = ? Bilangan yang dimasukkan tersebut merupakan bilangan ? Program 3.1 {Program Genap/Ganjil} Uses crt; Var bilangan : integer; Ket : string; Const genap = „GENAP‟; Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
15
Ganjil = „GANJIL‟; Begin Clrscr; Write („ Program Bilangan Genap Ganjil ‟); Write („ Masukkan bilangan = „); Readln(bilangan); If (bilangan mod 2) = 0 then ket := Genap Else ket = Ganjil; Writeln; Write („ Bilangan yang dimasukkan tersebut merupakan bilangan „,ket); Readkey; End.
Soal – soal Latihan
:
1.
Sebuah Perusahaan memberikan beasiswa kepada pelajar dengan kondisi berikut : Anak yatim piatu dan Anak purnawirawan ABRI Buatlah Program untuk menyatakan apakah seseorang pelajar mendapat beasiswa atau tidak. Masukan = 1. Nama Siswa 2. Anak Yatim piatu ( Y/ T) 3. Anak Purnawirawan ABRI ( Y/T) Keluaran = Keterangan mendapat beasiswa atau tidak. Program Beasiswa Nama Siswa : Tuti Anak Yatin Piatu (Y/T) : Y Anak Purnawirawan ABRI (Y/T) : T Tuti tdk mendapat beasiswa 2.
Sebuah perusahaan memberi kode untuk hari – hari dalam seminggu. Nama Hari Kode Senin 1 Selasa 2 Rabu 3 Kamis 4 Jum‟at 5 Sabtu 6 Minggu 7
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
16
Upah buruh per jam untuk hari Senin hingga Jumat adalah sebesar Rp. 3000,Sedangkan upah buruh untuk hari Sabtu adalah 1.5 kali tarif biasa dan untuk hari Minggu adalah 2 kali tarif biasa. Buatlah program untuk menghitung Upah yang diterima seorang buruh untuk sehari kerja. Masukan : Nama Buruh, Kode Hari, Jam kerja Keluaran : Upah total. Program Perhitungan Upah Buruh {proses input} Nama Buruh : Tuti Kode Hari [1-7] :2 Jam kerja : 12 jam {proses output, sebelumnya bersihkan layar dulu} Buruh Tuti bekerja pada hari Selasa dengan total upah adalah Rp. 36000,3.
Tiga buah bilangan dibaca dari keyboard. Program tersebut dapat mencari nilai terbesar dari 3 buah bilangan yang telah dimasukan. Masukan : X, Y,Z Keluaran : nilai max dari 3 buah bilangan yang diinput Program Mencari Nilai Max {proses input} Masukan bilangan 1 : 3 Masukan bilangan 2 : 5 Masukan bilangan 3 : 4 {proses output, sebelumnya bersihkan layar dulu} Nilai terbesar adalah 5
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
17
Tugas
:
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
Nilai :
18
Praktikum 5 Statement Kontrol Pengkondisian CASE Tujuan: Mempelajari pengkondisian CASE Untuk masalah dengan dua kasus atau lebih, struktur CASE dapat menyederhanakan penulisan IF-THEN-ELSE yang bertingkat-tingkat. Pada Case, nilai1..nilaiN adalah nilai yang bertipe integer, char atau boolean. Operator kondisi yang digunakan pada CASE adalah operator „ = „ Penulisan dalam Pascal : Case nama of nilai1 : aksi1; nilai2 : aksi2; nilai3 : aksi3; ……. ……. nilaiN : aksiN; [ else aksiX ] end;
Contoh 5.1 : Tulislah sebuah program menu yang dapat membaca nomor menu pilihan dari keyboard, lalu menuliskan menu apakah yang dimasukki. Program CaseOfEnd; Uses crt; Var pilih : byte; Begin Clrscr; Write(„ Masukkan pilihan Anda = „); readln(pilih); Case pilih of 1 : writeln(„Anda telah memilih menu 1‟); 2 : writeln(„Anda telah memilih menu 2‟); 3 : writeln(„Anda telah memilih menu 3‟);
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
19
else writeln(„Masukan anda salah „); end; readln; end.
Soal – soal Latihan 1.
:
Pajak atas barang – barang impor dari sebuah negara XYZ, dibagi menjadi 4 kelas. Kelas 1 2 3 4
Jenis Barang Makanan Pakaian Mesin-mesin Perabot
Pajak 10% 15% 30% 40%
Masukan : Kelas barang dan harga barang Keluaran : Besarnya Pajak dan biaya. {proses input} Program Pajak Negara ‘XYZ’ Kelas Barang : 2 Harga Barang : $ 200 {proses output, sebelumnya bersihkan layar dulu} Pajak untuk Pakaian adalah 15 % dengan biaya $ 230 2.
Sebuah Minimarket „XYZ‟ menjual beberapa merk susu kaleng, yaitu Dancow, Indomilk, Milo, Suprima, Sustagen,Ovaltine Tiap – tiap merk dijual dalam ukuran besar, sedang dan kecil. Harga satuannya adalah : Kode 1 2 3 4
Merk Dancow Indomilk Milo Suprima
Besar 10000 8500 7750 9600
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
Sedang 4500 4000 3750 5100
Kecil 2100 2025 2200 2600
20
5 6
Sustagen Ovaltine
17000 11250
14500 6500
8300 3250
Buatlah program untuk menghitung jumlah yang harus dibayar oleh seorang pembeli susu kaleng. Masukan : Kode susu ( 1 – 6 ), ukuran ( B/S/K), Banyaknya Pembelian. Keluaran : Jumlah Pembayaran. {proses input} Program Penjualan Susu Pada Minimarket ‘XYZ’ Kode Susu (1-6) : 2 Ukuran (B/S/K) : B Banyaknya pembelian : 2 buah {proses output, sebelumnya bersihkan layar dulu} Jumlah pembayaran untuk susu Indomilk berukuran besar adalah Rp. 17.000
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
21
Tugas
:
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
Nilai :
22
Praktikum 6 dan 7 Statement Pengulangan FOR Tujuan: Mempelajari pengulangan For menaik dan menurun Beberapa instruksi diulang untuk suatu jumlah pengulangan tertentu. Jumlah pengulangan dapat diketahui sebelumnya atau ditentukan dalam pengulangan program. Penulisan dalam Pascal : For variabel := nilai awal To nilai akhir Do Begin …………… aksi …………… end; Penulisan dalam Pascal : For variabel := nilai awal DOWNTO nilai akhir DO Begin …………… aksi …………… end; Contoh 6.1: Tulislah sebuah program kuadrat bilangan 1 hingga bilangan tertentu Masukan : bilangan (diasumsikan bilangan 4) Keluaran : kuadrat bilangan 1 hingga kuadrat bilangan 4
Program Kuadrat Bilangan Masukkan bilangan = ? Kuadrat Bilangan adalah 1-1; 2-4; 3-9; 4-16;
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
23
Program Kuadrat_bilangan; Uses crt; Var i,bil,kuadrat : integer; Begin Clrscr; Writeln(„Program Kuadrat Bilangan‟); Write („Masukkan bilangan = „); Readln(bil); Write(„Kuadrat Bilangan adalah„); For i := 1 to bil do Begin Kuadrat := i * i; Write(i,‟-„,kuadrat,‟;‟); End; Readkey; End.
Soal – soal Latihan
:
1.
Buatlah program yang dapat menampilkan formasi berikut : 1 1 2 1 2 3 1 2 3 4 1 2 3 1 2 1
2.
Buatlah program yang dapat menampilkan deret seperti contoh: N=5 1 3 6 10 15 N=10 100 98 96 94 92 90 88 86 84 82
3. Buatlah program untuk mencetak bilangan-bilangan prima diantara 2 dan 60 ; berikut dengan dengan jumlah prima tersebut. Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
24
Program Bilangan Prima Bilangan Prima itu adalah … Jumlah Prima : … 4. Buatlah program untuk menghitung suatu barisan bilangan Fibonacci sebanyak 20 suku; berikut dengan dengan jumlah deretnya. F1=F2=1 Fi=Fi-1 + Fi-2 Masukan : banyaknya deret pada barisan Fibonacci Keluaran: hasil dari barisan Fibonacci dan jumlah deretnya Program Barisan Fibonacci Masukan banyak deret : … Deret itu adalah 0, 1, 1, 2, 3, 5, 8, ….. Jumlah deret = …. 5.
Buatlah program untuk menghitung deret pecahan sebanyak 20 suku; berikut dengan dengan jumlah deretnya (pembulatan sampai 3 angka di belakang koma). Bentuk outputnya dicetak terurut ke kanan, seperti berikut : Masukan : banyak suku Keluaran : suku dan jumlah deret Program Deret Pecahan 1/1+1/2+1/3+1/4+, ….. Jumlah deret = ….
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
25
Tugas
:
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
Nilai :
26
Praktikum 8 Statement Pengulangan While Tujuan: Mempelajari pengulangan While Kelemahan dari perintah For-To-Do adalah banyak perulangan yang dilakukan harus ditentukan terlebih dahulu sebelum masuk ke perintah perulangan tersebut. Dalam pemrograman, seringkali ditemui proses perulangan yang banyak. Perulangan tidak dapat ditentukan sebelum masuk ke proses perulangan itu sendiri. Permasalahan ini diatasi dengan menggunakan perintah perulangan While – Do. Penulisan dalam Pascal : While kondisi DO Begin …………… aksi …………… end; {endwhile} Contoh 8.1 : Tulislah program naik turun berikut yang tidak menerima input dari keyboard. Program akan menampilkan hasil sebagai berikut: 0 5, 1 4 , 2 3, 3 2, 4 1,5 0 {Program while} Uses crt; Var X,Y : integer; Begin Clrscr; Writeln („Program Naik Turun‟); Y := 5; X := 0; While X <= 5 do Begin Write ( X, Y,‟,‟);
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
27
Y := Y - 1; X := X + 1; End; {endwhile} Readkey; End.
Soal – soal Latihan
:
1. Sebuah kelurahan akan mengadakan cacah jiwa bagi warganya. Buatlah program untuk cacah jiwa penduduk. Program ini dapat menghitung jumlah penduduk yang berumur 17 tahun. Program berhenti jika pernyataan „ingin coba lagi„ diisi dengan “ t “ Masukan : Jumlah penduduk, Nama Warga, Alamat, Umur Keluaran : Jumlah Penduduk berumur 17 tahun. Program Cacah Jiwa Penduduk Jumlah penduduk : … Nama Warga : …. (akan diisi sejumlah banyak penduduk) Alamat : … (akan diisi sejumlah banyak penduduk) Umur : …. (akan diisi sejumlah banyak penduduk) Penduduk yang berumur 17 tahun berjumlah ?? orang. Apakah anda ingin mencoba lagi ? [y/t] … 2.
Buatlah program untuk mengubah derajat temperatur sesuai dengan soal pada praktikum sebelumnya (input/output). Program akan berhenti jika pada pernyataan “hitung lagi ? [Y/T]”, diisi huruf T. Masukan : celcius (real) Keluaran : Hasil perhitungan ke layar monitor dalam Fahrenheit dan Kelvin Program Konversi Suhu Kedua Nilai suhu dalam derajat celcius : XXX XXX oC = XXX.XX oF XXX oC = XXX.XX oK Apakah mau hitung lagi ?[Y/T] … 3.
Buatlah program untuk mencari bilangan diantara 500/1000 yang habis dibagi dengan 3 dan juga hitung berapa banyaknya. Program akan berhenti jika pada pernyataan “hitung lagi ? [Y/T]”, diisi huruf T.
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
28
Masukan : bilangan Keluaran : bilangan yang habis dibagi 3, jumlah bilangan Program Perhitungan Bilangan Habis Dibagi 3 Bilangan tersebut adalah … Jumlah bilangan yang habis dibagi 3 : … Hitung lagi ? [Y/T] … 4.
Buatlah program untuk mencetak tabel suku-suku deret ganjil : 3, 7, 11, … sampai 12 suku ; berikut dengan dengan jumlah deret tersebut. Program akan berhenti jika pada pernyataan “hitung lagi ? [Y/T]”, diisi huruf T. Program Bilangan Ganjil Hingga 12 suku 1, 3, 7, 11, … Jumlah deret tersebut adalah … Hitung lagi ? [Y/T] …
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
29
Tugas
:
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
Nilai :
30
Praktikum 9 Statement Pengulangan Repeat Tujuan: Mempelajari pengulangan Repeat Perintah perulangan repeat – until mirip dengan perintah while – do. Tetapi pada perintah repeat – until, pengujian kondisi dilakukan di akhir perulangan. Dan perulangan dilakukan selama kondisi belum dipenuhi. Penulisan dalam Pascal : Repeat …………… aksi …………… Until kondisi; Contoh 9.1 : Program menghitung banyak proses yang diulang pada badan statement repeat_until. Program ini tidak menerima masukkan apapun tetapi akan menghasilkan banyaknya proses yang dikerjakan oleh statement repeat_until. {Program repeat} uses crt; var A,N : integer; Begin Clrscr; Writeln („Perhitungan Proses Repeat‟); A := 0; N := 0; Repeat A := A + 5; N := N + 1; Until A > 10 ; Write(„Banyak proses : „,N); Readkey; End.
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
31
Soal – soal Latihan : Ubahlah semua latihan pada while menjadi menggunakan perintah repeat Tugas
: Nilai :
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
32
Praktikum 10 dan 11 Statement Array Tujuan: Mempelajari representasi fisik struktur data array Contoh 10.1 : Tulislah program mencari bilangan terbesar. Program membutuhkan masukkan dari keyboard yang menyatakan banyaknya bilangan dan deret bilangan. Hasil keluaran dari program adalah bilangan terbesar dari deret yang telah dimasukkan. {Program Bilangan Terbesar} uses crt; var i,j,max,banyak : integer; x : array [1..10] of integer; begin clrscr; writeln(„Program Bilangan Terbesar‟); write(„Banyaknya bilangan „); readln(banyak); {untuk input bilangan} for i := 1 to banyak do readln(x[i]); {untuk mencari bilangan terbesar} max := 0; for j := 1 to banyak do begin if x[j] >= max then max := x[j]; end; write (max); readkey; end.
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
33
Soal – soal Latihan 1. B=
:
Buatlah program untuk menghitung harga B yaitu:
n
XiY i ( n
Xi 2
Xi )(
Yi)
Xi ) 2
(
Dimana N = banyaknya data (5)
Xi = X1+X2+X3+X4+X5 Yi = Y1+Y2+Y3+Y4+Y5
XiYi = X1Y1+X2Y2+X3Y3+X4Y4+X5Y5 Xi 2 = X12+X22+X32+X42+X52 Data sebagai berikut: Xi Yi
71 354
53 313
82 322
67 334
56 247
Masukan : Xi danYi Keluaran : Nilai B Program Menghitung Nilai B : Xi … … …
Yi … … …
Nilai B adalah sebesar = … 2.
Buatlah program untuk menghitung nilai akhir mata kuliah Algoritma dari 10 orang mahasiswa, jika diketahui sebagai inputnya adalah Nama, N1, N2, NU dan NA. Gunakan array. Bentuk outputnya dicetak seperti berikut :
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
34
HASIL AKHIR MATA KULIAH ALGORITMA No 1 2 ……. 10
Nilai 1 60 70 ……. 70
Nama Tony Susi ……. Melly
Nilai 2 60 80 ……. 40
Nilai Ujian 80 60 ……. 50
Nilai Akhir 72 66 ……. 52
Ketarangan Lulus Lulus ……. Tidak lulus
N1 = Nilai, N2 = Nilai, NU = Nilai Ujian, NA = Nilai Akhir Nilai Akhir = 40 % x (rata-rata N1 + N2) + 60 % x NU Jika Nilai Akhir >= 60, berikan ket = Lulus Jika Nilai Akhir < 60, berikan ket = Tidak Lulus 3.
Buatlah program untuk mencari bilangan terbesar dan terkecil dari sejumlah bilangan yang dimasukkan berturut-turut. Tentukanlah banyak bilangan yang akan dimasukkan terlebih dahulu. Gunakan array. Output yan ditampilkan Banyaknya Bilangan = n x1 x2 x3 x4 x5 …. xn Bilangan terbesar adalah = …. Bilangan terkecil adalah = ….
4.
Buatlah program untuk mengalikan matriks I berordo a x b dan matriks II yang berordo b x c . Output yang diminta : Ordo matriks I Banyaknya baris :….. Banyaknya kolom :….. Ordo matriks II Banyaknya baris Banyaknya kolom Matriks I
:
:….. :….. Baris 1 kolom 1 = Baris 1 kolom 2 = ……………………... Baris a kolom b =
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
35
Matriks II
:
Baris 1 kolom 1 = Baris 1 kolom 2 = ……………………... Baris b kolom c =
Hasil perkalian matriks I dan matriks II adalah ….. …. …. ….. …. …. ….. …. …. 5.
Buatlah program untuk menghitung Indeks Prestasi mahasiswa (IP) dari mata kuliah Algoritma dan mata kuliah Pancasila. Jika diketahui sebagai inputnya adalah Nama, Nilai mid dan nilai sum dari masingmasing matakuliah, Bobot sks dari mata kuliah Algoritma adalah 4 sks dan mata kuliah Pancasila adalah 2 sks.
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
36
Data Masukan: Nama Tony Susi Lastri Melly
Nilai 1 50 50 85 70
Algoritma Nilai Nilai 2 Sum 80 40 90 55 80 90 90 90
Nilai 1 80 40 50 60
Pancasila Nilai Nilai 2 Sum 60 65 80 80 80 35 50 52
Bentuk outputnya dicetak seperti berikut : Hasil Indeks Prestasi Mahasiswa Algoritma Pancasila No Nama NA AR NA AR 1 ……. ……. ……. ……. ……. 2 ……. ……. ……. ……. ……. ……. ……. ……. ……. ……. …….
Indeks Prestasi ……. ……. …….
Nilai Akhir = 40 % x (rata-rata Nilai1 dng Nilai2) + 60 % x Nilai sum Angka nilai relatif (AR) merupakan konversi dari Nilai Akhir: Nilai Akhir <= 45 maka AR=0 Nilai Akhir > 45 dan <= 55 maka AR=1 Nilai Akhir > 55 dan <= 67 maka AR=2 Nilai Akhir > 67 dan <= 80 maka AR=3 Nilai Akhir > 80 maka AR=4 IP (Indeks Prestasi) dihitung dengan rumus : ((AR Algoritma*bobot Algoritma ) +(AR Pancasila*bobot Pancasila)) / (bobot Algoritma+bobot Pancasila) Jumlah mahasiswa mendapat AR=0 : … Jumlah mahasiswa mendapat AR=1 : … Jumlah mahasiswa mendapat AR=2 : … Jumlah mahasiswa mendapat AR=3 : … Jumlah mahasiswa mendapat AR=4 : … 6.
Buatlah program untuk menghitung jumlah uang akhir deposito dengan menggunakan array dan case of sebanyak 12 data. Bentuk outputnya dicetak seperti berikut
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
37
BANK IGM PALEMBANG
No 1 2 3 … 12
Periode (dalam Bulan) 4 1 10 … 15
Gol
Bunga (%/thn)
B A C … D
21 18 24 … 27
Jumlah Uang Awal Akhir Rp 1000000 Rp 2000000 Rp 2000000 …. Rp 1500000
Rp 1070000 Rp 2030000 Rp 2400000 … Rp 2006250
Proses :
Periode 1 bln s/d 3 bln, bunga 18%/tahun Periode 4 bln s/d 6 bln, bunga 21%/tahun Periode 7 bln s/d 12 bln, bunga 24%/tahun Periode >12 bln, bunga 27%/tahun Jumlah akhir bunga = Bunga Deposito yang diperoleh + jumlah uang awal 7.
Sebuah toko kue menjual 4 jenis kue yaitu kue bolu, kue lapis, kue keju, kue coklat dengan ketentuan sebagai berikut untuk tiap jenis kue yang dibeli: Pembelian kue sebanyak 1-10 buah tidak mendapatkan potongan harga Pembelian kue sebanyak 11-50 buah mendapatkan potongan Rp. 100/buah Pembelian kue sebanyak 51-100 buah mendapatkan potongan Rp 500/buah Pembelian kue diatas 100 buah mendapatkan potongan Rp2000/buah
Selain itu setiap pembelian kue diatas 50 buah mendapatkan tambahan kue sebanyak 5 buah kue sejenis, hadiah ini hanya diberikan sekali untuk tiap pembelian kue sejenis. Pembeli dapat membeli lebih dari satu jenis kue, perhitungan transaksi pembelian dilakukan per satu jenis kue. Masukan : Nama kue yang dibeli, jenis kue, jumlah pembelian kue, harga satuan kue per buah Keluaran :
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
38
Nama kue yang dibeli, Jenis kue Jumlah pembelian kue, Jumlah hadiah kue Total kue yang diperoleh Harga total kue sebelum potongan Potongan harga Harga total kue setelah potongan
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
39
Tugas
:
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
Nilai :
40
Praktikum 12 dan 13 Statement Procedure Tujuan: Mempelajari modul procedure Contoh 12.1: Tulislah program menggunakan procedure seperti berikut ini: {Program procedure} uses crt; var C : real; Procedure hasil (A:real, B:real; var C : real); Var I : integer; {variabel lokal} Begin For I := 1 to 5 do A:= A/B; C:=A; End; {akhir procedure} Begin Clrscr; Hasil(32000,1.5,C); Writeln(„Hasil : „,C:10:2); Readkey; End.
Soal – soal Latihan
:
1.
Buatlah program yang menghasilkan keterangan tentang hari_esok dan kemarin. Pakai prosedur untuk menghitungnya. Input yang dimasukkan adalah hari_ini. Output yang ditampilkan Masukkan hari ini : ….. (kamis) Hari Esok adalah : Jum‟at Kemarin adalah : Rabu
2.
Buatlah program untuk mencetak laporan seperti yang terlihat di bawah ini
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
41
Tahap 1: Buat prosedur untuk input (mengisi) dan prosedur output(menampilkan) kemudian kontrol program tersebut dengan MENU UTAMA Tahap 2 : Kembangkan program diatas untuk pengoperasian file text, dan file bertipe, dengan mengkombinasikan record dan array !
Jrs
Uang Kuliah
Uang Gedung
Jumlah Bayar
xxxxx
TI(S1)
500000
1000000
1500000
19992103
xxxxx
MI(D1)
400000
800000
1200000
..
………
……..
…….
…….
………
………
..
………
……..
…….
……
……..
…….
No
NPM
1
19991101
2
Nama
Total : ……………… Jumlah Jurusan TI(S1) = xx orang MI(D1) = xx orang MI(D3) = xx orang TK(D3) = xx orang AKT(D3) = xx orang Variabel NPM dan Nama bertipe string Jurusan didapat dari dua digit posisi ke 5 dari NPM dengan menggunakan perintah COPY Jika digit yang diambil = 11 maka : Jurusan = TI(S1),UK = 500000, UG = 1000000 Jika digit yang diambil = 21 maka : Jurusan = MI(D1),UK = 400000, UG = 800000 Jika digit yang diambil = 31 maka : Jurusan = MI(D3),UK = 350000, UG = 700000 Jika digit yang diambil = 12 maka : Jurusan = TK(D3),UK = 300000, UG = 600000 Jika digit yang diambil = 42 maka : Jurusan = AKT(D3),UK = 600000, UG = 1200000 Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
42
Tugas
:
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
Nilai :
43
Praktikum 14 dan 15 Statement Function Tujuan: Mempelajari modul function Contoh 14.1 : Tulislah program fungsi berikut ini {Program Fungsi} uses crt; var A1,B1 : integer; function Ambil (A,B : integer):integer; begin A := A div B; Ambil := A; end; {akhir function} Begin Clrscr; B1:=10; A1 := B1 * (ambil(100,B1); Writeln(„Hasil di A : „,A1); Readkey; End.
Soal – soal Latihan
:
1.
Buatlah sebuah unit yang memuat beberapa procedure dan function yang dapat digunakan oleh program utama untuk memproses kegiatan – kegiatan dari menu berikut: Memasukkan beberapa bilangan Menghitung hasil penjumlahan bilangan tersebut Menghitung hasil perkalian Menghitung hasil pembagian
2.
Buatlah program untuk menyelesaikan kasus berikut dengan pengoperasian file text dan file bertipe, gunakan Tipe Data Array dan Record untuk mendukung proses program
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
44
Kasus : Suatu koperasi menggunakan kartu kredit bagi anggotanya. Pada kartu tertulis data No. Anggota, Nama, Besar Simpanan. Setiap kali berbelanja, maka uang simpanan anggota yang bersangkutan berkurang sejumlah belanjaannya. Bilamana simpanan yang bersangkutan sudah habis atau jumlah belanjaan melebihi batas simpanan, maka tidak bisa belanja lagi. Program yang dibuat memiliki 4 menu pilihan, yaitu : 1. 2. 3.
4.
Mengisi data anggota (nama, no dan uang simpanan) (mengisi data seluruh anggota koperasi , max. 100 orang) Belanja (Jumlah uang yang dibelanjakan anggota) Cetak tabel (mencetak tabel/daftar yang berisi data anggota dan besar simpanan masing-masing) Selesai
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
45
Tugas
:
Modul Praktikum Algoritma dan Pemrograman 1 (Pascal) Rita Wiryasaputra,ST., M. Cs
Nilai :