Top Banner

of 35

Modul Beta2

Jul 10, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 5/10/2018 Modul Beta2

    1/35

    BAB IPENGENALAN PASCAL

    1.1 SE.JARAH SINGKAT LAHIRNYA BAHASA PASCALNama 'PASCAL' diambil dari nama seorang matematikawan Perancis yang juga merupakanpioneer di dalam sejarah perkembangan komputer. Pada tahun 1641, diusianya yang ke-18,Blaise Pascal telah membangun sebuah mesin aritmatika pertama, yang kemudiandiperdebatkan sebagai komputer pertama.

    Mula-mula komputer diprogram dengan menggunakan bahasa mesin dan assembly. Bahasapemrograman jenis ini memiliki kesulitan yang tinggi sehingga susah untuk dimengerti dan dimodifikasi. Maka dikembangkanlah bahasa pemrograman tingkat tinggi yang didesainmenyerupai bahasamanusia(bahasa Inggris). Salahsatunya adalah bahasa Pascal.

    Bahasa Pascalsendiri selesai dikembangkan pada tahun 1970 oleh seorang professor bernamaNiklaus Wirth di politeknik Zurich, Swiss. Tujuannya adalah untuk memudahkan paramahasiswanya dalam mempelajari pemrograman secara sistematis.

    1.2 STRUKTUR PROGRAM BAHASA PASCALBerikut ini kerangka umum program yang terdapat di dalam bahasa pascal.

    usesprogram

    begin

    pno.

    biasanya samadengan nama program, contoh:1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ,1 Program ujicoba; 11 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _

    berisi daftar unit yang akan digunakan di dalam program. Untuk membatasi unitsatu dengan yang lainnya, gunakan tanda koma (,). Contoh:1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ,1 Uses crt,dos; 11 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ~

    berisi macam-macam deklarasi yang dibutuhkan oleh program, yang meliputihal-hal berikut:

    Deklarasi tipe data Deklarasi konstanta Deklarasi variabel Deklarasi prosedur Deklarasi fungsi Deklarasi label

  • 5/10/2018 Modul Beta2

    2/35

    merupakan perintah-perintah yang akan dituliskan. Statemen-statemenini harus berada di dalam blok begin-end. Berikut ini contoh penulisan statemen-statemen didalam program.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 11 begin

    clrscr;writeln('Isman Santoso');end.

    1.3. PR05EDUR wri teln DAN readlndalam pembuatan program tentunya akan melakukan banyak penulisan(output) danpembacaan(input) data. Dalam bahasa Pascal,prosedur yang digunakan untuk melakukanpenulisan adalah Wri tedanWri teln. Perbedaan dari kedua prosedur ini hanyalah terdapatpada posisi kursornya. Pada prosedur Wri te, kursor akan berada di belakang teks yangdituliskan. Sedangkan pada prosedur wri teln, setelah menuliskan teks, maka posisi kursorakan dipindahkan ke baris berikutnya. Selanjutnya untuk proses pembacaan, bahasa Pascalmemiliki prosedur Read, Readln, dan Readkey. Namun prosedur yang banyak digunakanadalah Readln

    1.4. KOMENTAR PROGRAMAda dua macam cara untuk membuat komentar program pada bahasa Pascal:1. Menggunakan tanda (* . . . * )

    Digunakan untuk menuliskan komentar yang banyaknya lebih dari satu baris.2. Menggunakan tanda { ... }

    Fungsinya sama seperti penggunaan komentar pada nomor 1.3. Menggunakan tanda //

    Digunakan untuk menuliskan komentar untuk satu baris.

    1.5. VARIABLEAdalah suatu pengenal yang didefinisikan oleh programmer untuk menyimpan nilai atau datatertentu yang dibutuhkan dalam program pada saat program sedang berjalan(run time).Bentuk umum pendeklarasian variabel:r-----------------------------------------------------------_

    1: Var1 NamaVariabel : tipe data;I ~ - 1r-----------------------------------------------------------.1 Var 1X : integer;

    Nama : string [25];1_

    1.6. KON5TANTAAdalah tetapan yang nilainya tidak dapat diubah selama program berjalan. Bentuk umumkonstanta:r-----------------------------------------------------------.: const 1

    1NamaKonstantal : nilaiKonstantal;1 NamaKonstanta2: nilaiKonstanta2; 1 J

  • 5/10/2018 Modul Beta2

    3/35

    1.7. TIPE DATA1. Bilangan bulat

    Berikut ini tipe yang termasuk ke dalam tipe bilangan bulat di dalam bahasa Pascal:Tipe data Rentang(jangkauan) nilaiShortint -128 sampai 127Integer -32768 sampai 32767Longint -2147483648 sampai 2147383647Byte o sampai 255Word o sampai 65535

    2. Bilangan RiilAdalah bilangan yang mengandung angka di belakang koma. Tipe data yang termasuk kedalam tipe bilangan riil:Tipe data Rentang(jangkauan) nilaiReal 2.9 x 10-39 sampai 1.7 x 1038Single 1.5 x 10-45 sampai 3.4 x 1038Double 5.0 x 10-324 sampai 1.7x 10308Extended 3.4 x 10-4932 sampai 1.1 x 104932Comp -9.2 x 1018 sampai 9.2 x 1018

    3. KarakterTipe ini direpresentasikan dengan menggunakan tipe char. Berguna untukmerepresentasikan nilai-nilai karakter seperti 'I','S','M','A','N'.

    i. Binary operator4. String

    Tipe ini direpresentasikan dengan menggunakan tipe string. String merupakan kumpulandari karakter yang terangkai menjadi satu kata ataupun kalimat, misalnya 'ILKOMJAYA'.

    5. Tipe LogikaTipe yang hanya memiliki dua buah nilai yaitu true dan false. Pascalmenyediakan tipekhusus untuk mendefenisikan data-data logic tersebut, yaitu tipe Boolean.

    TUGAS:1. Buat program untukalamat, nomor hp,

    kemudian programoperator) .

    2. Cari fungsi-fungsi aritmatika yang ada pada Pascal!

    menampilkan data pribadi seperti: nama, nim,dan hobi! (data-data di input terlebih dahulu,menampilkan kembali apa yang diinputkan oleh

  • 5/10/2018 Modul Beta2

    4/35

    BAB IIOPERATOR

    2.1 TEORI

    Tanda operasi (operator) dalam Pascaldikelompokkan ke dalam 9 kategori, yaitu: assignment,binary, unary, bitwise, relational, logical, address, set, dan string operator.

    2.1.1 ASSIGNMENT OPERATOR

    Assignment operator menggunakan simbol titik dua diikuti oleh tanda sama dengan := .Contoh: A:= B;

    Operator ini digunakan untuk mengoperasikan dua buah operand. Operand dapatberbentuk konstanta / variabel. Operator ini digunakan untuk operasi aritmatika yangberhubungan dengan nilai tipe data integer danflooting point.

    Operator Operasi* Perkalian

    DIV Pembagian bulat/ pembagian real

    MOD Modulus+ Pertambahan- Pengurangan

    2.1.2 UNARY OPERATOR

    Operator ini hanya menggunakan sebuah operand saja. Operand dapat berbentukkonstanta atau variabel. Unary operator dapat berupa unary minus atau plus.

    2.1.3 BITWSE OPERATOR

    Operator ini digunakan untuk operasi bit per bit pada integer. Operasi yangdipergunakan antara lain: NOT,AND, OR,XOR,Shl, dan Shr.

    Operator OperasiNOT bitwise negationAND bitwise andOR bitwise orXOR bitwise xorShl Shift LeftShr Shift Right

  • 5/10/2018 Modul Beta2

    5/35

    2.1.4 RELATIONAL OPERATOR

    Operator ini digunakan untuk membandingkan hubungan antara dua buah operand danmenghasilkan tipe boolean, yaitu true atau false.

    Operator Operasi= sama dengan tidak samadengan> lebih besar dari>= lebih besar samadengan dari< lebih kecil dari

  • 5/10/2018 Modul Beta2

    6/35

    Writeln(23 / 5);Writeln(25 div 3);Writeln(25 mod 3);

    End.Program 2.1 Penggunaan blnary operator.

    Program 2.2 Penggunaan bltwlse operator.

    Program 2.3 Penggunaan re1atlona1 operator.

    BeginWriteln(not True);Writeln(True and False);Writeln(False or True);Writeln(True xor False);

    End.

    BeginWriteln(not 3);Writeln(not 0);Writeln(not -3);Writeln(l and 3);Writeln(3 or 1);Writeln(l xor 3);Writeln(6 Shl 4);Writeln(160 Shr 6);

    End.

    Vara, b

    Begina - 5;b 2;Writeln(a b);

    integer;

    Writeln(a 5);Writeln(a b);Writeln(a > b);Writeln(a < b);

    End.

  • 5/10/2018 Modul Beta2

    7/35

    Program 2.4 Penggunaan logical operator.

    TypeiniString = string[20];pointerString = AiniString;

    Varnama iniString;letakNama : pointerString;

    BeginNama .- 'Luminous Lunar';letakNama := @Nama;Writeln('Nama : " nama)Writeln('Letak nama: letakNamaA)

    End.Program 2.5 Penggunaan address operator.

    Varnamal, nama2, nama3, nama

    Beginstring[20]

    namalnama2nama3

    'Luminous ';'Moon ';'Lunar' ;

    nama := namal + nama2 + nama3;Writeln('Nama ',nama);

    End.Program 2.6 Penggunaan strlng operator.

  • 5/10/2018 Modul Beta2

    8/35

    BAB IIISTATEMEN IFDANCASE OFBlok pemilihan merupakan blok control yang digunakan untuk memilih statemen atau aksi-aksi yangakan dilakukan, di mana pemilihan tersebut didasarkan asasnilai dari kondisi-kondisi tertentu. Suatuaksi akan dikerjakan atau dieksekusi oleh program apabila kondisi yang didefinisikan untuk aksitersebut bernilai benar(true), sebaliknya, bila kondisi tidak terpenuhi atau salah(false) maka programakan melakukan aksi lain(jika ada) atau langsung keluar dari blok pemilihan.

    3.1. STATEMEN IFStatemen if akan diikuti oleh ekspresi(sebagai kondisi yang akan diperiksa) dan selaluberpasangan dengan kata kunci then. Statemen if dikelompok menjadi tiga bagian yaitustatemen if untuk satu kasus,dua kasus dan tiga kasus atau lebih.

    1. Satu KasusStatemen if dengan satu kasus merupakan bentuk yang paling sederhana karenahanya melibatkan satu kondisi yang diperiksa. Apabila kondisi yang diperiksabernilai benar, maka program akan mengeksekusi bagian yang berada di dalamblok, jika salah maka program akan mengabaikannya dan akan melanjutkan kebagian statemen berikutnya.Bentuk umumnya adalah:

    {satu statemen}If (ekspresi) then

    Statemen;{lebih dari satu statemen}If (ekspresi) then

    Statemenl;Statemen2;

    End;

    Latihan 3.1Program ifsatukasusl;Uses

    Crt;Var x: integerbegin

    clrscr;write('Masukkan sebuah bilangan bulat: ');readln(x);if(x>10) then

    writeln(x,'>10') ;readln;

    end.

  • 5/10/2018 Modul Beta2

    9/35

    Latihan 3.2ifsatukasus2;

    uses crt;var

    bil : integer;huruf char;clrscr;write('masukkan sebuah bilangan bulat: ');readln(bil);wri te ('masukkan sebuah huruf: '); readln (huruf) ;writeln;if(bilangan>l) and (bilangan

  • 5/10/2018 Modul Beta2

    10/35

    Latihan 3.3Program ifduakasusl;Uses crt;Var Bil : integer;Begin

    Clrscr;Write('Masukkan bil. Bulat: ');readln(bil);If (bil mod 2= 0) then

    Writeln(bil,' adalah bilangan genap')Else

    Writeln(bil,' adalah bilangan ganjil');Readln;

    End.

    Latihan 3.4

    crt;

    : integer;Begin

    Clrscr;Wri te ('Masukkan bilangan bulat: '); readln (bil);If(bilangan= 0) thenBegin

    Writeln('Anda tidak boleh memasukkan bilangan 0');Readln;Exit;

    End;If (bilangan>O) then

    Writeln(bil,' adalah bilangan POSITIF')Else

    Writeln(bil,' adalah bilangan NEGATIF');Readln;

    End.

    3. Tiga Kasusatau lebihBentuk ini merupakan bentuk pemilihan yang sedikit kompleks dibandingkan duabentuk di atas. Pasalnya, bentuk ini memiliki tiga buah(atau lebih) kasus sehinggaakan terdapat statemen if bersarang(nested-if).Berikut ini bentuk umum pendefenisian statemen if yang memiliki tiga kasus ataulebih.

  • 5/10/2018 Modul Beta2

    11/35

    If (kondisil) thenBegin

    Statemen jika kondisil benar;End

    Else if (kondisi2) thenBegin

    Statemen jika kondisi2 benar;End

    ElseBegin

    Statemen alternatif;End;

    Latihan 3.5Program iftigakasusl;

    Bil integer;Begin

    Clrscr;Write('masukkan sebuah bilangan bulat: '); readln(bil);If(bil=80) then

    BeginNI:='A' ;

    End

  • 5/10/2018 Modul Beta2

    12/35

    akhirindeks

    " NA: 0: 2) ;,,NI) ;

    If(NA>=70) thenBegin

    NI :=' B' ;End

    If(NA>=50) thenBegin

    NI:='C' ;End

    If(NA>=30) thenBegin

    NI :=' D' ;End

    ElseBegin

    NI :=' E' ;End;

    Readln;End.

    3.2. STATEMEN CASEApabila kondisi yang didefinisikan di dalam statemen if semakin banyak maka hal tersebuttentu akan menjadi hal yang cukup kompleks. Oleh karena itu, bahasa Pascal menyediakanalternatif lain untuk melakukan pemilihan yang yang didasarkan pada nilai-nilai konstantatertentu, yaitu dengan menggunakan statemen case.

    Bentuk umum statemen case:

    Nilai konstan2statement1;statement2;

    ElseStatemen default;

    Latihan 3.7

    Clrscr;Write('Masukkan nomor hari (1..7)Case (nomorhari) of

    1: write('Hari Minggu');');readln(nomorhari);

    statemencase1;

    Var nomorhari: integer;Begin

    2 : write ('Hari Senin') ;3: write ('Hari Selasa' );4 : write ('Hari Rabu') ;5: write ('Hari Kamis') ;

  • 5/10/2018 Modul Beta2

    13/35

    6: write('Hari Jumat');7: write('Hari Sabtu');Else

    BeginWrite('tidak ada pilihan yang dimasukkan');

    End;End;Readln;

    TUGAS

    1. Buat pseudocode dan program yang dapat menghitung luas dan kelilingdaria. Persegi {jika di pilih I};b. Persegi Panjang {jika dipili 2};c. Lingkaran {jika dipilih 3}d. Segitiga {jika dipilih 4};e. Keluar {jika dipilih 5};

    2. Buat pseudocode dan program untuk menghitung akar-akar persamaankuadrat, dengan inputan a,b, dan c! (Semua kondisi harus ada!);

    3. Buat pseudocode dan program untuk menampilkan nama, status pegawaidan gaji seorang pegawai jika penggajian berdasarkan status:1=> pegawai tetap, gaji pokok= Rp 500000/bulan, tunjangan=Rp

    150000/bulan2=> pegawai honor, gaji pokok= Rp 15000/bulan, tunjangan=Rp40000/bulan3=> pegawai borongan, gaji pokok= Rp 80000/bulan, tunjangan=Rp

    6000/bulan4. Buat program konversi suhu udara dari:

    a. Celcius ke Fahrenheitb. Celcius ke reamurc. Celcius ke kelvin

  • 5/10/2018 Modul Beta2

    14/35

    BABIVPERULANGANBlok pengulangan merupakan suatu blok program yang memiliki mekanisme untuk melakukanpengeksekusian statemen secara berulang. Hal ini tentu akan membuat program yang ditulismenjadi lebih efisien.

    4.1.STATEMEN FORKonstruksi pengulangan for pada umumnya digunakan untuk melakukan pengulangan yangbanyaknya sudah diketahui secara pasti. Bentuk umum dari statemen for:

    variable indeks:=batas awal to batas akhir doStatemen yang akan diulang;

    Latihan 4.1statemenforl;

    integer;Begin

    Clrscr;For i:=O to 4 do

    Writeln('ILMU KOMPUTER USU');

    Latihan 4.2statementfor2;

    crt;

    I,N,jumlah integer;Begin

    Clrscr;Writeln( 'masukkan sebuah bilangan bulat: ');readln(N);Jumlah:=O;For i:=l to N do

    Jumlah:=jumlah+l;Writeln('Jumlah dari 1 sampai ',N,'= ',jumlah);Readln;

    End.

    Latihan 4.3statemenfor3;

    crt;

    i: integer;

    clrscr;for i:=5 downto 1 do beginwriteln(i) ;

    end;readln;

    end.

  • 5/10/2018 Modul Beta2

    15/35

    4.2. STATEMENT WHILEBerbeda dengan bentuk pengulangan for, pada konstruksi pengulangan while ini terdapatsuatu kondisi yang harus diperiksa terlebih dahulu. Apabila kondisi bernilai true, makastatemen di dalam blok while akan dikerjakan, jika false maka program tidak akan masuk kepengulangan while.Bentuk umum Statement while{satu statemen}While (kondisi) do

    Statemen;{>=dua statemen}While (kondisi) do

    BeginStatemen;

    Latihan 4.4statementwhilel;

    crt;i: integer;

    beginclrscr;i:=l;while (i

  • 5/10/2018 Modul Beta2

    16/35

    4.3.STATEMEN REPEAT ... UNTILTujuan

    Setelah mengikuti praktikum ini, praktikan diharapkan mampu mencari solusi untuk kasusperulangan repeat ... until sederhana dan memrogramnya ke dalam bahasa Pascal.

    TeoriRepeat

    { blok pernyataan }Until { ekspresi logika

    Struktur penggunaan perulangan Repeat-Until.

    Pernyataan Repeat ... Until digunakan untuk mengulang (repeat) suatu pernyataan atau blokpernyataan terus-menerus sampai (until) kondisi ungkapannya tidak terpenuhi (false).

    Vari integer;

    Begini := 0;Repeat

    i := i + 1;Writeln(i) ;

    Until i = 5;End.Program 6.1 Penggunaan perulangan Repeat-Until.

    TUGAS1. Buat pseudocode dan program untuk menampilkan bilangan genap dan

    ganjil mulai dari 1 sampai dengan n. n adalah batasan yang diinputkanoperator.

    2. Buat pseudocode dan program untuk menghitung N!.3. Berdasarkan soal nomor 2, buat program untuk menghitung:

    a. Kombinasi nCrb. Permutasi nPr

  • 5/10/2018 Modul Beta2

    17/35

    BABVPELONCATAN

    Statemen peloncatan merupakan statemen yang digunakan untuk memaksa program agar meloncatatau menuju statemen-statemen tertentu yang kita inginkan. Oalam bahasa pascal terdapat sebuahstatemen yang sering digunakan untuk melakukan hal tersebut yaitu statemen goto dan empat buahprosedur yaitu break, continue, exit dan halt.

    5. 1.LABEL DAN STATEMEN GOTOUntuk menggunakan statemen goto, sebelumnya kita harus mendefinisikan sebuah labeldengan menggunakan kata kunci label. Oisini label akan berperan sebagai baris yang akandi tuju. Oengan kata lain, statemen goto akan memindahkan program secara langsung kelokasi yang ditandai oleh label yang telah didefinisikan.

    Latihan 5.1

    Destination;Begin

    Clrscr;Write('statemen pertama');Goto Destination;Write('Statemen kedua');Write('statemen ketiga');Destination: writeln('ini adalah statemen yang akan dituju');Readln;

    End.{apa yang terjadi???}

    5.2.PROSEDUR BREAKProsedur break digunakan untuk meloncat dari proses pengulangan. Artinya, prosedurbreak akan memaksa program untuk menghentikan pengulangan dan akan langsungmenuju ke statemen selanjutnya yang terdapat di bawah blok pengulangan(jika ada).

    Latihan 5.2prosedurbreak;

    I:integer;Begin

    Clrscr;Writeln('ini adalah statemen sebelum blok pengulangan');Writeln;For i=l to 100 do begin

    If(i>3) then break;Writeln('statemen ke-',i);

    End;Writeln;Writeln('apa yang terjadi??');Readln;End.

  • 5/10/2018 Modul Beta2

    18/35

    5.3. PROSEDUR CONTINUEProsedur continue merupakan kebalikan dari prosedur break, yaitu berguna untukmelanjutkan pengulangan dengan cara meloncat ke bagian awal pengulangan. Padaumumnya prosedur continue digunakan di dalam kasus di mana kondisi pengulangannyaselalu bernilai true.Latihan 5.3

    crt;

    X: integer;Begin

    Clrscr;While (true) do beginWrite('Masukkan bilangan bulat negative: ');readln(x);If(x>-l) then begin

    Continue;EndElse begin

    Wri teln ('anda telah memasukkan bilangan: " x) ;End;

    End;Readln;

    End.{apa yg terjadi???}

    5.4. PROSEDUR EXITProsedur exit digunakan untuk keluar dari suatu blok program. Namun apabila prosedurexit kita gunakan di dalam program utama, maka prosedur tersebut akan menyebabkanprogram berhenti.Latihan 5.4

    Prosedur contoh;Begin

    Writeln('statemen pertama di dalam prosedur');Exit;Writeln('statemen kedua di dalam prosedur');

    BeginClrscr;Writeln('statemen pertama di dalam program utama');Contoh;Writeln('statemen kedua di dalam program utama');

  • 5/10/2018 Modul Beta2

    19/35

    5.5.PROSEDUR HALTBerbeda dengan prosedur exit yang digunakan untuk keluar dari blok program, prosedurhalt berguna untuk keluar dari program. Prosedur halt memiliki parameter berupa nilai 0dan 1 yang bersifat opsional. Statemen-statemen yang terdapat di bawah prosedur halttidak akan dieksekusi oleh program karena program akan langsung dihentikan.

    Latihan 5.5Program prosedurhalt;

    Clrser;Writeln('statemen sebelum pemanggilan prosedur halt') ;Halt(l);Writeln('statemen setelah pemanggilan prosedur halt') ;Readln;

    End.

  • 5/10/2018 Modul Beta2

    20/35

    BAB IXARRAY

    6.1 TU.JUAN

    Setelah mengikuti praktikum ini, praktikan diharapkan memahami penggunaan array padaprogram dalam bahasa Pascal.

    6.2 TEORI6.2.1 DEKLARASI ARRAY

    VarX : array[l ..10] of integer;

    Array merupakan struktur data yang terdiri dari sejumlah elemen-elemen yang mempunyai tipedata yang sama. Untuk menyatakan array dalam Pascal, terlebih dahulu definisikan jumlah elemenarray dan tipe datanya.

    6.2.2 DEKLARASI ARRAY MULTIDIMENSI

    VarX : array[l ..10, 1..5] of integer;

    Array merupakan struktur data yang terdiri dari sejumlah elemen-elemen yang mempunyai tipedata yang sama. Untuk menyatakan array dalam Pascal, terlebih dahulu definisikan jumlah elemenarray dan tipe datanya.

    6.3 DEKLARASI ARRAY MENGGUNAKAN IDENTIFIER TYPE

    TypeakuArray array[l ..10] of integer;

    VarX : akuArray;

    Array merupakan struktur data yang terdiri dari sejumlah elemen-elemen yang mempunyai tipedata yang sama. Untuk menyatakan array dalam Pascal, terlebih dahulu definisikan jumlah elemenarray dan tipe datanya.

  • 5/10/2018 Modul Beta2

    21/35

    BAS VIISTRINGString merupakan kumpulan dari karakter. Dengan kata lain, string merupakan array dari karakteryang selalu dimulai dari indeks 1. Perhatikan ilustrasi berikut ini:

    Berikut ini contoh program yang akan membuktikan teori di atas:

    crt;

    i,jmlkar: integer;S : String;

    beginclrscr;S:='ILMU KOMPUTER';jmlkar:=length(S) ;for i:=l to jmlkar do begin

    writeln('S[',i,']= ',Sri]);end;readln;

    end.

    7.1. MENGGABUNG STRINGDi dalam bahasa pascal, penggabungan dua buah string atau lebih dapat dilakukan dengandua cara, yaitu dengan menggunakan operator plus (+ ) dan dengan menggunakan fungsiConcat, yang memiliki bentuk deklarasi seperti ini:Function Concat(sl[,s2, ...sn] :string) :string;

    Fungsi tersebut akan melakukan penggabungan terhadap string-string yang menjadiparameternya yaitu, sl,s2, ...,sn. Perlu diperhatikan bahwa apabila hasil penggabunganbeberapa buah string panjangnya melebihi 255 karakter, maka string akan dipotong padakarakter ke-256.

  • 5/10/2018 Modul Beta2

    22/35

    Latihan 9.1

    Sl,spasi,S2: String;hasilPlus,hasilconcat

    beginclrscr;sl:='Isman' ;spasi:=' ';s2:='Santoso' ;hasilPlus:=sl+spasi+s2;hasilconcat:=concat(sl,spasi,s2) ;

    string;

    Program gabungstring;Uses crt;Var

    writeln(hasilplus) ;writeln(hasilconcat) ;readln;

    end.

    7.2. MENGHAPUS SUBSTRINGUntuk melakukan penghapusan substring dari suatu string, kita harus menggunakanprosedur Delete, yang memiliki bentuk deklarasi sebagai berikut:Procedure Delete(var S: String;i,n: integer);

    Prosedur tersebut aan menghapus substring sebanyak n karakter dari String S mulai dariposisi ke-i. untuk lebih jelasnya, kerjakan latihan ini:Latihan 9.2Program hapusstring;

    crt;String;

    BeginClrscr;S:='Ilmu Komputer';Wri teln ('Sebelum dihapus: ');Writeln(S) ;Delete(S,5,7);Wri teln ('Setelah dihapus: ');Writeln(S) ;Writeln('Apa yang terjadi?');Readln;

    End.

    7.3. MENYALIN STRINGDalam bahasa pascal, proses penyalinan string dilakukan dengna menggunakan fungsi copyyang memiliki bentuk deklarasi seperti berikut:Function copy(S: String;i,n: integer) :String;

  • 5/10/2018 Modul Beta2

    23/35

    Fungsi ini akan melakukan penyalinan substring dari string 5 sebanyak n karakter dimulaidari posisi atau indeks ke-i. untuk lebih jelasnya, kerjakan latihan berikut ini:Latihan 9.3

    Hasil:=copy(S,2,5) ;Writeln(Hasil) ;

    Program SalinString;

    S, hasil: String;Begin

    Clrscr;S:='ILMU KOMPUTER';Hasil:=copy(S,1,3) ;Writeln(Hasil) ;

    Hasil:=copy(S,4,7) ;Writeln(Hasil) ;

    7.4. MENYISIPKAN STRINGPascaljuga mengizinkan kita untuk melakukan penyisipan substring ke dalam Stringtertentu. Adapun caranya adalah dengan menggunakan prosedur Insert, yang memilikibentuk deklarasi berikut.Procedure insert(Sl: String;var

    Prosedur di atas akan menyisipkan string 51 ke dalam 52pada posisi ke-i.

    Latihan 9.4

    BeginClrscr;Sl:='AS' ;S2:='PCAL' ;

    Program sisipstring;Uses crt;Var

    Sl,S2: String;I : integer;

    Insert(Sl,S2,2) ;Writeln(S2) ;Readln;

    End.7.S. MENDAPATKAN POSISI STRING

    Apabila kita ingin tahu posisi suatu string yang terdapat di dalam string tertentu, maka kitaharus menggunakan fungsi Pos,yang memiliki bentuk deklarasi sebagai berikut:Function pos(substr:string;S: string) :byte;

  • 5/10/2018 Modul Beta2

    24/35

    7.6.

    Latihan 9.5POsisiString;

    crt;S, hasil: String;

    BeginClrscr;S:='ILMU KOMPUTER';Hasil:=Pos ('I',S);Writeln(Hasil) ;Hasil:=Pos('M' ,S);Writeln(Hasil) ;Hasil:=Pos ('E',S);Writeln(Hasil) ;

    MENDAPATKAN PAN.JANG STRING

    Panjang string merupakan jumlah karakter yang terdapat di dalam suatu string. Dalambahasa pascal, cara untuk mendapatkan string adalah dengan menggunakan fungsi Length:Function length(S: String): integer;

    Latihan 9.6panjangString;

    crt;S, hasil: String;

    BeginClrscr;S:='ILMU KOMPUTER';Hasil:=length(S)Writeln(Hasil) ;S:='USU' ;Hasil:=length(S)Writeln(Hasil) ;

    TUGAS1. Terdapat sebuah string 'ILKOM' ,buat program yang memanipulasi string

    tersebut menjadi seperti ini:II-LI-L-KI-L-K-OI-L-K-O-M

  • 5/10/2018 Modul Beta2

    25/35

    2. Buat program yang memanipulasi string yang menampilkan stringtersebut dengan menghilangkan huruf vokalnya. Contoh: Turbo Pascalmenjadi Trb Pscl.

    3. Buat tabel distribusi frekuensi skor nilai ujian dengan intervalsebagai berikut:Skor

  • 5/10/2018 Modul Beta2

    26/35

    BAB VIIIPROCEDURE

    B.l TU.JUAN

    Setelah mengikuti praktikum ini, praktikan diharapkan mengerti tentang prosedur denganparameter dan prosedur tanpa parameter.

    B.2 STRUKTUR PROCEDURE

    Program { judul programProcedure judul prosedur

    Beginblok pernyataan prosedur }

    End;Begin

    blok pernyataan program utama }End.Struktur penggunaan prosedur tanpa parameter.

    P ro sed ur a dala h su atu p ro gram terp isa h d alam blo k sen diri y an g b erfu ng si seb aga i su bp ro gram(p ro gram b ag ia n). P ro sed ur dia wa li d en gan k ey wo rd procedure d i d alam b ag ia n d ek la ra si p ro se du r.

    Procedure Stars;Begin

    Writeln('*************') ;End;

    BeginStars;Writeln('Hello Pascal!');Stars;

    End.Program 7.1 Prosedur sederhana untuk menampi1kan karakter bintang tanpa

    parameter.

    Program ProsedurDenganParameter;Type

    Huruf String[15] ;

  • 5/10/2018 Modul Beta2

    27/35

    Procedure Stars (Namainteger) ;

    Begin

    Huruf; var Panjang integer; k

    k := 0;Panjang := Length (Nama) + 6;Repeat Write('*');

    k := k + 1;Until k > Panjang;Write1n;

    End;

    VarN integer;

    Nama: String[10];i : integer;

    BeginWrite('Nama Anda ');Read1n(Nama) ;Stars (Nama, N, i);

    Write1n( 'Hello', Nama, "');Stars (Nama, N, i);

    End.Program 7.2 Prosedur sederhana untuk menampllkan karakter blntang dengan lnput danparameter.

  • 5/10/2018 Modul Beta2

    28/35

    BAB IXFUNGSIDefinisi fungsi sebenarnya sama dengan prosedur. Perbedaannya pada fungsi terdapatpengembalian nilai, sehingga pada saat pemanggilan, fungsi dapat langsung digunakan untukmengisi sebuah ekspresi. Berbeda dengan prosedur yang didefinisikan dengan kata kunci procedure,fungsi didefinisikan dengan kata kunci function.

    Bentuk umum fungsi:

    program yang akan ditulis}

    Functionnama fungsi(parameterl:tipedatal;parameter2:tipedata2, ...:tipedata;Cont {daftar konstanta lokal}Var{daftar pendeklarasian variable lokal}

    NamaFungsi:=nilai kembalian;{bagian ini harus diINGAT!}End;

    Beberapa contoh pendefinisian fungsi sederhana yang akan mengalikan dua buah bilangan bulat:Function Kali(x,y:integer) :longint;Begin

    Kali:=x*y;End;

    integer) :longint;Hasil : longint;

    BeginHasil:=x*y;Kali:=hasil;

    9.1. PARAMETERParameter merupakan suatu nilai atau referensi yang dilewatkan ke dlam rutin tertentu dankehadirannya akan mempengarui proses maupun nilai yang terdapat di dalam rutin itusendiri. Parameter ditempatkan di dalam tanda kurung setelah nama rutin bersangkutan.Setiap parameter yang dilewatkan harus memiliki tipe data tersendiri.

    Secara teori, parameter dibedakan menjadi dua yaitu parameter formal dan parameteraktual.Parameter formal adalah parameter yang terdapat pada saat pembuatan prosedur ataufungsi, sedangkan parameter aktual adalah parameter yang terdapat pada saatpemanggilan prosedur atau fungsi.

    Menurut fungsinya, parameter dibedakan menjadi tiga jenis yaitu sebagai masukan,keluaran, masukan/keluaran.

  • 5/10/2018 Modul Beta2

    29/35

    9.2. PARAMETER MASUKANSecara default parameter yang digunakan di dalam sebuah rutin akan berperan sebagaimasukan, artinya nila yang disimpan di dalam parameter tersebut akan dijadikan sebagaiinput(masukan) untuk melakukan proses yang terdapat di dalam rutin bersangkutan.Perhatikan contoh:Latihan 7.1

    parametermasukan

    Function jumlahkan(x,y: integer): integer;Begin

    Jumlahkan:=x+y;End;{x dan y bertindak sebagai parameter masukan}a,b,hasil: integer;

    begina=100;b=200;hasil:=jumlahkan(a,b) ;writeln('Hasil= ',hasil);

    9.3. PARAMETER KELUARANParameter ini berfungsi sebagai penampung nilai hasil proses yang dilakukan oleh suatusubrutin. Parameter jenis ini biasanya diimplementasikan di dalam sebuah prosedur sebagainilai kembalian. Hal ini disebabkan karena prosedur tidak dapat mengembalikan nilai secaralangsung seperti yang dilakukan oleh fungsi.Perhatikan contoh:Latihan 7.2

    parameterkeluaran;

    Procedure Kali(x,y:integer;var hasil: integer);Begin

    Hasil:=x*y;End;{x dan y parameter masukan, sementara hasil adllh parameterkeluaran

    integer;a:=3;b:=5;kali(a,b,c) ;writeln('Hasil= ',c);readln;

    9.4. end.Parameter jenis ini merupakan gabungan dari jenis pertama dan kedua, yaitu berperansebagai masukan sekaligus sebagai keluaran. Untuk mendefinisikan parameter sebagaiparameter masukan/keluaran maka kita harus melewatkannya berdasarkan referensi.

    Perhatikan contoh:Latihan 7.3

  • 5/10/2018 Modul Beta2

    30/35

    Procedure tambahsatu(var x:integer);Begin

    x:=x+1;

    a: integer;begin

    a:=10;tambahsatu(a) ;write1n(a) ;read1n;

    end.

    TUGAS1. Buat pseudocode dan program menghitung 1uas segitiga dengan menggunakan

    fungsi dengan parameter masukan.2. Buat program menghitung rata-rata dari sejum1ah bi1angan yang

    diinputkan operator dengan fungsi!3. Buat pseudocode dan program dari n! secara rekursi!

  • 5/10/2018 Modul Beta2

    31/35

    BAB XRECORD

    10.1 . PENGERTIAN DAN PENDEKLARASIAN RECORD

    Record adalah jenis tipe data terstruktur yang berisi beberapa data, yang masing-masing dapatberlainan tipe.Suatu tipe Record dideklarasikan dengan bentuk sebagai berikut :

    Type Identifier = RECORDNama fieldl tipel;Nama field2 tipe2;Nama fieldn tipen;

    End;

    Masing-masing data field dapat berupa satu atau beberapa nama pengenal dan masing-masingdinamakan field.Contoh Penggunaan Record dalam Pascal:

    program Recordl;Uses CRT;Type biodata = Record

    nama String[25];NIM String[lO];Umur integer;

    Vardata biodata;

    beginclrscr;Write(' Masukkan Nama Anda ');readln(data.nama) ;Write(' Masukkan NIM Anda ');readln(data.NIM) ;Write(' Masukkan Umur Anda ');readln(data.umur) ;clrscr;Writeln(' Nama AndaWriteln(' NIM AndaWriteln(' Umur Anda

    1 ,data.nama);1 ,data.NIM);1 ,data.umur);

    Readln;End.

    Contoh Di atas merupakan contoh Record sederhana untuk menginput data mahasiswa. DalamRecord, penampilan data tidak boleh dilakukan secara langsung, Contohnya Writeln(nama), Yangharus kita lakukan adalah kita harus menuliskan varia bel dan Field yang akan ditampilkan, contohWriteln(mahasiswa.nama).

  • 5/10/2018 Modul Beta2

    32/35

    10.2. PENUGASAN ANTARRECDRD.

    Penugasan antar Record merupakan penyalinan yang dilakukan dari record satu ke record yang lain,tetapi record yang disalin dan yang menyalin bertipe yang sama.Contoh:

    Type recBio RECORDNama String[25] ;Alamat String[35] ;NoHp String[12] ;

    End;Var

    Biol,Bio2 RecBio;Begin

    Biol.NamaBiol.Alamat .-Biol.NoHP

    .- ' Ales Sanro SotarDodo ';, AGARA ';

    .- '085265600310 ';

    Bio2: =Biol; (* Proses Menyalin Dari Record BioI ke Bio2 *){ Menampilkan Data }Wri teln (' NamaWri teln (' AlamatWriteln(' NO. HP

    ,,Bio2 .Nama) ;" Bio2 .Alamat) ;',Bio2.NoHP) ;

    Readln;End.

    Contoh di atas akan menampilkan isi dari Record dari Biol.10.3. PERNYATAAN WITH

    Pernyataan with di dalam record berfungsi untuk menyederhanakan atau menyingkat penulisanpernyataan. Bentuk penulisan :

    WITH namarecord DoBegin

    PernyataanEnd;

    Contoh:Type recBio

    NamaAlamatNoHp

    RECORDString[25] ;String[35] ;String[12] ;

    End;Var

    Biol,Bio2 RecBio;Begin

    With BioI dobeginNamaAlamatNoHP

    .- ' Ales Sanro SotarDodo ';:= ' AGARA ';.- '085265600310 ';

    End;

  • 5/10/2018 Modul Beta2

    33/35

    Bio2:=Bio1;{ Menampi1kan Data }With bio2 dobeginWri teln (' NamaWri teln (' AlamatWriteln(' NO. HPEnd;

    " Nama) ;',Alamat) ;',NoHP) ;

    Readln;End.

    Dalam penulisan program di atas, kita melakukan penulisan pernyataan yang lebih singkatdaripada yang sebelumnya.

    10.4. Array Record

    Elemen dari suatu array juga bisa berupa Record, yang menampung beberapa data sekaligus(data pertama hingga data ke n ).

    Penulisan Array record:

    Type Identifier RECORDNama field1 tipe1;Nama field2 tipe2;Nama fieldn tipen;

    End;Var

    Variabel array[l ..n] of Identifier;

    Contoh Array Record:

    program Recordn;Uses CRT;Type biodata = Record

    nama String[25];NIM String[10];Umur integer;

    End;Var

    data array[l ..10] of biodata;n,i integer;

    beginclrscr;write(' Masukkan Banyak data ');readln (n);clrscr;for i:=l to n dobegin

  • 5/10/2018 Modul Beta2

    34/35

    writeln(' Masukkan Data ke ',i);with data[il dobeginWrite(' Masukkan Nama Anda ');readln(nama) ;Write(' Masukkan NIM Anda ');readln (NIM) ;Write(' Masukkan Umur Anda ');readln(umur) ;clrscr;end;end;clrscr;for i:=l to n dobeginWriteln(' Data ke ',i);with data[il dobeginWriteln(' Nama AndaWriteln(' NIM AndaWriteln(' Umur Anda

    ,,nama) ;',NIM) ;',umur);

    end;writeln;end;Readln;

    End.

    t ri.e, RECORD DALAM RECORD

    Record di dalam record adalah record yang mempunyai tipe record lain. Contoh Penulisan :Type recordl = RECORD

    Nama_fieldl : tipel;Nama_field2 : tipe2;

    Nama_fieldn : tipen;End;

    Record2 = RecordNamal : Reordl;Nama2 : identifierl;Nama3 : Identifier2;

    End;Var

    Variabel : record;

  • 5/10/2018 Modul Beta2

    35/35

    Contoh Penggunaan Record dalam record:

    program recordinrecord;Uses Crt;Type Alamat = Record

    Jalan String[30];No integer;kota string[25];

    End;identitas = RecordNama : String[25];Nim : String[lO];Alamatku : Alamat;

    End;Var

    data Identitas;Begin

    Clrscr;with data dobegin

    Write(' Masukkan Nama Anda ');readln(nama) ;Write(' Masukkan Nama Anda ');readln (nim) ;Writeln (' Masukkan Alamat Anda ' ) ;with alamatku dobeginWrite (' Jalan ' ) ;

    readln (jalan) ;write (' Nomor ' ) ;readln(no) ;write (' Kota ' ) ;readln(kota) ;

    end;end;clrscr;writeln(' Data yang Anda Masukkan');with data dobegin

    Wri teln (' NamaWri teln (' NIMWriteln(' AlamatWith alamatku do

    ,,nama) ;',NIM) ;, ) ;begin

    writeln ('writeln ('Writeln ('

    end;end;

    JalanNoKota

    ',jalan);,,no) ;,,kota) ;

    Readln;end.