0% menganggap dokumen ini bermanfaat (0 suara)
171 tayangan33 halaman

Algoritma Pemrograman-7

Tiga contoh soal algoritma pemrograman yang disajikan mencakup penghitungan deret matematika, pengelompokkan bilangan ganjil dan genap, serta pemilihan operasi matematika melalui menu interaktif.

Diunggah oleh

Accang
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
171 tayangan33 halaman

Algoritma Pemrograman-7

Tiga contoh soal algoritma pemrograman yang disajikan mencakup penghitungan deret matematika, pengelompokkan bilangan ganjil dan genap, serta pemilihan operasi matematika melalui menu interaktif.

Diunggah oleh

Accang
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 33

Algoritma Pemrograman

Modul 7-1 & 7-2:


Beberapa Contoh
Instruksi
• Berikut ini disajikan beberapa contoh soal
yang mencakup instruksi-instruksi yang telah
dipelajari selama ini.
• Contoh soal ini harus dikerjakan mulai dari :
– Pembuatan Flowchart
– Penyusun algoritma / pseudo-code
– Penyusunan program C++
– Uji-coba program

11/29/2021 Algoritma Pemrograman, @SUARGA 2


Contoh Soal-1
• Buatlah sebuah algoritma untuk menghitung jumlah deret dengan N
buah suku sbb: S = 1 – 1/2 + 1/4 - 1/6 + 1/8 - 1/10 + 1/12 - 1/14 +

 
• Analisis:
Ketika dijalankan maka akan ada permintaan untuk memasukkan
jumlah suku N
Bila diperhatikan maka tanda berselang seling positif dan negatif, pada
posisi ganjil maka tandanya positif dan pada posisi genap tandanya
negatif
Nilai yang dijumlahkan adalah kelipatan dari (1/2) yang dikalikan sesuai
dengan posisi-nya, mula-mula 1/2 kemudian 1/(2*2), 1/(2*3), ….

11/29/2021 Algoritma Pemrograman, @SUARGA 3


• Pseudo-code: k  0;
Algoritma Jumlah_Deret_V1
{ menjumlahkan deret bersuku N } while ( cacah < = N ) do
  cacah  cacah + 1;
Definisi Variabel k  k + 2;
integer N, cacah, k; if ( cacah % 2 = 0 )
real S; then S  S – 1/k;
  else S  S + 1/k;
Rincian Langkah endif.
write ( “Berapa banyak suku ? “); endwhile.
read ( N ); write ( “Jumlah deret = “, S);
  S  1;
 
cacah  1;

11/29/2021 Algoritma Pemrograman, @SUARGA 4


Flowchart

11/29/2021 Algoritma Pemrograman, @SUARGA 5


C++

11/29/2021 Algoritma Pemrograman, @SUARGA 6


Contoh Soal-2
• Andaikan dari keyboard dimasukkan N buah data
(bilangan bulat) kemudian akan dikelompokkan
menjadi dua macam yaitu kelompok bilangan ganjil
dan kelompok bilangan genap dalam bentuk jumlahan
sehingga keluaran (output) berbentuk sebagai berikut:
 
Jumlah bilangan Ganjil = ….
Jumlah bilangan Genap = ….
 

11/29/2021 Algoritma Pemrograman, @SUARGA 7


• Analisis:
1. Berapa banyak data harus diketahui terlebih
dahulu  N
2. Lakukan perulangan sebanyak N kali untuk:
1. meminta data
2. memeriksa data apakah masuk ganjil atau genap
3. menjumlahkan data sesuai kelompoknya
3. Tampilkan hasil penjumlahan.

11/29/2021 Algoritma Pemrograman, @SUARGA 8


• Pseudo-code  
Algoritma GanjilGenap repeat
{ mengelompokkan data dalam write ( “Masukkan bilangan ke-“,
bentuk jumlahan bilangan ganjil dan cacah );
genap } read ( angka );
  if ( angka % 2 = 0 )
Deklarasi then Genap  Genap +
integer cacah, N, angka, angka;
Genap, Ganjil;
else Ganjil  Ganjil + angka;
 
endif.
Deskripsi
cacah  cacah + 1;
write ( “Berapa banyak bilangan ?
“ ); until ( cacah > N );
read ( N ); write ( “Jumlah bilangan Ganjil = “,
Ganjil);
cacah  1;
write ( “Jumlah bilangan Genap = “,
Genap  0; Genap);
Ganjil  0;
11/29/2021 Algoritma Pemrograman, @SUARGA 9
Flowchart

11/29/2021 Algoritma Pemrograman, @SUARGA 10


C++

11/29/2021 Algoritma Pemrograman, @SUARGA 11


Contoh Soal-3
Andaikan operasi terhadap dua bilangan dapat dipilih melalui satu “menu” sebagai berikut :

Pilih Operasi yang di-inginkan :


 
+ Penjumlahan
- Pengurangan
/ Pembagian
* Perkalian
Jenis operasi ?: _
 
