Anda di halaman 1dari 3

13 Contoh-contoh Pemecahan Masalah II va menyajikan contoh-contoh pemecahan

masalah yang mencakup materi larik, termasuk diatasi prosedur dan fungsi. nh Masalah
13.1: Diskon harga jual barang kerangka ulang tahun, toserba memberi diskon Dasar p%
untuk seluruh barang. Misalkan data kode barang dan harga jual sele ini telah disimpan di
dalam larik HargaJual. Harga.Jual tipe LarikBarang yang menyatakan pernyataan datanya
sebagai berikut: DEKLARASI const Nmaks - 100 jenis Barang record <KodeBrg: integer,
HargaBrg: real type LarikBarang: array [i..Nmaks] dari Barang HargaJual: LarikBarang
Tulislah upaya untuk membeli harga jual barang- barang di toserba dengan diskon yang
diberikan. Jumlah barang barang N buah. Prosedur penyelesaian TurunkanHarga (input /
output HargaJual: LarikBarang, input p: real, inputN: integer) Menurunkan harga seluruh
barang hingga diskon pt.} K.Awal: N adalah jumlah barang yang ada di toserba; larik
BargaJual (1..N} sudah terdefinisi elemen-elemennya. KAkhir: elemen-elemen larik
HargaJual semakin sedikit dari semula) DEKLARASI 341 eab 13 - Contoh-contoh
Pemulihan Masalah II

Paket Inder) Integer diskonifarga ALOORITNA nyata untuk ie1 ke N do diskontarga (p / 100)
HargaJual (i HargaJual (1) RargaJual (i Endfor diskonHarga CouL Algoritma 13.1. Karakter
a Contoh Masalah 13.2: Menghitung jumlah kemunculan '1' dalam larik hanya ada dua
macam: 'o' dan 1 '. Buatlah prosedur untk menghitung jumlah kemunculan 1' di dalam larik
tersebut. Penyelesaian Untuk menghitung jumlah kemunculan i 'di dalam larik, kita harus
memerika setiap elemen larik mulai dari elemen pertama hingga elemen ke-l. larik sama
dengan '1', maka pencacah jumlah '1' dinaikkan 1. Misalkan pae adalah C dan tipenya
Larikkar. Deklarasi Larikkar adalah sa lark bawah ini: DEKLARASI const Nmaks = 100 jenis
LarikKar i array (1 .. Nmaks] dari char (jumlah elemen prosedur larik HitungJumlah 1 (input
C: LarikKar, input n integer, output m: integer) Menghitung jumlah karakter 1 'di dalam larik
C.) K . Awal: Elemen larik C [1..n] sudah berisi karakter 0 dan K. Akhir: m berisi jumlah
karakter '1' di dalam larik C) DEKLARASI i: integer ALGORITMA: untuk i + 1 hingga n
dilakukan jika cli) = 1 lalu mem + 1 endif end untuk Algoritma 13.2 Menghitung jumlah
kemunculan karakter '1'. Contoh Masalah 13.3: Menghitung mode Misalkan larik integer
Sebuah elemen buah berisin-elemen yang sudan terurut menaik / membesar. Buatlah
prosedur untuk menghitung modus. Modus adalah elemen yang paling sering muncul di
dalam larik. 342 Algoritma dan Pemrograman

Misalnya, mode dari larik A di bawah ini adalah 6. 444 5 15 16 6 6 6 6 modus = 6 karena
Karena larik sudah terurut, maka tentukan mode elemennya yang relatif mudah
dibandingkan larik yang tidak terurut. Mula-mula frekuensi modus PrekModus) kita
inisialisasi dengan o. Selanjutnya elemen pertama kandidat mode (KandidatModus) dengan
frekuensi kemunculanya Aita a maka FrekKandidatModus selalu dinaikkan 1. Jika elemen
sudah berbeda, maka mode dari elemen pertama harus dikembalikan kita akan menghitung
mode elemen yang baru, sebelumnya sudah ada FrekKandidatModus dengan FrekModus
dengan mode sementas, maka KandidatModus menjadi mode sementara yang baru. ika
FrekkandidatModus lebih besar atau sama dengan prosedurnya modus berikut: prosedur
HitungModus (1nput A: LarikInt, input n: integer. output mode: integer) Menghitung modus
dari elemen-elemen larik A.} Merg: elemen-elemen larik nilai integer yang sudah rut menaik
/ membesar; n adalah ukuran latik A) Akhir: modus kumpulan elemen yang paling banyak
muncul di dalam A DEKLARASI itu bilangan bulat MasihSama PrekModus, KandidatModus,
FrekkandidatModus integer (indeks larik) boolean ALGORITMA: FrekModus e0 (frekuensi
modus berubah) } sementara N do KandidatModus + A [i] FrekkandidatModus + 1 (Ali)
dihitung sebagai mode} (frekuensi kemunculan kändidat mode} {tinjau elemen i + 1}
MasihSama e true sementara (MasihSama) dan (i SN) lakukan jika Ali] = KandidatModus
lalu FrekKandidatModus t FrekKandidatModus + 1 endif iti + 1 sementara tidak MasihSama
atau i> N mutakhirkan data modus sementara} 1E FrekkandidatModus 2 FrekModus lalu 345
eab 13 - Contoh-contoh Pemantauan masalah keuangan | berikutnya sama dengan

