PROGRAM STUDI SISTEM KOMPUTER

Ukuran: px
Mulai penontonan dengan halaman:

Download "PROGRAM STUDI SISTEM KOMPUTER"

Transkripsi

1 BAHAN AJAR ALGORITMA DAN PEMROGRAMAN II (PAI 112) OLEH : DODON YENDRI, M.KOM PROGRAM STUDI SISTEM KOMPUTER FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS ANDALAS 2012

2 SORTING (PENGURUTAN) Adalah suatu proses untuk menyusun sekelompok data dari data yang tidak urut menjadi data terurut berdasarkan kriteria tertentu. Ada 2 jenis pengurutan, yakni : a. Ascending ; adalah pengurutan dari kecil ke besar. Misalnya : 0,1,2,3, dst. Atau A, B, C, D, E, dst. b. Descending ; adalah pengurutan dari besar ke kecil Misalnya : 100,90, 80, 70, dst., atau Z,Y, X, W, dst. Ada banyak metoda/cara proses pengurutan, diantaranya : a. Bubble Sort / Exchange Sort / Metode Gelembung b. Selection Sort c. Insert Sort d. Quick Sort, dll Bubble Sort Adalah proses pengurutan dengan membandingkan 2 buah data yang bersebelahan dengan berulang kali. Banyaknya proses pembandingan tergantung pada jumlah datanya. Contoh : Misalkan ada sekumpulan data tersimpan dalam sebuah VektorA dengan nilai sebagai berikut : Urutkan data-data tersebut secara Ascending!. Dosen : Dodon Yendri, M.Kom Page 1

3 Karena ada 8 data yang akan dibanding, maka proses membandingkan 2 data yang bersebelahan (dari pasangan pertama sampai ke tujuh) akan dilakukan sebanyak 7 kali Adapun proses tersebut adalah : Langkah Pertama : i = Swap s= s= s= s= s= s= Langkah Kedua : i = Swap s= s= s= s= s= s= Dosen : Dodon Yendri, M.Kom Page 2

4 Dan begitu seterusnya sampai seluruh data tersebut terurut dari yang terkecil sampai terbesar. Algoritma Tukar Data For I <- 1 to N do For J <- 1 to N-1 do If VektorB[J] > VektorB[J+1] Then Min <- VektorB[J] VektorB[J] <-VektorB[J+1] VektorB[J+1] <- Min EndIf EndFor EndFor Dosen : Dodon Yendri, M.Kom Page 3

5 Program Pascalnya : program bubble_sort; uses crt; var VektorB : array[1..8] of integer; i,j,min : integer; clrscr; writeln('mengisi Array'); writeln;writeln; i:=1; while i<=8 do write('iputkan Bilangan Vektor B[',i,'] : ');readln(vektorb[i]); i:=i+1; (* Urut data *) for i:=1 to 8 do for j:=1 to 7 do if VektorB[J] > VektorB[J+1] then Min:=VektorB[j]; VektorB[j] := VektorB[J+1]; VektorB[J+1]:=Min; writeln;writeln; writeln('hasil Pengurutan '); writeln;writeln; for i:=1 to 8 do write(vektorb[i]:7); repeat until keypressed; end. Dosen : Dodon Yendri, M.Kom Page 4

6 Selection Sort Adalah suatu metoda pengurutan data dengan langkah-langkah : 1. Cari data terkecil/terbesar yang dimulai dari data pertama sampai data terakhir dan kemudian tukarkan letaknya dengan data pertama. 2. Cari data terkecil/terbesar yang dimulai dari data ke-dua sampai data terakhir dan kemudian tukarkan letaknya dengan data ke Cari data terkecil/terbesar yang dimulai dari data ke-tiga sampai data terakhir dan kemudian tukarkan letaknya dengan data ke Dan begitu seterusnya sampai data habis. Contoh : Diketahui sekumpulan data telah tersimpan dalam Vektor A dengan data-data berikut : Urutkan data tersebut secara Ascending. Buat langkah, algoritma dan Pascalnya! Proses dan Langkah : i = Swap Langkah s=1 Langkah s=1 Langkah s=1 Langkah s=1 Langkah s=1 Dosen : Dodon Yendri, M.Kom Page 5

7 Langkah Langkah s=1 Algoritma Tukar Data : For I <-1 to N do For J <-1 to N do If VektorA[J] < Min Then Min <- VektorA[J] Lok <- J; EndIf EndFor VektorA[lok]:=VektorA[I]; VektorA[I]:=min; EndFor Program Pascalnya : program selection_sort; uses crt; var VektorA : array[1..10] of integer; i,j : integer; min,max,lok : integer; clrscr; writeln('mengisi Array'); writeln;writeln; i:=1; while i<=10 do write('iputkan Bilangan Vektor A[',i,'] : ');readln(vektora[i]); i:=i+1; (* cari data *) writeln;writeln; Write('Hasil Analisis '); Dosen : Dodon Yendri, M.Kom Page 6

8 writeln;writeln; for I:=1 to 10 do min:=1000; for J:=I to 10 do if VektorA[j] < Min then Min:=vektorA[j]; lok:=j; VektorA[lok]:=VektorA[i]; VektorA[i]:=min; for I:=1 to 10 do write(vektora[i]:5); writeln;writeln; repeat until keypressed; end. SEARCHING (PENCARIAN DATA) Adalah suatu proses untuk mencari data dari sekelompok data yang tersimpan dalam larik. Ada beberapa metoda searching/pencarian data, antara lain : 1. Sequential Search 2. Binary Search Ad. 1. Sequential Search Proses pada sequential search ini dilakukan dengan cara membandingkan data yang akan dicari secara berurutan dari data pertama ke data berikutnya hingga didapatkan data yang diinginkan atau data yang dibaca habis dibaca. Untuk mencari data pada metoda ini, data tidak perlu diurutkan terlebih dahulu. Dosen : Dodon Yendri, M.Kom Page 7

9 Misal : Diketahui sebuah Larik dalam Vektor A dengan 10 indeks sebagai berikut : Buatlah Flowchart dan program Pascalnya untuk mengisi dan mencari data tertentu didalam Vektor tersebut. Algortima : 0. Baca Vektor, misalnya VektorA dengan N elemen 1. Inputkan Data yang akan di Cari 2. Inisialisasi : Ada = false 3. (Proses pencarian) Untuk I = 1 sampai N kerjakan langkah 4 4. Test apakah Cari = VektorA[I] jika ya berarti ketemu, tentukan : Ada = true Posisi = I I = N I=I+1 Jika tidak I=I+1 Ulangi langkah 3 5. Cek Hasil Pencarian : Jika Ketemu, tampilkan pesan Data yang dicari ditemukan pada lokasi ke I Jika tidak tampilkan pesan Data yang dicari tidak ditemukan 6. Selesai Dosen : Dodon Yendri, M.Kom Page 8

10 Flowchart start VektorA =1..10 Cari=0 Ketemu=False Readln Cari I=1 I<=10 Cari=VektorA[I] Y T T Ketemu=True I=10 Y Ketemu Y T Tidak Ketemu! I=I+1 Ketemu! pada lokasi I stop Dosen : Dodon Yendri, M.Kom Page 9

11 Program Pascalnya : program cari_data_dlm_array; uses crt; var VektorA : array[1..9] of integer; ketemu : boolean; x : char; i,cari : integer; lokasi : integer; clrscr; writeln('mengisi Array'); writeln;writeln; i:=1; while i<=9 do write('iputkan Bilangan Vektor A[',i,'] : ');readln(vektora[i]); i:=i+1; (* cari data *) writeln;writeln; Write('Data yang akan dicari? : ');readln(cari); writeln;writeln; ketemu:=false; i:=1; while i<=9 do if cari=vektora[i] then ketemu:=true; lokasi:=i; i:=9; i:=i+1 end else i:=i+1; if ketemu then writeln('data ditemukan! pada indeks ke ',lokasi) else writeln('data tidak ditemukan!'); repeat until keypressed; end. Dosen : Dodon Yendri, M.Kom Page 10

12 Ad. 2. Binary Search Adalah proses mencari data dalam sekumpulan data yang sudah tersimpan secara terurut. Langkah-langkah : 1. Data yang akan dicari langsung dibandingkan dengan data yang berada pada posisi tengah dalam deretan verktor 2. Jika data yang dicari sama dengan data yang berada di posisi tengah vektor, maka pencarian data berhenti (selesai). 3. Jika data yang dicari tidak sama dengan data yang berada pada posisi tengah vektor, tetapi lebih kecil dari data yang ada diposis tersebut, maka komputer akan mengabaikan data dalam vektor yang dimulai dari posisi tengah ke data paling kahir. Dan proses selanjutnya adalah mencari data tersebut ke bagian tengak Vektor yang masih ada. Demikian juga dilakukan jika data yang dicari lebih besar dari data yang berada pada posisi tengah Vektor. Contoh : Misalkan akan dicari data 2 pada Vektor berikut ini : Algoritma : 0. Baca VektorA dengan N elemen 1. Baca Data yang akan di Cari 2. Inisialisasi : Ada = false Atas = N Bawah = 1 3. Kerjakan langkah 4 dan 5 selama Atas >= Bawah 4. Tentukan Batas sub vektor Tengah = (atas + bawah) div 2 Dosen : Dodon Yendri, M.Kom Page 11

