Anda di halaman 1dari 41

Responsi Praktikum - 1

KU1071/Pengantar Teknologi Informasi A Rabu, 31 Oktober 2012

10/31/2012

Petunjuk
Dalam responsi ini akan diberikan soal-soal dan contoh program yang tinggal disalin atau dimodifikasi sedikit Program diberikan dalam notasi algoritmik dan translasinya dalam Bahasa C Cara penamaan file : R01_<nim>_XX.c
<nim> : NIM Anda XX : nomor soal (2 digit)

Semua hasil responsi hari ini dizip : R01_<nim>.zip dan dikumpulkan sesuai petunjuk asisten
10/31/2012 2

Soal 1 (1)
Translasikan program dalam notasi algoritmik berikut ini ke dalam Bahasa C.
Program Hello { input: masukan nama dari pengguna output: muncul Hello, nama di layar } Kamus nama : string Algoritma input(nama) output(Hello, ,nama)

10/31/2012

Soal 1 (2)
/* Program Hello */ /* input: masukan nama dari pengguna output: muncul Hello, nama di layar */ int main () { Panjang string /* Kamus */ didefinisikan, misalnya char nama[30]; dalam hal ini 30 /* Algoritma */ printf(Masukkan nama : ); scanf(%s,nama); printf(Hello, %s\n,nama); return 0; }
10/31/2012 4

Soal 2 (1)
Translasikan program dalam notasi algoritmik berikut ini ke dalam Bahasa C.
Program CekInteger { input: masukan sebuah integer output: cek apakah integer tersebut sebuah positif atau tidak } Kamus N : integer cek : boolean Algoritma input(N) cek (N > 0) output(cek)

10/31/2012

Soal 2 (2)
/* Program CekInteger /* input: masukan sebuah integer output: cek apakah integer tersebut sebuah positif atau tidak */
#include boolean.h int main () { /* Kamus */ int N; boolean cek;

/* Algoritma */ printf(Masukkan integer: ); scanf(%d,&N); cek = (N > 0); printf(Apakah bulat positif? %d\n,cek); return 0; }
10/31/2012 6

Soal 2 (2)

/* Program CekInteger /* input: masukan sebuah integer output: cek apakah integer tersebut sebuah positif atau tidak */
#include boolean.h int main () { /* Kamus */ int N; boolean cek;

Harus punya file boolean.h terlebih dahulu sebelum bisa menggunakan type boolean

Selain string, semua masukan isi variabel harus pakai &

/* Algoritma */ printf(Masukkan integer: ); scanf(%d,&N); cek = (N > 0); printf(Apakah bulat positif? %d\n,cek); return 0; }
10/31/2012

Perhatikan hasil eksekusinya


7

boolean.h
/* File: boolean.h */ /* Definisi type data boolean */ #ifndef BOOLEAN_H #define BOOLEAN_H #define boolean unsigned char #define true 1 #define false 0 #endif
10/31/2012 8

Soal 3 (1)
Buatlah sebuah program yang menerima input sebuah nilai jari-jari sebuah lingkaran (misalnya r) serta sebuah nilai sisi sebuah bujur sangkar (misalnya s) dan menampilkan ke layar luas lingkaran berdasarkan r dan luas bujur sangkar berdasarkan s. Petunjuk:
Belum membutuhkan fungsi/prosedur Konstanta phi = 3.14 Asumsi: masukan jari-jari dan sisi dari pengguna selalu benar (yaitu bilangan positif)
10/31/2012 9

Soal 3 (2)
Notasi Algoritmik Versi 1
Program LingkaranDanBujurSangkar { Input: jari-jari lingkaran dan sisi bujur sangkar Output: luas lingkaran dan luas bujur sangkar } KAMUS constant PI : integer = 3.14 { konstanta phi } r : real { jari-jari lingkaran } s : real { sisi bujur sangkar }

ALGORITMA input (r) input (s) output (PI * r * r) output (s * s)

10/31/2012

10

