• Tidak ada hasil yang ditemukan

algoritma & pemrograman

N/A
N/A
Protected

Academic year: 2022

Membagikan "algoritma & pemrograman"

Copied!
61
0
0

Teks penuh

(1)

algoritma & pemrograman

(2)

materi pengajaran algoritma & pemrograman I (IF-185)

1. Pendahuluan 4. Procedure & Function

- Bahasa Pemrograman Pertemuan : 3x

- Membuat program / algoritma

Pertemuan : 1x 5. UTS

2. Dasar Algoritma 6. Mesin Karakter & Tipe bentukan - Tipe data

- Ekspresi Pertemuan : 2x

- Variabel

- Constanta dsb 7. Array/Larik

Pertemuan : 1x Pertemuan : 4x

3. Struktur Program / Struktur Kontrol 8. UAS - Sekuensial

- Pencabangan - Pengulangan

Pertemuan : 3x

(3)

bobot penilaian

• Kehadiran : min 12x pertemuan

• Tugas : 30 %

• Praktikum : 30 %

• Test : 40 %

(4)

latar belakang

• Solusi Informatika

Sistem Dunia Nyata Sistem Informasi

Sistem Perangkat Lunak

Perspektif Proses

Perspektif Interaksi Perspektif

Data

(5)

pemrograman

• Belajar memprogram tidak sama dengan belajar bahasa pemrograman

• Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami.

• Belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata bahasanya, instruksi- instruksinya, tata cara pengoperasian compiler-nya, dan memanfaatkan instruksi-instruksi tersebut untuk

membuat program yang ditulis hanya dalam bahasa itu saja.

Belajar Memprogram Dan Belajar Bahasa Pemrograman

(6)

belajar memprogram

• Belajar memprogram ≠ belajar bahasa pemrograman

• Belajar memprogram : belajar tentang strategi

pemecahan masalah, metodologi dan sistematika

pemecahan masalah kemudian menuliskannya dalam notasi yang disepakati bersama

• Belajar memprogram : bersifat pemahaman persoalan, analisis dan sintesis

• Belajar memprogram, titik berat : designer program

(7)

belajar bahasa pemrograman

• Belajar bahasa pemrograman : belajar memakai suatu bahasa pemrograman, aturan sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa

• Belajar bahasa pemrograman , titik berat : coder Produk yang dihasilkan pemrogram :

• program dengan rancangan yang baik (metodologis, sistematis)

• dapat dieksekusi oleh mesin

• berfungsi dengan benar

• sanggup melayani segala kemungkinan masukan

• disertai dokumentasi

• belajar memprogram, titik berat : designer program

(8)

bahasa pemrograman

• merupakan tool / alat yang dapat digunakan

oleh pengguna untuk memerintahkan komputer melakukan sebuah pekerjaan

• memiliki aturan dan tata bahasa, instruksi dan tata cara pengoperasian

• berdasarkan terapannya, dibagi atas :

– bahasa pemrograman bertujuan khusus : cobol, fortran, prolog, dsb

– bahasa pemrograman bertujuan umum : pascal,

basic, c

(9)

bahasa pemrograman

• berdasarkan kedekatannya dgn komputer, dibagi atas :

– bahasa tingkat rendah – bahasa tingkat tinggi

• memiliki paradigma / tahapan pelaksanaan, misalnya :

– prosedural – fungsional – deklaratif – konkuren

– berorientasi objek

– dsb

(10)

paradigma

Programming Language Paradigm

Imperative Declarative

Prosedural : C, Pascal,

Fortran, Basic

ObjOriented : Ada, Object Pascal, C++, Java,

Smalltalk, Eiffel

Parallel Processing : Ada, Pascal S, Occam, CLinda

Logic : PROLOG

Functional : LISP, APL,

SCHEME

Database : SQL

(11)

the evolution of programming language

Natural language processing Application

generators, commends specify results Include

command shorter code Assemble