13 5. Test nilai Cari terhadap VektorA[tengah] Jika Cari < VektorA[tengah] (* ada di sub vektor 1 *) Atas = Tengah 1 Jika Cari > VektorA[tengah] (* ada di sub vektor 2 *) Bawah = Tengah + 1 Jika Cari = VektorA[tengah] (* ketemu *) Ada = true Posisi = Tengah Bawah = Atas Cek Hasil Pencarian : Jika Ketemu, tampilkan pesan Data yang dicari ditemukan pada lokasi ke I Jika tidak tampilkan pesan Data yang dicari tidak ditemukan 7. Selesai Tugas Saudara : Buat Flowchart dan Program Pascalnya! Program Pascalnya program binary_search; uses crt; var VektorA : array[1..100] of integer; i,tengah,cari,n : Integer; atas, bawah : integer; posisi : integer; ketemu : boolean; clrscr; writeln('mengisi Array'); writeln;writeln; write('jumlah N data : ');readln(n); i:=1; writeln; writeln; while i<=n do write('iputkan Bilangan Vektor A[',i,'] : '); readln(vektora[i]); i:=i+1; Dosen : Dodon Yendri, M.Kom Page 12

14 (* cari data *) writeln;writeln; ketemu := false; atas := N; bawah := 1; write('data yang akan dicari :');readln(cari); while atas >= bawah do tengah := (atas + bawah) div 2; if Cari < VektorA[tengah] then atas := tengah -1 else if Cari > VektorA[Tengah] then bawah := tengah +1 else ketemu := true; posisi := tengah; bawah := Atas + 1; if ketemu then write('data di temukan pada posisi ke ',posisi:5) else write('data tidak ketemu'); repeat until keypressed; end. PEMROGRAMAN MODULAR Seringkali dalam membuat program si pemrogram perlu memecah masalah menjadi beberapa upa-masalah yang lebih kecil. Tiap upa-masalah kadangkala cukup independence dari program utama sehingga programnya dapat dirancang tanpa mempertimbangkan konteks tempat ia digunakan. Program dengan upa-masalah disebut Modul. Modul dapat dirancang oleh pemrogram selain dari orang yang mengembangkan program utama. Modul yang sudah ditulis dan dapat dipasang ke program lain yang membutuhkannya. Teknik pemrograman seperti ini dinamakan Pemrograman Modular. Beberapa bahasa pemrograman menamakan modul dengan sebutan rutin (routine), prosedur (procedure) atau fungsi (function). Dosen : Dodon Yendri, M.Kom Page 13

15 Dalam teknik pemrograman modular, tiap modul mempunyai fungsi yang khas dan harus diberi nama. Dengan teknik ini modul yang sering digunakan berulang kali cukup ditulis satu kali saja dan pelaksanaan aksi didalam modul cukup dilakukan dengan memanggil nama modul tersebut dari bagian manapun didalam program utama atau dari modul lainnya. Ketika modul dipanggil, pelaksanaan program sekarang berpindah kedalam modul. Selanjutnya aksi didalam modul dilaksanakan secara beruntun sampai akhir modul tercapai. Setelah aksi didalam modul selesai dilaksanakan, pelaksanaan program kembali berpindah ke program pemanggil untuk melaksanakan aksi berikutnya. Berikut adalah mekanisme penggunaan modul : Program Utama A1 A2 A3 CALL MODUL1 A4 A5 CALL MODUL2 A6 A7 A8 CALL MODUL1 A9 End. MODUL1 M11 M12 M13.. End; MODUL2 M21 M22 M23 M24.. End; Dosen : Dodon Yendri, M.Kom Page 14

16 Keterangan Jalannya Program : Pelaksanaan program dimulai dari program utama. Aksi A1, A2 dan A3 dilaksanakan secara beruntun. Setelah aksi A3, Call Modul1(artinya MODUL1 dipanggil). Pelaksanaan program sekarang berpindah ke MODUL1. Aksi didalam Modul1 yaitu M11,M12 dan M13 dilaksanakan secara beruntun sampai instruksi terakhir (end). Setelah seluruh aksi didalam MODUL1 dilaksanakan program kembali berpindah ke program utama. Aksi yang terdapat setelah pemanggilan MODUL1 dilaksanakan, yaitu Aksi A4 dan A5. Setelah aksi A5, Call Modul2 ( artinya MODUL2 dipanggil) dan aksi-aksi dalam MODUL2 (M21,M22,M23, M24) dilaksanakan secara beruntun sampai terakhir (end). Setelah itu aksi kembali ke program Utama yakni mengerjakan Aksi A6,A7 dan A8. Kemudian MODUL1 dipanggil kembali dan aksi dalam MODUL1 dilaksanakan lagi secara berurutan dan kemudian kembali lagi ke Program Utama (Aksi A9) dan program selesai. Ada 2 jenis modul, yakni : 1. Fungsi 2. Prosedur 1. Fungsi Fungsi adalah modul program yang mengembalikan (return) sebuah nilai. Dalam matematika anda tentu sudah mengenal fungsi sbb: f(x) = x 2 + 3x 5 Dari contoh diatas f adalah nama fungsi. Sedangkan x adalah parameter fungsi yang bersangkutan. Dengan memberikan harga parameter, nilai fungsinya dapat dihitung sbb: Contoh : X=2 f(2) = (2) 5 = 5 Jadi, kita katakan fungsi f mengembalikan nilai 5 setelah pemberian parameter x=2. Dosen : Dodon Yendri, M.Kom Page 15

17 Deklarasi Fungsi : Function Namafungsi(parameter masukan) tipe hasil Parameter yang didefinisikan pada bagian judul fungsi dinamakan Parameter Formal. Parameter formal boleh tidak ada (kosong). Kalau ada harus berupa nama peubah/variabel. Semua nama yang didefinisikan dalam fungsi (tidak termasuk nama parameter formal) didefinisikan dalam kamus lokal. Fungsi dipanggil dengan menyebutkan nama fungsi beserta parameternya (kalau ada) Pemanggilan Fungsi : Namafungsi(parameter) Nama parameter yang disertakan pada waktu pemanggilan disebut dengan Parameter Aktual. Parameter aktual dapat berupa tetapan, nama tetapan atau nama peubah asalkan sudah terdefinisi tipe dan harganya. Pada waktu pemanggilan, terjadi korespondensi satu-satu antara parameter aktual dengan parameter formal. Ada beberapa hal yang perlu diperhatikan dalam pemanggilan fungsi, yakni : 1. Jumlah parameter aktual harus sama dengan jumlah parameter formal 2. Tipe parameter aktual harus sama dengan tipe parameter formal 3. Urutan parameter aktual harus sama dengan urutan parameter formal 4. Nama parameter aktual tidak boleh sama dengan nama parameter formal Contoh : Dosen : Dodon Yendri, M.Kom Page 16

18 (* Contoh Fungsi-1 *) program genapganjil; uses crt; var bilangan : integer; function genap(bil : integer) : boolean; genap:=(bil mod 2=0); write('ketikkan sembarang Bilangan : ');readln(bilangan); if genap(bilangan) then writeln('bilangan Genap') else writeln('bilangan Ganjil'); repeat until keypressed; end. (* akhir program fungsi *) (* Contoh Fungsi-2 *) Program Fak; uses crt; var F : integer; Function Factorial(N:Integer): integer; if N=0 then Factorial:=1 else Factorial := N * Factorial(N-1); clrscr; write('berapa Faktorial : ');readln(f); writeln(f,' Faktorial = ',factorial(f)); repeat until keypressed; Dosen : Dodon Yendri, M.Kom Page 17

19 end. (* akhir fungsi *) Hasil Program : (* Contoh Program Fungsi-3 *) program ApangkatN; uses CRT; Var A : integer; N : integer; Result : real; Function a_pangkat_npositif( X, Y : Integer) : Real; var hasil : real; I : Integer; hasil :=1; if Y > 0 then for I:=1 to Y do Hasil :=hasil * X; a_pangkat_npositif :=Hasil; procedure pangkat(var r : real; S,T : integer); if T < 0 then T := -T; R :=1/a_pangkat_npositif(S,T); end else R := a_pangkat_npositif(s,t); (* main program *) Dosen : Dodon Yendri, M.Kom Page 18

20 clrscr; write('inputkan harga A : ');readln(a); write('inputkan harga N : ');readln(n); result:=0; pangkat(result,a,n); write(' Hasil ',A:3,' pangkat ',N:3, ' adalah = ',result:8:2); repeat until keypressed; end. (* akhir fungsi *) 2. Prosedur Adalah program yang berisi rangkaian aksi dan menghasilkan efek netto yang terdefinisi. Karena ada efek yang akan ditimbulkan maka pada setiap prosedur harus didefinisikan keadaan awal dan keadaan akhir setelah rangkaian aksi dilaksanakan. Suatu prosedur harus diberi nama yang unik dan disertai dengan daftar parameter (kalau ada). Parameter formal dibedakan atas 3 jenis : 1. Parameter input 2. Parameter output 3. Parameter input/output Parameter Input adalah parameter yang berlaku sebagai penampung masukan Parameter Output adalah parameter yang berlaku sebagai keluaran Parameter Input/Output adalah parameter masukan dan keluaran Deklarasi Prosedur Dosen : Dodon Yendri, M.Kom Page 19

21 Procedure NamaProsedur(parameter formal) Pemanggilan Prosedur Contoh : NamaProsedur(parameter aktual) (*program tanpa parameter *) program luassegi3_1; uses crt; var alas,tinggi,luas : real; procedure luassegi3; luas:=0.5*alas*tinggi; clrscr; write('harga Alas : ');readln(alas); write('harga Tinggi : ');readln(tinggi); luassegi3; writeln('luas Segitiga = ',luas:8:2); repeat until keypressed; end. (* akhir program luassegi3_ *); (*program dengan parameter *) program luassg3_2; uses crt; var alas,tinggi,luas : real; Dosen : Dodon Yendri, M.Kom Page 20

