MODUL LATIHAN PEMROGRAMAN KOMPUTER

Disusun Oleh : Suhana Minah Jaya, S. Kom

Program Studi Teknik Informatika Fakultas Teknik Universitas Muhammadiyah Cirebon 2009

KATA PENGANTAR
PEMROGRAMAN BAHASA C

Bismillahirrahmanirrahim Puji syukur kepada Allah SWT, atas taufiq, rahmat dan hidayah-Nya, sehingga penulis dapat menyelesaikan modul Praktikum Pemrograman Bahasa C bagi mahasiswa Teknik Informatika yang ada di Cirebon. Sholawat serta salam semoga tercurahkan kepada junjungan Kita Nabi Besar Muhammad SAW. beserta keluarga, sahabat, dan para pengikutnya semoga Kita termasuk di dalamnya amin.

Disusunnya Modul Praktikum ini diharapkan dapat menjadi rangsangan dan pemacu semangat belajar mahasiswa, di mana persoalan kurangnya referensi atau buku pegangan praktikum kadang menjadi alasan bagi mahasiswa kurang bersemangat dalam menempuh suatu mata kuliah. Penulis juga berharap semoga Modul praktikum ini bisa menjadi pelengkap referensi dan buku pegangan kuliah yang telah ada.
Penulis menyadari bahwa masih banyak kekurangan yang harus diperbaiki dan disempurnakan dalam penyusunan Modul praktikum ini. Untuk itu penulis mengharapkan kritik dan saran yang bersifat membangun demi kesempurnaan Modul praktikum berikutnya. Penulis mengucapkan banyak terima kasih terhadap semua pihak yang telah membantu dan mendukung penyusunan Modul ini. Semoga segala bantuan yang telah diberikan kepada penulis menjadi amal ibadah, diterima dan mendapatkan balasan dari Allah SWT. Akhir kata, semoga karya ini bermanfaat bagi pembaca.

Cirebon,

Agustus 2009

Penulis,

Disiapkan Oleh : Suhana S. Kom

MODUL I INPUT/OUTPUT
Program perdana: Assalamualaikum wr. wb. ! main() { puts(" Assalamualaikum wr. Wb. ! ") }

PEMROGRAMAN BAHASA C

Ada beberapa buah error, apa sajakah? (1) Tambahkan baris berikut pada bagian paling atas dan jalankan. Perbaiki pula error yang lain jika ada.

#include <stdio.h>
Buatlah program menggunakan fungsi puts untuk menampilkan tulisan berikut di layar: (2) Assalamualikum wr. wb. Pada hari ini Saya sedang belajar pemrograman Bahasa C Yang dilaksanakan di kampus Muhammadiyah Cirebon OK, selamat belajar Program tampilan menggunakan kode escape Gantilah fungsi puts pada program di atas menjadi printf (tanpa mengubah parameternya). Apa yang terjadi? (3) Apakah perbedaan antara puts dan printf? (4) Buatlah program berikut: #include <stdio.h> main() { printf("1 \t2 \t3 \t4 \t5 \t6 \t7 \t8 \n"); printf("Program\tKomputer\tBahasa\tC++ printf("\tdi Lab\tini\n"); printf("Saya sedang mempelajari\r"); Disiapkan Oleh : Suhana S. Kom

MODUL I INPUT/OUTPUT
printf("kode escape\n"); puts("Suara apakah ini?\a"); }

PEMROGRAMAN BAHASA C

Perhatikan tampilan yang ada di layar. Bagaimana efek kode escape \n, \t, \r dan \a? (5) Buatlah program menggunakan fungsi puts atau printf untuk menampilkan

tulisan berikut di layar: (6)
Motto saya: "Anything you can perceive, you can achieve" Kode \n adalah untuk ganti baris Program mengisi input ke variabel string #include <stdio.h> main() { char nama[80]; printf("Masukkan nama: "); gets(nama); printf("Halo "); puts(nama); } Apa arti angka 80 pada nama[80] di atas? (7) Apa kegunaan fungsi gets? (8) Gantilah baris gets(nama); menjadi: scanf("%s",nama); Disiapkan Oleh : Suhana S. Kom

MODUL I INPUT/OUTPUT

PEMROGRAMAN BAHASA C

Apa pula kegunaan fungsi scanf? (9) Program matematika bilangan bulat & riil: pembagian #include <stdio.h> main() { int a = 10, c; float b = 3.5, d; c = a/b; d = a/b; printf("a = %d\n",a); printf("b = %f\n",b); printf("c = %d\n",c); printf("d = %f\n",d); } Perhatikan cara menginisialisasi nilai variabel a dan b.

Berapakah nilai c dan d? (10) Mengapa nilai keduanya berbeda meskipun
operasinya sama? (11) Program input ke variabel bilangan: menghitung akar #include <stdio.h> main() { int a;

float b;
printf("Masukkan nilai a = "); scanf("%d",a); b = sqrt(a); printf("akar dari a = %f",b); } Disiapkan Oleh : Suhana S. Kom

? (17) Gantilah baris printf("akar dari a = %f".&b. Apa yang terjadi? (18) Mengapa harus %f. mengapa? (12) Tambahkan #include <math.? (19) Program dengan beberapa input: menghitung rerata #include <stdio.5 Bagaimana hasilnya? (14) Mengapa bisa begitu? (15) Gantilah baris scanf("%d". dll. rerata.&a). Runtime-error apa yang muncul? (13) Perbaiki dan jalankan lagi.h> main() { float a.MODUL I INPUT/OUTPUT PEMROGRAMAN BAHASA C Terjadi error waktu program di atas dicompile. b dan c = "). 25. menjadi: scanf("%f". lalu compile lagi. Coba masukan nilai a = 100. Apa yang terjadi? (16) Mengapa harus %d. c. 16. Jika berhasil.h> pada bagian atas.&a. menjadi: printf("akar dari a = %d". b. dan bukannya %d.rerata). printf("Masukkan nilai a. Isikan nilai a dengan 9. } Disiapkan Oleh : Suhana S.&a). rerata = (a+b+c)/3.b). scanf("%f %f %f". printf("Rerata = %f".&c). Kom . Variabel a bertipe bilangan bulat.b). jalankan. dan bukannya %f.

printf("c = 1/%d = %f\n".MODUL I INPUT/OUTPUT PEMROGRAMAN BAHASA C Jalankan program di atas dengan mengisikan tiga buah bilangan dengan diselingi spasi (contoh: 10 20 45). Ubahlah tipe variabel a. scanf("%d". Coba pula dengan diselingi Enter.a. c. b = 1/a.0/a. printf("b = 1/%d = %f\n".&a). b. b. Kom . Disiapkan Oleh : Suhana S. printf("Masukkan a = ").a.c).h> main() { int a. Mengapa nilai b dan c berbeda meskipun operasinya sama? (21) Kepresisian bilangan riil #include <stdio. Apalagi yang harus diubah agar tidak terjadi error? (20) Program menghitung invers #include <stdio. c = 1. b = 1000/a.h> main() { float a = 3.b). } Kompil dan jalankan program di atas. double c. dan c menjadi bilangan bulat. c = 1000/a. float b.

%7.0/a. Disiapkan Oleh : Suhana S. b = 1000. } Kompil dan jalankan program di atas.4f.b). %e.MODUL I INPUT/OUTPUT PEMROGRAMAN BAHASA C printf("a = %f\n". %+7.2f\n". printf("a = %e\t b = %e\n".2f\t\t b = %7. %g.4f\n".4f\t\t b = %+7. b. Tuliskan secara singkat maksud dari masing-masing format tadi (%f.b).b). } Kompil dan jalankan program di atas.a. Mengapa nilai b dan c berbeda meskipun operasinya sama? (22) Pengaturan tampilan #include <stdio.2f. printf("c = %f\n".2e\t b = %5. printf("a = %5. printf("b = %f\n".2e) (23). printf("a = %7. printf("a = %g\t\t\t b = %g\n".b).a.b). Perhatikan tampilan dari nilai a dan b untuk setiap format specifier yang berbeda.a. printf("a = %+7.b).a.b). %5.c). Kom .a.h> main() { double a = 3.a). printf("a = %f\t\t b = %f\n".2e\n".a.0.