repetitive instructions shorter code 0-1

Long difficult programming

Intelligent Language Non-

Procedural Language Procedural

Language Assembly

Language Machine

Language

1st 2nd 3rd 4th 5th

Human

Natural Language

progress

Machine

generations

(12)

algoritma : pendahuluan

• berasal dari kata Algorithm

• definisi :

– Adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis

– Adalah urutan logis pengambilan putusan untuk pemecahan masalah (kamus)

• merupakan cara untuk menggambarkan setiap langkah- langkah proses dalam penyelesaian sebuah masalah, bahkan dalam kehidupan sehari-hari ; merupakan

bagian dari upaya belajar memprogram / membuat program

• memiliki notasi penulisan ; independen terhadap bahasa

pemrograman

(13)

alur pembuatan perangkat lunak

Working Program

Plan Requirment Spec

Design Listing

Data Structure

Test Spec

(14)

konsep dasar

• terdiri dari deskripsi pelaksanaan suatu proses ( ada instruksi dan aksi )

t0 : keadaan sebelum aksi dikerjakan a k s i

t1 : keadaan setelah aksi dikerjakan

• memiliki struktur dasar :

– runtutan (sequence) – pemilihan (selection) – pengulangan (repetition)

• aturan penulisan / teks algoritma :

– kepala algoritma / judul algoritma – deklarasi

– deskripsi

(15)

contoh penulisan

Algoritma Nama_algoritma

{ penjelasan tentang algoritma, yang berisi uraian singkat mengenai apa yang akan dilakukan oleh algoritma }

DEKLARASI : { nama tetapan } const JumPeg = 100 { nama tipe }

type Titik : record

< x : integer, y : integer

>

{ nama peubah / var }

a : char

posisi : Titik

b : integer

c : integer

e : real

ada : boolean

DESKRIPSI :

e 0

read(c,d) if c < d then

e ← a + b else

e ← a - b endif

write(e)

(16)

bagian algoritma

kepala algoritma

– bagian yang terdiri dari nama algoritma dan penjelasan / spesifikasi tentang algoritma tersebut

– ditulis singkat namun cukup menggambarkan apa yang akan dilakukan oleh algoritma tersebut

– penjelasan di bawah judul algoritma sering dinamakan juga spesifikasi algoritma

deklarasi

– bagian untuk mendefinisikan semua nama yang dipakai di dalam algoritma dapat berupa deklarasi nama tetapan, peubah, tipe, prosedur atau fungsi

deskripsi

– berisi uraian langkah-langkah penyelesaian masalah

– langkah-langkah penyelesaian masalah biasanya ditulis dalam sebuah notasi – penggambaran sebuah notasi dalam deskripsi algoritma biasanya dibuat dengan

memberi garis bawah misalnya :

• read

• write

• if

• then

• else

• Endif

– notasi yang lain misalnya : lambang ← atau →

(17)

tipe data dalam algoritma

• tipe dasar

– bilangan logika / boolean bernilai : true, fals

– bilangan bulat / integer

bernilai : rentang tidak terbatas, biasanya didefinisikan – bilangan riil / real

bernilai : rentang tidak terbatas, biasanya didefinisikan – karakter / char

bernilai : semua huruf alfabet a…z, 0…9, tanda baca, operator aritmatik, karakter khusus

• tipe bentukan

– string

merupakan deretan karakter

– tipe baru hasil bentukan dari tipe dasar

sama dengan tipe dasar yang dibentuknya – rekaman / record

merupakan tipe terstruktur dengan susunan field

(18)

nama objek dalam algoritma

• peubah (variabel)

• tetapan (constant)

• nama tipe bentukan

• nama fungsi

• nama prosedur

(19)

nilai dalam algoritma

1. Pengisian nilai ke peubah

- pengisian langsung (assignment) notasi : ←

contoh : x ← 5

- dibaca dari piranti masukan notasi : read

contoh : read( M )

