P. 1
Modul Praktikum Algoritma & Pemrograman II

Modul Praktikum Algoritma & Pemrograman II

|Views: 324|Likes:

More info:

Published by: Chriz Prince Boateng on Jul 01, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/28/2014

pdf

text

original

Sections

MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN II

TEKNIK INFORMATIKA SEMESTER II TAHUN AKADEMIK 2010/2011

DISUSUN OLEH: DAMESKUS SAIKHUL BAHRI

UNIVERSITAS MUSAMUS MERAUKE FAKULTAS TEKNIK PROGRAM STUDI TEKNIK INFORMATIKA 2011

Algoritma & Pemrograman II

PRAKTIKUM 1 (1/3) PROSEDUR A. TUJUAN PRAKTIKUM 1. Memahami syntax prosedur 2. Memahami pendeklarasian prosedur B. TEORI DASAR Prosedur diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok program yang lainnya dengan menyebutkan judul prosedurnya. Prosedur banyak digunakan pada program yang terstruktur, karena: 1. Merupakan penerapan konsep program modular, yaitu memecahmecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentuk prosedur-prosedur. 2. Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan. Sebagaimana halnya sebuah program, suatu procedure juga memiliki header dan block. Perbedaan bentuknya dengan program hanyalah pada bagian header-nya saja. Bentuk Umum header suatu procedure adalah : PROCEDURE nama; Atau PROCEDURE nama (formal parameter : jenis); Jika kita menggunakan procedure dalam suatu program, maka procedure tersebut harus dituliskan pada bagian deklarasi.
 

1                                                By: Demz 

Algoritma & Pemrograman II

C. TUGAS PENDAHULUAN 1. Analisislah kedua contoh program di bawah ini tentang syntax dan pendeklarasian prosedur serta tulislah output programnya!. a. Contoh 1: var    a,b,c:integer;    procedure maksimum;  var    max :integer;        begin           if a>b then max:=a else max:=b;           if c>max then max:=c;           writeln ('Jadi nilai maksimumnya adalah =',max);      end;    begin       write ('Masukan Nilai a ='); readln (a);       write ('Masukan Nilai b ='); readln (b);       write ('Masukan Nilai c ='); readln (c);       maksimum;  end. 
 

b. Contoh 2: var  p,l,t:real;    procedure balok;  var  v:real;            begin                 v:=p*l*t;                 writeln ('Volumenya adalah =',v:2:0);            end;  begin       write ('Masukan Nilai panjang ='); readln (p);       write ('Masukan Nilai lebar   ='); readln (l);       write ('Masukan Nilai tinggi  ='); readln (t);       balok;  end.  2. Buatlah program untuk setiap permasalahan dalam percobaan!.

2                                                By: Demz 

Algoritma & Pemrograman II

D. PERCOBAAN 1. Buatlah sebuah program menggunakan prosedur untuk menampilkan kalimat “Algoritma dan Pemrograman II”. 2. Buatlah program untuk menampilkan kalimat “Teknik Informatika” sebanyak 10 kali dengan menggunakan prosedur. 3. Buatlah program untuk menampilkan bilangan 1 sampai 50. 4. Buatlah program untuk menampilkan bilangan ganjil dari 1 sampai 20 dengan menggunakan prosedur. 5. Ulangilah program No.4 dengan dengan menampilkan bilangan ganjil 1 sampai n, dimana nilai n merupakan nilai maksimal perulangan yang diinput melalui keyboard.

3                                                By: Demz 

Algoritma & Pemrograman II

PRAKTIKUM 2 (2/3) PROSEDUR A. TUJUAN PRAKTIKUM 1. Memahami jangkauan identifier. B. TEORI DASAR Identifier yang dideklarasikan dalam suatu blok program hanya berlaku pada blok dimana identifier tersebut didefinisikan. Nilai di dalam suatu modul program Pascal sifatnya adalah lokal, artinya hanya dapat digunakan pada modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada modul atau unit program yang lainnya. Untuk lebih memahami hal ini, perhatikan contoh di bawah ini: 1. Contoh 1:  

     

4                                                By: Demz 

Algoritma & Pemrograman II

2. Contoh 2:

   

C. TUGAS PENDAHULUAN 1. Buatlah sebuah contoh program sederhana variabel local.

yang menggunakan

2. Buatlah sebuah contoh program sederhana yang menggunakan variabel global. 3. Jelaskan dan analisislah kedua program yang telah dibuat serta tulislah output programnya. 4. Kerjakanlah untuk setiap permasalahan dalam percobaan, dan kumpulkan hasilnya.

5                                                By: Demz 

Algoritma & Pemrograman II

D. PERCOBAAN 1. Analisislah program di bawah ini, apakah variabel yang digunakan merupakan variabel local atau variabel global. Procedure Tanya_hitung;   Var X,Y :real;   Begin   Write (‘Nilai X ?’); Readln(X);   Y:=X*X;   Writeln(‘Nilai Y = ‘,Y:6:2);   End;     Begin   Tanya_Hitung;   End.   2. Jika program No.1 diubah menjadi seperti program di bawah ini, bagaimana hasilnya dan jelaskan!. Procedure Tanya_hitung;   Var X,Y :real;   Begin   Write (‘Nilai X ?’); Readln(X);   Y:=X*X;   End;     Begin   Tanya_Hitung;   Writeln(‘Nilai Y = ‘,Y:6:2);   End.   3. Program di bawah ini tidak dapat di compile karena terdapat kesalahan. Perbaikilah program berikut hingga dapat dijalankan dan jelaskan. Procedure CetakNama;  Begin     Writeln (NamaKu);  End;    Var NamaKu: string[20];  Begin     NamaKu:=’Pascal’;    CetakNama;   End.  