Soal 3 (2)
Notasi Algoritmik Versi 2
Program LingkaranDanBujurSangkar { Input: jari-jari lingkaran dan sisi bujur sangkar Output: luas lingkaran dan luas bujur sangkar } KAMUS constant PI : integer = 3.14 { konstanta phi } r : real { jari-jari lingkaran } s : real { sisi bujur sangkar } LL : real { luas lingkaran} LBS : real { luas bujur sangkar } ALGORITMA input (r) input (s) output LL PI(PI * r**r r* r) (s**ss) output LBS s output (LL) output (LBS)
10/31/2012 11

Soal 3 (3)
Translasi ke Bahasa C Versi 2
/* Program LingkaranDanBujurSangkar /* Input: jari-jari lingkaran dan sisi bujur sangkar Program LingkaranDanBujurSangkar Output: luas lingkaran luas bujur sangkar */ { Input: jari-jari lingkaran dan sisi bujurdan sangkar constant : integer = 3.14 { konstanta phi } phi*/ #define PI 3.14 /* konstanta Output: PI luas lingkaran dan luas bujur sangkar } int main () { KAMUS /* KAMUS */ = 3.14 { konstanta phi } constant PI : integer r : real {r; jari-jari } float /* lingkaran jari-jari lingkaran */ r: real { jari-jari lingkaran } sisi bujur } s : real {s; float /* sangkar sisi bujur sangkar */ s: real { sisi bujur sangkar float LL; /* luas} lingkaran */ LL : real { luas lingkaran} LBS; /* luas bujur sangkar */ LLfloat : real { luas lingkaran} LBS : real { luas bujur sangkar } LBS : real { luas bujur */ sangkar } /* ALGORITMA ALGORITMA input (r) printf("Masukkan jari-jari lingkaran = "); scanf("%f",&r); input (r)(s) printf("Masukkan sisi bujur sangkar = "); scanf("%f",&s); input (s) input LL = PI * r* * rr * r; LL PI output (PI r r) LL * r**s r* s; LBS = * LBS PI ss (s* *ss) output LBS s printf("Luas lingkaran = %f\n",LL); output (LL) printf("Luas bujur sangkar = %f\n",LBS); (LBS) output output (LL) output (LBS) return 0;
10/31/2012 } 12

Soal 3 (3)
Translasi ke Bahasa C Versi 2
/* Program LingkaranDanBujurSangkar /* Input: jari-jari lingkaran dan sisi bujur sangkar Program LingkaranDanBujurSangkar Output: luas lingkaran luas bujur sangkar */ { Input: jari-jari lingkaran dan sisi bujurdan sangkar constant : integer = 3.14 { konstanta phi } phi*/ #define PI 3.14 /* konstanta Output: PI luas lingkaran dan luas bujur sangkar } int main () { Konstanta PI akan didefinisikan KAMUS /* KAMUS */ = 3.14 { konstanta phi } dengan: constant PI : integer r : real {r; jari-jari } float /* lingkaran jari-jari lingkaran */ #define PI 3.14 r: real { jari-jari lingkaran } sisi bujur } s : real {s; float /* sangkar sisi bujur sangkar */ Letakkan di luar blok main s: real { sisi bujur sangkar float LL; /* luas} lingkaran */ LL : real { luas lingkaran} LBS; /* luas bujur sangkar */ LLfloat : real { luas lingkaran} LBS : real { luas bujur sangkar } LBS : real { luas bujur */ sangkar } /* ALGORITMA ALGORITMA input (r) printf("Masukkan jari-jari lingkaran = "); scanf("%f",&r); input (r)(s) printf("Masukkan sisi bujur sangkar = "); scanf("%f",&s); input (s) input LL = PI * r* * rr * r; LL PI output (PI r r) LL * r**s r* s; LBS = * LBS PI ss (s* *ss) output LBS s printf("Luas lingkaran = %f\n",LL); output (LL) printf("Luas bujur sangkar = %f\n",LBS); (LBS) output output (LL) output (LBS) return 0;
10/31/2012 } 13