Masukkan angka 1: _
Masukkan angka 2: _
Hasil = …
 
Masih mau coba (Y/T) ?
 
Apabila jawaban untuk mencoba ulang adalah ‘Y’ maka menu operasi diatas dimunculkan
kembali dan proses yang sama berulang kembali hingga jawaban pengguna program adalah ‘T’.
11/29/2021
  Algoritma Pemrograman, @SUARGA 12
Pseudo-code:
Algoritma MenuProgram
{ memilih operasi berdasarkan pilihan pada Menu program }
 
Deklarasi
real angka1, angka2, hasil;
char pilihan, ulang;
 
Deskripsi
ulang  ‘Y’;
while ( ulang = ‘Y’ || ulang = ‘y’ ) do
write ( “Pilih Operasi yang di-inginkan :” );
write ( “+ Penjumlahan “ );
write ( “ - Pengurangan “);
write ( “ / Pembagian “ );
write ( “* Perkalian “ );
write ( “ “);
write ( “Jenis operasi?: “);
read ( pilihan );

11/29/2021 Algoritma Pemrograman, @SUARGA 13


write ( “Masukkan angka 1: “ );
read ( angka1 );
write ( “Masukkan angka 2: “ );
read ( angka2 );
 
case ( pilihan )
‘ + ‘ : hasil  angka1 + angka2;
‘ – ‘ : hasil  angka1 – angka2;
‘ / ‘ : if ( angka2 = 0 )
then write ( “hasil tak berhingga “ );
else hasil  angka1 / angka2;
endif.
‘*’ : hasil  angka1 * angka2;
default : write ( “Pilihan operasi salah !”);
hasil  0;
endcase.
if ( angka2 != 0 )
then write ( “Hasil = “, hasil );
endif.
write ( “Masih mau coba (Y/T) ? “ );
read ( ulang );
endwhile.
11/29/2021 Algoritma Pemrograman, @SUARGA 14
Flowchart

11/29/2021 Algoritma Pemrograman, @SUARGA 15


C++

11/29/2021 Algoritma Pemrograman, @SUARGA 16


Contoh Soal-4
Andaikan ada N bilangan biasa yang dimasukkan lewat keyboard,
maka nilai rata-rata adalah jumlah semua bilangan tersebut dibagi N,
dengan kata lain:
 
Rata-rata = (x1 + x2 + … + xN) / N = Σ x / N
 
Varians adalah nilai yang menunjukkan besarnya jumlah perbedaan
dari setiap bilangan terhadap nilai rata-rata, atau:
 
Varians = ( Σ ( x – Rata)2 ) / (N-1) = ( Σx2 – (Σx)2 /N ) / (N-1)

11/29/2021 Algoritma Pemrograman, @SUARGA 17


• Analisis:
- Tetapkan N
- Lakukan perulangan mulai dari i=1 s/d N
- masukkan x
- jumlahkan x, S = S + x
- jumlahkan x2, K = K + x2
- Hitung Rata = S / N
- Hitung Varians = ( K – S2 / N ) / (N-1)
11/29/2021 Algoritma Pemrograman, @SUARGA 18
Pseudo-code:
Algoritma Nilai_Rata_dan_Varians
{ menghitung nilai Rata dan Varians dari N buah bilangan }
 
Definisi Variabel
integer N, i ;
real x, S, K, Rata, Varians;
 
Rincian Langkah
write ( “Berapa banyak bilangan ? : “ );
read ( N );
S  0;
K  0;
for ( i =1 to N step 1 )
write ( “Masukkan bilangan ke – “, i );
read ( x );
S  S + x;
K  K + x * x;
endfor.
Rata  S / N;
Varians  ( K – S*S/N ) / (N – 1);
write ( “Rata-rata = “, Rata );
write ( “Varians = “, Varians );
11/29/2021 Algoritma Pemrograman, @SUARGA 19
Flowchart

11/29/2021 Algoritma Pemrograman, @SUARGA 20


C++

11/29/2021 Algoritma Pemrograman, @SUARGA 21


Contoh Soal-5
• Dewasainibanyakperusahaanfinansial yang
•  
menawarkankreditpembeliandalambentukcicilan. Jumlah yang
harusdibayarkansetiapbulanolehpelangganbergantungpadatigamacamfaktor, yaitu:
Jumlah Modal yang dipinjam, besarnyabungapinjaman, dan lama periodecicilan.
Sebuahalgoritmaakandisusununtukmencetakdaftarpembayarancicilan. Variabel yang
terkaitantara lain adalah:
• Modal : total modal yang dipinjam
• Bunga : bungapinjaman / tahun
• Lama : lamanyapinjamandalamtahun
• Cicilan : cicilanperbulan
•  
• Besarnyacicilandihitungberdasarkanrumus :
•  

•  
• BungadihitungperbulansehinggaBunga =
Bunga/12,dannadalahlamanyapinjamandalambulansehinggan = Lama * 12.

11/29/2021 Algoritma Pemrograman, @SUARGA 22