6                                                By: Demz 

Algoritma & Pemrograman II

PRAKTIKUM 3 (3/3) PROSEDUR A. TUJUAN PRAKTIKUM 1. Memahami parameter dalam prosedur B. TEORI DASAR Agar nilai-nilai variabel dapat digunakan pada modul lainnya yang membutuhkannya, maka dapat dilakukan dengan beberapa cara, yaitu: 1. Dibuat bersifat global. Agar suatu nilai dapat bersifat global, maka harus dideklarasikan di atas modul yang akan menggunakannya. Contoh 1:

7                                                By: Demz 

Algoritma & Pemrograman II

Pada contoh di atas, variabel A dab B bersifat global untuk prosedur kedua, ketiga dan utama, tetapi tidak bersifat global untuk prosedur kesatu, sehingga prosedur kesatu tidak dapat menggunakan variabelvariabel tersebut. Contoh 2:

Pada contoh di atas, variabel A dan B bersifat global, sehingga dapat digunakan untuk semua modul.

8                                                By: Demz 

Algoritma & Pemrograman II

2. Dikirimkan sebagai parameter ke modul yang membutuhkannya. Parameter yang dikirim dari modul utama ke modul prosedur disebut actual parameter, dan parameter yang ada dan dituliskan pada judul prosedur disebut formal parameter. a. Pengiriman parameter secara nilai Parameter yang dikirimkan secara nilai, maka parameter formal yang ada di prosedur akan berisi nilai yang dikirimkan yang kemudian bersifat lokal di prosedur.

b. Pengiriman parameter secara acuan Bila pengiriman parameter secara acuan (by reference), maka perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai actual parameter. Acua Forward Acuan Forward (forward reference) digunakan untuk mendeklarasikan di muka judul prosedur terpisah dari bloknya. Judul prosedur yang berisi parameter terpisah ini merupakan judul yang semestinya dan

dideklarasikan dengan menambahkan kata cadangan Forward. Blok prosedur ini letaknya terpisah dari judulnya, juga di awali dengan judul prosedur, tetapi hanya mencantumkan judul atau nama prosedurnya saja, tanpa mencantumkan parameter formalnya. Prosedur Standar Prosedur yang disediakan oleh Turbo Pascal: 1. Prosedur standar EXIT Digunakan untuk keluar dari suatu blok. 2. Prosedur standar HALT Digunakan untuk menghentikan proses program baik di program bagian maupun di program utama. 3. Prosedur standar MOVE Bentuk umum: MOVE (Var source,dest; count: word);

9                                                By: Demz 

Algoritma & Pemrograman II

Digunakan untuk menyalin suatu blok sebanyak count byte memori dari blok dimulai byte pertama source dan disalinkan ke byte pertama dest. 4. Prosedur standar FILLCHAR Digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variabel, sebagai berikut: FillChar(x;count :word;ch); X adalah variabel yang dapat bertipe apapun yang akan diisi dengan nilai tipe ordinal Ch sebanyak count byte.

C. TUGAS PENDAHULUAN 1. Carilah contoh program di internet atau di buku dengan ketentuan di bawah ini: a. Sebuah contoh program dengan menggunakan prosedur, dan pegiriman parameternya secara nilai. b. Sebuah contoh program dengan menggunakan prosedur, dan pegiriman parameternya secara acuan. 2. Jelaskan kedua contoh program tersebut dan kumpulkan. 3. Analisislah program di bawah ini dan tuliskan output programnya. Procedure pro1(var I : integer); Forward;   Procedure pro2(var I : integer);   Begin   Writeln(‘prosedur pro’, I);   End;     Procedure pro1;   Begin   Writeln(‘prosedur pro’,I);   End;   Var I : integer;   Begin   I := 1; pro1(I);   I := 2; pro2(I);   End.  
   

10                                                By: Demz 

Algoritma & Pemrograman II

D. PERCOBAAN 1. Jelaskan program di bawah ini dan analisalah output programnya. Procedure Hitung(A,B : integer);   Var C : integer;   Begin   C := A + B;   Writeln(‘Nilai C = ‘,C)   End;     Var X,Y : integer;   Begin   Write(‘Nilai X ? ‘); Readln(X);   Write(‘Nilai Y ?’); Readln(Y);   Hitung(X,Y);   End.  
 

2. Jelaskan program berikut ini dan analisalah parameternya. Procedure Hitung(Var A,B,C : integer);   Begin   C := A + B;   End;     Var X,Y,Z : integer;   Begin   X := 2; Y:= 3;   Hitung(X,Y,Z);   Writeln(‘X = ‘,X,’ Y = ‘,Y,’ Z = ‘,Z);   End.     3. Bandingkan kedua program di atas dan simpulkan. 4. Program di bawah ini masih terdapat kesalahan, temukan kesalahan tersebut dan lengkapilah hingga dapat dijalankan. program Hitung_Faktorial;  uses wincrt;  prosedure faktorial (var fak,hasil:integer);  var     i:integer;    begin       hasil:=1;       for i:=2 to fak do hasil:=hasil*i;  end.   

