Senin, 15 April 2013

Kasus 6.6. Buatlah suatu algoritma untuk mengecek apakah suatu kata atau kalimat merupakan palindrom atau tidak.MEET 07

Kasus 6.6. Buatlah suatu algoritma untuk mengecek apakah suatu kata atau kalimat merupakan palindrom atau tidak.
Palindrom adalah suatu kata atau kalimat yang dibaca dari kiri ke kanan sama dengan kalu dibaca dari kanan ke kiri.
Analisis :
Misalnya kata yang akan dicek adalah “kasur rusak”. Maka huruf pertama dicek, apakah sama dengan huruf pertama terakhir atau tidak, (sampai dengan pertengahan kalimat). Bila pengecekan selalu sama maka kalimat tersebut adalah palindrom. Jika terdapat satu huruf saja yang tidak sama, kalimat tersebut bukanlah palindrom. 

flowchartnya :

klik gambar untuk perbesar



Kasus 6.5. Tentukan modus dari n buah data berupa bilangan bulat (data antara 1 sampai dengan 10).MEET 07

Kasus 6.5. Tentukan modus dari n buah data berupa bilangan bulat (data antara 1 sampai dengan 10).


Analisis :
Modus adalah bilangan (data) yang paling sering muncul. Dengan kata lain, frekuensi data terbesarlah yang dicari.
Langkah penyelesaian masalahnya adalah :
setiap jenis data dihitung frekuensi kemunculannya
dari frekuensi-frekuensi tersebut dicari frekuensi terbesarnya.

procedure maksimum(data : larik; n : integer;output maks, item : integer)
{ procedure ini hasil modifikasi dari algoritma (…) karena selain nilai maks
dari larik data, juga perlu diketahui besar datanya item }
Deklarasi
i : integer
Deskripsi
     maks = data[1]
     item = 1
     for i = 2 to n do    
          if (data[i] > maks) then
               maks = data[i];
               item = i;
          endif          
     Endfor
procedure frekuensi(data : larik; n : integer; output f : larik)
{ data akan diambil nilai frekuensi f-nya }
Deklarasi
i : integer
Deklarasi
     for i = 1 to n do
     f[data[i]] := f[data[i]] + 1     { dengan prinsip memasukkan
               bola ke keranjang yang sesuai dengan nomornya }
  endfor
flowchartnya  :
KLIK GAMBAR UNTUK PERBESAR



Kasus 6.4. Buatlah algoritma untuk menentukan nilai maksimum dan minimum dari n bilangan.MEET 07

Kasus 6.4. Buatlah algoritma untuk menentukan nilai maksimum dan minimum dari n bilangan.

procedure maks_min(input data : larik; n : integer; output m1, m2 : integer).
Deklarasi
i : integer
Deskripsi     
     m1 = data[1]
     m2 = data[1]
     for i= 2 to n do    
          if (data[i] > m1) then m1 = data[i];
          if (data[i] < m2) then m2 = data[i];
     endfor     

Flowcharrtnya  =
KLIK GAMBAR UNTUK ZOOM



Kasus 6.3. Buatlah algoritma untuk menentukan nilai maksimum dari n bilangan.MEET 07

Kasus 6.3. Buatlah algoritma untuk menentukan nilai maksimum dari n bilangan.

function maksimum(input data : array [1..10] of integer, n : integer):integer.
Deklarasi
i, temp : integer
Deskripsi
     temp = data[1]
     for i = 2 to n do
 temp = maksimum2(temp, data[i])
     maksimum =  temp

flowchartnya :

KLIK GAMBAR UNTUK ZOOM



Kasus 6.2. Carilah nilai deviasi standar dari n buah data.MEET 07

Kasus 6.2. Carilah nilai deviasi standar  dari n buah data.


Analisis :
**Rumus deviasi standar adalah :
 **Terlihat bahwa nilai rata-rata dan datanya digunakan kembali.

Fungsi std(input x : array [1..10] of integer, n : integer, rata : real) : real
{Diberikan n data kemudian dicari rata-ratanya}
Deklarasi
i, jumlah : integer
Deskripsi
jumlah = 0
for i = 1 to n do
jumlah = jumlah + sqr(x[i]-rata)
endfor
std = sqrt(jumlah/(n-1))
ket: x[i] di pakai kembali
Flowchartnya :

klik gambar untuk perbesar



Kasus 6.1. Carilah rata-rata dari n bilangan bulat denganmenggunakan array. meet 07

Kasus 6.1. Carilah rata-rata dari n bilangan bulat denganmenggunakan array.


Fungsi rata (input x : array [1..10] of integer, n : integer) : real
{Diberikan n data kemudian dicari rata-ratanya}
Deklarasi
i, jumlah : integer
Deskripsi
jumlah = 0
for i = 1 to n do
jumlah = jumlah + x[i]
endfor
rata = jumlah/n

Flowchartnya : 

 
klik gambar untuk perbesar