Soal 4 (1)
Buatlah program penghitung luas bangun datar yang menerima pilihan dari pengguna:
Pilihan = 1: program meminta masukan sebuah jarijari lingkaran dan menampilkan ke layar hasil perhitungan luas lingkaran Pilihan = 2: program meminta masukan sebuah sisi bujur sangkar dan menampilkan ke layar luas bujur sangkar Pilihan = 3: program meminta masukan panjang sebuah persegi panjang dan menampilkan ke layar luas persegi panjang Pilihan lain : program menampilkan pesan error Pilihan salah

Asumsi: masukan pengguna dianggap selalu benar (bilangan positif)


10/31/2012 14

Soal 4 (2)
Program LuasBangunDatar { Menerima pilihan dan sejumlah parameter untuk menghitung luas bangun datar, lalu menampilkan luas bangun datar yang sesuai pilihan ke layar } KAMUS constant PI : integer = 3.14 r, s, p, l : real { parameter bangun datar } L : real { luas bangun datar } pil : integer { masukan pilihan pengguna } ALGORITMA input (pil) depend on (pil) pil = 1: input (r) L PI * r * r output (L) pil = 2 : . { lanjutkan sendiri } pil = 3 : . { lanjutkan sendiri } else : output (Pilihan salah)

10/31/2012

15

/* Program LuasBangunDatar */ /* Menerima pilihan dan sejumlah parameter untuk menghitung luas bangun datar dan menampilkan luas bangun datar yang sesuai pilihan ke layar */ /* KAMUS GLOBAL */ #define PI 3.14 /* PROGRAM UTAMA */ int main () { /* KAMUS */ float r, s, p, l; /* parameter bangun datar */ float L; /* luas bangun datar */ int pil; /* masukan pilihan pengguna */ /* ALGORITMA */ printf("Masukkan pilihan = "); scanf("%d",&pil); switch(pil) { case 1 : { printf("Masukkan jari-jari lingkaran : "); scanf("%f",&r); L = PI * r * r; printf("Luas lingkaran = %f",L); break; } case 2 : { /* lanjutkan sendiri */ } case 3 : { /* lanjutkan sendiri */ } default : { printf("Pilihan salah\n"); } } return 0; }
10/31/2012 16

/* Program LuasBangunDatar */ /* Menerima pilihan dan sejumlah parameter untuk menghitung luas bangun datar dan menampilkan luas bangun datar yang sesuai pilihan ke layar */ /* KAMUS GLOBAL */ #define PI 3.14 Konstanta, type, definisi fungsi/prosedur di /* PROGRAM UTAMA */ luar blok main disebut KAMUS GLOBAL int main () { karena bisa digunakan di seluruh bagian /* KAMUS */ float r, s, p, l; /* parameter bangun datar */ program float L; /* luas bangun datar */ int pil; /* masukan pilihan pengguna */ /* ALGORITMA */ printf("Masukkan pilihan = "); scanf("%d",&pil); switch(pil) { - Program dalam blok main disebut case 1 : { printf("Masukkan jari-jari lingkaran : "); PROGRAM UTAMA scanf("%f",&r); - Variabel yang dideklarasikan di dalam L = PI * r * r; printf("Luas lingkaran = %f",L); program utama hanya bisa digunakan di break; dalam blok main } case 2 : { /* lanjutkan sendiri */ } case 3 : { /* lanjutkan sendiri */ } default : { printf("Pilihan salah\n"); } } return 0; }
10/31/2012 17

Soal 5 (1)
Soal ini adalah pengembangan dari soal 4. Buatlah sebuah salinan/kopi dari program yang dihasilkan di soal 4 dan modifikasilah sesuai petunjuk berikut Pada saat memasukkan nilai untuk masukan perhitungan bangun datar, pengguna bisa memasukkan nilai yang tidak benar, misalnya 0 atau negatif Modifikasilah program pada soal 4 sbb.:
Untuk masukan nilai, diperiksa dulu apakah masukan selalu > 0 atau tidak. Jika masukan salah (nilainya 0) maka berikan pesan kesalahan bahwa luas tidak bisa dihitung
10/31/2012 18