22 procedure luassegi3(a,t : real; var L : real); L:=0.5*a*t; (*main program *) clrscr; write('harga Alas : ');readln(alas); write('harga Tinggi : ');readln(tinggi); luassegi3(alas,tinggi,luas); writeln('luas Segitiga = ',luas:8:2); repeat until keypressed; end. (* akhir program luassg3_ *); (*program dengan parameter *) program tukar1_1; uses crt; var A,B : Integer; procedure tukarab(var X,Y : integer); var Z : integer; Z := X; X := Y; Y := Z; clrscr; write('input A write('input B TukarAB(a,b); writeln; writeln('hasil Pertukaran : ');readln(a); : ');readln(b); '); writeln('nilai A = ',A); writeln('nilai B = ',B); repeat until keypressed; end. (* akhir program tukar1_ *); Dosen : Dodon Yendri, M.Kom Page 21

23 (*program tanpa parameter *) program tukar1_2; uses crt; var A,B : Integer; procedure tukarab; var z : integer; Z := x; X := Y; Y := Z; clrscr; write('input A write('input B TukarAB; writeln; writeln('hasil Pertukaran : ');readln(a); : ');readln(b); '); writeln('nilai A = ',A); writeln('nilai B = ',B); repeat until keypressed; end. (* akhir program tukar1_ *); PR : 1. Menentukan berapa bilangan terbesar dari 2 buah Angka yang diinputkan dari keyboard. 2. Untuk menentukan apakah suatu tahun merupakan tahun kabisat dari tahun yang diinputkan. ((tahun mod 4 = 0) and (thn mod 100 <>0 )) or (thn mod 400 = 0) 3. Menampilkan tabel yang berisi nilai-nilai x dan F(x) di dalam selang [10,15] dengan x = 0,2 seperti contoh berikut ini. F(x)=2x 2 + 5x - 8 Dosen : Dodon Yendri, M.Kom Page 22

24 REKURSIF Rekursif merupakan alat/cara untuk memecahkan masalah dalam suatu fungsi atau procedure yang memanggil dirinya sendiri. Definisi menurut Niclaus Wirth : An object is said be recursive if it partially consist or is defines in terms of itself Perhitungan matematika ( contoh fungsi factorial dan bilangan Fibonacci) Beberapa Contoh : Faktorial Fungsi factorial dari bilangan bulat positif n didefinisikan sebagai berikut: n!= n.(n-1)!, jika n>1 n!= 1, jika n=0, 1 contoh : 3!= 3. 2! 3!= ! 3!= != 6 Kita dapat menuliskan fungsi penghitung factorial seperti dibawah ini Dosen : Dodon Yendri, M.Kom Page 23

25 Bilangan Fibonacci Fungsi lain yang dapat diubah ke bentuk rekursif adalah perhitungan Fibonacci. Bilangan Fibonacci dapat didefinisikan sebagai berikut: f n = f n-1 + f n-2 untuk n > 2 f 1 = 1 f 2 = 1 Berikut ini adalah barisan bilangan Fibonacci mulai dari n=1 sampai n= Dosen : Dodon Yendri, M.Kom Page 24

26 Algoritma Fibonacci yang dipakai Function Fibonacci(input n:integer) integer Deklarasi Lokal {tidak ada} Deskripsi If (n=1) or (n=2)then Fibonacci:=1 Else Fibonacci:= Fibonacci(n-1)+Fibonacci(n-2); Contoh : Untuk ukuran n= 4, proses perhitungan Fibonacci dapat dilakukan sebagai berikut: f 4 = f 3 +f 2 f 4 = (f 2 +f 1 ) + f 2 f 4 = (1+1) +1 f 4 = 3 Latihan : 1. Buat program untuk menghitung deret S = n menggunakan function rekursi 2. Buat program untuk menghitung deret S = n menggunakan function rekursi Dosen : Dodon Yendri, M.Kom Page 25

27 No.1 deret S= n Function S(input n:integer) integer Deklarasi Lokal {tidak ada} Deskripsi If (n=1) Then return (1) Else return (n + S(n-1)) Endif No.2 deret S= n Function S(input n:integer) integer Deklarasi Lokal {tidak ada} Deskripsi If (n=1) Then return (2) Else return (2*n + S(n-1)) Endif Dosen : Dodon Yendri, M.Kom Page 26

28 REKURSI versus ITERASI Dalam beberapa hal, rekursi kurang efesien dibandingkan dengan proses iterasi. Perhatikan fungsi Fibonacci. Pada proses fibonacci terdapat beberapa pemanggilan fungsi fibonacci yang berulang-ulang. Sebagai contoh Fibonacci(6) memerlukan pemanggilan Fibonacci(5) dan fibonacci(4), dimana fibonacci(5) memerlukan pemanggilan fibonacci(4) dan fibonacci(3), dan begitu seterunya. Berikut adalah program menghitung Fibonacci dengan Iterasi uses crt; var n : integer; function fibonaci(n : integer) : integer; var f, akhir, bantu, i : integer; i := 1; f:=1; akhir :=0; if (n=1) then f:=0; while i <> N do bantu := F; I := I+1; F := F + Akhir; Akhir := Bantu; fibonaci := F; Dosen : Dodon Yendri, M.Kom Page 27

29 writeln('berapa n : ');readln(n); writeln('fibonaci N=',n,' adalah : ',fibonaci(n):5); repeat until keypressed; end. PERMUTASI Salah satu contoh pemakian Rekursi adalah Permutasi. Contoh : jika kita mempunyai 3 buah karakter A, B dan C maka semua permutasi yang mungkin dari ketiga karakter ini adalah : ABC BAC CAB ACB BCA CBA Secara umum, banyaknya permutasi dari N buah karakter adalah N faktorial. Contoh diatas N = 3, maka banyaknya permutasi adalah 3!=6. Proses penyusunan permutasi adalah : 1. Cetak elemen ke 1, dan cetak permutasi elemen ke 2 sampai ke N (permutasi dengan N-1 elemen) 2. Cetak elemen ke 2, dan cetak permutasi elemen ke 3 sampai ke N (permutasi dengan N-1 elemen) 3. Cetak elemen ke 3, dan cetak permutasi elemen ke 4 sampai ke N (permutasi dengan N-1 elemen) 4. Dan seterusnya sampai langkah terakhir adalah cetak elemen ke N, dan cetak permutasi elemen ke (N-1) (permutasi N-1) elemen) Proses diatas diulang terus sampai dicetak permutasi dengan 1 elemen. Dari N = 3 diatas, maka prosesnya adalah : Dosen : Dodon Yendri, M.Kom Page 28

30 Cetak A dan cetak permutasi ( B C ) Cetak B dan cetak permutasi ( A C ) Cetak C dan cetak permutasi ( A B ) Program Lengkap Permutasi adalah : program susun_permutasi; uses crt; const max = 5; type larik =array[1..max] of char; var a : larik; (* larik yang akan dipermutasikan *) c_permutasi, (* jumlah permutasi *) c_elemen, (* cacah karakter *) i : integer; (* perubah kendali *) lagi : char; (* perubah kendali *) procedure permutasi (var b : integer; a : larik; k,n : integer); var i : integer; temp : char; if k=n then b := succ(b); {membaca karakter berikut} write('permutasi ke ',b:2, ' : '); for i:=1 to n do write(a[i]:3); writeln; end else for i:= k to n do temp := a[i]; Dosen : Dodon Yendri, M.Kom Page 29

31 a[i] := a[k]; a[k] := temp; permutasi(b,a, k+1, n); repeat clrscr; writeln(' banyaknya karakter yang akan dipermutasikan '); repeat gotoxy(50,1);readln(c_elemen); until c_elemen <= max; (* menyusun karakter yang akan dipermutasikan *) for i := 1 to c_elemen do a[i] := chr(i+64); clrscr; writeln('penyusunan permutasi untuk ',c_elemen,' karakter'); writeln(' '); writeln; (*proses mencari permutasi *) c_permutasi :=0; permutasi(c_permutasi, a,1,c_elemen); (* mencetak hasil *) writeln; writeln('banyaknya permutasi : ',c_permutasi:3); writeln; write('akan coba lagi (y/t) : ');readln(lagi) until not (lagi in ['y','y']); end. Dosen : Dodon Yendri, M.Kom Page 30

32 PROGRAM FILE DATA/ARSIP Suatu file terdiri dari suku-suku atau data bertipe sama. Tipe data ini dapat berbentuk type data sederhana atau tipe data berstruktur. Masing-masing suku pada file akan terkait dengan adanya pointer. Akhir dari suatu file diberi tanda EOF (End-Of-File). Berikut ini adalah beberapa contoh deklarasi contoh file : Type Catatan = record; Nama : string[15]; Bp : string[13]; End; Larik = array[1..10] of integer; Var Peserta : file of catatan; {file variable} Data : file of larik; {file variable } A : catatan; {data variable} Untuk mendeklarasikan file harus dilakukan pada blok file. Pada deklarasi tersebut harus dipilih file variabel dan type dari file. Pada contoh diatas, peserta merupakan file variable dari suku-suku data yang bertype catatan. Sedangkan Data adalah file variabel dari sukusuku file bersuku larik. A adalah data variable dari record Catatan. Untuk keperluan operasi penggarapan file, ada beberapa statement yang diperlukan antara lain : ASSIGN(File-Variable, File-Name) REWRITE(File-Variable) RESET(File-Variable) WRITE(File-Variable,Data-Variable) Dosen : Dodon Yendri, M.Kom Page 31