read( nama_kota ) read( a1, a2, a3 ) 2. Ekspresi

- Suatu transformasi nilai menjadi keluaran yang dilakukan melalui suatu perhitungan.

- Terdiri atas operand dan operator. Operand adalah nilai yang dioperasikan melalui sebuah operator tertentu.

- Operand dapat berupa tetapan, nama peubah, nama tetapan, atau hasil dari suatu fungsi.

- Dikenal 3 macam ekspresi : - Ekspresi aritmatik

- Ekspresi relational - Ekspresi string

(20)

nilai dalam algoritma

3. Menuliskan Nilai ke piranti keluaran Notasi : write

Contoh : write(nama1, nama2 ) write(a)

write(tetapan)

(21)

struktur algoritma

• Struktur Runtutan/Sequence

– tiap instruksi dikerjakan satu per satu

– tiap instruksi dilaksanakan tepat sekali; tidak ada instruksi yang diulang

– urutan instruksi yang dilaksanakan pemroses sama dengan urutan aksi yang tertulis di algoritma

– akhir dari instruksi terakhir adalah akhir algoritma

a1 awal algoritma

a2

a3

a4 akhir algoritma

(22)

struktur algoritma

• Contoh struktur runtutan

deklarasi deklarasi

a, b, c : integer a, b : integer

deskripsi

kode : char

c ← 1

deskripsi

write( c + 4 ) a ← 5

c ← c + 5 b ← b * 2

write( c ) write( b )

a ← c * 4 kode ← „A‟

b ← a * c write(kode+‟B‟)

write( a ) kode ← „Ada‟

(23)

struktur algoritma

• Struktur Pengulangan/Repetition/Loop

Struktur While-Do : Struktur Repeat-Until : while <kondisi> do repeat

aksi aksi

endwhile until < kondisi >

Struktur For :

for peubah ← nilaiawal to nilaiakhir do aksi

endfor

(24)

struktur algoritma

• Implementasi Pengulangan

deklarasi deklarasi

a : integer

deskripsi deskripsi

write( „Unpas‟ ) a ← 1

write( „Unpas‟ ) while a <= 5 do

write( „Unpas‟ ) write( „Unpas‟ )

write( „Unpas‟ ) a ← a + 1

write( „Unpas‟ ) endwhile

(25)

struktur algoritma

• Implementasi Pengulangan

deklarasi deklarasi

a : integer a : integer

deskripsi deskripsi

for a ← 1 to 5 do a ← 1

write( „Unpas‟ ) repeat

endfor write( „Unpas‟ )

a ← a + 1 until a > 5

(26)

struktur algoritma

• Struktur Pemilihan/Selection

Satu kasus : Dua kasus :

if < kondisi > then if < kondisi > then

aksi aksi 1

endif else

aksi 2 endif

(27)

struktur algoritma

• Struktur Pemilihan/Selection

Tiga kasus :

if < kondisi1 > then aksi 1

else

if < kondisi1 > then aksi 2

else

if < kondisi3 > then aksi 3

endif endif endif

Empat kasus :

if < kondisi1 > then aksi 1

else

if < kondisi1 > then aksi 2

else

if < kondisi3 > then aksi 3

else

if < kondisi4 > then aksi 4

endif endif endif

endif

(28)

struktur algoritma

• Implementasi struktur pemilihan

deklarasi deklarasi

a : boolean a : integer

deskripsi deskripsi

a ← true a ← 1

if a then while a <= 5 do

write( „Unpas‟ ) if a mod 2 = 0 then

endif write( „Unpas‟ )

a ← false endif

if not a then a ← a + 1

write( „Unpas‟ ) endwhile

else

write( „Bukan Unpas‟ ) endif

(29)

struktur algoritma

• Struktur Case : case (nama )

< kondisi1 > : aksi1

< kondisi2 > : aksi2

< kondisi3 > : aksi3

< kondisi4 > : aksi4

. .