11                                                By: Demz 

Algoritma & Pemrograman II

var     n,f:integer;    begin       write ('Berapa faktorial yang akan dihitung?=');       readln (n);       writeln;       writeln (n,' faktorial ='.f);  end. 
 

12                                                By: Demz 

Algoritma & Pemrograman II

PRAKTIKUM 4 (1/2) FUNGSI A. TUJUAN PRAKTIKUM 1. Memahami bentuk umum penulisan dan pendeklarasian fungsi 2. Memahami fungsi tanpa parameter B. TEORI DASAR 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 bahasa Pascal dikenal beberapa fungsi, misalkan : abs, pred, sqrt, sqr, succ dan sebagainya. Fungsi-fungsi tersebut biasanya dikenal dengan Built in Function. Sedangkan function yang akan bicarakan disini adalah fungsi yang kita buat sendiri. Berbeda dengan procedure, function merupakan modul program yang menghasilkan suatu kuantitas. Hal ini dapat dilihat dari bentuk header-nya yang menyebutkan jenis data dari kuantitas yang dihasilkan. Secara umum bentuk header suatu function adalah: FUNCTION nama : jenis hasil; Atau FUNCTION nama (formal parameter : jenis ) : jenis_hasil;

FUNGSI TANPA PARAMETER Suatu fungsi yang tanpa menggunakan parameter berarti nilai balik yang akan dihasilkan merupakan nilai yang sudah pasti. Parameter digunakan untuk memberikan input pada fungsi dan fungsi akan memberikan hasil balik sesuai dengan parameter yang diberikannya.

13                                                By: Demz 

Algoritma & Pemrograman II

Sedang pada fungsi yang tidak mempunyai parameter, maka hasil fungsi tersebut tidak dapat diatur dari modul yang menggunakannya, karena tidak ada parameter yang dikirimkan. Dengan demikian fungsi yang tanpa parameter jarang dipergunakan.

C. TUGAS PENDAHULUAN 1. Jelaskan pendeklarasian fungsi!. 2. Jelaskan perbedaan antara fungsi dengan prosedur!. 3. Buatlah sebuah program sederhana dengan menggunakan fungsi tanpa parameter untuk menampilkan kalimat “TEKNIK INFORMATIKA 2010”. 4. Kerjakanlah untuk setiap permasalahan dalam percobaan dan kumpulkan hasilnya. D. PERCOBAAN 1. Buatlah sebuah program sederhana (tidak menggunakan fungsi) untuk menampilkan kalimat “Belajar Pascal”. 2. Analisa dan jelaskan program dengan menggunakan fungsi tanpa parameter di bawah ini, dan bagaimana output programnya?. uses wincrt;  function tampil:string;  begin       tampil:='Belajar Pascal';  end;    begin       writeln (tampil);  end.   3. Bandingkan kedua program di atas, jelaskan perbedaannya dan persamaannya serta simpulkan!. 4. Di bawah ini merupakan fungsi tanpa parameter untuk membuat garis. Namun program tersebut dapat diefisiensikan tanpa menggunakan fungsi. Efisiensikan program di bawah ini hingga menjadi program sederhana tanpa menggunakan fungsi!.

14                                                By: Demz 

Algoritma & Pemrograman II

uses wincrt;  type huruf = string[18];  function garis:huruf;    begin       garis:='‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐';  end;    begin       writeln (garis);       writeln ('TEKNIK INFORMATIKA');       writeln (garis);  end.     5. Bandingkan program No.4 dengan program yang telah diefisiensikan dan simpulkan.
   

15                                                By: Demz 

Algoritma & Pemrograman II

PRAKTIKUM 5 (2/2) FUNGSI A. TUJUAN PRAKTIKUM 1. Memahami parameter dalam fungsi B. TEORI DASAR PARAMETER DALAM FUNGSI Sama halnya dengan prosedur, parameter dalam fungsi dapat dikirimkan secara nilai (by value) atau secara acuan (by reference). Penulisan judul fungsi yang menggunakan parameter dengan pengiriman secara nilai dapat dilihat pada contoh penulisan berikut: Function Hitung (a,b:integer):integer; Sedangkan penulisan judul fungsi yang menggunakan parameter dengan pengiriman secara acuan adalah dengan menambahkan kata cadangan Var. hal ini dapat dilihat pada contoh penulisan berikut: Function Hitung (var a,b:integer):integer; Pengiriman parameter dengan secara acuan akan mengakibatkan perubahan nilai parameter pada fungsi juga merubah nilai parameter pada modul yang mengirimkannya. Dengan demikian fungsi yang

menggunakan pengiriman parameter secara acuan ini mirip dengan prosedur, yaitu parameter yang dikirimkan secara acuan tersebut dapat dimanfaatkan sebagai hasil balik. C. TUGAS PENDAHULUAN 1. Buatlah setiap program pada percobaan dan kumpulkan sebelum memulai praktikum. D. PERCOBAAN 1. Buatlah sebuah

program dengan

menggunakan

fungsi

untuk

menghitung luas sebuah luas bangun persegi panjang (gunakan pengiriman parameter secara nilai).

16                                                By: Demz 

Algoritma & Pemrograman II

