Modul Pemrograman C

download Modul Pemrograman C

of 74

Transcript of Modul Pemrograman C

PEMROGRAMAN KOMPUTER (Bahasa C)

Disusun Oleh : Aga Sadewa, S.Kom

BAB I PENDAHULUAN

PENDAHULUANC adalah bahasa yang standar, artinya suatu program yang ditulis dengan versi bahasa C tertentu akan dapat dikompilasi dengan versi bahasa C yang lain dengan sedikit modifikasi. Standar bahasa C yang asli adalah standar dari UNIX. Patokan dari standar UNIX ini diambilkan dari buku yang ditulis oleh Brian Kerninghan dan Dennis Ritchie berjudul The C Programming Language, diterbitkan oleh Prentice-Hall tahun 1978. Deskripsi C dari kerninghan dan Ritchie ini kemudian dikenal secara umum sebagai K&R C. Bahasa C mempunyai struktur yang baik sehingga mudah untuk dipahami. C disebut dengan bahasa yang terstruktur karena menggunakan fungsi-fungsi sebagai program-program bagiannya. Struktur bahasa yang baik, selain mudah dipelajari, juga memudahkan dalam pembuatan program, memudahkan pelacakan kesalahan programdan akan menghasilkan dokumentasi program yang baik. I.1. Memulai dengan C Untuk memulai pemrograman C, yang pertama kali adalah membuka program C bila belum dijalankan. Umumnya cara untuk menjalankan program C adalah dengan melalui menu Start > Programs > Borland C/C++ > Borland C/C++. Pada saat pertama kali program C dijalankan, maka akan secara otomatis terbentuk sebuah form kosong yang siap untuk diproses lebih lanjut. Berikut penjelasan tentang fasilitas yang ada di C. Untuk membuka secara manual pilih menu File > New > Text Edit.

I.2. Tampilan Pembuka

I.3. Jendela utama C

I.4. Format file bahasa C (*.c) Untuk menyimpan file bahasa c File > Save, Simpan file tersebut dengan extension *.c. Untuk menjalankan program Debug > Run atau CTRL + F9.

Praktikum

1A. Tujuan 2. Mengetahui struktur algoritma.

Pengenalan Algoritma

1. Mengenal algoritma pemrograman.

3. Mengetahui penulisan algoritma. 4. Mengetahui teks algoritma. 5. Mahasiswa mengetahui dan memahami mengenai algoritma serta pendeklarasiannya.

B. Dasar Teori 1. Pengertian Algoritma Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis (Rinaldi Munir :2002). Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah (KBBI :1988). Algoritma adalah suatu himpunan hingga dari instruksi-instruksi yang secara jelas memperinci langkah-langkah proses pelaksanaan, dalam pemecahan suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik (Team Gunadarma :1988). 2. Algoritma dalam kehidupan nyata. Menulis surat: 1. Mempersiapkan kertas dan amplop 2. Mempersiapkan alat tulis. 3. Mulai menulis 4. Memasukkan kertas ke dalam amplop

5. Amplop ditempeli perangko secukupnya 6. Pergi ke kantor pos untuk mengeposkan surat tsb. Memasak air dengan menggunakan kompor gas. 3. Struktur Algoritma Berurutan (sequence) : Langkah dikerjakan secara berurutan (sekuensial). Percabangan (selection): Langkah dekerjakan JIKA memenuhi kondisi tertentu. Pengulangan (iteration) : Langkah dikerjakan SELAMA memenuhi suatu kondisi tertentu. Konkuren (concurrent) : Beberapa langkah dikerjakan secara bersama. Catatan : langkah = instruksi

4. Penulisan Algoritma. Flowchart. Bentuk gambar / diagram yang mempunyai aliran satu atau dua arah secara sekuensial. Lambang flowchart :

Contoh :