Soal 5 (2)
{ hanya diambil sebagian sebagai contoh} ALGORITMA input (pil) depend on (pil) pil = 1: input (r) if (r > 0) then L PI * r * r output (L) else { r 0 } output(Luas lingkaran tidak bisa dihitung) pil = 2 : . { lanjutkan sendiri } pil = 3 : . { lanjutkan sendiri } else : output (Pilihan salah)

10/31/2012

19

/* Program LuasBangunDatar */ /* Menerima pilihan dan sejumlah parameter untuk menghitung luas bangun datar dan menampilkan luas bangun datar yang sesuai pilihan ke layar */ /* KAMUS GLOBAL */ #define PI 3.14 /* PROGRAM UTAMA */ int main () { /* KAMUS */ float r, s, p, l; /* parameter bangun datar */ float L; /* luas bangun datar */ int pil; /* masukan pilihan pengguna */ /* ALGORITMA */ printf("Masukkan pilihan = "); scanf("%d",&pil); switch(pil) { case 1 : { printf("Masukkan jari-jari lingkaran : "); scanf("%f",&r); if (r > 0) { L = PI * r * r; printf("Luas lingkaran = %f",L); } else /* r<=0 */ { printf("Luas lingkaran tidak bisa dihitung\n"); } break; } /* lanjutkan sendiri */ } 10/31/2012 20 return 0; }

Soal 6 (1)
Soal ini adalah pengembangan dari soal 5. Buatlah sebuah salinan/kopi dari program yang dihasilkan di soal 5 dan modifikasilah sesuai petunjuk berikut: Modifikasilah program pada soal 5 sbb.:
Semua bagian program yang digunakan untuk menghitung luas bangun datar, dijadikan fungsi lihat spesifikasi di belakang Gunakan fungsi-fungsi tersebut dalam program utama
10/31/2012 21

Soal 6 (2)
Program LuasBangunDatar { Menerima pilihan dan sejumlah parameter untuk menghitung luas bangun datar, lalu menampilkan luas bangun datar yang sesuai pilihan ke layar } KAMUS constant PI : integer = 3.14 r, s, p, l, a, t : real { parameter bangun datar } L : real { luas bangun datar } pil : integer { masukan pilihan pengguna } function LuasLingkaran (jari : real) real { menghasilkan luas lingkaran dengan jari-jari r } function LuasPersegiPanjang (pjg, lbr : real) real { menghasilkan luas persegi panjang dengan panjang = p dan lebar = l } { sisanya lanjutkan sendiri } ALGORITMA input (pil) depend on (pil) pil = 1: input (r) if (r > 0) then L LuasLingkaran(r) output (L) else { r 0 } output(Luas lingkaran tidak bisa dihitung) output (L) { sisanya lanjutkan sendiri } else : output (Pilihan salah)
10/31/2012 22

Soal 6 (3)
{ dituliskan di bawah Algoritma Program Utama } function LuasLingkaran (jari : real) real { menghasilkan luas lingkaran dengan jari-jari r } Kamus Lokal Algoritma PI * jari * jari function LuasPersegiPanjang (pjg, lbr : real) real { menghasilkan luas persegi panjang dengan panjang = p dan lebar = l } Kamus Lokal Algoritma luas * lebar { sisanya lanjutkan sendiri }
10/31/2012 23