33 READ(File-Variable, Data-Variable) CLOSE(File-Variable) ASSIGN Perintah ASSIGN digunakan untuk menghubungkan antara File- Variable dengan Data-Variable.Setelah file berhubungan, maka barulah kita dapat melakukan penulisan/pembacaan terhadap file. Contoh pemakaian Assign : Assign(Peserta, Data.dat ); atau ASSIGN(Peserta, A:Data.Dat ); REWRITE REWRITE diperlukan jika kita ingin menuliskan data baru kedalam File-Variable. Perintah ini dilakukan setelah perintah ASSIGN. Contoh : ASSIGN(Peserta, A:Data.dat ); REWRITE(Peserta); RESET Digunakan apabila kita ingin membaca data dari file data. Perintah ini juga dituliskan setelah statement ASSIGN. Contoh : ASSIGN(Peserta, A:Data.dat ); RESET(Peserta); Dosen : Dodon Yendri, M.Kom Page 32

34 WRITE Perintah ini akan menuliskan Data-Variable kedalam File-Variabel. Type file variable harus sama dengan data variable. Contoh : READLN(A.Nama); Readln(A.BP); WRITE(Peserta,A); READ Digunakan untuk membaca data yang ada pada Variabel-File dan dimasukkan kedalam Variabel-data. Contoh : READ(Peserta,A) CLOSE Perintah ASSIGN digunakan untuk menghubungkan File-variable dengan File-Data. Ini juga berarti kita membuka suatu file. Setelah file dibuka dan digunkan harus ditutup kembali supaya data yang ada didalamnya tersimpan dengan aman. Untuk menutup file yang telah digunakan perintah CLOSE. Perintah ini tidak berarti pemutusan hubungan antara File-Variable dengan Data-Variabel. Secara garis besar tatacara urutan penggunaan perintah tersebut adalah : Dosen : Dodon Yendri, M.Kom Page 33

35 Jika ingin menuliskan data kedalam file/menyimpan, maka perintahnya sbb: ASSIGN(File-Variable, File-Name); REWRITE(File-Variable); WRITE(File-Variabel,Data-Variable); CLOSE(File-Variable); Jika ingin membaca data dari file, maka urutan adalah : perintahnya ASSIGN(File-Variable, File-Name); RESET(File-Variable); READ(File-Variable) CLOSE(File-Variable); Contoh Program : 1. Program File1; uses crt; Var Nilai : file of Integer; { File variable } A, B : Integer; { Data variable } I : Integer; Procedure Simpan; Begin Assign(Nilai,'Data.dat'); Rewrite(Nilai); clrscr; writeln('menginput dan Menyimpan Nilai'); writeln; writeln; For I:=1 to 5 do Begin Dosen : Dodon Yendri, M.Kom Page 34

36 End; Write('Input Nilai ke-',i,' : ');readln(a); Write(Nilai,A); End; Close(Nilai) Procedure Baca; Begin Assign(Nilai,'Data.dat'); Reset(Nilai); writeln;writeln; writeln('nilai yang disimpan'); writeln;writeln; For I:=1 to 5 do Begin Read(nilai,B); Writeln(B); End; Close(Nilai); writeln; writeln('tekan sembarang tombol..!'); Repeat until keypressed; End; Begin (* menu utama *) Simpan; Baca; End. Hasil Program Dosen : Dodon Yendri, M.Kom Page 35

37 Contoh Program 2. Program file2; Uses crt; Type DataMhs = record Nobp : string[5]; Nama : string[20]; Nilai : real; ArsipMhs = file of DataMhs; var RekMhs : DataMhs; {rekaman} Mhs : ArsipMhs; {arsip} File Variabel Procedure Input; var lagi : char; Begin Assign(Mhs,'Mhs.Dat'); Rewrite(Mhs); repeat Data-variabel Dosen : Dodon Yendri, M.Kom Page 36

38 clrscr; writeln(' *** Iput Data Mahasiswa ***'); writeln(' '); writeln; write('nobp : ');readln(rekmhs.nobp); write('nama : ');readln(rekmhs.nama); write('nilai : ');readln(rekmhs.nilai); write(mhs,rekmhs); writeln; write('ada Mhs lagi (Y/T) : ');readln(lagi); writeln; until not (lagi in ['Y','y']); procedure Cetak; var no : integer; Assign(Mhs,'Mhs.Dat'); Reset(Mhs); writeln('*** Daftar Nilai Mahasiswa ***'); writeln(' '); writeln('no No.Bp Nama Nilai '); writeln(' '); no := 1; while not eof(mhs) do read(mhs,rekmhs); writeln(no:3,rekmhs.nobp:8,rekmhs.nama:25,rekmhs.nilai:6:2); no := no + 1; End; writeln(' '); Dosen : Dodon Yendri, M.Kom Page 37

39 repeat until keypressed; Close(Mhs) End; (* main program *) input; cetak; end. BEBERAPA FUNGSI TAMBAHAN PENANGANAN FILE 1. Kompiler Directive; adalah fungsi yang digunakan untuk membaca dan mencek apakah input file ada atau tidak. Misalnya : {$I-} {$I+} untuk pengecekan digunakan fungsi : IOResult :=0 file sudah ada IoResult <> 0 file belum ada 2. Filesize(variable file) digunakan untuk menentukan jumlah record didalam file database Contoh : JmlRecord :=filesize(filebar); {menetukan jumlah record dalam database} For I :=1 to JmlRecord do { membaca dari record pertama sampai habis} Bisa diganti dengan : while not(eof(filebar)) do Dosen : Dodon Yendri, M.Kom Page 38

40 3. Seek(variable file, N-1) digunakan untuk mencari record dalam file. N-1 adalah record saat ini. Misalnya : Seek(filebar, i-1) Read(filebar,recbar); Seek(filebar,filesize(filebar)) menempatkan pointer pada posisi terakhir untuk ditulis Contoh Program : program menu_barang; uses crt; type rec = record kobar : string[4]; nabar : string[20]; satuan : string[15]; harga : longint; stock : integer; var filebar : file of rec; {variable file} recbar : rec; {variable data} lagi,jawab,pilih : char; filetakada,selesai : boolean; jumlahrecord : longint; ketemu : boolean; procedure entri_barang; assign(filebar,'barang.dat'); {$i-} reset(filebar); Dosen : Dodon Yendri, M.Kom Page 39

41 if ioresult <> 0 then rewrite(filebar); {$i+} seek(filebar,filesize(filebar)); lagi:='y'; while upcase(lagi)='y' do with recbar do clrscr; writeln('memasukkan data barang'); writeln(' '); writeln; write('kode barang : ');readln(kobar); write('nama barang : ');readln(nabar); write('satuan barang : ');readln(satuan); write('harga barang : ');readln(harga); write('stock : ');readln(stock); write(filebar,recbar); write('ada lagi (y/t) : ');readln(lagi); close(filebar); procedure tampil_barang; var kobarcari : string[4]; i : integer; assign(filebar,'barang.dat'); {$i-} reset(filebar); {$i+} jumlahrecord :=filesize(filebar); lagi:='y'; while upcase(lagi)='y' do Dosen : Dodon Yendri, M.Kom Page 40

42 clrscr; ketemu :=false; writeln('menampilkan barang tertentu'); writeln(' '); writeln; write('kode barang : ');readln(kobarcari); for i := 1 to jumlahrecord do seek(filebar,i-1); read(filebar,recbar); if recbar.kobar = kobarcari then ketemu :=true; writeln('nama barang : ',recbar.nabar); writeln('satuan barang : ',recbar.satuan); writeln('harga barang : ',recbar.harga); writeln('stock : ',recbar.stock); writeln; if not ketemu then writeln('tidak ada kode barang tersebut!!!'); write('ada lagi yang dicari (y/t) : ');readln(lagi); close(filebar); procedure koreksi_barang; var kobarcari : string[4]; i : integer; assign(filebar,'barang.dat'); {$i-} reset(filebar); {$i+} Dosen : Dodon Yendri, M.Kom Page 41

43 jumlahrecord :=filesize(filebar); lagi:='y'; while upcase(lagi)='y' do clrscr; ketemu :=false; writeln('menampilkan barang tertentu'); writeln(' '); writeln; write('kode barang : ');readln(kobarcari); writeln; for i := 1 to jumlahrecord do seek(filebar,i-1); read(filebar,recbar); if recbar.kobar = kobarcari then with recbar do ketemu :=true; writeln('nama barang : ',nabar); write('koreksinya : ');readln(nabar); writeln('satuan barang : ',satuan); write('koreksinya : ');readln(satuan); writeln('harga barang : ',harga); write('koreksinya : ');readln(harga); writeln('stock : ',stock); write('koreksinya : ');readln(stock); writeln; seek(filebar,i-1); write(filebar,recbar); Dosen : Dodon Yendri, M.Kom Page 42

44 if not ketemu then writeln('tidak ada kode barang tersebut!!!'); write('ada lagi yang dicari (y/t) : ');readln(lagi); close(filebar); procedure tampil_semua; var nilaibrg : longint; totnilbrg : longint; totharsat : longint; totstock : integer; i : integer; assign(filebar,'barang.dat'); {$i-} reset(filebar); {$i+} if ioresult=0 then filetakada:=false; clrscr; writeln('daftar persediaan barang di gudang'); writeln('pt.xyz padang'); writeln; writeln(' '); writeln('no kode nama satuan harga stock nilai '); writeln('urt. brg barang barang barang barang barang '); writeln(' '); jumlahrecord:=filesize(filebar); Dosen : Dodon Yendri, M.Kom Page 43