Pseudo code Definisi : Bahasa terstruktur untuk menggambarkan logika algoritma. Bagian terstruktur (konstruksi dasar) adalah : a) SEQUENCE : berurutan melakukan satu langkah setelah langkah lainnya. Keyword yang umum dari SEQUENCE : Input : READ, OBTAIN, GET Output : PRINT, DISPLAY, SHOW Compute : COMPUTE, CALCULATE, DETERMINE Initialize : SET, INIT Add one : INCREMENT, BUMP b) IF-THEN-ELSE langkah. Bentuk Umum: IF condition THEN sequence 1 ELSE sequence 2 : percabangan (seleksi) pilihan dibuat diantara dua alternative

ENDIF Catatan: condition adalah pilihan biner (ya atau tidak) c) WHILE Bentuk Umum: WHILE condition sequence ENDWHILE d) Konstruksi tambahan: CASE : percabangan (generalisasi IF-THEN-ELSE) : pengulangan dengan uji kondisi di awal.

DO-WHILE : pengulangan dengan uji kondisi di akhir FOR : pengulangan dengan pencacah

Contoh : Algoritma dengan Pseudo-code 1. Masukkan / Read R 2. Pi 3.14 3. L Pi * R * R 4. Tulis / Print L

5. Teks Algoritma Judul Algoritma Bagian yang terdiri atas nama algoritma dan penjelasan tentang algoritma tersebut. Nama algoritma sebaiknya singkat, namn cukup untuk menggambarkan apa yang akan dilakukan oleh algoritma tersebut. Contoh : Algoritma Luas_Lingkaran { Menghitung luas lingkaran untuk ukuran jari-jari tertentu. Algoritma menerima masukan jari-jari lingkaran, menghitung luasnya, lalu cetak luasnya ke piranti keluaran } Deklarasi

Bagian untuk mendefinisikan semua nama yang dipakai di dalam algoritma. Nama tersebut dapat berupa nama terapan, nama peubah, nama tipe, nama prosedur dan nama fungsi. Contoh Deklarasi : Panjang = integer {tipe data bilangan bulat} Lebar = integer Luas = real {tipe data bilangan pecahan} Deskripsi Bagian ini berisi uraian langkah-langkah penyelesaian masalah. Langkah-langkah inidituliskan dengan notasi yang lazim dalam penulisan algoritma. Setiap langkah algoritma dibaca dari langkah paling atas hingga langkah paling bawah. Urutan penulisan menentukan urutan pelaksanaan perintah. Contoh deskripsi : Read (nama) Read (NIM) Read (nilai) If (nilai < 45) then Grade = E Else if (nilai >= 45) and (nilai < 60) then Grade = D Else if (nilai >= 60) and (nilai < 70) then Grade = C Else if (nilai >= 70) and (nilai < 80) then Grade = B Else Grade = A Write (nama) Write (NIM) Write (nilai)

C. Langkah Percobaan Soal : Tulislah algoritma untuk mencari luas segitiga jika masukan dari pengguna adalah alas dan tingginya. Rumus: L = a.t. Jawab : Pseudocode 1. Siapkan variabel L,a,t. 2. Masukan nilai a. 3. Masukan nilai t. 4. Proses L (a*t)/2. 5. Print L. FlowchartStart

Dim L, a, t

Read a

Read t

L = a.t.

Write L

End

D. Latihan 1. Tulislah algoritma untuk mencari sisi miring dari suatu segitiga siku-siku jika diketahui panjang dua sisi yang membentuk sudut siku-siku. Rumus: c = (a2 + b2) 2. Tulislah algoritma untuk menampilkan teks Hello World sebanyak 100 kali.

Praktikum 2A. Tujuan

Pengenalan Turbo C Struktur Dasar Bahasa C

1. Mengenal editor Turbo C seperti mengkompilasi program dan menjalankan program. 2. Mengetahui menu menu yang terdapat pada Turbo C. 3. Mengetahui struktur dasar pemrograman bahasa C dengan Turbo C. 4. Mahasiswa mengetahui dan memahami mengenai variable dan konstanta, serta pendeklarasiannya.