/* Program LuasBangunDatar */ /* Menerima pilihan dan sejumlah parameter untuk menghitung luas bangun datar dan menampilkan luas bangun datar yang sesuai pilihan ke layar */ /* KAMUS GLOBAL */ #define PI 3.14 /* HEADER FUNGSI/PROSEDUR */ float LuasLingkaran (float jari); /* menghasilkan luas lingkaran dengan jari-jari r */ float LuasPersegiPanjang (float pjg, float lbr); /* menghasilkan luas persegi panjang dengan panjang = p dan lebar = l */ /* sisanya lanjutkan sendiri */ /* PROGRAM UTAMA */ int main () { /* KAMUS */ /* isi sendiri */ /* ALGORITMA */ printf("Masukkan pilihan = "); scanf("%d",&pil); switch(pil) { case 1 : { printf("Masukkan jari-jari lingkaran : "); scanf("%f",&r); if (r > 0) { L = LuasLingkaran(r); printf("Luas lingkaran = %f",L); } else /* r<=0 */ { printf("Luas lingkaran tidak bisa dihitung\n"); } break; } /* lanjutkan sendiri */ } 10/31/2012 24 return 0; }

/* Program LuasBangunDatar */ /* Menerima pilihan dan sejumlah parameter untuk menghitung luas bangun datar dan menampilkan luas bangun datar yang sesuai pilihan ke layar */ /* KAMUS GLOBAL */ #define PI 3.14 /* HEADER FUNGSI/PROSEDUR */ float LuasLingkaran (float jari); /* menghasilkan luas lingkaran dengan jari-jari r */ float LuasPersegiPanjang (float pjg, float lbr); Header fungsi/prosedur dituliskan /* menghasilkan luas persegi panjang dengan panjang = p dan lebar = l */ bisa di bagian kamus global (agar /* sisanya lanjutkan sendiri */ digunakan oleh seluruh bagian /* PROGRAM UTAMA */ program) int main () { /* KAMUS */ /* isi sendiri */ /* ALGORITMA */ printf("Masukkan pilihan = "); scanf("%d",&pil); switch(pil) { case 1 : { printf("Masukkan jari-jari lingkaran : "); Contoh pemanggilan fungsi scanf("%f",&r); if (r > 0) { L = LuasLingkaran(r); printf("Luas lingkaran = %f",L); } else /* r<=0 */ { printf("Luas lingkaran tidak bisa dihitung\n"); } break; } /* lanjutkan sendiri */ } 10/31/2012 25 return 0; }

/* dituliskan tepat di bawah program utama */ /* BODY/REALISASI FUNGSI/PROSEDUR */ float LuasLingkaran (float jari) /* menghasilkan luas lingkaran dengan jari-jari r */ { /* Kamus Lokal */ /* Algoritma */ return (PI * jari * jari); }

Hati-hati, tidak ada titik koma ;

float LuasPersegiPanjang (float pjg, float lbr) /* menghasilkan luas persegi panjang dengan panjang = p dan lebar = l */ { /* Kamus Lokal */ /* Algoritma */ return (luas * lebar) } /* sisanya lanjutkan sendiri */

10/31/2012

26

Soal 7
Soal ini adalah pengembangan dari soal 6. Buatlah sebuah salinan/kopi dari program yang dihasilkan di soal 6 dan modifikasilah sesuai petunjuk berikut Modifikasilah program pada soal 6 sbb.:
Buatlah sebuah prosedur yang menerima input pilihan pengguna dan menghasilkan luas lingkaran yang sesuai dengan pilihan pengguna Dalam prosedur tersebut, lakukan validasi masukan pengguna dengan menggunakan pengulangan: jika masukan salah (yaitu <= 0), maka berikan kesalahan dan ulangi proses pemasukan, sampai didapatkan masukan yang benar Modifikasi program utama menyesuaikan dengan hal ini
10/31/2012 27

Program LuasBangunDatar { Menerima pilihan dan sejumlah parameter untuk menghitung luas bangun datar, lalu menampilkan luas bangun datar yang sesuai pilihan ke layar } KAMUS constant PI : integer = 3.14 Variabel global menjadi r, s, p, l : real { parameter bangun datar } variabel di kamus lokal L : real { luas bangun datar } prosedur HitungLuas pil : integer { masukan pilihan pengguna } procedure HitungLuas (input pilihan : integer[1..3], output Luas : real) { I.S. : pil terdefinisi , berisi pilihan pengguna } { F.S. : Luas berisi luas bangun datar tergantung pada pil } { Proses: menerima masukan nilai penghitung luas berdasarkan pil dan menghitung luasnya serta menyimpannya di Luas. Melakukan validasi masukan. } function LuasLingkaran (jari : real) real { menghasilkan luas lingkaran dengan jari-jari r } { sisanya lanjutkan sendiri } ALGORITMA input (pil) if (1 pil 4) then HitungLuas(pil, L) else { pilihan pengguna salah} output (Pilihan salah)
10/31/2012 28