2. Apa keluaran dari program di bawah ini?, dan analisislah fungsi yang digunakan!. uses wincrt;  Function Hitung(Var A,B : integer): integer;  Begin       Hitung := A + B;  End;    Var X,Y : integer;  Begin       Write('Nilai X ? '); Readln(X);       Write('Nilai Y ? '); Readln(Y);       Writeln;       Writeln(X,' + ',Y,' = ',Hitung(X,Y));  End.    3. Buatlah sebuah program dengan menggunakan fungsi (parameternya dikirim secara acuan) untuk menghitung besar energy kinetic. Besar energy kinetic dapat dihitung dengan menggunakan persamaan Ek=1/2mv2, dimana m adalah massa dan v merupakan kecepatan yang diinput melalui keyboard. 4. Buatlah fungsi dalam sebuah program untuk menentukan nilai terbesar dari dua buah nilai bertipe data integer yang diinputkan.

17                                                By: Demz 

Algoritma & Pemrograman II

PRAKTIKUM 6 (1/2) REKURSI A. TUJUAN PRAKTIKUM 1. Memahami konsep dan kondisi pengakhiran rekursi B. TEORI DASAR PENGERTIAN REKURSI Rekursi (recursion) merupakan proses dari suatu sub program (dapat berupa prosedur atau fungsi) yang memanggil dirinya sendiri. KONDISI PENGAKHIRAN REKURSI Jika kita menulis suatu fungsi atau prosedur rekursi, yang perlu diperhatikan adalah fungsi atau prosedur tersebut harus mendukung suatu kondisi akhir dari proses rekursi. Kondisi ini diperlukan untuk mencegah terjadinya proses rekursi yang tidak berujung (indefinite), yaitu proses rekursi akan terus dilakukan tanpa henti. Komdisi pengakhiran rekursi dapat dilakukan dengan menggunakan statement penyeleksian kondisi. Rekursi akan dihentikan bila kondisi telah memenuhi syarat. C. TUGAS PENDAHULUAN 1. Buatlah penyelesaian untuk setiap permasalahan pada percobaan dan kumpulkan sebelum memulai praktikum. D. PERCOBAAN 1. Analisislah output dari program di bawah ini, mengapa demikian? uses wincrt;  procedure rekursi;  begin       write ('INFORMATIKA 2010');       rekursi;  end;    begin       rekursi;  end. 

18                                                By: Demz 

Algoritma & Pemrograman II

 

2. Analisislah output dari program yang berikut ini, mengapa demikian? uses wincrt;  var     akhir:word;    procedure rekursi;    begin       if akhir<12 then         begin            writeln ('INFORMATIKA 2010');            akhir:=akhir+1;            rekursi;       end;  end;    begin       akhir:=0;       rekursi;  end.    3. Bandingkan program No.1 dan program No.2 kemudian simpulkan! 4. Lengkapilah dan perbaikilah program di bawah ini hingga dapat dijalankan untuk menampilkan deret bilangan. prosedur deret(u; integer); begin write (u:3): if u<12 then deret(u+1); end; var u:integer begin u:=0; deret; end. 

19                                                By: Demz 

Algoritma & Pemrograman II

PRAKTIKUM 7 (2/2) REKURSI A. TUJUAN PRAKTIKUM 1. Memahami penggunaan rekursi B. TEORI DASAR Telah diketahui bahwa suatu fungsi atau prosedur dalam bahasa Pascal dapat bersifat rekursif. Artinya, fungsi atau prosedur tersebut dapat memanggil dirinya sendiri. Hal ini dapat dimanfaatkan dalam program untuk menghitung faktorial, perkalian dua bilangan positif, bilangan fibonaci, dll. Sebagai contoh, program untuk menghitung faktorial. faktorial adalah 1x2x3…n (dengan asumsi n>3) dan dapat dirumuskan sebagai berikut: N!=N*(N-1)*(N-2)*…*1 Perumusan ini dapat didefinisaikan secara rekursi sebagai berikut: N!=N*(N-1)! Misalnya akan dihitung 4!: faktorial (4) = 4 * faktorial (3)   3 * faktorial (2)   2 * faktorial (1)   1 * faktorial (0)   1   = 4 * 3 * 2 * 1 * 1   = 24   Contoh lain dari proses rekursi adalah perkalina dari dua bilangan bulat positif. Hasil perkalian A*B untuk A dan B merupakan bilangan bulat positif dapat didefinisikan sebagai A ditambah dengan nilainya sendiri sebanyak B kali. Proses rekursi ini selanjutnya dapat didefinisikan: A*B=A A*B=A+A*(B-1)
   

untuk B=0 untuk B>1

20                                                By: Demz 

Algoritma & Pemrograman II

C. TUGAS PENDAHULUAN 1. Berikan solusi untuk setiap permasalahan pada percobaan dan kumpulkan sebelum memulai praktikum. D. PERCOBAAN 1. Di bawah ini merupakan prosedur untuk menghitung faktorial. Lengkapilah prosedur tersebut hingga menjadi sebuah program lengkap untuk menghitung nilai faktorial dari bilangan yang diinputkan melalui keyboard. procedure faktorial (n:byte; var hasil:longint);  begin       if n<=1 then          hasil:=1          else              begin                   faktorial(n‐1,hasil);                   hasil:=n*hasil;              end;  end;    2. Program di bawah ini merupakan program untuk menghitung perkalian dua bilangan bulat positif. Analisislah program tersebut dan simpulkan!. program hasilkali;  uses wincrt;  function kali (a,b:integer):integer;  begin       if b=1 then          kali:=a          else              kali:=a+kali(a,b‐1)  end;  var     bil1,bil2:integer;    begin       write ('Bilangan pertama ='); readln (bil1);       write ('Bilangan kedua   ='); readln (bil2);       writeln;       writeln (bil1,'x',bil2,' = ',kali(bil1,bil2));  end. 