Pseudo-code:
Algoritma Cicilan
{ pembayaran cicilan atas pinjaman modal }
 
Definisi Variabel
real modal, cicilan, bunga;
real ModalBulanan, BungaBulanan, ModalTahunan, BungaBulanan;
int lama, n;
 
Rincian Langkah
{ memasukkan data utama }
write(“Masukkan Modal yang akan dipinjam : “);
readln(modal);
write(“Masukkan Bunga pinjaman / tahun : “);
readln(bunga);
write(“Berapa tahun akan dipinjam : “);
readln(lama);
{ melakukan proses perhitungan }
bunga  bunga/12;
n  lama * 12;
cicilan  (modal*bunga*(bunga+1)^n)/((bunga+1)^n – 1);

11/29/2021 Algoritma Pemrograman, @SUARGA 23


writeln(“Pembayaran cicilan setiap bulan = Rp. “, cicilan);
{ membuat daftar pembayaran }
writeln(“Tahun”, “Bulan”, “ModalTerbayar”, “BungaTerbayar”);
for thn=1 to lama
BungaTahunan  0.0;
ModalTahunan  0.0;
for bln = 1 to 12
BungaBulanan  bunga*Modal;
ModalBulanan  cicilan – BungaBulanan;
BungaTahunan  BungaTahunan + BungaBulanan;
ModalTahunan  ModalTahunan + ModalBulanan;
writeln(thn, bln, ModalBulanan, BunganBulann);
Modal  Modal – ModalBulanan;
endfor;
writeln(“Akkhir tahun-“,thn);
writeln(“Modal Terbayar = “, ModalTahunan, “Bunga Terbayar = “,
BungaTahunan);
writeln(“Sisa Utang Modal = “, Modal);
endfor;

11/29/2021 Algoritma Pemrograman, @SUARGA 24


Flowchart

11/29/2021 Algoritma Pemrograman, @SUARGA 25


C++

11/29/2021 Algoritma Pemrograman, @SUARGA 26


Contoh Soal-6
Sebuah perusahaan agribisnis memiliki pesawat-pesawat kecil
yang disewakan untuk melakukan penyemprotan tanaman
pada areal perkebunan yang luas, biaya sewa yang dikenakan
adalah sebagai berikut:
 
tipe-1: Penyemprotan rumput / alang-alang, Rp.250.000. per
hektare
tipe-2 : Penyemprotan hama belalang, Rp. 500.000 per hektar
tipe-3: Penyemprotan kutu, hama wereng, dsb Rp. 750.000
per hektar
tipe-4 : Penyemprotan segala jenis hama dan segala macam
rumput Rp. 1.250.000 / hektar

11/29/2021 Algoritma Pemrograman, @SUARGA 27


Apabila luas areal yang akan disemprot lebihdari
100 hektar maka petani memperoleh discount
sebesar 10%, disamping itu apabila total
pembayaran diatas Rp. 150 juta, maka kelebihan
pembayaran akan menerima potongan 10%.
Data yang diterima perusahaan adalah: Nama
petani, luas lahan, dan tipe penyemprotan.
Beberapa petani boleh saja berkelompok namun
diwakili oleh satu petani saja.
11/29/2021 Algoritma Pemrograman, @SUARGA 28
• Pseudo-code:
Algoritma Penyemprotan
{ menghitung biaya penyemprotan tanaman }
 
Deklarasi
String Nama;
real Luas;
int tipe;
real biaya, potongan1, potongan2, jumPot;
 
Deskripsi
{ masukkan data petani }
writeln(“Masukkan Data Petani : “);
write(“Nama petani : “);
readln(Nama);
write(“Luas lahan : “);
readln(Luas);
write(“Tipe penyemprotan : “);
readln(Tipe);
11/29/2021 Algoritma Pemrograman, @SUARGA 29
{ Menghitung biaya }
case (Tipe) of
1 : biaya Luas * 250000;
2 : biaya  Luas * 500000;
3 : biaya  Luas * 750000;
4 : biaya  Luas * 1250000;
default : writeln(“Tipe penyemprotan salah Ulangi!”);
Exit;
endcase;

{ menghitung potongan }
if (luas > 100)
then potongan1 = 0.1 * biaya;
else potongan1 = 0.0;
endif;
11/29/2021 Algoritma Pemrograman, @SUARGA 30
biaya  biaya – potongan1;
if (biaya > 150000000)
then potongan2 = 0.1 * (biaya – 150000000);
else potongan2 = 0.0;
endif;
biaya  biaya – potongan2;
jumPot  potongan1 + potongan2;
{ menampilkan hasil }
write(“Sdr : “, Nama, “ mendapat potongan : Rp. “,
jumPot);
writeln(“ dan harus membayar biaya Rp. “, biaya);
11/29/2021 Algoritma Pemrograman, @SUARGA 31
Flowchart

11/29/2021 Algoritma Pemrograman, @SUARGA 32


C++

11/29/2021 Algoritma Pemrograman, @SUARGA 33

Anda mungkin juga menyukai