B. Dasar Teori 1. Editor Bahasa C Untuk mengkompilasi Program, Pilih menu Compile dengan menekan Alt + C kemudian Pilih Submenu Compile lalu tekan Enter. Akan ditampilkan hasil kompilasi Program, tekan sembarang tombol. Untuk menjalankan program, Pilih menu Run dengan menekan Alt + R Pilih submenu Run dan tekan Enter. Proses Kompilasi Linking dari program C dapat digambarkan sebagai berikut :

3. Struktur Dasar Bahasa C Bahasa C bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara nim, NIM dan Nim dianggap berbeda.

4. Variable (identifier) a. Untuk mewakili suatu nilai tertentu di dalam proses program. b. Nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. c. Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan : o Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. o Tidak boleh mengandung spasi, Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai. o Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +, = dsb. Contoh penamaan variabel yang benar : NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb. Contoh penamaan variable yang salah : %nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!, dsb o Deklarasi Variabel Contoh : int x; char y, huruf, nim[10]; float nilai; double beta; int array[5][4]; // Deklarasi x bertipe integer // Deklarasi variable bertipe char // Deklarasi variable bertipe float // Deklarasi variable bertipe double // Deklarasi array bertipe integer

char *p; o Deklarasi Konstanta

// Deklarasi pointer p bertipe char

Dalam bahasa C konstanta dideklarasikan menggunakan preprocessor #define. Contohnya : #define PHI 3.14 #define nim 0111500382 #define nama Sri Widhiyanti Variabelnya harus menggunakan operator alamat & Kode penentu format : %c : Membaca sebuah karakter %s : Membaca sebuah string %i, %d %f, %e %o : Membaca sebuah bilangan bulat (integer) : Membaca sebuah bilangan pecahan (real) : membaca sebuah bilangan octal

%x : Membaca sebuah bilangan heksadesimal %u : Membaca sebuah bilangan tak bertanda

C. Langkah Percobaan a. Untuk memulai dokumen baru tekan tombol Alt + F kemudian pilih submenu new b. Fungsi printf dan penentu format data #include main() { printf(Nama Siswa : %s\n, Aditya); printf(N.I.M : %d\n, 12345);

printf(Nilai Ujian : %f Predikat : %s \n, 70.5, B); }

Hasil : Nama Siswa N.I.M Nilai Ujian : Aditya : 12345 : 70.500000 Predikat : B

c. Ketikkan program dibawah ini dan analisa

#include #include void main() { clrscr(); layar printf(Nilai dari 9 + 4 = %i\n, 9 + 4); printf(Nilai dari 9 - 4 = %i\n, 9 - 4); printf(Nilai dari 9 * 4 = %i\n, 9 * 4); printf(Nilai dari 9 / 4 = %i\n, 9 / 4); getch(); } /* mencetak hasil 9 * 4 */ /* mencetak hasil 9 / 4 */ /* mencetak hasil 9 + 4 */ // untuk membersihkan

/* m

f. Perbedaan operator peningkatan ++ yang diletakkan di depan dan dibelakang operand #include #include void main() { int x, nilai; clrscr(); x = 5; nilai = ++x; /* berarti x = x + 1; nilai = x; */

printf("nilai = %d, x = %d\n", nilai, x); nilai = x++; /* berarti nilai = x; nilai = x + 1; */

printf("nilai = %d, x = %d\n", nilai, x); getch(); }

Contoh Program 2 :

#include #include void main() { int b, nilai; clrscr(); b=15; nilai = --b; printf("nilai = %d, b = %d\n", nilai, b); nilai = b--; printf("nilai = %d, b = %d\n", nilai, b); getch(); } /* berarti nilai = b; b = b + 1; */ /* berarti b = b - 1; nilai = b; */ // untuk membersihkan layar

D. Latihan 1. Buat program untuk menampilkan tulisan sebagai berikut : Selamat belajar TURBO C

2. Buat program untuk menampilkan tulisan sebagai berikut : Anda diundang rapat hari Jumat / pukul 14.00 WIB

3. Apa hasil dari program berikut : #include main() { printf(%d lembar kertas\nper lembar %d, 5, 10); }