45 totnilbrg :=0; totharsat :=0; totstock :=0; for i:=1 to jumlahrecord do with recbar do read(filebar,recbar); nilaibrg:=harga*stock; writeln(i:3,kobar:5,nabar:20,satuan:10,harga:9,stock:10,nilaibrg:12) ; totstock := totstock+stock; totnilbrg := totnilbrg+nilaibrg; totharsat := totharsat+harga writeln(' '); writeln(' total : ',totharsat:12,totstock:10,totnilbrg:12); writeln(' '); writeln('tekan sembarang konci...!'); repeat until keypressed; close(filebar); {* main program *} repeat clrscr; writeln('******* menu utama barang ********'); writeln; writeln('1. menambah data barang'); writeln('2. menampilkan barang tertentu'); writeln('3. me-koreksi data barang'); writeln('4. menampilkan semua barang'); writeln('5. selesai'); writeln; Dosen : Dodon Yendri, M.Kom Page 44

46 end. write('pilihan anda [1..5] : ');readln(pilih); case pilih of '1' : entri_barang; '2' : tampil_barang; '3' : koreksi_barang; '4' : tampil_semua; until pilih = '5'; Dosen : Dodon Yendri, M.Kom Page 45

47 STUDI KASUS Menyalin Arsip, Konsolidasi, Merging, Updating File Data dan Spliting A. Menyalin Arsip Rekaman di dalam suatu arsip adakalanya perlu disalin (copy) ke arsip yang lain. Penyalinan dapat dilakukan terhadap seluruh rekaman atau hanya rekaman tertentu saja. Berikut adalah algoritma menyalin seamluruh rekaman dari arsip Mhs1 ke Arsip Mhs2. File Mhs1 File Mhs2 NIM Nama Alamat NIM Nama Alamat Adi Alamat Adi Alamat Budi Indarung Budi Indarung Susi Siteba Susi Siteba Anti Andalas Anti Andalas Doni Sawahan Doni Sawahan Salin Arsip {Menyalin seluruh arsip Mhs1 ke arsip Mhs2} {Kondisi awal : Arsip Mhs2 mungkin kosong } {Kondisi akhir : Arsip Mhs2 berisi salinan seluruh rekaman dari arsip Mhs1} Deklarasi RekMhs : DataMhs Algoritma; Open(Mhs1, 1) {Buka arsip Mhs1 untuk pembacaan } Open(Mhs2, 2) {Buka arsip Mhs2 untuk penulisan } Dosen : Dodon Yendri, M.Kom Page 46