21                                                By: Demz 

Algoritma & Pemrograman II

PRAKTIKUM 8 (1/2) ARRAY (LARIK) A. TUJUAN PRAKTIKUM 1. Memahami pendeklarasian Array 2. Memahami Array satu dimensi B. TEORI DASAR Array adalah tipe data terstruktur yang terdiri dari sejumlah komponenkomponen yang mempunyai tipe sama. Komponen-komponen tersebut disebut sebagai komponen type, larik mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu indeks, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indeksnya atau subskript. Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari larik atau komponenkomponenya mempunyai nilai dengan tipe data tersebut. Contoh:   Var   Untai : array[1..50] of Integer;   Pada contoh Array dengan nama untai di atas telah dideklarasikan dengan tipe integer, dengan jumlah elemen maksimum 50 elemen, nilai dari elemen array tersebut di atas harus bertipe integer. Contoh Program:     Uses winCrt;   Var   Bilangan : array[1..50] of Integer;   Begin      Bilangan[1]:=3;      Bilangan[2]:=29;      Bilangan[3]:=30;       Bilangan[4]:=31;      Bilangan[5]:=23;     Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]);   End.  

22                                                By: Demz 

Algoritma & Pemrograman II

Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh dibawah ini:
 

Program Contoh_Deklarasi_Array_Beragam;   Uses winCrt;   Var      NPM : array[1..20] of string[10];      Nama : array[1..20] of string[25];      Nilai : array[1..20] of real;      Umur : array[1..20] of byte;      banyak,i : integer;   Begin      ClrScr;      Write('Isi berapa data array yang diperlukan :');Readln(banyak);      For i := 1 to banyak Do         Begin          Write('NPM =');Readln(NPM[i]);         Write('Nama =');readln(Nama[i]);         Write('Nilai=');readln(Nilai[i]);         Write('Umur =');readln(Umur[i]);   End;   {cetak varibel array}   Writeln('NPM NAMA NILAI UMUR ');   For i:= 1 to banyak Do       Begin           Writeln(Npm[i]:10,Nama[i]:25,Nilai[i]:3:2,' ',Umur[i]:3);       End;       Readln;    End.  
 

Untuk deklarasi array dapat digunakan beberapa cara seperti berikut ini: Type   Angka = String[20];   Var   Nama : Array [1..50] of Angka;   Begin   .   .   End.  
 

Deklarasi tipe indeks subrange integer Indeks pada array dapat tipe skalar atau subrange, tetapi tidak bisa real.
23                                                By: Demz 

Algoritma & Pemrograman II

Contoh:   Var   Nilai : Array[1..10] of Integer;  
pada contoh ini array nilai mempunyai 10 buah elemen yaitu dari 1 sampai 10. Array tersebut dapat dideklarasikan dengan type seperti berikut ini :

Type   Skala = 1..10;   Var      Nilai : Array [skala] of Integer;   atau :   Type   Skala = 1..10;   Y = Array[skala] of Integer;   Var      Nilai : Y;   C. TUGAS PENDAHULUAN 1. Buatlah penyelesaian dari setiap permasalahan pada percobaan. D. PERCOBAAN 1. Analisislah program berikut dan bagaimana outputnya? Program Contoh;  Uses wincrt;   Var       nilai: array[1..5] of Integer;    Begin      nilai[1]:=100;      nilai[2]:=90;      nilai[3]:=80;       nilai[4]:=61;      nilai[5]:=73;      Writeln ('Nilai ke‐4 adalah =',nilai[4]);      Readln;   End. 
 

2. Ubahlah program No.1 di atas, dimana nilai-nilainya diinput melalui keyboard.

24                                                By: Demz 

Algoritma & Pemrograman II

3. Bandingkan kedua program di atas dan simpulkan. 4. Di bawah ini merupakan program untuk menginput nama dan nilai mahasiswa sebanyak 10 data dan menampilkan kembali inputan tersebut, dimana variabel nama dan nilai bertipe data Array. Namun program berikut ini masih terdapat kekurangan, lengkapi dan perbaikilah program tersebut hingga dapat dijalankan. uses wincrt;  var     i:integer;     nama:array [1..10] of string;     nilai:array [1…10] of integer;    begin       for i=1 to 10 do;         begin            write ('Nama ke‐',i,' ='); readln (nama[1]);            write ('Nilai ke‐',i,'='); readln (nilai[i]);            writeln;       end;         writeln ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐');       writeln ('Nama        Nilai');       writeln ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐');       for i:= 1 to 10 do         begin            writeln (nama[1],'      ',nilai[i])       end;       writeln ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐');  end;  end. 
 

5. Ubahlah program No.4 tersebut, dimana banyaknya data tergantung dari inputan user dan di akhir program muncul pertanyaan “apakah akan mengulang program (y/t)?”. Jika di tekan y maka program akan mengulang kembali, jika ditekan t program akan berhenti.

25                                                By: Demz 

Algoritma & Pemrograman II