{ dituliskan di bawah Algoritma Program Utama } procedure HitungLuas (input pilihan : integer[1..3], output Luas : real) { I.S. : pil terdefinisi, berisi pilihan pengguna } { F.S. : Luas berisi luas bangun datar tergantung pada pil } { Proses: menerima masukan nilai penghitung luas berdasarkan pil dan menghitung luasnya serta menyimpannya di Luas. Melakukan validasi masukan. } Kamus Lokal r, s, p, l : real { parameter bangun datar } Algoritma depend on (pil) pil = 1 : iterate input(r) stop : (r > 0) output (Masukan harus > 0. Ulangi.) Luas PI * r * r { pil = 2 dst silakan dilanjutkan sendiri } { untuk fungsi-fungsi penghitung luas lanjutkan sendiri }
10/31/2012 29

/* Program LuasBangunDatar */ /* Menerima pilihan dan sejumlah parameter untuk menghitung luas bangun datar dan menampilkan luas bangun datar yang sesuai pilihan ke layar */ #include "boolean.h" /* KAMUS GLOBAL */ #define PI 3.14 /* HEADER FUNGSI/PROSEDUR */ void HitungLuas (int pilihan, float *Luas); /* I.S. : pil terdefinisi , berisi pilihan pengguna */ /* F.S. : Luas berisi luas bangun datar tergantung pada pil */ /* Proses: menerima masukan nilai penghitung luas berdasarkan pil dan menghitung luasnya serta menyimpannya di Luas. Melakukan validasi masukan. */ float LuasLingkaran (float jari); /* menghasilkan luas lingkaran dengan jari-jari r */ /* sisanya lanjutkan sendiri */ /* PROGRAM UTAMA */ int main () { /* KAMUS */ /* isi sendiri */ /* ALGORITMA */ printf("Masukkan pilihan = "); scanf("%d",&pil); if ((pil >= 1) && (pil <= 4)) { HitungLuas(pil,&L); } else /* pilihan pengguna salah */ { printf("Pilihan salah\n"); } return 0; }
10/31/2012 30

/* Program LuasBangunDatar */ Parameter output atau /* Menerima pilihan dan sejumlah parameter untuk menghitung luas bangun datar input/output pada Type boolean dan menampilkan luas bangun datar yang sesuai pilihan ke layar */ prosedur ditranslasikan #include "boolean.h" dengan meletakkan * di /* KAMUS GLOBAL */ #define PI 3.14 depan parameter /* HEADER FUNGSI/PROSEDUR */ void HitungLuas (int pilihan, float *Luas); /* I.S. : pil terdefinisi , berisi pilihan pengguna */ /* F.S. : Luas berisi luas bangun datar tergantung pada pil */ /* Proses: menerima masukan nilai penghitung luas berdasarkan pil dan menghitung luasnya serta menyimpannya di Luas. Melakukan validasi masukan. */ float LuasLingkaran (float jari); /* menghasilkan luas lingkaran dengan jari-jari r */ Contoh pemanggilan /* sisanya lanjutkan sendiri */ prosedur. Perhatikan /* PROGRAM UTAMA */ bahwa parameter output int main () { atau input/output /* KAMUS */ /* isi sendiri */ diberikan tanda & /* ALGORITMA */ printf("Masukkan pilihan = "); scanf("%d",&pil); if ((pil >= 1) && (pil <= 4)) { HitungLuas(pil,&L); } else /* pilihan pengguna salah */ { printf("Pilihan salah\n"); } return 0; }
10/31/2012 31

