algoritma dasar (9)cara menentukan c

Upload: lina-tarlina

Post on 11-Jul-2015

136 views

Category:

Documents


3 download

TRANSCRIPT

Algoritma & Pemrograman #9by antonius rachmat c, s.kom

LatihanBuatlah fungsi untuk menghitung frekuensi kemunculan huruf dalam sebuah kalimat!Misal int hitung_frek(stringinput, huruf)

Buatlah fungsi untuk menentukan bilangan terkecil dari n buah bilangan yang diinputkanMisal int terkecil()

Buatlah fungsi untuk mengubah nilai ke huruf (A, B, C, D, dan E)char nilai2huruf(int angka) Buatlah fungsi untuk mengubah nilai huruf ke bobotnyaint nilai2bobot(char huruf)

Buatlah fungsi untuk mengubah jam, menit, detik menjadi detik! Buatlah fungsi untuk menjumlahkan deret: 1+3+5+7+ +n. Buatlah fungsi untuk mengetahui kuadran suatu koordinat! Buatlah fungsi untuk menyederhanakan b/c menjadi Ab/c

Review FungsiArgumen fungsi: formal dan aktual Fungsi by Value Fungsi by Reference (?)

PendahuluanSelama ini kita menggunakan satu variabel untuk menyimpan 1 buah nilai dengan tipe data tertentu.int a1, a2, a3, a4, a5; Deklarasi variabel diatas digunakan untuk menyimpan 5 data integer dimana masing-masing variabel diberi nama a1, a2, a3, a4, dan a5. Jika kita memiliki 10 data, 100 data integer bahkan mungkin data yang ingin kita proses tidak kita ketahui atau bersifat dinamis? Kita tidak mungkin menggunakan variabel seperti diatas. Bagaimana jika kita ingin menghitung total dari variabel biasa? total = x1 + x2 + x3 + x4 + x5 + + xn;

ArrayDi dalam C dan pemrograman yang lain, terdapat suatu fasilitas untuk menyimpan data-data yang bertipe data sama dengan suatu nama tertentu = ARRAY/LARIK Array adalah suatu tipe data terstuktur yang berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu. Elemen-elemen array tersusun secara sekuensial di dalam memori sehingga memiliki alamat yang berdekatan. Array dapat berupa array 1 dimensi, 2 dimensi, bahkan ndimensi. Elemen-elemen array bertipe data sama tapi bisa bernilai sama atau berbeda-beda.

Bentuk Array

Array (2)Elemen-elemen array dapat diakses oleh program menggunakan suatu indeks tertentu Pengaksesan elemen array dapat dilakukan berurutan atau random berdasarkan indeks tertentu secara langsung. Pengisian dan pengambilan nilai pada indeks tertentu dapat dilakukan dengan mengeset nilai atau menampilkan nilai pada indeks yang dimaksud. Dalam C, tidak terdapat error handling terhadap batasan nilai indeks, apakah indeks tersebut berada di dalam indeks array yang sudah didefinisikan atau belum. Hal ini merupakan tanggung jawab programmer. Sehingga jika programmer mengakses indeks yang salah, maka nilai yang dihasilkan akan berbeda atau rusak karena mengakses alamat memori yang tidak sesuai.

Deklarasi

-Tipe data sejenis -Ada indeks yang teratur dan berurutan -Bersifat statis, harus diketahui ukurannya terlebih dahulu

Contoh dan Arti

char huruf[9] berarti akan memesan tempat di memori komputer sebanyak 9 tempat dengan indeks dari 0-8, dimana semua elemennya bertipe data karakter semuanya. Kalau satu karakter berukuran 1 byte, berarti membutuhkan memori sebesar 9 byte. int umur[10]: berarti akan memesan tempat di memori komputer sebanyak 10 tempat dengan indeks dari 0-9, dimana semua elemennya bertipe data integer semuanya. Kalau satu integer berukuran 4 bytes, berarti membutuhkan memori sebesar 4 x 10 = 20 bytes.

Contoh dan Arti (2)