4. Dimana letak kesalahan program berikut ini ? Perbaiki kesalahannya ! Apa hasil keluarannya? #include [stdio.h] main{ } ( printf(\n %d Mawar %d Duri\n, 1, 1000); printf(\n Ada %s Ada %s \n, Gula, Semut); )

Praktikum 3A. Tujuan

Input dan Output Menampilkan Data

1. Mahasiswa/i mengetahui cara menginput data melalui keyboard 2. Mahasiswa/i dapat menampilkan data yang telah di input ke layar monitor B. Dasar Teori Memasukkan data dan menampilkan data/informasi merupakan tindakan yang sering dilakukan dalam pemrograman. Penampilan data/informasi biasanya ditujukan ke piranti layar (monitor), sedangkan pemasukan data biasanya dilakukan melalui keyboard. 1. scanf() digunakan untuk menginput data berupa data numerik, karakter dan string secara terformat. Hal-hal yang perlu diperhatikan dalam pemakaian fungsi scanf() : Fungsi scanf() memakai penentu format Fungsi scanf() memberi pergantian baris secara otomatis Fungsi scanf() tidak memerlukan penentu lebar field 2. gets(), untuk memasukkan data bertipe karakter dan tidak dapat digunakan untuk memasukkan data numerik. Hal-hal yang perlu diperhatikan dalam pemakaian fungsi scanf() : . Harus diakhiri dengan penekanan tombol enter . Cursor secara otomatis akan pindah baris . Tidak memerlukan penentu format 3. getchar(), untuk membaca data yang bertipe karakter Hal-hal yang perlu diperhatikan dalam pemakaian fungsi getchar() : . Harus diakhiri dengan penekanan tombol enter . Karakter yang dimasukkan terlihat pada layar . Pergantian baris secara otomatis 4. getch() dan getche(), untuk membaca data karakter.

Hal-hal yang perlu diperhatikan dalam pemakaian fungsi getchar() : . Karakter yang dimasukkan tidak perlu diakhiri dengan penekanan tombol enter. . Tidak memberikan efek pergantian baris secara otomatis . Jika menggunakan fungsi getch() karakter yang dimasukkan tidak akan ditampilkan pada layar sehingga sering digunakan untuk meminta inputan berupa password. . Sedangkan pada getche() karakter yang dimasukkan akan ditampilkan pada layar. MENAMPILKAN DATA A. Menampilkan data ke layar monitor 1. Menggunakan fungsi printf(), puts(), dan putchar(). Fungsi printf() untuk menampilkan semua jenis data (numeric dan karakter) Fungsi puts() untuk menampilkan data string dan secara otomatis akan diakhiri dengan perpindahan baris. Fungsi putchar() untuk menampilkan sebuah karakter.

B. Mengatur tampilan bilangan pecahan (float). Bentuk umum : printf(%m.nf, argument); m n argument : menyatakan panjang range : menyatakan jumlah digit di belakang koma. : nilai atau variable yang akan ditampilkan.

Contoh : printf(%5.2f, nilai); artinya variable nilai akan ditampilkan sebanyak 5 digit dng 2 digit di belakang koma.

C. Langkah Percobaan /* Program inputan tipe data karakter/string */ #include #include void main() {

char nama[20]; clrscr(); printf(Masukkan nama Anda : ); gets(nama); printf(Hello, Nama Anda adalah %s, nama); getch(); }

/* Program untuk menampilkan data berupa bilangan pecahan */ #include #include void main() { float nilai; clrscr(); puts(Masukkan nilai Anda : ); scanf(%f, &nilai); printf(Anda memperoleh nilai %5.2f, nilai); printf(Apakah Anda telah puas mendapat nilai %6.4f ?, nilai); getch(); }

/* Program untuk menampilkan data berupa bilangan integer dan string */ #include #include void main() { int umur; char nama[20];

clrscr(); puts(Masukkan nama Anda : ); puts(Masukkan umur Anda : ); gets(nama); scanf(%d, &umur); //tipe data string //tipe data integer

printf(Nama Anda : %s \n, nama); printf(Umur Anda : %d \n, umur); getch(); }

