Kerjakan tugas-tugas di bawah ini sebelum praktikum dimulai.
1. Kapankah suatu fungsi dibuat dan digunakan?
2. Buatlah algoritma untuk membuat bentuk belah ketupat dari deretan angka berdasarkan batas nilai yang dimasukkan melalui piranti masukan dengan menggunakan Fungsi!
Contoh:
Masukkan batas nilai: 4
Hasil belah ketupat deretan angka:
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 2 1
1 2 1
1
3. Buatlah algoritma untuk menghitung rumus-rumus persamaaan kuadrat berikut
ini:
- Rumus diskriminan
- Rumus mencari akar-akar persamaan
Setiap rumus dijadikan sebuah fungsi tersendiri dengan parameter-parameter yang dimasukkan dari luar fungsi.
Contoh:
Masukkan nilai a : 1
Masukkan nilai b : 4
Masukkan nilai c : 3
Hasil diskriminan (D) : 2
Nilai X1 : -1
Nilai X2 : -3
jawaban:
1. Fungsi merupakan bagian yang terpisah dari program dan dapat diaktifkan atau dipanggil di manapun di dalam program. Fungsi dalam bahasa C ada yang sudah disediakan sebagai fungsi pustaka seperti printf(), scanf(), getch() dan untuk menggunakannya tidak perlu dideklarasikan. Fungsi yang perlu dideklarasikan terlebih dahulu adalah fungsi yang dibuat oleh programmer.
2. #include <stdio.h>
int main()
int isi,batas,bil,temp,temp2,midkir,midkan,seg1,seg2,seg3,seg4,spas1,spas2;
printf("Masukkanbatasnilai: ");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");
3. int main(int argc, char *argv[])
int a,b,c;
float D, x1,x2;
int status;
printf("masukkan nilai a= ");
scanf("%d",&a);
printf("masukkan nilai b= ");
scanf("%d",&b);
printf("masukkan nilai c= ");
scanf("%d",&c);
D=(b*b)-(4*a*c);
if(D>0)
x1=((-b)+sqrt(D))/(2*a);
x2=((-b)-sqrt(D))/(2*a);
status=TRUE;
else if(D==0)
x1=((-b)+sqrt(D))/(2*a);
x2=x1;
status=TRUE;
else
status=FALSE;
printf("\nAkar-akar persamaan yang didapatkan :\n");
Modul 3 ini menjelaskan tentang Pengulangan(loopnig). Pengulangan(loopnig) sangat di perlukan dalam pembuatan program, yang mana dalam struktur pengulangan ini dapat mengulang sebuah variabel sampai ke N kali. Pengulangannya ada dua macam yakni, dari kecil ke besar(ascending) dan dari besar ke kecil(descending).
Dalam bahasa C perulangan bisa menggunakan beberapa struktur di antaranya : Struktur for, struktur while, struktur do-while. Sebenarnya fungsi dari struktur tersebut sama tapi ada yang lebih rumit, dan ada yang lebih sederhana.
1.2Tujuan
Tujuan mahasiswa mengikuti praktikum Algortima Pemrograman Modul 3 ini adalah :
Mempelajari penggunaan struktur looping di bahasa C
Untuk mengetahui Macam – macam pengulangan
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
§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.
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.
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
1.Jelaskan perbedaan antara struktur pengulangan FOR, WHILE dan DO-WHILE!
Jawaban :
·Struktur pengulangan FOR digunakan untuk mengulang statemen atau satu blok statemen berulang kali. Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi.
·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.
·Struktur DO-WHILE 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.
2.Buatlah algoritma untuk menampilkan deret bilangan ganjil antara 0 s/d 100!
Jawaban :
Deklarasi
a : integer
Deskripsi
Jika a=1 dan a kurang dari = 100 maka a=a+2
Tampilkan (a)
3.Buatlah algoritma untuk menampilkan deret bilangan 1, 5, 9, 13, ... (berhenti jika melebihi 300)!
Jawaban :
Deklarasi
a : integer
Dekripsi
Lakukan a=a+4
Tampilkan(a)
Jika a<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
Jawaban :
Deklarasi
a,b,c : integer
Deskripsi
Baca(c)
Jika a=1 dan a<=c maka a++
Jika b=1 dan b<=a maka b++
Tampilkan(b,)
BAB IV
IMPLEMENTASI
4.1 Kegiatan Praktikum
Pada saat praktikum, kerjakan tugas-tugas berikut ini:
1.Buat program untuk tugas prepraktikum 2!
Jawaban :
Source code :
#include <stdio.h>
void main(){
int a;
for(a=1;a<=100;a=a+2){
printf("%d",a);
}
}
Running program :
2.Buat program untuk tugas prepraktikum 3!
Jawaban :
Source code :
#include <stdio.h>
int main(){
int a=1;
printf("%d",a);
do{
a=a+4;
printf("%d",a);
}while (a<300);
}
Running program :
3.Tugas tambahan (ditentukan oleh asisten praktikum)!
4.2Tugas Akhir
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: 5
Hasil belah ketupat deretan angka:
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 3 2 1
1 2 3 2 1
1 2 1
1
Jawaban :
Source code :
#include <stdio.h>
int main(){
int N;
printf("Masukkan Angka : ");scanf("%d", &N);
for(int a=1; a<=N; a++){
for(int b=N; b>a; b--)
printf(" ");
for(int c=1; c<=a; c++)
printf("%d",c);
for(int d=a-1; d>=1; d--)
printf("%d",d);
printf("\n");
}
int X=N-1;
for(a=1; a<=N-1; a++){
for(int e=1; e<=a; e++)
printf(" ");
for(int f=1; f<=X; f++)
printf("%d",f);X=X-1;
for(int g=X; g>=1; g--)
printf(“%d”,g);
printf(“\n”);
}
}
Running program :
BAB V
PENUTUP
5.1Analisa
5.2Kesimpulan
Terdapat dua model struktur pengulangan, yaitu:
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.
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.
Pada umumnya satu permasalahan yang komplek memerlukan suatu penyelesaian kondisi. Dengan menyeleksi suatu kondisi, maka selanjutnya dapat ditentukan tindakan apa yang harus dilakukan, tergantung pada hasil kondisi penyeleksian. Jadi suatu aksi hanya dikerjakan apabila persyaratan atau kondisi tertentu terpenuhi.
1.2TUJUAN
Tujuan mahasiswa mengikuti praktikum Algortima Pemrograman Modul 1 ini adalah :
1.Praktikan dapat mengerti dan memahami tentang penyeleksian kondisi
2.Praktikan dapat mengerti dan memahami bagaimana menggunakan penyeleksian kondisi
3.Praktikan dapat membedakan macam-macam penyeleksian
4.Praktikan dapat mengerti dan memahami perbedaan antara IF dan CASE
BAB II
DASAR TEORI
2.1TEORI SINGKAT
Macam-macam penyeleksian kondisi:
a.Penyeleksian Satu Kasus :
Pada penyeleksian satu kasus, kondisi akan diseleksi oleh statemen if , dengan pengkondisian dimasukkan kedalam "( kondisi )" setelah deklarasi if. Bila kondisi bernilai benar (true), maka aksi didalam tanda kurung kurawal {} akan diproses. Bila kondisi bernilai salah (false), maka tidak ada aksi yang akan dikerjakan. Tanda kurung kurawal {}, berfungsi untuk memasukkan aksi yang harus dilakukan.
Gambar diagram alir penyelesaian satu kasus untuk struktur IF satu kasus ditunjukkan dalam Gambar 2.1 dan struktur penulisan dalam bahasa C dapat dilihat dari Gambar 2.2.
Gambar 2.1. Diagram Alir Struktur Penyeleksian Satu Kasus
if (kondisi)
{
aksi
}
Gambar 2.2. Struktur Bahasa C Untuk Penyeleksian Satu Kasus
b.Penyeleksian Dua Kasus, menggunakan struktur IF-ELSE:
Dalam struktur IF-ELSE, aksi1 akan dilaksanakan jika kondisi bernilai benar (true), dan jika kondisi bernilai salah (false) maka aksi2 yang akan dilaksanakan. Statemen else menyatakan ingkaran (negation) dari kondisi.
Gambar diagram alir penyelesaian dua kasus untuk struktur IF-ELSE ditunjukkan dalam Gambar 2.3 dan struktur penulisan dalam bahasa C dapat dilihat dari Gambar 2.4.
Gambar 2.3. Diagram Alir Struktur IF-ELSE
if (kondisi){
aksi1
}
else {
aksi2
}
Gambar 2.4. Struktur Bahasa C Untuk Penyeleksian Dua Kasus (IF-ELSE)
c.Penyeleksian Tiga Kasus atau Lebih (Penyeleksian Tersarang)
Untuk penyeleksian tiga kasus atau lebih juga menggunakan struktur IF-ELSE IF-ELSE sebagaimana halnya permasalahan dua kasus.
Gambar diagram alir penyelesaian tiga kasus untuk struktur IF-ELSE IF-ELSE ditunjukkan dalam Gambar 2.5 dan struktur penulisan dalam bahasa C dapat dilihat dari Gambar 2.6.
Gambar 2.5. Diagram alir dari struktur tiga kasus IF-ELSE IF-ELSE (tersarang)
if (kondisi1){
aksi1
}
else
if (kondisi2){
aksi2
}
.......
.......
else {
aksi3
}
Gambar 2.6. Struktur Bahasa C untuk Penyeleksian Tiga Kasus IF-ELSE IF-ELSE
(tersarang)
d.Struktur CASE. Struktur ini dapat digunakan untuk menganalisa penyeleksian dua kasus atau lebih dan bentuknya adalah lebih sederhana daripada struktur IF -ELSE yang memiliki bentuk bertingkat-tingkat. Gambar 2.7 memperlihatkan Struktur CASE.
switch (nama){
case kondisi1 :
aksi1
break;
case kondisi2 :
aksi2
break;
case kondisi2 :
aksi2
break;
...
...
case kondisiN :
aksiN
break;
default :
.....
break;
}
Gambar 2.7. Struktur Bahasa C Untuk Seleksi CASE
Kondisi1, kondisi2, … kondisiN dapat bernilai benar atau salah. Tiap kondisi diperiksa nilai kebenarannya mulai dari kondisi pertama sampai ditemukan kondisi yang benar. Jika kondisi ke-k benar, maka aksi ke-k dilaksanakan, selanjutnya keluar dari struktur CASE. Aksi yang dipasangkan dengan kondisi ke-k dapat lebih dari satu, karena itu ia berupa runtunan. Jika tidak ada satupun kondisi yang benar, maka aksi sesudah otherwise (optional) dikerjakan.
BAB III
TUGAS PENDAHULUAN
1.Jelaskan pada kondisi apa sebaiknya struktur seleksi if dan case digunakan! Apa perbedaan dari kedua struktur tersebut ?
Jawab:
ØStruktur IF-ELSE digunakan untuk menganalisa penyeleksian dua kasus atau lebih yang memiliki bentuk bertingkat-tingkat.
ØStruktur CASE digunakan untuk menganalisa penyeleksian dua kasus atau lebih dan bentuknya adalah lebih sederhana
2.Buatlah algoritma untuk menentukan bilangan terbesar dari tiga buah bilangan bulat yang dimasukkan melalui piranti masukan. (Asumsi: ketiga bilangan adalah bilangan yang berbeda)
Contoh keluaran yang diinginkan;
Masukkan bilangan pertama : 4
Masukkan bilangan kedua : 2
Masukkan bilangan ketiga : 7
Bilangan yang terbesar adalah : 7
Jawab:
Program Bilangan_Terbesar;
Deklarasi
Int a,b,c;
Deskripsi
cetak("Masukkan bilangan ke 1: ");
baca("%i",&a);
cetak("Masukkan bilangan ke 2: ");
baca("%i",&b);
cetak("Masukkan bilangan ke 3: ");
baca("%i",&c);
if (a>b & a>c){
cetak("Bilangan terbesar: %i\n",a);
}
else if (b>a & b>c){
cetak("Bilangan terbesar: %i\n",b);
}
else if (c>a & c>b){
cetak("Bilangan terbesar: %",c);
}
3.Buatlah algoritma konversi dari nilai angka menjadi nama hari. (Asumsi: 1=Senin, 2=Selasa, 3=Rabu, 4=Kamis, 5=Jumat, 6=Sabtu, 7=Minggu)
Contoh keluaran yang diinginkan:
Masukkan Angka yang menunjukkan hari : 1
Hari yang anda pilih : Senin
Jawab:
Program Program_Hari;
Deklarasi
int a;
cetak("Masukkan Angka yang menunjukkan hari: ");
baca("%i",&a);
switch(a){
case 1:cetak("Hari yang anda pilih: Senin");break;
case 2:cetak("Hari yang anda pilih: Selasa");break;
case 3:cetak("Hari yang anda pilih: Rabu");break;
case 4:cetak("Hari yang anda pilih: Kamis");break;
case 5:cetak("Hari yang anda pilih: Jumat");break;
case 6:cetak("Hari yang anda pilih: Sabtu");break;
case 7:cetak("Hari yang anda pilih: Minggu");break;
default :cetak("Hari yang anda pilih tidak ada");break;
}
BAB IV
IMPLEMENTASI
4.1 KEGIATAN PRAKTIKUM
1.Buat program untuk prepraktikum 2!
Jawab:
Source Code
#include <stdio.h>
#include <conio.h>
main(){
int a,b,c;
printf("Program Bilangan Terbesar\n");
printf("\n");
printf("Masukkan bilangan ke 1: ");
scanf("%i",&a);
printf("Masukkan bilangan ke 2: ");
scanf("%i",&b);
printf("Masukkan bilangan ke 3: ");
scanf("%i",&c);
if (a>b && a>c){
printf("Bilangan terbesar: %i\n",a);
}
else if (b>a && b>c){
printf("Bilangan terbesar: %i\n",b);
}
else if (c>a && c>b){
printf("Bilangan terbesar: %i",c);getch();
}
}
Gambar 4.1 Running Progaram Bilangan Terbesar
2.Buat program untuk prepraktikum 3!
Jawab:
Source Code
#include <stdio.h>
#include <conio.h>
main(){
int a;
printf("Program Korversi Angka ke Hari\n");
printf("\n");
printf("Masukkan Angka yang menunjukkan hari: ");
scanf("%i",&a);
switch(a){
case 1:printf("Hari yang anda pilih: Senin");break;
case 2:printf("Hari yang anda pilih: Selasa");break;
case 3:printf("Hari yang anda pilih: Rabu");break;
case 4:printf("Hari yang anda pilih: Kamis");break;
case 5:printf("Hari yang anda pilih: Jumat");break;
case 6:printf("Hari yang anda pilih: Sabtu");break;
case 7:printf("Hari yang anda pilih: Minggu");break;
default:printf("Hari yang anda pilih tidak ada");break;
}
}
Gambar 4.2 Running Progaram Konversi Angka ke Hari
3.Tugas tambahan (ditentukan oleh asisten praktikum)!
4.2 TUGAS AKHIR
Buatlah algoritma dan terjemahkan dalam Bahasa C untuk mengurutkan tiga buah bilangan bulat (dari yang terkecil ke yang terbesar) yang dimasukkan melalui piranti masukan! (Asumsi: ketiga bilangan yang dimasukkan adalah bilangan yang berbeda)