. .

. .

< kondisi n > : aksi n

[ otherwise aksi x ]

endcase

(30)

struktur algoritma

• Contoh Implementasi Struktur Case :

case (bulan )

bulan = 1 : write( „Januari‟ ) bulan = 2 : write( „Februari‟ ) bulan = 3 : write( „Maret‟ ) bulan = 4 : write( „April‟ ) bulan = 5 : write( „Mei‟ ) bulan = 6 : write( „Juni‟ ) bulan = 7 : write( „Juli‟ )

bulan = 8 : write( „Agustus‟ ) bulan = 9 : write( „September‟ ) bulan = 10 : write( „Oktober‟ ) bulan = 11 : write( „November‟ ) bulan = 12 : write( „Desember‟ ) otherwise write( „Tidak Terdaftar‟ )

endcase

(31)

soal-soal

1. Membuat algoritma deret bilangan ganjil, dari 1 sampai 100

2. Membuat algoritma faktorial

3. Memeriksa apakah bilangan bulat positif yang dimasukan melalui piranti masukan adalah

terbesar atau terkecil dibandingkan dengan sebelumnya.

4. Menetapkan nilai indeks (A,B,C,D,E) dari sebuah nilai bilangan bulat dengan asumsi :

• A : >= 80

• B : < 80 dan >= 70

• C : < 70 dan >= 50

• D : < 50 dan >= 30

• E : < 30

(32)

prosedur

• merupakan bagian program/sub program/modul

• memiliki struktur algoritma yang sama dengan struktur algoritma yang telah dipelajari

• mempunyai ciri :

– mengerjakan pekerjaan yang spesifik

– menghasilkan suatu efek netto yang dapat dilihat dari perbedaan keadaan awal dan keadaan akhir

– dapat berdiri sendiri/independent dari algoritma utama

• keuntungan :

– mempersingkat algoritma dengan menghemat penulisan algoritma yang berulang-ulang

– memudahkan dalam melakukan penelusuran kesalahan

– memudahkan dalam reorganisasi algoritma dan pemecahan masalah

(33)

prosedur

• komponen :

– header / bagian judul – nama prosedur

• dapat ditambahkan komentar

• sedapat mungkin merupakan kata kerja

– parameter masukan, keluaran

– deklarasi untuk pendefinisian variabel

• semua variabel yang didelarasikan hanya dikenali lokal pada prosedur yang bersangkutan

– deskripsi untuk penulisan langkah aksi

(34)

prosedur

• contoh :

procedure HIT_LUAS_SEGITIGA

{ procedure menghitung luas segitiga dengan rumus L= ½ a x t } { K.Awal : sembarang }

{ K.Akhir : L berisi luas segitiga. Nilai L dicetak ke piranti keluaran } DEKLARASI :

{ nama peubah } a : real

t : real L : real DESKRIPSI :

input( a ) input( t ) L ← a * t / 2 output( L )

(35)

prosedur

• Prosedur bukan program yang berdiri sendiri, sehingga tidak dapat dieksekusi langsung.

• Prosedur harus diakses supaya instruksi yang ada didalamnya dapat dilaksanakan.

• Cara pemanggilan dari program utama :

• NAMA_PROSEDUR

• Ketika NAMA_PROSEDUR dipanggil, maka

kendali program berpindah secara otomatis ke

prosedur tersebut. Sehingga instruksi yang ada

dalam prosedur dilaksanakan.

(36)

prosedur

• Contoh program utama untuk memanggil prosedur HIT_LUAS_SEGITIGA :

algoritma LUAS_SEGITIGA_DGN_PROC DEKLARASI :

{ nama peubah }

procedure HIT_LUAS_SEGITIGA

{ procedure menghitung luas segitiga dengan rumus L= ½ a x t }

DESKRIPSI :

output(„Menghitung luas segitiga‟) HIT_LUAS_SEGITIGA

output(„Selesai‟)

