PEMROGRAMAN KOMPUTER (Bahasa C

)

Disusun Oleh : Aga Sadewa, S.Kom

BAB I PENDAHULUAN

PENDAHULUAN
C 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.

Mempersiapkan kertas dan amplop 2. 3. 5. Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah (KBBI :1988). Mempersiapkan alat tulis. Mengetahui struktur algoritma. dalam pemecahan suatu masalah tertentu. Algoritma adalah suatu himpunan hingga dari instruksi-instruksi yang secara jelas memperinci langkah-langkah proses pelaksanaan. Mulai menulis 4. Pengenalan Algoritma 1. 3. B. Mahasiswa mengetahui dan memahami mengenai algoritma serta pendeklarasiannya. Dasar Teori 1. atau suatu kelas masalah tertentu. 4. dengan dituntut pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik (Team Gunadarma :1988). Mengenal algoritma pemrograman. Memasukkan kertas ke dalam amplop . Algoritma dalam kehidupan nyata. 2.  Menulis surat: 1. Tujuan 2.Praktikum 1 A. Mengetahui teks algoritma. Mengetahui penulisan algoritma. Pengertian Algoritma Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis (Rinaldi Munir :2002).

5. Lambang flowchart : . Penulisan Algoritma. Konkuren (concurrent) : Beberapa langkah dikerjakan secara bersama. Pergi ke kantor pos untuk mengeposkan surat tsb.  Flowchart. 3.  Memasak air dengan menggunakan kompor gas. Pengulangan (iteration) : Langkah dikerjakan SELAMA memenuhi suatu kondisi tertentu. Bentuk gambar / diagram yang mempunyai aliran satu atau dua arah secara sekuensial. Percabangan (selection): Langkah dekerjakan JIKA memenuhi kondisi tertentu. Catatan : langkah = instruksi 4. Struktur Algoritma Berurutan (sequence) : Langkah dikerjakan secara berurutan (sekuensial). Amplop ditempeli perangko secukupnya 6.

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

Pi ← 3. Contoh : Algoritma Luas_Lingkaran { Menghitung luas lingkaran untuk ukuran jari-jari tertentu. lalu cetak luasnya ke piranti keluaran } Deklarasi .14 3. Teks Algoritma Judul Algoritma Bagian yang terdiri atas nama algoritma dan penjelasan tentang algoritma tersebut. Masukkan / Read R 2. L ← Pi * R * R 4. DO-WHILE : pengulangan dengan uji kondisi di akhir FOR : pengulangan dengan pencacah Contoh : • Algoritma dengan Pseudo-code 1. menghitung luasnya. Nama algoritma sebaiknya singkat. Tulis / Print L 5. namn cukup untuk menggambarkan apa yang akan dilakukan oleh algoritma tersebut.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. Algoritma menerima masukan jari-jari lingkaran.

nama prosedur dan nama fungsi. Nama tersebut dapat berupa nama terapan. Setiap langkah algoritma dibaca dari langkah paling atas hingga langkah paling bawah. Langkah-langkah inidituliskan dengan notasi yang lazim dalam penulisan algoritma. Urutan penulisan menentukan urutan pelaksanaan perintah.Bagian untuk mendefinisikan semua nama yang dipakai di dalam algoritma. nama peubah. 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. nama tipe. 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) .

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

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

Praktikum 2 A. Pilih menu Compile dengan menekan Alt + C kemudian Pilih Submenu Compile lalu tekan Enter. Pilih menu Run dengan menekan Alt + R Pilih submenu Run dan tekan Enter. 4. Mahasiswa mengetahui dan memahami mengenai variable dan konstanta. tekan sembarang tombol. serta pendeklarasiannya. Tujuan Pengenalan Turbo C Struktur Dasar Bahasa C 1. Dasar Teori 1. Akan ditampilkan hasil kompilasi Program. Mengenal editor Turbo C seperti mengkompilasi program dan menjalankan program. Mengetahui struktur dasar pemrograman bahasa C dengan Turbo C. Mengetahui menu – menu yang terdapat pada Turbo C. Untuk menjalankan program. Editor Bahasa C Untuk mengkompilasi Program. Proses Kompilasi –Linking dari program C dapat digambarkan sebagai berikut : . B. 2. 3.

b. f3098. Contoh penamaan variabel yang benar : NIM. -. dsb o Deklarasi Variabel Contoh : int x. f4. nilai. dsb. +. rata-rata. Contoh penamaan variable yang salah : %nilai_mahasiswa. huruf. NIM dan Nim dianggap berbeda. kecuali garis bawah (underscore). Struktur Dasar Bahasa C Bahasa C bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. 80mahasiswa. char y. Jadi antara nim. Panjangnya bebas. int array[5][4]. &. 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. a. c. 4. ?. Nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. !. penting!. Variable (identifier) a. Untuk mewakili suatu nilai tertentu di dalam proses program. ). // Deklarasi x bertipe integer // Deklarasi variable bertipe char // Deklarasi variable bertipe float // Deklarasi variable bertipe double // Deklarasi array bertipe integer . nim[10]. x. ada spasi. (. tetapi hanya 32 karakter pertama yang terpakai.3. *. = dsb. #. budi. float nilai. nama_mhs. o Tidak boleh mengandung symbol-simbol khusus. Yang termasuk symbol khusus yang tidak diperbolehkan antara lain : $. %. double beta.

printf(“Nilai Ujian : %f Predikat : %s \n”.h> main() { printf(“Nama Siswa : %s\n”. 70.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.M : %d\n”.M Nilai Ujian : Aditya : 12345 : 70. Fungsi printf dan penentu format data #include <stdio. Ketikkan program dibawah ini dan analisa . 12345). “Aditya”).I.500000 Predikat : B c.char *p. Langkah Percobaan a. printf(“N. ‘B’). o Deklarasi Konstanta // Deklarasi pointer p bertipe char Dalam bahasa C konstanta dideklarasikan menggunakan preprocessor #define. Contohnya : #define PHI 3. %d %f. Untuk memulai dokumen baru tekan tombol Alt + F kemudian pilih submenu new b.5.I. } Hasil : Nama Siswa N. %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.

/* berarti x = x + 1. Perbedaan operator peningkatan ++ yang diletakkan di depan dan dibelakang operand #include <stdio.4). x). 9 * 4). } /* mencetak hasil 9 * 4 */ /* mencetak hasil 9 / 4 */ /* mencetak hasil 9 + 4 */ // untuk membersihkan /* m f. clrscr(). } Contoh Program 2 : .h> void main() { clrscr(). nilai = x++. */ printf("nilai = %d. printf(“Nilai dari 9 * 4 = %i\n”. printf(“Nilai dari 9 / 4 = %i\n”. x). x = %d\n". nilai = x + 1. 9 + 4). nilai = ++x. nilai. x = 5. layar printf(“Nilai dari 9 + 4 = %i\n”. */ printf("nilai = %d. getch(). printf(“Nilai dari 9 .4 = %i\n”.#include <stdio. nilai = x.h> void main() { int x. getch(). nilai.h> #include <conio. 9 . nilai. /* berarti nilai = x. 9 / 4).h> #include <conio. x = %d\n".

nilai = b. b = %d\n". b=15. printf("nilai = %d. b). b = %d\n". getch().h> void main() { int b.h> #include <conio. nilai = b--. */ // untuk membersihkan layar . nilai. nilai = --b. clrscr().#include <stdio. printf("nilai = %d. b). nilai. } /* berarti nilai = b. b = b + 1.1. */ /* berarti b = b . nilai.

“Gula”. “Semut”). ) . 1.D. 10). 5. printf(“\n Ada %s Ada %s \n”. Latihan 1. } 4. Buat program untuk menampilkan tulisan sebagai berikut : “ Anda diundang rapat hari Jum’at / pukul 14. Apa hasil dari program berikut : #include <stdio.h] main{ } ( printf(“\n %d Mawar %d Duri\n”. 1000).h> main() { printf(“%d lembar kertas\nper lembar %d”. Buat program untuk menampilkan tulisan sebagai berikut : Selamat belajar “ TURBO C ” 2.00 WIB ” 3. Dimana letak kesalahan program berikut ini ? Perbaiki kesalahannya ! Apa hasil keluarannya? #include [stdio.

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

Hal-hal yang perlu diperhatikan dalam pemakaian fungsi getchar() : . : nilai atau variable yang akan ditampilkan. m n argument : menyatakan panjang range : menyatakan jumlah digit di belakang koma. Fungsi putchar() untuk menampilkan sebuah karakter. Menggunakan fungsi printf(). B. Karakter yang dimasukkan tidak perlu diakhiri dengan penekanan tombol enter. argument).h> void main() { . Langkah Percobaan /* Program inputan tipe data karakter/string */ #include <stdio.    Fungsi printf() untuk menampilkan semua jenis data (numeric dan karakter) Fungsi puts() untuk menampilkan data string dan secara otomatis akan diakhiri dengan perpindahan baris.nf”. C.h> #include <conio. Contoh : printf(“%5. puts(). dan putchar(). MENAMPILKAN DATA A. Mengatur tampilan bilangan pecahan (float). Sedangkan pada getche() karakter yang dimasukkan akan ditampilkan pada layar. . nilai). artinya variable nilai akan ditampilkan sebanyak 5 digit dng 2 digit di belakang koma. . Menampilkan data ke layar monitor 1.2f”. Bentuk umum : printf(“%m. 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.