MEMASUKKAN BEBERAPA DATA SECARA BERSAMA-SAMA

a. Data dapat dimasukkan secara bersama-sama dalam satu baris. b. Setiap data dipisahkan oleh sebuah karakter. c. Karakter-karakter yang dapat bertindak sebagai pemisah data adalah : Koma () Garis hubung (-)

Titik dua (:) Spasi

#include main() { int bil1,bil2,bil3; clrscr(); printf("Masukkan 3 buah bilangan bulat : "); scanf("%d-%d-%d",&bil1,&bil2,&bil3); printf("\nBilangan pertama : %3d",bil1); printf("\nBilangan kedua : %3d",bil2); printf("\nBilangan ketiga : %3d",bil3); getch(); }

Hasil : Masukkan 3 buah bilangan bulat : 12-24-48 Bilangan pertama Bilangan kedua Bilangan ketiga : 12 : 24 : 48

/* Program Hitung Gaji */ #include main() { float gaji,tunj,GAJI; clrscr(); printf("Masukkan Gaji Pokok = Rp. "); scanf("%f",&gaji); tunj = 0.1 * gaji; GAJI = gaji + tunj; /* gaji total*/ printf("\nTunjangan = Rp. %6.2f",tunj); printf("\nGaji Total = Rp. %6.2f",GAJI); getch(); }

Pemrograman Bahasa C Aga Sadewa,S.Kom

Page 21

D. Latihan 1. Buatlah Program dalam Bahasa C untuk Menginput dan menampilkan biodata pribadi seseorang yang terdiri dari nama, tempat, tanggal lahir, alamat, nomor telepon, agama, dan jenis kelamin. 2. Nilai akhir dari pelajaran Bahasa C ditentukan oleh tiga nilai yaitu : Nilai Praktek Nilai UTS Nilai UAS bobot 20% bobot 30% bobot 50%

Buatlah program untuk menghitung nilai akhir !

Pemrograman Bahasa C Aga Sadewa,S.Kom

Page 22

Praktikum 4A. Tujuan

Pengambilan Keputusan

1. Mahasiswa dapat memahami dan mengerti bagaimana memecahkan persoalan. Karena banyak persoalan yang memerlukan pengambilan keputusan. 2. Mahasiswa dapat mengimplementasikan pengambilan keputusan secara benar dan terstruktur.

B. Dasar Teori Bahasa C menyediakan beberapa jenis pernyataan berupa : Pernyataan if Pernyataan if-else Pernyataan switch

PERNYATAAN IF bentuk umum : if (kondisi) Pernyataan jika kondisi bernilai benar, maka pernyataan dikerjakan.

Kondisi harus ditulis diantara tanda kurung dan dapat berupa sembarang ungkapan, sedangkan pernyataan dapat berupa sebuah pernyataan tunggal, pernyataan kosong.

Operator relasi digunakan untuk membandingkan nilai dari dua buah ekspresi. Operator-operator yang dikenal Turbo C adalah :

OPERATOR < > == = !=

Lebih besar sama dengan Tidak sama dengan

PERNYATAAN IF-ELSE Bentuk umum : if (syarat1) pernyataan-1; else pernyataan2;

Jika kondisi benar maka pernyataan-1 dijalankan sedangkan bila kondisi salah maka pernyataan-2 yang akan dieksekusi.

PEMAKAIAN IF DIDALAM IF Di dalam suatu pernyataan if atau if-else bisa saja terdapat pernyataan if atau if-else yang lain. Bentuk seperti ini dinamakan sebagai nested if.

OPERATOR LOGIKA, menghubungkan dua buah ekspresi logika yaitu : && || ! (AND) (OR) (NOT)

PENGGUNAAN ELSE BERTINGKAT Bentuk umum : if (syarat1) pernyataan; else if (syarat2) pernyataan; else if (syarat3) pernyataan; else pernyataan;

Pemrograman Bahasa C Aga Sadewa,S.Kom

Page 24