procedure HIT_LUAS_SEGITIGA

{ procedure menghitung luas segitiga dengan rumus L= ½ a x t } { K.Awal : sembarang }

{ K.Akhir : L berisi luas segitiga. Nilai L dicetak ke piranti keluaran } DEKLARASI :

{ nama peubah } a : real t : real L : real DESKRIPSI :

input( a ) input( t ) L ← a * t / 2 output( L )

(37)

prosedur

Penggunaan Variabel/Peubah Global

(38)

parameter prosedur

• Merupakan pertukaran nilai/informasi antara prosedur dengan program yang memanggilnya.

• Setiap data dipertukarkan melalui mekanisme parameter formal dan parameter aktual.

• Parameter formal adalah parameter yang dideklarasikan di dalam bagian header prosedur

• Parameter aktual adalah parameter yang

disertakan pada waktu pemanggilan

(39)

parameter prosedur

• Pendefinisian parameter formal :

• Prosedur dengan parameter diakses dari program dengan cara memanggil namanya disertai dengan parameter aktualnya :

Nama_Prosedur ( daftar parameter aktual )

• Catatan penting :

– Jumlah parameter aktual pada saat pemanggilan harus sama dengan jumlah parameter formal pada deklarasi prosedurnya

– Tiap parameter aktual harus bertipe sama dengan tipe parameter formal yang bersesuaian

– Tiap parameter aktual harus diekspresikan dalam cara yang sesuai dengan parameter formal yang bersesuaian, bergantung jenis parameter formal yang digunakan.

procedure Nama_Prosedur (daftar parameter formal )

{Spesifikasi prosedur berisi penjelasan tentang apa yang dilakukan oleh prosedur } { K.Awal : keadaan sebelum prosedur dilaksanakan }

{ K.Akhir : keadaan setelah prosedur dilaksanakan } DEKLARASI :

{ semua nama peubah yang dipakai dalam prosedur dan hanya berlaku lokal didalam prosedur ini } DESKRIPSI :

{ badan prosedur, berisi kumpulan instruksi }

(40)

parameter masukan

• Merupakan parameter yang nilainya berlaku sebagai masukan untuk prosedur, biasanya disebut sebagai

“parameter by value”.

• Nilai parameter aktual diisikan (assign) ke dalam parameter formal yang bersesuaian.

• Nilai yang dinyatakan oleh parameter masukan tidak dapat dikirim kearah sebaliknya.

• Perubahan nilai parameter di dalam badan prosedur tidak tidak mengubah nilai parameter aktual.

• Boleh dibedakan nama-nama di parameter aktual

dengan nama-nama di parameter formal.

(41)

procedure Berubah (input x,y : integer) DEKLARASI :

{ tidak ada } DESKRIPSI :

x ← x + 1 y ← y - 2 output( x ) output( y )

algoritma PQR DEKLARASI :

a , b : integer

procedure Berubah(input x,y : integer) DESKRIPSI :

Berubah( 4, 10 ) { pemanggilan prosedur pertama kali } input ( a, b )

Berubah( a, b ) { pemanggilan prosedur kedua kali } Berubah( a+5, 17 ) { pemanggilan prosedur ketiga kali } b ← b + 2

Berubah( a, b ) { pemanggilan prosedur keempat kali } output( a, b )

(42)

parameter keluaran

• Merupakan parameter yang menampung keluaran yang dihasilkan oleh prosedur.

• Nilai parameter aktual akan menggantikan parameter formal yang bersesuaian dalam prosedur.

• Nilai parameter aktual dimemori akan tetap

selama prosedur dijalankan dan berubah

setelah prosedur selesai dikerjakan.

(43)

procedure Berubah (input x : integer, output y : integer) DEKLARASI :

{ tidak ada } DESKRIPSI :

x ← x + 1 y ← x * 2

algoritma PQR DEKLARASI :

a , b : integer c , d : real