48 While (not(eof(mhs1)) do Fread(Mhs1, RekMhs) {baca rekaman dari arsip Mhs1 } Fwrite(Mhs2, RekMhs) {salin RekMhs ke arsip Mhs2 } Enwhile { EOF (Mhs1)} Close(Mhs1) Close(Mhs2) B. Konsolidasi adalah pengelompokan data dengan kunci yang sama yang harus diproses sebagai satu kesatuan. Contoh Kasus : Diketahui sebuah Arsip Nilai Mahasiswa, satu mahasiswa dapat mempunyai beberapa buah nilai (karena dalam satu semester mengambil beberapa matakuliah, dan tiap mahasiswa bisa berbeda matakuliah). Buatlah Algoritma untuk menghitung nilai rata-rata tiap mahasiswa, dan membuat daftar nilai yang lebih sederhana, yaitu menuliskan NIM dan nilai rata-rata tiap mahasiswa. File Nilai File Hasil Konsolidasi NIM Kode Nilai NIM Rata-rata MK MK MK MK MK MK2 75 Dosen : Dodon Yendri, M.Kom Page 47

49 70002 MK MK MK MK MK MK MK MK3 60 Konsolidasi {Kondisi awal : ArsipMhs sudah berisi NIM dan nilai} {Kondisi akhir : Record sudah dikelompokkan berdasarkan NIM yang sama, dengan nilainya adalah nilai rata-rata} Deklarasi Type DataMhs : Record < NIM : integer Nilai : real > ArsipMhs1, ArsipMhs2 : seqfile of DataMhs Mhs : DataMhs CurrentNim, JumNil, nmk : integer Rata : real Function Mark(Input Mhs : DataMhs) Boolean Deskripsi Open(ArsipMhs1,1) Open(ArsipMhs2,2) Fread(ArsipMhs1, Mhs) If (Mark(Mhs) = true) then Dosen : Dodon Yendri, M.Kom Page 48

50 Output( Arsip kosong ) Else While (Mark(Mhs) = false) do JumNil 0 nmk 1 currentnim Mhs.NIM {record1 dari ArsipMhs1} Repeat JumNil JumNil + Mhs.Nilai nmk nmk + 1 Fread(ArsipMhs1,Mhs) Until (currentnim <> Mhs.NIM) Rata JumNil/nMK Fwrite(ArsipMhs2, <currentnim, Rata>) Output(currentNIM,Rata) Endwhile EndIf Close(ArsipMhs1) Close(ArsipMhs2) C. Merging Merging adalah penggabungan dua buah file yang tipe recordnya sama. Untuk melakukan merging ada dua cara, yakni Penggabungan dua buah arsip dengan cara penyambungan dan Penggabungan dua buah arsip terurut. Cara yang paling sederhana adalah data file kedua ditambahkan setelah record terakhir file pertama, sehingga membentuk file baru (penggabungan dua buah arsip dengan cara penyambungan). Dosen : Dodon Yendri, M.Kom Page 49

51 Contoh : File ArsipMhs1 File ArsipMhs2 File ArsipMhs3 NIM Nama NIM Nama NIM Nama Adi Yudi Adi Budi Eka Budi Susi Bima Susi Anti Anti Doni Doni Yudi Eka Bima Merging Sambung {Menggabungkan dua buah arsip beruntun yaitu ArsipMhs1 dan ArsipMhs2, menjadi sebuah arsip baru yaitu ArsipMhs3, dengan cara semua record arsip kedua disambungkan setelah record terakhir arsip pertama} {Kondisi awal : arsip pertama dan kedua sudah berisi data} {Kondisi akhir : arsip'ketiga berisi hasil sambungan kedua arsip} Deklarasi Type DataMhs : Record <NIM : Integer, Nama: String> ArsipMhsl, ArsipMhs2, ArsipMhs3 : SeqFile of DataMhs Mhs : DataMhs Function Mark(Input Mhs : DataMhs) Boolean Deskripsi Open(ArsipMhs1, 1) Open(ArsipMhs2, 1) Dosen : Dodon Yendri, M.Kom Page 50

52 Open(ArsipMhs3, 2) FRead(ArsipMhs1, Mhs) While (Mark(Mhs) = false) Do FWrite(ArsipMhs3, Mhs) FRead(ArsipMhs1, Mhs) EndWhile FRead(ArsipMhs2, Mhs) While (Mark(Mhs) = false) Do FWrite(ArsipMhs3, Mhs) FRead(ArsipMhs2, Mhs) EndWhile FWrite(ArsipMhs3, <99999, 'xxxxx', 99.9>) Close(ArsipMhsl) Close(ArsipMhs2) Close(ArsipMhs3) Merging Urut {Menggabungkan dua buah arsip beruntun yaitu ArsipMhs1 dan ArsipMhs2yang sudah terurut, menjadi sebuah arsip baru yaitu ArsipMhs3 yang juga terurut} {Kondisi awal : arsip pertama dan kedua sudah berisi data} {Kondisi akhir : arsip ketiga berisi hasil merging kedua arsip} Deklarasi Type DataMhs : Record <NIM : Integer, Nama: String> ArsipMhsl, ArsipMhs2, ArsipMhs3 : SeqFile of DataMhs Mhs 1, Mhs2 : DataMhs Dosen : Dodon Yendri, M.Kom Page 51

53 Function Mark(Input Mhs : DataMhs) Boolean Algoritma Open(ArsipMhsl, 1) Open(ArsipMhs2, 1) Open(ArsipMhs3, 2) FRead(ArsipMhs1, Mhs1) FRead(ArsipMhs2, Mhs2) While (Mark(Mhsl) = false) Or (Mark(Mhs2) = false) Do If (Mhsl.NIM <= Mhs2.NIM) Then FWrite(ArsipMhs3, Mhs1) FRead(ArsipMhsl, Mhsl) Else FWrite(ArsipMhs3, Mhs2) FRead(ArsipMhs2, Mhs2) Endif EndWhile {Mark(Mhs 1) = true dan Mark(Mhs2) = true} FWrite(ArsipMhs3, <99999, 'xxxxx', 99.9>) Close(ArsipMhs1) Close(ArsipMhs2) Close(ArsipMhs3) D. Updating Updating adalah proses editing harga suatu record (field key tidak diedit) pada file master dengan data dari file transaksi. Berikut ini adalah algoritma umum untuk meremajakan record pada file master (bersifat beruntun, nilai field keynya terurut naik tetapi bisa tidak unik). Artinya bahwa suatu record pada file master dapat mengalami satu atau beberapa kali peremajaan. Dosen : Dodon Yendri, M.Kom Page 52

54 Contoh : Peremajaan File Saldo tabungan pada Bank, dengan perjanjian jika nilai uang pada file update berharga negatif, berari pengambilan, tetapi jika nilai uang pada File Update berharga positif, berarti transaksi penabungan. File Master File Transaksi File New Master NoRek Saldo NoRek Saldo NoRek Saldo Updating {Mengubah salah satu isi field dari file master berdasarkan data dari file transaksi lalu simpan hasil editing ke file new master} {Kondisi awal : suatu variabel sudah bemilai isi dari field key pada posisi record yg akan diubah, field key sudah terurut naik} {kondisi akhir : file new master sudah berisi data dari hasil editing file master berdasarkan file transaksi1} Deklarasi Type DataSaldo : Record < NoRek : Integer, Saldo : Longint > Master, Transaksi, NewMaster : SeqFile of DataSaldo Nasabah1,Nasabah2 : DataSaldo Dosen : Dodon Yendri, M.Kom Page 53

55 NewSaldo : Longint FunctionMark(InputNasabah : DataSaldo) Boolean Algoritma Open(Master, 1) Open(Transaksi, 1) Open(NewMaster, 2) FRead(Master, Nasabah1) FRead(Transaksi, Nasabah2) While (Mark(Nasabahl) = false) Do While (Nasabah2.NoRek < Nasabahl.NoRek) and (Mark(Nasabah2) = false) Do FRead(Transaksi, Nasabah2) {skip record dari file trans} EndWhile If (Nasabah2.NoRek = Nasabahl.NoRek) Then NewSaldo Nasabah 1.Saldo {yg akan diedit} While (Nasabah2.NoRek = Nasabahl.NoRek) and (Mark(Nasabah2) = false) Do NewSaldo NewSaldo+ Nasabah2.Saldo FRead(Transaksi, Nasabah2) EndWhile FWrite(NewMaster, <Nasabahl.NoRek, NewSaldo>) Else FWrite(NewMaster, Nasabahl). Endif FRead(Master, Nasabah1) EndWhile FWrite(NewMaster, <999, 0>) Close(Master) Close(Transaksi) Close(NewMaster) Dosen : Dodon Yendri, M.Kom Page 54

56 E. Spliting Spliting adalah pemecahan sebuah file menjadi dua atau lebih file baru. Algoritmanya tergantung dari kriteria pemecahannya. Contoh : Memisahakan file nilai suatu matakuliah suatu kelas berdasarkan yang lulus dan yang tidak lulus. NIM Nilai NIM Nilai NIM Nilai PENUTUP SOAL-SOAL Implementasikan algoritma konsolidasi, merging, updating dan spliting dengan bahasa pemrograman Pascal. Dosen : Dodon Yendri, M.Kom Page 55

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-14 Arsip (File) 3

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-14 Arsip (File) 3 Algoritma dan Pemrograman Lanjut Pertemuan Ke-14 Arsip (File) 3 Disusun Oleh : Wilis Kaswidjanti, S.Si.,M.Kom. Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Pembangunan Nasional Veteran

Lebih terperinci

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

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.

Lebih terperinci

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

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

Lebih terperinci

Algoritma Pemrograman

Algoritma Pemrograman Algoritma Pemrograman Pertemuan Ke-2 (Teks Algoritma) Noor Ifada noor.ifada@if.trunojoyo.ac.id S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Judul Algoritma Deklarasi Deskripsi Translasi

Lebih terperinci

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi : PENGURUTAN Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi : 1. Ascending / menaik Syarat : L[1] L[2] L[3] L[N] 2. Descending / menurun

Lebih terperinci

Algoritma Pemrograman

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

Lebih terperinci

PRAKTIKUM 7 TIPE DATA TERSTRUKTUR. Larik : deretan data yang punya type data sejenis. Misalnya : Daftar Nomor Telpon, Tabel Pajak dll.

PRAKTIKUM 7 TIPE DATA TERSTRUKTUR. Larik : deretan data yang punya type data sejenis. Misalnya : Daftar Nomor Telpon, Tabel Pajak dll. PRAKTIKUM 7 TIPE DATA TERSTRUKTUR 1. Judul Materi / Pokok Bahasan : Tipe Data Terstruktur 2. Tujuan Instruksional Khusus : Mahasiswa dapat membuat program dengan menggunakan jenisjenis tipe data terstruktur

Lebih terperinci

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni Abstrak Sort adalah proses pengurutan data yang sebelumnya disusun secara acak sehingga menjadi tersusun secara teratur menurut suatu aturan

Lebih terperinci

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik 1 Definisi Brute Force Brute force : pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah

Lebih terperinci

MODUL IV PENCARIAN DAN PENGURUTAN

MODUL IV PENCARIAN DAN PENGURUTAN MODUL IV PENCARIAN DAN PENGURUTAN 4.1 Tujuan Tujuan modul IV ini, adalah: Praktikan bisa membuat beberapa program pencarian berdasarkan metode algoritma pencarian Praktikan bisa membuat beberapa program

Lebih terperinci

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

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

Lebih terperinci

Konstruksi Dasar Algoritma

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

Lebih terperinci

Data Pembanding (B)

Data Pembanding (B) 2. Langkah a. Bandingkan bilangan I dengan bilangan ke-ii, ambil yang terkecil b. Hasil perbandingan langkah 1, bandingkan dengan bilangan ke-iii, ambil yang terkecil c. Hasil perbandingan langkah 2, bandingkan

Lebih terperinci

Membuat Berkas File Text Pada Pascal

Membuat Berkas File Text Pada Pascal Membuat Berkas File Text Pada Pascal taryanarx@yahoo.com Target Pencapaian Siswa dapat membuat File bertipe Text, memasukan data dan menampilkan data dari file text tersebut FILE (BERKAS) File adalah kumpulan

Lebih terperinci

Dasar Komputer & Pemrograman 2A

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

Lebih terperinci

Pertemuan 4 Diagram Alur / Flowchart

Pertemuan 4 Diagram Alur / Flowchart Pertemuan 4 Diagram Alur / adalah representasi grafik dari langkah-langkah yang harus diikuti dalam menyelesaikan suatu permasalahan yang terdiri atas sekumpulan simbol, dimana masing-masing simbol merepresentasikan

Lebih terperinci

Pengenalan Pascal. Sejarah Singkat Pascal

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

Lebih terperinci

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek. LAB SHEET ALGORITMA DAN STRUKTUR DATA Semester : 4 Percabangan Komplek dan case of 200 menit No. : LST/EKA/EKA 305/03 Revisi : Tgl. : Hal. 1 dari 3 hal. 1. Kompetensi Mengenal dan memahami algoritma percabangan

Lebih terperinci

PROSEDUR DAN FUNGSI. Altien Jonathan Rindengan, S.Si., M.Kom

PROSEDUR DAN FUNGSI. Altien Jonathan Rindengan, S.Si., M.Kom PROSEDUR DAN FUNGSI Altien Jonathan Rindengan, S.Si., M.Kom PROSEDUR Pendahuluan Merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi program-program bagian yang lebih

Lebih terperinci

Algoritma Pemrograman

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

Lebih terperinci

JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

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

Lebih terperinci

Pertemuan XII ALGORITMA. Algoritma & Pemrograman Ken Kinanti P 1. {Pencarian Beruntun / Sequential Search}

Pertemuan XII ALGORITMA. Algoritma & Pemrograman Ken Kinanti P 1. {Pencarian Beruntun / Sequential Search} Pertemuan XII - PENCRIN Pengertian Pencarian data adalah suatu proses untuk mengumpulkan informasi dalam media penyimpanan komputer dan kemudian mencari kembali informasi yang diperlukan secepat mungkin.

Lebih terperinci

Dasar Komputer & Pemrogaman 2A

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

Lebih terperinci

Bambang Heru S Departemen Teknik Kimia Universitas Indonesia

Bambang Heru S Departemen Teknik Kimia Universitas Indonesia Pascal (1) Bambang Heru S Departemen Teknik Kimia Universitas Indonesia Intro Pascal Contoh Program Pascal program Hallo; (* Program untuk menampilkan tulisan Hallo, World di layar *) i:integer; writeln(

Lebih terperinci

Algoritma dan Struktur Data

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

Lebih terperinci

Algoritma,Flowchart, Konsep

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) /

Lebih terperinci

Arsip Beruntun. Definisi Arsip Beruntun. Contoh Arsip Beruntun

Arsip Beruntun. Definisi Arsip Beruntun. Contoh Arsip Beruntun Arsip Beruntun Informasi yang disimpan di dalam media penyimpan sekunder dikelompokkan dalam bentuk arsip (file). Suatu arsip merupakan organisasi dari sejumlah rekaman. Masing-masing rekaman dapat terdiri

Lebih terperinci

Universitas gunadarma. pascal. Bab 4- bab 10. Hana Pertiwi S.T

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

Lebih terperinci

Nama : Suseno Rudiansyah NPM : Kelas : X2T Prodi : Teknik Informatika Tugas : Kuis Algoritma 2

Nama : Suseno Rudiansyah NPM : Kelas : X2T Prodi : Teknik Informatika Tugas : Kuis Algoritma 2 Nama : Suseno Rudiansyah NPM : 201543501544 Kelas : X2T Prodi : Teknik Informatika Tugas : Kuis Algoritma 2 Tugas Kuiz Algoritma 2. Dosen : Budi Santoso 1. Diketahui dua buah larik A = [12,3,9,4,15,6]

Lebih terperinci

SORTING. Brigida Arie Minartiningtyas, M.Kom

SORTING. Brigida Arie Minartiningtyas, M.Kom SORTING Brigida Arie Minartiningtyas, M.Kom Sorting Suatu proses pengurutan data yang sebelumnya disusun secara acak sehingga menjadi tersusun secara teratur menurut suatu aturan tertentu. Sorting diterapkan

Lebih terperinci

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. 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...

Lebih terperinci

FUNGSI MINGGU KE: 4 TUJUAN: Mahasiswa dapat memahami definisi fungsi. Mahasiswa dapat mendefinisikan fungsi. Mahasiswa dapat menggunakan fungsi.

FUNGSI MINGGU KE: 4 TUJUAN: Mahasiswa dapat memahami definisi fungsi. Mahasiswa dapat mendefinisikan fungsi. Mahasiswa dapat menggunakan fungsi. FUNGSI MINGGU KE: 4 TUJUAN: Mahasiswa dapat memahami definisi fungsi. Mahasiswa dapat mendefinisikan fungsi. Mahasiswa dapat menggunakan fungsi. TEORI PENGANTAR: Definisi Fungsi Fungsi adalah sub-program

Lebih terperinci

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-5 Rekursif

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-5 Rekursif Algoritma dan Pemrograman Lanjut Pertemuan Ke-5 Rekursif Disusun Oleh : Wilis Kaswidjanti, S.Si.,M.Kom. Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Pembangunan Nasional Veteran Yogyakarta

Lebih terperinci

Pengantar dalam Bahasa Pemrograman Turbo Pascal

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

Lebih terperinci

BAB I TUJUAN DAN LANDASAN TEORI

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

Lebih terperinci

Algoritma Brute Force

Algoritma Brute Force Algoritma Brute Force Definisi Brute Force Brute force adalah sebuah pendekatan yang lempang (straightforward( straightforward) ) untuk memecahkan suatu masalah, biasanya didasarkan pada pernyataan masalah

Lebih terperinci

Pertemuan 3 Penyeleksian Kondisi dan Perulangan

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

Lebih terperinci

ALGORITMA PENGURUTAN & PENCARIAN

ALGORITMA PENGURUTAN & PENCARIAN Materi kuliah ALGORITMA PENGURUTAN & PENCARIAN Ir. Roedi Goernida, MT. (roedig@yahoo.com) Program Studi Sistem Informasi Fakultas Rekayasa Industri Institut Teknologi Telkom Bandung 2011 1 Pengelompokan

Lebih terperinci

ARRAY (LARIK) Altien Jonathan Rindengan, S.Si., M.Kom.

ARRAY (LARIK) Altien Jonathan Rindengan, S.Si., M.Kom. ARRAY (LARIK) Altien Jonathan Rindengan, S.Si., M.Kom. Pendahuluan Sebuah variabel hanya menyimpan sebuah nilai, tidak dapat menyimpan beberapa buah nilai yang bertipe sejenis Dalam pemrograman, mengolah

Lebih terperinci

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. 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

Lebih terperinci

Pertemuan 3 Prosedur dan Fungsi

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

Lebih terperinci

Prosedur dan Fungsi ALGORITMA DAN PEMROGRAMAN [IS ] Dosen: Yudha Saintika, S.T., M.T.I

Prosedur dan Fungsi ALGORITMA DAN PEMROGRAMAN [IS ] Dosen: Yudha Saintika, S.T., M.T.I Prosedur dan Fungsi ALGORITMA DAN PEMROGRAMAN [IS6110102] Dosen: Yudha Saintika, S.T., M.T.I Sub-Capaian Pembelajaran MK Mahasiswa mampu menerapkan konsep prosedur dan fungsi dalam program. Peta Capaian

Lebih terperinci

PENDAHULUAN. Brigida Arie Minartiningtyas, M.Kom

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

Lebih terperinci

STRATEGI DIVIDE AND CONQUER

STRATEGI DIVIDE AND CONQUER Pemrogram bertanggung jawab atas implementasi solusi. Pembuatan program akan menjadi lebih sederhana jika masalah dapat dipecah menjadi sub masalah - sub masalah yang dapat dikelola. Penyelesaian masalah

Lebih terperinci

MODUL 1. Struktur Bahasa PASCAL secara umum

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

Lebih terperinci

P A S C A L D A S A R

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

Lebih terperinci

ALGORITMA PERULANGAN

ALGORITMA PERULANGAN Pertemuan 08 ALGORITMA PERULANGAN Pada Bab ini anda akan mempelajari 1. Pengertian algoritma perulangan 2. Perulangan for-do 3. Perulangan while-do 4. Perulangan repeat-until Algoritma Perulangan Ada kalanya

Lebih terperinci

Algoritma dan Pemrograman Bab 05 Struktur Pengulangan. Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia

Algoritma dan Pemrograman Bab 05 Struktur Pengulangan. Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia Algoritma dan Pemrograman Bab 05 Struktur Pengulangan Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia Latar Belakang Pengulangan Tampilkan di layar kata Saya suka Algoritma sebanyak 1000

Lebih terperinci

Oleh : La Ode Abdul Jumar. Berkas(file) adalah kumpulan sejumlah komponen yang bertipe data sama,

Oleh : La Ode Abdul Jumar. Berkas(file) adalah kumpulan sejumlah komponen yang bertipe data sama, 1. Berkas SISTEM BERKAS Oleh : La Ode Abdul Jumar Berkas(file) adalah kumpulan sejumlah komponen yang bertipe data sama, yang jumlahnya tidak tertentu. Banyaknya data dalam berkas dapat ditambah jika diperlukan.

Lebih terperinci

I. KATA PENGANTAR. Modul Algoritma Pemrograman. Modul Ke-4 - Hal 1

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

Lebih terperinci

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1

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

Lebih terperinci

Algoritma dan Struktur Data

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.

Lebih terperinci

algoritma & pemrograman

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

Lebih terperinci

Algoritma & Pemrograman

Algoritma & Pemrograman Alam Santosa Algoritma & Pemrograman Algoritma Array & Penulisannya dalam Bahasa Pascal Array Array disebut juga larik adalah struktur data yang menyimpan sekumpulan/sederetan variabel yang bertipe data

Lebih terperinci

Belajar itu, Tidak harus menunggu materi dari guru Inisiatif Mencari itulah BELAJAR.

Belajar itu, Tidak harus menunggu materi dari guru Inisiatif Mencari itulah BELAJAR. SiniCari.Blogspot.com Belajar itu, Tidak harus menunggu materi dari guru Inisiatif Mencari itulah BELAJAR. 1.struktur pertama dalam pascal adalah.. a. Char; b. String c. End. d. Writeln e. Uses crt; 2.

Lebih terperinci

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF ARRAY STATIS (lanjutan) OPERASI ARRAY STATIS (lanjutan) 3. Pencarian (searching) array Proses menemukan suatu data yang terdapat dalam suatu array. Proses

Lebih terperinci

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING) PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING) a. Introduction b. Tanpa Boolean c. Dengan Boolean d. Penggunaan dalam Fungsi INTRODUCTION Merupakan algoritma pencarian yang paling sederhana. Proses Membandingkan