PRAKTIKUM 9 (2/2) ARRAY (LARIK) A. TUJUAN PRAKTIKUM 1. Memahami Array multidimensi B. TEORI DASAR Pada pembahasan sebelumnya, indeks atau subscript pada larik (array) jumlahnya hanya sebuah dan larik ini disebut dengan Array dimensi satu (one dimensional array). Larik dapat juga berdimensi lebih dari satu yang disebut dengan larik dimensi banyak (multidimensional array), yang dapat berdimensi dua (two dimensional array), berdimensi tiga (three dimensional array) dan seterusnya. Pascal memungkinkan larik berdimensi lebih dari 3, yang membatasi hanya kapasitas dari memory computer (RAM). Secara prinsip, larik dimensi lebih dari 2 penanganannya sama dengan larik dimensi 2 dan pada pembahasan ini hanya akan dibahas larik dimensi 2 saja. Larik dimensi 2 mewakili suatu bentuk tabel atau matrik, yaitu indeks yang pertama dapat menunjukkan baris dan indeks yang kedua dapat menunjukkan kolom dari tabel atau matrik. Bentuk deklarasinya sebagai berikut: Nama-larik=array[tipe-indeks1] of array[tipe-indeks2] of tipe-larik Atau dapat ditulis: Nama-larik=array[tipe-indeks1, tipe-indeks2] of tipe-larik C. TUGAS PENDAHULUAN 1. Carilah di internet sebuah contoh program Array 2 dimensi, kemudian anlisislah output program tersebut. 2. Selesaikanlah semua permasalahan pada percobaan, dan kumpulkan sebelum memulai praktikum .

26                                                By: Demz 

Algoritma & Pemrograman II

D. PERCOBAAN 1. Analisislah output dari program berikut ini: Uses winCrt;  Var     matrix:Array[1..3,1..2] of Integer;     i,j  :integer;    Begin         matrix[1,1]:=1;        matrix[1,2]:=2;         matrix[2,1]:=3;         matrix[2,2]:=4;         matrix[3,1]:=5;         matrix[3,2]:=6;          for i:= 1 to 3 Do        Begin             for J:= 1 to 2 Do                 begin                      Write(matrix[i,j]:5);                 end;             writeln;        End;   End.  2. Ubahlah program No.1 di atas, dimana nilai-nilainya diinput melalui keyboard. 3. Buatlah sebuah program yang menampilkan sebuah matrik (terdiri dari 4 kolom dan 2 baris), dimana setiap elemennya diinput oleh user. 4. Analisalah program penjumlahan 2 buah matrik di bawah ini: Program Penjumlahan_Matrik;  Uses winCrt;   Var       Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer;       i,j : Integer;    Begin   ClrScr;   { input matrik ke satu }   Writeln('input elemen matrik pertama');   For i := 1 to 3 Do       Begin             For j := 1 to 2 Do             Begin                   Write('Elemen baris ‐',i,' Kolom ‐',j,'= ');  

27                                                By: Demz 

Algoritma & Pemrograman II

                Readln(matrik1[i,j]);             End;       End;  writeln;    {input matrik ke dua}   Writeln('input elemen matrik kedua');   For i:= 1 to 3 Do       Begin             For j:= 1 to 2 Do             Begin                   Write('Elemen baris ‐',i,' kolom ‐',j,'= ');                   Readln(matrik2[i,j]);             End;       End;  writeln;    {proses penjumlahan tiap elemen}   For i := 1 to 3 Do   Begin         For j:= 1 to 2 Do         Begin               Hasil[i,j]:=Matrik1[i,j]+Matrik2[i,j];         End;   End;    {proses cetak hasil}  writeln ('HASIL PENJUMLAHAN:');  For i:= 1 to 3 Do   Begin         For j:= 1 to 2 Do         Begin               Write(Hasil[i,j]:6);         End;   Writeln;   End;   Readln;   End. 

28                                                By: Demz 

Algoritma & Pemrograman II

PRAKTIKUM 10 (1/3) RECORD A. TUJUAN PRAKTIKUM 1. Memahami pendeklarasian record B. TEORI DASAR Record merupakan suatu kumpulan data item yang masing-masing mempunyai jenis data berbeda. Data item yang merupakan elemen record biasanya disebut dengan FIELD. CARA MENDEKLARASIKAN RECORD Bentuk umum deklarasi suatu variabel berjenis record adalah sbb: TYPE identifier = RECORD   Nama_field_1 : jenis;   Nama_field_2 : jenis;   ……………………..   ……………………..   nama_field_n : jenis;   END;  
 

1. Contoh 1: VAR nilai : RECORD   Nilai_1 : integer;   Nilai_2 : integer;   END;  
 

2. Contoh 2: TYPE date = RECORD   Tanggal : 1..31;   Bulan : 1…12;   Tahun : 1900..2000;   END;   VAR event1,event2 : ARRAY [1..10] OF date;  
 

3. Contoh 3: TYPE account = RECORD   cust_no : integer;   cust_type : char;   cust_balance : real;  

29                                                By: Demz 

Algoritma & Pemrograman II

END;   VAR customer : account;  
 

MEMPROSES VARIABEL BERJENIS RECORD Perhatikan deklarasi variabel berikut: TYPE nilai : RECORD   Nilai1 : real;   Nilai2 : real;   END;   VAR x,y : nilai;  
 

Untuk memproses variabel x dan / atau y dilakukan dengan cara menyebutkan field designatornya, yang terdiri dari atas: Nama_record.nama_field     Pada deklarasi diatas yang dimaksud dengan field designator-nya adalah : x.nilai1   x.nilai2   y.nilai1   y.nilai2  
 