procedure Berubah(input x : integer, output y : integer) DESKRIPSI :

Berubah( 4,b ) { pemanggilan prosedur pertama kali } output ( b )

input ( a )

Berubah( a,b ) { pemanggilan prosedur kedua kali } output ( b )

Berubah( a+5,b ) { pemanggilan prosedur ketiga kali } output (b )

(44)

parameter masukan/keluaran

• Berfungsi sebagai masukan sekaligus sebagai keluaran bagi prosedur ybs. Biasanya disebut sebagai parameter acuan atau

“parameter by reference”.

• Nilai parameter aktual di pemanggil akan berubah sesuai dengan perubahan parameter formal di prosedur.

procedure Berubah (input/output x,y : integer) DEKLARASI :

{ tidak ada } DESKRIPSI :

x ← x + 1 y ← x * 2 output ( x ) output ( y )

algoritma PQR DEKLARASI :

a , b : integer c , d : real

procedure Berubah(input/output x,y : integer) DESKRIPSI :

a ← 15 b ← 10 output (a) output (b)

Berubah(a,b) { pemanggilan prosedur } output (a)

output (b)

(45)

konsep fungsi

• merupakan bagian program/sub program/modul

• memiliki struktur algoritma yang sama dengan struktur algoritma yang telah dipelajari

• mempunyai ciri

:

– mengerjakan pekerjaan yang spesifik

