Prak. Alpro Modul 3

BAB I
PENDAHULUAN

1.1    Latar Belakang
Pengenalan kepada praktikan tentang pengulangan atau looping dan pendeklarasiannya dalam bahasa C.
1.2    Tujuan
Tujuan mahasiswa mengikuti praktikum Algortima Pemrograman Modul 1 ini adalah :
1.        Praktikan dapat mengetahui dan mengenali macam-macam pengulangan dalam bahasa C.
2.        Praktikan dapat mengetahui dan memahami algoritma pengulangan for, while, dan do while.
3.        Praktikan dapat mengetahui dan memahami cara mendeklarasikan pengulangan for, while, dan do while.
4.        Praktikan dapat mengetahui perbedaan pengulangan for, while, dan do while.


BAB II
DASAR TEORI

2.1    Teori Singkat
Terdapat dua model struktur pengulangan, yaitu:
1.      Struktur Pengulangan Tanpa Kondisi (unconditional looping). Di dalam struktur ini, instruksi-instruksi di dalam badan pengulangan diulangi sejumlah kali yang dispesifikasikan (jumlah pengulangan sudah diketahui sebelum eksekusi). Contoh: Struktur FOR.
2.      Struktur Pengulangan Dengan Kondisi (conditional looping). Di dalam struktur ini, jumlah pengulangan tidak diketahui sebelum eksekusi program. Yang dapat ditentukan hanya kondisi berhenti pengulangan, artinya instruksi-instruksi di dalam badan pengulangan diulangi sampai kondisi berhenti terpenuhi. Contoh: Struktur WHILE dan Struktur DO-WHILE.
Macam-macam struktur pengulangan:
a.      Struktur FOR
Struktur pengulangan FOR digunakan untuk mengulang statemen atau satu blok statemen berulang kali. Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi. Untuk mencacah sudah jumlah pengulangan diperlukan sebuah variabel pencacah (counter). Variabel ini nilainya selalu bertambah satu setiap kali pengulangan dilakukan. Jika cacah pengulangan sudah mencapai jumlah yang dispesifikasikan, maka proses pengulangan berhenti. Pada struktur FOR, pencacah haruslah dari tipe data yang memiliki predecessor dan successor, yaitu integer atau karakter. Tipe riil tidak dapat digunakan sebagai pencacah. Aksi adalah satu atau lebih instruksi yang diulang.
Bentuk struktur FOR ada dua macam:
§  Menaik (ascending)
Pada struktur FOR menaik, nilai_awal harus lebih kecil atau sama dengan nilai_akhir. Jika nilai_awal lebih besar dari nilai_akhir, maka badan pengulangan tidak dimasuki. Pada awalnya, pencacah diinisialisasikan dengan nilai_awal. Nilai pencacah secara otomatis bertambah satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai pencacah sama dengan nilai_akhir. Jumlah pengulangan yang terjadi = nilai_akhir nilai_awal + 1. Struktur Bahasa C untuk pengulangan FOR menaik ditunjukkan pada Gambar 3.1.

Gambar 3.1. Struktur Bahasa C Untuk Pengulangan FOR Menaik
§  Menurun (descending)
Pada struktur FOR menurun, nilai_akhir harus lebih besar atau sama dengan nilai_awal. Jika nilai_akhir lebih kecil dari nilai_awal, maka badan pengulangan tidak dimasuki. Pada awalnya, pencacah diinisialisasikan dengan nilai_akhir. Nilai pencacah secara otomatis berkurang satu setiap kali aksi diulangi, sampai akhirnya nilai pencacah sama dengan nilai_awal. Jumlah pengulangan yang terjadi = nilai_akhir nilai_awal + 1. Struktur Bahasa C untuk pengulangan FOR menurun ditunjukkan pada Gambar 3.2.

Gambar 3.2. Struktur Bahasa C Untuk Pengulangan FOR Menurun
b.      Struktur WHILE
Pada struktur WHILE, aksi (atau runtunan aksi) akan dilaksanakan berulang kali selama kondisi bernilai true. Jika kondisi bernilai false, badan pengulangan tidak akan dilaksanakan, yang berarti pengulangan selesai. Yang harus diperhatikan adalah pengulangan harus berhenti. Pengulangan yang tidak pernah berhenti menandakan bahwa logika pemrograman tersebut salah. Pengulangan berhenti apabila kondisi bernilai false. Agar kondisi suatu saat bernilai false, maka di dalam badan pengulangan harus ada instruksi yang mengubah nilai variabel kondisi.

Gambar 3.3. Struktur Bahasa C Untuk Pengulangan WHILE
c.       Struktur DO-WHILE
Struktur ini mendasarkan pengulangan pada kondisi boolean. Aksi di dalam badan pengulangan diulang sampai kondisi boolean bernilai true. Dengan kata lain, jika kondisi boolean masih false, pengulangan masih terus dilakukan. Karena proses pengulangan suatu saat harus berhenti, maka di dalam badan pengulangan harus ada aksi yang mengubah nilai variabel kondisi.


BAB III
TUGAS PENDAHULUAN