nilai). &nilai).h> void main() { int umur. getch(). clrscr(). clrscr(). printf(“Apakah Anda telah puas mendapat nilai %6. nama). nilai). printf(“Anda memperoleh nilai %5.char nama[20].h> void main() { float nilai. Nama Anda adalah %s”.2f”. } /* Program untuk menampilkan data berupa bilangan pecahan */ #include<stdio. getch().h> #include<conio. . char nama[20]. scanf(“%f”. printf(“Hello.4f ?”. printf(“Masukkan nama Anda : “).h> #include <conio. gets(nama). } /* Program untuk menampilkan data berupa bilangan integer dan string */ #include <stdio. puts(“Masukkan nilai Anda : ).

clrscr(). gets(nama). puts(“Masukkan nama Anda : ). //tipe data string //tipe data integer printf(“Nama Anda : %s \n”. Data dapat dimasukkan secara bersama-sama dalam satu baris. nama). c. b. umur). Karakter-karakter yang dapat bertindak sebagai pemisah data adalah :     Koma (‘) Garis hubung (-) Titik dua (:) Spasi . } MEMASUKKAN BEBERAPA DATA SECARA BERSAMA-SAMA a. puts(“Masukkan umur Anda : “). getch(). Setiap data dipisahkan oleh sebuah karakter. scanf(“%d”. printf(“Umur Anda : %d \n”. &umur).

scanf("%f". } Hasil : Masukkan 3 buah bilangan bulat : 12-24-48 Bilangan pertama Bilangan kedua Bilangan ketiga : 12 : 24 : 48 /* Program Hitung Gaji */ #include <stdio.GAJI). /* gaji total*/ printf("\nTunjangan = Rp.bil2.tunj. getch(). printf("\nBilangan ketiga : %3d".&bil1. %6. ").h> main() { int bil1.bil3.2f". printf("\nBilangan kedua : %3d". printf("\nBilangan pertama : %3d".1 * gaji.&bil3). } Pemrograman Bahasa C – Aga Sadewa. GAJI = gaji + tunj. printf("Masukkan 3 buah bilangan bulat : ").#include <stdio.tunj).bil1). tunj = 0. clrscr(). scanf("%d-%d-%d".&gaji).S. clrscr().bil2). printf("\nGaji Total = Rp.GAJI.h> main() { float gaji.bil3). getch(). %6. printf("Masukkan Gaji Pokok = Rp.2f".Kom Page 21 .&bil2.

tanggal lahir. agama. 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. nomor telepon.S. Buatlah Program dalam Bahasa C untuk Menginput dan menampilkan biodata pribadi seseorang yang terdiri dari nama.D. alamat. dan jenis kelamin. tempat. Latihan 1.Kom Page 22 .

Praktikum 4 A. Mahasiswa dapat memahami dan mengerti bagaimana memecahkan persoalan. Kondisi harus ditulis diantara tanda kurung dan dapat berupa sembarang ungkapan. Operator relasi digunakan untuk membandingkan nilai dari dua buah ekspresi. Karena banyak persoalan yang memerlukan pengambilan keputusan. Mahasiswa dapat mengimplementasikan pengambilan keputusan secara benar dan terstruktur.Kom Page 23 .S. sedangkan pernyataan dapat berupa sebuah pernyataan tunggal. 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. pernyataan kosong. maka pernyataan dikerjakan. Tujuan Pengambilan Keputusan 1. B. Operator-operator yang dikenal Turbo C adalah : OPERATOR < > == <= ARTI Lebih kecil Lebih besar Sama dengan Lebih kecil sama dengan Pemrograman Bahasa C – Aga Sadewa. 2.

Pemrograman Bahasa C – Aga Sadewa. else if (syarat3) pernyataan. menghubungkan dua buah ekspresi logika yaitu : && || ! (AND) (OR) (NOT) PENGGUNAAN ELSE BERTINGKAT Bentuk umum : if (syarat1) pernyataan. PEMAKAIAN IF DIDALAM IF Di dalam suatu pernyataan if atau if-else bisa saja terdapat pernyataan if atau if-else yang lain.Kom Page 24 .S. else pernyataan2. Bentuk seperti ini dinamakan sebagai nested if. else if (syarat2) pernyataan.>= != Lebih besar sama dengan Tidak sama dengan PERNYATAAN IF-ELSE Bentuk umum : if (syarat1) pernyataan-1. OPERATOR LOGIKA. Jika kondisi benar maka pernyataan-1 dijalankan sedangkan bila kondisi salah maka pernyataan-2 yang akan dieksekusi. else pernyataan.

ELSE terakhir akan dikerjakan. pernyataan.S. OPERATOR KONDISI Bahasa C menyediakan operator yang tergolong sebagai operator ternary. Jika ELSE terakhir tidak ada dan tidak ada syarat yang benar. Jika sesuai dengan sebuah konstanta. Bentuk Umum : switch (variabel) { case konstanta1. maka nilai ungkapan kondisi berupa nilai ungkapan-1 sedangkan jika kondisi bernilai salah. Di dalam pernyataan switch. break. } Pemrograman Bahasa C – Aga Sadewa. pernyataan yang mengikuti konstanta akan dikerjakan. Jika tidak satupun syarat yang benar. case konstanta2. Jika sebuah syarat benar. default pernyataan.Syarat IF diperiksa dari atas ke bawah. maka nilai ungkapan kondisi berupa nilai ungkapan-2 PERNYATAAN SWITCH Tangga if-else dapat dipakai untuk menguji beberapa syarat. break. pernyataan. pernyataan yang mengikutinya akan dikerjakan dan yang selanjutnya diabaikan. maka tidak ada yang dikerjakan. sebuah variabel secara berturut-turut diuji oleh daftar konstanta bilangan bulat atau konstanta karakter. Bentuk penulisan operator ini adalah : kondisi ? ungkapan-1 : ungkapan-2 Jika kondisi bernilai benar. Cara lain adalah dengan pernyataan switch. yakni operator yang memiliki tiga buah operand dengan menggunakan simbol ?:. tetapi kadang-kadang sulit.Kom Page 25 .

Anda dapat membuat sebuah switch di dalam sebuah switch (nested switch) C. Jika break tidak ada. Pernyataan setelah default akan dikerjakan jika tidak ada konstanta yang sesuai. if (beli >= 500000) diskon=0.Jika sebuah konstanta sesuai dengan isi variabel. clrscr(). sedangkan IF dapat memeriksa syarat-syarat lain (lebih besar. Jika tidak ada default dan tidak ada konstanta yang sesuai.Kom Page 26 . diskon=0. Switch hanya dapat memeriksa persamaan dengan sebuah konstanta. PERNYATAAN IF main() { double beli. } Pemrograman Bahasa C – Aga Sadewa.S. scanf("%lf". pernyataan-pernyataan setelah case akan dikerjakan sampai ditemukan pernyataan break. Break dipakai untuk menghentikan pelaksanaan pernyataan-pernyataan yang mengikuti sebuah konstanta. Ada tiga hal penting : 1. 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. "). getch().2lf". Langkah Percobaan 1. pernyataan pada case berikutnya akan dilaksanakan sampai ditemukan break atau akhir dari switch. printf("Jumlah pembelian : Rp. tidak ada yang dikerjakan.05*beli.&beli). %10. tidak sama dengan dan sebagainya) 2. Pernyataan default bersifat optional.diskon). lebih kecil. diskon. printf("\nBesarnya diskon Anda Rp.

Hasil : Jumlah pembelian : Rp. if (x>0) if (y>0) puts("Nilai x dan y positif"). PEMAKAIAN IF DIDALAM IF main() { float x. pernyataan if diapit dengan tanda { dan }. clrscr().S. 25000.00 Untuk pernyataan if yang diikuti dengan pernyataan majemuk.Kom Page 27 . scanf("%f %f". else puts("Nilai x positif dan y negatif"). &x. printf("Masukan nilai x dan y : "). OPERATOR LOGIKA main() { char nama[20]. printf("Nama Calon Pegawai : "). clrscr(). 500000 Besarnya diskon Anda Rp. &y).y. else puts("Nilai x negatif dan y bernilai positif atau negatif").gets(nama). Pemrograman Bahasa C – Aga Sadewa. getch(). } Hasil : Masukan nilai x dan y : -12 -12 Nilai x negatif dan y bernilai positif atau negatif 3. int umur. 2.

printf("\n4. printf("\n2. printf("\n\nUmur Anda Tidak Masuk Kategori Kenaikan Jabatan. } else { printf("\nMaaf..scanf("%d".&nama).printf("Umur : "). printf("\n Menu Restaurant Mc’A").. :"). Pemrograman Bahasa C – Aga Sadewa.Kom Page 28 .!")..S... %s"..!"). Aditya Umur Anda Tidak Masuk Kategori Kenaikan Jabatan. %s". } getch().. printf("\n\nAnda Masuk Kategori Kenaikan Jabatan.! 4. Gado-gado Disket").&nama)..scanf("%d". } Hasil : Nama Calon Pegawai : Aditya Umur : 31 Maaf.&umur). printf("\n3. if (umur>=20 && umur <=30) { printf("\nSelamat. PENGGUNAAN ELSE BERTINGKAT main() { int no_menu. Nasi Soto Ayam Internet").. Bubur Ayam LAN")..... clrscr(). Nasi Goreng Informatika")...&no_menu).. printf("\n============================"). printf("\n1. printf("\n\nMasukkan Pilihan Anda.. printf("\n============================").

000. else if (no_menu==3) printf("\nPilihan No.0f"..000. else printf("\nPilihan Anda tidak terdaftar pada menu.5.1 Nasi Goreng Informatika Rp. maksimal=(nilai1 > nilai2) ? nilai1 : nilai2. clrscr().h> main() { float nilai1. OPERATOR KONDISI #include <stdio.- 5.2 Nasi Soto Ayam Internet Rp.000. printf("\nNilai terbesar adalah %4.2.000.500. } Pemrograman Bahasa C – Aga Sadewa. maksimal. nilai2.4. 5.- ======================================= Masukkan Pilihan Anda.S. Bubur Ayam LAN Rp.500.-"). getch()..500. maksimal).4 Bubur Ayam LAN Rp.4. Nasi Goreng Informatika Rp.3 Gado-gado Disket else if (no_menu==4) printf("\nPilihan No.7.-").-"). :1 Pilihan No.1 Nasi Goreng Informatika Rp.-").if (no_menu==1) printf("\nPilihan No.. printf("Masukkan dua buah nilai : "). 4. 4. Nasi Soto Ayam Internet Rp.Kom Page 29 . getch(). 7. scanf("%f %f".000.!"). else if (no_menu==2) printf("\nPilihan No. &nilai2). Rp. Gado-gado Disket 4..3. } Hasil : Menu Restaurant Mc'A ======================================= 1.Rp.000.5. &nilai1.

printf("\nPajak break. %6.175 * harga. switch (kelas) { case 1 : printf("\n\nJenis Barang : Makanan"). ").2f". } getch(). default : printf("\n\nPilihan Kelas salah. printf("\nPajak break.6. scanf("%d".&kelas). printf("\nPajak break.2f". pajak = 0. scanf("%f". Hasil : Pemrograman Bahasa C – Aga Sadewa. case 3 : printf("\n\nJenis Barang : Mesin-mesin"). case 2 : printf("\n\nJenis Barang : Pakaian.harga).pajak)..S.15 * harga.2f".harga). PERNYATAAN SWITCH main() { int kelas. printf("\nMasukkan Jenis Kelas (1-4) : ").pajak.harga). Sepatu"). printf("\nHarga Barang : Rp. : Rp.Kom Page 30 .!"). %6. printf("\nHarga Barang : Rp.2f". pajak = 0.2f".2f".&harga). printf("\nHarga Barang : Rp.pajak).pajak).. float harga.1 * harga. pajak = 0. %6. %6. : Rp. %6. printf("\nHarga Barang : Rp. } : Rp. %6.

7500.00 D.Kom Page 31 . 50000. Buat program untuk menentukan hari dengan tampilan sebagai berikut : Menentukan Hari 1=SENIN 2=SELASA 3=RABU 4=KAMIS 5=JUM’AT 6=SABTU 7=MINGGU Masukkan Kode Hari (1-7) : 2 Hari RABU Pemrograman Bahasa C – Aga Sadewa.Harga Barang : Rp. Buat program untuk menentukan suatu bilangan GENAP atau GANJIL Input : Masukkan sebuah bilangan bulat : 6 Output : Nilai 6 habis dibagi 2 Karena itu termasuk sebagai bilangan GENAP 2. 50000 Masukkan Jenis Kelas (1-4) : 2 Jenis Barang : Pakaian. Latihan 1. Sepatu Harga Barang : Rp.00 Pajak : Rp.S.

- 2 Indomilk B = Besar S = Sedang K = Kecil 3 Sustacal B = Besar S = Sedang K = Kecil Buat program dengan menggunakan nested switch ! Pemrograman Bahasa C – Aga Sadewa.025. 8. 500.00 Untuk daftar harga produk susu dapat dilihat pada tabel di bawah ini : Kode Susu 1 Nama Produk Dancow Ukuran B = Besar S = Sedang K = Kecil Harga Rp.500.E.Rp.Rp. 17.00 Jumlah Pembelian Rp. 14.000. 2.000. 2.Rp.300.Rp.250.Kom Page 32 . 20000. Tugas Perusahaan Susu ingin membuat sistem penjualan susu dengan tampilan sebagai berikut : Masukkan Kode Susu (1-3) : 2 Masukkan Jumlah Pembelian : 5 Masukkan Ukuran (B/S/K) : S Susu Indomilk Harga Susu Rp. 4.Rp. 8.S.Rp.Rp.100. 4. 10.Rp. 4000.000.

Tujuan Pengulangan Proses 1. 2.Kom Page 33 .S. OPERATOR PENAMBAH DAN PENGURANG C mempunyai dua operator khusus yaitu penambah (++) dan pengurang (--). Penambahan menyatakan perubahan variabel kontrol setiap terjadi pengulangan. Syarat adalah ekspresi relasional yang menyatakan berhentinya pengulangan. Mahasiswa dapat mengerti dan memahami penggunaan struktur perulangan While-do.sama dengan i = i – 1 Pemrograman Bahasa C – Aga Sadewa. Mahasiswa dapat memecahkan masalah programming dengan menggunakan pengulangan proses B. Turbo C mempunyai 3 jenis loop. Dasar Teori 1. penambahan) pernyataan. contoh : i ++ sama dengan i = i + 1 i -. Do . syarat. Setiap bagian harus dipisahkan oleh tanda titik koma.Praktikum 5&6 A. Keterangan :    Inisialisasi adalah pernyataan untuk menyatakan keadaan awal dari variabel kontrol.while dan For. LOOP FOR Loop adalah pengulangan perintah-perintah sampai mencapai keadaan tertentu. yaitu :    for while do – while Bentuk umum Loop For : for (inisialisasi.

Operator penambah dan pengurang dapat dituliskan di depan atau dibelakang, tetapi mempunyai arti yang berbeda. Jika operator diletakkan di depan, C akan melakukan penambahan atau pengurangan sebelum memakai nilai operator. Jika diletakkan di belakang, C akan memakai nilai operator lalu menambah atau mengurangi variabel.

Contoh : x = 10 y = ++x hasil : 11 x = 10 y = x++ hasil : 10

VARIASI LOOP – FOR Kita dapat memakai beberapa variabel kontrol di dalam loop for, contoh : main() { int x,y; clrscr(); for (x=0,y=0; x+y<=20; x++,++y) printf("%d\n",x+y); getch(); } Program di atas mencetak bilangan 0 sampai 20. Perhatikan pernyataan for di atas. Inisialisasi Syarat : x=0, y=0 : x+y <= 20

Penambahan : x++, y++

Tanda koma dipakai untuk memisahkan dua pernyataan di dalam sebuah bilangan. Misalnya di bagian inisialisasi ada pernyataan x=0 dan y=0. Tanda koma berarti lakukan ini dan ini.

LOOP TAK HINGGA Loop tak hingga dibuat dengan menghilangkan bagian syaratnya, contoh : main() { char ch;

Pemrograman Bahasa C – Aga Sadewa,S.Kom

Page 34

clrscr(); printf("Ketikkan karakter-karakter : \n"); for (ch=' '; ; ) ch=getche(); }

Program tersebut meminta Anda mengetikkan sebuah huruf dan tidak akan berhenti. Untuk menghentikannya tekan tombol CTRL + BREAK

2. LOOP WHILE Bentuk umum : while (syarat) pernyataan;

Pernyataan pada loop while dapat berupa sebuah pernyataan atau blok pernyataan atau pernyataan kosong. Pernyataan akan diulang selama syarat benar, Loop while menyatakan bahwa pengulangan akan dilakukan terus selama syarat terpenuhi.

3. LOOP DO WHILE Loop for dan while akan mengecek syarat pengulangan pada awal loop. Loop do-while mngecek syaratnya pada akhir pengulangan. Loop do-while akan selalu dikerjakan minimal sekali. Loop do-while menyatakan bahwa pengulangan akan dilakukan selama syarat terpenuhi.

Bentuk umum : do { statemen; statemen; } while (syarat) Bentuk umum untuk loop do-while adalah pada rutin pemilihan menu, sebab menu selalu dikerjakan minimal sekali,

Pemrograman Bahasa C – Aga Sadewa,S.Kom

Page 35

C. Langkah Percobaan 1. LOOP FOR main() { int i; clrscr(); for (i=1; i <=5 ; i++) printf("%d \n",i); getch(); }

Pada program tersebut : Inisialisasi Syarat :i=1 : i <= 5

Penambahan : i++ , artinya ditambah 1

Hasil : 1 2 3 4 5

Contoh : #include <math.h> main() { int i, kuadrat, jumlah; float akar; char garis[35] = "-------------------------------"; clrscr(); printf("Tabel Kuadrat dan Akar Kuadrat \n"); printf("%s\n",garis); printf("Bilangan Kuadrat Akar Kuadrat\n");

Pemrograman Bahasa C – Aga Sadewa,S.Kom

Page 36

getch(). } %3d %6. getch(). x+y<=20. printf(" %2d } printf("%s\n".j.garis).4f \n". Perhatikan pernyataan for di atas.y. Pemrograman Bahasa C – Aga Sadewa. j++ ) printf("*").i. i++) { for (j=1 . for (x=0.S. i++) { kuadrat = i * i.y=0. y=0 : x+y <= 20 : x++. x++.printf("%s\n". LOOP BERSARANG main() { int i. j <= 5 .Kom Page 37 . } Program di atas mencetak bilangan 0 sampai 20. i<=10.kuadrat.++y) printf("%d\n". for (i=1 .akar). clrscr(). clrscr(). 2. VARIASI LOOP – FOR main() { int x.garis). for (i=1. i <= 3 .x+y). akar = sqrt(i). Inisialisasi Syarat Penambahan : x=0. y++ 3.

printf("\n ------------------"). } getch(). printf("\n 3. } getch(). Bubur Ayam "). "). printf("\n Menu Hari Ini "). } 4. LOOP WHILE main() { int i. i=i+1. printf("\n 2.S. while (i <= 5) { printf("STI&K\n"). i=1. Pemrograman Bahasa C – Aga Sadewa.printf(" \n"). } 5. printf("\n 1. do { clrscr(). Gado-Gado printf("\n 4.! (0 = Selesai) ")..Kom Page 38 . Nasi Soto Ayam "). LOOP DO WHILE main() { int no_menu. clrscr(). printf("\n\n Masukkan pilihan Anda.. Nasi Goreng ").

&no_menu). } getch().scanf("%d". 4000. break. }while (no_menu != 0).-"). case 3 : printf("\n Gado-Gado break. case 2 : printf("\n Nasi Soto Ayam Rp. Terima kasih. Rp. Pemrograman Bahasa C – Aga Sadewa. 6000. break.!").. 5000.!"). case 4 : printf("\n Bubur Ayam break.. case 0 : printf("\n Selesai. break.S.-").-")..Kom Page 39 . } Rp. default : printf("\n\n Pilihan Anda Salah.-"). switch (no_menu) { case 1 : printf("\n Nasi Goreng Rp.. 3500.

bila rumus untuk faktorial adalah : n (n!) = n*(n-1). Latihan 1. Buat program untuk menampilkan keluaran sebagai berikut : 1 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 4 6 8 10 12 14 16 9 12 15 18 21 24 16 20 24 28 32 25 30 35 40 36 42 48 49 56 64 . Hitunglah nilai faktorial sebuah bilangan bulat positif. Contoh : 3! = 3*2*1 = 6 2.D.Kom Page 40 .S. 2 3 4 5 6 7 8 Pemrograman Bahasa C – Aga Sadewa.

Dilihat dari dimensinya array dapat dibagi menjadi Array dimensi satu. Deklarasi Array Indeks array secara default dimulai Bentuk umum : Tipe_array nama_array[ukuran]. array dimensi dua dan array multi-dimensi.S.Praktikum 7&8 A. Letak atau posisi dari elemen array ditunjukkan oleh suatu index. dari 0. Bentuknya dapat berupa matriks atau tabel. Deklarasi array : Tipe_array nama_array[baris][kolom]. Tujuan Array Mahasiswa memahami dan dapat menerapkam array dalam memecahkan masalah pemrograman B. Dasar Teori Array merupakan kumpulan dari nilai-nilai data yang bertipe sama dalam urutan tertentu yang menggunakan nama yang sama.Kom Page 41 . Contoh : 2 ARRAY DIMENSI DUA Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah kolom. Pemrograman Bahasa C – Aga Sadewa. 1 ARRAY DIMENSI SATU Setiap elemen array dapat diakses melalui indeks.

h> #include<conio. { int index. /* input nilai mahasiswa */ printf(“Input nilai 10 mahasiswa : “). misalnya kita ingin mengisi elemen array baris 2 kolom 3 dengan 10 maka perintahnya adalah sbb : X[1][2] = 10. Bentuk umumnya yaitu : tipe_array nama_array*ukuran1+*ukuran2+…*ukuranN+. index++) . } Pemrograman Bahasa C – Aga Sadewa. index+1). C.S. printf(“Mahasiswa %i : “. Bentuk pendeklarasian array sama saja dengan array dimensi satu maupun array dimensi dua. &nilai*index+). for(index=0. nilai[10].h> void main(). 3 ARRAY MULTI-DIMENSI Array multi-dimensi merupakan array yang mempunyai ukuran lebih dari dua. scanf(“%i”.Kom Page 42 . Langkah Percobaan /* Program untuk menginput nilai mahasiswa ke dalam array satu dimensi */ #include<stdio. index < 10.Untuk mengakses array.

h> #include<string. Coba periksa lagi !”). “Komputerisasi Akuntansi”). } Pemrograman Bahasa C – Aga Sadewa. break. printf(“%5. “Sistem Informasi”).h> void main() { char jurusan[25]. for(index=0. break. “Teknik Informatika”). nama[20]. gets(nama). index < 10. nim[10]. break.h> #include<conio. jenjang[10]. gets(nim). /***** cari jurusan *****/ switch(nim[2]) { case ‘1’ : strcpy(jurusan. case ‘3’ : strcpy(jurusan. crlscr(). break. “Teknik Komputer”).0i”./* tampilkan nilai mahasiswa */ printf(“Nilai mahasiswa yang telah diinput”). nilai*index+).S. printf(“Masukkan nama Anda : “). case ‘2’ : strcpy(jurusan. index++) . case ‘4’ : strcpy(jurusan. } getch(). break. printf(“Masukkan NIM Anda : “). default : printf(“Anda salah memasukkan NIM. } Contoh aplikasi array satu dimensi : /* Program untuk menentukan jurusan & jenjang mahasiswa berdasarkan NIM*/ #include<stdio.Kom Page 43 .

printf(“Jenjang : %s”.S.Kom Page 44 . } else { if(nim*4+ == ‘3’) { strcpy(jenjang. } /***** tampilkan data mahasiswa *****/ printf(“ << Data Mahasiswa Universitas Budi Luhur >>“). printf(“Nama : %s”. Coba periksa lagi !”). matriks[3][4]. crlscr()./***** cari jenjang *****/ if(nim*4+ == ‘5’) { strcpy(jenjang. getch(). // Input elemen array secara Row Major Order printf(“Input elemen Array : \n“). printf(“Jurusan : %s”. jenjang). kolom.”Diploma-3”). jurusan). printf(“NIM : %s”. nama). “Strata-1”).h> void main() { int baris. nim). Pemrograman Bahasa C – Aga Sadewa. } /* Program menginput nilai(bilangan) ke dalam array dimensi dua & menampilkannya */ #include<stdio. } else printf(“ANda salah memasukkan NIM.h> #include<conio.

j.i++) Pemrograman Bahasa C – Aga Sadewa. kolom+1). &matriks*baris+*kolom+). X[3][4]. for (baris=0.Kom Page 45 . i.h> /* Program penjumlahan matriks dua dimensi */ #include<conio.h> void main() { int A[3][4]. } getch(). baris++) { for (kolom=0. } printf (“\n”). kolom<4. } printf(“\n”). C[3][4].S. baris++) { for (kolom=0.i<3. kolom++) { printf (“%i”. baris+1. /******* Masukkan matriks A *******/ for(i=0. scanf (“%i”. baris<3. &matriks*baris+*kolom+). baris<3.for (baris=0. clrscr(). B[3][4]. } Contoh Program 2 : #include<stdio. Y[3][4]. kolom++) { printf (“matriks*%i+*%i+”. kolom<4. } // Tampilkan elemen Array secara Row Major Order printf (“Isi array : \n”).

} } /******** Masukkan matriks B ********/ for(i=0.j<4.i<3.scanf("%i". fflush(stdin).A[i][j]). } } /******** Cetak isi matriks A ********/ printf("\n matrik A\n").S.&B[i][j]). Pemrograman Bahasa C – Aga Sadewa.j<4.j+1).i<3.j+1).scanf("%i".i++) { for(j=0.j++) printf("%6i".i+1.j<4.j++) { X[i][j]=A[i][j]+B[i][j].j++) { printf("input data matrik A[%i][%i] : ".i++) { for(j=0. } } /******** Proses penjumlahan matriks A dan B ********/ for(i=0.i++) { for(j=0.i<3.&A[i][j]).j++) { printf("input data matrik B[%i][%i] : ".i+1.j<4.{ for(j=0. for(i=0. fflush(stdin).Kom Page 46 .

B[i][j]).i++) { for(j=0. } printf("\n\n"). /******** Cetak isi matriks B *******/ printf("\n matrik B\n").j<4.printf("\n"). printf("\n"). } Contoh aplikasi Array untuk menghitung invers suatu matriks dengan ukuran m x n dengan metode Gauss-Jordan : /* MENGHITUNG INVERS MATRIKS DENGAN METODE GAUSS-JORDAN */ #include<stdio. for(i=0.h> Pemrograman Bahasa C – Aga Sadewa.S.Kom Page 47 .i++) { for(j=0.j<4. getch().X[i][j]).i<3. printf("\n").i<3.j++) printf("%6i".j++) printf("%6i".h> #include<conio. } printf("\n"). /******** Cetak hasil penjumlahan matriks A dan B *******/ printf("\n matrik penjumlahan A+B\n"). } printf("\n"). for(i=0.

a[i][j]).2f". &a[i][j]). j. i<=m. a[20][20]. scanf("%d".S. i++) { printf("\n"). printf(“\nsecara baris per baris\n"). i<=m. } /* Proses inversi */ for(i=1. j<=m. /* Membaca matriks asli */ for(i=1. for(j=1. i. i<=m. clrscr(). int m. t.%d)= ". printf("\nMasukkan ukuran matriks : \n"). j++) printf(" %. } } /* Mencetak Matriks asli */ printf("\nMatriks asli : "). for(i=1. for(j=1. j<=m. i++) { printf("\n"). j). printf("\nMasukkan nilai elemen matriks yang akan diinvers”). j++) { printf("A(%d. x.Kom Page 48 .i. i++) Pemrograman Bahasa C – Aga Sadewa.void main() { float p[20]. &m). scanf("%f". k.

for(j=1.h” Pemrograman Bahasa C – Aga Sadewa.S.h” #include “conio. i <=m. x<=m.1f". } getch(). a[i][j] = 1. printf(" \n"). a[i][j]).{ p[i] = a[i][j]. for(x=1. k++) { if(k != i) { t = a[k][i]. k<=m. j<=m. } for(k=1. j++) { a[i][j] = a[i][j]/p[i]. x++) a[k][x] = a[k][x] . i++) { for(j=1. } Contoh Program : #include “stdio.a[i][x] * t. for(i =1. a[k][i] = 0. } } } /* Mencetak matriks hasil inversi*/ printf("\n\nMatriks inversi : \n"). j++) printf(" %.Kom Page 49 . j<=m.

1. 1. { 1. 0. { 0. 1. 1. static int data_huruf[2][8][8] = { { { 1. 0. 1. 0. 0. 1. 1. 1. 1. 0. 0. 0. 0 }. 0 }. { 1. 0. 0 }. 0 }. 1. 0. 1. { 0. 1. { 1. menghitung dan mencetak perkalian matriks 3 x 3 Pemrograman Bahasa C – Aga Sadewa. 0 }. 0. 1. { 1. 0. 0. 1. 0. 1. 0. { 1.void main() { int i. 1. 1. 1. 0. 0 }. 0. 1. 0 }. 0 }. 1. 0. 0. { { 1. 1. 1. 1. D. 1. 0. 1. 0. 1. { 1. 1. 0. 0. 1. 0. { 1. 1. 1. { 1. 0. 1. 1. 0 }. 0 }. 1. 1. 0. 1. 0. 0. 0 }. 0. { 0. 0. { 1. 1. 0.Kom Page 50 . 0. 1. 0. 0. 1. 0. 1. { 1. 0 } }.S. 0. { 1. j. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0 } } }. 0. 0 }. 1. 1. 0 }. 0. k. 0. 0. 0. Latihan Buatlah program untuk menginput. 1. 1. 1. 1. 0 }.

c. int c). int b. Jadi hanya tanda kurung saja. B. } deklarasi parameter Daftar tipe dan nama variabel yang akan menerima nilai pada saat function tersebut dipanggil. 3.Praktikum 9 &10 A. tipe nama_varn).Kom Page 51 .b. Pemrograman Bahasa C – Aga Sadewa. …. Setiap parameter dipisahkan oleh tanda koma. Bentuk umum : f (tipe nama_var1. Dasar Teori Function adalah sebuah blok di dalam Turbo C++ Bentuk umum : tipe nama_function (deklarasi parameter) { pernyataan. Mahasiswa dapat menjelaskan cara fungsi memanggil dirinya sendiri (rekursif). pernyataan. Anda dapat menyatakan sebuah tipe untuk beberapa variabel yang tipenya sama. Contoh : int a. Tujuan Fungsi 1. 2. Deklarasi parameter agak berbeda dengan deklarasi variabel. Pada deklarasi variabel.S. Contoh : f (int a. tipe nama_var2. Mahasiswa dapat menjelaskan cara pemanggilan pada procedure tersarang. Jika function tidak mempunyai parameter daftar ini akan kosong. Tetapi pada deklarasi parameter Anda harus menyatakan setiap tipe dari parameter. Mahasiswa membuat program fungsi.

PROTOTIPE FUNCTION Prototipe function menyatakan 2 hal : 1. Jika tipe tidak dinyatakan secara eksplisit.b) jumlah(int x. function tersebut menghasilkan nilai yang bertipe int. Tipe dan banyaknya argumen yang dipakai oleh function. Yang penting.S. Menghasilkan sebuah nilai Function jumlah() pada program di atas mempunyai 2 parameter yaitu :   jumlah(a. Dalam hal ini semua bertipe int. Pemrograman Bahasa C – Aga Sadewa.Pernyataan Return Pernyataan return menyatakan dua hal : 1. int y) Isi variabel a dan b dikirimkan ke function jumlah() dan diterima oleh x dan y. Namanya tidak harus sama. agar compiler dapat menghasilkan kode yang benar untuk tipe nilai yang dihasilkan 2. Misalnya kita akan mengubah hasil function menjadi float.Kom Page 52 . variabel penerima dan hasil function harus bertipe sama. Sebelum function dipanggil untuk pertama kali. Function harus diberi tipe secara eksplisit 2. Tipe dari nilai yang dihasilkan function. Perhatikan program : c=jumlah(a. maka ada dua cara yang harus diperhatikan : 1. tetapi tipenya harus sama.b) return x+y Function jumlah() menghasilkan x+y dan hasilnya dimasukkan ke variabel c. compiler harus diberitahu tipe function tersebut. Return mengakhiri jalannya function dan kembali ke program pemanggil 2.

sebelum pemakainnya yang pertama. Sebuah blok dimulai dengan tanda { dan diakhiri dengan tanda }. Turbo C++ menganggap function tersebut menghasilkan nilai bilangan bulat. Pemanggilan function jumlah() ada di program c=jumlah(a. jadi prototipe berada sebelum pemanggilannya. selama program dijalankan. Di dalam Turbo C++.Kom Page 53 .b) . sebuah variabel bersifat lokal terhadap sebuah blok. Variabel lokal hanya dapat dipakai di dalam blok dimana variabel tersebut di deklarasikan. Variabel global dikenal di setiap bagian program. Pemrograman Bahasa C – Aga Sadewa. dan harus ditemukan sebelum function tersebut dipanggil untuk pertama kalinya. Variabel yang dideklarasikan di dalam function dinamakan variabel lokal.S. Pernyataan tersebut adalah prototipe function. perhatikan baris 2. Sebenarnya sebuah function juga merupakan sebuah blok dan blok tersebut dapat memiliki blok yang lebih kecil lagi. Variabel global di deklarasikan di luar semua function. jadi lebih sempit dibandingkan dengan sebuah function. variabel lokal akan dibuang. Variabel global akan menyimpan nilai yang ada di dalamnya. Jika blok tersebut sudah selesai dikerjakan. Jika Anda tidak menyatakan tipe void. Variabel global sebaiknya diletakkan di awal program.Bentuk umum : Tipe nama_function(daftar parameter) Biasanya prototipe diletakkan di awal program. Sebenarnya variabel global boleh diletakkan disetiap tempat. variabel a di deklarasikan sebelum function main(). Variabel lokal dibuat pada saat blok tempat deklarasi variabel tersebut dijalankan. Function yang tidak menghasilkan nilai dapat dideklarasikan sebagai tipe void. Perhatikan baris 1 pada program di atas. Hal ini dapat mencegah kesalahan yang tidak disengaja.

} hai() { printf("Hai. Apa kabar. dalam artian suatu fungsi dapat memanggil dirinya sendiri. Pernyataan return juga dapat dipakai tanpa menghasilkan sebuah nilai. } hai() { Pemrograman Bahasa C – Aga Sadewa. Contoh : main() { clrscr().?"). Pada saat pernyataan terakhir dari function dijumpai (dijumpai tanda akhir function “}” ) Contoh : main() { clrscr().Kom Page 54 .. hai().Fungsi dalam Bahasa C dapat dipakai secara rekursi. Langkah Percobaan Ada dua cara untuk kembali ke program pemanggil : 1. Rekursi jarang dipakai. C..S. hai(). } 2. diantaranya disebabkan :    Membuat fungsi sulit untuk dipahami Hanya cocok untuk persoalan tertentu saja Memerlukan stack dengan ukuran yang lebih besar. Dengan menggunakan pernyataan return. getch().

Untuk menghasilkan sebuah nilai. hai("Haloo.. Dalam hal ini adalah pesan (dinamakan parameter).?")...! dan Siapa nama kamu. Anda harus menyatakan return beserta nilai yang dihasilkannya.?")... return.!"). Tipe parameter harus sama dengan tipe argumen. Apa kabar. Jika kita menginginkan function tersebut dapat mencetak pesan yang berlainan. printf("\nBaik-baik saja kannn. hai("Siapa nama kamu. Di dalam function hai() harus ada variabel yang menerima argumen tersebut...pesan). getch(). kita harus mengubahnya menjadi seperti berikut : main() { clrscr().S. Sifat-sifat parameter sama seperti variabel lokal yang ada di dalam function...?").?.. } Pernyataan return pada program di atas akan mengakhiri function hai() sehingga program di bawahnya tidak dikerjakan Function hai() pada program di atas hanya dapat mencetak Hai.?.Kom Page 55 . } Pada contoh di atas pemanggilan function hai() menggunakan argumen.printf("Hai. } hai(char pesan[20]) { printf("%s \n". Apa kabar. Contoh : main() Pemrograman Bahasa C – Aga Sadewa. yaitu Haloo.. getch().

c). scanf("%f". scanf("%d". float y).{ int a. scanf("%f". printf("\n\nJumlah kedua bilangan tersebut adalah %4d". int y) { return x+y. } float jumlah(float x.b.S. getch().&a). clrscr(). main() { float a.1f".Kom Page 56 . float y) { Pemrograman Bahasa C – Aga Sadewa. printf("Masukkan nilai B : "). c=jumlah(a. printf("Masukkan nilai A : "). clrscr(). printf("Masukkan nilai B : ").b). printf("\n\nJumlah kedua bilangan tersebut adalah %4. } jumlah(int x. yaitu tipe mendahului nama function.c. c=jumlah(a. getch(). scanf("%d". } Cara mendeklarasikan function dengan suatu tipe.b).b.&b). printf("Masukkan nilai A : "). sama dengan deklarasi variabel. Contoh : float jumlah(float x.c).&b).&a).c.

&a). clrscr(). b=akar(a). } float akar(float x) { Pemrograman Bahasa C – Aga Sadewa.b)..Kom Page 57 . } void hai() { printf("Hai. getch().S. scanf("%f". } VARIABEL LOKAL Contoh : #include <math. main() { clrscr().h> float akar (float x). hai(). Apa kabar?").2f".return x+y. getch().b. } FUNCTION DENGAN TIPE VOID Contoh : void hai().. main() { float a. printf("Masukkan sebuah bilangan : "). printf("\n\nAkar dari bilangan tersebut adalah %6.

f1(). printf("Masukkan nilai A adalah "). printf("\n\nNilai A sesudah pemanggilan function adalah %3d". scanf("%d".a). printf("\n\nNilai A di dalam function sesudah dijumlah adalah %3d".a). } void f1(void) { printf("\n\nNilai A di dalam function sebelum dijumlah adalah %3d".a). a+=5.S. } VARIABEL GLOBAL Contoh : #include <stdio. main() { clrscr(). } REKURSI Contoh : #include <stdio.&a).h> int a.h> int faktorial(int). } else return 0. Pemrograman Bahasa C – Aga Sadewa. void f1(void). getch().float y. if (x>=0) { y=sqrt(x).Kom Page 58 . return y.

lembur().5 dari gaji pokok c.Kom Page 59 . 4000 Program ini akan terdiri dari 5 buah fungsi : main(). JAYA dengan ketentuan : a. Lembur. Gaji pokok karyawan Rp. x. Transport lembur Pemrograman Bahasa C – Aga Sadewa. Jumlah jam kerja Output : NIP. 3500 d.&x).S. } D. Nama. else return(m*faktorial(m-1)). 2000/jam b. Karyawan yang bekerja 9 jam/hari atau lebih akan mendapat uang transport lembur sebesar Rp. } int faktorial(int m) { if (m==1) return(1). Bila karyawan bekerja lebih dari 7 jam/hari maka kelebihannya dihitung lembur yang besarnya 1. Buat program untuk menghitung gaji harian PT. int x. Untuk karyawan yang bekerja 8 jam/hari atau lebih akan mendapat tambahan uang makan sebesar Rp. scanf("%d". Uang makan. getch(). Nama. printf("Nilai faktorial dari %d = %d\n". Gaji pokok.main() { clrscr(). pokok(). printf("Masukkan sebuah bilangan bulat positif : "). faktorial (x)). makan() dan jasa() Input : NIP. Latihan 1. puts("Mencari Nilai Faktorial").

variabel pointer berisi alamat dari suatu objek lain yaitu objek yang dikatakan ditunjuk oleh pointer. Variabel pointer sering dikatakan sebagai variabel yang menunjuk ke obyek lain. Mahasiswa dapat membuat tipe data pointer B. dengan tipe berupa sembarang tipe sedang nama_variabel adalah nama dari pointer. Agar mahasiswa lebih memahami mengenai algoritma dari structure 2. misalnya untuk melewatkan string dari suatu fungsi ke fungsi yang lain. Tujuan Pointer dan Struktur 1. Suatu variabel pointer dideklarasikan dengan bentuk : tipe *nama_variabel. yang bersifat unary) bisa digunakan dengan cara menempatkan operator di depan nama variabel. Untuk menyatakan alamat dari suatu variabel. Pemrograman Bahasa C – Aga Sadewa.Praktikum 11 & 12 A. Dasar Teori Pointer banyak dilibatkan dalam program C. Sebagai contoh. Agar suatu pointer menunjujk ke variabel lain. mula-mula pointer harus diisi dengan alamat dari variabel yang akan ditunjuk. Jika px berada pada alamat memori (alamat awal) 1000. Pada kenyataan yang sebenarnya.S. px adalah pointer dan x adalah variabel yang ditunjuk oleh px. Agar mahasiswa lebih memahami algoritma dari pointer 3. Penerapan pointer yang paling umum yaitu untuk menciptakan variabel dinamis yang memungkinkan untuk memakai memori bebas (memori yang belum dipakai) selama eksekusi program.Kom Page 60 . operator & (operator alamat. maka px akan berisi 1000.

Sebagai efeknya bisa menghemat waktu eksekusi. sebab sesunguhnya array secara internal akan diterjemahkan dalam bentuk pointer.S. penyalinan isi arrray tidak perlu dilakukan. Pengaksesan tak langsung dilakukan dengan menggunakan operator indirection berupa simbol * (bersifat unary).  Pointer sebagai keluaran fungsi Suatu fungsi dapat dibuat agar keluarannya berupa pointer. Pemrograman Bahasa C – Aga Sadewa. Perhatikan bahwa dengan pointer. POINTER dan ARRAY Hubungan antara pointer dan array pada C sangatlah erat.Kom Page 61 . STRUKTUR Struktur adalah koleksi dari variabel yang dinyatakan dengan sebuah nama dengan sifat setiap variabel dapat memiliki tipe yang berlainan. Misalnya suatu fungsi menghasilkan keluaran berupa pointer yang menunjuk ke string. POINTER dan STRING Contoh program di bawah ini menggambarkan pertukaran dua string yang dilakukan melalui pertukaran isi array melalui pointer. POINTER dan FUNGSI Pointer dan kaitannya dengan fungsi yang akan dibahas berikut meliputi :  Pointer sebagai parameter fungsi Penerapan pointer sebagai parameter yaitu jika diinginkan agar nilai suatu variabel internal dapat diubah oleh fungsi yang dipanggil. Struktur biasa dipakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah kesatuan. variabel tersebut dapat diakses melalui variabel itu sendiri (dikatakan sebagai pengaksesan langsung) ataupun melalui pointer (dikatakan sebagai pengaksesan tidak langsung). tipe field-2.Jika suatu variabel sudah ditunjuk pointer. Deklarasi struktur : struct nama_tipe_struktur { tipe field-1.

} variabel_struktur-1. } variabel_struktur1. variabel_struktur-n Contoh : struct data_tanggal { int tanggal. .. Masing –masing tipe elemen struktur dapat berlainan. tipe field-2.S. Pemrograman Bahasa C – Aga Sadewa. struct data_rekan { char nama[25]. struct data_tanggal tgl_lahir. } tgl_lahir.. int tahun..Kom Page 62 ... int tahun. tipe field-n. data_tanggal tgl_lahir. . }. Adapun variabel struktur menyatakan bahwa variabel struktur yang dideklarasikan bisa lebih dari satu dan dipisahkan dengan tanda titik koma. elemen yang terkandung di dalamnya bisa juga berupa struktur..tipe field-n. Dalam suatu struktur. ATAU struct data_tanggal { int tanggal. int bulan. Misalnya : struct nama_tipe_struktur { tipe field-1. int bulan. int bulan. }. int tahun. misalnya : struct data_tanggal { int tanggal. variabel struktur-n.

Untuk menampilkan data : puts(info_rekan. Langkah Percobaan Contoh : main() { int x.} info_rekan.tanggal = 30. C. /* px pointer yang menunjuk objek bertipe int */ clrscr().tgl_lahir. tgl = info_rekan.tgl_lahir.nama). printf("Alamat x = %p". printf("\nIsi X = %d". Pemrograman Bahasa C – Aga Sadewa. x=87. Array struktur adalah array yang dipakai untuk menyimpan data. printf("\nNilai yang ditunjuk oleh px = %d". &x). MENGAKSES ELEMEN STRUKTUR Elemen struktur dapat diakses dengan menggunakan bentuk : variabel_struktur. puts(info_rekan. *px). y=*px.nama). printf("\nIsi px = %p".Kom Page 63 . px).tanggal. y. int *px. x).nama_field (antara variabel struktur dan nama field dipisahkan dengan tanda TITIK) Misalnya : info_rekan.S. ARRAY dengan STRUKTUR Penggunaan struktur sering dikaitkan dengan array. px=&x.

u). printf("Nilai u = %d". main() { float d. printf("Isi d semula = %g". } Hasil : Alamat x = FFCC Isi px Isi X = FFCC = 87 Nilai yang ditunjuk oleh px = 87 Nilai y = 87 Antara tipe pointer dan tipe objek yang akan ditunjuk oleh pointer haruslah sejenis. Contoh : Pemakaian pointer yang salah main() { float *pu. d=54.5.Kom Page 64 . int u = 1234.S. clrscr(). *pd. printf(\nNilai nu = %f". nu). } Contoh program di bawah ini memberikan gambaran tentang pengubahan isi suatu variabel secara tak langsung. clrscr(). float nu. d). /* pernyataan ini salah karena tipe pu dan u berbeda */ nu = *pu.printf("\nNilai y = %d". pu=&u.y). Pemrograman Bahasa C – Aga Sadewa.

S. printf("\nNama-2 : %s". nama1). printf("Nama-1 : %s".5 Contoh : main() { static int tgl_lahir[]={24. *(ptgl+i)). clrscr(). char *nama2 = "BATMAN". *pd = *pd + 10. } Hasil : Isi d semula = 54.5 Isi d kini = 64.Kom Page 65 . i++) printf("Alamat ke-%d adalah %d\n". nama2). ptgl = tgl_lahir. } Hasil : Alamat ke-0 adalah 24 Alamat ke-1 adalah 12 Alamat ke-2 adalah 1970 char *nama1 = "CAT WOMAN". int i. Contoh main() { char *namax. i<3. 12.pd=&d. 1970}. Pemrograman Bahasa C – Aga Sadewa. /* identik dengan d = d + 10 */ printf("\nIsi d kini = %g". puts("Kata Semula :"). /* ptgl berisi alamat array */ for (i=0. d). clrscr().i. *ptgl.

clrscr().b). nama1). rubah(&a. int b=7. nama2=namax. printf("\nNama-2 : %s".S. printf("Nilai semula : a= %d dan b= %d". printf("Nama-1 : %s". int *y) { *x = *y + 2. } Hasil : Kata Semula : Nama-1 : CAT WOMAN Nama-2 : BATMAN Kata Akhir : Nama-1 : BATMAN Nama-2 : CAT WOMAN Contoh : void rubah(int *x. &b). main() { int a=3.namax=nama1. printf("\nNilai akhir : a= %d dan b= %d". nama2). Pemrograman Bahasa C – Aga Sadewa. a.b). puts("\n\nKata Akhir :"). } void rubah(int *x.Kom Page 66 . int *y). a. /* penukaran string dengan pointer */ nama1=nama2.

"Agustus". printf("%s\n".S. printf("Bulan (1. &bl). printf("Input lagi [y/t] : "). } Hasil : Nilai semula : a= 3 dan b= 7 Nilai akhir : a= 9 dan b= 9 Contoh : char *nama_bulan(int n). "April". "Januari". "Mei". lagi=getch(). do { clrscr().Kom Page 67 . "Februari". "Desember" Pemrograman Bahasa C – Aga Sadewa.12) : "). main() { int bl. "November". "Juni". char lagi.. } while (lagi == 'y' || lagi == 'Y'). "Oktober". "Maret". "Juli".*y = *y + 2. "September". nama_bulan(bl)). } char *nama_bulan(int n) { static char *bulan[] = { "Kode bulan salah". scanf("%d".

Pemrograman Bahasa C – Aga Sadewa.tgl_lahir. scanf("%d".}. int bulan. }.. scanf("%d". scanf("%d".&info_rekan.h> main() { int i.n. printf("Tahun Lahir : "). }.tgl_lahir. int tahun.Kom Page 68 . info_rekan. struct data_rekan info_rekan.12) : 4 April Input lagi [y/t] : Contoh #include <stdio. printf("Tanggal Lahir : "). printf("Bulan Lahir : "). return ((n<1 || n>12) ? bulan[0] : bulan[n]).S.&info_rekan. printf("\n\nNama lengkap : %s".nama).tanggal). gets(info_rekan.&info_rekan. printf("Nama Lengkap : "). clrscr().nama).tgl_lahir. struct data_tanggal { int tanggal.tahun). } Hasil : Bulan (1.bulan). struct data_rekan { char nama[30]. struct data_tanggal tgl_lahir.

tanggal.tgl_lahir. getch().printf("\nTanggal Lahir : %d-%d-%d".tgl_lahir. info_rekan. int tahun.tahun). int bulan.h> #include <ctype.h> #define maks 20 main() { struct data_tanggal { int tanggal.S.h> #include <string. } Hasil : Nama Lengkap : Aditya Fajar Ramadhan Tanggal Lahir : 11 Bulan Lahir : 11 Tahun Lahir : 1978 Nama lengkap : Aditya Fajar Ramadhan Tanggal Lahir : 11-11-1978 Contoh : #include <stdio.Kom Page 69 .h> #include <conio. info_rekan. }. info_rekan. struct data_rekan { Pemrograman Bahasa C – Aga Sadewa.bulan.tgl_lahir.

printf("Tanggal Lahir (mm-dd-yyyy) : ").tgl_lahir. info[i]. puts("DATA REKAN-REKAN : \n"). i++) printf("\n%-21s %d-%d-%d". printf("\nMau memasukkan data lagi [y/t] ? "). Pemrograman Bahasa C – Aga Sadewa. info[i]. char tombol. struct data_tanggal tgl_lahir.bulan. while ( !(tombol == 'T' || tombol == 'Y')) tombol = toupper(getch()).bulan.tgl_lahir. i<jumlah. /* hapus sisa data dalam penampung keyboard */ jumlah ++. puts("\nData Rekan : NAMA .Kom Page 70 .tahun). for(i=0.nama). clrscr().TANGGAL LAHIR").tgl_lahir. tombol).tanggal.tgl_lahir. &info[jumlah]. tombol = toupper(getch()). gets(info[jumlah].tgl_lahir. do { printf("Nama : "). &info[jumlah]. } while (tombol== 'Y'). int i. &info[jumlah].char nama[21]. printf("%c\n\n". struct data_rekan info[maks]. fflush(stdin). info[i].tanggal. jumlah = 0. }.nama. scanf("%d-%d-%d".S.

tgl_lahir. int bl.Kom Page 71 . 3.tahun). } Hasil : Nama : Ajeng Regita Tanggal Lahir (mm-dd-yyyy) : 13-03-1980 Mau memasukkan data lagi [y/t] ? Y Nama : Aditya Fajar Tanggal Lahir (mm-dd-yyyy) : 11-11-1981 Mau memasukkan data lagi [y/t] ? T Data Rekan : NAMA . Pemrograman Bahasa C – Aga Sadewa.TANGGAL LAHIR Ajeng Regita Aditya Fajar 13-3-1980 11-11-1981 Contoh: Program menentukan bulan dengan menggunakan struktur dan fungsi void cetak_tanggal(int tg. }. int tahun. 1985}. int bulan. main() { struct data_tanggal { int tanggal.info[i]. struct data_tanggal proses = {12. getch().S. int th).

proses.Kom Page 72 . "November"..S. nama_bulan[bl]. "September".tahun).bulan.tanggal. "Juni". printf("%d %s %d". Pemrograman Bahasa C – Aga Sadewa. proses. } void cetak_tanggal(int tg. tg. int bl. th). "Agustus". int th) { static char *nama_bulan[]= { "Kode bulan salah. Buat program dengan menggunakan pointer sehingga menghasilkan keluaran sebagai berikut : D ND AND LAND RLAND ORLAND BORLAND 2. "Mei". Latihan LATIHAN 1. "Desember" }.. "Feburari". "Oktober". "Januari". "Juli".cetak_tanggal(proses. "April". clrscr(). "Maret". } Hasil : 12 Maret 1985 D.!". Buat program untuk menentukan zodiak kelahiran dengan menggunakan Array dengan Struktur.

Bentuk tampilan masukan : NPM NAMA TGL LAHIR ALAMAT TELEPON : 10400570 : Muh. Prapatan/25 7987555 Pemrograman Bahasa C – Aga Sadewa. Rizky Putra 09-09-1980 Pamulang II/3 7875428 10400572 Pratama Sutisna 11-08-1978 Mp.Bentuk keluaran : Tanggal Lahir Anda [tgl-bln-tahun] : 24-12-1970 Zodiak Anda adalah : CAPRICORN 3. Rizki Putra : 09-19-1980 : Pamulang II : 7874528 Mau memasukkan data lagi [y/t] ? Bentuk tampilan keluaran : 10400570 Muh. Buat program untuk menyimpan data mahasiswa dengan menggunakan struktur.Kom Page 73 .S.

com Pemrograman Bahasa C – Aga Sadewa.Biografi Penulis Aga Sadewa. pemrograman.com Facebook : aga_lewatdoank@yahoo. Alumni UPN Veteran Jakarta asal Jawa Barat. Lulus kuliah S1 Teknik Informatika Tahun 2009. Lulusan SMA Negeri 106 Jakarta Tahun 2004. troubleshooting hardware dan software.Kom Page 74 . tepatnya di Kota Depok.id / agasadewa@gmail. April 1986.co.S. Penulis dilahirkan di Bogor. Penulis dapat dihubungi melalui email : agasadewa@yahoo. Semasa kuliah sangat menyukai dunia pendidikan.

Bentuk tampilan keluaran : 10400570 Muh. tepatnya di Kota Depok. Rizky Putra 09-09-1980 Pamulang II/3 7875428 10400572 Pratama Sutisna 11-08-1978 Mp. Alumni UPN Veteran Jakarta asal Jawa Barat. Penulis dilahirkan di Bogor. Prapatan/25 7987555 Biografi Penulis Aga Sadewa. pemrograman. Pemrograman Bahasa C – Aga Sadewa. Semasa kuliah sangat menyukai dunia pendidikan. troubleshooting hardware dan software. April 1986. Lulusan SMA Negeri 106 Jakarta Tahun 2004. Lulus kuliah S1 Teknik Informatika Tahun 2009.S.Kom Page 75 .

com Pemrograman Bahasa C – Aga Sadewa.com Facebook : aga_lewatdoank@yahoo.S.Penulis dapat dihubungi melalui email : agasadewa@yahoo.Kom Page 76 .co.id / agasadewa@gmail.

Sign up to vote on this title
UsefulNot useful