Lebih terperinci

Algoritma Pemrograman

Algoritma Pemrograman Algoritma Pemrograman Pertemuan Ke-7 (Pengulangan atau Looping [2]) Noor Ifada noor.ifada@if.trunojoyo.ac.id S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Struktur WHILE Struktur REPEAT WHILE vs REPEAT

Lebih terperinci

Bubble Sort (Pengurutan Gelembung / Pemberatan)

Bubble Sort (Pengurutan Gelembung / Pemberatan) Pertemuan XIII, XIV - PENGURUTN Pengertian lgoritma Pengurutan dibuat untuk menghasilkan kumpulan data yang terurut. Jenis da banyak jenis pengurutan. Tiga jenis yang paling sederhana adalah Bubble Sort,

Lebih terperinci

Array, Record, sorting : Elektro Unud (MSU) Page 1 of 13

Array, Record, sorting : Elektro Unud (MSU) Page 1 of 13 Array, Record, sorting : Elektro Unud (MSU) Page 1 of 13 ARRAY Array : variabel berindeks (punya beberapa tempat, tergantung deklarasinya) iabel : mempunyai hanya 1 tempat Deklarasi Array arrint : array

Lebih terperinci

Algoritma Pemrograman

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

Lebih terperinci

Rekursif. Rekursif adalah salah satu metode dalam dunia matematika dimana definisi sebuah fungsi mengandung fungsi itu sendiri.

Rekursif. Rekursif adalah salah satu metode dalam dunia matematika dimana definisi sebuah fungsi mengandung fungsi itu sendiri. Rekursif Rekursif adalah salah satu metode dalam dunia matematika dimana definisi sebuah fungsi mengandung fungsi itu sendiri. Dalam dunia pemrograman, rekursi diimplementasikan dalam sebuah fungsi yang

Lebih terperinci

Algoritma. Menurut Kamus Besar Bahasa Indonesia Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.

Algoritma. Menurut Kamus Besar Bahasa Indonesia Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah. Algoritma Algoritma Menurut Kamus Besar Bahasa Indonesia Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah. suatu metode khusus yang tepat dan terdiri dari serang kaian langkah

Lebih terperinci

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

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

Lebih terperinci

Pertemuan Ke-2 (Teks Algoritma) Rahmady Liyantanto. S1 Teknik Informatika-Unijoyo

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

Lebih terperinci

LAPORAN AKHIR PRAKTIKUM STRUKTUR DATA

LAPORAN AKHIR PRAKTIKUM STRUKTUR DATA LAPORAN AKHIR PRAKTIKUM STRUKTUR DATA NAMA : SUPRIYANDI NIM : DBC 113 170 KELAS MODUL : B : V (PENCARIAN DATA) JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS PALANGKA RAYA 2014 BAB I TUJUAN DAN

Lebih terperinci

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 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

Lebih terperinci

Bab 1 Algoritma dan Pemrograman Tersruktur

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

Lebih terperinci

SMA SANTO PAULUS PONTIANAK

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

Lebih terperinci

Algoritma Pemrograman

Algoritma Pemrograman Algoritma Pemrograman Pertemuan Ke-9 (Fungsi) :: Noor Ifada :: S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendefinisian Fungsi Pemanggilan Fungsi Penggunaan Prosedur atau Fungsi S1 Teknik Informatika-Unijoyo

Lebih terperinci

BAB VII ALGORITMA DIVIDE AND CONQUER