3.1.  Pertanyaan
1.      Jelaskan perbedaan antara struktur pengulangan FOR, WHILE dan DO-WHILE!
2.      Buatlah algoritma untuk menampilkan deret bilangan ganjil antara 0 s/d 100!
3.      Buatlah algoritma untuk menampilkan deret bilangan 1, 5, 9, 13, ... (berhenti jika melebihi 300)!
4.      Buatlah algoritma untuk menampilkan deret bilangan 1, 1, 2, 1, 2, 3, ... (berhenti jika sama dengan batas nilai tertentu yang dimasukkan melalui piranti masukan)!
Contoh:
Masukan batas nilai: 4
Deret Keluaran: 1, 1, 2, 1, 2, 3, 1, 2, 3, 4
3.2.  Penyelesaian
1.      For : pengulangan ini dipilih jika jumlah pengulangan diketahui dengan pasti, tipe pengulangan yang telah diketahui jumlah pengulangan yang harus dilakukan biasanya disebut tranversal
While : pengulangan ini dipilih jika jumlah pengulangan tidak diketahui dengan pasti dan diperlukan pemeriksaan kondisi pengulangan di awal blok, sehingga jika tidak memenuhi kondisi pengulangan ada kemungkinan pengulangan ini tidak dikerjakan sama sekali
Do – While : pengulangan ini dipilih jika jumlah pengulangan tidak diketahui dengan pasti dan tidak diperlukan pemeriksaan kondisi pengulangan di awal bloik, sehingga minimal blok pengulangan dikerjakan sekali
2.      Algoritma Deret Bilangan Ganjil antara 0 s/d 100
Deklarasi
i:integer
Deskripsi
Read(100)
For i ß 0 to 100 do
if i mod 2 <> 0 then
write(‘ ‘,i)
end for
end
 3.      Algoritma Deret Bilangan 1, 5, 9, 13, ... (berhenti jika melebihi 300)
Deklarasi
i,j,nilai:integer
Deskripsi
read(nilai)
i ß 1
repeat
write(i)
i ß i+4
until
i >=300
end
4.      Algoritma Deret Bilangan 1, 1, 2, 1, 2, 3, ... (berhenti jika sama dengan batas nilai tertentu yang dimasukkan melalui piranti masukan)
Deklarasi
a,b,c,bts:integer
deskripsi
read(bts)
i ß 0
repeat
write(i)
i ß i+1
until
i ß bts
end
BAB IV
IMPLEMENTASI

4.1.  Kegiatan Praktikum
Pada saat praktikum, kerjakan tugas-tugas berikut ini:
1.      Buat program untuk tugas prepraktikum 2!
2.      Buat program untuk tugas prepraktikum 3!
4.2.  Implementasi Kegiatan Praktikum
1.      For
#include
int main(){
int a;
for(a=1;a<=100;a+=2){
printf("%d ", a);
}
printf("\n");
}
While
#include
int main(){
int a=1;
while(a<=100){
printf("%d ", a);
a+=2;
}
printf("\n");
}
Do While
#include
int main(){
int a=1;
do{
printf("%d ", a);
a+=2;
} while(a<=100);
printf("\n");
}
 2.      For
#include
int main(){
int a;
for(a=1;a<=300;a+=4){
printf("%d ", a);
}
printf("\n");
}
While
#include
int main(){
int a=1;
while(a<=300){
printf("%d ", a);
a+=4;
}
printf("\n");
}
Do While
#include
int main(){
int a=1;
do{
printf("%d ", a);
a+=4;
}while(a<=300);
printf("\n");
}
 4.3.  Tugas Akhir
1.      Buatlah algoritma dan terjemahkan dalam Bahasa C untuk membuat bentuk belah ketupat dari deretan angka berdasarkan batas nilai yang dimasukkan melalui piranti masukan!
Contoh:
Masukkan batas nilai:
Hasil belah ketupat deretan angka:
4.4.  Penyelesaian Tugas Akhir
1.      #include
int main(){
int isi,batas,bil,temp,temp2,midkir,midkan,seg1,seg2,seg3,seg4,spas1,spas2;
printf("Masukan Angka : ");scanf("%d",&bil);
isi=bil-1;
temp=isi;
temp2=isi;

for (batas=1;batas<=isi;batas++){
/*SEGITIGA KIRI ATAS*/
for (spas1=isi;spas1>=batas;spas1--)
printf("%s"," ");
for (seg1=1;seg1<=batas;seg1++)
printf("%d",seg1);
/*SEGITIGA KANAN ATAS*/
for (seg2=batas-1;seg2>=1;seg2--)
printf("%d",seg2);
printf("\n");
}
/*TENGAH*/
for(midkir=1;midkir<=bil;midkir++)
printf("%d",midkir);
for(midkan=bil-1;midkan>=1;midkan--)
printf("%d",midkan);
printf("\n");

for (batas=1;batas<=isi;batas++){
/*SEGITIGA KIRI BAWAH*/
for (spas2=1;spas2<=batas;spas2++)
printf("%s"," ");
for (seg3=1;seg3<=temp;seg3++)
printf("%d",seg3);temp=temp-1;
/*SEGITIGA KANAN BAWAH*/
for (seg4=temp2-1;seg4>=1;seg4--)
printf("%d",seg4);temp2=temp2-1;
printf("\n");
}
}

BAB V
PENUTUP

5.1.  Analisa
            FOR pada umumnya digunakan untuk melakukan pengulangan yang banyaknya sudah diketahui secaara pasti (tanpa adanya kondisi yang harus diperiksa).
WHILE terdapat suatu kondisi yang harus diperiksa terlebih dahulu.jenis pengulangan ini biasanya menggunakan sebuah variabel sebagai indeks pengulangan sekaligus sebagai kondisi yang akan diperiksa.
DO-WHILE, kondisi diletakkan di akhir blok pengulangan. Hal ini menyebabkan bahwa statemen yang terdapat di dalam blok pengulangan ini pasti akan dieksekusi minimal satu kali, walaupun kondisinya bernilai salah sekalipun.
5.2.  Kesimpulan
Struktur pengulangan dapat dibedakan menjadi dua, yaitu : Struktur Pengulangan Tanpa Kondisi (unconditional looping). Struktur Pengulangan Dengan Kondisi (conditional looping).

0 komentar:

Posting Komentar