/* dituliskan tepat di bawah program utama */ /* BODY/REALISASI FUNGSI/PROSEDUR */ void HitungLuas (int pilihan, float *Luas) /* I.S. : pil terdefinisi , berisi pilihan pengguna */ /* F.S. : Luas berisi luas bangun datar tergantung pada pil */ /* Proses: menerima masukan nilai penghitung luas berdasarkan pil dan menghitung luasnya serta menyimpannya di Luas. Melakukan validasi masukan. */ { /* Kamus Lokal */ boolean stop; float r, s, p, l; /* Algoritma */ stop = false; switch(pil) { case 1 : { do { printf("Masukkan jari-jari lingkaran : "); scanf("%f",&r); if (r>0) { stop = true; } else /* r <= 0 */ { printf("Masukan harus > 0. Ulangi.\n"); } } while (!stop); /* r > 0 */ (*Luas) = PI * r * r; break; } /* pil = 2 dst silakan dilanjutkan sendiri */ } } /* untuk fungsi-fungsi penghitung luas lanjutkan sendiri */ 10/31/2012 32

/* dituliskan tepat di bawah program utama */ /* BODY/REALISASI FUNGSI/PROSEDUR */ void HitungLuas (int pilihan, float *Luas) /* I.S. : pil terdefinisi , berisi pilihan pengguna */ /* F.S. : Luas berisi luas bangun datar tergantung pada pil */ /* Proses: menerima masukan nilai penghitung luas berdasarkan pil dan menghitung luasnya serta menyimpannya di Luas. Melakukan validasi masukan. */ Pemanggilan paramater * di { /* Kamus Lokal */ dalam prosedur harus tetap boolean stop; float r, s, p, l; menyertakan *-nya . Lebih /* Algoritma */ aman selalu sertakan ( ) stop = false; switch(pil) { case 1 : { do { printf("Masukkan jari-jari lingkaran : "); scanf("%f",&r); if (r>0) { stop = true; } else /* r <= 0 */ { printf("Masukan harus > 0. Ulangi.\n"); } } while (!stop); /* r > 0 */ (*Luas) = PI * r * r; break; } /* pil = 2 dst silakan dilanjutkan sendiri */ } } /* untuk fungsi-fungsi penghitung luas lanjutkan sendiri */ 10/31/2012 33

Soal 8
Soal ini tidak ada hubungannya dengan soal-soal sebelumnya Diketahui sebuah type bentukan point dengan definisi sbb:
X : integer, absis dari point Y : integer, ordinat dari point

Buatlah program yang menerima masukan sebuah point dan menuliskan ke layar kuadran di mana point tersebut terletak. Jika point berada di sumbu x atau y atau di titik origin, maka dituliskan pesan Kuadran tidak terdefinisi.
10/31/2012 34

Program KuadranPoint { Menerima masukan sebuah point (x,y) dan menuliskan kuadran di mana point tersebut terletak. } KAMUS type point: < x : integer { absis }, y : integer { ordinat } > P : point { masukan point dari pengguna } ALGORITMA input (P) depend on (P) P.x > 0 and P.y > 0 : output (Kuadran 1) P.x < 0 and P.y > 0 : output (Kuadran 2) P.x < 0 and P.y < 0 : output (Kuadran 3) P.x > 0 and P.y < 0 : output (Kuadran 4) else : { P berada di sumbu } output (Kuadran tidak terdefinisi)
10/31/2012 35

/* Program KuadranPoint */ /* Menerima masukan sebuah point (x,y) dan menuliskan kuadran di mana point tersebut terletak. */ /* KAMUS GLOBAL */ typedef struct { int x; /* absis */ int y; /* ordinat */ } point; int main () { /* KAMUS */ point P; /* ALGORITMA */ printf("Masukkan absis : "); scanf("%d",&P.x); printf("Masukkan ordinat : "); scanf("%d",&P.y); if ((P.x > 0) && (P.y > 0)) { printf("Kuadran 1\n"); } else if ((P.x < 0) && (P.y > 0)) { printf("Kuadran 2\n"); } else if ((P.x < 0) && (P.y < 0)) { printf("Kuadran 3\n"); } else if ((P.x > 0) && (P.y < 0)) { printf("Kuadran 4\n"); } else /* P berada di sumbu */ { printf ("Kuadran tidak terdefinisi\n"); } }
10/31/2012