int kondisi[2] berarti akan memesan tempat di memori komputer sebanyak 2 tempat dengan indeks 0-1, dimana semua elemennya bertipe data integer semuanya. Dan pada contoh di atas isi elemen-elemennya yang sebanyak 2 buah diisi sekaligus (diinisialisasi) yaitu pada elemen kondisi[0] bernilai 0, dan elemen kondisi[1] bernilai 1. int arr_dinamis[] berarti mendeklarasikan array dengan ukuran maksimum array tidak diketahui, namun ukuran tersebut diketahui berdasarkan inisialisasi yaitu sebanyak 3 elemen, yang isinya 1,2, dan 3. Kita tidak dapat mendeklarasikan array dinamis tanpa inisialisasi.

Penjelasan Lebih LanjutTanda [] disebut juga elemen yang ke- . Misalnya kondisi[0] berarti elemen yang ke nol. Array yang sudah dipesan, misalnya 10 tempat tidak harus diisi semuanya, bisa saja hanya diisi 5 elemen saja, baik secara berurutan maupun tidak. Namun pada kondisi yang tidak sepenuhnya terisi tersebut, tempat pemesanan di memori tetap sebanyak 10 tempat, jadi tempat yang tidak terisi tetap akan terpesan dan dibiarkan kosong.

CONTOH PROSESArray / Larik

ALGORITMA For Indeks 1 to N PROSES LARIK EndforMengisi elemen larik dengan 0 (inisialisasi) Mengisi elemen larik dari piranti masukan Mencetak elemen larik ke piranti keluaran

do

INISIALISASIArray / Larik

ALGORITMA For Indeks 1 to 8 do A[Indeks] = 0 EndforArray A satu dimensi : 8 indeks (1 s/d 8) dan data 1, 7, 18 dst.1

0

7

0

18

0

03

0

69

0

24

0

08

0

70

0

1

2

3

4

5

6

7

8

INPUT ELEMENArray / Larik

ALGORITMA For Indeks 1 to 8 do Input A[Indeks] EndforArray A satu dimensi : 8 indeks (1 s/d 8) dan data 1, 7, 18 dst.1

?1 ?3 ?5

1

7

3

18

5

03

7

69

2

24

9

08

4

70

7

1

2

3

4

5

6

7

8

CETAK ELEMENArray / Larik

7 4 9 2 5 3 1

ALGORITMA For Indeks 1 to 8 do Print A[Indeks] Endfor

Array A satu dimensi : 8 indeks (1 s/d 8) dan data 1, 7, 18 dst.1

1

7

3

18

5

03

7

69

2

24

9

08

4

70

7

1

2

3

4

5

6

7

8

Contoh dalam C

Contoh (2)

Terlihat bahwa alamat array berurutan dengan jarak antar alamat adalah 4 bytes (integer berukuran 4 bytes)

Contoh (3)

Contoh (4)

Contoh (5)

Contoh (6)

Pengiriman Parameter fungsi berupa array dimensi 1Pengiriman parameter berupa array dimensi 1 bersifat by referenceKarena yang dikirimkan adalah alamat dari elemen pertama array, bukan seluruh nilai elemen-elemen array. Alamat pertama array ditujukkan oleh nama arraynya, tidak perlu dituliskan indeksnya. Bentuk ini akan terlihat pada argumen di parameter aktual.

Contoh

Jika diganti: antonius rachmat chrismanto

Contoh (2)

SoalBuatlah program untuk menyalin isi array A ke array B yang kosong dengan jumlah elemen sama.

SoalKembangkan soal tadi, dimana array B akan berisi elemen-elemen array A tapi dengan posisi terbalik, data pertama di array A akan berada di data terakhir di array B!

SoalKembangkan soal no 1, elemen B diisi dengan data yang dari array A yang nilainya berupa bilangan genap dan lebih besar dari nol pada indeks yang sama dengan array A!

SoalKembangkan soal no-1 dimana array B akan diisi dengan data dari array A yang nilainya berupa bilangan genap, lebih besar dari nol, tapi indeksnya berurutan!

PRBuatlah program dengan array untuk menghitung total, rata-rata, maximum, minimum! Kemudian tambahkan kemampuan:Mencari bilangan max dan min kedua Frekuensi kemunculan suatu bilangan

Tambahkan kemampuan:Untuk mencari data Untuk menghapus suatu data

Dibuat dalam menu dan fungsi

NEXT: Array 2 Dimensi