MODUL PRAKTIKUM PRAKTEK ALGORITMA DAN PEMROGRAMAN II
|
|
|
- Hendra Budiman
- 10 tahun lalu
- Tontonan:
Transkripsi
1 MODUL PRAKTIKUM PRAKTEK ALGORITMA DAN PEMROGRAMAN II
2 MODUL I ARRAY DIMENSI I (1 x pertemuan) I. TUJUAN - Mempelajari tipe terstruktur Array dimensi satu. II. TEORI SINGKAT Array atau Larik adalah Type data terstruktur yang terdiri dari sejumlah elemen dimana setiap elemennya mempunyai tipe data yang sama atau sejenis (setype). Larik dimanipulasikan dengan memanfaatkan index (subscript) dari tiap elemen larik tersebut. Array dapat dideklarasikan pada bagian deklarasi type atau bagian deklarasi Var. Bentuk 1 : Var NamaArray : Array[TypeIndex] Of TypeLarik; Bentuk 2 : Type NamaType = Array[TypeIndex] Of Type Larik; Var NamaVarArray : NamaType; NamaLarik : Nama Variable bertype Array. Type Larik : Type datanya. Type larik dapat berupa integer, real, char, string atau record. TypeIndex : data bertype ordinal seperti char, byte, integer atau enumerated. Type Index dapat berupa NamaType atau Sub Range Langsung. Contoh deklarasi : Type Daftar_nilai : array [1..5] of integer; Var Nilai : daftar_nilai; Atau dapat ditulis pada bagian var saja : Var Nilai : array [1..5] of integer; Dari deklarasi diatas mempunyai arti : Variable array yang bernama Nilai mempunyai 5 buah elemen (dengan indeks 1 sampai 5) dan masingmasing elemen bertipe integer. Dari deklarasi Array diatas dapat direpresentasikan didalam memori sebagai berikut : Tiap kotak disebut dengan elemen array, berfungsi seperti halnya variable, dapat diisi dengan sebuah data dari type tertentu sesuai yang dideklarasikan. Tiap kotak mempunyai nomor / alamat yang disebut dengan index yang berfungsi untuk memberi identitas kotak tersebut. 1
3 III. Modul Praktikum Cara mengakses elemen array dimensi satu Elemen array bisa diakses dengan cara menyebutkan nama array diikuti nilai indeksnya didalam kurung siku. Nilai [1], ini berarti mengakses nilai elemen pertama. Untuk memberikan nilai ke array, bisa menggunakan 2 cara, yaitu : Dengan operator penugasan (:=) Nilai [1] := 0, elemen pertama dari nilai diberi nilai 70 Dengan statemen Read/readln Read (nilai[1]); Read (nilai[2]); Jika menggunakan perintah ini banyaknya perintah yang diberikan harus sebanyak elemen yang dideklarasikan pada deklarasi array, sehingga bias digunakan perintah perulangan seperti berikut : For I := 1 to 5 do Readln(nilai[I]); Untuk mengambil nilai/membaca elemen dari array dimensi satu digunakan statemen Write, contoh : Write (nilai[1]). Untuk mempersingkat program dipergunakan perintah berikut : For I := 1 to 5 do PRAKTEK Writeln(nilai[I]); Program pas11; uses crt; const max_test = 4; type data_nilai = array[1..max_test] of integer; var i,jum : integer; rata : real; nilai_test : data_nilai; clrscr; {memasukkan data} for i := 1 to max_test do write ('masukkan nilai test ke ',i,' = '); readln (nilai_test[i]); {menhitung total nilai dan rata-rata} jum := 0; for i := 1 to max_test do jum := jum + nilai_test[i]; 2
4 rata := jum / max_test; {mencetak} writeln ('Total nilai = ',jum); writeln ('Rata-rata nilai = ',rata:5:2); readln; end. Program pas12; Uses Crt; Const N = 10; Var Nim : Array[1..N] Of integer; Nama : Array[1..N] Of String[20]; IP : Array[1..N] Of real; I : Integer; End. Clrscr; {Baca Data} Writeln( Masukkan,N, buah data ); For I := 1 to N Do Write( No.Mhs : );Readln(NIM[I]); Write( Nama Mhs : );Readln(Nama[I]); Write( IP Mhs : );Readln(IP[I]); {Cetak Hasil} Writeln( Daftar Nilai ); Writeln( No NIM NAMA IP ); For I := 1 to N Do Writeln( I:2, Nim[I]:10, Nama[I]:15, IP[I]:6:2); Readln Tugas : Buat program dengan output : No Nama Test1 Test2 Test3 3
5 MODUL II ARRAY DIMENSI II (1 x pertemuan) I. TUJUAN II. - Mempelajari tipe terstruktur Array dimensi dua. TEORI SINGKAT Array berdimensi dua mempunyai bentuk table yang menpunyai 2 indeks, baris dan kolom. Format deklarasi array dimensi dua dapat ditempatkan pada bagian type ataupun Var seperti halnya array dimensi satu. Bentuk 1: Var Bentuk 2 : Type Var NamaLarik : Array[TipeIndexBaris,TypeIndexCol] Of TypeLarik; NamaType = Array[TipeIndexBaris,TypeIndexCol] Of TypeLarik; NamaVarArray : NamaType; Indeks1 biasa disebut indeks baris yang menunjukkan banyaknya baris, sedang indeks2 disebut indeks kolom yang menunjukkan banyaknya kolom. Contoh : Var Nilai_mhs : array [1..100,1..3] of integer; Cara mengakses elemen array dimensi dua Untuk mengakses elemen pada array dimensi 2 bisa disebutkan nama array diikuti dengan indeks baris dan indeks kolomnya. Nama array [indeks_baris, indeks_kolom] Untuk memberi nilai ke array, bisa dengan dua cara Dengan operator penugasan (:=) ke 1. Nilai_mhs[4, 1] := 80; Berarti memberikan nilai 80 langsung kedalam elemen array baris ke 4 kolom Dengan pernyataan masukan (read/readln) Read (Nilai_mhs [4, 1]); Berarti memberikan nilai kedalam elemen array baris ke 4 kolom ke 1 melalui keyboard. Banyaknya perintah yang diberikan dengan statemen diatas sesuai dengan banyaknya elemen array, yaitu jumlah baris dikalikan jumlah kolomnya. Untuk mempersingkat perintah bias dipergunakan perintah perulangan, untuk deklarasi diatas bias dipergunakan perintah berikut : For I := 1 to 100 do For J := 1 to 3 do Readln(Nilai_mhs[I,J); Dengan variable I mewakili baris dan variable J mewakili kolom. 4
6 Untuk mengambil atau mencetak nilai dari array, digunakan pernyataan keluaran (write/writeln) Write (Nilai_mhs [4, 1]); Untuk mempersingkat perintah bisa dipergunakan perintah perulangan, untuk deklarasi diatas bias dipergunakan perintah berikut : For I := 1 to 100 do For J := 1 to 3 do Writeln(Nilai_mhs[I,J); Dengan variable I mewakili baris dan variable J mewakili kolom. III. PRAKTEK Program pas21; uses crt; type data_nilai = array[1..100,1..3] of integer; var max_siswa,i,j,jum : integer; rata : real; nilai_test : data_nilai; clrscr; {memasukkan data} write ('masukkan jumlah siswa = '); readln (max_siswa); for i := 1 to max_siswa do writeln ('data Mahasiswa ke ',i,' = '); for j := 1 to 3 do write ('masukkan nilai test ke ',i,' = '); readln (nilai_test[i,j]); {menhitung total nilai dan rata-rata} clrscr; writeln ('DAFTAR NILAI'); write ('No '); for i := 1 to 3 do write ('nilai ke-',i,' '); writeln ('rata-rata'); writeln; for i := 1 to max_siswa do jum := 0; for j := 1 to 3 do jum := jum + nilai_test[i,j]; rata:= jum / 3; write (i:2); for j := 1 to 3 do write (' ',nilai_test[i,j],'':7); writeln(rata:5:2); 5
7 readln; end. Tugas : Buat program dengan output : No Nama Test1 Test2 Test3 Total Rerata Huruf Total = test1+ test 2 + test3 Rata = total / 3 Jika rata >= 80 maka nilai huruf = A Jika rata >= 70 maka nilai huruf = B Jika rata >= 60 maka nilai huruf = C Jika rata >= 50 maka nilai huruf = D Jika rata < 50 maka nilai huruf = E 6
8 MODUL III PROCEDURE (1 x pertemuan) I. TUJUAN - Mempelajari pemecahan program ke dalam modul-modul program dalam bentuk prosedur. II. TEORI SINGKAT Procedure standard adalah suatu routine yang juga siap pakai dan dipanggil dengan menyebutkan nama procedure dengan memberikan argumen yang sesuai. Berikut adalah procedure-procedure standard yang sering kita pakai. A. Procedure Input / Output Write, writeln : sudah dibahas Read, Readln : sudah dibahas B. Procedure Operasi String Delete(x,i,n) : Membuangn buah character mulai dari i dari string x. Insert(s1,s2,i) : Menyisipkan string s1 dalam string s2 di posisi i. Str(n:w:d,s) : Merubah Numerik lebar w decimal d dalam string s. Val(s,n,c) : Merubah s string menjadi numeric dalam n. FillChar(x,n,ch) : Mengisi variable x dengan character ch sebanyak n. C. Procedure Lain-lain Clrscr : Hapus layar. ClrEol : Hapus baris mulai posisi cursor. DelLine : Menghapus 1 baris di posisi cursor dan menggeser naik tampilan-tampilan di bawahnya. InsLine : Menyisipi sebuah baris pada posisi cursor. Gotoxy(x,y) : Memposisikan cursor pada baris y, kolom x. Delay(n) : Menunda proses n integer yang menunjukkan lama tunda. Halt : Menghentikan eksekusi program. Sound(f) : Menghasilkan nada suara dengan frequensi f. NoSound : Mematikan nada. TextColor(x) : Memesan warna tulisan dengan konstanta warna x. x dapat berupa angka 0, 1, 2, atau Black, Red, White, TextBackGround(x) : Memesan warna latar belakang dengan konstanta warna x. Untuk procedure dan fungsi standard yang sudah disediakan oleh pascal semuanya terdapat pada unit-unit yang harus disertakan pemakaiannya pada USES (pada kepala program). D. Menciptakan Procedure Berapa hal yang harus diperhatikan dalam penggunaan prosedur, antara lain : Deklarasi prosedur terletak pada bagian deklarasi program. 7
9 Sembarang tipe statemen pascal bisa digunakan dalam prosedur. Parameter dalam prosedur bersifat optional, boleh ada boleh tidak. Suatu prosedur bisa memanggil prosedur lain yang sudah didefinisikan terlebih dahulu. Pemberian nama prosedur mengikuti aturan pemberian nama pengenal atau perubah. Mendeklarasikan prosedur Struktur prosedur hampir sama dengan struktur program pascal, yaitu : Bagian kepala prosedur Procedure nama_prosedur (dafatar parameter formal); Bagian deklarasi Digunakan untuk mendeklarasikan semua variabel lokal yang digunakan dalam prosedur. Bagian pernyataan. Digunakan untuk menuliskan semua statemen, yang diawali dengan dan diakhiri dengan end diikuti tanda titik koma (;). (statement) end. Pemanggilan prosedur dilakukan dengan cara menyebutkan nama prosedurnya diikuti dengan parameter (parameter aktual) jika memakai parameter formal pada saat mendeklarasikan. III. PRAKTEK Program pas31; uses crt; type larik = array[1..100] of real; var vektor : larik; n,i,bantu : integer; m,rerata,jum : real; procedure baca; clrscr; write('masukkan banyak data = '); readln(n); writeln('masukkan datanya ='); bantu := 1; for I := 1 to n do read(vektor[i]); gotoxy(wherex+(i mod 8) * 8,whereY-1); if I mod 8 = 0 then writeln; procedure cetak(x:larik;p:integer); var i : integer; 8
10 writeln; for I := 1 to P do write(x[i]:6:2); if I mod 8 = 0 then writeln; writeln; procedure urut (var X : larik; P:integer); var i,j,lokasi : integer; bantu : real; for i := 1 to p-1 do lokasi := i; for j := i+1 to p do if x[lokasi] > x[j] then lokasi := j; bantu := x[i]; x[i] := x[lokasi]; x[lokasi] := bantu; procedure medu(var x : larik; n :integer); if (n mod 2 = 0) then m := (x[n div 2] + x[(n div 2) +1])/2 else m := x[(n+1)div 2]; procedure rata (x:larik; n :integer); var i : integer; jum := 0.0; for i := 1 to n do jum := jum + x[i]; rerata := jum / n; clrscr; baca; clrscr; writeln('data sebelum diurutkan ='); cetak(vektor,n); writeln; urut(vektor,n); writeln('data urut ='); cetak(vektor,n); rata(vektor,n); writeln; writeln('banyaknya data = ',n); writeln('total data = ',jum:6:2); writeln('nilai rata-rata = ',rerata:6:2); medu(vektor,n); writeln('nilai median = ',m:6:2); readln; readln; end. 9
11 MODUL IV FUNCTION (1 x pertemuan) I. TUJUAN - Mempelajari pemecahan program ke dalam modul-modul program dalam bentuk fungsi. II. TEORI SINGKAT Fungsi adalah suatu routine yang terdefinisi, baik di definisikan oleh PASCAL (fungsi standard) maupun didefinisikan oleh pemakai (user define function). Fungsi dapat kita bedakan dari hasil fungsinya, yang dapat berupa String, Numeric atau Boolean. Berikut ini adalah fungsi-fungsi pustaka ynag sudah terdefinisi dalam PASCAL. 1. Fungsi Standard Aritmatika Abs(x) : Menghasilkan nilai mutlak dari x, x real atau integer. Exp(x) : Menghasilkan x e, x real atau integer. Ln(x) : Menghasilkan logaritma natural x. Int(x) : Menghasilkan nilai integer dari x, x real. Frac(x) : Menghasilkan bagian pecah dari x yang real. Sqr(x) : Menghasilkan nilai kuadrat dari x, x real atau integer. Sqrt(x) : Menghasilkan akar kuadrat dari x, x real. Sin(x) : Sinus x, x real. Cos(x) : Cosinus x, x real. ArcTan(x) : Arch Tg x. Random(x) : Menghasilkan bilangan bulat acak dari 0 x. 2. Fungsi Standard String Copy(s,I,n) : Menyalin n buah character mulai dari posisi i dari string x. Pos(s1,s2) : Menghasilkan posisi suatu string s1 dalam string s2. Length(s) : Menghasilkan panjang suatu string s. Readkey : Menghasilkan satu character yang diketik dari keyboard. Bersifat menunggu masukkan satu character. 3. Fungsi Standard Transfer Ord(x) : Menghasilkan KODE ASCII dari x, x bertype Char. Chr(x) : Menghasilkan character yang berkode ASCII x. Round(x) : Menghasilkan nilai longint yang terdekat dari x real sesuai dengan aturan pembulatan. Trunc(x) : Menghasilkan nilai longint yang terkecil dari x real. Upcase(x) : Menghasilkan huruf besar. A. Menciptakan Fungsi Fungsi merupakan sebuah subprogram yang apabila dipanggil akan menghasilkan sebuah nilai. Ciri-ciri suatu fungsi : 10
12 III. Modul Praktikum 1. Fungsi hanya memberikan sebuah hasil 2. Nama fungsi selain digunakan untuk memanggil fungsi tersebut, juga dianggap sebagai suatu variable sehingga bias digunakan sebagai bagian dari ungkapan. 3. Dalam fungsi tidak digunakan parameter variable, semua parameter dianggap sebagai parameter nilai. 4. Semua parameter digunakan sebagai masukan pada fungsi tersebut dengan keluarannya nama fungsi yang bertindak sebagai satu variable. Deklarasi fungsi : Function pengenal [(daftar parameter formal)]: tipe; Function, adalah kata tercadang pascal yang memberi tanda bahwa deklarasi fungsi dimulai. Pengenal, adalah nama fungsi. Daftar parameter formal, adalah nama parameter yang akan dioperasikan dalam fungsi. Tipe, adalah tipe data dari nilai fungsi. (yang diperbolehkan hanya tipe skalar, subjangkauan atau terbilang). Kemudian untuk memanggil fungsi yang sudah dideklarasikan, digunakan bentuk sebagai berikut : Pengenal(daftar parameter aktual); Pengenal adalah nama fungsi yang akan dipanggil. Beberapa hal penting yang perlu diperhatikan berkaitan dengan pemakaian fungsi, adalah : 1. Tipe hasil fungsi harus bertipe sederhana (integer, real, boolean, char atau string), karena fungsi hanya bisa mengembalikan nilai bertipe sederhana. 2. Jika fungsi tidak memiliki daftar parameter formal, maka tanda kurung buka ( dan kurung tutup ) tidak ditulis. Fungsi didefinisikan didalam blok program pemanggil (setelah kata tercadang var) PRAKTEK program pas41; uses crt; var pil,i,k,j : integer; tinggi : array[1..100] of real; mahasiswa : array[1..100] of string; function menu(var pilih:integer):integer; clrscr; gotoxy(20,5);writeln('**********************************'); gotoxy(20,6);writeln(' M E N U'); gotoxy(20,7);writeln('**********************************'); gotoxy(20,8);writeln; gotoxy(20,9);writeln(' 1. Tambah Data'); gotoxy(20,10);writeln(' 2. Urutkan Data'); gotoxy(20,11);writeln(' 3. Tampilkan Data'); gotoxy(20,12);writeln(' 4. Hapus Data'); gotoxy(20,13);writeln(' 5. Edit Data'); gotoxy(20,14);writeln(' 6. Statistik'); gotoxy(20,15);writeln(' 0. Keluar'); gotoxy(20,16);writeln('**********************************'); gotoxy(20,18);writeln('**********************************'); gotoxy(20,17);write('pilihan = ');readln(pilih); function tambah:string; clrscr; 11
13 writeln('******************'); writeln(' Tambah Data'); writeln('******************'); writeln; write('banyak data yg ditambahkan = ');readln(j); for i:=1 to j do k:=k+1; writeln(' '); writeln(' Data ke-',k); writeln(' '); write('nama Mahasiswa : ');readln(mahasiswa[k]); write('tinggi Badan : ');readln(tinggi[k]); function urutkan:integer; var pil2,x,y : integer; temp2: string; temp : real; clrscr; writeln('******************'); writeln(' Urutkan Data'); writeln('******************'); writeln; if k=0 then write('data masih kosong, ENTER untuk ke MENU'); readln; end else writeln('urutan berdasarkan :'); writeln('1. Nama Mahasiswa'); writeln('2. Tinggi Badan'); write('pilihan = ');readln(pil2); if (pil2=1) then for i:=1 to k-1 do for j:=i+1 to k do if length(mahasiswa[i])>length(mahasiswa[j]) then x:=length(mahasiswa[i]) else x:=length(mahasiswa[j]); for y:=1 to x do if ((mahasiswa[i,y])>(mahasiswa[j,y])) then temp:=tinggi[i]; temp2:=mahasiswa[i]; mahasiswa[i]:=mahasiswa[j]; tinggi[i]:=tinggi[j]; tinggi[j]:=temp; 12
14 mahasiswa[j]:=temp2; y:=x; end else if ((mahasiswa[i,y])<(mahasiswa[j,y])) then y:=x; write('data telah terurutkan, ENTER untuk ke MENU');readln; end else if (pil2=2) then for i:=1 to k-1 do for j:=i+1 to k do if tinggi[i]>tinggi[j] then temp:=tinggi[i]; temp2:=mahasiswa[i]; tinggi[i]:=tinggi[j]; mahasiswa[i]:=mahasiswa[j]; tinggi[j]:=temp; mahasiswa[j]:=temp2; write('data telah terurutkan, ENTER untuk ke MENU');readln; end else write('data GAGAL diurutkan, ENTER untuk ke MENU');readln; function tampilkan(pos: byte; teks : string):string; clrscr; writeln('******************'); gotoxy(pos,2);writeln(teks); writeln('******************'); writeln; writeln('terdapat ',k,' data '); for i:=1 to k do writeln(' '); writeln(' Data ke-',i); writeln(' '); writeln('nama Mahasiswa : ',mahasiswa[i]); writeln('tinggi Badan : ',tinggi[i]:0:2,' cm'); writeln; writeln; write('enter untuk melanjutkan');readln; 13
15 function editkan:string; var bil : integer; tampilkan(5,'edit Data'); if (k>0) then write('data yang di edit urutan ke-');readln(bil); if (bil>0) and (bil<=k) then writeln(' '); writeln(' Data ke-',bil); writeln(' '); writeln('nama Mahasiswa : ',mahasiswa[bil]); writeln('tinggi Badan : ',tinggi[bil]:0:2); writeln('[::] Edit Data [::]'); write('nama Mahasiswa : ');readln(mahasiswa[bil]); write('tinggi Badan : ');readln(tinggi[bil]); writeln; write('data telah diubah, ENTER untuk ke MENU'); readln; end else writeln; write('no Data tidak tepat, ENTER untuk ke MENU');readln; function hapuskan:string; var bil,i : integer; tampilkan(5,'hapus Data'); if (k>0) then write('data yang di hapus urutan ke-');readln(bil); if (bil>0) and (bil<=k) then for i:=bil to k-1 do tinggi[i]:=tinggi[i+1]; mahasiswa[i]:=mahasiswa[i+1]; k:=k-1; writeln; write('data telah dihapus, ENTER untuk ke MENU'); readln; end else writeln; write('no Data tidak tepat, ENTER untuk ke MENU');readln; function statistik:string; var i,j : integer; 14
16 temp,jum : real; temp2 : string; clrscr; writeln('******************'); writeln(' Statistik Data'); writeln('******************'); if (k>0) then jum:=0; writeln; writeln('banyak data yang ada = ',k); for i:=1 to k-1 do for j:=i+1 to k do if tinggi[i]>tinggi[j] then temp:=tinggi[i]; temp2:=mahasiswa[i]; tinggi[i]:=tinggi[j]; mahasiswa[i]:=mahasiswa[j]; tinggi[j]:=temp; mahasiswa[j]:=temp2; jum:=jum+tinggi[i]; writeln('rata-rata tinggi mahasiswa = ',((jum+tinggi[k])/k):0:2); writeln('mahasiswa yang memiliki tinggi badan terrendah = ',mahasiswa[1],' (',tinggi[1]:0:2,')'); writeln('mahasiswa yang memiliki tinggi badan tertinggi = ',mahasiswa[k],' (',tinggi[k]:0:2,')'); writeln; end else writeln; write('data masih kosong, '); write('enter untuk ke MENU');readln; { program utama } repeat menu(pil); case pil of 0 : exit; 1 : tambah; 2 : urutkan; 3 : tampilkan(3,'tampilkan Data'); 4 : hapuskan; 5 : editkan; 6 : statistik; else gotoxy(20,19);write('pilihan salah, ENTER untuk ke MENU');readln; until pil=0; end. 15
17 MODUL V REKURSIF (1 x pertemuan) I. TUJUAN II. - Mempelajari proses rekursi dalam penggunaan prosedur dan fungsi TEORI SINGKAT Rekursi adalah suatu prosedur atau fungsi yang dapat memanggil dirinya sendiri. Contoh dari rekursi adalah proses menghitung faktorial dan proses menghitung bilangan fibonacci. Program berikut menunjukkan contoh penggunaan rekursi yang identik dengan suatu perulangan. Program 51; var i : integer; procedure ulang; writeln(i,'. Tulisan ini akan tercetak 10 kali'); if i < 10 then i := i + 1; ulang; i := 1; ulang; readln end. Perhatikan hasil dari eksekusi program diatas. Terlihat bahwa di dalam prosedur ulang terdapat baris perintah yang berfungsi untuk memanggil dirinya sendiri sebelum i =10. III. PRAKTEK Dibawah ini program untuk mengetahui nilai pemangkatan bilangan : program pas52; uses crt; var x : real; n : integer; Function pkt(x :real; n : integer):real; var t : real; m : integer; m:=abs(n); if (x<>0) and (n=0) then pkt:=1 else if n >0 then pkt:=x*pkt(x,n-1) else if (n < 0) then pkt := 1/(x*pkt(x,m-1)); clrscr; write('bilangan yang dipangkatkan : ');readln(x); 16
18 write('bilangan pangkat : ');readln(n); writeln(x:5:2,' Pangkat ',n,' = ',pkt(x,n):8:3); readln; end. Contoh dibawah ini merupakan program untuk mencari bilangan fibo : program pas53; uses crt; var x:array[1..100] of integer; i,n:integer; lagi:char; function fibo(n:integer):integer; if (n = 1) or (n=2) then fibo:=1 else fibo:=fibo(n-1)+fibo(n-2); repeat clrscr; write('suku deret Fibonacci keberapa :');readln(n); writeln('suku ke ', n,' =', fibo(n)); write('lagi...[y/t]');lagi:=upcase(readkey); writeln(lagi); until lagi <> 'Y'; end. Tugas : Ubahlah ketiga contoh program diatas tanpa menggunakan rekursi, tetapi menghasilkan output yang sama. 17
19 MODUL VI RECORD (1 x pertemuan) I. TUJUAN II. - Mempelajari penggunaan tipe data terstruktur record pada pascal TEORI SINGKAT Record merupakan tipe berstruktur yang memiliki beberapa komponen atau elemen dengan masing-masing elemen boleh memiliki tipe data yang berlainan. Bentuk deklarasi variabel record : RECORD Daftar_field_1 : tipe_1; Daftar_field_2 : tipe_2; Daftar_field_n : tipe_n; END; Masing-masing elemen dari record disebut dengan field. Masing-masign field dapat berupa tipe apa saja termasuk array. Contoh deklarasi : Type Var RecBarang = RECORD Nama : string; Cara Mengakses field Contoh : Bentuk : Barang.Nama; Banyak : integer; Harga : LongInt; Barang : RecBarang; Variabel.field Berarti field nama dari variabel record benama barang. Contoh lain : Barang.Nama := Sabun Mandi ; Field Nama pada record Barang diisi string Sabun Mandi Pernyataan WITH Untuk menyederhanakan pernyataan seperti DataPeg.TgLahir.Tgl Pascal menyediakan pernyataan WITH, dengan bentuk : WITH nama_record Do <pernyataan> III. PRAKTEK Program pas61; Type 18
20 Recbarang = RECORD Nama_B : string[8]; Jumlah : Integer; Harga_b : LongInt; Var Barang : Recbarang; {Memasukan data ke dalam record barang} Barang.Nama_b := 'Baju koko'; Barang.Jumlah := 10; Barang.Harga_b := ; {Menampilkan isi field record} Writeln('Nama Barang : ',Barang.Nama_b); Writeln('Jumlah Barang : ',Barang.Jumlah); Writeln('Harga Barang : ',Barang.Harga_b); End. Program pas62; Type RecTgl = RECORD Tgl, Bln,Thn : Integer; RecPegawai = RECORD Nmr : Integer; Nama : String[35]; TgLahir : RecTgl; Gaji : LongInt; Var DataPeg : RecPegawai; {Mengisikan nilai terhadap field-field} DataPeg.Nmr := 123; DataPeg.Nama := 'Joko Bodho'; DataPeg.TgLahir.Tgl := 13; DataPeg.TgLahir.Bln := 10; DataPeg.TgLahir.Thn := 1975; {menampilkan isi field} Writeln('Nomor : ',DataPeg.Nmr); Writeln('Nama : ',DataPeg.Nama); Writeln('Tanggal Lahir : ',DataPeg.TgLahir.Tgl, '/',DataPeg.TgLahir.Bln,'/',DataPeg.TgLahir.Thn); readln; End. Program pas63; Type Recbarang = RECORD Nama_B : string[10]; Jumlah : Integer; Harga_b : LongInt; Var Barang : Recbarang; {Memasukan data ke dalam record barang} Barang.Nama_b := 'Baju koko'; 19
21 Barang.Jumlah := 10; Barang.Harga_b := ; {Menampilkan isi field record} WITH Barang Do Writeln('Nama Barang : ',Nama_b); Writeln('Jumlah Barang : ',Jumlah); Writeln('Harga Barang : ',Harga_b); readln; End. Tugas : Buatlah progam untuk memasukkan sejumlah data nilai mahasiswa dalam bentuk record. Data yang dimasukkan adalah Nim, Nama, Nilai UTS, Nilai UAS, Nilai Tugas. Setelah semua data dimasukkan, semua data ditampilkan dalam bentuk tabel yang diurutkan secara descending berdasarkan nilai rata-rata tiap mahasiswa, kemudian konversi nilai rata-rata ke dalam nilai angka dengan aturan. Rata-rata >= 80 nilai huruf A keterangan Lulus Rata-rata >= 70 nilai huruf B keterangan Lulus Rata-rata >= 60 nilai huruf C keterangan Lulus Rata-rata >= 50 nilai huruf D keterangan Tidak Lulus Rata-rata < 50 nilai huruf E keterangan Tidak Lulus Contoh output program : Jumlah Data : 2 Data ke-1 N I M : N a m a : Jono Nilai UTS : 50 Nilai UAS : 50 Nilai TUGAS : 50 Data ke-1 N I M : N a m a : Hari Nilai UTS : 90 Nilai UAS : 90 Nilai TUGAS : 90 H A S I L P R O S E S No NIM Nama Rata Huruf Keterangan Jana 90 A Lulus Jono 50 D Tidak Lulus 20
22 MODUL VII UNIT (1 x pertemuan) I. TUJUAN II. - Mempelajari pembuatan unit dengan mengunakan pascal TEORI SINGKAT Unit merupakan group dari prosedur atau fungsi (untuk berbagai deklarasi/definisi seperti variabel dan tipe) yang dpat dikompilasi terpisah terhadap program turbo pascal. Keuntungan dengan adanya unit, program yang memakai fasilitas dalam unit akan dikompilasi lebih cepat, sebab bagian dari unit tidak ikut dikompilasi lagi. Struktur Unit Unit terdiri dari tiga buah bagian : Bagian Interface Bagian Implementation Bagian Inisialisasi Struktur Sebuah Unit : UNIT nama_unit; INTERFACE USES daftar_nama_unit; {optional} {bagian deklarasi yang bersifat global} IMPLEMENTATION {Bagian deklarasi yang bersifat lokal dan implementasi dari subprogram yang terdapat pada bagian interface} BEGIN {opsional} (* bagian inisialisasi *) {opsional} END. Bagian Interface Bagian interface merupakan bagian penghubung antara unit dengan unit lain atau program. Jika unit mengandung prosedur atau fungsi yang dapat diakses oleh program atau unit lain, hanya kepala/judul prosedur/fungsi yang berada pada bagian interface. Adapun tubuh fungsi berada pada bagian implementation. UNIT TambKur; INTERFACE USES CRT; PROCEDURE Tambah(x, y : integer); PROCEDURE Kurang(x, y : integer); PROCEDURE Hapuslayar; PROCEDURE TUNDA; Bagian Implementation Bagian implementation berisi : Bagian tubuh dari fungsi atau prosedur yang kepalanya dideklarasikan pada bagian interface Deklarasi konstanta, tipe, variabel, prosedurdan fungsi yang bersifat lokal (hanya dikenal dibagian implementation) 21
23 Bagian ini dapat menggunakan semua fasilitas yang ada pada bgian interface (seperti deklarasi variabel dan tipe) dan juga fasilitas yang terdapat pada unit yang dilibatkan pada bagian interface. IMPLEMENTATION PROCEDURE HAPUSLAYAR; ClrScr; PROCEDURE Tunda; Readln; PROCEDURE Tambah(x, y : integer); VAR Total : integer; total := x + y; writeln(x,' + ',y,' = ',total); PROCEDURE Kurang(x, y : integer); VAR Total : integer; total := x - y; writeln(x,' - ',y,' = ',total); Bagian Inisialisasi Bagian ini bisa terdiri kata tercadang END saja yang diakhiri dengan titik. Dan menyatakan unit tidak mengandung kode inisialisasi. End. Dari contoh contoh pada bagian diatas anda ketikkan menjadi sebuah program dan beri nama TambKur Kemudian Compile program diatas dengan menekan tobol Alt+F9 atau dari menu Compile pilih Compile. Jika program anda tidak mengandung kesalahan maka anda akan mendapatkan sebuah file baru dengan nama TambKur.tpu. yaitu file TPU yang anda bisa sisipkan pada program utama anda dengan menggunakan perintah Uses. Ketikkan program dibawah ini kemudian simpan dengan nama Test uses tambkur; var n,m : integer; Hapuslayar; Write( Masukan Nilai 1 : ); readln(n); Write( Masukan Nilai 2 : ); readln(m); Tambah(n,m); Kurang(n,m); Tunda; end. 22
24 III. PRAKTEK Salin berikut ini : unit cekpas; interface function CekSandi(Kata, Password: string): Boolean; implementation function CekSandi(Kata, Password: string): Boolean; if Kata=Password then CekSandi := True Else CekSandi := False; end. Kemudian simpan program tersebut di atas dengan nama yang sama dengan nama unitnya. Untuk pemanggilan unit di ketikkan setelah kata kunci Uses. Kompilasi unit tersebut di atas (ingat, selalu kompilasi unit ke pengingat tambahan (compile to disk)). Kemudian setelah dikompilasi, salin program berikut ini : program pas71; uses crt, cekpas; var Kata_sandi : string; Clrscr; repeat Write('Masukkan Password Anda!! : '); Readln(Kata_sandi); until CekSandi (Kata_sandi, 'praktikan'); Writeln; Write('Password Anda Benar!!'); Readln; end. Jalankan program tersebut dan amati hasilnya. Program tersebut menggunakan unit cekpas dan unit cekpas itu harus sudah terkompilasi pada berkas. Bila dijalankan, pernyataan-pernyataan antara repeat dengan until pada program tersebut akan diulang terus hingga kata sandi yang diketikkan adalah 'praktikan' dan CekSandi bernilai True. Tugas : Buatlah sebuah program pascal yang memanfaatkan fasilitas unit untuk menghitung jumlah huruf hidup dan huruf mati dari suatu string yang diinputkan dari keyboard. 23
25 MODUL VIII POINTER ( 2 x pertemuan) I. TUJUAN - Mempelajari tipe pointer dan penerapannya dalam program II. TEORI SINGKAT Pointer adalah suatu tipe data yang dapat digunakan untuk mengalokasikan dan mendealokasikan (mengambil / mengurangi) pengingat secara dinamis, yaitu sesuai dengan kebutuhan pada saat suatu program dieksekusi. Data bertipe pointer merupakan suatu fasilitas yang dimiliki pernrograrnan bahasa Pascal untuk mengatasi tipe data yang bersifat statis, misainya data bertipe larik yang penyimpanannya dalam pengingat terbatas, data yang tersimpan dalam perubah tidak boleh melebihi pesanan yang telah dideklarasikan. Gambar 3. menunjukkan ilustrasi perubah statis dan dinamis. a A 1000 A 10 b Gambar diatas bisa dijelaskan sebagai berikut. Pada gambar a perubah A adalah perubah statis. Dalam hal ini 1000 adalah nilai data yang sesungguhnya dan disimpan pada perubah (lokasi) A. Pada gambar b perubah A adalah perubah dinamis. Nilai perubah ini misalnya adalah 10. Nilai ini bukan nilai data yang sesungguhnya, tetapi lokasi dimana data yang sesunggulmya berada. Jadi dalam hal ini nilai data yang sesungguhnya tersimpan pada lokasi 10. Dari ilustrasi di atas bisa dilihat bahwa nilai perubah dinamis akan digunakan untuk menunjuk ke lokasi lain yang befisi data sesungguhnya yang akan diproses. Karena alasan inilah perubah dinamis lebih dikenal dengan sebutan pointer yang artinya kira-kira menunjuk ke sesuatu. Dalam perubah dinamis, nilai data yang ditunjuk oleh suatu pointer biasanya disebut sebagai simpul/node. A. Struktur Data. Struktur data yang dimaksud disini adalah struktur data yang digunakan dalam data bertipe pointer. Data bertipe pointer ditandai dengan meletakkan tanda ^ didepan nama simpul pada deklarasinya. Simpul bisa dideklarasikan sebagai sebuah record yang berisi field-field data yang bertipe selain pointer dan field-field yang bertipe pointer. 24
26 Field bertipe pointer dalam sebuah record bisa satu buah (untuk single link list), bisa dua buah (untuk double link list) dan sebagainya. Single link list hanya bisa menunjuk ke satu arah, sedang double link list bisa menunjuk ke dua arah. Dalam pemrograman bahasa Pascal, struktur data bertipe pointer yang bersifat dinamis berbeda dengan tipe data lainnya yang besifat statis. Bentuk umum deklarasi pointer adalah sebagai berikut: Type pengenal = ^simpul; simpul = tipe; dengan pengenal: nama pengenal yang menyatakan data bertipe pointer. Simpul : nama simpul. Tipe : tipe dari simpul. Tanda ^ didepan nama simpul harus ditulis apa adanya dan menunjukkan bahwa pengenal adalah suatu tipe data pointer. Tipe data simpul yang dinyatakan dalam tipe bisa berupa sembarang tipe data, misainya char, integer, real, rekaman (record) dan sebagainya. Contoh: Type patkiang = string [301; pegawai=.^simpul; simpul = record Nama : panjang; Alamat : panjang; pekerjaan: patkiang; Var P1,P2: pegawai; Deklarasi pada contoh diatas sifat kedinamisannya masih tersamar, karena jika dfinginkan sejumlah simpul aktif dalam pengingat, maka kita perlu menyediakan sejumlah pointer yang sesuai. Dengan demikian seolah-olah tidak ada perbedaan yang nyata antara perubah statis dengan dinamis. Gambar diatas menunjukkan medan informasi pada simpul pointer P1 dan P2. Dari gambar diatas terlihat ada kemiripan dengan perubah statis tanpa larik. P1 Nama Alamat Pekerjaan P2 Nama Alamat Pekerjaan Medan informasi Medan informasi Jika benar-benar diinginkan mempunyai perubah yang bersifat dinamis, harus ditarnbalikan satu medan lagi dalarn rekaman yang mampu menunjuk simpul lain, yang disebut dengan medan penyambung dengan tipenya sama dengan tipe pointer awal (P1). Deklarasinya struktur data untuk single-link-list dapat diubah menjadi: Type panjang = string[30]; pegawai= 'I simpul; simpul = record Nama : panjiang; Alamat : panjang; Pekerjaan : panjang; 25
27 berikut : pegawai; Var PI : pegawai; Gambar dibawah ini menunjukkan ilustrasi simpul dengan medan informasi, medan penyambung dan senarai berantai dari single-link-list. P1 Nama Alamat Pekerjaan Medan Informasi Medan Penyambung P2 (a)????????? (b) Gambar a menunjukkan suatu simpul dengan medan informasi berisi nama, alamat, pekerjaan dan medan penyambung yang bertipe pointer. Gambar b menunjukkan senarai berantai yang dapat dibentuk dari deklarasi diatas, ada kemiripan dengan data yang bertipe larik. Demikian pula untuk deklarasi struktur data doubly-link-list dapat diubah menjadi: Type panjang = string [301; pegawai= Simpul; simpul = record Nama : panjang; Alamat : panjang; pekerjaan : panjang; kiri,kanan : pegawai; Var P1 : pegawai; Gambar dibawah ini menunjukkan ilustrasi simpul dengan medan informasi, medan penyambung dan senarai berantai dari doubly-link-list. Gambar a menunjukkan suatu simpul dengan medan penyambung kiri, medan informasi berisi nama, alamat, pekedaan dan medan penyambung kanan yang bertipe pointer. Gambar b menunjukkan senarai berantai yang dapat dibentuk dari deklarasi struktur data doubly-link-list. Kegunaan. Kegunaan yang utarna dari data bertipe pointer adalah untuk mengatasi kekurangan yang terdapat pada data yang bertipe larik. Misalnya ada deklarasi sebagai berikut (dalam bahasa Pascal): var Tabel : array [ , ] of integer; 26
28 P1 Nama Alamat Pekerjaan Medan Penyambung kiri Medan Informasi Medan Penyambung Kanan (a) P2 Perubah tabel di atas hanya mampu untuk menyimpan data sebanyak 5000 buah data, tidak boleh lebih, proses akan terhenti jika perubah tabel digunakan lebih dari 5000 buah data. Sebaliknya, pengingat/penyimpan mengalami banyak kekosongan jika perubah tabel hanya sedikit yang digunakan, misalnya yang digunakan hanya 10 buah data, maka sisanya sebanyak 4990 pengingat dibiarkan kosong. Penggunaan data bertipe pointer adalah untuk mengolah data yang banyaknya tidak bisa dipastikan sebelumnya, bisa lebih dari 5000 buah data atau kurang dari 10 buah data. Pengingat yang digunakan data yang bertipe pointer bisa sebanyak-banyaknya tergantung dari kemampuan pengingat komputer yang digunakan dan tidak ada pengingat yang dibiarkan kosong jika jumlah data yang diolah hanya sedikit. Teknik. Teknik pengoperasian pointer secara umum dibagi kedalam kelompok-kelompok sebagai berikut: 1. Baru 2. Tambah: 3. Hapus:????????? a. Awal (depan) b. Tengah c. Akhir a. Awal (depan) b. Tengah c. Akhir (b) Ketiga teknik pengoperasian pointer diatas diberlakukan untuk ilustrasi-ilustrasi: 1. Senarai berantai tunggal tanpa kepala, yaitu kumpulan komponen yang disusun secara berurutan dengan bantuan pointer. Masing-masing komponen dinamakan dengan simpul (node). 2. Senarai berantai tunggal bekepala, yaitu senarai berantai yang diawali sebuah simpul sebagai kepala dengan bantuan pointer menyambung ke sekumpulan simpul yang disusun secara berurutan. 27
29 3. Senarai berantai tunggal berkepala dan memutar, yaitu sama seperti no. 2. Diatas, tetapi simpul terakhir menyambung kembali ke simpul kepala. 4. Senarai berantai ganda bekepala, yaitu senarai berantai yang diawali sebuah simpul sebagai kepala dengan bantuan pointer menyambung kiri tidak menunjuk ke simpul yang lain (nil) dan pointer penyambung kanan menunjuk ke sekumpulan simpul yang disusun secara berurutan. Pointer penyambung kiri dari simpul yang ditunjuk pointer penyambung kanan simpul kepala kembali menunjuk ke simpul sebelumnya. Pointer penyambung kanan simpul terakhir tidak menunjuk ke simpul yang lain (nil). 5. Senarai berantai ganda berkepala dan memutar, yaitu sama seperti no. 4. diatas, tetapi pointer penyambung kiri simpul kepala menunjuk ke simpul terakhir dan pointer menyambung kanan simpul terakhir menunjuk ke simpul kepala, jadi tidak ada pointer yang bernilai nil. Selain ketiga teknik pengoperasian pointer diatas, ditambah lagi teknik menukar posisi simpul yang sering diterapkan pada pengurutan data (sortir) dan teknik penelusuran yang sering diterapkan pada pohon (tree). Contoh-contoh dasar operasi pointer: Apabila dideklarasikan tipe pointer sebagai berikut: type simpul = Data; Data = record Nama : string; alamat : string; berikut : simpul; var T1J2 : simpul; B. Senarai berantai (linked list) Pada penjelasan tentang pointer diatas telah dijelaskan bahwa senarai berantai bersifat dinamis yang dapat mengatasi kekurangan yang terdapat pada data bertipe larik yang bersifat statis. Penyajian Senarai berantai: Penyambung pada setiap simpul digunakan untuk menunjuk kesimpul lain, jika pointer (penunjuk) bemilai nill, berarti suatu simpul tidak menunjuk ke simpul lain. Contoh senarai berantai dapat dilihat pada gambar dibawah ini: Awal A B C D E Dari diatas dapat dijelaskan sebagai berikut: 28
30 Pointer awal menunjuk simpul pertama yang berisi info A, dari medan penunjuk simpul pertama menunjuk simpul kedua yang berisi info B dan seterusnya hingga akhirnya simpul terakhir tidak menunjuk ke simpul yang lain lagi (nil). Operasi pada senarai berantai: 1. Operasi pointer pada senarai berantai tunggal Sebelum membicarakan operasi pointer pada senarai berantai tunggal (single link list) yang diberlakukan untuk semua operasi-operasi data bertipe pointer terlebih dahulu disampaikan deklarasi umum sebagai berikut: type Simpul = ^Data; Data = record info : char; berikut : simpul; var elemen : char; awal, akhir, haru : Simpul; a. Simpul baru Simpul baru dapat ditambahkan pada senarai berantai dengan perintahperintah: Readln(elemen); new(baru); baru^.info := elemen; baru^.berikut := nil; awal := baru; akhir := baru; b. Tambah simpul Untuk sernua proses penambahan baris pertama dan kedua dari program simpul baru diatas selalu digunakan. Penambahan Simpul pada senarai berantai tunggal dibagi kedalam beberapa cara, yaitu: Tambah di belakang: Untuk menambah di akhir senarai, terlebih dahulu ditinjau apakah senarai sudah ada atau belum, jika belum ada (awal := nil), maka program simpul baru diatas bisa digunakan, jika sudah ada (berarti simpul yang ditunjuk pointer akhir sudah ada), maka program berikut ini dikedakan (gambaran urutan hasilnya dapat dilihat pada garnbar 10: Akhir^.berikut := baru; akhir := baru; akhir^.berikut:=nil; Tambah di depan Sama seperti tambah simpul di belakang, terlebih dahulu tinjau apakah senarai sudah ada atau belum, jika belum lakukan perintah yang sama dengan tambah dibelakang, jika sudah ada lakukan perintah berikut baru^.berikut:= awal; 29
31 awal:=baru; Penambahan di tengah Sama dengan operasi penambahan simpul di belakang dan di depan, operasi penambahan simpul ditengah diawali dengan membuat simpul baru, mengkopi nilai elemen ke info pada simpul, meninjau apakah senarai sudah ada atau belum. Jika pada operasi penambahan di belakang atau di depan dengan cepat ditemukan posisi peletakan simpul (karena awal dan akhir simpul sudah diketahui), tetapi pada penambahan simpul di tengah harus dicari dahulu posisi peletakan simpul baru tersebut. Untuk proses pencarian ini dibutuhkan pointer bantuan (pada deklarasi Var ditambahkan. nama pointer, misainya bantu yang bertipe pointer) yang berfungsi untuk penunjuk simpul pada posisi schelum (didepan) simpul baru disisipkan. Berikut ini adalah program untuk meletakkan posisi bantu: bantu := awal; while elemen > bantu^.berikut^.info do bantu := bantu^.berikut; Program diatas mengandung pengertian bahwa selama nilai elemen lebih besar dari nilai info pada simpul setelah simpul yang ditunjuk oleh bantu maka pointer bantu menunjuk simpul berikutnya. Jika penunjuk bantu berhenti pada suatu simpul, programnya adalah sebagai berikut: Baru^.berikut:=bantu^.berikut; Bantu^.berikut := baru; Perintah diatas jangan dibalik. c. Hapus simpul Seperti operasi pada penambahan simpul, operasi menghapus simpul juga bisa dibagi menjadi: 1. hapus simpul pertarna. 2. hapus simpul akhir 3. hapus simpul di tengah Untuk operasi penghapusan simpul nilai elemen tidak perlu di kopikan ke variabel simpul (untuk deklarasi diatas, variabelnya adalah info), karena hanya berfungsi untuk pembanding. Kemudian untuk operasi penghapusan simpul ini, selain pointer awal dan akhir dibutuhkan beberapa pointer bantuan untuk menunjuk pointeryang akan dihapus dan pointer pencari posisi simpul. Yang terpenting dalam menghapus simpul adalah usahakan bahwa senarai jangan sampai terputus terutama, pada saat menghapus simpul ditengah. 30
32 Ilustrasi penghapusan simpul: 1. Menghapus simpul di awal Gambar dibawah mengilustrasikan penghapusan simpul yang terdapat di awal senarai, yang pada mulanya pointer awal menunjuk ke simpul terdepan dari senarai berantai. Hapus Awal Akhir A B C D sebagai berikut: Program penghapusan simpul di awal senarai dapat ditulis hapus:= awal; awal:=hapus^.berikut; {gambarl3} dispose (hapus); 2. Menghapus simpul di tengah Penghapusan simpul yang terdapat di tengah senarai berantai, apabila lokasi simpul yang akan dihapus sudah diketemukan (setelah simpul yang ditunjuk oleh pointer bantu), maka program penghapusan tersebut adalah sebagai berikut: hapus:=bantu^.berikut; bantu^.berikut:=hapus^.berikut; dispose (hapus); 3. Menghapus simpul di akhir Menghapus simpul di akhir senarai dapat dilakukan dengan program berikut Oika memenuffi if hapus = akhir): akhir := bantu; akhir^.berikut:= nil; dispose(hapus); III. PRAKTEK program tambah_hapus_pointer; type Simpul = ^Data; Data = record info : char; berikut : Simpul; var Elemen : char; Awal,Akhir,Baru : Simpul; procedure inisialisasi(var awal,akhir: Simpul); awal := nil; akhir := nil; procedure tambah_belakang(var awal,akhir : Simpul;elemen : char); var baru: Simpul; 31
33 new(baru); baru^.info=elemen; if awal = nil then awal := baru else akhir^.betikut := baru; akhir := baru; akhir^.berikut := nil; procedure tambah_depan(var awal,akhir : Simpul;elemen : char); var baru : Simpul; new(baru); baru^.info := elemen; if awal = nil then akhir := baru else baru^.berikut := awal; awal := baru; procedure tambah_tengah(var awal,akhir : Simpul;elemen : char); var baru,bantu : Simpul; new(haru); baru^.info := elemen; if awal = nil then awal:=baru; akhir:=baru; end else { mencari lokasi yang sesuai } bantu:=awal; while elemen > bantu^.berikut^.info do bantu:=bantu^. berikut; {menyisipkan simpul baru} baru^.berikut:=bantu^. berikut; bantu^. berikut:=baru; procedure hapus_simpul (var awal,akhir : simpul;elemen : char); var bantu,hapus : simpul; if awal=nil then { senarai masih kosong} writeln( Senarai masih kosong ) else if awal^.info = elemen then {simpul pertama dihapus} hapus:=awal; awal:=hapus^.berikut; dispose(hapus); end else {menghapus tengah atau terakhir} 32
34 bantu:=awal; {mencari simpul yang akan dihapus} while (elemen <> bantu^.berikut^.info) and (hantu^. berikut<>nil) do bantu:=bantu^.berikut; hapus:=bantu^.berikut; if hapus<>nil then {simpul yang akan dihapus ketemu} if hapus <> akhir then {simpul tengah dihapus} bantu^.berikut:=hapus^.berikut else {simpul terakkir dihapus} akhir:=bantu; akhir^. berikut:=nil; dispose(hapus); end else { simpul yang akan dihapus tidak ketemu } writeln(simpul yang akan dihapus tidak ketemu'); readln; procedure baca_tambah; var menu : integer; repeat clrscr; gotoxy (10,5);write( Masukkan karakter : );readln(elemen); gotoxy (10,7);write('1. Tambah depan); gotoxy (10,8);write('2. Tambah tengah'); gotoxy (10,9);write('3. Tambah akhir'); gotoxy (10,10);write('4. Selesai); gotoxy (10,12); write('pilihan : ');readln(menu); case menu of 1 : tambah_depan(awal,akhir,elemen); 2 : tambah_tengah(awal,akhir,elemen); 3 : tambah_belakang(awal,akhir,elemen); until menu = 4; procedure baca_hapus; clrscr; gotoxy (10,11); write('masukkan karakter : ');readln(elemen); hapus_simpul (awal,akhir,elemen); procedure cetak(var awal : simpul); var bantu : simpul; bantu := awal; repeat write(bantu^.info:2,'); bantu:=bantu^. berikut; until bantu = nil; 33
35 readln; { program utama } repeat clrscr; gotoxy (10,5); write('1. Tambah'); gotoxy (10,6); write( 2. Cetak ); gotoxy (10,7); write( 3. Hapus ); gotoxy (10,8); wiite('4. Selesai); gotoxy (10,10); write('pilihan : ');readin(pil); case pil of '1' : baca_tambah; '2 : cetak(awal); 3 : baca_hapus; until Pil = 4 ; end. Tugas : Buatlah program antrian untuk pembehan karcis Bioskop, setiap ada tambahan pembeli diletakkan di akhir antrian, pembeli yang selesai dilayani dihapus dari antrian (hapus di depan) dan bagi pembeli yang batal (keluar dad antrian) segera dihapus. 34
36 MODUL IX GRAFIK DAN SUARA (1 x pertemuan) I. TUJUAN - Mempelajari pembuatan program untuk membangkitkan suara dan mode grafik II. TEORI SINGKAT A. SUARA Bunyi speaker dapat dibangkitkan dengan menggunakan prosedur Sound. PROCEDURE Sound(frek:Word); Frek menyatakan frekuensi bunyi dalam herzt. Bunyi yang dihasilkan hanya dapat dihentikan dengan prosedur NoSound. Lama suara diatur dengan delay. B. MODE GRAFIK Pada mode grafik memungkinkan kita menggambar apapun, karena elemen terkecil penyusun grafik adalah titik (pixsel). Mengaktifkan Mode Grafik Untuk memilih mode grafik anda harus melakukan inisialisasi terlebih dahulu terhadap sistem grafik. Hal ini dilakukan dengan memanggil prosedur bernama Initgraph. Bentuk deklarasi : PROCEDURE InitGraph(Var DriverGrafik : Integer; Var ModeGrafik : Integer; PathDriver : String); Contoh program untuk membentuk lingkaran : GraphResult dipakai untuk memeriksa keberhasilan mode grafik anda. CloseGraph dipakai untuk menutup mode grafik ke mode teks. GetMaxX memberi nilai bertipe integer yang menyatakan nomor kolom terbesar pada mode grafik sekarang. GetMaxY memberi nilai bertipe integer yang menyatakan nomor baris terbesar pada mode grafik sekarang. PutPixel(x, y, w); menggambar sebuah titik pada baris yang, kolom x dan warna w GetPixel(x, y); memberi kode warna pixel yang berada pada koordinat x kolom yang MoveTo(x, y); meletakkan penunjuk sekarang ke kolom x baris yang MoveRel(dx, dy); meletakkan penunjuk sekarang ke kolom x+dx, baris yang+dy dengan (x,y) adalah posisi semula dari penunjuk sekarang. GetX menghasilkan posisi kolom dari penunjuk sekarang GetY menghasilkan posisi baris dari penunjuk sekarang LineTo(x,y); Menggambar dari posisi penunjuk sekarang ke koordinat (x, y). setelah dibuat penunjuk sekarang ada di koordinat (x,y). 35
37 LineRel(dx,dy) Menggambar dari posisi penunjuk sekarang ke koordinat (x+dx, y+dy)., dengan (x,y) adalah posisi semula dari penunjuk sekarang. setelah dibuat penunjuk sekarang ada di koordinat (x+dx,y+dy). Line dipakai untuk menggambar garis tetapi tidak mengubah penunjuk sekarang. Setcolor(x) memberikan warna x pada palete sekarang III. PRAKTEK A. Suara Program pas91; Uses Crt,graph3; Repeat Sound(1000); {frekuensi pertama} Delay(200); {tunda sebentar} Sound(400); {frekuensi kedua} Delay(200); {tunda sebentar} Until Keypressed; NoSound; {menghentikan suara} End. Program pas92; Uses Crt, Graph3; Const Escape=#27; Var Tombol : Char; Frek : Word; Bunyi : Boolean; ClrScr; GotoXY(30,07);Write(' SIMULASI PIANO '); GotoXY(30,09);Write('==================='); GotoXY(30,10);Write(' W E T Y U '); GotoXY(30,11);Write(' A S F G H J K '); GotoXY(30,12);Write('==================='); Repeat Tombol := ReadKey; Tombol := UpCase(Tombol); Bunyi := True; Case Tombol Of 'A' : Frek := 131; 'W' : Frek := 191; 'S' : Frek := 147; 'E' : Frek := 156; 'F' : Frek := 175; 'T' : Frek := 185; 'G' : Frek := 196; 'Y' : Frek := 208; 'H' : Frek := 220; 'U' : Frek := 233; 'J' : Frek := 247; 'K' : Frek := 262; Else 36
38 Bunyi := False If Bunyi Then Sound(frek); Delay(200); NoSound; Until Tombol = Escape; End. B. Grafik program pas93; uses graph; var DriverGrafis, ModeGrafis : integer; DriverGrafis := Detect; InitGraph(DriverGrafis,ModeGrafis,'c:\tp\bgi\'); If GraphResult <>GrOk then Writeln( Mode grafik tidak berhasil ); Halt(1); {Berhenti} Circle(GetMaxX div 2, GetMaxY div 2, GetMaxY div 4); Readln; Closegraph; End. program pas94; uses graph; var DriverGrafis,ModeGrafis : integer; FrekDasar,FrekMod,Amp,Sudut,SumbuX : integer; Tinggi : real; DriverGrafis := Detect; InitGraph(DriverGrafis,ModeGrafis,'c:\tp\bgi\'); If GraphResult <>GrOk then Writeln('Mode grafik tidak berhasil'); Halt(1); {Berhenti} FrekDasar := 3; FrekMod:= 10; Amp := GetmaxX div 4; SumbuX := GetMaxY div 2; For Sudut := 1 To GetMaxX do Tinggi := Amp * (Sin(FrekDasar * PI * Sudut/180)) * (Sin(FrekDasar * PI * Sudut/180)); PutPixel(Sudut, SumbuX - Round(Tinggi), GetMaxColor); Readln; Closegraph; End. program pas95; 37
39 Tugas : uses graph; var DriverGrafis,ModeGrafis : integer; FrekDasar,FrekMod,Amp,Sudut,SumbuX : integer; Tinggi : real; DriverGrafis := Detect; InitGraph(DriverGrafis,ModeGrafis,'c:\tp\bgi\'); If GraphResult <>GrOk then Writeln('Mode grafik tidak berhasil'); Halt(1); {Berhenti} SetColor(4); Line(320, 100, 200, 200); Line(320, 100, 440, 200); SetColor(7); Line(250, 300, 250, 160); Line(390, 300, 390, 160); SetColor(6); Line(150, 300, 490, 300); Readln; Closegraph; End. Buatlah tampilan gambar grafik dengan bentuk : 38
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
Bab 1 Pengenalan Pascal 1 BAB I PENGENALAN PASCAL, TIPE-TIPE DATA PASCAL DAN STATEMEN DASAR PADA PASCAL TUJUAN PRAKTIKUM TEORI PENUNJANG
Bab 1 Pengenalan Pascal 1 BAB I PENGENALAN PASCAL, TIPE-TIPE DATA PASCAL DAN STATEMEN DASAR PADA PASCAL TUJUAN PRAKTIKUM 1. Mengetahui sejarah bahasa Pascal. 2. Mengerti dan memahami struktur pemrograman
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
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
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
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
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
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
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
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
KONSEP DASAR PEMROGRAMAN PASCAL
KONSEP DASAR PEMROGRAMAN PASCAL 1.1 Perkembangan Pascal Pascal adalah bahasa tingkat tinggi yang orientasinya pada segala tujuan, dirancang oleh Prof. Niklaus Wirth dari Technical University di Zurich,
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
PROCEDURE DAN FUNCTION
PROCEDURE DAN FUNCTION Procedure dan Function adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub-program (modul program) yang merupakan sebuah program kecil untuk memproses sebagian
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
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
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
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
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
A B C D E F. Gambar 1. Senarai berantai dengan 6 simpul
struktur data fd [page 1 of 7] SENARAI BERANTAI Dalam pemakaian sehari-hari istilah senarai berantai (list) adalah kumpulan linier sejumlah data. Contohnya seperti daftar belanja harian, dimana setiap
A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10] Nilai elemen array Index array Inelemen array
Definisi Array Array (larik) adalah sebuah variabel yang dapat menyimpan lebih dari satu nilai sejenis (memilikii tipe data sama). Hal ini berbeda dengan variabel biasa yang hanya mampu menampung satu
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
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
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
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
Lab. Teknik Informatika Struktur Data 1
2. POINTER dan SINGLE LINK LIST TUJUAN PRAKTIKUM 1. Praktikan mengetahui tipe struktur data baru yaitu tipe data Pointer. 2. Praktikan menggunakan pointer didalam pembuatan program dan dapat menerapkannya
Dasar Komputer & Pemrograman 2A
Dasar Komputer & Pemrograman 2A Materi 4 Reza Aditya Firdaus PROCEDURE DAN FUNCTION Procedure dan Function adalah suatu program yang terpisah dalam blok sendiri Dan memiliki fungsi sebagai sub-program
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,
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
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
ARRAY. Larik / array adalah tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe yang sama.
ARRAY Larik / array adalah tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe yang sama. 1.1 Deklarasi yang akan dipergunakan harus di deklarasikan terlebih dahulu. Deklarasi
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
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
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
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
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
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
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) /
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)
Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-5
Struktur Data Belajar Struktur Data Menggunakan Pascal Pertemuan-5 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 ARRAY Menurut definisinya, array (larik) adalah suatu variabel yang merepresentasikan
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
Pengenalan Pascal/DevPascal
Materi 1 Pengenalan Pascal/DevPascal Turbo Pascal adalah Compiler bahasa pemrograman Pascal. Untuk memulai menjalankan Pascal: Cari Folder Pascal ada di C:\TP\BIN\TPX.EXE Jalankan File TPX tersebut Dev
I. SOAL PILIHAN GANDA. 1. Tag yang harus dimiliki setiap file HTML adalah : a. <HEAD> b. <TITLE> c. <BODY> d. <TEXT> e. <STYLE>
I. SOAL PILIHAN GANDA 1. Tag yang harus dimiliki setiap file HTML adalah : a. b. c. d. e. 2. Akan dihasilkan tulisan budi dengan huruf terbesar a. budi b.
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
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
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
Definisi Algoritma Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan.
Konsep Dasar Pemrograman Pascal Definisi Algoritma Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan. Langkah-langkah dalam algoritma harus
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
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
BAB IX LINKED LIST (SENARAI BERANTAI)
BAB IX LINKED LIST (SENARAI BERANTAI) Linked list atau biasa disebut senarai berantai adalah suatu kumpulan data yang saling terhubung antar 1 data dengan data berikutnya. Suatu element (disebut dengan
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
Sesi/Perkuliahan ke: VII
Sesi/Perkuliahan ke: VII Tujuan Instruksional Khusus : 1. Mahasiswa dapat menjelaskan pembentukan fungsi tanpa parameter. 2. Mahasiswa dapat menjelaskan mengenai pengiriman parameter dalam fungsi. 3. Mahasiswa
& 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
BAB 2 BAGAIMANA MENULISKAN PROGRAM PASCAL
BAB 2 BAGAIMANA MENULISKAN PROGRAM PASCAL Target Pencapaian Siswa mengerti dan d dapat membuat program dengan engan Menggunakan Pascal Menuliskan Program Pascal Untuk Menuliskan Program Pascal tidak mengenal
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
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
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
MANIPULASI STRING. Contoh :
MANIPULASI STRING 1.1 Merangkai String Pengerjaan suatu string hanya mempunyai sebuah operator, yaitu +. Bila operator ini digunakan untuk penambahan nilai numeric, maka akan berfungsi menjumlahkan dua
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
BAB IX LINKED LIST (SENARAI BERANTAI)
BAB IX LINKED LIST (SENARAI BERANTAI) Double Linked List Double Linked List adalah suatu linked list yang mempunyai penunjuk yaitu penunjuk ke data sebelumnya dan berikutnya. Perhatikan gambar di bawah
TIPE DATA, VARIABLE, dan OPERATOR DELPHI
TIPE DATA, VARIABLE, dan OPERATOR DELPHI A. TIPE DATA Delphi merupakan bahasa pemrograman tingkat tinggi yang mendukung perancangan terstruktur dan berorientasi Object. Bahasa pemrograman ini berdasarkan
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
Pertemuan 6 Array Objektif: 1. Memahami cara mendeklarasi tipe indeks dalam array 2. Dapat membuat program sederhana menggunakan array Pertemuan 6 53
Pertemuan 6 Array Objektif: 1. Memahami cara mendeklarasi tipe indeks dalam array 2. Dapat membuat program sederhana menggunakan array Pertemuan 6 53 P4.1 Teori Larik / array adalah tipe terstruktur yang
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
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
Contoh soal Struktur Program Pascal (Seleksi tingkat propinsi TOKI 2004)
1 of 8 4/9/2008 3:32 PM TOKI Guide Home Analitik Pascal Pemrograman Materi Pemrograman Download Tentang TOKI Buku Tamu Komunitas TOKI [email protected] Rabu, 9 April 2008 15:32:09 Pascal PASCAL Dalam
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
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
STRUKTUR KENDALI. Memanfaatkan struktur kendali untuk kasus komputasi
STRUKTUR KENDALI Modul TIK XI Memanfaatkan struktur kendali untuk kasus komputasi Statement kendali digunakan untuk proses pengambilan keputusan. ( PROSES DECISION ) Dimana proses akan dikerjakan bila
Pertemuan III ARRAY dan RECORD
Pertemuan III ARRAY dan RECORD STMIK Balikpapan Jurusan Manajemen Informatika I Array Array/Larik adalah struktur data yang mengacu pada sebuah/sekumpulan elemen yang diakses melalui indeks dan merupakan
Tipe Data. Definisi Tipe Data
Tipe Data Definisi Tipe Data Dalam pemrograman pascal, semua peubah yang akan dipakai harus ditentukan tipe data yang digunakan karena akan berpengaruh terhadap operasi bilangan yang dapat dilaksanakan
BAB 6 Array Dua Dimensi
BAB 6 Array Dua Dimensi Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi banyak (Multidimensional array), disini akan dibahas array 2 dimensi saja. Array 2 dimensi
Statemen-Statemen pada Pemrograman Pascal Reserved Word
Statemen-Statemen pada Pemrograman Pascal Reserved Word Reserved Word adalah kata-kata baku yang digunakan dalam program dan sudah terintergrated dalam pascal dan juga mempunyai bentuk serta kegunaan tertentu
STACK (TUMPUKAN) Secara sederhana, sebuah tumpukan bisa kita ilustrasikan seperti gambar berikut.
STACK (TUMPUKAN) Salah satu konsep yang sangat berguna di dalam Ilmu Komputer adalah satu bentuk struktur data yang disebut tumpukan (stack). Dalam bab ini kita akan mencoba menggali mengapa tumpukan sangat
MODUL STRUKTUR DATA. Erna Kumalasari Nurnawati
MODUL STRUKTUR DATA Erna Kumalasari Nurnawati Apa yang dipelajari??? Sorting = mengurutkan sejumlah data berdasar kunci tertentu array,array record Searching (pencarian)->array+record Struktur tumpukan
ARRAY. contoh : A[1] := 10; var A : array[1..10] of integer; A[nomer_indeks]
ARRAY Array adalah tipe data kompleks yang elemen-elemennya mempunyai tipe data yang sama. Jumlah elemen array bersifat tetap dan tidak bisa ditambah atau dikurangi setelah pendeklarasiannya. Tiap elemen
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
Wah gak terasa kita sudah nyampe di bab perulangan & kondisi selamat mencoba.
Cepat Mahir Bahasa Pascal [email protected] Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan
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
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
Array & Program Modular
6 Array & Program Modular A. Tujuan Setelah melakukan praktikum, diharapkan praktikan dapat : 1. Menggunakan sebuah Array berindek satu atau berindek dua untuk mendeklarasikan sebuah variabel. 2. Menggunakan
Bagian 2 Statemen-Statemen pada Pemrograman Pascal
Bagian 2 Statemen-Statemen pada Pemrograman Pascal Langkah-langkah Pembuatan Program Langkah-langkah dalam membuat program dapat dilihat pada flowchar berikut : EDIT KOMPILASI Ya SALAH Tidak EKSEKUSI Ya
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.
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
.::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 2 Operasi String
Pertemuan 2 Operasi String Objektif: 1. Dapat mengerti dan menggunakan prosedur standar untuk operasi string 2. Dapat mengerti dan menggunakan fungsi standar untuk opersi string Pertemuan 2 28 P2.1 Teori
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
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
Alwin sanjaya
[email protected] Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus
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
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
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
Cara pertama adalah pada saat deklarasi variabel ditambahkan ke- yword const sebelum nama tipe data seperti
KONSTANTA Menghitung besaran-besaran fisis dalam bidang fisika memerlukan suatu konstantakonstanta. Bahasa C dan C++ menyediakan tipe data tambahan sehingga variabel yang kita gunakan merupakan konstanta
STRUKTUR PROGRAM. Secara ringkas, struktur suatu program Pascal dapat terdiri dari : 1.Judul Program 2.Blog Program a.
PASCAL STRUKTUR PROGRAM Struktur program Pascal terdiri dari sebuah judul program (program heading) dan suatu blok program (program block) atau badan program (body program). Blok program dibagi lagi menjadi
MODUL PRAKTIKUM PEMROGRAMAN PASCAL. Fight #1 PENGENALAN PASCAL, VARIABEL, TIPE DAN KONSTANTA.
1 MODUL PRAKTIKUM PEMROGRAMAN PASCAL Fight #1 PENGENALAN PASCAL, VARIABEL, TIPE DAN KONSTANTA. A. Teori Pengenalan Compiler Pascal Sebelum kita mengenal suatu bahasa pemrograman, marilah terlebih dahulu
Pertemuan VI ANTRIAN (Queue)
Pertemuan VI ANTRIAN (Queue) STMIK Balikpapan Jurusan Manajemen Informatika Pada pembahasan selanjutnya kita akan mempelajari satu jenis struktur data yang disebut dengan antrian (queue) yang sering digunakan
Function. Pertemuan 7 Jurusan Sistem Informasi Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Gunadarma 2015
Function Pertemuan 7 Jurusan Sistem Informasi Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Gunadarma 2015 Fungsi tanpa parameter Parameter dalam fungsi Fungsi Standar Aritmatika Fungsi Tersarang
SOAL PASCAL A. 1. Lengkapi Source Code Dibawah ini : {* Program Menghitung dengan Operator Matematika*}
SOAL PASCAL A Selesai list code/source code pascal dengan mengetikkan list yang ada dan mengisikan titik-titik menjadi sebuah Program {* Program Menghitung dengan Operator Matematika*} program_hitung UsEs
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
MODUL PRAKTIKUM KONSEP PEMROGRAMAN KOMPUTER
MODUL PRAKTIKUM KONSEP PEMROGRAMAN KOMPUTER LABORATORIUM KOMPUTER JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS UDAYANA 2012 PERATURAN PELAKSANAAN PRAKTIKUM PEMROGRAMAN KOMPUTER Peraturan : 1. Praktikan
