BAB I ALGORITMA DAN PEMROGRAMAN
|
|
|
- Lanny Sudirman
- 9 tahun lalu
- Tontonan:
Transkripsi
1 BAB I ALGORITMA DAN PEMROGRAMAN Pengantar Algoritma Apakah Algoritma? Sejarah kata Algoritma berasal dari nama seorang ahli matematika bangsa Arab yaitu Abu Ja'far Muhammad ibnu Musa al-khuwarizmi. Al-Khuwarizmi dibaca oleh orang Barat menjadi Algorism. Perubahan kata algorism menjadi algorithm karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran sm berubah menjadi thm. Lambat laun kata algorithm dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna aslinya. Dalam bahasa Indonesia kata algorithm diserap menjadi algoritma. Definisi Algoritma adalah : Susunan langkah-langkah sistematis dan logis dalam pemecahan suatu masalah. Ada 3 cara dalam menyusun algoritma yaitu : Algoritma cara ke-1 : Dengan merumuskan langkah-langkah pemecahan masalah melalui kalimat yang tersetruktur (tersusun secara logis). Contoh : Ada persoalan sbb : Dua buah gelas misalkan gelas A berisi air warna merah dan gelas B berisi air warna biru. Permasalahannya adalah bagaimana mempertukarkan isi kedua gelas A dan B sehingga gelas A berisi air warna biru dan gelas B berisi air warna merah. Buatlah algoritmanya. Jawab : Langkah-langkahnya sbb: 1. Sediakan satu gelas kosong misalkan C 2. Tuangkan isi gelas A ke gelas C 3. Tuangkan isi gelas B ke gelas A 4. Tuangkan isi gelas C ke gelas B 5. Selesai {Program : URUT.PAS} PROGRAM URUT_DATA; USES CRT; VAR D,X,Z : BYTE; T : LONGINT; R : REAL; DATA : ARRAY[1..5] OF BYTE; BEGIN CLRSCR; T:=0; FOR D:=1 TO 5 DO BEGIN Write('DATA KE ',D,' : '); ReadLn(DATA[d]); T:=T+Data[d]; END; 54n1 Untuk Kalangan Sendiri Hal : 1
2 WriteLn; Write('Data sebelum diurut : '); FOR D:= 1 TO 5 DO Write(Data[d]:3); { URUT DATA -----} FOR D:= 1 TO 4 DO BEGIN FOR X:= D+1 TO 5 DO BEGIN IF DATA[d] > DATA[x] THEN BEGIN Z:=DATA[d]; DATA[d] := DATA[x]; DATA[x] := Z; END; END; END; WriteLn; WriteLn; Write('DATA SETELAH DIURUT : '); FOR D:=1 TO 5 DO WRITE(DATA[d]:3); WRITELN; WRITELN('TOTAL : ',T); R:=T/D; WRITELN('RATA : ',R:10:2); READLN; END. Algoritma cara ke-2 : Menggabungkan kalimat dengan penggalan statements yang ada di suatu bahasa pemrograman (mis : Pascal ). Biasa disebut Pseudo code (mirip kode/perintah pemrograman) Contoh : Algoritma untuk konversi bilangan berbasis-10 menjadi bilangan berbasis INPUT a { a adalah bilangan bebasis 10} Hit = 1 { hit adalah indeks untuk menyimpan sisa hasil bagi } 2. DO WHILE a>0 sb = sisa bagi a dengan 2 bil(hit) = sb hit = hit + 1 a = hasil pembagian a dengan 2 ENDDO 3. DO WHILE hit > 0 cetak bil(hit); hit = hit + 1 ENDDO 54n1 Untuk Kalangan Sendiri Hal : 2
3 Algoritma cara ke-3 : Menggunakan diagram alir (flowchart). Lambang lambang flowchart secara umum No Lambang Keterangan 1 Terminal (Start atau Finish) : Sebagai lambang untuk mengawali flowchart dan mengakhiri flowchart. 2 Input atau Output : Sebagai lambang untuk memasukkan data atau mengeluarkan data atau hasil proses data 3 Proses : Sebagai lambang proses terhadap data maupun formulasi matematis lainnya. 4 Predefined proses : Merupakan suatu Prosedur atau Rutin atau Sub Program baik yang terpisah dari program utama maupaun yang terpadu dalam satu program. 5 Preparasi : Pemberian harga awal terhadap suatu pengenal ( indentifier) yang akan digunakan 6 Decision ( Pengambilan keputusan berdasarkan hasil pengujian ekspresi logis apakah hasilnya True atau False ) 7 Connector dalam satu halaman 8 Connector ke halaman lain 9 Line : Sebagai lambang arah / arus dari aliran program Gambar 1.1 : Lambang-lambang flowchart. 54n1 Untuk Kalangan Sendiri Hal : 3
4 Contoh: flowchart konversi bilangan basis 10 menjadi bilangan basis-2 : START L HIT = 1 No INPUT - A Yes HIT>0 END SB=MOD(A/2) BIL(HIT)=SB HIT=HIT+1 A=DIV(A/2) Cetak Sisa Hasil Bagi dari Belakang ke Depan HIT = HIT - 1 No A=0? Yes Gambar 1.2 : Flowchart konversi bil desimal ke biner. Buatlah program menggunakan Turbo Pascal untuk konversi bil basis 10 ke bil basis 2 sesuai flowchart diatas. Simpan program dengan nama Biner.Pas { Nama Program : Biner.Pas } Program Konversi_Biner; Uses Crt; Var Hit,A,SB : Integer; Bil:Array[1..100] of Integer; ClrScr; Write('Masukan bilangan basis 10 : '); ReadLn(A); Hit:=1; Repeat SB := A Mod 2; Bil[Hit]:=SB; Hit:=Hit+1; A := A Div 2; Until A=0; Writeln; Repeat Write(Bil[Hit]:2); Hit:=Hit-1; Until Hit=0; ReadLn; End. L 54n1 Untuk Kalangan Sendiri Hal : 4
5 Algoritma merupakan jantung Ilmu Informatika Algoritma adalah merupakan jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma. Namun jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Cara membuat kue atau masakan yang dinyatakan dalam resep masakan, itu juga merupakan algoritma. Ibu-ibu yang mencoba resep masakan tersebut akan membaca satu persatu langkah pembuatannya, lalu mengerjakan proses (melakukan aksi) sesuai yang ia baca. Secara umum, pihak yang mengerjakan proses disebut pemroses (processor). Pemroses dapat berupa manusia, komputer, robot, alat mekanik, alat elektronik dll. Melaksanakan algoritma berarti mengerjakan langkah-langkah yang tertulis dalam algoritma tersebut. Mekanisme Pelaksanaan Algoritma Agar algoritma dapat dilaksanakan dalam komputer maka algoritma harus di ubah ke notasi bahasa pemrograman sehingga disebut program. Jadi program adalah merupakan perwujudan atau implementasi dari algoritma. Program ditulis dalam salah satu bahasa pemrograman. Kegiatan menulis program disebut pemrograman(programming). Orang yang menulis program disebut pemrogram (programmer). Tiap langkah di dalam program disebut pernyataan atau instruksi. Jadi program adalah : "Sederetan instruksi yang sistematis dan logis yang menggunakan sintaks tertentu untuk menyelesaikan permasalahan". Secara garis besar komputer tersusun atas 4 komponen utama yaitu : 1. Input device (piranti masukan) 2. Output device (piranti keluaran) 3. Unit pemroses utama (Central Processing Unit ) 4. Memory (piranti penyimpan sementara) Mekanisme kerja ke-empat komponen tersebut dapat dijelaskan sbb : - Program dimasukan kedalam memori komputer. - Setiap instruksi yang ada di memori di dikirim ke CPU untuk dieksekusi. - CPU mengerjakan operasi-operasi yang bersesuain dengan instruksi tsb. Bila operasi memerlukan data maka data dibaca dari pirnati masukan. Data yang dimasukan disimpan dimemori lalu dikirim ke CPU untuk operasi yang memerlukan operasi tadi. Bila proses menghasilkan keluaran atau informasi, maka keluaran disimpan ke memori, lalu memori menuliskan keluaran ke piranti keluaran (mis : screen atau printer) Perbedaan belajar Memprogram dengan Belajar Bahasa Pemrograman - Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya kedalam suatu notasi yang mudah dipahami. Belajar algoritma sama dengan belajar memprogram. - Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan dan tata bahasanya, instruksi-instruksinya, cara pengoreasian compiler-nya. Belajar bahasa program contohnya adalah belajar Turbo- Pascal. 54n1 Untuk Kalangan Sendiri Hal : 5
6 Pemrograman Prosedural. Bahasa pemrograman yang menerapkan konsep prosedural didalam penulisan programnya misalnya adalah T.Pascal. Teknik pemrograman prosedural adalah : program di bagi menjadi beberapa bagian program yang lebih kecil yang disebut modul atau sub program atau rutin atau procedure atau function. Bagian-bagian program kecil ini nantinya di kontrol atau dikendalikan dari program utama (main program). Setiap sub program dapat di panggil berkali-kali dari program utama. Perhatikan skema konsep pemrograman prosedural berikut ini. ** Program Utama {statements} CALL Proc1 {statements} Procedure Proc1 {statements} EXIT CALL Proc2 {statements} END Procedure Proc2 {statements} EXIT Gambar 1.3 : Diagram konsep prosedural. Program Utama memanggil sub program Procedure Proc1 kemudian melaksanakan semua statements yang ada di sub program Procedure Proc1 hingga selesai (disini digambarkan dengan Exit). Kemudian program keluar dari sub program dan kembali ke perintah (statements) dibawah pemanggil. Demikian juga dengan prosedur-prosedur yang lain. Contoh : { Program: Modular1.Pas} Program Prosedure1; Uses Crt; Label Ulang; Var Pilihan : integer; { } Procedure Pros_Persegi; Var P,L,Luas : Integer; ClrScr; WriteLn('Menghitung Luas Persegi Panjang'); Write('Masukkan Panjang : '); ReadLn(P); 54n1 Untuk Kalangan Sendiri Hal : 6
7 Write('Masukkan Lebar Luas := P * L; Write('Luas adalah ReadLn; End; : '); ReadLn(L); : ',Luas:10); { } Procedure Pros_Lingkaran; Var R, Luas : Real; ClrScr; WriteLn('Menghitung Luas Lingkaran'); Write('Masukkan Panjang Jari-jari: '); ReadLn(R); Luas := Pi * R * R; Write('Luas adalah ReadLn; End; : ',Luas:10:5); { } Procedure Pros_Kubus; Var S, Volume : Integer; ClrScr; WriteLn('Menghitung Volume Kubus'); Write('Masukkan Panjang Sisi kubus: '); ReadLn(S); Volume := S * Sqr(S); Write('Luas adalah ReadLn; End; : ',Volume:10); { Bag Utama Program } ulang: ClrScr; WriteLn('Ini modul utama '); WriteLn('1. Luas Persegi panjang '); WriteLn('2. Luas Lingkaran '); WriteLn('3. Volume Kubus '); WriteLn('4. Selesai '); WriteLn; Write('Pilihan anda : '); ReadLn(Pilihan); Case Pilihan of 1 : Pros_Persegi; 2 : Pros_Lingkaran; 3 : Pros_Kubus; Else Exit; End; GoTo ulang; ReadLn; End. 54n1 Untuk Kalangan Sendiri Hal : 7
8 BAB-2 Aturan Penulisan Teks Algoritma Teks Algoritma Agar algoritma mudah ditranslasikan ke dalam notasi bahasa pemrograman, maka sebaiknya notasi algoritmik tersebut berkoresponden dengan notasi bahasa pemrograman secara umum. Misalkan kita menulis perintah : tulis nilai x dan y dalam notasi algoritmik ditulis menjadi : write(x,y) Tabel notasi algoritmik No. Notasi biasa Notasi algoritmik Notasi T.Pascal 1 masukan nilai x readln(x) ReadLn(x); 2 isikan nilai 5 kedalam x x 5 X:=5; 3 isikan nilai x kedalam min min x Min:=x; 4 tambahkan nilai 1 ke X itulah X x x + 1 X:=x+1; 5 tulis nilai x dan y write(x,y) Write(x,y); 6 jika a lebih besar dari b maka if a>b then If a>b Then Aturan diatas tidak baku, hanya penyesuaian dengan bahasa pemrograman Turbo Pascal. Pada dasarnya teks algoritma tersusun dari 3 bagian (blok) yaitu : 1. Kepala Algoritma atau judul (header) 2. Bagian deklarasi. 3. Bagian deskripsi (uraian) algoritma. - Header atau kepala algoritma bagian yang terdiri dari nama algoritma dan penjelasan singkat (spesifikasi) tentang algoritma tersebut. Penjelasan di apit tanda kurung kurawal { - }. - Deklarasi merupakan bagian untuk mendefinisikan semua nama yang dipakai dalam algoritma. Nama dapat berupa nama peubah, tetapan, tipe, prosedur, fungsi, dll. - Deskripsi merupakan bagian yang menjelaskan atau menguraikan langkahlangkah penyelesaian masalah. Uraian ditulis baris perbaris sesuai urutan yang harus dikerjakan secara sistematis. Gambaran sebuah algoritma seperti berikut : Algoritma NAMA_ALGORITMA { penjelasan tentang algoritma yang berisi uraian singkat mengenai apa yang dilakukan oleh algoritma} DEKLARASI : { semua nama yang dipakai meliputi nama peubah, tetapan, tipe, prosedur, fungsi, label didefinisikan di bagian ini } DESKRIPSI : { semua langkah/aksi algoritma ditulis dibagian ini } 54n1 Untuk Kalangan Sendiri Hal : 8
9 Translasi teks algoritma ke dalam Teks Program Teks algoritma hanya berisi pemikiran konseptual. Agar dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan kedalam notasi bahasa pemrograman tertentu. Dalam hal ini kita akan mentranslasikan kedalam notasi bahasa pemrograman pascal. Algoritma Algoritma UPAH_KARYAWAN {menghitung upah mingguan karyawan. Masukkan yang dibaca dari papan kunci adalah nama karyawan, golongan, dan jumlah jam kerja. nama karyawan dan upah kerja dicetak ke piranti keluaran} DEKLARASI const UL = 3000 {upah lembur/jam} Nama : String gol : char {'A','B','C','D'} JJK : integer upah : real UJ : real {upah per jam} DESKRIPSI Read(Nama, gol, JJK) Case (gol) gol='a' : UJ < gol='b' : UJ < gol='c' : UJ < gol='d' : UJ < endcase If JJK <= 48 then upah <- JJK * UJ else upah <- 48 * UJ + (JJK-48) * UL endif write(nama, upah) Kode program dengan Pascal Program UPAH_KARYAWAN; {menghitung upah mingguan karyawan. Masukkan yang dibaca dari papan kunci adalah nama karyawan, golongan, dan jumlah jam kerja. nama karyawan dan upah kerja dicetak ke piranti keluaran} Uses Crt; const UL = 3000; {upah lembur/jam} Var Nama : String; gol : char; {'A','B','C','D'} JJK : integer; upah : real; UJ : real; {upah per jam} ClrScr; Write('Nama : ');ReadLn(Nama); Write('Gol : ');ReadLn(gol); Write('Jlh jam kerja:');readln(jjk); Case gol of 'A' : UJ := 4000; 'B' : UJ := 5000; 'C' : UJ := 6000; 'D' : UJ := 7500; end; If JJK <= 48 then upah := JJK * UJ else upah := 48 * UJ + (JJK-48) * UL; writeln('nama : ',nama); writeln('upah : ',upah:10:2); ReadLn; End. Sebelum kita bisa mentranslasikan notasi algoritma ke notasi bahasa pemrograman Turbo Pascal maka sebaiknya kita perlu mengetahui struktur dasar penulisan program pascal. Dibawah ini adalah skema struktur penulisan program pada T.Pascal secara umum sebagai berikut. 54n1 Untuk Kalangan Sendiri Hal : 9
10 Bag. Judul program Program Latihan; Bag. Deklarasi Deklarasi Unit Pascal Uses Crt; Deklarasi Pengenal Var Nama : String ; Gaji : LongInt; Bag. Blok Utama program ClrScr; Write('Nama : '); ReadLn(Nama); Write('Gaji Pokok : '); ReadLn(Gaji); ReadLn; End. Gambar 2.1 : Struktur penulisan program pada T.Pascal Bag. Judul : Bagian ini untuk memberikan judul dari program yang akan dibuat. Judul ini sama dengan header pada algoritma. Penulisan judul diawali Clausa "Program" diikuti nama program yang diberikan oleh pemrogram. Nama program dibuat sedapat mungkin berkoresponden dengan isi program. Judul program bersifat optional artinya boleh tidak dibuat dan tidak akan mengganggu jalannya program. Bag. Deklarasi : Bagian ini terbagi menjadi dua kategori yaitu : - deklarasi unit-unit pascal yaitu menyertakan unit-unit pascal yang nantinya akan mendukung proses compilasi program. Beberapa unit pascal daintaranya adalah Crt, Print, Graph, Windos dll. Deklarasi unit pascal diawali dengan clausa "USES" diikuti dengan nama unit-nya. Misalnya : Uses Crt; - deklarasi pengenal untuk mendefinisikan pengenal-pengenal yang akan digunakan dalam program utama. Pengenal dapat berupa Type, Constanta, Variabel, Label, Prosedur, Fungsi. Deklarasi pengenal diawal dengan clausa dari masing-masing jenis pengenal lalu diikuti nama pengenal beserta tipenya. Berikut ini adalah clausa yang dimasud. 54n1 Untuk Kalangan Sendiri Hal : 10
11 Type --> clausa untuk pengenal berupa type buatan. Const --> clausa untuk pengenal berupa constanta (tetapan). Var --> clausa untuk pengenal berupa variabel (peubah). Label --> clausa untuk pengenal berupa Label (pengenal baris). Procedure --> clausa untuk pengenal berupa prosedur. Function --> clausa untuk pengenal berupa fungsi. Bag. Blok Utama program Bagian ini adalah bagian utama program. Blok utama program diawal clausa "BEGIN" dan diakhiri clausa "END." CONTOH : Program Contoh_Program1; Uses Crt; Const Harga = 1000; var Jumlah : Integer; HasilX : Real; Bagin ClrScr; Jumlah := 10; HasilX := Jumlah * Harga; Writeln( Hasil perkaliannya adalah :,HasilX); ReadLn; End. Blok Utama 54n1 Untuk Kalangan Sendiri Hal : 11
12 BAB III Tipe, Nama, dan Nilai Pengenal Pengantar Pada umumnya, program komputer bekerja dengan memanipulasi objek(data) di dalam memori. Objek yang akan diprogram bermacam-macam jenis atau tipenya, misalnya nilai numerik, karakter, string dan rekaman (record). Suatu tipe menyatakan pola penyajian data dalam komputer. Tipe data dapat dikelompokan menjadi atas dua macam: tipe data dasar dan tipe tipe bentukan. Tipe dasar adalah tipe yang dapat langsung dipakai, sedangkan tipe bentukan dibentuk dari tipe dasar. Suatu tipe diacu dari namanya. Nilai-nilai yang dicakup oleh tipe tersebut dinyatakan di dalam ranah (domain) nilai. Tipe Dasar - Bilangan Logika - Bil Bulat - Bil Riil - Karakter Tipe Bilangan Logika Bilangan Bulat Bilangan Riil Nama Tipe Ranah Nilai Tetapan Operasi boolean True atau False True dan not, and, or, False xor integer 1.byte tidak mengandung 1. aritmatika (+ - * div mod ) 2.shortInt word titik 2. perbandingan desimal 4.integer (<, <=, >,>=, =, <>) 5.LongInt real 1. real 2.9x x single 1.5x x double 5.0x x extended 3.4x x Karakter char - semua alfabet - semua angka - tanda baca - operator aritmatik - karakter khusus harus ditulis dengan titik desimal harus diapit tanda petik tunggal 1. aritmatika (+ - * / ) 2. perbandingan (<, <=, >,>=, <>) perbandingan (=, <>, <, >, >=) 54n1 Untuk Kalangan Sendiri Hal : 12
13 Tipe Bentukan - String. - Tipe dasar yang diberi nama tipe baru. - Rekaman (record). Tipe Nama Ranah Nilai Tetapan Operasi Tipe String string deretan karakter yang harus 1. didefinisikan pada ranah diapit Penyambungan karakter petik (+) tunggal 2. Perbandingan (=, <>, <, >, >=, <=) hasil operasi berupa bilangan logic (true/false) Tipe dasar yang diberi nama tipe baru : Kita dapat memberi nama baru untuk tipe dasar dengan kata kunci type ranah nilai, tetapan dan operasi sama seperti tipe dasar aslinya. Contoh : type BilBulat : integer; BilBulat adalah tipe bilangan bulat yang sama dengan tipe integer. Rekaman Rekaman disusun oleh satu atau lebih field. Tiap field menyimpan data dari tipe dasar tertentu atau tipe bentukan yang sudah didefinisikan. Nama rekaman ditentukan oleh pemrogram sendiri. Contoh : NilMhs adalah nama tipe tersetruktur yang menyatakan nilai ujian seorang mahasiswa untuk suatu mata kuliah (MK) yang diambil. Data setiap mahasiswa adalah NIM (Nomor Induk Mahasiswa), Nama Mahasiswa, Kode Mata Kuliah, Nilai mata kuliah. NIM NamaMhs KodeMK Nilai Cara menuliskan tipe NilMhs : type NilMhs : record < NIM : string { Nomor Induk Mahasiswa} NamaMhs : string 54n1 Untuk Kalangan Sendiri Hal : 13
14 KodeMK : string {kode mata kuliah} Nilai : integer {nilai M.Kuliah } > Jika dideklarasikan M adalah peubah bertipe NilMhs, maka cara mengacu tiap field pada rekaman M adalah : M.NIM M.NamaMhs M.KodeMK M.Nilai Tipe NilMhs didefinisikan sebagai berikut : Nama Tipe : NilMhs Ranah Nilai : sesuai ranah masing-masing field Contoh tetapan: <' ', 'Shulthan Sany', 'FI123',85> Operasi <' ','Sundari Zahra','MA222',78> : - operasi aritmatik bilangan bulat terhadap Nilai - operasi string terhadap NIM, NamaMhs, KodeMK Nama Setiap objek diberi nama agar objek tersebut mudah diindentifikasi dari objek lainnya. Dalam algoritma nama dipakai sebagai pengindentifikasi "sesuatu" dan pemrogram mengacu "sesuatu" itu melalui namanya. Karena itu tiap nama haruslah unik (tidak sama). Didalam algoritma "sesuatu" yang diberi nama itu dapat berupa : 1. Label Label merupakan pengenal baris. Suatu baris dalam program diberi nama/pengenal. Label ini diberikan pada baris tertentu biasanya untuk instruksi percabangan. 2. Peubah (variabel) Variabel adalah alamat memory yang diberi nama sebagai tempat penyimpan data/informasi dan isi variabel dapat diubah. 3. Tetapan (constanta) Sama dengan variabel tetapi isinya tetap (tidak bisa diubah) selama pelaksanaan program. 4. Tipe bentukan. Nama tipe bentukan diberikan oleh pemrogram. 5. Fungsi (function). 6. Prosedur (procedure). Nilai - Pengisian nilai ke dalam nama peubah Nilai adalah besaran dari tipe data yang sudah dikenal. Nilai dapat berupa isi yang disimpan oleh nama peubah (variabel) atau nama tetapan(constanata), atau hasil dari perhitungan atau nilai yang dikirim oleh fungsi lain. Cara mengisi nilai ke dalam nama peubah dapat dilakukan sbb : Pengisian nilai secara langsung. Nama := 'Budi Santoso'; Gaji := ; Tunj := Gaji * 0.1; Pembacaan nilai dari piranti masukan (input device) 54n1 Untuk Kalangan Sendiri Hal : 14
15 ReadLn(Nama); ReadLn(Gaji); - Ekspresi Transformasi nilai(data) menjadi keluaran(informasi) melalui suatu proses perhitungan dinyatakan dalam suatu ekspresi. Ekspresi terdiri dari operand dan operator. Operand adalah nilai yang dioperasikan, operator adalah lambang untuk operasi. Ada tiga macam ekspresi yaitu : Ekspresi Aritmatik menggunakan operator aritmatika. c:=a*b; a:=a+1; d:=(a+b)/c*0.1; Operator yang digunakan ( +, -, *, /, div, mod, sqr, sqrt) Ekspresi Relational (ekspresi perbandingan yang menghasilkan nilai boolean) a>b; a>=d; c=d; e<f; Operator yang digunakan (<, <=, >, >=, =, <>) Ekspresi Relational menggunakan operator (not, and, or, xor ). Ekpresi ini menghasilkan nilai boolean (True atau False). Kondisi 1 Kondisi 2 AND OR XOR T T T T F T F F T T F T F T T T T F F F Not -T F Not - F T Ekspresi String Ekspresi string adalah ekspresi dengan operator "+" (operator penyambungan/concatenation). a:='budi'; b:='joko'; write(a+b); { BudiJoko} - Menuliskan Nilai kepiranti keluaran (output device) Nilai yang disimpan dimemori dapat ditampilkan ke piranti keluaran (misalnya layar peraga). Instruksi penulisan nilai dilakukan dengan notasi Write Nama := 'Budi Santoso'; Gaji := ; Tunj := Gaji * 0.1; WriteLn(Nama); WriteLn(Gaji); WriteLn(Tunj); 54n1 Untuk Kalangan Sendiri Hal : 15
16 BAB IV Struktur Dasar Algoritma Dasar-dasar Algoritma Proses, Instruksi dan Aksi Tiap langkah instruksi mengerjakan suatu tindakan (aksi). Bila suatu aksi dilaksanakan, maka sejumlah operasi yang bersesuaian dengan aksi itu dikerjakan oleh pemroses. Efek dari pengerjaan suatu aksi dapat diamati dengan membandingkan keadaan pada saat aksi belum dimulai t 0 dan keadaan setelah aksi selesai dikerjakan t 1. t 0 t 1 : keadaan sebelum aksi dikerjakan aksi : keaaan setelah aksi dikerjalan Struktur Dasar Algoritma Konstruksi algoritma dibangun atas 3 konstruksi dasar yaitu : - Runtunan aksi - Pemilihan aksi - Pengulangan aksi Runtunan Aksi (Squence) Proses pelaksanaan instruksi dikerjakan beruntun dari urutan istruksi pertama, instruksi kedua, instruksi ketiga dan seterusnya hingga berakhir atau berhenti karna ada kesalahan isntruksi. Urutan instruksi menentukan keadaan akhir dari algoritma. Bila urutannya diubah maka kemungkinan hasil akhir juga berubah. Perhatikan ilustrasi berikut. Misalkan runtunan instruksi yang dilambangkan dengan A1, A2, A3, A4 dan A5 yang disusun sbb : A1 A2 A3 A4 A5 Mula-mula pemroses malaksanakan istruksi A1. Selesai instruksi A1 dilanjutkan pelaksanaan instruksi A2. Intrsuksi A3 akan dilaksanakan jika instruksi A2 selesai dikerjakan dan seterusnya hingga A5. Pelaksanaan instruksi akan berurut kecuali jika ada perintah percabangan. Pengaruh urutan instruksi terhadap hasil adalah apabila urutan diubah maka hasil akhir kemungkinan juga berubah. Contoh : Kita ambil persoalan seperti pada bab-i Ada persoalan sbb : Dua buah gelas misalkan gelas A berisi air warna merah dan gelas B berisi air warna biru. Permasalahannya adalah bagaimana 54n1 Untuk Kalangan Sendiri Hal : 16
17 mempertukarkan isi kedua gelas A dan B sehingga gelas A berisi air warna biru dan gelas B berisi air warna merah. Buatlah algoritmanya. Jawab : Langkah-langkahnya sbb: 1. Sediakan satu gelas kosong misalkan C 2. Tuangkan isi gelas A ke gelas C 3. Tuangkan isi gelas B ke gelas A 4. Tuangkan isi gelas C ke gelas B 5. Selesai Hasil akhir adalah gelas A berisi larutan biru dan gelas B berisi larutan merah. Keadaan hasil akhir ini adalah jawaban yang sesuai dengan keinginan algoritma. Jika urutan diubah Langkah-langkahnya sbb: 1. Sediakan satu gelas kosong misalkan C 2. Tuangkan isi gelas B ke gelas A 3. Tuangkan isi gelas A ke gelas C 4. Tuangkan isi gelas C ke gelas B 5. Selesai Hasil akhir adalah gelas A kosong dan gelas B berisi larutan campuran merah dan biru. Keadaan hasil akhir ini adalah jawaban yang tidak sesuai dengan keinginan algoritma. Contoh A {Program : Lagu.Pas} Program LaguIndonesiaRaya; Uses Crt; Contoh B {Program : Lagu.Pas} Program LaguIndonesiaRaya; Uses Crt; ClrScr; WriteLn('Indonesia tanah airku'); WriteLn('Tanah tumpah darahku'); WriteLn('Disanalah aku berdiri'); WriteLn('Jadi pandu ibuku'); ReadLn; End hasil Indonesia tanah airku Tanah tumpah darahku Disanalah aku berdiri Jadi pandu ibuku ClrScr; WriteLn('Disanalah aku berdiri'); WriteLn('Tanah tumpah darahku'); WriteLn('Indonesia tanah airku'); WriteLn('Jadi pandu ibuku'); ReadLn; End hasil Disanalah aku berdiri Tanah tumpah darahku Indonesia tanah airku Jadi pandu ibuku 54n1 Untuk Kalangan Sendiri Hal : 17
18 BAB V Pemilihan aksi Pemilihan Aksi (Selection) Adakalanya suatu instruksi hanya akan dikerjakan jika kondisi tertentu dipenuhi dan tidak akan dikerjakan kalau kondisi tertentu tersebut tidak terpenuhi. Untuk mengambil keputusan (decision) apakah instruksi akan dikerjakan atau tidak, maka struktur penulisan secara umum dapat dituliskan sbb : Ada dua model untuk melakukan decision yaitu : 1. Dengan struktur If Then Else - EndIf 2. Dengan struktur Case of Else EndCase Bentuk struktur If Then Else EndIf If <kondisi> Then Aksi; ATAU If <expresilogic> Then Aksi; Kondisi; berupa ekspresi logic yang akan diperiksa oleh pemroses. Ekpresi logic ini akan menghasilkan nilai logika (kebenaran/kepatutan) yaitu True atau False. Pemroses akan menguji <kondisi> yang ditentukan, jika <kondisi> bernilai benar (True) maka Aksi akan diproses, tetapi jika <kondisi> bernilai salah (False) maka Aksi tidak akan diproses. Bila Aksi lebih dari satu; maka aksi-aksi tersebut diblok oleh End. Pelaksanaan instruksi akan dilanjutkan pada instruksi-instruksi di bawah Aksi Bentuk penulisan struktur pemilihan diatas hanya memberikan satu pilihan aksi saja yaitu bila kondisi bernilai benar dan tidak memberikan pilihan aksi lain bila kondisi bernilai salah. Bentuk pemilihan yang lebih umum adalah memilih satu dari dua pilihan aksi bergantung pada nilai kondisinya benar atau salah. Bentuk yang dimaksud dalah : If <kondisi> Then Aksi_1 Else Aksi_2; False ExpLogic True Aksi_2 Aksi_1 Else artinya "selain itu" atau "kalau tidak". Bila kondisi benar maka Aksi_1 yang diproses, kalau tidak benar maka Aksi_2 yang diproses. 54n1 Untuk Kalangan Sendiri Hal : 18
19 If <explogic> Then Aksi_1a; Aksi_1b; End Else Aksi_2a; Akso_2b; End; Contoh program : { Nama Program : If1.Pas } Program Jenis_Kelamin; USES CRT; VAR JK:CHAR; BEGIN CLRSCR; WRITE('JENIS KELAMIN : '); READLN(JK); IF JK = 'L' THEN WRITELN('LAKI-LAKI') ELSE WRITELN('PEREMPUAN'); READLN; END. Untuk pilihan kondisi yang lebih dari dua adalah sbb : IF <kondisi_1> Then Aksi_1 Else If <kondisi_2> Then Aksi_2 Else If <kondisi_3> Then Aksi_3. Else Aksi_n; False False False ExpLogic1 ExpLogic2 ExpLogic3 Aksi_N; True True True Aksi_1 Aksi_2 Aksi_3 54n1 Untuk Kalangan Sendiri Hal : 19
20 Contoh program: { Nama Program : If2.Pas } Program Nama_Bulan; USES CRT; VAR BULAN:INTEGER; NAMABULAN:STRING; BEGIN CLRSCR; WRITE('MASUKKAN SUATU BILANGAN : '); READLN(BULAN); IF BULAN=1 THEN NAMABULAN:='JANUARI' ELSE IF BULAN=2 THEN NAMABULAN:='FEB' ELSE IF BULAN=3 THEN NAMABULAN:='MAR' ELSE IF BULAN=4 THEN NAMABULAN:='APR' ELSE IF BULAN=5 THEN NAMABULAN:='MEI' ELSE IF BULAN=6 THEN NAMABULAN:='JUN' ELSE IF BULAN=7 THEN NAMABULAN:='JUL' ELSE IF BULAN=8 THEN NAMABULAN:='AGT' ELSE IF BULAN=9 THEN NAMABULAN:='SEP' ELSE IF BULAN=10THEN NAMABULAN:='OKT' ELSE IF BULAN=11THEN NAMABULAN:='NOP' ELSE IF BULAN=12 THEN NAMABULAN:='DES' ELSE NAMABULAN:='SALAH'; WRITELN('NAMA BULAN : ', NAMABULAN); READLN; END. 54n1 Untuk Kalangan Sendiri Hal : 20
21 Bentuk struktur Case of Else EndCase Bentuk lain yang bisa digunakan untuk pemilihan aksi berdasarkan kondisi adalah : Case variabel of Nilai1 : aksi_1; Nilai2 : aksi_2; Nilai3 : aksi_3; Nilai_n : aksi_n; Else Aksi_akhir; End; Nilai variabel akan di cek; jika nilainya ber-nilai1 maka aksi_1 yang diproses, jika ber-nilai2 maka aksi_2 yang diproses dan jika semua nilai tidak ada yang cocok maka aksi_akhir yang diproses. Contoh program: { Nama Program : Case1.Pas } Program Kelompok_Usia; USES CRT; VAR UMUR :INTEGER; NAMA,KELOMPOK: STRING; BEGIN CLRSCR; WRITE('MASUKAN NAMA ANDA :');READLN(NAMA); WRITE('MASUKKAN UMUR ANDA:');READLN(UMUR); CASE UMUR OF 0..5 : KELOMPOK := 'BALITA'; : KELOMPOK := 'ANAK-ANAK'; : KELOMPOK := 'REMAJA'; : KELOMPOK := 'DEWASA'; : KELOMPOK := 'MANULA'; ELSE KELOMPOK:='LUAR BIASA'; END; WRITELN(NAMA,' KAMU TERGOLONG ', KELOMPOK); READLN; END n1 Untuk Kalangan Sendiri Hal : 21
22 Contoh program : {Program : Case2.Pas} Program CaseOfElse; Uses Crt; Var NilAng : Integer; NilHur : string[1]; Clrscr; Write('Input Nilai Angka :'); Readln(NilAng); Case NilAng Of : NilHur:='A'; : NilHur:='B'; : NilHur:='C'; : NilHur:='D'; : NilHur:='E'; Else NilHur:='K'; End; Write('Nilai Huruf :',NilHur); Readln; End Contoh program: { Nama Program : Repeat1.Pas } Program Faktorial; USES CRT; VAR U,N:INTEGER; F:LONGINT; BEGIN CLRSCR; WRITE('BERAPA FAKTORIAL? : ');READLN(N); F:=1; u:=0; Repeat U:=U+1; F:=F*U; Until U = N; WRITELN(F); READLN; END n1 Untuk Kalangan Sendiri Hal : 22
23 Pengulangan Aksi (Repetition) BAB VI Pengulangan aksi Salah satu kelebihan komputer adalah kemampuannya melakukan pekerjaan yang sama berulang kali dengan cepat tanpa mengenal lelah. Misalkan kita diminta untuk menulis kata "Merdeka" sebanyak 1000 kali maka kita selain lelah juga bosan dan memakan waktu yang relatif lama. Tetapi tidak demikian halnya dengan komputer Untuk dapat melakukan pekerjaan yang sama dan berulangulang sebanyak yang diinginkan maka kita dapat menuliskan algoritma-nya sesuai dengan struktur umum pengulangan seperti dibawah ini. Ada tiga macam bentuk pengulangan yang dapat dibuat yaitu : 1. For To Do - EndFor 2. Repeat Until 3. While Do - EndWhile Bentuk Umum Struktur Pengulangan Cara 1. For peubah N awal To N akhir DO Aksi_1 Aksi_2... EndFor Cara 2. Repeat Aksi_1 Aksi_2... Until <kondisi> Cara 3. While <kondisi> Do Aksi_1 Aksi_2... EndWhile Struktur pengulangan yang ada pada Turbo Pascal adalah seperti berikut. Cara 1. For Variabel := N 1 To N 2 DO Aksi_1; Aksi_2;... End; Cara 2. Repeat Aksi_1; Aksi_2;... Until <kondisi>; Cara 3. While <kondisi> Do Aksi_1; Aksi_2;... End; Ket : 1. For To Do Variabel akan diisi nilai mulai dari N1 hingga mencapai nilai N2. Setiap kali kenaikan nilai variabel; blok Aksi yang diapit kata -End akan dilaksanakan secara berurut. Jadi apabila perubahan nilai variabel terjadi 54n1 Untuk Kalangan Sendiri Hal : 23
24 sebanyak 5 kali, maka berarti blok aksi juga diproses sebanyak 5 kali juga, kecuali ada perintah untuk keluar dari perulangan walaupun nilai variabel belum mencapai N Repeat... Until Repeat artinya ulangi, Until artinya hingga. Blok aksi yaitu mulai Aksi_1, Aksi_2 dst akan dilaksanakan berulang-ulang hingga <kondisi> yang disyaratkan terpenuhi. Atau dapat diartikan sbb "Ulangilah aksi-aksi dibawah ini hingga <kondisi> yang disyaratkan terpenuhi". 3. While... Do While artinya selama, Do artinya kerjakan. Selama <kondisi> yang disyaratkan masih benar maka blok aksi akan diproses terus menerus (kecuali ada perintah keluar dari perulangan). Blok aksi dimulai dengan kata dan diakhiri kata End. Contoh-ccontoh program: { Nama Program : For1.Pas } Program Faktorial; USES CRT; VAR U,N:INTEGER; F,C,K:LONGINT; BEGIN CLRSCR; WRITE('BERAPA FAKTORIAL? : ');READLN(N); F:=1; FOR U:=1 TO N DO F:=F*U; WRITELN(F); READLN; END { Nama Program : For2.Pas } Program Sinus; USES CRT; VAR U,D : LONGINT; S:REAL; CONST PHI=3.14; BEGIN CLRSCR; U:=0; D:=0; FOR U:= 1 TO 13 DO BEGIN S:=SIN((PHI/180)*D); WRITELN('SIN: ',D, ' = ',S:5:2); D:=D+15; END; READLN; END. 54n1 Untuk Kalangan Sendiri Hal : 24
25 {Nama Program : For3.Pas} Program Animasi; USES CRT; VAR U : INTEGER; BEGIN CLRSCR; FOR U:= 25 DOWNTO 1 DO BEGIN GOTOXY(10,U); WRITELN('I LOVE YOU'); DELAY(500); GOTOXY(10,U); WRITELN(' '); END; READLN; END {Nama Program : Repeat1.Pas} Program Repeat1; USES CRT; VAR U,F : INTEGER; BEGIN CLRSCR; U:=0; F:=1; REPEAT U:=U+1; F:=F*U; UNTIL U=5; WRITELN( U,' FAKTORIAL = ',F); READLN; END {Nama Program : Repeat2.Pas} Program Perulangan_RepeatUntil; Uses Crt; Var I : Integer; I := 0; Repeat Inc(I); { menaikan nilai I dengan kenaikan 1} Writeln( Nilai I adalah :,I); Until I = 10; Readln; End. 54n1 Untuk Kalangan Sendiri Hal : 25
26 {Nama Program : Repeat3.Pas} Program Putar; USES CRT ; VAR T:STRING; PK,KOL:BYTE; BEGIN CLRSCR; T:='SELAMAT DATANG DI FATEK UMSU...'; PK:=LENGTH(T); KOL:= (80-PK) DIV 2; REPEAT T := COPY(T,2,PK-1) + COPY(T,1,1); GOTOXY(KOL,5); WRITE(T); DELAY(50000); UNTIL KEYPRESSED; END { Nama Program : While1.Pas } Program Faktorial; USES CRT; VAR U,F : INTEGER; BEGIN CLRSCR; U:=0; F:=1; WHILE U<5 DO BEGIN U:=U+1; F:=F*U; END; WRITELN( U,' FAKTORIAL = ',F); READLN; END {Nama Program : While2.Pas} Program CetakAngkaUrut; Uses Crt; Var I : Integer; I := 1; While I <= 10 Do Writeln( Nilai I adalah :,I) Inc(I); End; Readln; End n1 Untuk Kalangan Sendiri Hal : 26
27 {Nama Program : While3.Pas} Program Perkalian; USES CRT; VAR A,B,C : INTEGER; BEGIN CLRSCR; A:=0; WHILE A<5 DO BEGIN A:=A+1; B:=0; While B<3 Do B:=B+1; C:=A*B; WriteLn(A,'x',B,'=',C:3); End; WriteLn; END; READLN; END n1 Untuk Kalangan Sendiri Hal : 27
28 BAB VII Prosedur Pengertian Prosedur Sebuah program yang besar dapat dipecah-pecah menjadi bagian-bagian program yang lebih kecil. Penggalan program ini disebut modul atau subprogram atau rutin atau prosedur atau fungsi. Subprogram kadangkala cukup independen dari program utama sehingga programnya dapat dirancang tanpa mempertimbangkan konteks tempat ia digunakan. Subprogram ini dapat dieksekusi berulang-ulang sesuai keperluan. Teknik pemrograman ini dinamakan teknik pemrograman modular atau teknik pemrograman prosedural. Modularisasi program memberikan dua keuntungan yaitu : - Untuk menghindari penulisan teks program yang sama secara berulang. Dapat mengurangi panjangnya program. - Kemudahan menulis dan menemukan kesalahan (debug) program. - Menjadikan program lebih flexible. ** Program Utama {statements} CALL Proc1 {statements} Procedure Proc1 {statements} EXIT CALL Proc2 Procedure Proc2 {statements} END {statements} EXIT Gambar 7.1 Mekanisme penggunaan modul dari program utama. Ada dua macam prosedur yaitu prosedur terpasang (standart) dan prosedur buatan pemakain. Contoh prosedur standart adalah ClrScr --> membersihkan layar Mendefinisikan prosedur Pada dasarnya struktur prosedur sama dengan struktur algoritma yang sudah kita kenal, yaitu ada judul(header), deklarasi (keterangan) dan deskripsi (uraian). 54n1 Untuk Kalangan Sendiri Hal : 28
29 Procedure NAMA_PROSEDUR { keterangan spesifikasi singkat tentang prosedur} Deklarasi { semua nama yang dipakai dalam prosedur dan hanya berlaku lokal dalam prosedur} Deskripsi { badan prosedur berisikan kumpulan instruksi } Contoh Algoritma Procedure CETAK_HALO { mencetak string 'Halo' ke piranti keluaran} Deklarasi { tidak ada nama pengenal} Deskripsi write('halo') Gambar 7.2 Struktur prosedur. Pemanggilan prosedur Prosedur bukan program yang berdiri sendiri, ia tidak dapat dieksekusi secara langsung. Isi prosedur hanya dapat diakses dengan cara memanggil namanya dari program pemanggilanya ( program utama atau modul lain). Bentuk umum cara pemanggilan prosedur adalah sbb : NAMA_PROSEDUR; Ketika nama prosedur dipanggil maka kendali program berpindah secara otomatis ke prosedur yang dipanggil tersebut. Setelah isi prosedur selesai dieksekusi, kendali program kembali ke instruksi sesudah pemanggil prosedur. Nama global dan nama lokal Nama-nama indentifier yang dideklarasikan di dalam bagian deklarasi prosedur, hanya dikenal di dalam badan prosedur itu saja. Nama-nama indentifier tersebut dikatakan bersifat "lokal" dan hanya dapat dikenali didalam prosedur itu sendiri, sedangkan nama-nama yang dideklarasikan di program utama bersifat "global" dan dapat dikenali didalam prosedur. Parameter Kebanyakan program memerlukan pertukaran informasi antara prosedur/fungsi dan titik dimana ia dipanggil. Penggunaan parameter menawarkan mekanisme pertukaran informasi tersebut. Tiap item data ditransfer antara parameter aktual dan parameter formal yang bersesuaian. Parameter aktual adalah parameter yang disertakan pada waktu pemanggilan prosedur, sedangkan parameter formal adalah parameter yang dideklarasikan didalam header prosedur itu sendiri. Ketika prosedur itu dipanggil, parameter aktual menggantikan parameter formal. Tiap parameter aktual berpasangan dengan parameter formal yang bersesuaian. 54n1 Untuk Kalangan Sendiri Hal : 29
30 contoh : Procedure SATU(input x,y : integer) { cth prosedure dgn parameter formal berjenis parameter masukan, K.Awal : nilai x dan nilai y sudah terdefenisi K.Akhir : nilai x dan y masing-masing dinaikkan satu, lalu dicetak ke piranti keluaran } DEKLARASI: { TIDAK ADA} DESKRIPSI: x x + 1 y y + 1 write(x) write(y) Algoritma PQR { cth program utama yg memanggil prosedur SATU } DEKLARASI: a, b : real procedure SATU(input x, y : integer ) {cth prosedur dgn parameter formal berjenis parameter masukan} DESKRIPSI: SATU(4,10) read(a, b) SATU(a, b) SATU(a+2, 20) - Masukan - Keluaran - Masukan / keluaran - Prosedur tanpa parameter - Prosedur dengan parameter - Parameter masukan dan parameter keluaran 54n1 Untuk Kalangan Sendiri Hal : 30
31 BAB VIII Fungsi Pengertian Fungsi Fungsi merupakan potongan program yang tidak dapat berdiri sendiri, karena fungsi memberikan hasil berupa suatu nilai dan memerlukan suatu tempat untuk menampung nilai tersebut. Ada fungsi standart (fungsi terpasang) dan ada fungsi buatan (defined function) Contoh-contoh fungsi dan prosedur standart antara lain : Fungsi Numerik : 1. ABS(n) Memberikan nilai mutlak (harga positif) dari bilangan n. N : Real atau Integer; Hasil : sesuai dengan tipe-n 2. FRAC(n) Memperoleh bilangan pecahan dari suatu bilangan pecahan (real). N : Real Hasil : Real 3. INT(n) Memperoleh bilangan bulat dari suatu bilangan pecahan (real). N : Real Hasil : Real 4. TRUNC(n) Memperoleh bilangan bulat dari suatu bilangan pecahan (real). N : Real Hasil : LongInt 5. ROUND(n) Membulatkan bilangan pecahan (real) atau pembulatan. N : Real Hasil : LongInt 6. EXP(n) Memperoleh nilai exponential (e x (e=bilangan natural)). N : Real Hasil : Real 54n1 Untuk Kalangan Sendiri Hal : 31
32 7. LN(n) Memperoleh nilai logaritma natural. N : Real atau Integer Hasil : Real 8. SQR(n) Memperoleh nilai kwadrat N : Real atau Integer Hasil : sesuai tipe argumen - n 9. SQRT(n) Memperoleh nilai akar kwadrat ( n) N : Real atau Integer Hasil : Real 10. PI Memperoleh nilai konstanta bernilai 3.14 Hasil : Real 11. SIN(n) Memperoleh nilai sinus - n N : Real Hasil : Real 12. COS(n) Memperoleh nilai cosinus - n N : Real Hasil : Real 13. ARCTAN(n) Memperoleh nilai arcus tangen - n N : Real Hasil : Real 360 o = 2Л radian 1 o = Л2/360 o = Л/180 o 14. ODD(n) Menentukan apakah n bilangan ganjil atau tidak (True/False) N : Word Hasil : Bolean 15. RANDOM(n) Memperoleh bilangan acak N : Word Hasil : Real 0 hasil < n 16. RANDOM Menentukan bilangan acak Hasil : Real 0 hasil < 1 54n1 Untuk Kalangan Sendiri Hal : 32
33 Prosedur dan fungsi Library standart untuk string : 1. CHR(n) Memperoleh karakter dengan nomor ASCII-n N : Byte Hasil : Char 2. ORD(kar) Memperoleh nomor ASCII dari karakter kar kar : Char Hasil : Byte 3. CONCATE(string1, string2, string3,... ) Menggabungkan string1, string2, string3,... string1, string2, string3,... : String Hasil : String 4. LENGTH(st) Memperoleh jumlah karakter dari - st St : String Hasil : Byte 5. POS(st1, st2) Menentukan posisi st1 didalam st2 St1 : Char atau String Hasil : Byte 6. UPCASE(kar) Mengubah karakter huruf kecil menjadi huruf besar (berlaku hanya 1 karakter awal) kar : Char Hasil : Char 7. COPY(st, p, n) Menyalin isi st dimulai posisi p sebanyak n karakter st : String p,n : Byte Hasil : String 8. READKEY Meminta penekanan 1 tombol. Tombol yang diberikan tidak tampil di layar Hasil : Char 9. DELETE(st, p, n) Menghapus isi st dimulai posisi p sebanyak n karakter st : String p,n : Byte Hasil : String 54n1 Untuk Kalangan Sendiri Hal : 33
34 10. INSERT(st1, st2, p) Menyisip st1 kedalam st2 pada posisi p. Hasilnya disimpam di dalam st2. st1, st2 : String p : Byte Hasil : String 11. STR(Bil[:k[:d]],BilSt) Mengubah bilangan numerik Bil menjadi bilangan string dengan format tertentu. Hasil disimpan dalam BilSt. k, d : Byte dimana K=lebar kolom, D=lebar desimal BilSt : String 12. VAL(BilSt, Hasil, ValErr) Mengubah bilangan string menjadi bilangan numerik. BilSt : String (angka) Hasil : Real atau Integer ValErr : Word {Program Kon1.Pas} Program Konversi1; Uses Crt; Var a : string; b : real; err: integer; ClrScr; a := '1234.5'; val(a,b,err); if err<>0 then write('salah') else write(b+2:10:2); Hasilnya Readln; End {Program Kon2.Pas} Program Konversi2; Uses Crt; Var a : string; b : real; err: integer; ClrScr; a := 'abc'; val(a,b,err); if err<>0 then write('salah') else write(b+2:10:2); Readln; End. Hasilnya : salah 54n1 Untuk Kalangan Sendiri Hal : 34
35 Mendefenisika Fungsi Seperti halnya prosedur, struktur fungsi sama dengan struktur algoritma yaitu ada header yang berisi nama fungsi dan spesifikasi fungsi, bagian deklarasi, dan badan fungsi. Setiap fungsi mempunyai nama yang unik serta daftar parameter formal (jika ada). Function Nama_Fungsi(dtr parameter formal) { keterangan spesifikasi singkat tentang fungsi} Deklarasi { semua nama yang dipakai dalam fungsi dan hanya berlaku lokal dalam fungsi} Deskripsi { badan fungsi berisikan kumpulan instruksi } Function F( input x:real) of real; { mengembalikan nilai F(x)=2x 2 +5x-8} Deklarasi { tidak ada } Deskripsi return 2*x*x+5x-8 Kata cadangan FUNCTION mengawali bagian deklarasi fungsi diikuti oleh identifier yang merupakan nama dari fungsinya dan secara optional dapat diikuti oleh kumpulan parameter, tipe dari fungsinya dan diakhiri dengan titik koma. Contoh deklarasi fungsi : FUNCTION Pangkat(X, Y : real) : Real; Pemanggilan Fungsi Fungsi diakses dengan cara memanggil namanya dari program pemanggil diikuti dengan daftar parameter aktual (bila ada). Contoh pemanggilan fungsi (menggunakan notasi algoritmik): peubah Nama_Fungsi(daftar parameter aktual) atau Write(Nama_Fungsi(daftar parameter aktual)) Contoh dalam program : {Nama Program : Fungsi1.Pas } Program Faktorial; Uses Crt; Var f,x : Integer; Function Fak(x:integer) :integer; Var f:integer; u:byte; f:=1; for u:=1 to x do f:=f*u; fak:=f; End; pemangilan fungsi Fak dgn parameter aktual x 54n1 Untuk Kalangan Sendiri Hal : 35
36 { -- blok utama program -- } ClrScr; write('masukan berapa faktorial : '); readln(x); write(x,' faktorial adalah ',Fak(x)); readln; End { Nama Program : Fungsi2.Pas} Program Contoh_Fungsi; Uses Crt; Var X, Y, Z : Integer; { Bag. Prosedur } Procedure Inp_Bil(A, B : Integer); Write('Input Bilangan I : ');Readln(X); Write('Input Bilangan II : ');Readln(Y); End; { Bag. Fungsi } Function Tam_Bil(A, B : Integer) : Integer; Tam_Bil:=A+B; End; { Program Utama } Clrscr; Inp_Bil(X, Y); Write('Hasil dari Readln; End. pemangilan fungsi Tam_Bil dgn parameter aktual x dan y : ',X,' + ',Y,' = ',Tam_Bil(X, Y)); 54n1 Untuk Kalangan Sendiri Hal : 36
37 BAB IX Larik (Array) Definisi Larik (Array) Array (larik) adalah salah satu bentuk struktur data yang bersifat linier (kontinu). Variabel array digunakan untuk menyimpan sejumlah data yang bertipe sama sehingga dapat menghemat jumlah variabel yang digunakan. Penunjukan kepada setiap lokasi atau elemen array menggunakan nama variabel dan subscrip (index), nilai subscrip selalu dimulai dengan 1 (satu). Contoh : a = 10 a = a + 5 a = 5 Maka dimemori komputer nilai data dari variabel a adalah 5. Nilai data a yang 10 (baris pertama), dan 15 (baris kedua) akan terhapus oleh nilai data a yang 5 (baris ketiga). Masalah yang muncul adalah bila semua nilai a tersebut sangat dibutuhkan, bagaimana caranya?. Jawabnya gunakan variabel array. Ilustrasi : lokasi / elemen data Nama Array Subscrip/index Mendefinisikan Larik di dalam bagian DEKLARASI - mendefenisikan banyaknya elemen larik - mendefenisikan tipe elemen larik Contoh deklarasi variabel larik/array: Var V_Array_SatuD : Array[1..4] of tipe_data; V_Array_DuaD : Array[1..4, 1..2] of tipe_data; atau const max = 50; type Larik = array[1..max] of real; var X : Larik; Operasi pada tipe data array 1. Proses isi data array 2. Proses tampil data array 3. Proses urutkan data array 4. Proses cari data array 54n1 Untuk Kalangan Sendiri Hal : 37
38 Cara Mengacu elemen larik Elemen larik diacu melalui indeksnya. Nilai indeks harus terdefenisi. Dengan mengacu larik yang sudah didefenisikan sebelunya. Contoh cara mengacu elemen larik adalah : L[4] { mengacu elemen ke-4 dari Larik L } P[k] { mengacu elemen ke-k dari Larik P } Harga[i+1] { mengacu elemen ke-i+1 dari Larik Harga } Pemrosesan Larik Proses adalah aksi yang dilakukan terhadap elemen larik. Proses dapat berupa aksi pengisian nilai kedalam larik, aksi pembacaan nilai dalam larik, penulisan nilai yang ada dalam larik ke media output, atau manipulasi lainnya. Contoh : {Nama Program : Array1.Pas} program mencari_hari_lahir; uses crt; type x = string[7]; const faktorbln : array[1..12] of byte =(0,3,3,6,1,4,6,2,5,0,3,5); hari : array[0..8] of x = ('Minggu','Senin','Selasa',','Rabu','Kamis','Jumat','Sabtu'); var i: word; nama :string[255]; j1,j2,j3,j4 :integer; tanggal,bulan, Tahun : integer; ClrScr; writeln('program MENCARI HARI KELAHIRAN ABAD 20'); WRITELN('Tahun input dari 1900 s/d 1989'); WRITELN('****************************** '); write('masukkan TANGGAL YANG DICARI: '); READLN(Tanggal); write('masukkan BULANNYA : ');READLN(Bulan); write('masukkan TAHUNNYA JUGA : ');READLN(Tahun); if tahun > 1900 then tahun := tahun ; j1 := trunc(tahun * ); j2 := j1 + faktorbln[bulan]; if (tahun/4 = int(tahun/4)) and (Bulan < 3) then J2 := j2-1; j3 := j2 + tanggal; j4 := trunc(frac(j3/7)*10); writeln; writeln('hari TERSEBUT ADALAH HARI: ',HARI[J4]); readln; End. Larik dua dimensi Larik dua dimensi larik yang elemen datanya dibentuk dari 2 bidang data yaitu bidang baris dan bidang kolom. Larik dua dimensi biasanya digunakan untuk matrik. Karna elemen matrik diakses berdasarkan nomor baris dan nomor kolom. 54n1 Untuk Kalangan Sendiri Hal : 38
39 2 A = elemen matrik 2 terletak di baris-1 kolom-1 elemen matrik 1 terletak di baris-1 kolom-2 elemen matrik 4 terletak di baris-1 kolom-3 elemen matrik 3 terletak di baris-2 kolom-1 elemen matrik 5 terletak di baris-2 kolom-2 elemen matrik 0 terletak di baris-2 kolom-3 contoh : uses crt; const p:array[1..3,1..4] of byte = ((2,3,4,5),(1,2,2,1),(2,3,3,2)); q:array[1..3,1..4] of byte = ((3,2,2,1),(2,3,3,4),(4,5,3,2)); var k,b:byte ; r:array[1..3,1..4] of byte; begin { ---- proses mengisi larik dua dimensi ---- } clrscr; for b:=1 to 3 do begin for k:=1 to 4 do write(p[b,k]:3); writeln; end; { ---- proses penulisan larik dua dimensi ---- } writeln; writeln; for b:=1 to 3 do begin for k:=1 to 4 do write(q[b,k]:3); writeln; end; { penjumlahan matrik r=p+q } for b:=1 to 3 do begin for k:=1 to 4 do r[b,k]:=p[b,k]+q[b,k]; end; { ---- proses penulisan larik dua dimensi hasil penjumlahan --- } writeln; writeln; for b:=1 to 3 do begin for k:=1 to 4 do 54n1 Untuk Kalangan Sendiri Hal : 39
40 end; readln; end. write(r[b,k]:3); writeln; PENCARIAN DATA DALAM ARRAY Apabila suatu array sudah diisi data maka dapat dilakukan pencarian data tertentu didalam array dengan kemungkinan : Data yang dicari tidak ada didalam array Data ditemukan, selanjutnya perlu dipastikan subscrip lokasi tempat data itu berada. Permasalahan : Deklarasikan satu array numerik dengan subscrip 10, kemudian input data kedalam semua array tersebut. Selanjutnya diinput data numerik sembarang oleh operator untuk dicari didalam array tersebut. Output yang diminta adalah 1 diantara 2 kemungkinan yaitu : Jika ditemukan tampilkan dan pada subscrip ke berapa Data tidak ditemukan. Buatlah algoritma untuk keperluan tersebut. Pemahaman : Output : Satu diantara dua kemungkinan, yaitu : - Data ditemukan pada subscrip yang ke berapa - Data tidak ditemukan Input : - 10 data numerik - 1 data numerik Analisis : - Deklarasikan array dengan subscrip 10 dengan perintah array. - Input data kedalam array dengan proses perulangan - Input 1 data numerik yang akan dicari ke array - Cari data didalam array dengan prsoses perulangan - Dalam setiap perulangan dilakukan pembandingan data yang dicari - Jika sama berarti data ditemukan dan proses perulangan dihentikan - Jika sampai ke subscrip akhir tidak ada yang sama berarti data tidak ditemukan Algoritma :... Mengurutkan Data Dalam Array (Sort) Dalam banyak hal perlu data dalam keadaan berurutan. Pengurutan data ada dua macam, yaitu : 1. Ascending atau urutan menaik 2. Descending atau urutan menurun 54n1 Untuk Kalangan Sendiri Hal : 40
41 Untuk menghasilkan data berurutan proses dasar yang dilakukan adalah mebandingkan dua data yang berdekatan. Untuk mengetahui harga data yang lebih besar atau yang lebih kecil, dilakukan operasi pembanding. Kemudian jika posisi kedua data itu tidak sesuai dengan urutan yang diinginkan, maka dilakukan pertukaran tempat. Sedangkan jika sesuai dengan urutan yang diinginkan tentu tidak perlu proses apapun. Algortima untuk pengurutan data ini dikembangkan menurut logika untuk memperoleh proses yang seefisien mungkin sehingga dapat meminimalkan kegiatan dan waktu proses. Beberapa macam algoritma pengurutan data yang selama ini dikenal, antara lain : 1. Model Bubble / Exchange Sort Membandingkan elemen yang sekarang dengan elemen yang berikutnya, jika elemen sekarang > elemen berikutnya, maka dilakukan pertukaran. 2. Model Selection Sort Membandingkan elemen sekarang dengan elemen yang berikutnya sampai dengan terakhir. 3. Model Insertion Sort Pengurutan dilakukan dengan cara membandingkan data ke-i (dimana i dimulai dari data ke-2 sampai dengan terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai dengan posisi yang semestinya. 4. Model Quick Sort Membandingkan suatu elemen (disebut pivot) dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga elemen-elemen lain yang lebih kecil dari pada pivot tersebut terletak disebelah kirinya dan elemen-elemen lain yang lebih besar dari pada pivot terletak disebelah kanannya. SORT Definisi Sort Sort adalah proses pengurutan data yang sebelumnya disusun secara acak sehingga menjadi tersusun secara teratur menurut suatu aturan tertentu. Pada umumnya terdapat 2 jenis pengurutan : Ascending (Naik) Descending (Turun) Contoh : Data Acak : Terurut Ascending : Terurut Descending : Bubble / Exchange Sort Memindahkan elemen yang sekarag dengan elemen yang berikutnya, jika elemen sekarang > elemen berikutnya, maka tukar posisi. 54n1 Untuk Kalangan Sendiri Hal : 41
42 Proses : Langkah 1 : Pengecekan dapat dimulai dari data paling awal atau paling akhir. Pada contoh di samping ini pengecekan di mulai dari data yang paling akhir. Data paling akhir dibandingkan dengan data di depannya, jika ternyata lebih kecil maka tukar. Dan pengecekan yang sama dilakukan terhadap data yang selanjutnya sampai dengan data yang paling awal Langkah 2 : Kembalinya data paling akhir dibandingkan dengan data didepannya jika ternyata lebih kecil maka tukar, tetapi kali ini pengecekan tidak dilakukan sampai dengan data paling awal yaitu 2 karena data tersebut pasti merupakan data terkecil (didapatkan dari hasil pengurutan pada langkah 1) Langkah 3 : Langkah 4 : Proses pengecekan pada langkah 3 dst. Sama dengan langkah sebelumnya. Langkah 5 : Terurut : n1 Untuk Kalangan Sendiri Hal : 42
43 Proses di atas adalah pengurutan data dengan metoda bubble ascending. Untuk yang descending adalah kebalikan dari proses diatas. Berikut penggalan listing program Procedure TukarData dan Procedure Bubble Sort. Procedure TukarData Procedure TukarData(var a,b : word); Var c : word; c:=a; a:=b; b:=c; End; Procedure Bubble Sort Ascending Procedure Asc_Bubble(var data:array; jmldata:integer); Var i,j : integer; For i:= 2 to JmlData do For j:= JmlData DownTo i Do If data[j] < data[j-1] Then Tukardata (data[j], data[j-1]); End; Untuk pengurutan secara descending anda hanya perlu menggantikan baris ke-6 dengan berikut ini : If data[j] > data[j-1] then Selection Sort Membandingkan elemen yang sekarang dengan elemen yang berikutnya sampai dengan elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan kemudian ditukar. Dan begitu seterusnya. Proses :Langkah 1: Langkah 2 : i = pembanding Posisi 22 > < > < > 2 6 Posisi data ke-1(22) = 6 Tukar data ke-1 dengan data ke i = pembanding Posisi 10 < > < < 22 4 Posisi data ke-2(10) = 4 Tukar data ke-2 dengan data ke n1 Untuk Kalangan Sendiri Hal : 43
44 Langkah 3 : Langkah 4 : i = pembanding Posisi 15 > > < 22 5 Posisi data ke-3(15) = 5 Tukar data ke-3 dengan data ke-5 i = pembanding Posisi 10 < < 22 4 Posisi data ke-4 tetap Pada posisinya = 4 (tidak berubah) Langkah 5 : Terurut : i = pembanding Posisi 15 < 20 5 posisi data ke-5 tetap pada posisinya = 5 (tidak Proses pengurutan di atas adalah dengan metoda selection Ascending. Untuk descending hanyalah kebalikan dari proses di atas. Berikut penggalan listing program Procedure Selection Sort secara ascending Procedure Selection Sort Ascending Procedure Asc_Selection; Var min, pos : byte; For i:= 1 to max-1 do Pos:=i; For j:= i+1 to max do If data[j] < data[pos] then pos:=j; If i <> pos then tukardata(data[i],data[pos]); End; End; Untuk pengurutan secara descending, anda hanya perlu mengganti baris ke-8 sbb : if data[pos] < data[j] then pos:=j; 54n1 Untuk Kalangan Sendiri Hal : 44
45 Insertion Sort Pengurutan dilakukan dengan cara membandingkan data ke-i (dimana I dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai posisi yang seharusnya. Proses : Langkah 1: Langkah 2 : i = temp cek geser 10 temp<22 data ke-1 posisi 2 temp menempati posisi ke-1. i = temp cek geser 15 temp<22 data ke-2 posisi 3 temp>10 temp menempati posisi ke-2. Langkah 3 : Langkah 4: i = temp cek geser 3 temp < 22 data ke-3 posisi 4 temp < 15 data ke-2 posisi 3 temp < 10 data ke-1 posisi 2 temp menempati posisi ke i = temp cek geser 8 temp < 22 data ke-4 posisi 5 temp < 15 data ke-3 posisi 4 temp < 10 data ke-2 posisi 3 temp > 3 temp menempati posisi ke Langkah 5 : Langkah 6 : i = temp cek geser 2 temp < 22 data ke-5 posisi 6 temp < 15 data ke-4 posisi 5 temp < 10 data ke-3 posisi 4 temp < 8 data ke-2 posisi 3 temp < 3 data ke-1 posisi 2 temp menempati posisi ke-1. 54n1 Untuk Kalangan Sendiri Hal : 45
46 Procedure Insertion Sort Ascending Procedure Asc_Insert; Var i, j, temp : byte; For i := 2 to max do Temp :=data[i]; j := i-1; while (data[j] > temp) and (j>0) do begin data[j+1] := data[j]; dec(j); end; data[j+1]:=temp; end; end; Untuk pengurutan secara descending anda tinggal mengganti baris ke 8 dengan baris berikut ini : While(data[j] < temp)and(j>0)do 54n1 Untuk Kalangan Sendiri Hal : 46
47 BAB X QUICK SORT Membandingkan suatu elemen (disebut pivot) dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga elemen- elemen lain yang lebih kecil daripada pivot tersebut terletak di sebelah kirinya dan elemen-elemen lain yang lebih besar daripada pivot tersebut terletak di sebelah kanannya. Sehingga dengan demikian telah terbentuk dua sublist, yang terletak di sebelah kiri dan kanan dari pivot. Lalu pada sublist kiri dan sublist kanan kita anggap sebuah list baru dan kita kerjakan proses yang sama seperti sebelumnya. Demikian seterusnya sampai tidak terdapat sublist lagi. Sehingga didalamnya telah terjadi proses Rekursif. Proses : Bilangan yang di dalam kurung merupakan pivot Persegi panjang yang digambarkan dengan garis terputus-putus menunjukkan sublist. i bergerak dari sudut kiri ke kanan sampai mendapatkan nilai yang >= pivot. j bergerak dari sudut kanan ke kiri sampai menemukan nilai yang < pivot. Langkah 1 : Index = j i i berhenti pada index ke-1 karena langsung mendapatkan nilai yang > dari pivot (15). j Berhenti pada index ke-6 karena juga langsung mendapatkan nilai yang < dari pivot. Karena i < j maka data yang ditunjuk olh I ditukar dengan data yang ditunjuk oleh j sehingga menjadi : n1 Untuk Kalangan Sendiri Hal : 47
48 Langkah 2 : Index = j i i berhenti pada index ke-3 (pivot) karena tidak menemukan bilangan yang > dari pivot. j berhenti pada index k-5 menunjuk pada nilai yang < dari pivot. Karena i < j maka data yang ditunjuk oleh i (pivot) ditukar dengan data yang ditunjuk oleh j sehingga menjadi : Langkah 3 : Index = i j Proses yang sama seperti sebelumnya dilakukan terhadap 2 buah sublist yang baru (ditandai dengan persegi panjang dengan garis terputus-putus) Atau dapat juga digambarkan dalam bentuk tree seperti di bawah ini dengan pivot yang ditandai dengan huruf tebal. Kemudian setelah terurut dibaca inorder n1 Untuk Kalangan Sendiri Hal : 48
49 Procedure Quisort dengan nilai paling kiri sebagai pembanding (pivot). Procedure Asc_Quick(L,R : Integer); Var i, j:integer; If L<R then i := L; j := R+1; repeat repeat inc(i) until data[i] >= data[1]; repeat dec(j) until data[j] <= data[1]; if i < j then tukardata (data[i], data[j]); until i > j; tukardata (data[1], data[j]); Asc_Quick(L,j-1); Asc_Quick(j+1,R); End; End; Untuk pengurutan secara descending anda tinggal mengganti tanda aritmatik pada baris ke 8 dan 9 sehingga menjadi seperti baris berikut : repeat inc(i) until data[i] >= data[l]; repeat dec(j) until data[j] <= data[l]; Procedure Quick Sort dengan nilai tengah sebagai pembanding (pivot). Procedure Asc_Quick(L,R : Integer); Var mid, i, j : integer; i:= L; j:=r; mid := data[(l+r) div 2]; repeat while data[i] < mid Do inc(i); while data[j] > mid do dec(j); if i < j then begin change(data[i],data[j]); inc(i); dec(j); end; until i > j; if L < j then Asc_Quick(L, j); if i > R then Asc_Quick(i, R); end; Untuk pengurutan secara descending, anda hanya perlu mengganti baris ke-6 & 7 sbb : while data[j] < mid do inc(j); while data[k] > mid do dec(k); 54n1 Untuk Kalangan Sendiri Hal : 49
50 Latihan Soal beserta jawaban (Listing program) dan penjelasan. Anda diminta membuat sebuah program sorting dengan metode bublsort. Mintalah user untuk memasukkan 10 angka. Lalu tampilkan angka-angka tersebut setelah disort baik secara ascending maupun descending. Layar 1 : Masukkan 10 data = = = = = = = = = = Data ke-1 = 5 Data ke-6 = 45 Data ke-2 = 2 Data ke-7 = 8 Data ke-3 = 67 Data ke-8 = 23 Data ke-4 = 43 Data ke-9 = 39 Data ke-5 = 90 Data ke-10 = 7 {ket : tampilan ketika mengiput 10 angka} Layar 2 : Data yang telah diurutkan : * * * * * * * * * * * * * * * * * * Ascending : Descending: {ket : tampilan setelah dilakukan bubble sort} Jawaban : contoh: sortir buble. uses crt; const max = 10; Type arr = array[1..max] of byte; Var i : byte; Data : arr; Procedure Input; begin Clrscr; Writeln ( Masukkan 10 data ); Writeln ( = = = = = = = = = = ); For i := 1 to max do {input 10 data} begin write( Data ke-, i, = ); readln(data[i]); end; Clrscr; For i := 1 to max do Write(data[i], ); Writeln; Writeln ( * * * * * * * * * * * * * * *); 54n1 Untuk Kalangan Sendiri Hal : 50
51 Writeln ( Data yang telah diurutkan : ); end; Procedure Change (var a,b :byte); {procedure untuk menukar data} Var c : byte; c := a; a := b; b := c; end; Procedure Asc_Buble; {pengurutan secara ascending} Var p,q : byte; flaq : boolean; begin flaq:=false; p:=2; while (p<max) and (not flaq) do begin flaq:=true; for q := max downto p do if data[q] < data[q-1] then begin change (data[q], data[q-1]); flaq:=false; end; inc(i); end; write( Ascending : ); end; Procedure Desc_Buble; {pengurutan secara descending} Var p, q : byte; Flaq : boolean; flaq:=false; p:=2; while (p<max) and (not flaq) do begin flaq:=true; for q := max downto p do if data[q] < data[q-1] then begin change (data[q], data[q-1]); flaq:=false; end; inc(i); end; write( Descending : ); end; Procedure Output; For i := 1 to max do Write(data[i], ); Writeln; 54n1 Untuk Kalangan Sendiri Hal : 51
52 end; {program utama} Input; Asc_buble; output; Desc_buble; output; Readkey; end. Contoh Program sort PROGRAM SORTING_BUBLE; USES CRT; VAR DERET : array[1..100] of integer; loop,nested,banyak, tampung : integer; begin clrscr; write('masukan berapa bilangan yang anda inginkan: '); readln(banyak); for loop :=1 to banyak do begin write('bilangan ke', loop:3,'='); readln(deret[loop]); end; {proses pengurutan ascending} for loop := 1 to banyak -1 do for nested :=loop + 1 to banyak do if(deret[nested]<deret[loop]) then begin tampung := deret[nested]; deret[nested] :=deret [loop]; deret[loop] :=tampung; end; {cetak hasil secara ascending} writeln; writeln('hasil sort secara Ascending'); for loop := 1 to banyak do writeln('data Ke: ',loop:3, '= ', deret[loop]); {cetak hasil Descending} writeln('hasil sort secara Descending'); for loop := banyak downto 1 do writeln('data Ke: ',(banyak-loop+1):3, '= ', deret[loop]); readkey; end. Contoh Program Sort Max PROGRAM Pilihmaks; USES CRT; VAR DERET : array[1..100] of integer; loop,nested,banyak, tampung,imaks : integer; begin clrscr; writeln('metode SELECTION SORT MAKSIMUM'); write('masukan berapa bilangan yang anda inginkan: '); readln(banyak); 54n1 Untuk Kalangan Sendiri Hal : 52
53 for loop := 1 to banyak do begin write('bilangan ke', loop:3,'='); readln(deret[loop]); end; {proses pengurutan ascending} for loop := banyak downto 2 do begin imaks:=1; for nested := 2 to loop do if(deret[nested] > deret[imaks]) then imaks:=nested; tampung := deret[imaks]; deret[imaks] := deret [loop]; deret[loop] :=tampung; end; {cetak hasil secara ascending} writeln; writeln('hasil sort secara Ascending'); for loop := 1 to banyak do writeln('data Ke: ',loop:3, '= ', deret[loop]); WRITELN('====================================='); {cetak hasil Descending} writeln('hasil sort secara Descending'); for loop := banyak downto 1 do writeln('data Ke: ',(banyak-loop+1):3, '= ', deret[loop]); WRITELN('====================================='); WRITELN('THANKS FOR YOU'); readln; end. Program Insert sort PROGRAM Insertion_Sort; {USES CRT;} VAR Larik : array[1..100] of integer; i,j,n, X : integer; ketemu : boolean; begin {clrscr;} writeln('metode Pengurutan sisip max dan min'); writeln('==================================='); write('masukan Banyak Data: '); readln(n); for i :=1 to N do begin write('bilangan ke', i:3,'='); readln(larik[i]); end; {proses pengurutan ascending} for I := 2 to N do begin X := Larik[I]; J := I -1; ketemu :=false; while (J >= 1) and (not ketemu) do begin 54n1 Untuk Kalangan Sendiri Hal : 53
54 if X < Larik[J] then begin Larik[J + 1] := Larik[J]; J := J - 1; end else ketemu := true; end; Larik[J+1] := X; end; {cetak hasil secara ascending} writeln; writeln('hasil sort secara Ascending'); writeln('vvvvvvvvvvvvvvvvvvvvvvvvvvv'); for i := 1 to N do writeln('data Ke: ',i:3, '= ', Larik[i]); writeln; {cetak hasil Descending} writeln('hasil sort secara Descending'); writeln('vvvvvvvvvvvvvvvvvvvvvvvvvvvv'); for i := N downto 1 do writeln('data Ke: ',(N - i + 1):3, '= ', Larik[i ]); readln; end. BAB XI SEARCH SEARCHING adalah suatu proses untuk menemukan informasi dari sejumlah data yang ada. ada beberapa metode search, akan tetapi pada bab ini kita akan membahas 2 metode yaitu: 1. Metode Sequential search 2. Metode Binary search Ad1. Metode Squential search Suatu metode pencarian data dengan cara membandingkan setiap elemen satu persatu secara beruntun, mulai dari elemen pertama hingga elemen yang di cari di temukan, atau seluruh elemen sudah di periksa. Contoh: Misalkan nilai yang dicari: X= 21 Elemen yang di bandingkan : 13,16,14,21 (ditemukan) 54n1 Untuk Kalangan Sendiri Hal : 54
55 Indeks larik yang dikembalikan IDX= 4 Misalkan nilai yang dicari: X= 13 Elemen yang di bandingkan : 13 (ditemukan) Indeks larik yang dikembalikan IDX= 1 Misalkan nilai yang dicari: X= 15 Elemen yang di bandingkan : 13,16,14,21,76,21 (ditemukan) Indeks larik yang dikembalikan IDX= -1 Setiap elemen pada larik L akan dibandingkan dengan X mulai dari elemen L[1]. Proses perbandingan akan terus dilakukan selama indeks larik tidak melebehi N (jumlah larik) dan larik ke [k] tidak sama dengan X Dan nilai yang dikembalikan adalah peubah boolean yaitu Ketemu = true dan tidak ketemu = false. Procedure sequentialsearch1(input L : larik, input n: integer, input x:integer, output ketemu: integer) {Mencari keberadaan nilai X di dalam L[1..n]. K.awal: X dan larik L[1..n] sudah terdefenisih nilainya dan K.Akhir ketemu bernilai True jika x Ditemukan, jika X tidak di temukan maka ketemu =bernilai False} Deklarasi K: integer; {indeks larik} Deskripsi K 1 While (K<n) and (L[K] <> x do K K +1 Endwhile {K = n or L [K]= x} If L[k] =x then {di temukan} Ketemu true Else Ketemu false {tidak ada di dalam larik} Endif Ad2. Metode Binary Search Suatu metode pencarian data dengan cara membagi dua data Syarat-syarat yang harus di penuhi pada metode ini adalah: 1. Data harus sudah terurut baik ascending atau descending. 2. Bagi dua elemen larik pada elemen tengah Indeks k=(i+j) div 2 Bagian kiri L[i..j] dan kanan L[k+1..j] 3. Periksa apakah L[ k] = x,jika ya ketemu pencarian selesai. 54n1 Untuk Kalangan Sendiri Hal : 55
56 Jika tidak tanyakan Apakah L[k] < x jika ya pencarian dilakukan di bagian kiri dan sebaliknya jika L[k] > x di cari dikanan. hal ini tergantung larik terurut ascending atau descending. 4. Ulangi langkah 1 sampai x di temukan atau i>j yaitu ukuran larik sudah nol. Contoh: Ilustrasi pencarian data. misalkan Larik L dengan 8 buah elemen terurut menurun sbb: i= =j misalkan elemen yang di cari adalah x=18 Langkah 1. i= 1 dan j=8 indeks elemen tengah k=(1+8) div 2 = 4(diarsir) Kiri Kanan Langkah 2: L[4] =18? Ya! ( X di temukan, Pencarian selesai) (ii) Misalkan elemen yang di cari adalah X=16. Langkah 1: i= 1 dan j=8 indeks elemen tengah k=(1+8) div 2 = 4(diarsir) Langkah 2: Kiri k Kanan L[4] = 16? Tidak! Maka akan diputuskan cari di bagian kiri atau bagian kanan. L[4] > 16? Ya! Maka cari dikanan dengan i= k+1 =5 dan j = 8(tetap) 54n1 Untuk Kalangan Sendiri Hal : 56
57 i= j= 8 Langkah 1: i=5 dan j= 8 indeks elemen tengah k =(5 + 8) div 2 =6(diarsir) i= j= 8 kiri kanan k Langkah 2: L[6]= 16? Tidak L[6] >16? Tidak maka cari di bagian kiri i=5 (tetap) dan j=k-1 = 5 16 i= 5 Langkah 1: i=5 dan j=5 indeks elemen tengah k=( 5+5) div 2 = 5( di arsir) 16 Langkah 2 L[5] = 16? ya! (X di temukan, Pencarian selesai) Contoh Program binary search {* SRTUKTUR DATA BY MARSONO,S.KOM * program mencari data pada suatu larik * pencarian dilakukan dengan metode binary search } PROGRAM PENCARIAN_BINER; USES CRT; TYPE LARIK = ARRAY[1..100] OF INTEGER; VAR VEKTOR : LARIK; 54n1 Untuk Kalangan Sendiri Hal : 57
58 KETEMU : BOOLEAN; CARI,LOKASI,CACAH, BARIS: INTEGER; { PROCEDURE MEMBACA ELEMEN VEKTOR } PROCEDURE BACA_VEKTOR(VAR VEKTOR: LARIK; VAR N, BARIS : INTEGER); VAR I, KOLOM :INTEGER; BEGIN KOLOM :=1; WRITE('BERAPA CACAH ELEMENNYA: '); READLN(N); WRITELN('MASUKKAN ELEMEN ELEMENNYA(SECARA TERURUT): '); WRITELN('ASCENDING ATAU DESCENDING'); WRITELN; FOR I :=1 TO N DO BEGIN READLN(VEKTOR[I]); { GOTOXY(( I MOD 10) * 6(WHEREY -1)} writeln(i mod 10) End; END; { PROCEDURE UNTUK MENCETAK VEKTOR } PROCEDURE CETAK_VEKTOR (VEKTOR : LARIK; N: INTEGER); VAR I : INTEGER; BEGIN FOR I := 1 TO N DO BEGIN WRITE(VEKTOR[I]:6); IF I MOD 10 = 0 THEN WRITELN; END END; { PROCEDURE SORT SELEKSI ELEMEN VEKTOR ----} PROCEDURE SORTIR(VAR VEKTOR: LARIK; N : INTEGER); VAR I,J,POSISI,BANTU :INTEGER; BEGIN FOR I := 1 TO N-1 DO BEGIN POSISI :=I; FOR J := I+1 TO N DO IF VEKTOR [POSISI] > VEKTOR[J] THEN POSISI := J; BANTU := VEKTOR[I]; VEKTOR[I] :=VEKTOR[POSISI]; VEKTOR[POSISI] := BANTU END END; { PROSEDUR UNTUK MENCARI DATA METODE BINARY SEARCH ----} PROCEDURE MENCARI_BINER (VAR KETEMU : BOOLEAN; VAR LOKASI : INTEGER; VAR CARI : INTEGER; VEKTOR : LARIK; N: INTEGER); VAR ATAS, BAWAH : INTEGER; BEGIN 54n1 Untuk Kalangan Sendiri Hal : 58
59 WRITELN; WRITELN; WRITE('INPUT DATA YANG DI CARI: ');READLN(CARI); ATAS := N; BAWAH:= 1; KETEMU:= FALSE; WHILE(NOT KETEMU) AND (BAWAH <= ATAS) DO BEGIN LOKASI := (ATAS + BAWAH) DIV 2; IF CARI = VEKTOR[LOKASI] THEN KETEMU := TRUE ELSE IF CARI > VEKTOR[LOKASI] THEN BAWAH := LOKASI + 1 ELSE ATAS := LOKASI -1; END; END; { PROGRAM UTAMA } BEGIN CLRSCR; BARIS := 8; WRITELN('MENCARI DATA PADA SUATU VEKTOR DENGAN METODE BINARY SEARCH'); WRITELN(' '); BACA_VEKTOR(VEKTOR,CACAH,BARIS); MENCARI_BINER(KETEMU,LOKASI,CARI,VEKTOR,CACAH); WRITELN; WRITE('VEKTOR DIATAS TELAH DISORTIR'); WRITELN(' MENJADI (DIBACA PERBARIS): '); CETAK_VEKTOR( VEKTOR, CACAH); WRITELN; IF KETEMU THEN BEGIN WRITELN('BILANGAN"', CARI:1,'" ADA PADA VEKTOR DI ATAS'); WRITE('YAITU PADA ELEMEN KE " ',LOKASI:1); WRITELN('"DARI VEKTOR TERSORTIR') END ELSE WRITELN(' BILANGAN" ',CARI:1,'" TIDAK ADA PADA VEKTOR DIATAS') ; Readln; END. 54n1 Untuk Kalangan Sendiri Hal : 59
60 Hasil Program 54n1 Untuk Kalangan Sendiri Hal : 60
STRUKTUR SELEKSI DAN PERULANGAN PADA ALGORITMA
STRUKTUR SELEKSI DAN PERULANGAN PADA ALGORITMA Saniman dan Muhammad Fathoni ABSTRAK Adakalanya suatu instruksi hanya akan dikerjakan jika kondisi tertentu dipenuhi dan tidak akan dikerjakan kalau kondisi
PROCEDURE DAN FUNCTION PADA ALGORITMA
PROCEDURE DAN FUNCTION PADA ALGORITMA Saniman dan Muhammad Fathoni ABSTRAK Sebuah program yang besar dapat dipecah-pecah menjadi bagian-bagian program yang lebih kecil. Penggalan program ini disebut modul
PENGANTAR ALGORITMA DAN PEMROGRAMAN
PENGANTAR ALGORITMA DAN PEMROGRAMAN Saniman dan Muhammad Fathoni ABSTRAK Algoritma adalah susunan langkah-langkah sistematis dan logis dalam pemecahan suatu masalah. Ada 3 cara dalam menyusun algoritma
Algoritma Pemrograman
Algoritma Pemrograman Pertemuan Ke-2 (Teks Algoritma) Noor Ifada [email protected] S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Judul Algoritma Deklarasi Deskripsi Translasi
Algoritma Pemrograman
Algoritma Pemrograman Pertemuan Ke-2 (Teks Algoritma) :: Noor Ifada :: S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Judul Algoritma Deklarasi Deskripsi Translasi Teks Algoritma ke dalam
Algoritma Pemrograman
Algoritma Pemrograman Pertemuan Ke-2 (Teks Algoritma) :: Noor Ifada :: S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Judul Algoritma Deklarasi Deskripsi Translasi Teks Algoritma ke dalam
Algoritma & Pemrograman 1. Muhamad Nursalman Pendilkom/Ilkom Universitas Pendidikan Indonesia
Algoritma & Pemrograman 1 Muhamad Nursalman Pendilkom/Ilkom Universitas Pendidikan Indonesia Daftar Isi 1. Bab 1 Pengantar & Dasar Dasar Algoritma 2. Bab 2 Aturan Penulisan Teks Algoritma 3. Bab 3 Tipe,
Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom
Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom Pengantar Bahasa Pemrograman Pascal Page 1 / 11 Pengenalan Pascal Pascal merupakan salah satu bahasa pemrograman tingkat tinggi. Pemrograman
TIPE, NAMA, DAN NILAI
TIPE, NAMA, DAN NILAI Dian Palupi Rini, M.Kom Tipe Dasar Bilangan Logika Nama Tipe adalah boolean (diambil dari nama matematikawan Inggris George Boole). Ranah Nilai : true (benar) dan false (salah). Konstanta
Konstruksi Dasar Algoritma
Konstruksi Dasar Algoritma ALGORITMA DAN PEMROGRAMAN [IF6110202] Yudha Saintika, S.T., M.T.I. Sub-Capaian Pembelajaran MK Pendahuluan Instruksi dan Aksi Algoritma merupakan deskripsi urutan pelaksanaan
VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2
VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI Tujuan Pembelajaran 1. Siswa mampu memahami penulisan Tipe data, variabel dan konstanta dalam pascal 2. Siswa mampu menerapkan penggunaan Tipe data,
Bab 2 DASAR-DASAR ALGORITMA
Bab 2 DASAR-DASAR ALGORITMA Pada bab ini anda akan mempelajari 1. Nama (pengenal) 2. Nilai 3. Variabel dan Konstanta 4. Penugasan (Assignment) 5. Jenis-jenis tipe data 6. Jenis-jenis operasi dan kaitannya
Brigida Arie Minartiningtyas, M.Kom
Brigida Arie Minartiningtyas, M.Kom Pseudocode Pseudo berarti imitasi atau mirip atau menyerupai Code menunjukkan kode dari program Pseudocode adalah kode yang mirip dengan instruksi kode program yang
Algoritma dan Struktur Data
Algoritma dan Struktur Data Program Program: sederetan perintah-perintah yang harus dikerjakan oleh komputer untuk menyelesaikan masalah. 3 level bahasa pemrograman: 1. Bahasa tingkat rendah 2. Bahasa
Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1
Struktur Data Belajar Struktur Data Menggunakan Pascal Pertemuan-1 I n W a h y u W i d o d o e m a i l @ r i n g k e s. c o m Identifier, Konstanta dan Variabel Identifier (sebutan / pengenal) Identifier
PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR
1 PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR Siti Mukaromah, S.Kom TEKNIK PENYAJIAN ALGORITMA Teknik Tulisan Structure English Pseudocode Teknik Gambar Structure Chart HIPO Flowchart 2 PSEUDOCODE Kode
Algoritma dan Struktur Data I Mia Fitriawati, S.Kom, M.Kom
Runtunan Algoritma dan Struktur Data I Mia Fitriawati, S.Kom, M.Kom Runtunan terdiri dari satu atau lebih pernyataan Tiap pernyataan dikerjakan secara berurutan sesuai urutannya Urutan instruksi menentukan
BAB I TUJUAN DAN LANDASAN TEORI
BAB I TUJUAN DAN LANDASAN TEORI 1. Tujuan 1. Dapat memahami konsep prosedur dan fungsi. 2. Mampu membuat prosedur dan fungsi baik dengan parameter maupun tanpa parameter. 3. Mampu membedakan kapan menggunakan
Teori Algoritma. Struktur Algoritma
Alam Santosa Teori Algoritma Runtunan Struktur Algoritma Seperti telah dijelaskan sebelumnya, sebuah algoritma terbagi tiga bagian, yaitu: Judul Deklarasi Deskripsi Judul Judul program digunakan untuk
.::BAB II.::MENGENAL PASCAL
.::BAB II.::MENGENAL PASCAL Pascal adalah bahasa pemrograman terstruktur yang membedakan blok-blok pendeklarasian tipe, variable dan penulisan kode program. Pascal memiliki keunggulan untuk dipelajari
Pertemuan Ke-2 (Teks Algoritma) Rahmady Liyantanto. S1 Teknik Informatika-Unijoyo
Algoritma Pemrograman Pertemuan Ke-2 (Teks Algoritma) Rahmady Liyantanto Sub Pokok Bahasan Pendahuluan Judul Algoritma Deklarasi Deskripsi Translasi Teks Algoritma ke dalam Teks Program Bahasa Pascal Tabel
Pengantar dalam Bahasa Pemrograman Turbo Pascal
Pengantar dalam Bahasa Pemrograman Turbo Pascal Penulis: William www.etersoul.com Computer Club of Bunda Hati Kudus SMA Bunda Hati Kudus Pengantar Bahasa Pemrograman Pascal Page 1 / 11 License Agreements
Algoritma Pemrograman
Algoritma Pemrograman Pertemuan Ke-3 (Tipe Data dan Nama) 1 Sub Pokok Bahasan Pendahuluan Tipe Dasar Tipe Bentukan Nama 2 Pendahuluan Tipe adalah pola representasi data dalam komputer Tipe data dapat dikelompokkan
Chapter 3.2 : Tipe, Nama dan Nilai
Mata Kuliah : Logika dan Algoritma / 4 SKS Chapter 3.2 : Tipe, Nama dan Nilai Dosen Pengasuh : Fatoni, M.M.,M.Kom. Mail : [email protected]/[email protected] Materi Yang Dipelajari Tipe Data Dasar
PENDAHULUAN. Brigida Arie Minartiningtyas, M.Kom
PENDAHULUAN Brigida Arie Minartiningtyas, M.Kom Langkah dalam proses pembuatan suatu program atau software : Mendefinisikan masalah dan menganalisanya Tujuan dari pembuatan program Parameter-parameter
Teori Algoritma TIPE DATA
Alam Santosa Teori Algoritma Dasar Algoritma TIPE DATA Program komputer adalah deretan perintah untuk memanipulasi data input menjadi informasi yang bermanfaat bagi pengguna (user). Data yang diinput dapat
Indentifier, Keywords, Variable, Tipe Data dan Operator. Ramos Somya, S.Kom., M.Cs.
Indentifier, Keywords, Variable, Tipe Data dan Operator Ramos Somya, S.Kom., M.Cs. Merupakan nama yang digunakan untuk menamai variabel, konstanta, nama program maupun sub program. Seorang programmer tidak
Algoritma,Flowchart, Konsep
Algoritma,Flowchart, Konsep dasar PASCAL Masih ingat??? Algoritma Penulisan Algoritma Menggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris) Kelemahannya masih sering membingungkan (ambigu) /
MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA
MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA Kata-Kata Cadangan Kata-kata cadangan (reserved words) adalah kata-kata yang sudah didefinisikan oleh Pascal yang mempunyai maksud tertentu. Kata-kata
Pertemuan 3 Penyeleksian Kondisi dan Perulangan
Pertemuan 3 Penyeleksian Kondisi dan Perulangan Objektif: 1. Mengetahui macam-macam penyeleksian kondisi dalam pascal 2. Mengerti statement kondisi IF dan Case 3. Mengetahui macam-macam perulangan dalam
Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN
Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN I. Elemen-Elemen Dalam Bahasa Pemrograman Berikut adalah elemen-elemen pada bahasa pemrograman: Berikut adalah element-element pada bahasa pemrograman: 1. Aturan
Bab 1 Algoritma dan Pemrograman Tersruktur
Bab 1 Algoritma dan Pemrograman Tersruktur 1.1 Definisi Algoritma Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. Contoh algoritma Euclidean untuk menentukan
MODUL 1. Struktur Bahasa PASCAL secara umum
MODUL 1 Struktur Bahasa PASCAL secara umum Pascal mempunyai struktur sebagai berikut: 1. Bagian Judul Program 2. Bagian Deklarasi e a. Deklarasi tipe data (TYPE) b. Deklarasi variabel (VAR) c. Deklarasi
ALGORITHM. 6 Algoritma, Flowchart & Program. Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.
ALGORITHM 6 Algoritma, Flowchart & Program Dahlia Widhyaestoeti, S.Kom [email protected] dahlia74march.wordpress.com Seorang sahabat dekat setara dengan seribu orang kerabat Euripides Euripides
Tipe Data, Nama, Nilai. Chapter 4
Tipe Data, Nama, Nilai Chapter 4 1 Tipe Data Pada umumnya, program komputer bekerja dengan memanipulasi objek (data) di dalam memori. Objek (data) yang akan diprogram bermacam-macam jenis atau tipenya
Sesi/Perkuliahan ke: II
Sesi/Perkuliahan ke: II Tujuan Instruksional Khusus : 1. Mahasiswa dapat menyebutkan jenis-jenis data sederhana. 2. Mahasiswa dapat menjelaskan pengertian integer,, boolean dan char. 3. Mahasiswa dapat
MODUL 3 ALGORITMA PEMROGRAMAN
MODUL 3 ALGORITMA PEMROGRAMAN Pada Modul ini anda akan mempelajari 1. Pengenal 2. Nilai 3. Variabel dan Konstanta 4. Penugasan (Assignment) 5. Jenis-jenis tipe data 6. Jenis-jenis operasi dan kaitannya
Universitas gunadarma. pascal. Bab 4- bab 10. Hana Pertiwi S.T
Universitas gunadarma pascal Bab 4- bab 10 Hana Pertiwi S.T 14 PASCAL Struktur Perulangan WHILE-DO Struktur Perulangan REPEAT-UNTIL REPEAT UNTIL 1. Struktur Perulangan FOR 2. Penggunaan gabungan struktur
Algoritma Pemrograman
Algoritma Pemrograman Pertemuan Ke-3 (Tipe Data dan Nama) Noor Ifada [email protected] S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Tipe Dasar Tipe Bentukan Nama S1 Teknik
STRUKTUR DASAR ALGORITMA
STRUKTUR DASAR ALGORITMA Pertemuan 5 Muhamad Haikal, S.Kom., MT Struktur Dasar Algoritma 1. Struktur Sequence (Runtunan) 2. Struktur Selection (Pemilihan) 3. Struktur Repetition (Perulangan) Struktur Sequence
I. KATA PENGANTAR. Modul Algoritma Pemrograman. Modul Ke-4 - Hal 1
I. KATA PENGANTAR Dewasa ini sudah banyak berkembang bahasa-bahasa pemrograman tingkat tinggi yang pemakaiannya sudah sangat mudah, hanya klik dan drag saja. Namun meskipun demikian tetap saja programmer
Pertemuan 4 KONSEP TIPE DATA
Pertemuan 4 KONSEP TIPE DATA Bahasa Pemrograman PASCAL Pascal, merupakan bahasa pemrograman tingkat tinggi. Pascal dirancang oleh Prof. Niklaus Writh (Technical University di Zurich, Switzerland) pada
MODUL PRAKTIKUM ALGORITMA PEMROGRAMAN TEKNIK INFORMATIKA
MODUL PRAKTIKUM ALGORITMA PEMROGRAMAN TEKNIK INFORMATIKA Nama : NRP : Laboratorium Pemrograman JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO 2012 KONTRAK PRAKTIKUM Nama Mata Kuliah :
PERTEMUAN 2 ALGORITMA & PEMROGRAMAN
PERTEMUAN 2 ALGORITMA & PEMROGRAMAN POKOK BAHASAN 1. Pendahuluan 2. Tahapan Pembangunan Program 3. Pengenalan Algoritma 4. Cara Menyajikan Algoritma 5. Data Program 6. Elemen-Elemen Program PENDAHULUAN
KONSEP DASAR BAHASA PASCAL
KONSEP DASAR BAHASA PASCAL Pengertian Pemrograman / programming : adalah pekerjaan penulisan instruksi bagi computer untuk menyelesaikan suatu masalah. Program Interpreter Compiler : adalah himpunan instruksi
JENIS DATA SEDERHANA & INPUT/OUTPUT DATA
JENIS DATA SEDERHANA & INPUT/OUTPUT DATA 1.1 Tipe Data A. Data Tipe Sederhana Dihubungkan dengan sebuah identifier untuk sebuah data. Data tipe ini digolongkan menjadi tipe data standar dan tipe data yang
algoritma & pemrograman
algoritma & pemrograman materi pengajaran algoritma & pemrograman I (IF-185) 1. Pendahuluan 4. Procedure & Function - Bahasa Pemrograman Pertemuan : 3x - Membuat program / algoritma Pertemuan : 1x 5. UTS
Nama, Tipe, Ekspresi, dan Nilai
Nama, Tipe, Ekspresi, dan Nilai ALGORITMA DAN PEMROGRAMAN [IS6110102] Dosen: Yudha Saintika, S.T., M.T.I Sub-Capaian Pembelajaran MK Mahasiswa mampu menerapkan konsep nama, tipe, ekspresi, nilai ke dalam
& PEMROGRAMAN. Alex De Kweldju, S.Kom D3 Teknik Komputer Fakultas Teknik Universitas Negeri Papua
ALGORITMA & PEMROGRAMAN II Pascal #2 Alex De Kweldju, S.Kom D3 Teknik Komputer Fakultas Teknik Universitas Negeri Papua PASCAL Bahasa Pemrograman Terstruktur Diciptakan Nikalus Wirth Kata PASCAL untukpenghormatan
Memulai Pemrograman Pascal dengan Delphi Console 1. Buka aplikasi delphi 2. Pilih File New Other Console Application
#2 Aplikasi Console Aplikasi console merupakan aplikasi berbasis teks yang berjalan pada command prompt. Bahasa yang digunakan pada aplikasi delphi adalah bahasa pemrograman pascal. Struktur Penulisan
MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN
PERCABANGAN DAN PENGULANGAN Pada BAB ini akan membahas tentang PERCABANGAN dan PERULANGAN. PERCABANGAN : a) IF THEN b) CASE OF PENGULANGAN: a) REPEAT N TIMES b) REPEAT UNTIL c) WHILE DO d) ITERATE STOP
Algoritma dan Pemrograman Bab II Dev Pascal, Variabel, Tipe Data. Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia
Algoritma dan Pemrograman Bab II Dev Pascal, Variabel, Tipe Data Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia Dev Pascal Sebuah IDE untuk bahasa PASCAL keluaran BloodSheed yang sifatnya
Algoritma Pemrograman
Algoritma Pemrograman Pertemuan Ke-8 (Prosedur) :: Noor Ifada :: S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Modularisasi Program Pendefinisian Prosedur Nama Global dan Nama Lokal Parameter
ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA
ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA I. Pendahuluan Algoritma dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami. Algoritma dapat ditulis dalam bahasa natural/bahasa
Algoritma Pemrograman
Algoritma Pemrograman Pertemuan Ke-3 Tipe Data dan Nama :: Noor Ifada :: S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Tipe Dasar Tipe Bentukan Nama S1 Teknik Informatika-Unijoyo 2 Pendahuluan
Algoritma Pemrograman
Algoritma Pemrograman Pertemuan Ke-3 (Tipe Data dan Nama) :: Noor Ifada :: S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Tipe Dasar Tipe Bentukan Nama S1 Teknik Informatika-Unijoyo 2 1
SMA SANTO PAULUS PONTIANAK
SMA SANTO PAULUS PONTIANAK Konsep Dasar Pemrograman Pascal Kelas X Semester 2 Pengayaan Teknologi Informasi dan Komunikasi Oleh : Vianney Alexius, mtb TIK-vianney.mtb 2012 Algoritma Serangkaian langkah
Dasar Komputer & Pemrograman 2A
Dasar Komputer & Pemrograman 2A Materi 3 Reza Aditya Firdaus STATEMENT INPUT OUTPUT Dalam bahasa Pascal untuk keperluan input (membaca input) digunakan identifier standar READ atau READLN. Identifier standart
Struktur Data. Pertemuan 2
Pertemuan 2 Tujuan Pembelajaran Mahasiswa mampu menjelaskan konsep struktur data (Pengertian Struktur data, Konsep struktur data, Tipe data sederhana, Deklarasi data dalam bahasa pemrograman. 1. Pengertian
PENGANTAR ALGORITMA DAN PEMROGRAMAN
PENGANTAR ALGORITMA DAN PEMROGRAMAN Asal kata Algoritma Algorism atau Algorithm berarti proses menghitung. Al-Khuwarizmi dalam buku berjudul Kitab Al Jabar Wal-Muqabala yang artinya Buku pemugaran dan
Algoritma dan Struktur Data
20/11/2014 Algoritma dan Struktur Data Algoritma Pemrograman Bekti Wulandari, M.Pd Kelas B TE 2014 Program Program: sederetan perintah-perintah yang harus dikerjakan oleh komputer untuk menyelesaikan masalah.
BAB III Pengenalan Tipe Data dan Bahasa Pemrograman C/C++
BAB III Pengenalan Tipe Data dan Bahasa Pemrograman C/C++ Pendahuluan Pada bab ini dileaskan tipe data dan operasi baca tulis data, juga dijelaskan struktur pemrograman pada bahasa C/C++ Penyajian 31 Tipe
Algoritma Pemrograman
Algoritma Pemrograman Pertemuan Ke-8 dan Ke-9 (Prosedur) Noor Ifada [email protected] S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Modularisasi Program Pendefinisian Prosedur
P A S C A L D A S A R
P A S C A L D A S A R Komputer merupakan satu rangkaian perangkat elektronik yang terdiri dari monitor, CPU(Central Processing Unit), keyboard, speaker maupun printer. Penggunaaan komputer sudah sangat
PERKEMBANGAN PASCAL. Pascal adalah bahasa tingkat tinggi ( high level language) yang orientasinya pada segala tujuan
PERKEMBANGAN PASCAL Pascal adalah bahasa tingkat tinggi ( high level language) yang orientasinya pada segala tujuan Nama pascal diambil sebagai penghargaan terhadap BLAISE PASCAL seorang ahli matematika
Tinjau algoritma dibawah ini
Matakuliah : Algoritma & Struktur Data Versi : 1.0.0 Materi : Tipe, Nama, dan Nilai Penyaji : Zulkarnaen NS 1 Tinjau algoritma dibawah ini Di dalam algoritma Euclidean, nilai m dan n dimanipulasi oleh
ALGORITMA TUGAS 2 RESUME ALGORITMA PERCABANGAN DAN ALGORITMA PERULANGAN. Disusun Oleh : Sakina Mawardah Teknik Informatika. Dosen : Asep M. Yusuf, S.
ALGORITMA TUGAS 2 RESUME ALGORITMA PERCABANGAN DAN ALGORITMA PERULANGAN Disusun Oleh : Sakina Mawardah Teknik Informatika Dosen : Asep M. Yusuf, S.T UNIVERSITAS NASIONAL PASIM DAFTAR ISI A. Algoritma Percabangan...
SOAL DAN JAWABAN UTS PEMROGRAMAN DASAR KELAS X
SOAL DAN JAWABAN UTS PEMROGRAMAN DASAR KELAS X Kelas : X TKI 2 Mata Pelajaran : Produktif Teknik Komputer dan Informatika (Pemrograman Dasar) Waktu : 60 menit Bentuk Soal : Pilihan Ganda 40 soal Pilihan
KONSEP DASAR BAHASA PASCAL
KONSEP DASAR BAHASA PASCAL I. Struktur Dan Komponen Dasar Program Pascal. Struktur dari suatu program Pascal terdiri dari sebuah judul program dan suatu blok program atau badan program. Badan program dibagi
Konsep Dasar Pemrograman Pascal
Konsep Dasar Pemrograman Pascal 1.1 Definisi Algoritma Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan. Langkah-langkah dalam algoritma
Modul 1 Pengantar Bahasa Pascal
1 Modul 1 Pengantar Bahasa Pascal 1.1 Sejarah Singkat Bahasa PASCAL Bahasa PASCAL pertama kali dikembangkan pada awal tahun 70-an oleh NICLAUS WIRTH di Technical University, Zurich Swiss. Nama PASCAL diambil
AP2a (Pascal) Akuntansi Kelas 1 Semester 2. Hana Pertiwi S.T
AP2a (Pascal) Akuntansi Kelas 1 Semester 2 Hana Pertiwi S.T Pertemuan 1-3 (4 maret 2014) 1. Konsep Dasar Bahasa Pascal 2. Sejarah Singkat Bahasa Pascal 3. Struktur Dan Komponen Dasar Bahasa Pascal ( i).
Pertemuan 3 Prosedur dan Fungsi
Pertemuan 3 Prosedur dan Fungsi Objektif: 1. Memahami penggunaan prosedur dan fungsi 2. Mengerti pengiriman parameter dalam prosedur dan fungsi 3. Dapat membuat program sederhana menggunakan prosedur dan
PRAKTIKUM 4 STATEMENT KENDALI
PRAKTIKUM 4 STATEMENT KENDALI 1. Judul Materi / Pokok Bahasan : Statement Kendali 2. Tujuan Instruksional Khusus : Mahasiswa dapat menggunakan statement kendali untuk berbagai macam kondisi pemrograman
BAB I PENGENALAN STRUKTUR DATA DAN ALGORITMA
BAB I PENGENALAN STRUKTUR DATA DAN ALGORITMA Tujuan : 1. Mahasiswa memahami apakah yang dimaksud dengan struktur data 2. Mahasiswa memahami apakah yang dimaksud dengan algoritma 3. Mengingat kembali tipe
JENIS-JENIS DATA DAN STATEMEN INPUT OUTPUT
JENIS-JENIS DATA DAN STATEMEN INPUT OUTPUT Jenis jenis data Jenis jenis data yang dikenal dalam bahasa pascal antara lain yaitu: 1. Jenis data sederhana a. Jenis data yang standar; yaitu : Integer Real
KONSEP DASAR BAHASA PASCAL. Pengertian SEJARAH SINGKAT BAHASA PASCAL STRUKTUR DAN KOMPONEN DASAR PROGRAM PASCAL.
KONSEP DASAR BAHASA PASCAL STRUKTUR DAN KOMPONEN DASAR PROGRAM PASCAL. Pengertian Pemrograman / programming : adalah pekerjaan penulisan instruksi bagi komputer untuk menyelesaikan suatu masalah. Struktur
Algoritma Pemrograman
Algoritma Pemrograman Pertemuan Ke-7 (Pengulangan atau Looping [2]) :: Noor Ifada :: S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Struktur WHILE Struktur REPEAT S1 Teknik Informatika-Unijoyo 2 Struktur
Proses, Instruksi, dan Aksi
Matakuliah : Algoritma & Struktur Data Versi : 1.0.0 Materi : Dasar-Dasar Algoritma Penyaji : Zulkarnaen NS 1 Proses, Instruksi, dan Aksi Pada dasarnya, sebuah algoritma merupakan deskripsi pelaksanaan
Algoritma Pemrograman Dalam Bahasa Pascal
Algoritma Pemrograman Dalam Bahasa Pascal Budi Permana, S.Kom [email protected] Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan
Algoritma Pemrograman
Algoritma Pemrograman Pertemuan Ke-8 dan Ke-9 (Prosedur) :: NoorIfada :: S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Modularisasi Program Pendefinisian Prosedur Nama Global dan Nama Lokal
1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.
Semester : 4 Pengenalan Algoritma dan Program 200 menit No. : LST/EKA/EKA259/01 Revisi : 01 Tgl. : 10-2-2014 Hal. 1 dari 2 hal. 1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada. 2.
Modul ke 1. Modul Algotima Dan Pemrograman Pascal. Modul Pelatihan Olimpiade Komputer 2009 SMA Negeri 2 Cibinong
Modul ke 1 Modul Algotima Dan Pemrograman Pascal Modul Pelatihan Olimpiade Komputer 2009 SMA Negeri 2 Cibinong Author : Cahyo Tri S 4/10/2009 Politeknik Telkom 2009 MODUL ALGORITMAN DAN PEMROGRAMAN TURBO
I. KATA PENGANTAR. Modul Algoritma Pemrograman. Modul Ke-3 - Hal 1
I. KATA PENGANTAR Dewasa ini sudah banyak berkembang bahasa-bahasa pemrograman tingkat tinggi yang pemakaiannya sudah sangat mudah, hanya klik dan drag saja. Namun meskipun demikian tetap saja programmer
Pengenalan Pascal. Sejarah Singkat Pascal
Pengenalan Pascal Sejarah Singkat Pascal Dirancang oleh Prof. Nicklaus Wirth dari Technical University di Zurich, Switzerland tahun 1971. Nama Pascal berasal dari Blaise Pascal, nama ahli matematika dan
BAB I ALGORITMA DAN FLOWCHART
BAB I ALGORITMA DAN FLOWCHART A. ALGORITMA Sekilas Algoritma Algorima merupakan sebuah konsep tentang bagaimana menyelesaikan suatu permasalahan dengan menggunakan langkah-langkah yeng benar dan sistematis.
Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C
1. Pendahuluan Lingkungan Turbo C++ 4.5 Turbo C++ 4.5 adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C++ 4.5. 1 2 3 4 1 : Menu Utama
SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 1 & 2
A. Kompetensi 1. Utama SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 1 & 2 Mahasiswa dapat memahami tentang konsep pemrograman
menunjukkan tipe hasil dari fungsi. sqr, succ dan sebagainya. buat sendiri.
FUNCTION Materi 5 Fungsi Blok fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya atau jenis hasilnya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Pada
PENGANTAR LOGIKA DAN ALGORITMA DENGAN PASCAL
PENGANTAR LOGIKA DAN ALGORITMA DENGAN PASCAL Pengertian LOGIKA: Logika berasal dari bahasa Yunani yaitu LOGOS yang berarti ilmu. Logika pada dasarnya filsafat berpikir. Berpikir berarti melakukan suatu
Algoritma Pemrograman I KONSEP DASAR
Algoritma Pemrograman I KONSEP DASAR Apakah Algoritma itu? Masalah adalah pertanyaan atau tugas yang kita cari jawabannya. Untuk masalah yang kecil, dapat ditemukan solusi dengan mudah dan cepat. Jika
Algoritma dan Struktur Data
Algoritma dan Struktur Data Mia Fitriawati, M.Kom FUNGSI Modul program yang mengembalikan/ memberikan (return) sebuah nilai yang bertipe sederhana. tipe data sederhana : integer, real, boolean, dan string
Tipe Data dan Operator dalam Pemrograman
Diktat Pelatihan Olimpiade Komputer Oleh Fakhri Pertemuan ke 2 : Tipe Data dan Operator dalam Pemrograman 2.1 Tipe Data Tipe data adalah jenis dari suatu nilai pada pemrograman, baik itu angka, tulisan,
ALGORITMA & FLOWCHART
ALGORITMA & FLOWCHART 1. DEFINISI ALGORITMA Terdapat beberapa definisi mengenai kata Algoritma : 1. Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis (Rinaldi
FUNGSI. Blok fungsi juga diawali dengan kata cadangan Begin dan di akhiri dengan kata cadangan End dan titik koma.
FUNGSI Blok fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Bentuk umum : FUNCTION identifier (daftar parameter)
Pemrograman Dasar Pascal
Pemrograman Dasar Pascal Semester 1 d3 ilkom uns 1.Pengenalan Program 1 Sejarah Singkat Pascal Dirancang oleh Prof. Nicklaus Wirth dari Technical University di Zurich, Switzerland tahun 1971. Nama Pascal
Dasar Komputer & Pemrogaman 2A
Dasar Komputer & Pemrogaman 2A Materi 1 Reza Aditya Firdaus Sejarah Singkat Pascal Dirancang oleh Prof. Nicklaus Wirth dari Technical University di Zurich, Switzerland tahun 1971. Nama Pascal berasal dari
Dasar Komputer dan Pemrograman. Konsep Tipe Data dan Operator Nama dan Nilai Data
Dasar Komputer dan Pemrograman Konsep Tipe Data dan Operator Nama dan Nilai Data Mahasiswa memahami penggunaan tipe data dan operator serta translasinya ke dalam pseudocode. Mahasiswa memahami aturan penamaan
ALGORTIMA DAN PEMROGRAMAN
ALGORTIMA DAN PEMROGRAMAN PROSEDUR Pendahuluan Dalam memprogram yang besar perlu memecah program menjadi pbeberapa subprogram yang lebih kecil. Tiap subprogram kadangkala cukup independen dari program
PEMROGRAMAN DASAR ( PASCAL ) PERTEMUAN I
PEMROGRAMAN DASAR ( PASCAL ) PERTEMUAN I I. Pengertian Algoritma Algorithm sebenarnya berasal dari kata algorism yang berarti proses menghitung dengan angka Arab. Perencanaan dan perancangan program komputer