Syarat IF diperiksa dari atas ke bawah. Jika sebuah syarat benar, pernyataan yang mengikutinya akan dikerjakan dan yang selanjutnya diabaikan. Jika tidak satupun syarat yang benar, ELSE terakhir akan dikerjakan. Jika ELSE terakhir tidak ada dan tidak ada syarat yang benar, maka tidak ada yang dikerjakan. OPERATOR KONDISI Bahasa C menyediakan operator yang tergolong sebagai operator ternary, yakni operator yang memiliki tiga buah operand dengan menggunakan simbol ?:. Bentuk penulisan operator ini adalah : kondisi ? ungkapan-1 : ungkapan-2 Jika kondisi bernilai benar, maka nilai ungkapan kondisi berupa nilai ungkapan-1 sedangkan jika kondisi bernilai salah, maka nilai ungkapan kondisi berupa nilai ungkapan-2

PERNYATAAN SWITCH Tangga if-else dapat dipakai untuk menguji beberapa syarat, tetapi kadang-kadang sulit. Cara lain adalah dengan pernyataan switch. Di dalam pernyataan switch, sebuah variabel secara berturut-turut diuji oleh daftar konstanta bilangan bulat atau konstanta karakter. Jika sesuai dengan sebuah konstanta, pernyataan yang mengikuti konstanta akan dikerjakan. Bentuk Umum : switch (variabel) { case konstanta1; pernyataan; break; case konstanta2; pernyataan; break; default pernyataan; }

Pemrograman Bahasa C Aga Sadewa,S.Kom

Page 25

Jika sebuah konstanta sesuai dengan isi variabel, pernyataan-pernyataan setelah case akan dikerjakan sampai ditemukan pernyataan break. Pernyataan setelah default akan dikerjakan jika tidak ada konstanta yang sesuai. Pernyataan default bersifat optional. Jika tidak ada default dan tidak ada konstanta yang sesuai, tidak ada yang dikerjakan. Ada tiga hal penting : 1. Switch hanya dapat memeriksa persamaan dengan sebuah konstanta, sedangkan IF dapat memeriksa syarat-syarat lain (lebih besar, lebih kecil, tidak sama dengan dan sebagainya) 2. Tidak ada dua konstanta yang sama didalam sebuah switch 3. Pernyataan switch lebih baik daripada tangga if-else

Pernyataan break di dalam switch bersifat optional. Break dipakai untuk menghentikan pelaksanaan pernyataan-pernyataan yang mengikuti sebuah konstanta. Jika break tidak ada, pernyataan pada case berikutnya akan dilaksanakan sampai ditemukan break atau akhir dari switch. Anda dapat membuat sebuah switch di dalam sebuah switch (nested switch)

C. Langkah Percobaan 1. PERNYATAAN IF main() { double beli, diskon; clrscr(); printf("Jumlah pembelian : Rp. "); scanf("%lf",&beli); diskon=0; if (beli >= 500000) diskon=0.05*beli; printf("\nBesarnya diskon Anda Rp. %10.2lf",diskon); getch(); }

Pemrograman Bahasa C Aga Sadewa,S.Kom

Page 26

Hasil : Jumlah pembelian : Rp. 500000 Besarnya diskon Anda Rp. 25000.00

Untuk pernyataan if yang diikuti dengan pernyataan majemuk, pernyataan if diapit dengan tanda { dan }.

2. PEMAKAIAN IF DIDALAM IF main() { float x,y; clrscr(); printf("Masukan nilai x dan y : "); scanf("%f %f", &x, &y); if (x>0) if (y>0) puts("Nilai x dan y positif"); else puts("Nilai x positif dan y negatif"); else puts("Nilai x negatif dan y bernilai positif atau negatif"); getch(); } Hasil : Masukan nilai x dan y : -12 -12 Nilai x negatif dan y bernilai positif atau negatif

3. OPERATOR LOGIKA main() { char nama[20]; int umur; clrscr(); printf("Nama Calon Pegawai : ");gets(nama);

Pemrograman Bahasa C Aga Sadewa,S.Kom

Page 27

printf("Umur

: ");scanf("%d",&umur);

if (umur>=20 && umur