– suatu modul yang memberikan/mengembalikan (return sebuah nilai yang bertipe sederhana (integer, real, Boolean dan string).

– dapat berdiri sendiri/independent dari algoritma utama

• keuntungan :

– mempersingkat algoritma dengan menghemat penulisan algoritma yang berulang-ulang

– memudahkan dalam melakukan penelusuran kesalahan

– memudahkan dalam reorganisasi algoritma dan pemecahan masalah

(46)

pendefinisian fungsi

• komponen :

– header / bagian judul – nama fugsi

• dapat ditambahkan komentar

• sedapat mungkin merupakan kata kerja

– parameter masukan, keluaran

– deklarasi untuk pendefinisian variabel

• semua variabel yang didelarasikan hanya dikenali lokal pada prosedur yang bersangkutan

– deskripsi untuk penulisan langkah aksi

(47)

pendefinisian fungsi :

function Nama_Fungsi (input daftar parameter formal)  tipe hasil {Spesifikasi function berisi penjelasan tentang apa yang dilakukan oleh function }

DEKLARASI :

{ semua nama peubah yang dipakai dalam prosedur dan hanya berlaku lokal didalam fungsi ini saja }

DESKRIPSI :

{ badan fungsi, berisi kumpulan instruksi }

return hasil { pengembalian nilai yang dihasilkan fungsi }

(48)

contoh

function HIT_LUAS_SEGITIGA(input a,t : integer)  integer { procedure menghitung luas segitiga dengan rumus L= ½ a x t } { K.Awal : sembarang }

{ K.Akhir : L berisi luas segitiga. Nilai L dicetak ke piranti keluaran } DEKLARASI :

{ nama peubah } L : integer DESKRIPSI :

L ← a * t / 2 return L

• Contoh pemanggilan fungsi :

• luas  HIT_LUAS_SEGITIGA( 40, 6 )

• output (HIT_LUAS_SEGITIGA( 40, 6 ))

• z  2 * HIT_LUAS_SEGITIGA( 40, 6 )

• if HIT_LUAS_SEGITIGA( 40, 6 ) > 100 then …

(49)

pemrosesan teks

• mempunyai ciri :

– teks didefinisikan sebagai rangkaian karakter, yang memanjang dari kiri ke kanan ( seolah-olah membentuk sebuah pita;

sehingga disebut pula sebagai pita karakter)

– diakses secara beruntun (sequential) dari awal sampai akhir teks – saat pengaksesan dibantu oleh penunjuk/pointer

– ada karakter spesifik yang ditetapkan sebagai akhir teks

Teks yang terdiri dari 11 karakter, dan diakhiri dengan titik

Didefiisikan sebagai teks kosong

– biasanya didefinisikan sebuah prosedur universal

RESET_TEKS, yang menyebabkan pointer akan menunjuk pada karakter pertama di teks.

informatika.

.

(50)

pemrosesan teks

• deklarasi :

DEKLARASI

P : text { P adalah peubah teks }

• pembacaan teks

– Pembacaan selalu dari kiri ke kanan

– Setiap karakter yang ditunjuk pointer selesai dibaca, pointer akan berpindah otomatis ke karakter berikutnya

– Karakter yang sedang ditunjuk oleh pointer dinyatakan dalam sebuah peubah/variable bertipe karakter, dan didefinisikan di DELARASI pada program utama.

i n f o r m a t i k a.

pointer

(51)

algoritma hitung_karakter DEKLARASI :

P : Text C : Char n : integer DESKRIPSI :

n ← 1

RESET_TEKS input(P ; C)

while C <> „.‟ do n ← n + 1

input(P ; C) { baca karakter berikutnya }

endwhile { c = ‘.’ }

menghitung karakter

(52)

menghitung karakter B

algoritma hitung_karakter_B DEKLARASI :

P : Text C : Char n : integer DESKRIPSI :

n ← 1

RESET_TEKS input(P ; C) while c <> „.‟ do

if c= „B‟ then n ← n + 1 endif

input(P ; C) { baca karakter berikutnya }

endwhile { c = ‘.’ }

(53)

Record

-Adalah tipe data terstruktur

-Disusun oleh satu atau lebih field

-Tiap field menyimpan data dari tipe dasar tertentu atau tipe bentukan yang lain

-Nama rekaman ditentukan oleh pemrogram

Field 1 Field 2 Field 3 Field 4

(54)

Operasi Record

Deklarasi :

type DATA_MHS : record

< NIM : integer, NAMA : string, USIA : integer

>

MHS : DATA_MHS

Mengisi :

MHS.NIM ← 980192 input (MHS.USIA)

MHS.NAMA ← „AHMAD S‟ input (MHS.NIM) MHS.USIA ← 18

Membaca / Menuliskan :

a ← MHS.NIM + 100000 OUTPUT ( a )

OUTPUT ( MHS.USIA )

(55)

A R R A Y / L A R I K

• merupakan struktur data yang menyimpan sekumpulan elemen bertipe sama

• dapat diakses langsung melalui indeksnya

• ilustrasi :

– misalkan sebuah larik bernama A memiliki 8 buah elemen dimana setiap elemen bertipe integer, dapat digambarkan sebagai berikut :

A 1

2 3 4 5 6 7 8

(56)

A R R A Y / L A R I K

– setiap elemen larik ditulis dengan notasi :

A[1] , A[2] , A[3] , A[4] , A[5] , A[6] , A[7] , A[8]

– setiap elemen larik dapat memiliki dan menyimpan sebuah nilai, dimana nilai tersebut harus bertipe sama dengan tipe elemennya.

A

1 100

2 98

3 120

4 115

5 82

6 132

7 115

8 110

(57)

A R R A Y / L A R I K

• pendefinisian larik :

– yang perlu didefinisikan adalah : banyaknya elemen larik dan mendefinisikan tipe larik

• sebagai peubah

• sebagai tipe baru

• ukuran larik sebagai sebuah tetapan

DEKLARASI : { nama peubah }

L : array [ 1 .. 50 ] of integer

nama_mhs : array[ „a‟ .. „j‟] of string nilai : array [0 .. 100] of real

DEKLARASI :

type panjang : array [ 1 .. 100 ] of integer P : panjang

DEKLARASI : const N = 1000

type panjang : array [ 1 .. N ] of integer P : panjang

(58)

inisialisasi larik

diperlukan sebagai langkah untuk memberi nilai awal terhadap elemen larik

nilai untuk inisialisasi disesuaikan dengan tipe array, dapat diisi dengan nol, spasi kosong, atau angka , huruf tergantung dari kebutuhan pemrogram

procedure inisialisasi (output A : larik) DEKLARASI :

{ peubah }

k : integer DESKRIPSI :

fork ← 1 to nMaks do

A[k] ← 0 { elemen array diisi nol } endfor

procedure inisialisasi (output A : larik) DEKLARASI :

{ peubah }

k : integer DESKRIPSI :

fork ← 1 to nMaks do

A[k] ← k { elemen array diisi indeks k } endfor

(59)

mengisi/mencetak larik

procedure mengisi_larik (output A : larik) DEKLARASI :

{ peubah } k : integer DESKRIPSI :

for k ← 1 to nMaks do

input(A[k] ) { mengisi elemen array dari piranti masukan } endfor

procedure mencetak_larik (input A : larik) DEKLARASI :

{ peubah } k : integer DESKRIPSI :

for k ← 1 to nMaks do

output(A[k] ) { mengisi elemen array dari piranti masukan } endfor

(60)

contoh

algoritma tanpa_array DEKLARASI :

k : integer i : integer DESKRIPSI :

for i ← 1 to 6 do input( k ) endfor

for i ← 1 to 6 do output( k ) endfor

algoritma pakai_array DEKLARASI :

k : array[ 1.. 6 ] of integer i : integer

DESKRIPSI :

for i ← 1 to 6 do input(k[ i ] ) endfor

for i ← 1 to 6 do output(k[ i ] ) endfor

Misalkan data yang dimasukkan adalah : 20, 30, 40, 50, 60, 70 1. Output dengan algoritma tanpa_array : 70, 70, 70, 70, 70, 70 2. Output dengan algoritma pakai_array : 20, 30, 40, 50, 60, 70

(61)

kasus

1. Menyimpan bilangan bulat positif yang dimasukkan dari keyboard ke sebuah aray of integer

2. Menghitung total isi array of integer

3. Mencari berapa buah huruf a dalam array of char

4. Menentukan bilangan terbesar dari seluruh elemen array of integer

5. Mencari ada berapa buah bilangan ganjil pada array of integer

(diket : jumlah elemen array = 100)

Referensi

Dokumen terkait

Kekerasan seksual suami terhadap istri dalam rumah tangga yang salah satu dampaknya adalah rusaknya alat reproduksi tidak dibenarkan dalam islam dengan alasan, Pertama, dari

Fenomena tersebut terjadi karena Desa Pakraman hanya mewajibkan Krama Desa Pakraman (krama wed) untuk mendukung apapun yang diselenggarakan oleh Desa Pakraman,

Berkat rahmatmu yang luar biasa yang telah engkau berikan kepada penulis, sehingga telah selesai kewajiban menyusun skripsi berjudul Analisis Makna Idiomatik pada Kumpulan

Pada bab sebelumnya dikemukakan bahwa rumusan hipotesis penelitian ini adalah “Terdapat pengaruh metode pembelajaran kooperatif tipe Jigsaw terhadap

Reaksi positif bila terbentuk warna kuning pada sampel.Pada keempat sapel, hasil uji Xantoprotein menunjukan terjadinya reaksi positif karena pada keempat

Segi-8 beraturan merupakan gabungan dari 8 segitiga sama kaki dengan besar sudut yang diapit oleh kedua sisi yang sama panjang adalah sebesar 45 0. Dari soal

Inulin bertanda 14C, 1311, 3H dan 51Cr telah diusulkan untuk dipergunakan dalam pe- nentuan LFG, tetapi sediaan ini dianggap ku- rang ideal karena selalu memberikan cacahan

Sementara nitrogen juga dapat diperoleh dari protein yang terkandung dalam air kelapa, meskipun dalam jumlah yang kecil.. Air kelapa yang baik adalah yang diperoleh dari kelapa