scanf("%d". int angkatan. /* Menampilkan data */ printf("\nData anda adalah :\n"). printf("Angkatan : "). memberi keterangan. Buatlah program untuk mengisikan data diri melalui keyboard dan menampilkannya di layar berikut ini: #include <stdio. gets(nama). Kom . progStudi[15].h> main() { char Nama[50].&NIM). scanf("%d". nama. Disiapkan Oleh : Suhana S. NIM. dan membuat program terstruktur dengan baik.MODUL II JENIS DATA PEMROGRAMAN BAHASA C Program kombinasi input-output: data diri Dalam membuat program.angkatan. gets(progStudi).NIM). serta bagaimana cara membetulkannya? (1). Perhatikan baris ke-9 di atas: printf("Nama : "). dari sini dapat disimpulkan bahwa beberapa instruksi dapat dituliskan dalam 1 baris. /* Mengisikan data */ printf("Nama : "). printf("Program studi : "). printf("NIM : "). yaitu dengan memberi nama variabel yang mempunyai arti.&angkatan).progStudi. usahakan agar mudah dimengerti. gets(nama). printf("%s (%s %d/%d)\n". } Pesan error apakah yang muncul saat program tersebut dikompil.

progStudi.progStudi. nama. wb.nama.NIM). Output menggunakan stream: Assalamualaikum wr.!\nWe're in C++ now". Disiapkan Oleh : Suhana S. wb.progStudi. ! dalam C++ #include <iostream.NIM).angkatan.!" << endl << "We're in C++ now". dan mengapa bisa terjadi error? (2). Gantilah isi programnya menjadi: cout << "Assalamualaikum wr.NIM). dan selamat! Anda telah berhasil membuat program pertama dalam bahasa C++. Gantilah pemotongan kedua baris tersebut (a) menjadi: printf("%s (%s %d/%d)\n".angkatan.h> main() { cout << " Assalamualaikum wr. Manakah di antara (a) dan (b) yang memberikan pesan error. Kom .MODUL II JENIS DATA PEMROGRAMAN BAHASA C Perhatikan pula baris ke-2 dan 3 dari bawah: printf("%s (%s %d/%d)\n". } Jalankan. dari sini dapat disimpulkan bahwa sebuah instruksi tunggal dapat dituliskan dalam lebih dari 1baris. wb.angkatan.nama. (b) menjadi: printf("%s (%s %d/%d) \n".

h> main() { char nama[80].h> main() { int a.MODUL II JENIS DATA PEMROGRAMAN BAHASA C Hasilnya sama dengan sebelumnya. Apakah fungsi dari endl? (3) Buatlah program menggunakan cout untuk menampilkan tulisan yang sama dengan soal no (2) pada modul I (4). kamu si " << nama. Program input ke variabel bilangan: menghitung akar #include <iostream. Input string menggunakan stream: program nama #include <iostream. cin >> a. float b. Disiapkan Oleh : Suhana S. } Bandingkan program di atas dengan program yang serupa menggunakan bahasa C dalam modul 1. Kom .h> #include <math. cout << "Masukkan nilai a = ". cout << "Halo " << nama << endl << "Betul kan. cout << "Masukkan nama: ". cin >> nama. Menggantikan fungsi apakah cin dan cout (5). b = sqrt(a).

cin << a << b << c. Kom .MODUL II JENIS DATA PEMROGRAMAN BAHASA C cout << "akar dari a = " << b. cout << "Masukkan nilai a. cout << "Rerata = " << rerata. Apakah perbedaan perlakuan terhadap variabel a untuk input menggunakan cin dalam program di atas dengan yang menggunakan scanf (6)? Gantilah tipe variabel a menjadi bilangan riil. } Bandingkan dengan program serupa pada modul 1 yang mengisikan variabel dengan fungsi scanf. b.h> main() { float a. rerata. } Apakah yang salah dalam program tersebut dan bagaimanakah yang benar ? (8) Program perhitungan gaji Buatlah program untuk menghitung total pendapatan bulanan seorang karyawan dengan ketentuan sebagai berikut: · Tunjangan istri/suami = 10% dari gaji pokok · Tunjangan anak = 5% dari gaji pokok untuk setiap anak Disiapkan Oleh : Suhana S. rerata = (a+b+c)/3. b dan c = ". Periksalah apakah ada bagian lain yang perlu dimodifikasi akibat pergantian tersebut (7)? Program dengan beberapa input: menghitung rerata #include <iostream. c.

MODUL II JENIS DATA PEMROGRAMAN BAHASA C · THR = Rp 5000 kali masa kerja (tahun) · (-) Pajak = 15% dari gaji pokok. Buat pseudo-codenya (11) serta programnya dalam bahasa C++ (12). Disiapkan Oleh : Suhana S. Kom . Tentukan juga variabel-variabel yang akan digunakan beserta tipenya (10) (ingatlah untuk menggunakan nama yang mudah dimengerti). tunjangan istri & anak · Bantuan transport = Rp 3000 kali masuk kerja (hari) · (-) Polis asuransi = Rp 20000 tanda (-) artinya mengurangi pendapatan. Tentukan dahulu apa-apa saja yang akan menjadi input (dari kibod) dan output (ke layar) dari program (9).

. cin >> umur. Mengapa komentar tambahan selalu muncul untuk umur berapapun (tidak sesuai dengan yang diinginkan) serta bagaimana yang benar? (2) Buatlah program sesuai contoh berikut #include <iostream. cout << "Jadi umurmu " << umur << " tahun".h> main() Disiapkan Oleh : Suhana S. Kom . if umur >= 60 cout << "Halo mbah" << endl.h> main() { int umur. Jalankan dengan mengisikan umur 80 tahun.. Jika umur diisi lebih dari 60 tahun maka akan ditampilkan komentar. error apakah yang muncul dan bagaimana yang benar? (1) Perbaiki program tersebut dan jalankan beberapa kali dengan mengisikan nilai umur yang bervariasi. cout << "Masukkan umurmu = ".MODUL III STRUKTUR PEMROGRAMAN: PENCABAGAN PEMROGRAMAN BAHASA C Pencabangan tunggal: IF Buatlah program di bawah ini. Tambahkan baris berikut setelah baris cout << "Halo mbah. lalu jalankan lagi untuk umur 20 tahun. #include <iostream.. untuk memberi komentar tambahan jika umur lebih dari 60 tahun cout << "Salam buat cucumu ya" << endl. } Kompilelah program tersebut.

cin >> tahun. Jalankan dan isikan tahun kelahiran 1988 dan 1975 serta nilai lain. tidak ada compile error (kecuali beberapa warning). } Error apa yang muncul waktu dikompile dan bagaimana yang benar? (4) Disiapkan Oleh : Suhana S. Kom . } } Kompile program tersebut. umur = 2003-tahun. if (umur < 17). cout << "Masukkan tahun kelahiranmu = ". Kesalahan apakah yang terjadi dan bagaimana yang benar? (3) Pencabangan ganda: IF-ELSE Buatlah program untuk menentukan apakah seseorang lulus atau tidak menggunakan nilainya #include <iostream. cout << "Masukkan nilai (0 s/d 100) = ". if (N >= 50) cout << "Lulus" else (N < 50) cout << "Tidak lulus". cin >> N. cout << "Umurmu " << umur << " tahun\n". umur.MODUL III STRUKTUR PEMROGRAMAN: PENCABAGAN PEMROGRAMAN BAHASA C { int tahun. cout << "Belum cukup umur\n".h> main() { int N. { cout << "Kamu belum sweet seventeen\n".

cin >> N. Pencabangan bertingkat: IF-ELSE-IF Buatlah program untuk memberi nilai huruf berikut. 75. tanpa menggunakan pencabangan bertingkat (8). 25. jelaskan mengapa bisa terjadi seperti itu (5).. Kom . dst.MODUL III STRUKTUR PEMROGRAMAN: PENCABAGAN PEMROGRAMAN BAHASA C Perbaiki dan jalankan dengan mengisikan beberapa nilai N. #include <iostream.h> main() { int N. if (N < 40) cout << "D". if (N >= 60) cout << "B". if (N >= 40) cout << "C".. else if .. } Jalankan dan isikan nilai 15. Hasilnya tidak sesuai dengan yang seharusnya.. Perbaiki program di atas dengan struktur pencabangan bertingkat: if . else if . misalnya: jika N lebih dari atau sama dengan 60 tetapi kurang dari 80 maka . cout << "Nilai huruf = ".. Buat flowchart dari program tersebut (7).... (6).. 50. Buat flowchart dari program Disiapkan Oleh : Suhana S. dan 100. cout << "Masukkan nilai = ". if (N >= 80) cout << "A".. Kondisi kombinatorial Perbaiki program di atas dengan kondisi yang merupakan kombinasi logika.

Program dimulai dengan mengisikan suhu yang akan dikonversi. cout << "Masukkan nilai = ". if (N >= 40) if (N >= 60) if (N >= 80) cout << "A". else cout << "B".h> main() { int N. else cout << "D". cin >> N. Buat flowchart dari program di bawah ini (10). kemudian menampilkan pilihan (menu) sebagai berikut: Pilih konversi berikut: A. Celcius ke Fahrenheit B. else cout << "C". } Menu: Program konversi suhu Buatlah program untuk menghitung konversi suhu dari C ke F atau R dan sebaliknya.MODUL III STRUKTUR PEMROGRAMAN: PENCABAGAN PEMROGRAMAN BAHASA C tersebut (9). Fahrenheit ke Celcius Disiapkan Oleh : Suhana S. #include <iostream. cout << "Nilai huruf = ". Kom .

Celcius ke Reamur D. Fahrenheit ke Reamur F. Reamur ke Fahrenheit Setelah dipilih. Gunakan struktur pencabangan IF untuk program tersebut. Kom . maka program melakukan perhitungan konversi sesuai dengan yang dipilih danmenampilkan hasilnya. Buat dahuluflowchartnya baru programnya (11).MODUL III STRUKTUR PEMROGRAMAN: PENCABAGAN PEMROGRAMAN BAHASA C C. Reamur ke Celsius E. Disiapkan Oleh : Suhana S.

cin >> umur.MODUL IV STRUKTUR PEMROGRAMAN: LOMPATAN & KALANG PEMROGRAMAN BAHASA C Pencabangan Jalankan program berikut dan isikan umur = 20. cin >> kategori.C. Bagaimana keluarannya? (3). float diskon. if (umur = 20) cout << "Umur anda tepat duapuluh tahun". Bagaimana keluarannya? (1). case 'B': Disiapkan Oleh : Suhana S. Kom . 19. else cout << "Umur anda bukan duapuluh tahun".h> main() { int umur. } Pencabangan berganda: SWITCH Jalankan program berikut dan isikan kategori = A.h> main() { char kategori. 21. dst. cout << "Kategori pelanggan (A/B/C/D/E) = ". 23. #include <iostream.B. Bagian mana yang salah dan bagaimana modifikasinya? (2). cout << "Masukkan umur anda = ". atau E. #include <iostream. switch (kategori) { case 'A': diskon = 40. Modifikasilah agar menjadi benar (4).D.

goto LABEL3. } Disiapkan Oleh : Suhana S. goto LABEL2. default: diskon = 0. #include <iostream. LABEL1: cout << "Ini langkah kedua" << endl. } cout << "Diskon = " << diskon << "%". case 'C': case 'D': diskon = 10.h> main() { cout << "Ini langkah pertama" << endl. Terangkan fungsi dari label dan goto (6). Kom . Jalankan dan tulislah tampilan yang muncul (5). goto LABEL1. } Lompatan: label dan goto Buatlah program di bawah ini. LABEL3: cout << "Ini langkah keempat" << endl.MODUL IV STRUKTUR PEMROGRAMAN: LOMPATAN & KALANG PEMROGRAMAN BAHASA C diskon = 25. LABEL2: cout << "Ini langkah ketiga" << endl.

cout << "Apakah mau mengulangi (Y/T)? ". Ulangi cout << "Masukkan suhu dalam Celcius = ". Perbaiki dan jalankan. int tombol. Modifikasi program tersebut untuk dapat mengulangi jika diberi jawaban karakter Y maupun y (8). F = 1.h> #include <conio.h> main() Disiapkan Oleh : Suhana S. cout << "Suhu dalam Fahrenheit = " << F << endl. Apakah fungsi dari getch() (9) Kalang bersyarat “periksa-jalankan” : WHILE #include <iostream. F. cin >> C. cout << "Selesai". bagaimana yang benar? (7).h> #include <conio.MODUL IV STRUKTUR PEMROGRAMAN: LOMPATAN & KALANG PEMROGRAMAN BAHASA C Pencabangan & lompatan untuk perulangan #include <iostream. ada error yaitu kesalahan dalam menulis label. } Kompile program di atas. Kom . if (tombol == 'Y') goto Ulangi. tombol = getch().h> main() { float C.8*C+32. cout << endl.

cout << "Menghitung rerata nilai\n". cout << "Halo " << nama << endl << endl. cout << "Masukkan nilai. cacah = 0.h> main() { char nama[80]. cin >> nama. } cout << "Selesai". tombol = getch(). cout << "Apakah mau mengulangi (Y/T)? ". jumlah = 0. int tombol. int tombol. Kalang bersyarat “jalankan.h> #include <conio.MODUL IV STRUKTUR PEMROGRAMAN: LOMPATAN & KALANG PEMROGRAMAN BAHASA C { char nama[80].periksa”: DO-WHILE #include <iostream. do { cacah++. cout << "Data ke-" << cacah << " = ". while ((tombol == 'Y')||(tombol == 'y')) { cout << "Masukkan nama anda = ". Bagaimana yang benar? (11). rerata. Disiapkan Oleh : Suhana S. Kom . " << "isikan negatif jika selesai\n\n". Perbaiki dan jalankan. apa yang terjadi dan mengapa bisa begitu? (10). } Jalankan program di atas. float nilai. cout << endl << endl.