Jadi jika ingin membaca variabel x atau y atau keduanya, maka bentuk statement-nya adalah: READ (x.nilai1, x.nilai2, y.nilai1, y.nilai2);     C. TUGAS PENDAHULUAN 1. Buatlah penyelesaian dari setiap permasalahan pada percobaan. D. PERCOBAAN 1. Di bawah ini merupakan contoh program penggunaan tipe data record. Namun program tersebut belum lengkap dan masih terdapat kesalahan. Lengkapi dan perbaikilah program tersebut hingga dapat dijalankan. uses wincrt;  type      hasil:record            sisi    :integer;            luas    :integer; 

30                                                By: Demz 

Algoritma & Pemrograman II

          keliling:integer;  var     bujursangkar:hasil;    begin         write ('Masukkan panjang sisi ='); readln (bujursangkar.sisi);          luas:=bujursangkar.sisi*bujursangkar.sisi;        keliling=4*bujursangkar.sisi;        writeln;          writeln ('Luasnya      =', luas);        writeln ('kelilingnya =', keliling);  end. 
 

2. Ulangi program No.1 di atas dengan mengubah deklarasi tipe data recordnya, yaitu dideklarasikan langsung pada deklarasi variabel. 3. Bandingka program No.1 dan program No.2 kemudian simpulkan. 4. Buatlah sebuah program dengan menggunakan tipe data record untuk menginput identitas mahasiswa yang terdiri dari nama, NIM, jenis kelamin, agama dan alamat. Kemudian tampilkan kembali identitas yang telah diinput tersebut.

31                                                By: Demz 

Algoritma & Pemrograman II

PRAKTIKUM 11 (2/3) RECORD A. TUJUAN PRAKTIKUM 1. Memahami statement With 2. Memahami Array bertipe record 3. Memahami Array dalam Record B. TEORI DASAR STATEMENT WITH  Selain cara yang telah disebutkan diatas, untuk memproses suatu record dapat digunakan statement WITH. Dengan statement ini penulisannya akan lebih sederhana. Bentuk Umum penulisan statement WITH ini adalah: WITH nama_record DO statement   Perhatikan deklarasi dibawah ini :
TYPE x = RECORD   No : integer;   Kode : char;   Juml : integer;   Harga : real;   END;   VAR p,q : x;    

Untuk membaca variabel p dan q di atas dengan memanfaatkan statement WITH bentuknya menjadi: WITH p,q DO read (no, kode, juml, harga);     Bandingkan jika digunakan cara sebelumnya : Read(p.no, p.kode, p.juml,p.harga,q.no,q.kode,q.juml,q.harga);   ARRAY BERTIPE RECORD Tipe terstruktur (Array) dapat pula bertipe record. Perhatikan contoh berikut: type   barang=RECORD  

32                                                By: Demz 

Algoritma & Pemrograman II

namabrg:string[20];   jmlbrg:byte;   hargabrg:real;   total:real;   end;   var   jual:array [1..10] of barang   i,j:integer;   tot1:real;  

ARRAY DALAM RECORD Elemen suatu array juga bisa berupa record. Sebagai contoh dapat dilihat di bawah ini: Type  barang= RECORD   nmbrg:string[20];   jmlbrg:array[1..3]of byte;   hrgbrg:real;   total:real;   jual:barang;   tbarang, i:integer;     C. TUGAS PENDAHULUAN 1. Buatlah penyelesaian dari setiap permasalahan pada percobaan. D. PERCOBAAN 1. Buatlah sebuah program dengan menggunakan tipe data record untuk menghitung besar energy potensial, dimana nilai m, g dan h diinput melalui keyboard. 2. Ubahlah program No.1 dengan menggunakan statement WITH. 3. Bandingkan kedua program di atas dan simpulkan. 4. Analisislah program yang menggunakan Array bertipe Record berikut ini: uses wincrt;  type      mahasiswa=record          nama :string;          kelas :string; 
33                                                By: Demz 

end;   var  

Algoritma & Pemrograman II

        nilai :integer;          ket:string;      end;    var     mhs:array [1..62] of mahasiswa;     data,i:integer;        begin       write ('banyak data ='); readln (data);       writeln;         for i:=1 to data do         begin            write ('nama ='); readln (mhs[i].nama);            write ('kelas='); readln (mhs[i].kelas);            write ('nilai='); readln (mhs[i].nilai);            writeln;              if mhs[i].nilai>65 then               mhs[i].ket:='lulus'                  else                      mhs[i].ket:='tdk lulus';         end;         writeln ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐');       writeln ('no  nama       kelas      nilai    ket');       writeln ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐');         for i:= 1 to data do         begin            writeln (i,'  ',mhs[i].nama,'       ',mhs[i].kelas,'      ',mhs[i].nilai,'    ',mhs[i].ket);       end;       writeln ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐');  end. 
 

5. Analisislah program yang memanfaatkan Array dalam Record di bawah ini: uses wincrt;  type      mhs=record 
34                                                By: Demz 

