of 40/40
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

Modul Praktikum Algoritma & Pemrograman II

  • View
    361

  • Download
    19

Embed Size (px)

Text of Modul Praktikum Algoritma & Pemrograman II

  • 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

    1 By:Demz

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

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

  • Algoritma & Pemrograman II

    2 By:Demz

    C. TUGAS PENDAHULUAN 1. Analisislah kedua contoh program di bawah ini tentang syntax dan

    pendeklarasian prosedur serta tulislah output programnya!.

    a. Contoh 1:

    vara,b,c:integer;proceduremaksimum;varmax:integer;beginifa>bthenmax:=aelsemax:=b;ifc>maxthenmax:=c;writeln('Jadinilaimaksimumnyaadalah=',max);end;beginwrite('MasukanNilaia=');readln(a);write('MasukanNilaib=');readln(b);write('MasukanNilaic=');readln(c);maksimum;end.

    b. Contoh 2:

    varp,l,t:real;procedurebalok;varv:real;beginv:=p*l*t;writeln('Volumenyaadalah=',v:2:0);end;beginwrite('MasukanNilaipanjang=');readln(p);write('MasukanNilailebar=');readln(l);write('MasukanNilaitinggi=');readln(t);balok;end.

    2. Buatlah program untuk setiap permasalahan dalam percobaan!.

  • Algoritma & Pemrograman II

    3 By:Demz

    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.

  • Algoritma & Pemrograman II

    4 By:Demz

    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:

  • Algoritma & Pemrograman II

    5 By:Demz

    2. Contoh 2:

    C. TUGAS PENDAHULUAN 1. Buatlah sebuah contoh program sederhana yang menggunakan

    variabel local.

    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.

  • Algoritma & Pemrograman II

    6 By:Demz

    D. PERCOBAAN 1. Analisislah program di bawah ini, apakah variabel yang digunakan

    merupakan variabel local atau variabel global.

    ProcedureTanya_hitung;VarX,Y:real;Begin

    Write(NilaiX?);Readln(X);Y:=X*X;Writeln(NilaiY=,Y:6:2);

    End;Begin

    Tanya_Hitung;End.

    2. Jika program No.1 diubah menjadi seperti program di bawah ini,

    bagaimana hasilnya dan jelaskan!.

    ProcedureTanya_hitung;VarX,Y:real;Begin

    Write(NilaiX?);Readln(X);Y:=X*X;

    End;Begin

    Tanya_Hitung;Writeln(NilaiY=,Y:6:2);

    End.

    3. Program di bawah ini tidak dapat di compile karena terdapat

    kesalahan. Perbaikilah program berikut hingga dapat dijalankan dan

    jelaskan.

    ProcedureCetakNama;Begin Writeln(NamaKu);End;VarNamaKu:string[20];Begin NamaKu:=Pascal; CetakNama;End.

  • Algoritma & Pemrograman II

    7 By:Demz

    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:

  • Algoritma & Pemrograman II

    8 By:Demz

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

    variabel tersebut.

    Contoh 2:

    Pada contoh di atas, variabel A dan B bersifat global, sehingga dapat

    digunakan untuk semua modul.

  • Algoritma & Pemrograman II

    9 By:Demz

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

  • Algoritma & Pemrograman II

    10 By:Demz

    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.

    Procedurepro1(varI:integer);Forward;Procedurepro2(varI:integer);Begin

    Writeln(prosedurpro,I);End;Procedurepro1;Begin

    Writeln(prosedurpro,I);End;VarI:integer;Begin

    I:=1;pro1(I);I:=2;pro2(I);

    End.

  • Algoritma & Pemrograman II

    11 By:Demz

    D. PERCOBAAN 1. Jelaskan program di bawah ini dan analisalah output programnya.

    ProcedureHitung(A,B:integer);VarC:integer;Begin

    C:=A+B;Writeln(NilaiC=,C)

    End;VarX,Y:integer;Begin

    Write(NilaiX?);Readln(X);Write(NilaiY?);Readln(Y);Hitung(X,Y);

    End.

    2. Jelaskan program berikut ini dan analisalah parameternya.

    ProcedureHitung(VarA,B,C:integer);Begin

    C:=A+B;End;VarX,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.

    programHitung_Faktorial;useswincrt;prosedurefaktorial(varfak,hasil:integer);vari:integer;beginhasil:=1;fori:=2tofakdohasil:=hasil*i;end.

  • Algoritma & Pemrograman II

    12 By:Demz

    varn,f:integer;beginwrite('Berapafaktorialyangakandihitung?=');readln(n);writeln;writeln(n,'faktorial='.f);end.

  • Algoritma & Pemrograman II

    13 By:Demz

    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.

  • Algoritma & Pemrograman II

    14 By:Demz

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

    useswincrt;functiontampil:string;begintampil:='BelajarPascal';end;beginwriteln(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!.

  • Algoritma & Pemrograman II

    15 By:Demz

    useswincrt;typehuruf=string[18];functiongaris:huruf;begingaris:='';end;beginwriteln(garis);writeln('TEKNIKINFORMATIKA');writeln(garis);end.

    5. Bandingkan program No.4 dengan program yang telah diefisiensikan

    dan simpulkan.

  • Algoritma & Pemrograman II

    16 By:Demz

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

  • Algoritma & Pemrograman II

    17 By:Demz

    2. Apa keluaran dari program di bawah ini?, dan analisislah fungsi yang

    digunakan!.

    useswincrt;FunctionHitung(VarA,B:integer):integer;BeginHitung:=A+B;End;VarX,Y:integer;BeginWrite('NilaiX?');Readln(X);Write('NilaiY?');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.

  • Algoritma & Pemrograman II

    18 By:Demz

    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?

    useswincrt;procedurerekursi;beginwrite('INFORMATIKA2010');rekursi;end;beginrekursi;end.

  • Algoritma & Pemrograman II

    19 By:Demz

    2. Analisislah output dari program yang berikut ini, mengapa demikian?

    useswincrt;varakhir:word;procedurerekursi;beginifakhir

  • Algoritma & Pemrograman II

    20 By:Demz

    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

    1x2x3n (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 untuk B=0

    A*B=A+A*(B-1) untuk B>1

  • Algoritma & Pemrograman II

    21 By:Demz

    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.

    procedurefaktorial(n:byte;varhasil:longint);beginifn

  • Algoritma & Pemrograman II

    22 By:Demz

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

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

    komponenya mempunyai nilai dengan tipe data tersebut.

    Contoh:

    Var

    Untai:array[1..50]ofInteger;

    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:UseswinCrt;VarBilangan:array[1..50]ofInteger;BeginBilangan[1]:=3;Bilangan[2]:=29;Bilangan[3]:=30;Bilangan[4]:=31;Bilangan[5]:=23;Writeln('nilaivaribelbilanganke3=',Bilangan[3]);End.

  • Algoritma & Pemrograman II

    23 By:Demz

    Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh dibawah ini: ProgramContoh_Deklarasi_Array_Beragam;UseswinCrt;VarNPM:array[1..20]ofstring[10];Nama:array[1..20]ofstring[25];Nilai:array[1..20]ofreal;Umur:array[1..20]ofbyte;banyak,i:integer;BeginClrScr;Write('Isiberapadataarrayyangdiperlukan:');Readln(banyak);Fori:=1tobanyakDoBeginWrite('NPM=');Readln(NPM[i]);Write('Nama=');readln(Nama[i]);Write('Nilai=');readln(Nilai[i]);Write('Umur=');readln(Umur[i]);End;{cetakvaribelarray}Writeln('NPMNAMANILAIUMUR');Fori:=1tobanyakDoBeginWriteln(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]ofAngka;

    Begin

    .

    .

    End.

    Deklarasi tipe indeks subrange integer Indeks pada array dapat tipe skalar

    atau subrange, tetapi tidak bisa real.

  • Algoritma & Pemrograman II

    24 By:Demz

    Contoh:

    Var

    Nilai:Array[1..10]ofInteger;

    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]ofInteger;

    atau:

    Type

    Skala=1..10;

    Y=Array[skala]ofInteger;

    Var

    Nilai:Y;

    C. TUGAS PENDAHULUAN 1. Buatlah penyelesaian dari setiap permasalahan pada percobaan.

    D. PERCOBAAN 1. Analisislah program berikut dan bagaimana outputnya?

    ProgramContoh;Useswincrt;Varnilai:array[1..5]ofInteger;Beginnilai[1]:=100;nilai[2]:=90;nilai[3]:=80;nilai[4]:=61;nilai[5]:=73;Writeln('Nilaike4adalah=',nilai[4]);Readln;End.

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

    keyboard.

  • Algoritma & Pemrograman II

    25 By:Demz

    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.

    useswincrt;vari:integer;nama:array[1..10]ofstring;nilai:array[110]ofinteger;beginfori=1to10do;beginwrite('Namake',i,'=');readln(nama[1]);write('Nilaike',i,'=');readln(nilai[i]);writeln;end;writeln('');writeln('NamaNilai');writeln('');fori:=1to10dobeginwriteln(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.

  • Algoritma & Pemrograman II

    26 By:Demz

    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

    .

  • Algoritma & Pemrograman II

    27 By:Demz

    D. PERCOBAAN 1. Analisislah output dari program berikut ini:

    UseswinCrt;Varmatrix:Array[1..3,1..2]ofInteger;i,j:integer;Beginmatrix[1,1]:=1;matrix[1,2]:=2;matrix[2,1]:=3;matrix[2,2]:=4;matrix[3,1]:=5;matrix[3,2]:=6;fori:=1to3DoBeginforJ:=1to2DobeginWrite(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:

    ProgramPenjumlahan_Matrik;UseswinCrt;VarMatrik1,Matrik2,Hasil:Array[1..3,1..2]ofInteger;i,j:Integer;BeginClrScr;{inputmatrikkesatu}Writeln('inputelemenmatrikpertama');Fori:=1to3DoBeginForj:=1to2DoBeginWrite('Elemenbaris',i,'Kolom',j,'=');

  • Algoritma & Pemrograman II

    28 By:Demz

    Readln(matrik1[i,j]);End;End;writeln;{inputmatrikkedua}Writeln('inputelemenmatrikkedua');Fori:=1to3DoBeginForj:=1to2DoBeginWrite('Elemenbaris',i,'kolom',j,'=');Readln(matrik2[i,j]);End;End;writeln;{prosespenjumlahantiapelemen}Fori:=1to3DoBeginForj:=1to2DoBeginHasil[i,j]:=Matrik1[i,j]+Matrik2[i,j];End;End;{prosescetakhasil}writeln('HASILPENJUMLAHAN:');Fori:=1to3DoBeginForj:=1to2DoBeginWrite(Hasil[i,j]:6);End;Writeln;End;Readln;End.

  • Algoritma & Pemrograman II

    29 By:Demz

    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:

    TYPEidentifier=RECORDNama_field_1:jenis;Nama_field_2:jenis;....nama_field_n:jenis;END;1. Contoh 1:

    VARnilai:RECORDNilai_1:integer;Nilai_2:integer;

    END;

    2. Contoh 2:

    TYPEdate=RECORDTanggal:1..31;Bulan:112;Tahun:1900..2000;

    END;VARevent1,event2:ARRAY[1..10]OFdate;

    3. Contoh 3:

    TYPEaccount=RECORDcust_no:integer;cust_type:char;cust_balance:real;

  • Algoritma & Pemrograman II

    30 By:Demz

    END;VARcustomer:account;

    MEMPROSES VARIABEL BERJENIS RECORD

    Perhatikan deklarasi variabel berikut:

    TYPEnilai:RECORDNilai1:real;Nilai2:real;END;VARx,y:nilai;Untuk memproses variabel x dan / atau y dilakukan dengan cara

    menyebutkan field designatornya, yang terdiri dari atas:

    Nama_record.nama_fieldPada deklarasi diatas yang dimaksud dengan field designator-nya adalah :

    x.nilai1x.nilai2y.nilai1y.nilai2Jadi 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.

    useswincrt;typehasil:recordsisi:integer;luas:integer;

  • Algoritma & Pemrograman II

    31 By:Demz

    keliling:integer;varbujursangkar:hasil;beginwrite('Masukkanpanjangsisi=');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.

  • Algoritma & Pemrograman II

    32 By:Demz

    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:

    WITHnama_recordDOstatement

    Perhatikan deklarasi dibawah ini :

    TYPEx=RECORDNo:integer;Kode:char;Juml:integer;Harga:real;

    END;VARp,q:x;Untuk membaca variabel p dan q di atas dengan memanfaatkan statement

    WITH bentuknya menjadi:

    WITHp,qDOread(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:

    typebarang=RECORD

  • Algoritma & Pemrograman II

    33 By:Demz

    namabrg:string[20];jmlbrg:byte;hargabrg:real;total:real;

    end;var

    jual:array[1..10]ofbarangi,j:integer;tot1:real;

    ARRAY DALAM RECORD

    Elemen suatu array juga bisa berupa record. Sebagai contoh dapat dilihat

    di bawah ini:

    Typebarang=RECORDnmbrg:string[20];jmlbrg:array[1..3]ofbyte;hrgbrg:real;total:real;

    end;var

    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:

    useswincrt;typemahasiswa=recordnama:string;kelas:string;

  • Algoritma & Pemrograman II

    34 By:Demz

    nilai:integer;ket:string;end;varmhs:array[1..62]ofmahasiswa;data,i:integer;beginwrite('banyakdata=');readln(data);writeln;fori:=1todatadobeginwrite('nama=');readln(mhs[i].nama);write('kelas=');readln(mhs[i].kelas);write('nilai=');readln(mhs[i].nilai);writeln;ifmhs[i].nilai>65thenmhs[i].ket:='lulus'elsemhs[i].ket:='tdklulus';end;writeln('');writeln('nonamakelasnilaiket');writeln('');fori:=1todatadobeginwriteln(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:

    useswincrt;typemhs=record

  • Algoritma & Pemrograman II

    35 By:Demz

    nama,nim,agama,alamat:string;jk:char;hobby:array[1..10]ofstring;end;varmahasiswa:mhs;jum_hobi,i:integer;beginwrite('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('Berapahobianda=');readln(jum_hobi);fori:=1tojum_hobidobeginwrite('Hobbyke',i,'=');readln(mahasiswa.hobby[i]);end;end.

  • Algoritma & Pemrograman II

    36 By:Demz

    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.TanggalNama_variabel.TglLahir.BulanNama_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

  • Algoritma & Pemrograman II

    37 By:Demz

    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:

    TYPEnamarecord=RECORD

    Nama_field_1:jenis;Nama_field_2:jenis;..nama_field_n:jenis;CaseTagfield:jenisOfnama_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:

    useswincrt;typeRecTanggal=Recordtanggal,bulan,tahun:integer;end;RecPegawai=RecordNomor:Longint;Nama:string[35];TglLahir:RecTanggal;Gaji:longint;end;

  • Algoritma & Pemrograman II

    38 By:Demz

    varDataPeg:RecPegawai;beginclrscr;DataPeg.Nomor:=56789;DataPeg.Nama:='Demz';DataPeg.TglLahir.Tanggal:=12;DataPeg.TglLahir.Bulan:=7;DataPeg.TglLahir.Tahun:=1990;DataPeg.Gaji:=750000;writeln('NamaPegawai=',DataPeg.Nama);writeln('TanggalLahir=',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:

    {ContohProgramRecordVarianSederhana,by:Demz}useswincrt;typestatusmahasiswa=(single,menikah);data=recordnama:string[25];nim:string[12];casestatus:statusmahasiswaofsingle:();menikah:();end;varmahasiswa:array[1..20]ofdata;jawab:char;n,i:integer;beginwrite('jumlahdata=');readln(n);fori:=1tondo

  • Algoritma & Pemrograman II

    39 By:Demz

    beginwithmahasiswa[i]dobeginwriteln;write('Nama=');readln(nama);write('NIM=');readln(NIM);write('Status(Single(S)/Menikah(M))=');readln(jawab);ifupcase(jawab)='S'thenbeginstatus:=single;end;ifupcase(jawab)='M'thenbeginstatus:=menikah;end;end;end;writeln;WRITELN('');writeln('NamaNimStatus');writeln('');fori:=1tondobeginwithmahasiswa[i]dobeginwrite(nama,'',nim);casestatusofsingle:writeln('S');menikah:writeln('M');end;end;end;WRITELN('');end.