Buatlah dalam 2 versi. Banyaknya nilai = 3 Data ke-1 = 10 Data ke-2 = 9 Data ke-3 = 8 Jumlah = 27 Rerata = 9 Menu: Program konversi suhu dengan SWITCH Buat pula program yang sama dengan pada bagian akhir Modul III meng gunakan struktur SWITCH. pertama menggunakan kalang WHILE (14). } Apa fungsi instruksi cacah++ (12). Disiapkan Oleh : Suhana S. Buat dahulu flowchartnya baru programnya (16). rerata = jumlah/cacah. dan kedua menggunakan kalang DO-WHILE (15). apakah jawaban yang diperoleh sudah benar? Perbaiki program tersebut agar menjadi benar (13). Buatlah program untuk menghitung jumlah & rerata nilai. akhiri masukan dengan memberikan nilai negatif (jangan cuma tanda minus thok). cout << "\nJumlah = " << jumlah. Kom . tetapi dengan memasukkan dahulu berapa banyaknya nilai yang akan dimasukkan. Jalankan program di atas dan masukkan beberapa nilai untuk dihitung reratanya. Periksa jawabannya. Tampilannya adalah sbb (huruf tebal adalah nilai yang diisikan melalui keyboard).MODUL IV STRUKTUR PEMROGRAMAN: LOMPATAN & KALANG PEMROGRAMAN BAHASA C cin >> nilai. cout << "\nRerata = " << rerata. cout << "\nBanyaknya data = " << cacah. jumlah = jumlah+nilai. } while (nilai >= 0).

