Hai
readers... ini adalah laprak ke IV dari matakuliah Algoritma Pemograman saat saya
kuliah di semester 2 jurusan Teknik Informatika di Undip.
Semoga bermanfaat ya bagi yang ingin mencari referensi. Tapi ingat, JANGAN COPAS!!!.
Sebab hasil terbaik ialah jika kita mengerjakan sendiri. Khususnya bagi
kamu yg merasa adik tingkat saya dan ada laprak ttg ini... Oya, maaf
jika gambarnya tidak bisa muncul, karena saya hanya copas laprak saya ke blog ini...
PENDAHULUAN
1.1
PERMASALAHAN
1.1.1
Buatlah
program – program sebagai berikut:
1.
Program
yang dapat menghasilkan program "menu.exe" (terlampir), dengan
asumsi rentang nilai :
85-100 = A
71-84 = B
61-70 = C
51-60 = D
0-50 = E
Selain itu = X
Petunjuk :
a.
Gunakan struktur pengulangan dan percabangan untuk membuat menu
b.
Gunakan fungsi agar dapat menghasilkan grade A-X
c.
Perhatikan apabila program belum diisi nama dan nilai, lalu langsung memilih
(3)
d.
Format source code : Courier New (10) spasi 1 dan beri border.
e. Screenshot yang
disertakan : dalam keadaan belum diberi nilai dan nama, menu utama, proses
penginputan nama, proses penginputan nilai, dan tampilan hasil akhirnya.
2. Buatlah program yang dapat menghasilkan program
"persegipanjang.exe" (terlampir). Petunjuk : Gunakan struktur
percabangan dan pengulangan.
Screenshot
yang disertakan : Keseluruhan program dengan inputan panjang 5 dan lebar 3,
lalu panjang 3 dan lebar 10.
3 Buatlah
program yang dapat menghitung proses faktorial dari suatu bilangan n.
Contoh : n=5 => 5x4x3x2x1 = 120.
Gunakan compiler berbasis Windows
(TDM-GCC, MinGW, Code::Blocks, atau DevC++)
1.1.2
Analisa dan buatlah laporan mengenai ketiga
program diatas
1.1
DASAR TEORI
Pengulangan
data atau yang biasa disebut dengan looping
adalah proses yang dilakukan berulang-ulang sampai batas yang ditentukan.
Dengan kata lain pengulangan adalah eksekusi statement selama kondisi yang diberikan masih terpenuhi. Biasanya jika dalam bentuk pengulangan
tersebut tidak disertakan batasnya maka syntax
akan error karena proses itu akan
berulang hingga tak terhingga sementara variabel dalam komputer masih terbatas.
Dalam bahasa C tersedia suatu fasilitas yang digunakan untuk melakukan proses pengulangan
sebanyak keinginan kita. Ada beberapa jenis pengulangan dalam bahasa C yaitu.
1. Struktur pengulangan For
Struktur pengulangan For biasa digunakan untuk
mengulang suatu proses yang telah diketahui jumlah pengulangannya. Dari segi
penulisannya, srtukutr pengulangan ini tampak lebih efisien karena susunannya
lebih simple dari struktur pengulangan yang lainnya. Bentuk umum pengulangan
for adalah sebagai berikut.
|
Keterangan:
Inisialisasi :
pernyataan untuk menyatakan awal dari variabel control.
Syarat :
ekspresi relasi yang menyatakan kondisi untuk keluar dari pengulangan.
Penambahan: pengatur perubahan nilai variabel
control.
2. Struktur pengulangan While
Pengulangan while banyak digunakan pada program
terstruktur. Pengulangan ini banyak digunakan bila jumlah pengulangannya belum
diketahui. Proses pengulangan akan terus berlanjut selama kondisinya bernilai
benar dan akan berhenti ketika kondisinya bernilai salah. Test terhadap kondisi
pengulangan akan dilakukan setiap kali sebelum aksi dilaksanakan. Pengulangan
ini memungkinkan menimbulkan aksi kosong karena pada test pertama kondisi
pengulangan tidak terpenuhi atau bernilai false.
Alur
pengulangan While
Bentuk umumnya adalah sebagai berikut.
while(kondisi)
pernyataan;
Sebagai contoh untuk
pengulangan ini kita bisa lihat potongan program berikut ini :
while((kar =
getchar()) != '\n')
jumkar++;
Pernyataan di atas berarti
jika tombol ENTER ditekan maka jumkar akan bertambah 1.
3. Pengulangan dengan Do--while
Pada dasarnya struktur
pengulangan ini sama saja dengan struktur while, hanya saja pada proses
pengulangan dengan while., seleksi berada di while yang letaknya di atas
sedangkan pada pengulangan Do--while, seleksi while berada dibawah batas
pengulangan. Jadi dengan menggunakan struktur Do--while sekurang-kurangnya akan
terjadi satu pengulangan. Eksekusi pada pengulangan yang pertama tidak
dilakukan test terhadap kondisi berhenti sehingga memumngkinkan menimbulkan
kebocoran pada program jika ada kemungkinan bahwa seharusnya aksi tidak pernah
boleh dilakukan untuk kasusu yang tertentu.
Alur pengulangan Do—while
Pernyataan do-while ini
memiliki bentuk umum sebagai berikut.
do
pernyataan;
while
(kondisi)
Sebagai contoh sederhana dapat
kita lihat seperti di bawah ini :
i=0;
do
{
printf("aku senang belajar bahasa C");
i++;
}
While (i<=10);
Pernyataan di atas akan
menghasilkan output berupa "aku senang belajar bahasa C" sebanyak
sampai i bernilai kurang dari atau sama dengan 10. Jadi selama i kurang dari
sama dengan 10 maka pernyataan "aku senang belajar bahasa C" akan
dijalankan sampai nilai i kurang dari sama dengan 10.
4. Pengulangan For bersarang (Nested For)
Dalam
pemrograman, sering kali programmer dituntut untuk melakukan proses pengulangan di dalam sruktur
pengulangan yang sedang dilakukan. Begitupun dalam bahasa C kita dapat
melakukannnya dengan menggunakan struktur for dan biasanya disebut dengan for
bersarang (nested for). Bentuk umum struktur pengulangan Nested for adalah sebagai
berikut.
for
(inisialisasi; syarat pengulangan; pengubah nilai pecacah )
{
for (inisialisasi; syarat pengulangan; pengubah nilai pecacah )
{
pernyataan / perintah;
}
}
|
Didalam penggunaan nested-for, pengulangan yang
di dalam terlebih dahulu dihitung hingga selesai, kemudin pengulangan yang di
luar diselesaikan.
- Pengulangan for (;;)
Dalam notasi algoritmik, bentuk pengulangan ini
disebut dengan iterasi. Mekanisme pengulangan ini adalah dengan melakukan
secara otomatis aksi-1 pada ekseskusi yang pertama kemudian melakukan test
terhadap kondisi berhenti. Tergantung pada kondisi berhenti yang ditest:
·
Aksi 2 akan diaktifkan dan kemudian aksi 1 yang
berikutnya akan diulang, atau
·
Pengulangan dihentikan karena efek neto dari
aksi 1 menghasilkan kondisi berhenti.
Pengulangan jenis ini berguna untuk kasus-kasus
dimana aksi 2 bergantung pada hasil dari aksi 1. Aksi sekuensial yang
dilakukan adalah:
Aksi 1, test kondisi berhenti, [aksi 2, test
kondisi berhenti], diakhiri test kondisi berhenti yang bernilai true, yang
menyebabkan pengulangan berhenti.
|
BAB II
PEMBAHASAN
2.1 CODING
2.1.1
enum.c
/*
Nama : Weny Ariska Yulianty /
24010312120019
Nama Program : enum.c
Deskripsi : Deklarasi dan pemakaian type
enumerasi
Tanggal : 17 Mei 2013
*/
/***HEADER***/
#include<stdio.h>
/***MAIN***/
int main () {
/* KAMUS */
enum hari /* type */
{
senin, selasa, rabu, kamus, jumat,
sabtu
} hariku; //hariku : variabel
enum
{
satu, dua, tiga
} angka; //variabel
enum
{
KEYWORD = 01, EXTERNAL = 03, STATIC =
04
}; /*Sekedar enumerasi konstanta
bernama, mengelompokkan*/
typedef enum
{
merah, putih, kuning
} warna; //nama tipe
unsigned int flags;
warna w = kuning;
/* ALGORITMA*/
angka = tiga;
printf("Angka %d \n ", angka);
hariku = 0;
printf("Hari %d \n ", hariku);
printf("Masukkan sebuah angka
[0..2] ");
scanf("%d", &angka);
printf("Angka %d \n", angka);
flags = EXTERNAL;
printf("flags %d \n", flags);
printf("Warna = %d \n", w);
getch ();
return 0;
}
|
2.1.2 alay.c
/*
Nama : Weny Ariska Yulianty /
24010312120019
Nama
Program : alay.c
Deskripsi : Konversi string masukan jadi huruf
alay
Tanggal : 17 Mei 2013
*/
/***HEADER***/
#include<stdio.h>
/***MAIN***/
int
main () {
/* KAMUS */
int i, temp;
char data[20];
/* ALGORITMA*/
printf("Masukkan string data =
");scanf("%s", data);
i=0;
while(data[i]!='\0'){
switch (data[i]){
case 'a' : {data[i]='@'; break;
}
case 'i' : {data[i]='1'; break;
}
case 'e' : {data[i]='3'; break;
}
case 'o' : {data[i]='0'; break;
}
case 'z' : {data[i]='2'; break;
}
case 's' : {data[i]='5'; break;
}
case 'b' : {data[i]='8'; break;
}
case 'g' : {data[i]='6'; break;
}
case ' ' : {data[i]='_'; break;
}
}
//temp=data[i];
if(data[i]>=97){
data[i]-=32;
//data[i]=temp
}
i++;
}
printf("Output : %s\n\n",data);
getch ();
return 0;
}
|
2.1.3 struk.c
/*
Nama : Weny Ariska Yulianty /
24010312120019
Nama
Program : struk.c
Deskripsi : Contoh pendefenisian dan pengisian
struktur : Titik, mhs, meter
Tanggal : 17 Mei 2013
*/
/***HEADER***/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
/***MAIN***/
int
main () {
/* KAMUS */
/* Cara 1 */
struct {
char nama[20];
int nim;
int nilai;
} Mhs;
/* Cara 2 */
struct meter {
int m;
int cm;
};
struct meter M1;
/* Cara 3 */
typedef struct {
float x;
float y;
} Point;
Point P1;
Point *P2;
Point P3;
/* ALGORITMA */
printf("Coba Mengisi
Struct\n");
printf("===================\n");
printf("Masukkan nilai dalam
meter:");scanf("%d", &(M1.m));
M1.cm=M1.m*100;
printf("m=%d\ncm=%d\n",
M1.m,M1.cm);
printf("\nContoh mengisi struktur
dengan assigment \n Titik P1, dengan P1.x dan P1.y:\n");
P1.x=1.1;
P1.y=2.5;
printf("P1.x = %4.1f\nP1.y=
%4.1f\n", P1.x,P1.y);
/*Mengacu pointer ke struct, akan dibahas
setelah pointer*/
printf("\nTitik P2, dengan P2->x
dan P2->y :\n");
P2=(Point*) malloc(sizeof(Point));
P2->x=9.12;
P2->y=2.567;
printf("P2.x = %4.1f\nP2.y =
%4.1f\n", P2->x,P2->y);
printf("\nMasukkan titik P3
(x,y)\n");
scanf("%f %f",&P3.x,
&P3.y);
printf("P3.x = %4.1f\nP3.y =
%4.1f\n", P3.x,P3.y);
strcpy(Mhs.nama, "Juliette");
Mhs.nim=7473;
Mhs.nilai=80;
printf("\nHasil assigment thd
mhs\nNama = %s\nNim = %d\nNilai = %d\n", Mhs.nama, Mhs.nim, Mhs.nilai);
getch ();
return 0;
}
|
2.1.4 struk2.c
/*
Nama : Weny Ariska Yulianty /
24010312120019
Nama
Program : struk2.c
Deskripsi : contoh pendefenisian dan pengisian
struktur yang mengandung string
Tanggal : 17 Mei 2013
*/
/***HEADER***/
#include<stdio.h>
/***MAIN***/
int
main ()
{
struct
{
char *nama;
int nim;
int nilai;
}Mhs;
Mhs.nama = (char *) malloc (20 *
sizeof(char));
printf("\nNama = ");
gets(Mhs.nama);
printf("\nNim dan nilai =
");scanf("%d %d", &Mhs.nim, &Mhs.nilai);
printf("Hasil assigment thd Mhs
\n");
printf("Nama = %s\nNim = %d\nNilai =
%d\n", Mhs.nama, Mhs.nim, Mhs.nilai);
getch ();
return 0;
}
|
2.1.5 fungsigrade.h
/*
Nama : Weny Ariska Yulianty /
24010312120019
Nama
P : fungsigrade.h
Deskripsi : header file untuk prosedur dan fungsigrade
Tanggal : 17 Mei 2013
*/
#ifndef
prodfun_H
#define
prodfun_H
int
grade (float rata2);
#endif
|
2.1.6 fungsigrade.c
/*
Nama : Weny Ariska Yulianty / 24010312120019
Nama
Program : fungsigrade.c
Deskripsi : body prototype file untuk prosedur
dan fungsi
Tanggal : 17 April 2013
*/
#include
"fungsigrade.h"
int
grade (float rata2)
{
/*Kamus lokal*/
char nilai;
/*Algoritma*/
return ( ((rata2 >= 85)&&(rata2
<=100)) ? (nilai = 'A') : ((rata2 >= 71)&&(rata2 <=84)) ?
(nilai = 'B') : ((rata2 >= 61)&&(rata2 <=70)) ? (nilai = 'C') :
((rata2 >= 51)&&(rata2 <=60)) ? (nilai = 'D') : ((rata2 >
0)&&(rata2 <=50)) ? (nilai = 'E') : (nilai = 'X') );
}
|
2.1.7 menu.c
/*
Nama : Weny Ariska Yulianty /
24010312120019
Nama
Program : menu.c
Deskripsi : membuat suatu program menu dengan
mengunakan struktur pengulangan for & repeat dan percabangan if &
switch-case
Tanggal : 17 Mei 2013
*/
/***HEADER***/
#include<stdio.h>
#include
"fungsigrade.h"
#include
"fungsigrade.c"
/***MAIN***/
int
main ()
{
/*KAMUS*/
int a, i, n, sum, pil;
char nama[20], nilai;
float rata2;
/*PROGRAM*/
strcpy (nama, "NONAME"); sum = 0;
menu :
system("cls");
printf("PROGRAM INPUTAN
NILAI\n");
printf("=====================\n");
printf("Pilih salah satu :\n");
printf("(1) Masukkan nama\n(2)
Masukkan nilai\n(3) Tampilan hasil nilai akhir\n(9) Keluar program");
printf("\n======================\n");
printf("Pilihan Anda : ");
scanf("%d", &pil);
switch(pil)
{
case 1:
{
printf("Masukkan nama [NO
SPASE] : ");
scanf("%s", nama);
printf("Nama terinput
--> %s\n", nama);
printf("press any key to
continue...\n");
getch (); goto menu;
}
case 2:
{
printf("Masukkan banyaknya
nilai yang akan diinput : ");scanf("%d", &n);
for (i = 1; i <= n;
i++)
{
printf ("Masukkan
nilai ke-%d : ", i);
scanf("%d",
&a);
sum = sum + a;
}
printf("Nilai total yang
terinput --> %d\n", sum);
printf("press any key to
continue...\n");
getch (); goto menu;
}
case 3:
{
printf("Nama : %s\n", nama);
rata2 = sum / n;
printf("Nilai total : %d\n", sum);
printf("Nilai akhir (rata-rata) :%4.1f (%c)\n", rata2,
grade(rata2));
printf("press any key to continue...\n");
getch(); goto menu;
}
case 9:
{
printf("\n ~~~ THANK YOU
~~~\n\n ^_^ KAMSAHAMNIDA ^_^\n");
printf("\npress any key to
continue...\n");
getch();
return 0;}
default:
{
printf("Masukkan salah,
coba ulangi lagi . . .\n");
printf("press any key to
continue...\n");
getch(); goto menu;
};
}
getch ();
return 0;
}
|
2.1.8 persegipanjang.c
/*
Nama : Weny Ariska Yulianty /
24010312120019
Nama
Program : persegipanjang.c
Deskripsi : menggambar persegi panjang dengan
menggunakan struktur perulangan for dan percabangan if
Tanggal : 17 mei 2013
*/
#include<stdio.h>
int
main
()
{
/* Kamus */
int i, j;
int p;
int l;
/* Algoritma*/
printf("Menggambar Persegi Panjang
^^v\n");
printf("Masukan sisi panjang
[integer & >=3] : "); scanf("%d", &p);
printf("Masukan sisi lebar [integer
& >=3] : "); scanf("%d", &l);
for (i=1;i<=l;i++)
{
for (j=1;j<=p;j++)
{
if ((i == 1) || (i == l))
printf("* ");
else if ((j == 1) || (j ==
p))
printf("* ");
else
printf(" ");
}
printf("\n");
}
getch ();
return 0;
}
|
2.1.9 faktorial.c
/*
Nama : Weny Ariska Yulianty /
24010312120019
Nama
Program : faktorial.c
Deskripsi : Menghitung proses faktorial dari
suat bilangan n
Tanggal : 17 mei 2013
*/
#include<stdio.h>
int
main
()
{
/* Kamus */
int i;
int N;
int faktorial;
/* Algoritma*/
printf("masukan bilangan n
faktorial= ");
scanf("%d", &N);
faktorial=1;
for (i = N; i >= 1; i--)
{
faktorial = i * faktorial;
if (i > 1)
{printf ("%d X ", i);}
else {printf ("%d", i);}
}
printf("= %d", faktorial);
getch ();
return 0;
}
|
2.2 PEMBAHASAN CODING
2.2.1 menu.c
menu.c adalah
sebuah program yang menampilkan sebuah menu
2.2.2 persegipanjang .c
2.2.3 faktorial.c
2.3 SCREENSHOT
2.3.1 enum.c
2.3.2 alay.c
2.3.3 struk.c
2.3.4 struk2.c
2.3.5 menu.c
2.3.6 persegipanjang.c
2.3.7faktorial.c
DAFTAR PUSTAKA
Anonim. 2012. “Pengulangan Pada Bahasa C”.
Dalam http://ncuzalleen.blogspot.com/2012/11/pengulangan-pada-bahasa-c.html.
Jemz. 2013. “Pengulangan dalam Bahasa C”. Dalam http://zagaLarupa.blogspot.com/2013/02/pengulangan-dalam-bahasa-c.html
Junian, Aan. 2013. “Struktur Kontrol
Pengulangan Bahasa C”. Dalam http://aanjunian.blogspot.com/2013/04/struktur-kontrol-pengulangan-bahasa-c.html.
Liem, Inggriani. 2003. “Contoh Program Kecil
dalam Bahasa C”. Bandung: Teknik
Informatika ITB.
Liem, Inggriani. 2003. “Draft Diktat Kuliah
Dasar Pemrograman” (Bagian Pemrograman
Prosedural). Bandung: Teknik
Informatika ITB.
Mashudi, Nur. 2013. “Operasi Penyeleksi Kondisi
dan Operasi Pengulangan Bahasa C”. Dalam http://nurmashudi.wordpress.com/2013/01/01/operasi-penyeleksi-kondisi-dan-operasi-pengulangan-bahasa-c/..
Tidak ada komentar:
Posting Komentar