itung Frekuensi kemunculan elemen larik A) tor se-1 ke N do FntAI (A [A11-countA (ALAJ1
endor Algoritma 13.4 Menghitung frekuensi kemunculan elemen-elemen di dalam larik
Contoh Masalah 13.5: menggambar histogram jumlah kemunculan elemen- Misalkan countA
[1. .m] sudah berisi jumlah kemunculan nilai-nilai yang emen di dalam larik bisa di dalam
rentang i sampai selesai diselesaikan counta [i) berisi aS culan nilai i (larik counta yang
dihasilkan oleh pencarian pada contoh dalam larik. 12.4). Buatlah prosedur dalam bahasa
Pascal dan bahasa C untuk histogram yang menentukan jumlah kemunculan nilai-nilai di
mendatar (contoh histogram), rai contoh, tinjau larik countA dari Contoh Masalah 13.4. ini
(satu unit dinyatakan dengan karakter bintang): 1 ** 2 *** 3 **** 6 ** Penyelesaian countA [i]
berisi jumlah kemunculan nilai i. Untuk setiap baris i, cetak karak ter "*" sebanyak nilai
countA [i]. prosedur CetakHistogram (countA: LarikInt; m: integer); (Menggambar histogram
dari countA [1..m]. CountA (i] beriei jumlah kemunculan nilai i.} (K.Awal: elemen-elemen larik
countA sudah berisi nilai integer; m sudah berisi isi larik countA) (K. Akhir: histogram yang
menyatakan countA [1..m) tercetak.} (* DEKLARASI *) var (indeks larik) i, j: integer; (*
ALGORITMA: *) mulai untuk i: = 1 hingga m mulai menulis (i, " ); untuk j: -1 untuk
menghitung [i] lakukan write (*); (endfor) Bab 13 - Contoh-contoh Pemecahan Masalah I

akhir writeln (untuk) akhir ganti baris baru goritma 13.5 Menggambar histogram dari larik
countA [1.m] Diberikan karakter larik yang bernama Huruf dan elemen. Yang sudah
terdefinisi setiap elemennya (sudah berisi karaot Susunan elemen-elemen larik karakter
yang membentuk kata '. Ingin menentukan apa kata yang dibuat oleh rasis elemen tersebut
adalah palindrom. algoritmanya, Contoh Masalah 13.6: Palindrom Contoh: palindrom
palindrom palindrom a bukan palindrom u 1a | k Penyelesaian Gagasan algoritma palindrom
adalah guna (memindai) elemen Jasi Arah "kiri" dan dari Arah "kanan" satu per satu. ,
apakah sama. Jika sama, teruskan pembandingan dan pemindaian bertemu di tengah larik.
Jika pada pemeriksaan ditem huruf yang tidak sama, periksa dapat disingkirkan seperti itu
bukan palindrom. Sebuah kata kata palindrom ika e pemeriksan sampai ketemu di
tengah-tengah, huruf di kiri dan di ka selalu sama. Kita mengumumkan algoritma palindrom
dengan dua versi, sehana berikut, versi p ertama tanpa menggunakan peubah boolean,
sedangkan vers kedua menggunakan peubah boolean: (a) Versi 1 (tanpa menggunakan
peubah boolean) berfungsi Palindrom (input Huruf: Larikkar, input n: integer) boolean |
Mengembalikan nilai true jika mengatur huruf di dalam larik Huruf membuat kata yang
palindrom, atau false jika tidak palindrom. DEKLARASI 1: integer i integer indeka
penelusuran dari kiri indeks pemindaian dari kanan ALGORITMA: 346 Algoritma dan
Pemrograma

Anda mungkin juga menyukai