while (x <= 20) cout <<setw(3)<<x<<setw(8)<<(x*x)<<endl. Jika masih belum bisa. tekan CTRL ALT DEL dan tunggu beberapa saat lalu tekan tombol End Task pada bagian yang Not Responding). } Jalankan program untuk menampilkan tabel kuadrat di atas. cout << " x x kuadrat\n".MODUL V STRUKTUR PEMROGRAMAN: KALANG PEMROGRAMAN BAHASA C Tabel kuadrat #include <iostream.h> main() { int i = 0. Kom . Apa guna fungsi tersebut (3) ? Memutus kalang: BREAK & CONTINUE #include <iostream.h> main() { int x = 0. do { i++. cout << i. (untuk menghentikannya tekan tombol CTRL C. x++. Jangan kaget karena program akan terus mengalir ke bawah. Apa yang menyebabkan hal itu terjadi (1)? Bagaimana yang benar (2)? Gantilah angka-angka pada fungsi setw() dan perhatikan hasilnya. Disiapkan Oleh : Suhana S.h> #include <iomanip.

MODUL V STRUKTUR PEMROGRAMAN: KALANG PEMROGRAMAN BAHASA C cout << " . puts(" x sin(x) x sin(x)"). cout << i. cout << "\nSelesai\n". int x = 0. y2. y2 = sin(x2/180*PI).". } Jalankan program di atas dan catat tampilannya di layar. printf("%4d %8.h> main() { const float PI = 3. Apa fungsi dari keyword break (5) ? Gantilah break dengan continue dan jalankan. Kom . Apa fungsi simbul / / (4) ? Hilangkan kedua tanda / / tersebut dan jalankan.141593.4f\n".y2). float y. x. x2. // if (i == 4) // break. Disiapkan Oleh : Suhana S.y. x2 = x+180.4f %4d %8.h> #include <math. Apa fungsi dari continue(6) ? Tabel sinus #include <stdio.0*PI).x2. } while (i < 10). do { y = sin(x/180. puts("Tabel sinus\n-----------").

Tambahkan instruksi berikut pada baris setelah while PI = 3.0 278. 95 203. Reamur.. Tampilannya kurang lebih adalah sbb (11) Tabel konversi suhu -------------------C F R K 0 32.25 Metode numeris: Bisection Program untuk mencari akar persamaan (zeros) menggunakan metode bisection berikut ini adalah contoh aplikasi pemrograman komputer pada Disiapkan Oleh : Suhana S.0 8.25 .0 4. mulai dari suhu 0°C sampai 100°C dengan langkah 5°C. Kom .0 273. Apa yang menyebab-kan nilai dalam tabel tersebutsalah (7) Bagaimana yang benar (8) Apakah fungsi dari operator += pada instruksi x += 10 (9).MODUL V STRUKTUR PEMROGRAMAN: KALANG PEMROGRAMAN BAHASA C x += 10. dan Kelvin. } while (x <= 180). buatlah tabel konversi suhu dari Celcius ke Fahrenheit. } Program di atas menampilkan tabel sinus.0 368.0 0. Pesan error apa yang muncul dan mengapa terjadi error (10)? Tabel konversi suhu Dengan struktur yang serupa (tapi tak sama) memakai DO-WHILE.25 10 50.25 100 212..0 283.0 80.0 76.25 5 41.14.0 373.

do { xC = (xL+xU)/2. Jalankan dan masukkan tebakan awal bawah = 2 dan atas = 5 (cobalah juga kombinasi yang lain. misalnya xL = -5 dan xU = 0). cin >> xL. cout << "Mencari akar persamaan x*x-2*x-3=0" << " dengan metode bisection\n" << "Masukkan tebakan awal bawah = ". cout << setw(5) << iterasi << setiosflags(ios::fixed) << setprecision(5) Disiapkan Oleh : Suhana S. double xL. xC. #include <iostream. yU.h> main() { int iterasi = 0. xU.MODUL V STRUKTUR PEMROGRAMAN: KALANG PEMROGRAMAN BAHASA C metode numeris. yC. cin >> xU. cout << "Masukkan tebakan awal atas = ". yL = xL*xL-2*xL-3. Jawaban secara analitik adalah x = 3 atau -1. yC = xC*xC-2*xC-3. yU = xU*xU-2*xU-3. yL. cout << "iterasi xL xC" << " xU yL" << " yC yU\n".h> #include <iomanip. Kom .h> #include <math.

MODUL V STRUKTUR PEMROGRAMAN: KALANG PEMROGRAMAN BAHASA C << setw(12) << xL << setw(12) << xC << setw(12) << xU << setw(12) << yL << setw(12) << yC << setw(12) << yU << endl. } Gantilah parameter pada fungsi setprecision() dengan angka 7. apakah yang harus diubah dalam program tersebut (15)? (akar persamaan tersebut kira-kira adalah = 1. gantilah ios::fixed menjadiios::scientific. cout << "Jadi akarnya adalah " << xC.67834. Apa beda antara ios::fixed dan ios::scientific (13)? Apakah fungsi dari fabs()(14)? Apabila hendak menggunakan program tersebut untuk persamaan yang lain yaitu exp(x) .2*x – 2 = 0. } while ((iterasi <= 50)&&(fabs(yC)>1e-5)). if (yL*yC <= 0) xU = xC. Apakah guna dari fungsi setprecision() (12)? Dengan menggunakan nilai presisi 4. else xL = xC. Disiapkan Oleh : Suhana S. Kom . iterasi++.