BAB VII ALGORITMA DIVIDE AND CONQUER BAB VII ALGORITMA DIVIDE AND CONQUER Pemrogram bertanggung jawab atas implementasi solusi. Pembuatan program akan menjadi lebih sederhana jika masalah dapat dipecah menjadi sub masalah - sub masalah yang

Lebih terperinci

Kompleksitas Algoritma

Kompleksitas Algoritma Kompleksitas Algoritma 1 Pendahuluan Sebuah masalah dapat mempunyai banyak algoritma penyelesaian. Contoh: masalah pengurutan (sort), ada puluhan algoritma pengurutan Sebuah algoritma tidak saja harus

Lebih terperinci

Perulangan. Bentuk Proses. 1. Perulangan For positif contoh 1 : perulangan positif untuk satu statement :

Perulangan. Bentuk Proses. 1. Perulangan For positif contoh 1 : perulangan positif untuk satu statement : Perulangan Bentuk bentuk Perulangan Dalam hampir setiap program yang kompleks mutlak memerlukan suatu perulangan. Tujuan perulangan disini adalah untuk mengulang statement atau blok statement berulang

Lebih terperinci

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C TUGAS STRUKTUR DATA Shell Sort Ascending Dan Binary Sequential Search Menggunakan C IF-5 Nama Anggota : - Rohendi 10107193 - Andri Andriyan 10107210 - Yuli Yanti A 10107218 - Jajang Kusmita 10107227 JURUSAN

Lebih terperinci

PROSES PENJUALAN BUKU

PROSES PENJUALAN BUKU PROSES PENJUALAN BUKU MAKALAH Makalah ini disusun guna untuk memenuhi tugas TIK akhir tahun kelas XI semester 2 yang membahas tentang Proses Penjualan Buku. OLEH : Ida Mariyatuz Zulfa ( 14 ) Mar atu Sholekhah

Lebih terperinci

Algoritma dan Struktur Data I Mia Fitriawati, S.Kom, M.Kom

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

Lebih terperinci

Algoritma & Pemrograman 1. Muhamad Nursalman Pendilkom/Ilkom Universitas Pendidikan Indonesia

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,

Lebih terperinci

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

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

Lebih terperinci

Memulai Pemrograman Pascal dengan Delphi Console 1. Buka aplikasi delphi 2. Pilih File New Other Console Application

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

Lebih terperinci

Algoritma Pemrograman

Algoritma Pemrograman Algoritma Pemrograman Pertemuan Ke-14 (Rekursi) :: Noor Ifada :: S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Faktorial Menara Hanoi S1 Teknik Informatika-Unijoyo 2 Pendahuluan Algoritma

Lebih terperinci

DATA SORTING. Altien Jonathan Rindengan, S.Si, M.Kom

DATA SORTING. Altien Jonathan Rindengan, S.Si, M.Kom DATA SORTING Altien Jonathan Rindengan, S.Si, M.Kom Pendahuluan Sorting (pengurutan) : proses mengatur sekumpulan objek menurut urutan atau susunan tertentu Diberikan array L dengan n elemen yg sudah terdefinisi

Lebih terperinci

STRUKTUR DASAR ALGORITMA

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

Lebih terperinci

Algoritma Pemrograman

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

Lebih terperinci

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ;

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ; Maka sekarang kita mempunyai dua buah simpul yang ditunjuk oleh P1 dan P2. Setelah itu kita dapat melakukan pengaksesan data, yaitu dengan menuliskan : P1^.Nama_Peg := Ariswan ; P1^.Alamat := Semarang

Lebih terperinci

Daftar field MODUL 13 RECORD

Daftar field MODUL 13 RECORD MODUL 13 RECORD Record adalah suatu tipe data terstruktur. Dengan record data dapat dikumpulkan yang masing-masing dapat mempunyai tipe data berbeda. Masing-masing item data disebut dengan fieild. Jadi

Lebih terperinci

SATUAN ACARA PERKULIAHAN MATA KULIAH PEMROGRAMAN PASCAL * (TK) KODE / SKS: KK /2 SKS

SATUAN ACARA PERKULIAHAN MATA KULIAH PEMROGRAMAN PASCAL * (TK) KODE / SKS: KK /2 SKS MATA KULIAH PEMROGRAMAN * (TK) Minggu ke Pokok Bahasan dan TIU 1. Algoritma Konsep Dasar Bahasa Pascal secara singkat sejarah dirancangnya bahasa Memberikan konsep dasar pembuatan program dalam bahasa

Lebih terperinci

Contoh 1: Akan dicetak angka 1 sampai 10 dengan menggunakan perulangan for

Contoh 1: Akan dicetak angka 1 sampai 10 dengan menggunakan perulangan for Bahan Ajar Algoritma Halaman 1 ii. Struktur Pengulangan (repetition) Struktur pengulangan merupakan struktur yang melakukan pengulangan terhadap satu baris atau satu blok baris program beberapa kali sesuai

Lebih terperinci

STRUKTUR SELEKSI DAN PERULANGAN PADA ALGORITMA

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

Lebih terperinci

MODUL PRAKTIKUM ALGORITMA & BAHASA PEMROGRAMAN I (BASIC) Dosen Pengasuh : Suroto, S.Kom, M.Ak

MODUL PRAKTIKUM ALGORITMA & BAHASA PEMROGRAMAN I (BASIC) Dosen Pengasuh : Suroto, S.Kom, M.Ak MODUL PRAKTIKUM ALGORITMA & BAHASA PEMROGRAMAN I (BASIC) Dosen Pengasuh : Suroto, S.Kom, M.Ak UNIVERSITAS BATAM PRAKTIKUM I FLOWCHART 1. Buatlah flowchart untuk menghitung luas segitiga 2. Buatlah flowchart

Lebih terperinci

SOAL DAN JAWABAN UTS PEMROGRAMAN DASAR KELAS X

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

Lebih terperinci

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024) AlgoritmaBrute Force Desain dan Analisis Algoritma (CS3024) Definisi Brute Force Brute forceadalah sebuah pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah, biasanya didasarkan pada

Lebih terperinci

Modul 1 Mesin Karakter 1

Modul 1 Mesin Karakter 1 MODUL 1 MESIN KARAKTER TUJUAN PRAKTIKUM 1. Mahasiswa dapat memahami salah satu contoh aplikasi otomata yaitu mesin karakter 2. Mahasiswa mampu mengimplementasikan mesin karaketer dalam program pengolahan

Lebih terperinci

SUFAJAR BUTSIANTO, SKOM, MKOM ARSIP BERUNTUN (SEQUENTIAL FILE)

SUFAJAR BUTSIANTO, SKOM, MKOM ARSIP BERUNTUN (SEQUENTIAL FILE) SUFAJAR BUTSIANTO, SKOM, MKOM ARSIP BERUNTUN (SEQUENTIAL FILE) DEFINISI ARSIP Arsip/berkas (file) merupakan struktur penyimpanan data di dalam memori sekunder seperti disk. Struktur arsip memungkinkan

Lebih terperinci

Searching [pencarian] Algoritma Pemrograman

Searching [pencarian] Algoritma Pemrograman Searching [pencarian] Algoritma Pemrograman mas.anto72@gmail.com 1 Jenis Pencarian Pencarian Internal proses pencarian dilakukan pada memori utama (RAM). Pencarian Eksternal proses pencarian dilakukan

Lebih terperinci

ALGORTIMA DAN PEMROGRAMAN

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

Lebih terperinci

IF32222 STRUKTUR DATA TIPE DATA. Oleh : Andri Heryandi, M.T.

IF32222 STRUKTUR DATA TIPE DATA. Oleh : Andri Heryandi, M.T. IF32222 STRUKTUR DATA TIPE DATA 02 Oleh : Andri Heryandi, M.T. 1 TIPE DATA 1. Tipe Data Dasar 2. Pointer 3. Tipe Data Bentukan Oleh : Andri Heryandi, M.T. 2 TIPE DATA DASAR 1. Sudah dikenal dalam kehidupan

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA 1

ALGORITMA DAN STRUKTUR DATA 1 ALGORITMA DAN STRUKTUR DATA 1 Mia Fitriawati, M.Kom PENDAHULUAN Seringkali dalam membuat program besar, pemrogram perlu memecah program menjadi beberapa subprogram yang lebih kecil. Tiap subprogram(modul)

Lebih terperinci

Tugas Algoritma Kelompok XI NILAM CAHYA, MUH. JASIM, IMADUDDIN. Soal

Tugas Algoritma Kelompok XI NILAM CAHYA, MUH. JASIM, IMADUDDIN. Soal B Soal uat algoritma untuk menghitung luas bangun geometri (lingkaran, bujursangkar, segitiga dan trapesium). Data masukan dibaca dari piranti masukan dan luas bangun ditampilkan sebagai keluaran. KALIMAT

Lebih terperinci

SEQUENTIAL FILE. Tujuan Perkuliahan

SEQUENTIAL FILE. Tujuan Perkuliahan SEQUENTIAL FILE Tim Pengajar KU1071 Sem. 1 009-010 11/0/00911//08 KU1071/RSP 1 Tujuan Perkuliahan Mahasiswa memahami penggunaan file sekuensial Mahasiswa memahami primitif-primitif dasar dalam pemrosesan

Lebih terperinci

Teknik Percabangan. Brigida Arie Minartiningtyas, M.Kom

Teknik Percabangan. Brigida Arie Minartiningtyas, M.Kom Teknik Percabangan Brigida Arie Minartiningtyas, M.Kom Jika lampu traffic light berwarna merah, maka berhenti If kondisi then aksi If air di dalam ketel mendidih then matikan api kompor If suhu ruangan

Lebih terperinci