return 0;

36

/* Program KuadranPoint */ /* Menerima masukan sebuah point (x,y) dan menuliskan kuadran di mana point tersebut terletak. */ /* KAMUS GLOBAL */ Deklarasi type di KAMUS typedef struct { int x; /* absis */ GLOBAL agar bisa digunakan di int y; /* ordinat */ } point; seluruh bagian program int main () { /* KAMUS */ point P; /* ALGORITMA */ printf("Masukkan absis : "); scanf("%d",&P.x); printf("Masukkan ordinat : "); scanf("%d",&P.y); if ((P.x > 0) && (P.y > 0)) { printf("Kuadran 1\n"); Input type bentukan } else if ((P.x < 0) && (P.y > 0)) { printf("Kuadran 2\n"); dilakukan per komponen } else if ((P.x < 0) && (P.y < 0)) { type printf("Kuadran 3\n"); } else if ((P.x > 0) && (P.y < 0)) { printf("Kuadran 4\n"); } else /* P berada di sumbu */ { printf ("Kuadran tidak terdefinisi\n"); } }
10/31/2012

return 0;

37

Soal 9 (1)
Soal ini tidak ada hubungannya dengan soal-soal sebelumnya Buatlah program yang menerima sekumpulan nilai integer dan kemudian menampilkan ke layar banyaknya integer yang dimasukkan oleh pengguna dan nilai rataratanya. Pemasukan nilai integer dihentikan jika pengguna memasukkan nilai 9999. Jika pada saat pemasukan pertama, pengguna sudah memasukkan nilai 9999, maka yang dituliskan di layar hanya banyaknya integer yang dimasukkan yaitu 0.
10/31/2012 38

Program RataRataInteger { Menerima sejumlah integer dari masukan pengguna dan menampilkan banyaknya integer dan rata-ratanya ke layar. Pemasukan dihentikan jika pengguna memasukkan 9999.} KAMUS n : integer { input integer dari pengguna } sum : integer { penjumlahan semua integer } i : integer { banyaknya integer } ALGORITMA i 0 input(n) while (n 9999) do i i+1 sum sum + n input(n) { n = 9999 } output(i) { banyaknya integer yang dimasukkan } if (i>0) then output (sum/i)
10/31/2012 39

/* Program RataRataInteger */ /* Menerima sejumlah integer dari masukan pengguna dan menampilkan banyaknya integer dan rata-ratanya ke layar. Pemasukan dihentikan jika pengguna memasukkan 9999. */ int main () { /* KAMUS */ int n; /* input integer dari pengguna */ int sum; /* penjumlahan semua integer */ int i; /* banyaknya integer */ float rata; /* rata-rata */ /* ALGORITMA */ i = 0; printf("Masukkan nilai integer : "); scanf("%d",&n); while (n != 9999) { i++; sum+=n; printf("Masukkan nilai integer : "); scanf("%d",&n); } /* n = 9999 */ printf("Banyaknya integer = %d\n",i); if (i>0) { Type casting rata = (float)sum/(float)i; type int printf("Rata-rata nilai = %f\n",rata); } menjadi float return 0; }
10/31/2012 40

Penutup
Tugas praktikum minggu ini dikerjakan sebagai PR:
Soal akan di-launch hari Rabu, 31 Okt 2012 pukul 17.00 (setelah semua sesi responsi selesai) di situs kuliah online dan melalui mailing list Baca petunjuk pengumpulan tugas dan deadline pada soal Tugas individu

Responsi berikutnya: Rabu, 14 Nov. 2012


10/31/2012 41

Anda mungkin juga menyukai