i++) { (c) for (i=1.h> main() { for (int i=1. Kom . i<=10. } } Jalankan program di atas dan lihat hasilnya. } cout << endl. i++) { cout << "kalang ke-" << i << endl. i++) { for (int j=1. i<=20.h> #include <iomanip. i=i+2) { Jelaskan fungsi masing-masing bagian pada baris for (1) Kalang FOR bertingkat: Tabel Perkalian #include <iostream. j<=10.h> main() { int i. i<=20. j++) { cout << setw(5) << i*j.MODUL VI STRUKTUR PEMROGRAMAN KALANG FOR & VARIABEL LARIK (ARRAY) PEMROGRAMAN BAHASA C Kalang FOR untuk perulangan #include <iostream. } } Disiapkan Oleh : Suhana S. i++) { (b) for (i=1. for (i=1. i<=20. Perhatian fungsi dari ketiga bagian pada struktur for (yang dibatasi dengan tanda titik-koma) dengan mengubah baris for di atas menjadi: (a) for (i=10. i<=10.

h> #include <iomanip. i<=255. Kelompok karakter apa yang masing-masing mempunyai kode dari 48 s/d 57. i++) { cout << setw(3) << i << " " << char(i) << " ". dari 97 s/d 122 (3)? #include <iostream. } } Kalang FOR bertingkat untuk simulasi bunyi dering telepon Kompile program di bawah ini. 2 buah error apa yang terjadi dan bagaimana yang benar (4)? Ubahlah angka 1000 menjadi 5000. Kom . for (int i=32. Tabel ini berisi kode-kode ASCII dan karakter yang diwakilinya. dengan contoh tampilan sbb: (2) 1 2 4 3 6 9 . dari 65 s/d 90.h> main() { cout << "\t".. dan periksalah apa fungsi Disiapkan Oleh : Suhana S. Ubahlah satu baris saja program tersebut untuk mendapatkan tabel yang berbentuk segitiga. 9 18 27 36 45 54 63 72 81 10 20 30 40 50 60 70 80 90 100 Kalang FOR untuk Tabel Kode ASCII Jalankan program untuk menampilkan tabel ASCII di bawah ini.MODUL VI STRUKTUR PEMROGRAMAN KALANG FOR & VARIABEL LARIK (ARRAY) PEMROGRAMAN BAHASA C Jalankan program di atas dan perhatikan tampilannya..

for (i=1.MODUL VI STRUKTUR PEMROGRAMAN KALANG FOR & VARIABEL LARIK (ARRAY) PEMROGRAMAN BAHASA C delay() (5)? Ubahlah nilai pada sound(). kring <=2. Alih-alih menggunakan 3 buah variabel (a. sound(1500). program tersebut dapat dimodifikasi menggunakan sebuah variabel larik a. Error apa yang terjadi dan bagaimana yang benar (7)? Disiapkan Oleh : Suhana S. i++) { cout << "i". } cout << "ng\n". dan c). Kom .h> #include <dos. cout << "kr". nosound(). sound(600). dan periksalah apa fungsi sound() (6)? #include <iostream.h> main() { int kring. b. for (kring = 1. i<=20. delay(30). delay(30). kring++) { delay(1000). } } Variabel larik pada perhitungan nilai rerata Ingat kembali program menghitung rerata 3 nilai pada Modul II. nosound().

float jumlah. Kom . Lalu coba lagi dengan banyaknya nilai = 15 dan isikan nilai-nilainya. Apa yang terjadi dan mengapa begitu. cout << "Banyaknya nilai = ". i<N. serta bagaimana memperbaikinya (9)? #include <iostream. i++) { cout << "Nilai ke-" << (i+1) << " = ". cin >> a[i]. Program berjalan dengan lancar. a[3]. cin >> N.h> main() { int N. for (int i=0. jumlah = jumlah+a[i].h> main() { float rerata. } Disiapkan Oleh : Suhana S.MODUL VI STRUKTUR PEMROGRAMAN KALANG FOR & VARIABEL LARIK (ARRAY) PEMROGRAMAN BAHASA C #include <iostream. cout << "Rerata = " << rerata. } Program menghitung rerata secara umum dapat berupa program di bawah ini. cin >> a(0) >> a(1) >> a(2). Error apa yang ada dan bagaimana yang benar (8)? Isikan banyaknya nilai = 4 dan isikan nilai-nilainya. jumlah = 0. a[5]. rerata. cout << "Masukkan 3 buah nilai = ". rerata = (a[0]+a[1]+a[2])/3.

} Perhitungan nilai rerata dan standar deviasi Tambahkan beberapa baris (atau modifikasi) program di atas sehingga selain memberikan nilai rerata juga menghitung standar deviasi (10)? Program menghitung tinggi pantulan bola jatuh bebas Buatlah program untuk menghitung tinggi pantulan bola yang jatuh.000 2 6..8 kali tinggi sebelumnya. Gunakan kalang for dan break..074 11 0. dengan asumsi tinggi pantulan bola adalah 0.859 Disiapkan Oleh : Suhana S. Maksimal perhitungan adalah sampai pantulan ke 20 atau apabila tinggi pantulan sudah di bawah 1.MODUL VI STRUKTUR PEMROGRAMAN KALANG FOR & VARIABEL LARIK (ARRAY) PEMROGRAMAN BAHASA C rerata = jumlah/N. Contoh tampilan program terlihat di bawah ini. (11)? Tinggi awal = 10 Pantulan ke tinggi 1 8.400 3 5. cout << "Rerata = " << rerata. 10 1.120 . Tinggi awal bola jatuh diisikan melalui keyboard. Kom .

Apa pengaruh pendefinisian variabel i di dalam kalang for(1). float A[5][5].MODUL VII VARIABEL LARIK MATRIK & STRING PEMROGRAMAN BAHASA C Sekup variabel dalam kalang FOR #include <iostream. i++) { Disiapkan Oleh : Suhana S. i++) { jalankan program tersebut dan lihat nilai i yang ditampilkan. cout << "di luar kalang i = " << i << endl. i++) { jalankan program tersebut dan perhatikan nilai i yang ditampil-kan. Kalang FOR untuk mengisi dan menampilkan matriks #include <iostream. Gantilah pernyataan for di atas menjadi: for (int i=1. } Jalankan program di atas dan lihat hasilnya. i<=10.h> main() { int N = 3. Kom .h> main() { int i = 5. for (i=1. Apakah yang terjadi apabila tidak dilakukan inisialisasi pada kalang for(2). i<=10. for (int i=0. i++) { cout << "di dalam kalang i = " << i << endl. i<=10. i<N. Gantilah pernyataan for di atas dengan menghilangkan bagian inisialisasi kalang for menjadi: for (. } cout << "di luar kalang i = " << i << endl.

Modifikasi (dengan menambah atau mengubah sekitar 3 baris saja) program tersebut agar dapat digunakan untuk mengisi dan menampilkan matriks yang berukuran 4 baris x 5 kolom (3). for (int i=0. Kom . j<N." << j << ") = ". } } cout << "Matriks A = \n". i<N. Ingatlah bahwa penjumlahan matriks dilakukan elemen demi elemen (4). seperti di bawah ini Disiapkan Oleh : Suhana S. Kemudian dari program tersebut gantilah kalang yang digunakan untuk menghitung matriks C sebagai penjumlahan antara A dan B menjadi perkalian antara matriks A dan B.MODUL VII VARIABEL LARIK MATRIK & STRING PEMROGRAMAN BAHASA C for (int j=0. } } Program di atas adalah sebuah contoh program yang digunakan untuk mengisi nilai-nilai elemen pada matriks ukuran 3x3. j++) { cout << "\t" << A[i][j]. kemudian juga menampilkan matriks C yang merupakan matriks hasil penjumlahan A dan B. j<N. i++) { for (int j=0. j++) { cout << "A(" << i << ". } cout << endl. cin >> A[i][j]. Tambahkan beberapa baris perintah-perintah lain pada program di atas untuk mengisi dan menampilkan juga matriks B dengan ukuran yang sama (3x3).

i<N."z").MODUL VII VARIABEL LARIK MATRIK & STRING PEMROGRAMAN BAHASA C for (int i=0.nama) << endl. int panjang. j++) { C[i][j] = 0. Disiapkan Oleh : Suhana S."Halo "). posisi = strcspn(nama. } panjang = strlen(nama). if (strcmp(nama.h> #include <iostream. j<N. } else { cout << "Namamu bukan Fella" << endl. for (int k=0. i++) { for (int j=0. k<N. cout << "panjang namamu " << panjang << endl. nama2[80].h> #include <string. posisi. strcpy(tulisan.h> main() { char nama[80]. tulisan[80]. k++) { C[i][j] = C[i][j]+A[i][k]*B[k][j]. Kom . } } } Operasi pada string: Kutak-katik nama #include <stdio."Fella") == 0) { cout << "Namamu Fella kan" << endl. cout << "Masukkan nama = ". gets(nama). cout << strcat(tulisan.

cout << strrev(nama2) << endl.h> #include <stdio. strlwr(). Kode yang valid (visible) adalah antara 32 s/d 126. dan strset() (5). Kom . strupr(). strrev().MODUL VII VARIABEL LARIK MATRIK & STRING PEMROGRAMAN BAHASA C if (posisi < panjang) { cout << "Huruf z pada posisi " << posisi << endl. cout << strlwr(nama2) << endl.nama). strcspn(). strcpy().h> Disiapkan Oleh : Suhana S. strcat().strlen(). Apakah efeknya pada waktu program dijalankan? (6) String sebagai larik karakter: Caesar Chiper Program berikut ini digunakan untuk mengenkripsi (mengkode-kan) sebuah tulisan dengan Caesar Chiper. } else { cout << "Tidak ada huruf z nya" << endl.h> #include <string. Caranya adalah dengan menggeser kode ASCII dari masing-masing karakter pada tulisan tersebut dengan sebuah kunci yang berupa bilangan bulat.'x') << endl. cout << strupr(nama2) << endl. menjadi: cin >> nama. } strcpy(nama2. strcmp(). Gantilah baris: gets(nama). } Jalankan program di atas dan jelaskan kegunaan dari fungsi berikut ini: strlen(). cout << strset(nama2. #include <iostream.

di atas. if (kode < 32) kode = kode + 95.i++) { kode = int(tulisan[i])+kunci. panjang. } cout << "Terenkripsi = " << terenkripsi << endl. int kunci. terenkripsi[i] = char(kode). kode. cout << "Masukkan tulisan = ". Kom . strcpy(terenkripsi.. gets(tulisan)..95. for (int i=0. panjang = strlen(tulisan). cout << "Masukkan nilai kunci = ". } Jalankan program tersebut. Sifat operasinya adalah dapat-balik (reversible). masukkan sebuah tulisanb dan juga kunci untuk mengenkripsi (bil bulat positif atau negatif).tulisan). apa yang terjadi (9)? Disiapkan Oleh : Suhana S. if (kode > 126) kode = kode . terenkripsi[100].i<panjang. Bagaimana bentuk terenkripsi dari ―Teknik Fisika‖ dengan kunci 10 (7)? Apa tulisan asli dari pesan berikut ini serta berapa nilai kunci yang dipakai untuk mengenkripsi tulisan aslinya (8)? Ru|qzq#0!u}# w#q}q~0rqxq$q0S Hilangkan baris strcpy(.MODUL VII VARIABEL LARIK MATRIK & STRING PEMROGRAMAN BAHASA C main() { char tulisan[100]. Untuk mendekripsi gunakan nilai lawan dari kunci tersebut. cin >> kunci.

Jalankan program tersebut. cin >> N. } } void Hitung_Rerata() { jumlah = 0. cout << "Rerata = " << rerata << endl. i++) { cout << "Nilai ke-" << (i+1) << " = ". void Masukkan_Data() { cout << "Banyaknya nilai = ". data[100].MODUL VIII FUNGSI PEMROGRAMAN BAHASA C Fungsi untuk memotong-motong program Ingat kembali program untuk menghitung rerata pada modul VI. cin >> data[i]. rerata.h> int N. i<N. float jumlah. Kita dapat memotong-motong program tersebut menggunakan fungsi sehingga mudah dipelajari. i++) { jumlah = jumlah+data[i]. lalu ubah dan tambahkan perhitungan standar deviasi (1). #include <iostream. } void Tampilkan_Hasil() { cout << "Jumlah = " << jumlah << endl. } rerata = jumlah/N. i<N. for (int i=0. } Disiapkan Oleh : Suhana S. for (int i=0. Kom .

Kom . } } } void MenampilkanMatriks(float X[5][5]) { for (int i=0. i<N. j++) { cout <<"elemen "<< i << "." << j << " = ". cin >> X[i][j]. i++) { for (int j=0. i++) { for (int j=0. Tampilkan_Hasil(). i<N. #include <iostream. j<N.MODUL VIII FUNGSI PEMROGRAMAN BAHASA C main() { Masukkan_Data(). j++) { cout << "\t" << X[i][j]. Hitung_Rerata().h> int N = 2. } Disiapkan Oleh : Suhana S. void MengisiMatriks(float X[5][5]) { for (int i=0. } Fungsi untuk mengisi dan menampilkan matriks Program berikut sama dengan program pada modul VII. j<N. namun instruksi untuk mengisi dan menampilkan matriks dijadikan fungsi yang dipanggil pada main program.

} } main() { float A[5][5]. cout << "Matriks A = \n". MengisiMatriks(A). yaitu dengan menambahkan fungsi berikut sebelum main(). Kom . double y(double x) { return x*x-2*x-3. Disiapkan Oleh : Suhana S.MODUL VIII FUNGSI PEMROGRAMAN BAHASA C cout << endl. yC. yC = y(xC). Modifikasi program tersebut dengan menggunakan fungsi. cout << "Masukkan elemen matriks A\n". serta matriks C yang merupakan penjumlahan antara A dan B (2). } Selanjutnya. yU menjadi berikut ini: yL = y(xL). modifikasilah program di atas untuk dapat mengisi dan menampilkan matriks B dengan ukuran yang sama. yU = y(xU). Fungsi dengan nilai kembalian ( return value ) : Bisection Review kembali program bisection pada Modul V. MenampilkanMatriks(A). dan. } Kemudian gantilah instruksi yang digunakan untuk mengitung nilai-nilai yL.

// tampilkan tulisan >> Suhu_C.MODUL VIII FUNGSI PEMROGRAMAN BAHASA C Jalankan dan periksa hasilnya. // hitung nilai Suhu F } void Menampilkan_Hasil() { cout << "Temperatur " << Suhu_C << " C = " << Suhu_F << " F" << endl. Apabila program tersebut digunakan untuk persamaan yang lain yaitu exp(x) . apakah yang harus diubah dalam program tersebut (3)? (akar persamaan tersebut kira-kira adalah = 1. F = 1. Kom . Suhu_F.8*C+32. #include <iostream. // definisikan variabel float C_ke_F(float C) { float F.0.h> float Suhu_C. // isikan nilai Suhu C } void Mengkonversi() { Suhu_F = C_ke_F(Suhu_C). return F. Program konversi suhu Berikut ini adalah program untuk mengkonversi suhu dalam Celcius ke Fahrenheit menggunakan fungsi.2*x . } Disiapkan Oleh : Suhana S.2 = 0.67835). } void Mengisi_Input() { cout << "Isikan nilai Suhu C = ".

void Menampilkan_Hasil(). void Mengisi_Input(). lalu mengisikan suhu yang akan dikonversi. void Mengkonversi(). Celcius ke Reamur D. Program dimulai dengan menampilkan pilihan (menu) sebagai berikut: Pilih konversi berikut: A. Disiapkan Oleh : Suhana S. Fahrenheit ke Reamur F. Reamur ke Celsius E. } Jalankan program di atas dan lihat hasilnya. Menampilkan_Hasil(). Error apa yang muncul?(4) Lalu tambahkan pendefinisian keempat fungsi tadi di atas main(): float C_ke_F(float C). Jalankan dan jelaskan apa guna definisi fungsi tersebut(5). kemudian program melakukan perhitungan konversi sesuai dengan yang dipilih dan menampilkan hasilnya. Pindahkan keempat fungsi yang ada ke bagian bawah setelah akhir dari program utama main() lalu kompilelah. Reamur ke Fahrenheit X. Mengkonversi(). Celcius ke Fahrenheit B. Selesai Setelah dipilih. Fahrenheit ke Celcius C.MODUL VIII FUNGSI PEMROGRAMAN BAHASA C main() { Mengisi_Input(). Kom . Buatlah program untuk menghitung konversi suhu dari C ke F atau R dan sebaliknya. Gunakan struktur pemrograman fungsi untuk masing-masing jenis konversi (6).

Kom . } main() { cout << "Di dalam program utama. int *B. Apakah yang terjadi pada X untuk ketiga kasus tersebut (1). SebuahFungsi(). (c) int X = 20. X = " << X << endl.FUNGSI PEMROGRAMAN BAHASA C . Tambahkan sebaris di atas cout dalam SebuahFungsi dengan: (b) X = 20. int &C) { A = A*2. Pelewatan parameter pada pemanggilan fungsi #include <iostream. Disiapkan Oleh : Suhana S. } (a) Jalankan program di atas dan perhatikan hasilnya. cout << "Keluar ke program utama lagi. X = " << X << endl.h> int X = 10. *B = *B*2.h> void Gandakan(int A.Sekup variabel di dalam fungsi #include <iostream.LATIHAN PEMROGRAMAN KOMPUTER MODUL IX . X = " << X << endl. void SebuahFungsi() { cout << "Di dalam fungsi.

} Disiapkan Oleh : Suhana S. } float HitungLuas(float P. Z = 6. Y = 10. { return 3. Gandakan(X.h> float HitungLuas(float R). } main() { int X = 1. Overloading. float L) { return float P*L. Z). Kom . pendefinisian fungsi dengan nama sama #include <iostream.FUNGSI PEMROGRAMAN BAHASA C C = C*2. cout << "Sebelum fungsi Gandakan dipanggil\n" << "X = " << X << endl << "Y = " << Y << endl << "Z = " << Z << endl. &Y. } Variabel manakah yang akan diubah nilainya ketika dijadikan parameter yang dilewatkan pada fungsi Gandakan (2).LATIHAN PEMROGRAMAN KOMPUTER MODUL IX .14159*R*R. cout << "Setelah fungsi Gandakan dipanggil\n" << "X = " << X << endl << "Y = " << Y << endl << "Z = " << Z << endl.

Perbaikilah. Mengapa tidak terjadi error ketika 2 buah fungsi menggunakan nama yang sama? (4). Lebar. Luas = HitungLuas(Panjang. Nilai default pada parameter fungsi #include <iostream. Luas = HitungLuas(Radius).FUNGSI PEMROGRAMAN BAHASA C main() { float Radius. Panjang. else cout << "Nilai " << N << " itu cukupan\n". cout << "Radius lingkaran = ". cin >> Lebar.LATIHAN PEMROGRAMAN KOMPUTER MODUL IX . cout << "Lebar segiempat = ". cout << "Luas lingkaran = " << Luas << endl. cout << "Panjang segiempat = ". cin >> Radius. Luas.h> void Keterangan(int N : 10) { if (N >= 8) cout << "Nilai " << N << " itu bagus\n". } Apakah yang menyebabkan terjadinya error pada program di atas? (3). Kom . Lebar). Disiapkan Oleh : Suhana S. cout << "Luas segiempat = " << Luas << endl. cin >> Panjang. else if (N < 5) cout << "Nilai " << N << " itu parah\n".

Angka2 = temp. cin >> Nilai. Mengapa tidak terjadi error ketika fungsi di atas dipanggil tanpa mengisikan parameternya? (6) Fungsi penukaran dua buah variabel #include <iostream. Kom . Y = " << Y. Angka1 = Angka2. Y = 99. Keterangan(). int Angka2) { int temp = Angka1. Y).LATIHAN PEMROGRAMAN KOMPUTER MODUL IX . cout << "Sebelum ditukarkan". Disiapkan Oleh : Suhana S. cout << "\nSetelah ditukarkan". } main() { int X = 1. } Apakah yang menyebabkan terjadinya error pada program di atas? (5). cout << "\nX = " << X << ".FUNGSI PEMROGRAMAN BAHASA C } main() { int Nilai. Perbaikilah. Tukarkan(X. Keterangan(Nilai).h> void Tukarkan(int Angka1. cout << "Masukkan nilai = ".

} main() { int Data[6] = {10. i++) cout << D[i] << " ". j--) { if (Data[j+1] < Data[j]) Tukarkan(Data[j]. 15. Cobalah program sorting di bawah ini.FUNGSI PEMROGRAMAN BAHASA C cout << "\nX = " << X << ". i<6. void Cetak(int D[]) { for (int i=0. cout << endl. dengan masih menggunakan fungsi Tukarkan di atas. i<5. dan bagaimana cara memperbaikinya (7). cout << "Sebelum disortir:\n". Cetak(Data). } } Disiapkan Oleh : Suhana S. i++) { for (int j=4. } Mengapa nilai X dan Y tidak bertukaran pada program di atas. for (int i=0. 5. Cetak(Data). 7}. cout << "Proses sortir:\n". Data[j+1]).LATIHAN PEMROGRAMAN KOMPUTER MODUL IX . Y = " << Y. } cout << "-----\n". j>=i. Kom . 20. 3.

fputs(teks.txt". akhiri dengan END\n".h> main() { char namafileoutput[] = "c:\\filesaya. cout << "Selesai" << endl. while (1) { gets(teks)."\n").LATIHAN PEMROGRAMAN KOMPUTER MODUL X . fout = fopen(namafileoutput.h> #include <iostream.h> #include <string. if (strcmp(teks. FILE *fout.FILE & GRAFIK PEMROGRAMAN BAHASA C Menulis ke file teks #include <stdio.h> #include <string. strcat(teks. cout << "Ketikkan teks yang akan ditulis " << "ke file. Kom ."END") == 0) break. "w"). } Membaca dari file teks #include <stdio.h> #include <iostream. char teks[80]. fout).h> Disiapkan Oleh : Suhana S. } fclose(fout).

char teks[80]. #include <stdio. pilihlah Target Type: Application [*. fin = fopen(namafileinput. Libraries: BGI. dan lain-lain lihat dalam file c:\bc5\include\graphics. pada saat membuat project. cout << "Selesai" << endl. 80. fill style.h Perhatian: untuk dapat menggunakan perintah-perintah yang berhubungan dengan grafik dari Borland Graphics Interface.txt". fin)==NULL) { break. Kom . "rt"). Platform: DOS (Standard).warna.FILE & GRAFIK PEMROGRAMAN BAHASA C main() { char namafileinput[] = "c:\\filesaya.h> #include <conio.LATIHAN PEMROGRAMAN KOMPUTER MODUL X . } cout << teks. FILE *fin. } Menampilkan grafik batang Program berikut ini menampilkan grafik batang dari data yang ada. } fclose(fin).exe].h> Disiapkan Oleh : Suhana S. Untuk pilihan-pilihan huruf. while (1) { if (fgets(teks. cout << "Isi file " << namafileinput << endl.

15. settextstyle(DEFAULT_FONT.20}. grErr. WHITE). VERT_DIR.LATIHAN PEMROGRAMAN KOMPUTER MODUL X . "Grafik batang"). unsigned yMax = getmaxy(). 360. int data[] = {10. setfillstyle(SOLID_FILL.12. grMode. HORIZ_DIR.25.8. setcolor(GREEN). "C:\\BC5\\BGI"). 0. if (grErr != grOk) { printf("BGI error: %s\n".h> main() { char s[5]. int grDriver = DETECT. return grErr. i=i+5) { Disiapkan Oleh : Suhana S. grapherrormsg(grErr)).FILE & GRAFIK PEMROGRAMAN BAHASA C #include <graphics. ellipse(250. yMax-50. setcolor(BLACK). line(50. settextstyle(SANS_SERIF_FONT. yMax-50). for (int i=0. setcolor(RED). yMax). } unsigned xMax = getmaxx(). xMax-50. outtextxy(180. 60. xMax. grErr = graphresult(). line(50. 0. Initgraph(&grDriver. setcolor(BLUE). 2). 50. i<=30. 100. Kom . yMax-50).20.5. 30). 50. 80.18. 1). bar(0. &grMode.

s). s). yMax-50. for (i=0. return 0. setfillstyle(SOLID_FILL. "%d". } getch(). HORIZ_DIR. 50*(i+2). i<10. outtextxy(50*(i+1)+25. "%d".FILE & GRAFIK PEMROGRAMAN BAHASA C sprintf(s.LATIHAN PEMROGRAMAN KOMPUTER MODUL X . } settextstyle(DEFAULT_FONT. closegraph(). i). yMax-50-10*data[i]). i++) { sprintf(s. i). Kom . i). } Disiapkan Oleh : Suhana S. yMax-40. 1). outtextxy(40. yMax-55-10*i. bar(50*(i+1).

Kelilingnya Adalah : …….......Buatlah Program Untuk Menghitung gaji yang diterima Pegawai.1 Gaji pegawai PT.gaji pokok dan jam lembur.. Luas = PI * Jari * Jari Keliling = 2 * PI * Jari Bentuk Outputnya : Masukan Jari .. Luas Lingkaran Tersebut : …….. Masukan : Nama.SOAL-SOAL Soal 2.....Upah Lembur Tunjangan pegawai adalah 15 % dari gaji pokok upah lembur perjam adalah 1..5 % dari Gaji Pokok. Bentuk Outputnya : Perincian Gaji Pegawai —————————— Gaji Pokok : Rp………… Tunjangan : Rp………… Upah Lembur : Rp………… ————————————————– Gaji Total : Rp…. Disiapkan Oleh : Suhana S......Nip..Jari Lingkaran (Cm) : ……... Soal 2......Tunjangan .2 Buatlah : Program Menghitung Luas dan Keliling Lingkaran .. Kom . diantaranya : .... Mundur Maju dihitung berdasarkan beberapa hal.Gaji Pokok ...

4 Buatlah program dengan tampilan seperti berikut : 1.c Keterangan : Jika nilai lebih besar atau sama dengan 60 maka lulus.3 Buatlah program dengan tampilan seperti berikut : 1. Ketikkan nama Anda = Mutiara Adila Masukkan Nilai Teori (0 – 100) : 25 Masukkan Nilai Praktek (0 – 100) : 70 Hai Mutiara Adila Nilai Rata-rata Anda : 67.50 Simpan ke server Nama file : Latihan03.c Soal 2.c Soal 2. Masukkan nama Anda = Muhammad Anugrah Firdaus Masukkan umur Anda = 25 Hai Muhammad Anugrah Firdaus Anda berumur = 25 tahun Selamat Belajar Pemograman dengan Bahasa C Simpan ke server Nama file : Latihan02. Kom . Masukkan nilai A = 15 Masukkan nilai B = 13 Hasil jumlahnya = 28 Hasil pengurangannya = 2 Simpan ke server Nama file : Latihan01.SOAL-SOAL Soal 2. selain itu gagal Disiapkan Oleh : Suhana S.5 Aplikasi Perhitungan Nilai ==================== 1.

Masukkan nilai panjang alas ke variabel A (scanf(―%d”.5*A*T T A Penyelesaian : a. yaitu : .Masukkan nilai panjang tinggi ke variabel T (scanf(―%d‖. Kom .Tampilkan hasil Luas (prinf(―Hasil :%d‖.&A) .&T) .Panjang alas.Hitung Luas = 0. Menulis algoritma dari program : Secara sederhana algoritma dapat ditulis demikian : .Panjang Tinggi. Menentukan variabel input dan variabel output yang dibutuhkan ada 2 variabel input (data yang diketahui).6 Buatlah program untuk menghitung luas (L) segitiga siku-siku jika diketahui panjang alas (A) dan panjang tingginya (T) L=½AT=0.Luas) Disiapkan Oleh : Suhana S. yaitu : Luas b. diberi nama variabelnya : A . Menentukan tampilan program: Program Menghitung Luas Segitiga ============================= Masukkan nilai panjang Alas : _ Masukkan nilai panjang Tinggi : _ Luas segitiga tersebut adalah : ……… C. diberi nama variabel : T Ada 1 variabel output (data yang ditanya).5*A*T .SOAL-SOAL Contoh soal 2.

Printf(―Luas segitiga tersebut adalah :%d‖. Luas =0.5*A*T. Buatlah program untuk menghitung luas lingkaran dengan rumus Luas = 0.5*PI*radius*radius 3. Buatlah program untuk menghitung pembayaran pulsa telepon jika ditentukan biaya pulsa telepon per 100 detik adalah 500. berapakah pembayarannya untuk input waktu yang dimasukkan 3 jam 4.h> Void main() { Int A. Getch() } Latihan : 1. Menulis program C seperti berikut : #include <stdio.&A). dengan ketentuan jika umur lebih kecil dari 45 tahun berarti masih muda dan jika umur diatas 45 tahun berarti sudah tua ! R Disiapkan Oleh : Suhana S.scanf(―%d‖. Kom .SOAL-SOAL d. Luas. Printf(―Program Menghitung Luas Segitiga\n‖). Printf(―Masukkan nilai panjang Alas :‖). Printf(―Masukkan nilai panjang Tinggi :‖).h> #include <conio. sacnf(―%d‖.Luas). Buatlah program untuk menghitung Sisi Miring (R) segitiga siku-siku ! R = √A ² + T ² T A 2.T.&T). Buatlah program untuk menentukan apakah umur yang dimasukkan termasuk sudah tua atau masih muda. Printf(―=============================\n\n‖).

h> #include<conio. If(umr<=5) printf(―\nAnda ternyata masih BALITA‖). while(lg===‗Y‘|| lg=‗y‘) { clrscr(). else If(umr<=75) printf(―\nAnda sudah tua bangka‖). else If(umr<17) printf(―\nAnda masih kanak-kanak‖).scanf(―%d‖. kemudian setelah nilai dimasukkan akan muncul pesan apakah nilai tersebut GENAP atau GANJIL ! 6. scanf(―%c‖.nama). printf(―Hai %s‖. else If(umr<=55) printf(―\nAnda sudah cukup tua‖). NOL. kemudian setelah nilai dimasukkan akan muncul pesan apakah nilai tersebut NEGATIP. } getch(). Buatlah program yang pertama sekali meminta memasukan nilai tertentu. char lg.SOAL-SOAL 5. } Disiapkan Oleh : Suhana S.h> void main() { char nama[25]. 7. lg=‗Y‘. Kom . else printf(―\numur anda keterlaluan‖). #include<stdio. clrscr(). else If(umr<=45) printf(―\nAnda sudah dewasa‖).nama). printf(―Masukkan umur anda:‖). printf(―\n\ningin mengulang lagi[yt]‖). printf(―Masukkan nama anda:‖). Buatlah program yang pertama sekali meminta memasukkan nilai tertentu. dan POSITIP.nama).scanf(―%s‖. int umur.&lg).

Sign up to vote on this title
UsefulNot useful