Algoritma & Pemrograman II

          nama,nim,agama,alamat:string;            jk:char;            hobby:array [1..10] of string;      end;    var     mahasiswa:mhs;     jum_hobi,i:integer;        begin       write ('Nama  ='); readln (mahasiswa.nama);       write ('NIM   ='); readln (mahasiswa.nim);       write ('JK    ='); readln (mahasiswa.JK);       write ('Agama ='); readln (mahasiswa.agama);       write ('Alamat='); readln (mahasiswa.alamat);       writeln;         write ('Berapa hobi anda ='); readln (jum_hobi);       for i:=1 to jum_hobi do         begin            write ('Hobby ke‐',i,'='); readln (mahasiswa.hobby[i]);       end;  end. 

35                                                By: Demz 

Algoritma & Pemrograman II

PRAKTIKUM 12 (3/3) RECORD A. TUJUAN PRAKTIKUM 1. Memahami record di dalam record 2. Memahami record bervariasi B. TEORI DASAR RECORD DI DALAM RECORD  Didalam sebuah record memungkinkan berisi record lain. Sebagai gambaran hal ini, perhatikan deklarasi berikut: RecTanggal = Record      Tanggal,      Bulan,      Tahun :Integer    End;  RecPegawai = Record      Nomor  : LongInt;      Nama  : String [35];      TglLahir  : RecTanggal;      Gaji  : LongInt    End; 
 

Tampak bahwa tipe record bernama RecPegawai berisi record yang lain (RecTanggal). Hal yang menarik yang perlu diperhatikan adalah cara mengakses field seperti Tanggal, Bulan dan Tahun. Notasi yang diperlukan adalah sebagai berikut. Nama_variabel.TglLahir.Tanggal  Nama_variabel.TglLahir.Bulan  Nama_variabel.TglLahir.Tahun 
 

RECORD BERVARIASI Record bervaiasi merupakan suatu record dengan field yang bisa berubah pada saat program berjalan. Hal yang perlu diperhatikan adalah bahwa

36                                                By: Demz 

Algoritma & Pemrograman II

beberapa field yang berada dalam record tidak pernah muncul dalam serempak, hanya akan ada satu field yang terpakai dalam satu saat. Record varian akan memberikan fasilitas untuk menentukan field yang diperlukan pada saat program berjalan (RUN-TIME), berdasarkan keperluannya. Bentuk umum Record Varian: TYPE   namarecord = RECORD   Nama_field_1 : jenis;   Nama_field_2 : jenis;   ……………………..   nama_field_n : jenis;   Case Tagfield:jenis Of   nama_tagfield : (Nama_field:jenis);   nama_tagfield : (Nama_field_1, Nama_field_2:jenis);   ……………………..   nama_tagfield : (Nama_field_n:jenis);   END;   C. TUGAS PENDAHULUAN 1. Carilah di internet sebuah contoh program yang menggunakan record variant dan record di dalam record. 2. Jelaskan dan analisislah kedua program tersebut. 3. Buatlah solusi dari setiap permasalahan pada percobaan. D. PERCOBAAN 1. Analisislah sebuah program yang menggunakan record di dalam record berikut ini: uses wincrt;  type      RecTanggal = Record                     tanggal,bulan,tahun:integer;                   end;        RecPegawai = Record                     Nomor      :Longint;                     Nama       :string[35];                     TglLahir   :RecTanggal;                     Gaji       :longint;                   end; 

37                                                By: Demz 

Algoritma & Pemrograman II

  var     DataPeg:RecPegawai;    begin  clrscr;         DataPeg.Nomor:=56789;         DataPeg.Nama :='Demz';         DataPeg.TglLahir.Tanggal:=12;         DataPeg.TglLahir.Bulan:=7;         DataPeg.TglLahir.Tahun:=1990;         DataPeg.Gaji:=750000;           writeln ('Nama Pegawai =',DataPeg.Nama);         writeln ('Tanggal Lahir=',DataPeg.TglLahir.Tanggal,'/',                                   DataPeg.TglLahir.Bulan,'/',                                   DataPeg.TglLahir.Tahun);  end. 
 

2. Ubahlah program di atas dengan menggunakan statemen WITH dan semua elemen seperti nomor, nama, ttl dst diinput melalui keyboard. Kemudian tampilkan kembali inputan tersebut. 3. Analisislah program yang menggunakan record bervariasi di bawah ini: {Contoh Program Record Varian Sederhana,by:Demz}  uses wincrt;  type      statusmahasiswa=(single,menikah);      data=record                        nama:string[25];                        nim :string[12];                        case status:statusmahasiswa of                             single:();                             menikah:();                        end;    var     mahasiswa:array[1..20] of data;     jawab:char;     n,i:integer;    begin       write ('jumlah data='); readln (n);       for i:=1 to n do 

38                                                By: Demz 

Algoritma & Pemrograman II

       begin            with mahasiswa[i] do              begin                 writeln;                 write ('Nama   ='); readln (nama);                 write ('NIM    ='); readln (NIM);                 write ('Status (Single (S) / Menikah (M)) ='); readln  (jawab);                   if upcase (jawab)='S' then                   begin                      status :=single;                 end;                   if upcase (jawab)='M' then                 begin                      status:=menikah;                 end;            end;       end;         writeln;       WRITELN ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐');       writeln ('Nama          Nim         Status');       writeln ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐');       for i:=1 to n do       begin            with mahasiswa[i] do            begin                 write (nama,'     ',nim);                 case status of                      single :writeln ('        S');                      menikah:writeln ('        M');                 end;            end;       end;       WRITELN ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐');  end. 
 

39                                                By: Demz 

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->