Definisi Algoritma Algoritma adalah urutan langkah berhingga untuk memecahkan logika atau matematika. Definisi Pemrograman Langkah langkah dalam memberikan instruksi kepada komputer untuk memecahkan masalah. Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Software / perangkat lunak 1. Sistem Operasi windows 98, XP, NT, de el el 2. Program aplikasi Microsoft Word, Microsoft Excel, Microsoft Powerpoint de es be. 3. Program Pemrograman Visual Basic, Visual Foxpro, Clipper de es te. Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Tingkat program pemrograman / bahasa pemrograman 1. Generasi Pertama Masih menggunakan bahasa mesin, menggunakan sandi 0 dan 1 ( 1 = on, 0 = off ) 2. Generasi kedua Menggunakan untaian sandi 0 dan 1 dengan singkatan kata yang lebih dimengerti oleh manusia. Bahasa pemrogramannya disebut bahasa assembly. Contoh : CMP AL, OD 3. Generasi ketiga Menggunakan bahasa yang lebih dipahami oleh manusia, dengan menggunakan bahasa internasional ( inggris ). Contoh : Pascal, Bahasa C, C++ Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 4. Generasi keempat Perintah perintah yang digunakan lebih manusiawi, biasa digunakan untuk pengembangan aplikasi basis data. Contohnya : SQL ( Structured Query Languange ) SELECT Nama, Alamat FROM Karyawan Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Langkah langkah pemrograman komputer : 1. Mendefiniskan masalah Tentukan permasalahannya, kemudian apa saja yang harus dipecahkan dengan komputer, apa masukan dan keluarannya. 2. Menentukan Solusi Mencari jalan bagaimana masalah tersebut diselesaikan. Apabila permasalahannya terlalu kompleks / besar, biasanya akan dibagi bagi kedalam modul kecil agar lebih mudah diselesaikan. Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 3. Memilih Algoritma Langkah ini merupakan langkah yang penting dalam pemrograman komputer. 4. Menulis Program Ada beberapa hal yang harus dipertimbangkan saat memilih bahasa pemrograman, antara lain kemampuan pemrograman, masalah yang dihadapi de es be. 5. Menguji program Mencari kesalahan pada program saat dikompilasi ( error ), menguji berjalannya program. Langkah ke 4 dan ke 5 bisa dilakukan berulang ulang sampai program diyakini sudah benar dan sesuai dengan yang diharapkan. Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 6. Menulis dokumentasi Menambahkan komentar pada program untuk dokumentasi di hari kemudian. 7. Merawat program Langkah ini dilakukan setelah program selesai dibuat dan sudah digunakan oleh pengguna ( User ). Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Algoritma dalam kehidupan sehari - hari Algoritma Makan di Restoran Pilih meja dan tempat duduk Pesan Makanan dan minuman Mulai makan dan minum Bayar tagihan Terkadang kita dihadapkan oleh beberapa pilihan. Contohnya : Uang yang kita punya 50.000,- kita harus menentukan akan makan lauk apa dan di restoran mana ( percabangan ). Terkadang kita mungkin melakukan langkah- langkah tertentu beberapa kali. Contohnya : Karena lapar sekali, kita lakukan langkah ke 2 dan ke 3 berulang kali ( pengulangan ). Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Algoritma untuk menghitung luas Segi Empat Masukan nilai Panjang Masukan nilai Lebar Hitung luas Panjang x Lebar Tampilkan Luas Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Latihan : 1. Buatlah Algoritma untuk menjadi mahasiswa AMIK Atma Luhur 2. Buatlah Algoritma untuk membeli pakaian di Department Store 3. Buatlah Algoritma untuk menghitung luas segitiga 4. Buatlah Algoritma untuk menghitung isi bangun balok SELAMAT MENGERJAKAN Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Jawaban 1. Algoritma untuk menjadi mahasiswa AMIK Atma Luhur Isi Form Pendaftaran Ikut Ujian Penerimaan Mahasiswa Terima Hasil Ujian + Kwitansi Daftar Ulang Dapat NIM ( Nomer Induk Mahasiswa ) 2. Algoritma untuk membeli pakaian pada Department Store Memilih pakaian Minta Nota Bayar Nota ke Kasir Terima pakaian dan struk pembayaran Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 3. Algoritma untuk menghitung luas segitiga Masukkan nilai Alas Masukkan nilai Tinggi Hitung Luas ( Alas x Tinggi ) / 2 Tampilkan Luas 4. Algoritma untuk menghitung Isi Bangun Balok Masukkan nilai Panjang Masukkan nilai Lebar Masukkan nilai Tinggi Hitung Isi Panjang x Lebar x Tinggi Tampilkan Isi Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Macam macam Tipe data Ada 6 ( enam ) kelompok tipe data pada pascal, yaitu : 1. Tipe sederhana, dibagi jadi 2 tipe : Tipe Ordinal, dibagi lagi; Tipe bil. Bulat Tipe boolean Tipe karakter Tipe terbilang Tipe subjangkauan Tipe real 2. Tipe string
Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 3. Tipe terstruktur. Dibagi menjadi lima ( 5 ) tipe, yaitu ; Tipe larik Tipe rekaman / record Tipe objek Tipe himpunan Tipe berkas 4. Tipe pointer 5. Tipe prosedural 6. Tipe objek
Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Tipe Bilangan Bulat Sesuai dengan namanya, tipe bilangan Bulat digunakan untuk menyimpan bilangan bulat.
Tabel 1.1 macam-macam tipe bil. Bulat Pascal TIPE JANGKAUAN UKURAN Shortint -128127 8 bit Integer -3276832767 16 bit Longint -21474836482147484647 32 bit Byte 0255 8 bit Word 065535 16 bit Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Tipe boolean Tipe boolean adalah tipe yang hanya dapat bernilai true ( benar ) atau false ( salah ).
Tabel 1.2 Macam-macam tipe boolean TIPE DATA UKURAN Boolean 1 byte Bytebool 1 byte Wordbool 2 byte ( 1 word ) Longbool 4 byte ( 2 word ) Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Tipe karakter tipe karakter digunakan untuk menyimpan data alfanumeris / karakter, seperti : AZ, ab, 09,$,@,..de el el. Untuk memberi nilai pada variabel bertipe karakter, dapat menggunakan beberapa cara yaitu : menuliskan karakter di dalam tanda petik tunggal contoh : ch := A; menuliskan tanda # diikuti tanda dengan nomor ASCII dari karakter yang ingin dituliskan. Contoh : ch :=#65 {sama artinya dgn ch := A;} mengkonversikan nomor ASCII ke karakter menggunakan fungsi chr. contoh : ch :=chr(65); { sama artinya dgn ch := A } Kebalikan dari fungsi chr adalah ord. contoh : x := ord(A); { x akan bernilai 65 } Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Tipe subjangkauan tipe subjangkauan memungkinkan untuk mendeklarasikan tipe yang berada pada jangkauan tertentu. Pendeklarasian tipe subjangkauan dilakukan dengan menuliskan batas bawah dan batas atas dari jangkauannya. Contoh : type bulan =1..12; Mendeklarasikan tipe bulan yang memiliki jangkauan dari 1 sampai 12. Dengan demikian bila jika mempunyai variabel bertipe bulan, seperti contoh berikut : Var januari : bulan ; Anda tidak bisa memberikan nilai kurang dari 1 atau lebih dari 12. Contoh : januari :=1; Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Tipe terbilang tipe terbilang memungkinkan anda memberi nama pada beberapa nilai tertentu. Sebagai contoh : type tipehari :=( Minggu, Senin, Selasa, Rabu, Kamis, J umat, Sabtu ); Memberi nama Minggu pada 0, senin pada 1, selasa pada 2, de es te. Dengan pendeklarasian tipehari seperti contoh diatas, anda tidak perlu menggunakan angka 0, 1, sampai dengan 6 untuk mempresentasikan hari. Contoh : var hari : tipehari; Anda dapat menuliskan contoh pernyataan berikut : hari := Minggu ; hari := Senin ; Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Tipe real tipe real digunakan untuk menyimpan bilangan real / pecahan.
Tabel 1.3 Macam macam tipe real
TIPE JANGKAUAN DIGIT UKURAN Real 2.9 * 10 -39 ..1.7 * 10 38 11 12 6 byte Single 1.5 * 10 -45 ..3.4 * 10 38 7 8 4 byte Double 5.0 * 10 -324 ..1.7 * 10 308 15 16 8 byte Extended 3.4 * 10 -4932 ..1.1 * 10 4932 19 20 10 byte Comp -2 63 +1..2 63 -1 19 20 8 byte Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Tipe string tipe string digunakan untuk menyimpan data yang berupa untaian karakter, seperti pascal, algoritma, de es be. Untuk mendeklarasikan string, digunakan kata kunci string. Contoh : Var kalimat : string ; Pemberian nilai pada string dilakukan dengan meletakkan untaian karakter diantara tanda petik tunggal. Contoh : kalimat := pemrograman algoritma; Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Tipe Larik tipe larik memungkinkan untuk mendeklarasikan kumpulan variabel yang bertipe sama. Bentuk umum pendeklarasian larik : Var nama_larik : array [batas_bawah..batas_atas] of tipe larik ; contoh Anda ingin membuat delapan variabel bertipe longint. Tanpa menggunakan larik, mungkin mendeklarasikan variabel tersebut dengan cara berikut : Var a1, a2, a3, a4, a5, a6, a7, a8 : longint; Dengan larik kita bisa menyederhanakan deklarasi kedelapan variabel diatas menjadi : Var a : array [1..8] of longint; Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Tipe rekaman Memungkinkan Anda menggabungkan beberapa variabel yang tipenya tidak harus sama. Untuk mendeklarasikan rekaman, digunakan kata kunci record. Contoh : type tkaryawan = record nama : string ; alamat : string ; gaji : string ; end; Pemberian nilai pada variabel bertipe rekaman dilakukan dengan menyebutkan nama variabel rekaman diikuti tanda titik dan variabel didalam rekaman.
Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Sebagai contoh, jika terdapat variabel karyawan yang betipe tkaryawan : var karyawan : tkaryawan ; Dapat menuliskan pernyataan berikut ; karyawan.nama := ronaldo; karyawan.alamat := Jl. Selindung lama; karyawan.gaji :=1000000;
Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Tipe himpunan digunakan untuk menyimpan kumpulan nilai ( disebut juga anggota himpunan ) yang bertipe sama. Sebagai contoh : type himpunankarakter =set of char; Mendeklarasikan tipe himpuanankarakter sebagai himpunan dari karakter. Contoh deklarasi variabel bertipe himpunan : var vokal : himpunankarakter; huruf : himpunankarakter; Pemberian nilai pada tipe himpunan dilakukan dengan menuliskan anggota himpunan dalam kurung siku ([ dan ]). Contoh : vokal := [A, I , U, E, O]; huruf :=[A..Z]; Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Tipe pointer pointer adalah variabel yang menunjuk lokasi memori tertentu. Pendeklarasian pointer dilakukan dengan cara menambahkan tanda ^ didepan tipe pointer. Contoh : Var p1 : ^integer ; p2 : ^double;
Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Latihan 2 Tentukan Listing program mana yang akan menghasilkan nilai yang benar : Uses wincrt; Var x,y,z : byte; Begin x := 99; y := 30; z := x + y; write(z); End. Uses wincrt; Var x,y,z :integer; Begin x := 150; y := 5; z :=( x + y) / 2; write(z); end. Uses wincrt; Var x,y,z : shortint; Begin x := 90; y := -10; z := x * y; write(z); end. 1 2 3 Tipe data sesuai Tipe data sesuai Tipe data tidak sesuai Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Lanjutan latihan..
4. Jika diketahui x adalah variabel bertipe integer, dari nilai-nilai berikut, manakah yang dapat diberikan pada x? a. 10.1 f. 80.55 b. 200 g. 21474846 c. 32799 d. -35600 e. 0 A,C,D,F,G salah nilai tidak sesuai dengan tipe data Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Macam macam operator Ada tujuh operator pada pascal, yaitu ; 1. Operator pemberian nilai 2. Operator aritmetik 3. Operator pemanipulasi bit 4. Operator boolean 5. Operator pembanding 6. Operator himpunan 7. Operator string
Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Operator Aritmetik 1. Operator Aritmetik Tunggal 1. + (Contoh : x := +y;) 2. - (Contoh : x := -y; ) 2. Operator Aritmetik Biner 1. + (Penjumlahan) X := y + z; 2. - (Pengurangan) X := a b c d; 3. * (Perkalian) X := 5 * 9 * 3.14; 4. / (Pembagian) X := a / b; 5. Div (Pembagian bilangan bulat) Z := 10 div 2; 6. Mod (Sisa Pembagian / modulus) Z := y mod k; Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Operator Pemanipulasi Bit Not, And, Or, Xor A B Not A Not B A and B A or B A xor B 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Operator Boolean Not, And, Or, Xor A B Not A Not B A and B A or B A xor B false false true true false false false false true true false false true true true false false true false true true true true false false true true false Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Operator Pembanding = Sama dengan <> Tidak sama dengan < Kurang dari > Lebih dari <= Kurang dari atau sama dengan >= Lebih dari atau sama dengan Hasil dari operasi ini adalah tipe boolean (True/False) Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Operator Operasi + Union - Selisih * Interseksi in Anggota dari Operator Himpunan Tabel Operator himpunan Sebagai contoh : a:= b + c; Menggabungkan semua anggota himpunan B dan C ke dalam himpunan A. Jika A, B dan C bertipe Set Of Char dan isi himpunan B adalah [P,Q] dan isi himpunan C adalah [R] maka isi himpunan A adalah [P,Q,R]. Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Operator String Pascal hanya mengenal satu macam operator string, yaitu penggabungan. Operator ini digunakan untuk menggabungkan dua atau lebih string. Operator ini menggunakan tanda +. Contoh S := AMIK + ATMA + Luhur; Writeln(S); Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Derajat Operator Not Tertinggi * / div mod and + - or xor = <> < > <= >= Terendah Berapa hasil dari x = 2 + 3 * 4 ? Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Uses wincrt; Var a, b, c, d, hasil : integer; Begin a := 5; b := 15; c := 21; d := 6; Hasil := a + b + ( c * d ); write(Hasil); end. Latihan 3 Uses wincrt; Var a, b, c, d, hasil : real; Begin a := 10; b :=7; c := 9; d := 33; Hasil := (a b) / c * d; write(Hasil); end. 1 2 Tentukan nilai dari variabel hasil Hasil = 146 Hasil = 11.00 Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Uses wincrt; Var Pasti, Jadi, Yakin, a, b : boolean ; Begin a := True; b := False; Pasti := a and b ; writeln(Pasti); jadi := a or b; Writeln(jadi); Yakin :=a and b and pasti or jadi ; Writeln(Yakin); end. 3 Uses wincrt; Var Pasti, Jadi, Yakin, a, b : boolean ; Begin a := True; b := False; Pasti := not a ; writeln(Pasti); jadi := a xor b; Writeln(jadi); Yakin :=a and b xor pasti or jadi ; Writeln(Yakin); end. 4 Lanjutan Latihan Pasti = False Jadi = True Yakin = True Pasti = False Jadi = True Yakin = True Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Contoh Derajat Operator
X := 4 + 10 * 2; X := 6 2 * 4 + 10; X := 8 * (5 + 2); X := 4 / 2 + 10 * 4; X := 3 * 5 6 + 4; Contoh Operator Pembanding
1. A := 5 = 6; 2. A := 5 <> 6; 3. A := 5 < 6; 4. A := (3 < 4) and (5 >6); 5. A := (4 <= 4) or (5 > 6); 6. A := (4 >= 4) and (5 >= 5); Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Var a, b, c, d : boolean ; x, y, z : boolean ; Begin a := true ; b := false ; c := true ; d := false ; X:= a and b or c xor d; Y:= a and not b or not c; Z := a xor b xor c xor d; Write(x, , y, ,z); End. Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 PERCABANGAN ( Seleksi Kondisi ) Pernyataan IF Pernyataan IF digunakan untuk menguji sebuah kondisi. Bila kondisi yang di uji benar ( true ) maka akan menjalankan pernyataan dibawahnya. Bentuk umum : If kondisi then pernyataan ; Atau If kondisi then Begin pernyataan_1; pernyataan_2; pernyataan_n; End; jika kondisi benar maka kerjakan pernyataan ; Atau jika kondisi benar maka Awal blok kerjakan pernyataan_1; kerjakan pernyataan_2; kerjakan pernyataan_n; Akhir blok Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 IF KONDISI THEN PERNYATAAN_TRUE1; PERNYATAAN_TRUE2; START END TRUE FALSE FLOW CHART UNTUK PERNYATAAN IF Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Contoh Penggunaan IF..Then uses wincrt; Var nilai : shortint; begin write('Masukkan Nilai : '); Readln(nilai); if (nilai >= 56) then writeln('LULUS'); end. IF tanpa Block Statement uses wincrt; Var nilai : shortint; begin write('Masukkan Nilai : '); Readln(nilai); if (nilai >= 56) then begin writeln(Nilai Anda : ,nilai); writeln('LULUS'); end; end. IF dengan Block Statement Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Pernyataan if..else Pernyataan if..else digunakan untuk menguji sebuah kondisi. Bila kondisi yang diuji terpenuhi ( true ), program akan menjalankan pernyataan- pernyataan tertentu; dan bila kondisi yang diuji salah ( false ), program akan menjalankan pernyataan-pernyataan lain.
Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 If kondisi then Begin pernyataan_true1; pernyataan_true2; pernyataan_true_n; End Else Begin pernyataan_false1; pernyataan_false2; pernyataan_false3; End; If kondisi then pernyataan_true1 Else pernyataan_true2;
Jika kondisi benar maka kerjakan pernyataan_t Selain itu kerjakan pernyataan_f ;
Jika kondisi benar maka Awal blok kerjakan pernyataan_t1; kerjakan pernyataan_t2; kerjakan pernyataan_tn; Akhir blok Selain itu Awal blok kerjakan pernyataan_f1; kerjakan pernyataan_f2; kerjakan pernyataan_fn; Akhir; Bentuk umum pernyataan if..else : Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 IF KONDISI THEN PERNYATAAN_TRUE1; PERNYATAAN_TRUE2; START END TRUE FALSE PERNYATAAN_FALSE1; PERNYATAAN_FALSE2; FLOW CHART UNTUK PERNYATAAN IF..ELSE Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Contoh Penggunaan IF..ELSE uses wincrt; var nilai : shortint; begin write('Masukkan Nilai : '); Readln(nilai); if (nilai >= 56) then writeln('LULUS') else writeln('GAGAL'); end. IF..ELSE tanpa block statement uses wincrt; var nilai : shortint; begin write('Masukkan Nilai : '); Readln(nilai); if (nilai >= 56) then begin writeln(Selamat Anda LULUS); writeln('LULUS'); end else begin writeln(Maaf Anda Tidak LULUS); writeln('GAGAL'); end; end. IF..ELSE dengan block statement Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Program penjualan_tiket; uses wincrt; var usia : byte ; begin write('Usia Anda '); readln(usia); if usia >= 17 then writeln ('Anda boleh menonton') else writeln ('Anda belum boleh menonton'); end. Program penjualan_tiket; uses wincrt; var usia : byte ; begin write('Usia Anda '); readln(usia); if usia >= 17 then begin writeln ('Anda boleh menonton'); writeln (Selamat menonton !); end else begin writeln ('Anda belum boleh menonton'); writeln (Maaf yah..!); end; end. Program if..else hanya satu pernyataan Program if..else dengan memakai block statement Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Pernyataan if..else..if Pernyataan if..else..if digunakan jika mempunyai kondisi yang banyak. Bentuk umum : If kondisi_1 then pernyataan_k1 ; else if kondisi_2 then pernyataan_k2; else if kondisi_n then pernyataan_kn; jika kondisi_1 benar maka kerjakan pernyataan_k1 ; selain itu jika kondisi_2 benar maka kerjakan pernyataan_k2; selain itu jika kondisi_n benar maka Kerjakan pernyataan_kn; Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 If kondisi_1 then begin pernyataan_k1_a ; pernyataan_k1_b; end else if kondisi_2 then begin pernyataan_k2_a; pernyataan_k2_b; end else if kondisi_n then pernyataan_kn; jika kondisi_1 benar maka Awal blok kerjakan pernyataan_k1_a ; kerjakan pernyataan_k1_b ; Akhir blok selain itu jika kondisi_2 benar maka Awal blok kerjakan pernyataan_k2_a ; kerjakan pernyataan_k2_b ; Akhir blok selain itu jika kondisi_n benar maka Kerjakan pernyataan_kn; Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 FLOW CHART UNTUK PERNYATAAN IF..ELSE..IF IF KONDISI_1 THEN PERNYATAAN_K1_a; PERNYATAAN_K1_b; START END TRUE IF KONDISI_2 THEN PERNYATAAN_K2_a; PERNYATAAN_K2_b; IF KONDISI_N THEN PERNYATAAN_KN_a; PERNYATAAN_KN_b; TRUE TRUE Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Program Kondisi_nilai ; uses wincrt; var nilai : byte ; begin write ('Masukkan Nilai : '); readln(nilai); if ( nilai >= 0 ) and ( nilai <= 40 ) then begin writeln('Maaf Anda GAGAL..!'); writeln('GRADE E'); end else if ( nilai >= 41 ) and ( nilai <= 55 ) then begin writeln('Maaf Anda GAGAL..!'); writeln('GRADE D'); end else if ( nilai >= 56 ) and ( nilai <= 65 ) then begin writeln('Selamat Anda LULUS..!'); writeln('GRADE C'); end
else if ( nilai >= 66 ) and ( nilai <= 75 ) then begin writeln('Selamat Anda LULUS..!'); writeln('GRADE B'); end else if ( nilai >= 76 ) and ( nilai <= 100 ) then begin writeln('Selamat Anda LULUS memuaskan'); writeln('GRADE A'); end else writeln ('Nilai yang dientry ngawur...!!!'); end. Program if..else..if dengan blok statemen Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Contoh Soal Buatlah program yang menampilkan informasi jenis kelamin seseorang dengan masukkan sebuah karakter. Dengan kondisi seperti berikut : Jika dimasukkan karakter L atau l maka tulis Anda seorang Laki-Laki Jika dimasukkan karakter P atau p maka tulis Anda seorang Perempuan Jika dimasukkan karakter selain diatas maka tulis Jenis Kelamin diragukan Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Algoritma Tulis Jenis Kelamin Masukkan JK Tulis L : untuk Laki - Laki Tulis P : untuk Perempuan Jika ( JK=L) atau (JK=l) maka tulis Anda Seorang Laki-Laki Jika ( JK=P) atau (JK=p) maka tulis Anda Seorang Perempuan Selain itu maka tulis Jenis Kelamin diragukan L : untuk Laki-Laki P : untuk Perempuan Jenis Kelamin : < input > L Anda Seorang Laki-Laki Tampilan Program Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Pembuatan Program : Uses wincrt; Var JK : char; Begin writeln(L : Untuk Laki Laki); writeln(P :Untuk Perempuan); write(Masukkan Jenis Kelamin : ); Readln(JK); If ( JK=L) or ( JK=l ) then writeln(Anda Seorang Laki-Laki) Else If ( JK=P) or ( JK=p) then writeln(Anda Seorang Perempuan) Else writeln(Jenis Kelamin diragukan); End. Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Pernyataan Case Pernyataan case digunakan untuk menyederhanakan konstruksi if..else..if yang terlalu banyak. Bentuk umum : Case ungkapan of daftar case-label 1 : pernyataan_1; daftar case-label 2 : pernyataan_2; daftar case-label 3 : pernyataan_3; daftar case-label n : pernyataan_n; End; Case ungkapan of daftar case-label 1 : awal blok pernyataan_1_a; pernyataan_1_b; akhir blok; daftar case-label 2 : pernyataan_2; daftar case-label 3 : pernyataan_3; daftar case-label n : pernyataan_n; else pernyataan_else; End; Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 CASE UNGKAPAN OF PERNYATAAN_L_1_a; PERNYATAAN_L_1_b; PERNYATAAN_K2_a; PERNYATAAN_K2_b; PERNYATAAN_K3_a; PERNYATAAN_K3_b; PERNYATAAN_KN_a; PERNYATAAN_KN_b; PERNYATAAN_ELSE_1 PERNYATAAN_ELSE_2; START END FLOW CHART UNTUK PERNYATAAN CASE OF Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 program memakai_case ; uses wincrt; var nilai : byte; begin write ('Masukkan Nilai : '); readln(nilai); case nilai of 0..40 : begin writeln('Maaf Anda GAGAL..!'); writeln('GRADE E'); end; 41..55 : begin writeln('Maaf Anda GAGAL..!'); writeln('GRADE D'); end; 56..65 : begin writeln('Selamat Anda LULUS..!'); writeln('GRADE C'); end; 66..75: begin writeln('Selamat Anda LULUS..!'); writeln('GRADE B'); end; 76..100: begin writeln(' Anda LULUS memuaskan'); writeln('GRADE A'); end; else writeln ('Nilai yang dientry ngawur...!!!'); end; end.
Contoh program case dengan block statement Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Latihan Buatlah program seperti berikut : TV Rp < input > 1000000 Jumlah Beli < input > 3 Total Bayar Rp 3000000 Maaf anda belum beruntung !!! Tampilan Program seperti berikut Jika jumlah beli >= 4 dan jumlah beli <= 6 maka Anda dapat Sebuah kaset Jika jumlah beli >= 7 dan jumlah beli <= 9 maka Anda dapat sebuah Radio Jika jumlah beli >= 10 dan jumlah beli <= 12 maka Anda dapat sebuah VCD Jika jumlah beli >= 13 maka Anda dapat VCD + Speaker aktif Selain itu Maaf Anda belum beruntung !!! Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Jawaban : Algoritma Tulis TV = Rp Masukkan HargaTV Tulis Jumlah Beli = Masukkan JumBel Hitung TotBayar = HargaTv x JumBel Tulis Total Bayar dan tampilkan TotBayar Jika (JumBel >= 4) dan (JumBel <= 6) maka Anda dapat Sebuah kaset Selain itu Maaf Anda belum beruntung !!! Jika (JumBel >= 7) dan (JumBel <= 9) maka Anda dapat Sebuah Radio Jika (JumBel >= 10) dan (JumBel <= 12) maka Anda dapat Sebuah VCD Jika (JumBel >= 13) maka Anda dapat Sebuah VCD + Speaker aktif Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 uses wincrt; var HargaTv, TotBayar : longint; JumBel : byte; begin write ('TV = Rp '); readln(HargaTv); write ('Jumlah Beli = '); readln(JumBel); TotBayar := HargaTv * JumBel; writeln('Total Bayar = Rp ',TotBayar); case JumBel of 4..6 : writeln ('Anda dapat sebuah kaset'); 7..9 : writeln ('Anda dapat sebuah radio'); 10..12 : writeln ('Anda dapat sebuah VCD'); 13..15 : writeln ('Anda dapat Speaker aktif'); else writeln ('Anda Belum beruntung'); end; end. Pembuatan Program Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 PENGULANGAN Pengulangan digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak beberap kali. Ada tiga perulangan : 1. Pernyataan For 2. Pernyataan while 3. Pernyataan repeat..until
PERNYATAAN FOR Pernyataan for digunakan jika sudah diketahui jumlah pengulangan yang ingin dilakukan. Bentuk umum : For nama_variabel := nilai_awal to nilai_akhir do Pernyataan-pernyataan yang akan diulang ; Atau For nama_variabel := nilai_awal to nilai_akhir do Begin Pernyataan-pernyataan yang akan diulang ; Pernyataan-pernyataan yang akan diulang ; End; downto Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 ungkapan pernyataan TRUE FALSE START END FLOW CHART UNTUK PERNYATAAN FOR Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Contoh Program Program pengulangan_sebanyak_10_x_dengan_menggunakan_for; Uses wincrt ; Var Ulang : byte; Begin For ulang := 1 to 10 do Writeln(Algoritma); End. Perulangan for dengan menggunakan satu statemen
Algoritma Algoritma Algoritma Algoritma Algoritma Algoritma Algoritma Algoritma Algoritma Algoritma Hasil yang tampak di layar Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Program pengulangan_sebanyak_10_x_dengan_menggunakan_for; Uses wincrt ; Var Ulang : byte; Begin For ulang := 1 to 10 do Begin Writeln(Selamat Belajar); Writeln(Algoritma); End; End. Perulangan for dengan menggunakan blok statemen
Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 1 1 1 2 2 1 2 2 3 1 3 2 PERNYATAAN FOR BERSARANG Anda bisa juga menuliskan pernyataan for didalam for. Contoh program : Program menggunakan_for_bersarang ; Uses wincrt; Var Ulang, mau : byte; Begin For ulang := 1 to 3 do For mau := 1 to 2 do Writeln(ulang, ,mau); End. Perulangan dengan menggunakan for bersarang
Hasil yang tampak di layar Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Program menggunakan_for_bersarang ; Uses wincrt; Var Ulang, mau : byte;
Begin For ulang := 1 to 5 do begin For mau := 1 to ulang do
Write('*');
writeln;
end; End. * ** *** **** ***** Hasil yang tampak di layar Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Pernyataan WHILE Pernyataan pengulangan ini biasanya digunakan bila Anda belum tahu pasti berapa banyak Anda akan mengulang pernyataan pernyataan. Berakhirnya pengulangan ditentukan oleh suatu kondisi. Bila kondisi terpenuhi ( TRUE ) maka pengulangan akan berlanjut tetapi bial kondisi ( FALSE ) maka pengulangan akan berakhir. Bentuk Umum : While kondisi do begin pernyataan_1; pernyataan_2; End; Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 program bilangan_ganjil ; uses wincrt; var i : byte; begin i:= 1; while i <= 10 do begin write (i,' '); i := i + 2; end; end. 1 3 5 7 9 Hasil yang tampak pada layar Contoh program dengan while Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 ungkapan pernyataan TRUE FALSE START END Flow chart untuk pernyataan while Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Pernyataan While bersarang Didalam while masih ada while
Program menggunakan_while_bersarang ; Uses wincrt; Var Ulang, mau : byte;
Begin ulang := 1 ; while ( ulang <= 5 ) do begin mau := 1; while ( mau <= ulang ) do begin Write('*'); mau := mau +1 ; end; ulang := ulang + 1; writeln;
end; End. * ** *** **** ***** Hasil yang tampak di layar Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Pernyataan Repeat..until Pernyataan pengulangan ini hampir sama dengan pernyataan pengulangan while, dan biasanya digunakan bila jumlah pengulangan belum dapat ditentukan pada saat program ditulis. Perbedaan terletak pada letak pengecekan kondisi dan jika while mengulang selama kondisi TRUE sedangkan repeat..until mengulang selama kondisi FALSE. Bentuk Umum : Repeat pernyataan_1; pernyataan_2; Until kondisi; Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Program menggunakan_repeat_until; uses wincrt; var i : byte; begin i:= 0; repeat writeln('algoritma'); i := i + 1; until ( i >= 5 ); end. Program repeat_until; uses wincrt; var i : byte; begin i:= 0; repeat writeln('algoritma'); i := i + 1; until ( i <= 5 ); end. Perhatikan perbedaaan dari kedua program di atas Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 ungkapan pernyataan FALSE TRUE START END Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Program menggunakan_repeat_bersarang ; Uses wincrt; Var Ulang, mau : byte;
Begin ulang := 1 ; repeat
mau := 0; repeat Write('*'); mau := mau + 1 ; until ( mau >= ulang ); ulang := ulang + 1; writeln;
until ( ulang >= 6 ) End. * ** *** **** ***** Hasil yang tampak di layar Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 LATIHAN 1. Buatlah program dengan tampilan sbb : < perulangan for bersarang > 11111 1111 111 11 1 2. Buatlah program dengan ketentuan sbb : Lakukan perulangan sebanyak 3 kali untuk perhitungan luas segitiga Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 3. Buatlah program dengan tampilan sebagai berikut :
Isian yang ke 1 Nama Anda : Lusi < input > Hobby : renang < input > Hobby : menari < input > Hobby : menyanyi < input >
Isian yang ke 2 Nama Anda : Baron < input > Hobby : Makan < input > Hobby : Tidur < input > Hobby : Jalan-jalan < input > Gunakan perulangan bersarang : While For Repeat..until Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 PROSEDUR Suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub program. Prosedur ditulis dibagian deklarasi prosedur, diawali dengan kata procedure. Prosedur dipanggil dan digunakan dalam blok program yang lainnya dengan menyebutkan judul prosedur.
Prosedur banyak digunakan pada program yang terstruktur Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Contoh : Uses wincrt; Procedure garis ; { judul / nama procedure } Begin writeln ( ------------); End; { program utama } Begin Garis; { pemanggilan procedure } Writeln (AMIK Atma Luhur); Garis; { pemanggilan procedure } End. Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Parameter yang dikirimkan dari modul utama prosedur disebut dengan parameter nyata ( actual parameter ). Parameter yang ada dan dituliskan pada judul prosedur disebut dengan parameter formal ( formal parameter ). Proses pengiriman data lewat parameter nyata ke parameter formal disebut dengan parameter passing Parameter dapat dikirimkan secara nilai ( by value ) atau secara acuan ( by reference ). Pengertian istilah Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 a. Pengiriman parameter secara nilai ( by value ) Parameter formal di prosedur akan berisi nilai yang dikirimkan, yang kemudian bersifat lokal di prosedur. Perubahan nilai parameter formal di prosedur tidak akan mempengaruhi nilai parameter nyata ( nilai parameter nyata tetap tidak berubah ). Pengirimanya searah yaitu dari parameter nyata ke parameter formal dan tidak akan dikirimkan balik dari parameter formal ke parameter nyata.
Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Contoh program prosedur dengan pengiriman parameter secara nilai Uses wincrt; Procedure hitung ( g, h, I : integer ); { parameter formal } Begin I := g + h ; writeln (G = ,g, H = ,h, I = ,i ); End; Var x,y,z : integer ; Begin X := 1; y := 2; z := 0; Hitung ( x,y,z ); writeln ( X = ,x, Y = ,y, Z = ,z); End. Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 b. Pengiriman parameter secara acuan ( by reference ) Perubahan nilai parameter formal di prosedur akan mempengaruhi nilai parameter nyata. Pengiriman dua arah, bolak balik dari parameter nyata ke parameter formal dan dikirimkan balik dari parameter formal ke parameter nyata. Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Contoh program prosedur dengan pengiriman parameter secara nilai Uses wincrt; Procedure hitung ( var g, h, I : integer ); { parameter formal } Begin I := g + h ; writeln (G = ,g, H = ,h, I = ,i ); End; Var x,y,z : integer ; Begin X := 1; y := 2; z := 0; Hitung ( x,y,z ); writeln ( X = ,x, Y = ,y, Z = ,z); End. Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 c. Pengiriman parameter sebagian secara nilai ( by value ) sebagian secara acuan ( by reference ) Parameter yang hanya dibutuhkan pada prosedur dikirimkan secara nilai ( pengiriman satu arah ). Parameter yang akan dikirimkan balik dilakukan secara acuan ( pengiriman 2 arah ). Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Procedure hitung (g, h : integer ; var i: integer ;); { parameter formal } Begin I := g + h ; writeln (G = ,g, H = ,h, I = ,i ); End; Var x,y,z : integer ; Begin X := 1; y := 2; z := 0; Hitung ( x,y,z ); writeln ( X = ,x, Y = ,y, Z = ,z); End. Contoh program prosedur dengan pengiriman secara nilai Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Prosedur memanggil dirinya sendiri. Contoh : uses wincrt; var i : integer ; procedure rekursi; begin writeln('Pascal'); i := i + 1; if i <= 5 then rekursi; end;
begin i := 1; rekursi; end. Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 FUNGSI Hampir sama dengan prosedur, hanya fungsi harus dideklarasikan dengan tipenya, yang menunjukkan tipe data hasil dari fungsi. Tipe hasil dari fungsi harus merupakan tipe yang sederhana. seperti : integer, byte, char, real dan boolean. Pengiriman nilai fungsi sama halnya dengan pengiriman nilai di prosedur secara nilai ( by value ) dan secara acuan ( by reference ) Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Pengiriman Parameter secara Nilai ( By Value ) Uses wincrt; Function hitung(a,b : integer ) : integer; Begin hitung := a + b ; End; Var x,y : integer; Begin x := 1; y:= 2; writeln(X = ,x, Y = ,y, X + Y = ,hitung(x,y)); end. Algoritma Pemrograman dan Struktur Data I Atma Luhur 2009 Pengiriman Parameter secara Acuan ( By Reference ) Uses wincrt; Function hitung (var a,b,c : integer ) : integer; Begin hitung := a + b ; c := a * b ; End; Var x,y,z : integer; Begin x := 1; y:= 2; z:= 0; writeln(X = ,x, Y = ,y, X + Y = ,hitung(x,y,z)); writeln(X = ,x, Y = ,y, X * Y = ,z); end.