qwertyuiopasdfghjklzxcvbnmqw ertyuiopasdfghjklzxcvbnmqwert yuiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiopa MODUL PROGRAM APLIKASI KOMPUTER sdfghjklzxcvbnmqwertyuiopasdf D3-TEKNIK ELEKTRO ghjklzxcvbnmqwertyuiopasdfghj klzxcvbnmqwertyuiopasdfghjklz xcvbnmqwertyuiopasdfghjklzxcv bnmqwertyuiopasdfghjklzxcvbn mqwertyuiopasdfghjklzxcvbnmq wertyuiopasdfghjklzxcvbnmqwe rtyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuio pasdfghjklzxcvbnmqwertyuiopas dfghjklzxcvbnmqwertyuiopasdfg hjklzxcvbnmqwertyuiopasdfghjk LAB DASAR TEKNIK ELEKTRO
STT-PLN , CENGKARENG ,JAKARTA BARAT 2015
TATA TERTIB LABORATORIUM ALGORITMA DAN PEMROGRAMAN 1. Modul Praktikum harus sudah dipelajari. Jika terbukti belum dipelajari , intruktur lab. Berhak melarang anda untuk mengikuti praktikum 2. Anda harus sudah ada di laboratorium 15 menit sebelum praktikum dimulai 3. Kartu praktikum harus sudah dibawa pada saat praktikum ,tanpa kartu praktikum anda tidak dapat diperkenankan mengikuti praktikum. Kartu praktikum harus diberi foto dan diisi lengkap 4. Toleransi keterlambatan : Jika anda terlambat 15 menit,anda diperbolehkan masuk praktikum tanpa ada pemberian tes Awal Jika anda terlambat lebih dari 30 menit anda tidak diperbolehkan mengikuti praktikum dan tes awal 5. Tes awal diadakan untuk mnguji kesiapan anda. Tes awal akan diberikan LISAN maupun TULISAN 6. Nilai praktikum sama dengan nol,jika : Tidak hadir saat praktikum tanpa alasan yang jelas tanpa disertai bukti Tidak diperkenankan ikut praktikum oleh instruktur lab sesuai ketentuan yang berlaku 7. Instruktur lab tidak akan memberikan jadwal praktikum pengganti/susulan akibat pembatalan 8. Laporan praktikum ditulis tangan dan diserahkan sesuai jadwal yang telah diberikan oleh instruktur lab.penyerahan tidak bisa diwakilkan , karena anda harus sudah siap untuk menghadapi test akhir atau presentasi 9. Pada saat praktikum penyerahan laporan anda harus berpakaian rapih memakai kemeja(jaket jurusan),dan tidak memakai sandal/sandal jepit. Jika terbukti maka anda tidak diperkenankan mengikuti praktikum 10. Jika praktikum anda bentrok maka anda harus segera melaporkan/menghubungi instrukur lab terkait untuk memindahkan waktu praktikum 11. Keterlambatan penyerahan laporan praktikum akan mengakibatkan nilai laporan anda berkurang 1/7 untuk satu hari keterlambatan dari total nilai, terlambat satu minggu berarti nilai laporan anda sama dengan nol 12. Praktikum diperbolehkan pindah jadwal praktikum setelah diizinkan oleh instruktur lab yang bersangkutan,dengan ketentuan: Praktikan mengisi lembar izin panda jadwal yang disediakan instruktur lab yang bersangkutan dan mendapat persutujuan dari kepala laboratorium Setelah mendapat tanda tangan dari instruktur dan kepala laboratorium,praktikan baru boleh mengikuti praktikum Instruktur lab berhak member sanksi jika ketentuan yang ada tidak dipenuhi
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
1|
DAFTAR ISI
MODUL I PENGENALAN BAHASA C……………………………………3 MODUL II STRUKTUR DASAR BAHASA C…………………………….15 MODUL III PERCABANGAN DAN PERULANGAN……………………..29 MODUL IV ARRAY DAN FUNGSI…………………………………..41 MODUL V OPERASI FILE,STRUKTUR DAN MANIPULASI BIT………64
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
2|
MODUL I PENGENALAN BAHASA C TUJUAN Mampu melaksanakan tugas berikut dengan menggunakan program C
Masuk lingkungan C Melihat list file dalam suatu direktori Mengambil/load file ke Edit window dari suatu direktori Mengedit dan menyimpan program Meng-compile dan me-running program Menyelesaikan permasalahan ssederhana dengan pemrograman C
SEJARAH Bahasa C merupakan perkembangan dari bahasa BCPL yang dikembangkan oleh Martin Richards pada tahun 1967 .Selanjutnya bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan bahasa yang disebut bahasa B pada tahun 1970 .Perkembangan selanjutnya dari bahsa B adalah bahasa C oleh Dennis Ritchie sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah AT&T Bell Laboratories).Bahasa C pertama kali digunakan di computer. Digital Equipment Corporation PDP-11 yang menggunakan system operasi UNIX Hingga saat penggunaan bahasa C telah merata diseluruh dunia. Hampir semua perguruan tinggi di dunia menjadikan bahasa C sebagai salah satu matakuliah wajib . Selain itu,banyak bahsa pemrograman popular seperti PHP dan Java menggunakan sintaks dasar yang mirip bahasa C. Oleh karena itu,kita juga sangat perlu mempelajarinya. Pengertian dan Definisi Flowchart Flowchart atau Bagan alir adalah bagan (chart) yang menunjukkan alir (flow) di dalam program atau prosedur sistem secara logika. Bagan alir (flowchart) digunakan terutama untuk alat bantu komunikasi dan untuk dokumentasi. Jenis jenis Flowchart Ada beberapa jenis flowchart diantaranya: 1. 2. 3. 4. 5.
Bagan alir sistem (systems flowchart). Bagan alir dokumen (document flowchart). Bagan alir skematik (schematic flowchart). Bagan alir program (program flowchart). Bagan alir proses (process flowchart).
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
3|
System Flowchart System flowchart dapat didefinisikan sebagai bagan yang menunjukkan arus pekerjaan secara keseluruhan dari sistem.Bagan ini menjelaskan urut-urutan dari prosedur-prosedur yang ada di dalam sistem. Bagan alir sistem menunjukkan apa yang dikerjakan di sistem. Document Flowchart Bagan alir dokumen (document flowchart) atau disebut juga bagan alir formulir (form flowchart) atau paperwork flowchart merupakan bagan alir yang menunjukkan arus dari laporan dan formulir termasuk tembusan-tembusannya. Schematic Flowchart Bagan alir skematik (schematic flowchart) merupakan bagan alir yang mirip dengan bagan alir sistem, yaitu untuk menggambarkan prosedur di dalam sistem.Perbedaannya adalah, bagan alir skematik selain menggunakan simbol-simbol bagan alir sistem, juga menggunakan gambar-gambar komputer dan peralatan lainnya yang digunakan.Maksud penggunaan gambar-gambar ini adalah untuk memudahkan komunikasi kepada orang yang kurang paham dengan simbol-simbol bagan alir. Penggunaan gambargambar ini memudahkan untuk dipahami, tetapi sulit dan lama menggambarnya. Program Flowchart Bagan alir program (program flowchart) merupakan bagan yang menjelaskan secara rinci langkahlangkah dari proses program. Bagan alir program dibuat dari derivikasi bagan alir sistem. Bagan alir program dapat terdiri dari dua macam, yaitu bagan alir logika program (program logic flowchart) dan bagan alir program komputer terinci (detailed computer program flowchart). Bagan alir logika program digunakan untuk menggambarkan tiap-tiap langkah di dalam program komputer secara logika.Bagan alat- logika program ini dipersiapkan oleh analis sistem.Gambar berikut menunjukkan bagan alir logika program. Bagan alir program komputer terinci (detailed computer program flow-chart) digunakan untuk menggambarkan instruksi-instruksi program komputer secara terinci. Bagan alir ini dipersiapkan oleh pemrogram. Process Flowchart Bagan alir proses (process flowchart) merupakan bagan alir yang banyak digunakan di teknik industri. Bagan alir ini juga berguna bagi analis sistem untuk menggambarkan proses dalam suatu prosedur. Simbol dan Notasi Flowchart Dipakai sebagai alat Bantu menggambarkan proses di dalam program. Dan dibagi menjadi tiga kelompok : ♦ Flow Direction Symbols ♦ dipakai untuk menggabungkan antara symbol yang satu dengan symbol lainnya
Symbol Off-line Connector ( Simbol untuk keluar/masuk prosedure atau proses dalam LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
4|
lembar/halaman yang lain) Symbol Connector (Simbol untuk keluar/masuk prosedur atau proses dalam lembar/halaman yang sama) ♦ Processing symbols ♦ Menunjukkan jenis operasi pengolahan dalam suatu prosedur
Symbol Process (Simbol yang menunjukkan pengolahan yang dilakukan oleh komputer) Symbol Manual Operation (Simbol yang menunjukkan pengolahan yang tidak dilakukanoleh komputer)
Symbol Decision (Simbol untuk kondisi yang akan menghasilkan beberapa kemungkinan jawaban/aksi) Symbol Predefined Process (Simbol untuk mempersiapkan penyimpanan yang akan digunakan sebagai tempat pengolahan di dalam storage) Symbol Terminal (Simbol untuk permulaan atau akhir dari suatu program)Symbol Off-line Storage (Simbol yang menunjukkan bahwa data di dalam symbol ini akan disimpan) Symbol Manual Input (Simbol untuk pemasukan data secara manual on-line keyboard) Symbol Keying Operation (Simbol operasi dengan menggunakan mesin yang mempunyai keyboard) ♦ Input-output symbols ♦ menyatakan jenis peralatan yang digunakan sebagai media input atau output.
Symbol input-output (Symbol yang menyatakan proses input dan output tanpa tergantung dengan jenis peralatannya)
Symbol magnetic-tape unit (Symbol yang menyatakan input berasal pita magnetic atau output LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
5|
disimpan ke pita magnetic) ke kartu)-
Symbol punched card (Symbol yang menyatakan input berasal dari kartu atau output ditulis
Symbol disk and on-line storage (Symbol untuk menyatakan input berasal dari disk atau output disimpan ke disk) Symbol display (Symbol yang menyatakan peralatan output yang digunakan yaitu layar, plotter, printer, dan sebagainya) Symbol dokumen (symbol yang menyatakan input berasal dari dokumen dalam bentuk kertas atau output dicetak ke kertas)
CONTOH FLOWCHART
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
6|
KELEBIHAN DAN KEKURANGAN Kelebihan Bahasa C 1. 2. 3. 4. 5. 6. 7.
Bahasa C tersedia hamper di semua jenis computer Kode bahasa C sifatnya adalah protable dan fleksibel untuk semua jenis computer Bahasa C hanya menyediakan sedikit kata kata kunci,hanya terdapat 32 kata kunci Proses executable program bahasa C lebih cepat Dukungan pustaka yang banyak C adalah bahasa yang terstruktur Bahasa C termasuk bahasa tingkat menengah
Kekurangan Bahasa C 1. Banyaknya operatorserta fleksibilitas penulisan program kadang kadang membingungkan pemakai 2. Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
Materi 1 : Masuk Lingkungan C dan Manipulasi File
Untuk masuk ke dalam lingkungan C dapat dilakukan dengan banyak cara tergantung tool dan Sistem Operasi yang digunakan. Di dalam lingkungan sistem operasi windows dapat digunakan tool Notepad, Wordpad, Textpad. Turbo C/C++. Untuk Editornya dan Turbo C/C++, Borland C, DJGPP dan sebagainya sebagai Compilernya. Sedangkan di lingkungan sistem operasi Linux/Unix, dapat digunakan tool seperti Kdevelop, Jedit, Kwrite, Katepad, vi sebagai Editor dan untuk proses kompilasi dapat digunakan gcc (GNUproject C and C++ Compiler) sebagai compilernya. Dan dalam perkembangan nya gcc tidak hanya untuk compiler C, tetapi juga bahasa yang lain seperti java dan fortran, maka gcc berubah menjadi GNU project Compiler Collection. Sekilas Mengenal Editor Turbo C Untuk mengkompilasi Program , langkah-langkah sbb :
Pilih menu Compile dengan menekan Alt+C Pilih Submenu Compile [ 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
Menu-menu dalam Turbo C : LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
7|
Penulisan Program Bahasa C Program Bahasa C tidak mengenal aturan penulisan di kolom tertentu, jadi bias dimulai dari kolom manapun. Namun Demikian, untuk mempermudah pembacaan program dan utuk keperluan dokumentasi, sebaiknya penulisan bahasa C daitur sedemikian rupa sehingga mudah dan enak dibaca. Berikut contoh penulisan Program Bahasa C yang baik dan yang kurang baik: #include”stdio.h” void main() { Printf(“Bahasa C\n”); } Atau : #include”stdio.h” void main() { printf(“Bahasa C”);} Kedua Program di atas bila dijalankan akan menghasilkan hasil yang sama berupa tulisan “Bahasa C” di layar, namun dari segi penulisannya program yang pertama tampaknya lebih mudah dibaca dan lebih rapih disbanding dengan program yang kedua. LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
8|
Bagian-bagian dalam Pemrograman C : Pemrograman C sebenarnya tersusun dari fungsi-fungsi , yang didalamnya berisi satu atau lebih pernyataan atau perintah. Perhatikan contoh program dibawah ini : /*Program pertama*/ #include<stdio.h> #include
int main() { printf(“Selamat Datang di C\n”); getch(); return0;}
Setiap perintah atau pernyataan yang terdapat di dalam suatu fungsi akan selalu diakhiri dengan tanda titik koma(;). Anda dapat menuliskan beberapa perintah dalam satu baris selama perintah yang satu dan yang lainnya dipisahkan tanda titik koma (;). Main() { printf(“Saya”); printf(“belajar”); printf(“pemrograman”); } Program ini dapat dituliskan sebagai : main() { printf(“saya”); printf(“belajar”); printf(“pemrograman”); } Atau : main(){ printf(“saya”); printf(“belajar”); printf(“pemrograman”);} Ketiga contoh diatas menghasilkan output yang sama : saya belajar pemrograman LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
9|
Untuk memudahkan membaca program, sebaiknya bentuk penulisan program diatur sebaik mungkin.Sehingga bila terjadi kesalahan dengan mudah kita dapat diperbaiki.
Petunjuk dalam penulisan program : 1. Dalam 1 baris sebaiknya 1 perintah saja 2. Perintah/pernyataan yang merupakan bagian dari suatu fungsi dituliskan agak menjorok kedalam . 3. Bila sebuah perintah tidak cukup dituliskan dalam suatu baris, anda dapat menuliska ke baris berikutnya dengan rapi. 4. Bila perlu gunakan spasi untuk memisahkan kelompok perintah dengan kelompok perintah yang lain. 5. Diharapkan anda menggunakan komentar untuk memberikan keterangan program. Sebagai contoh lihat penulisan program berikut: /*Program menghitung jumlah dua bilangan*/ #include<stdio.h> #include Bagian dari fungsi yang ditulis menjorok ke kanan
int main() { int bilangan1=5, bilangan2=7,bilangan3; /*menghitung jumlah 2 bilangan */ bilangan3=bilangan1+bilangan2;
printf(“Jumlah kedua bilangan bulat tersebut sama dengan %d”,bilangan3); getch(); return0; } Contoh baris perintah yang lebih dari satu baris
Hati hati dalam memotong perintahyang tidak cukup dituliskan dalam satu baris ,jangan memenggal diantara sebuah konstanta string (kalimat yang diapit tanda kutip ) Seperti yang telah dijelaskan diatas bahwa program dalam Turbo C sebenernya tersusun dari fungsifungsi , dimana fungsi-fungsi tersebut memiliki namanya masing masing . Nama fungsi ada yang ditentukan oleh Turbo C,ada pula yang dapat anda tentukan sendiri .Pada Contoh diberikan sebuah LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
10|
program dengan fungsi bernama main(),merupakan fungsi yang harus ada dalam program anda, karena dari fungsi inilah program anda diambil Materi 2 : Edit dan Simpan (Save dan Save as)program Masih deprogram HELLO.C,ganti perintah: Printf(“Hello,word”);menjadi printf(“Halo,apa kabar”); Simpan perubahan yang anda kerjakan dalam file lain dengan memilih menu File kemudian submenu Save As Ketikkan nama file baru Kabar.C pada Save File As kemudian Klik Ok
Ganti lagi teks tersebut sehingga program menghasilkan output nama dan NIM anda di layar .Simpan perubahan yang anda kerjakan dengan menekan tombol F2(menyimpan File) atau tekan Catatan : 1. Turbo C bersifat Sensitive Case dengan artian dibedakan antara huruf kecil dan besar ,misal printf ≠ Printf,atau return ≠ RETURN 2. Perhatikan pemakaian simbol <> , (), dan {} ketiganya mempunyai mempunyai fungsi berbeda dan tidak dapat saling menggantikan Materi 3 : Menjalakan program dengan error Buka program Kabar.C, hapus karakter titik koma(;) diakhir perintah return 0 dan compile program tersebut. Akan muncul pesan error pada program ini.
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
11|
Tekan sembarang tombol untuk melihat jenis kesalahn/error anda
Perbaikin program Selamat.C dan jalankan kembali. Pesan error mengatakan 15:return statement missing ; yang berarti pada baris sebelum baris ada tanda titik koma .Baris 15 ditandai dengan dengan posisi kursor berada(berupa tanda kotak merah kecil).Tambahan tanda ; dan compile kembali.Hasil sekarang seharusnya tidak terdapat pesan error lagi. Simpan program Kabar.C dengan memilih menu File submenu Save atau klik F2
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
12|
Materi 4:Membuat,Meng-compile dan Menjalankan program baru
A. Program menampilkan output dilayar monitor Tugas 1:Buat file baru.Tekan Alt-F untuk memilih menu File kemudian tekan N untuk memilih submenu New. Tugas 2:Ketikkan program dibawah ini . Simpan dengan nama Prog1.C /*Program pertama*/ #include <stdio.h> #include int main(); { printf(“Selamat Datang di C!\n”); getch(); return 0; } Tugas 3: Compile dan jalankan program Prog1 Tugas 4: Tutup Prog1 dan keluar dari Turbo C B. Program meminta input dari user melalui keyboard dan menampilkan output dilayar monitor Tugas 1: Buat file baru.Tekan Alt+F untuk memilih menu File kemudian tekan N untuk memilih submenu New. Tugas 2 : Ketikkan program dibawah ini.Simpan dengan nama Prog2.C /*Program kedua*/ #include <stdio.h> #include int main(); { int integer1,integer2,kali;/*deklarasi*/ printf(“Ketikkan bilangan pertama\n”);/*prompt*/ scanf(“%d”,&integer1):/*membaca sebuah integer*/ printf(“Ketikkan bilangan kedua\n”);/*prompt*/ scanf(“%d”,&integer2);/*membaca sebuah integer*/ LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
13|
kali=integer1*integer2;/*operasi perkalian*/ printf(“Hasil perkaliannya %\n”,kali);/*cetak hasil*/ getch(); return0;/*menandai bahwa program telah selesai*/ } Tugas 3:Compile dan jalankan program Prog1. Tugas 4:Tutup Prog1 dan keluar dari Trubo C
Materi 5:Membuat program (coding) untuk menyelesaikan masalah Tugas 1: Modifikasi program1.C Tugas2: Buat program baru yang berisi Selamat Datang Di C! Lihat contoh output program tersebut dibawah ini.
Catatan: Hasil diatas masih terdapat permasalahan seperti hasil pembagian yang belum tepat.Dan juga ketika masukkan diberi nilai pecahan menunjukkan program belum berjalan dengan benar.Hal ini karena permasalahan format data harus disesuaikan. Pembahasan mengenai hal ini terdapat pada Modul berikutnya .
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
14|
Modul II Struktur Dasar Bahasa C TUJUAN Mampu melakukan tugas berikut dengan menggunakan Pemrograman C
Memahami Struktur Dasar Bahasa C Mengenal tipe data yang dikenal dalam bahasa C Mampu menggunakan tipe data dengan benar Memahami variable, aturan penamaannya dan pendeklarasainnya Memahami format data input dan output
Tipe Data Tipe data merupakan bagian program yang paling penting karena tipe data mempengaruhi setiap instruktur yang akan dilaksanakan oleh komputer. Misalnya saja 5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya. Jika 5 dan 2 bertipe integer maka akan menghasilkan nilai 2. Namun jika keduanya bertipe float maka akan menghasilkan nilai 2..5000000. Pemilihan tipe sata yang tepat akan membuat proses operasi data menjadi lebih efisien dan efektif. Dalam bahasa C terdapat lima tipe data dasar, yaitu : No
Tipe Data
Ukuran
Range (Jangkauan)
Forma t
Keterangan
1
Char
1 byte
-128 s/d 127
%c
Karakter/String
2
Int
2 byte
-32768 s/d 32767
%i, %d
Integer/Bilangan Bulat
3
Float
4 byte
-3.4E-38 s/d 3.4E+38
%f
float/Bilangan pecahan
4
Double
8 byte
-1.7E-308 s/d 1.7E+308
%lf
Pecahan presisi ganda
5
Void
0 byte
-
-
Tidak bertipe
Contoh : Misalkan kita akan mendeklarasikan variabel jumlah sebagai integer, variabel nilai_maks sebagai floating point, dan gaji sebagai double precision : int jumlah; float nilai_maks; double gaji; Antara satu deklarasi variabel dengan variabel lainnya dipisahkan tanda titik koma (;) . Variabel dengan nama yang sama tidak boleh dideklarasikan ulang. LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
15|
Program berikut merupakan contoh penggunaan berbagai tipe data diatas. #include”stdio.h” #include”conio.h” Void main() { int x; float y; char z; double w; clrscr();/*untuk membersihkan layar*/ x = 10; /*variabel x diisi dengan 10*/ y = 9.45; /*varibel y diisi dengan 9.45*/ z = ‘C’; /*variabel z diisi dengan karate*/ w = 3.45+20; /*variabel w diisi dengan 3.45+20*/ printf(“Nilai dari x adalah : %i\n”, x); /*Menampilkan isi variabel x*/ printf(“Nilai dari y adalah : %f\n”, y);/*Menampilkan isi variabel y*/ printf(“Nilai dari z adalah : %c\n”, z );/*Menampilkan isi variabel z*/ printf(“Nilai dari w adalah : %lf\n”, w);/*Menampilkan isi variabel w*/ getch(); } Konstanta Konstanta adalah suatu nilai yang sifatnya tetap, misal angka ‘1’ adalah angka ‘1’ bukan angka ‘2’ . Contoh lain adalah huruf ‘a’ adalah ‘a’ bukan ‘b’ atau yang lainnya. Sebagai ilustrasi, kita lihat a=2, ‘a’ disini bukan lagi merupakan konstanta. Karena pada saat ini ‘a’ bernilai 2 dan pada kesempatan lain bias saja ‘a’ bernilai 3 atau 100. Jadi ‘a’ disini terlepas dari hakekat artinya (‘a’ adalah ‘a’) dalam hal ini ‘a’ bukan lagi konstanta, melainkan suatu variabel. Secara garis besar konstanta dapat kita bagi atas dua bagian : a.Bilangan (numerik) i. ii. iii. tinggi.
Bilangan bulat (integer) Bilangan decimal berpresisi tunggal(floating point), dengan 2 tampilan : 1. Bentuk desimal, contoh : 1.234 2. Bentuk eksponen, contoh : 1.234e2 artinya 1.234 x 102 Bilangan desimal berpresisi ganda, sama dengan point(ii) tapi dengan ketelitian lebih
b. Teks (string) 1. Data karakter, data yang terdiri dari sebuah karakter (huruf), ditandai dengan tanda kutip tunggal (‘), dapat berupa huruf kecil, huruf besar, angka, dan notasi lainnya, contoh : ‘A’, ‘a’, ‘1’, ‘&’, ‘*’, dan lain-lain. 2. Data string, rangkaina dari beberapa karakter dan ditandai dengan tanda kutip ganda (“). Contoh : “saya”, “17 tahun”, “081111111” dan lain-lain. Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung. LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
16|
Konstanta harus didefinisikan terlebih dahulu diawal program.Konstanta dapat bernilai integer, pecahan, karakter dan string. Contoh konstanta : 50; 13; 3.14; 4.50005; ‘A’; ‘Bahasa C’. Selain itu, bahasa c juga menyediakan beberapa karakter khusus yang disebut karakter escape, antara lain : \a : untuk bunyi bell (alert) \b : mundur satu spasi (backspace) \f : ganti halaman (form feed) \n: ganti baris baru (new line) \r: ke kolom pertama, baris yang sama (carriage return) \v: tabulasi vertical \0: nilai kosong (null) \’: karakter petik tunggal \”: karakter petik ganda \\: karakter garis miring Catatan : Turbo C memberdakan antara data karakter dan string, jadi ‘;’ beda dengan ‘j’. Coba buat contoh program dibawah ini , amati hasilnya : //program contoh pemakaian konstanta #include<stdio.h> #include main() { //Mencetak konstanta string printf(“ini konstanta string”); // Mencetak konstanta karakter putchar(‘a’); //menceetak konstanta integer printf(“%d”, 1+2); printf(“%f”, 1.5);//mencetak kosntanta pecahan getch(); return0; }
Variabel Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu didalam proses program. Variabel digunakan bila Anda ingin bekerja dengan data yang dapat berubahLABORATORIUM DASAR TEKNIK ELKETRO 17| PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
ubah dari waktu ke waktu dan data tersebut ingin ditempatkan pada lokasi memori yang sama. Variabel dapat kita andalkan sebagai sebuah tempat penampungan data atau konstanta pada memori.Sedangkan nilai yang selalu tetap, variabel dapat berubah-ubah.Sebuah variabel dapat mengandung data yang berbeda pada saat yang berbeda.
Contoh : harga_satuan=112.50; lokasi memori
Variabel
112.50 Harga satuan
konstanta
Nama Variabel Anda dapat menentukan sendiri nama variabel, tapi dengan memperhatikan hal berikut : a)
Hanya boleh terdiri dari abjad, bilangan dan tanda hubung( _ ) , contoh : bilangan1 sum hasil_bagi b) Tidak boleh diawali dengan angka, contoh nama variabel yang salah: 100bilangan 2005_tahun c) Tidak boleh menggunakan operator aritmatika (+-/#%), contoh variabel yang salah : min+nilai gaji-pajak nama/nim d) Tidak boleh menggunakan karakter khusus, yaitu : ;, :, #, @, $, ^, !, &, dan titik (.)., contoh variabel yang salah : luas; segitiga #perintah tempat&tgllahir e) Nama variabel tidak boleh menggunakan karakter khusu, yaitu : ;, :, #, @, $, ^, !, &, dan titik ( . ), contoh variabel yang salah : nama lengkap program keahlian f) Jangan menggunakan nama fungsi atau perintah lain yang mempunyai arti khusus dalam Turbo C (reserved word). Contoh nama variabel yang salah : main printf return g) Nama variabel boleh terdiri dari reseved word yang digabung dengan kata lain, contoh : main1 printf_karakter h) Turbo C membedakan huruf besar dan huruf kecil, contoh : Gaji GAJI dan gaji merupakan tiga nama varibel yang berbeda.
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
18|
Jenis-jenis variabel Seperti halnya konstanta, variabel juga terbagi menjadi dua kelompok, yaitu : a.
b.
Variabel Numerik : i. Bilangan bulat (integer) menampng bilangn berkisar antara -32768 hingga 32767 ii. Bilngan desimal berpresisi tunggal, dalam bentuk floating point menampung data dari -3.4E-38 sampai 3.4E+38 sedangkan dalam bentuk desimal dapat menampung hingga 6 desimal (6angka di belakang koma ) iii. Bilangan desimal berpresisi ganda, dalam bentuk double precision berkisar antara 10-308 sampai 10308, sedangkan dalam bentuk decimal dapat menampung hingga 15 desimal (15 angka dibelakang koma) Variabel Teks: i. Karakter ii. String
Deklarasi Sebelum sebuah variabel digunakan, variabel tersebut harus “diperkenalkan” lebih dahulu kepada Turbo C. Deklarasi diperlukan bila kita akan menggunakan pengenal (identifier) alam program . Identifier dapat berupa variabel , konstanta dan fungsi. Deklarasi Variabel Bentuk umum pendeklarasian suatu variabel adalah: Nama_tipe nama_variabel: Contoh : int x; //Deklarasi x bertipe integer char y, huruf, nim[10]; // Deklarasi variabel bertipe char float nilai; // Deklarasi variabel bertipe float double beta; // Deklarasi variabel bertipe double int array[5][4]; // Deklarasi array bertipe integer char*p; //Deklarasi pointer p bertipe char
Deklarasi Konstanta Dalam bahasa c konstanta dideklarasikan menggunakan preprocessor #define. Contohnya : #define PHI 3.14 #define nim “0111500382” LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
19|
#define nama “Sri Widhiyanti” Deklarasi Fungsi Fungsi merupakan bagian yang terpisah dari program dan dapat diaktifkan atau dipanggil dimanapun di dalam program. Fungsi dalam bahasa C ada yang sudah disediakan sebagai fungsi pustaka seperti printf(), scanf(), getch() dan untuk menggunakannya tidak perlu dideklerasikan. Fungsi yang perlu dideklerasikan terlebih dahulu adalah fungsi yang dibuat oleh programmer . Bentuk umum deklarasi sebuah fungsi adalah : Tipe_fungsi nama_fungsi(parameter_fungsi); Contohnya : float luas_lingkaran(int jari); void tampil(); int tambah(int x, int y); Operator Operator Penugasan Operator penugasan (Assignment operator) dalam bahasa C berupa tanda sama dengan (“=”). Contoh : nilai = 80; A= x*y; Artinya : variabel “nilai” diisi dengan 80 dan variabel “A” diisi dengan hasil perkalian anatara x dan y.
Operator Aritmatika Bahasa C meneyediakan lima operator aritmatika, yaitu :
* : Untuk perkalian / : Untuk pembagian % : Untuk sisa pembagian (Modulus) + : Untuk pertambahan - : Untuk pengurangan
Catatan :operator % digunakan untuk mencari sisa pembagian antara dua bilangan. Misalnya : 9 % 2 =1 9%3=0 9%5=4 9%6=3 LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
20|
Contoh program 1 : #include<stdio.h> #include void main() { clrscr(); //untuk membersihkan layar printf(“Nilai dari 9 +4 = %i”; 9+4); /*mencetak hasil 9 +4 */ printf(“Nilai dari 9 -4 = %i”; 9-4); /*mencetak hasil 9 -4 */ printf(“Nilai dari 9 *4 = %i”; 9*4); /*mencetak hasil 9 *4 */ printf(“Nilai dari 9 %4 = %i”; 9%4); /*mencetak hasil 9 %4 */ getch(); } Contoh program 2 : /*Penggunaan operator % untuk mencetak deret bilangan genap antara 1 – 100 */ #include”stdio.h” #include”conio.h” void main() { int bil; clrscr(); // untuk membersihkan layar for(bil=1; bil<100; bil++) { if(bil % 2 == 0)// periksa pakah ‘bil’ genap printf(“%5.0i”, bil); } getch(); }
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
21|
Operator unary Operator unary merupakan operator yang hanya membutuhkan satu operand saja. Dalam bahasa c terdapat beberapa operator unary, yaitu : Operator Arti Unary minus
Letak Sebelum Operator
Contoh A=-B*C
++ -size of
Penambahan nilai 1 Pengurangan nilai 1 Ukuran operand dalam byte
Sebelum dan sesudah Sebelum dan Sesudah Sebelum
A++ A-Sizeof(l)
Unary NOT Bitwise NOT Alamat memori operand Nilai dari pointer
Sebelum Sebelum Sebelum Sebelum
!A ~A &A *A
! ~ & *
Ekivalen A-(B)*C A=A+1 A=A-1 -
Operator Penting ! : Operator peningkatan ++ dan penurunan – jika diletakan sebelum atau sesudah operand terdapat perbedaan. Perhatikan contoh berikut : Contoh Program 1 : /*Perbedaan operator peningkatan ++ yang diletakkan didepan dan dibelakang operand*/ #include<stdio.h> #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(); }
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
22|
Contoh program 2: #include”stdio.h” #include”conio.h” void main() { Int b, nilai ; clrscr();// untuk membersihkan layar b =15; nilai = --b; /* berarti b =b-1; nilai = b; */ printf(“nilai = %d, b= b – 1; nilai = b; */ nilai = b--; /* berarti nilai = b; b- 1; */ `
printf(“nilai=%d, b=%d\n”, nilai, b); getch(); } Kata Tercadang (Reserved Word)
Bahasa C srandar ANSI memiliki 32 kata tercadang (reserve word) dan Turbo C menambahkannya dengan 7 kata tercadang. Semua reserved word tidak boleh digunakan dalam penamaan identifier (variable, nama fungsi dll). Kata Tercadang yang tersedia dalam bahasa C adalah : *asm
default
for
*pascal
switch
Auto
do
goto
register
typedef
break
double
*huge
return
union
case
else
if
short
unsigned
*cdce
enum
int
signed
void
char
extem
*interrupt
sizeof
volatile
const
*far
long
static
while
continue
float
*near
struct
Keterangan :tanda * menunjukan tambahan dari Turbo C
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
23|
Komentar Program Komentar program hanya diperlukan untuk memudahkan pembacaan danpemahaman suatu program (untuk keperluan dokumentasi program). Dengan kata lain, komentar program hanya merupakan keterangan atau penjelasan program. Untuk memberikan komentar atau penjelasan dalam bahasa C digunakan pembatas /* dan */ atau menggunakan tanda // untuk komentar yang hanya terdiri dari satu baris. Komentar program tidak akan ikut diproses dalam program (akan diabaikan). Contoh program : #include”stdio.h” #include”conio.h” void main() { clrscr();/*ini untuk membersihkan layar tampilan*/ printf(“Contoh penggunaan komentar”); //Komentar tidak ikut diproses getch(); /*Dan ini untuk menahan tampilan layar } MEMASUKKAN DATA Dalam bahasa C proses memasukkan suatu data bias menggunakan beberapa fungsi pustaka yang telah tersedia. Beberapa fungsi pustaka yang biasa digunakan adalah : scanf() Fungsi pustaka scanf() digunakan untuk menginput data berupa data numeric, karakter dan string secara terformat. Hal-hal yang perlu diperhatikan dalam pemakain fungsi scanf() :
Fungsi scanf() memakai penentu format Fungsi scanf() memberi pergantian baris secara otomatis Fungsi scanf()tidak memerlukan penentu field Variabelnya harus menggunakan operator alamat &
Kode penentu format: %c : Membaca sebuah karakter %s : Membaca sebuah string %i, %d :Membaca sebuah bilangan bulat (integer) %f, %e: Membaca sebuah bilangan pecahan (real) %o : Membaca sebuah bilangan oktal %x :Membaca sebuah bilangan heksadesimal %u : Membaca sebuah bilangan tak betanda LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
24|
Contoh Program : /* Program memasukan inputan dengan beberapa tipe data */ #include<stdio.h> #include void main() { int jumlah; char huruf, nim[10]; float nilai; clrscr(); printf(“Masukkan sebuah bilangan bulat : “); scanf(“%d”, &jumlah); /*Membaca sebuah bilangan bulat*/ printf(“Masukkan sebuah karakter : “); scanf(“%c”, & huruf); /*membaca sebuah karakter*/ printf(“Masukkan nim Anda : “); scanf(“%s”, &nim);/*Membaca sebuah string*/ printf(“Masukkan bilangan pecahan : “); scanf(“%f”, &nilai); /*Membaca sebuah bilangan float*/ printf(“\nNilai variabel yang Anda masukkan adalah : \n “); printf(“jumlahv= %d\n”, jumlah); printf(“huruf = %c\n”, huruf); printf(“nim= %s\n”, nim ); printf(“nilai = %f\n” , nilai); getch(); } Gets() Fungsi gets() digunakan untuk memasukkan data bertipe karakter dan tidak dapat digunakan untuk memasukkan data numerik.
Harus diakhiri dengan penekan tombo enter Cursor secara otomatis akan pindah baris Tidak memerlukan penentu format
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
25|
Contoh program : /*Program inputan tipe data karakter/string */ #include”stdio.h” #include”conio.h” void main() { char nama[20]; clrscr(); printf(“Masukkan nama Anda : “); gets(nama); printf(“Hello, Nama Anda adalah %s”, nama); getch(); }
getchar() Fungsi getchar() digunakan untuk membaca data yang bertipe karakter
Harus diakhiri dengan penekanan tombol enter Karakter yang dimasukkan terlihat pada layar Pergantian baris secara otomatis
getch() dan getche() Fungsi getch() dan getche() digunakan membaca data karakter Karakter yang dimasukkan tidak perlu diakhiri dengan penekanan tombol enter Tidak memberikan efek pergantian secara otomatis Jika menggunakan fungsi getch() karakter yang dimasukkan tidak akan ditampilkan pada layar sehingga sering digunakan untuk meminta input berupa password. Sedangkan pada getche() karakter yang dimasukkan akan ditampilkan pada layar . Contoh Program : #include”stdio.h” #include”conio.h” void main() { LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
26|
char huruf1, huruf2; printf(“Masukkan sebuah karakter : “); huruf1 = getche(); //Karakter yang dimasukkan akan terlihat dilayar printf(“\nKarakter yang Anda masukkan adalah %c\n” , huruf1); printf(“\nMasukkan sebuah karakter lagi : “); huruf2 = getch(); // karakter yang dimasukkan tidak terlihat dilayar printf(“\Karakter yang Anda masukkan adalah : %c, huruf2); getch(); }
CATATAN : Jika terdapat beberapa input(memasukkan data)sekaligus , maka sebaiknya ditambahkan fungsi fflush(stdin); setelah fungsi scanf() . Fungsi fflush (stdin)berfungsi mengahapus buffer di dalam alat I/O. MENAMPILAKAN DATA Menampilkan data ke layar monitor . Menggunakan fungsi printf(), puts(), dan putchar(). Fungsi printf() digunakan untuk menampilkan semua jenis data (numeric dan karakter) Fungsi puts() digunakan untuk menampilkan data string dan secara otomatis akan diakhiri dengan perpindahan baris. Fungsi putchar() digunakan untuk menampilkan sebuah karakter Mengatur tampilan bilangan pecahan (float). Bentuk umum : printf(“%m.nf”, argument); m : menyatakan panjang range n
: menyatakan jumlah digit dibelakang koma.
Argument : Nilai atau variabel yang akan ditampilkan Contoh : printf(“%5.2f”, nilai); artinya variabel nilai akan ditampilkan sebanyak 5 digit dengan 2 digit dibelakang koma. Contoh Program 1 : LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
27|
/*Program untuk menampilkan data berupa bilangan pecahan*/ #include”stdio.h” #include”conio.h” 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.4 ?”, nilai); getch(); } Menampilkan data ke pointer Untuk menampilkan data ke printer dapat menggunakan fungsi fprintf(), fputs(), dan fputc(). Fungsi fprintf() digunakan untuk mecetak semua jenis tipe data ke printer dan secara otomatis memberikan efek perpindahan baris . Fungsi fputs() digunakan untuk mencetak tipe data string ke printer Fungsi fputc() digunakan untuk mencetak tipe data karakter ke printer Contoh Program: #include”stdio.h” #include”conio.h” void main() { fprintf(stdprn, “Hallo saya akan tercetak ke printer”); fputs(stdprn, “Saya juga akan tercetak di printer”); }
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
28|
MODUL III PERCABANGAN DAN PERULANGAN Tujuan Mampu melakukan tugas berikut dengan menggunakan Program C
Membuat percabangan berdasarkan kondisi dengan operasi perbandingan dan operasi logika Membuat perulangan dengan : struktur while ,do…while,for Memahami penggunaan if…else Percabangan
Percabangan bersyarat memungkinkan anda untuk memilih suatu pilihan dari beberapa pilihan yang disediakan berdasarkan kondisi yang sesuai. Kondisi dapat diperoleh dengan operasi perbandingan maupun operasi logika Operator hubungan (Perbandingan) Operator hubungan digunakan untuk membandingkan hubungan antara dua buah operand(sebuah nilai atau variable). Operator hubungan dalam bahasa C: Operator < <= > >= == !=
Arti Kurang dari Kurang dari sama dengan Lebih dari Lebih dari sama dengan Sama dengan Tidak sama dengan
Contoh xy x>=y x==y x!=y
Keterangan Apakah x kurang dari y Apakah x kurang dari sama dengan y Apakah x lebih dari y Apakah x lebih dari sama dengan y Apakah x sama dengan y Apakah x tidak sama dengan y
CATATAN: Pengunaan tanda ‘=’ tidak sama dengan tanda’==’. X+5==y+10 mempunyai arti yang berbeda dengan x+5 = y+10 nilai nilai yang memenuhi ekspresi relasional ini akan memberikan nilai BENAR pada ekspresi tersebut. Sebaliknya nilai-nilai yang tidak memenuhi ekspresi ralsional ,akan menghasilkan nilai SALAH Contoh : Ekspresi relasional :a+b<=75 Jika nilai a=20 dan b=30 maka ekspresi tersebut bernilai BENAR. Sedangkan bila a=100 dan b=75 maka ekspresi relasional tersebut bernilai SALAH. Pada Turbo C nilai Benar diwakili oleh bilangan 1 sedangkan salah diwakili oleh 0 Contoh program : //contoh program operator relasi #include <stdio.h> LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
29|
#include main(); { int hasil1,hasil2;//deklarasi variable clrscr();//membersihkan program pada layar hasil1=(20<10);//operasi benar atau salah hasil2=(20>10); //mencetak nilai benar atau salah printf(“\n Nilai numerik untuk ekspresi relasional yang salah =%d”,hasil1); printf(“\n Nilai numerik untuk ekspresi relasional yang benar=%d”,hasil2); getch(); return 0; } Operator Logika Jika operator hubungan membandingkan hubungan antara dua buah operand ,maka operator logika digunakan untuk membandingkan logika hasil dari operator-operator hubungan . Operator logika ada tiga macam,yaitu :
&&: Logika AND (DAN) || : Logika OR(ATAU) !:Logika NOT(INGKARAN)
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
30|
Operator Bitwise Operator bitwise digunakan untuk memanipulasi bit-bit dari nilai data yang ada di memori. Operatoroperator bitwise dalam bahasa C:
<<: Pergeseran bit ke kiri >>:Pergeseran bit ke kanan &:Bitwise AND ^:Bitwise XOR(exclusive OR) | : Bitwise OR ~:Bitwise NOT
Contoh : (x+5=10 || y>x && z-2>3) Bila x=2,y=4,dan z=2,maka ketiga tersebut akan menjadi: 1. X+5<10 BENAR 2. y>x+3 SALAH 3. z-2>3 SALAH sehingga ekspresi logikanya: ((BENAR)||(SALAH) && (SALAH)} {(BENAR)|| (SALAH)} Hasil akhirnya adalah BENAR
Pernyataan IF Pernyataan IF membagi suatu alur proses menjadi dua cabang , berdasarkan persyaratan yang diberikan. Cabang pertama dijalankan bila persyaratan terpenuhi,sedangkan cabang yang kedua akan dipilih bila persyaratan tidak dipenuhi Contoh 1: //Contoh program IF perintah tunggal #include <stdio.h> #include main(); { float jml_belanja=0,jml_bayar;//deklarasi variable clrscr();//membersihkan data pada layar printf(“\n Besarnya belanja :”); // jumlah belanja LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
31|
scanf(“%f”,&jml_belanja); if(jml_belanja>= 100000);//menghitung diskon diskon=0.10*jml_belanja; jml_bayar=jml_belanja-diskon;//menghitung uang pembayaran printf(“\n Diskon :%10.2f”,diskon);//cetak diskon dan uang pembayaran printf(“\nUang pembayaran :%10.2f”,jml_bayar); getch(); return 0; } Contoh program struktur IF dengan sekumpulan perintah //contoh program IF sekumpulan perintah #include <stdio.h> #include main(); { int usia; clrscr(); printf(“\nBerapakah Usia Anda ? :“); scanf(“%d”,&usia); if(usia>=40) { printf(“\n Wah usia anda sudah tidak muda”); printf(“\n Sudah Sepantasnya anda mandiri”); printf(“\n Tidak merepotkan orang tua “); } getch(); return 0; } LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
32|
Pernyataan IF ELSE
Pernyataan if else sebenarnya pengembangan dari pernyataan if .disini kedua cabang, yaitu syarat dipenuhi dan syarat tidak dipenuhi , masing-masing memiliki perintah yang harus dijalankan. Seperti halnya pernyataan if , cara penulisan struktur if else juga dibedakan menjadi dua bentuk yaitu alternative dengan satu perintah atau alternative dengan banyak perintah If(syarat) { …………………perintah; …………………perintah; } else { ……………perintah; ……………perintah; } Contoh 1: Berikut ini sebuah contoh sederhana dari struktur if else yang terdiri dari sebuah perintah //contoh program 4.4 IF ELSE dengan satu perintah #include <stdio.h> #include main(); { char jawab; clrscr(); printf(“\nAnda sudah makan siang ? :”); jawab=getche(); if(jawab==’y’||jawab==’Y’); LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
33|
printf(“\nBagus”); else printf(“\nJangan membiasakan diri tidak makan siang :”); getch(); return 0; } Pernyataan Nested IF Untuk masalah-masalah yang memiliki lebih dari dua cabang.Nested if merupakan salah satu alternative yang dapat digunakan. Nested If sebenernya adlaah suatu bentuk struktur if didalam if , if yang kedua ini merupakan bagian dari if else yang pertama dibawah ini merupakan gambar diagram gambar diagram alir/ flowchart dari sebuah proses nested if
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
34|
YA
TIDAK
IF
YA YA
TIDAK
TIDAK
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
35|
Bentuk dengan sebuah perintah : If(syarat) If(syarat) …..perintah; else …..perintah; else if(syarat) ….perintah; else …….perintah; Contoh program Nested IF: /*contoh program menghitung komisi PT Kaya Raya*/ #include <stdio.h> #include main(); { float p_dtan,jasa=0,komisi=0,total; clrscr(); printf(“\n PEndapatan hari ini :”); scanf(“%f”,&p_dtan); if(p_dtan >=0 && p_dtan<=200000){ jasa=10000; komisi=0.10*p_dtan;} else if(p_dtan<=500000) jasa=20000; komisi=0.15*p_dtan; LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
36|
} else { Jasa=30000; komisi=0.2*p_dtan; } } total=komisi+jasa; printf(“\n Uang Jasa:%10.2f”,jasa); printf(“\n Komisi:%10.2f”,komisi); printf(“\n----------------------------“); printf(“\n Hasil Total :%10.2f”,total); }
Perulangan Dalam Bahasa C tersedia suatu fasilitas yang digunakan untuk melakukan proses yang berulang ulang sebanyak keinginan kita. Misalnya saja,bila kita menginginkan menginput dan mencetak bilangan satu sampai dengan 100 bahkan 1000 tentunya kita akan merasa kesulitan namun dengan struktur perulangan proses kita tidak perlu menuliskan perintah sampai 100 atau 1000 kali cukup dengan beberapa perintah saja.
Struktur perulangan dalam bahasa C mempunya bentuk yang bermacam macam STRUKTUR PERULANGAN “WHILE” Perulangan WHILE banyak digunakan pada program yang terstruktur. Perulangan ini banyak digunakan bila jumlah perulangan belum diketahui. Proses perulangan akan terus berlanjut selama kondisinya bernilai benar dan akan terhenti jika kondisinya bernilai salah
Contoh Program 1: /*Program Perulangan menggunakan WHILE*/ #include <stdio.h> #include LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
37|
void main(); { int x; x=1; while(x<=10) { printf(“%d”,Bahasa C\n”,x); x++; } getch(); } Pada perulangan while di atas , proses atau perintah mencetak kata kata “ Bahasa C “ akan terus dilakukan selama variable x masih kurang atau sama dengan 10 setiap kali melakukan perulangan nilai dari variable x akan bertambah 1
STRUKTUR PERULANGAN “DO…….WHILE….” Pada dasarnya struktru perulangan do….while… while sama saja dengan struktur while hanya saja pada proses perulangan dengan while , seleksi berada di while yang letaknya di atas sementara pada pengulangan do….while seleksi while berada di bawah batas perulangan jadi dengan menggunakan struktur do…..while sekurang kurangnya akan terjadi satu kali perulangan
Contoh program Do….while..: #include <stdio.h> #include void main(); { int x ; x=1; do { printf(“%d Bahasa C\n”,x); LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
38|
x++; } while(x<=10); getch(); }
STRUKTUR PERULANGAN “FOR” Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya. Dari segi penulsannya, struktur percabangan for tampaknya lebih efisien karena susunannya lebih simple dan sederhana. Bentuk umum perulangan for adalah sebagai berikut : for(inisialisasi;syarat;penambahan) pernyataan;
Keterangan : Inisialisasi : pernyataan yang untuk menyatakan keadaan awal dari variable control Syarat : ekspresi relasi yang menyatakan kondisi untuk keluar dari perulangan Penambahan: Pengatur perubahan nilai variable control
Contoh program FOR: /*program pengulangan menggunakan for*/ #include <stdio.h> #include void main(); { int x for(x=1;x<=10;x++) { printf(“%d Bahasa C\n”,x); LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
39|
} getch(); }
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
40|
MODUL IV ARRAY DAN FUNGSI Tujuan Mampu melakukan tugas berikut dengan menggunakan pemrograman C
Memahami struktur array Membuat fungsi dan memanggil dalam program Membuat fungsi dengan variable masukan
Array(Larik) Array merupakan kumpulan dari beberapa nilai data yang bertipe sama dalam urutan tertentu yang menggunakan nama yang sama.Letak atau posisi dari elemen array ditunjukkan oleh suatu index. Diilihat dari dimensinya array terbagi menjadi array dimensi satu, array dimensi dua dan array multi dimensi
Array dimensi satu Setiap elemen array dapat diakses melalui indeks. Indeks array secara default dimulai dari 0 Deklarasi array Bentuk umum: Tipe_array nama_array[ukuran];
Contoh : int nilai[5];
Nilai[0] 70
Nilai[1] 70
Nilai[2] 55
Nilai[3] 97
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
Nilai[4] 80
41|
Contoh Program : /*program untuk menginput nilai mahasiswa kedalam array satu dimensi*/ #include<stdio.h> #include void main(); { int index,nilai[10]; clrscr(); printf(“Input nilai 10 mahasiswa : “ ); for(index=0;index<10;index++) { printf(“Mahasiswa %i :”,index+1); scanf(“%i”,&nilai[index]); } printf(“Nilai mahasiswa yang telah diinput “); for(index=0;index<10;index++) { printf(“%5.0i”,nilai[index]); } getch(); }
CATATAN : String juga sebenarnya merupakan array yang bertipe karakter. Jumlah elemen array menyatakan jumlah string
Contoh aplikasi array satu dimensi : /*program untuk menentukan jurusan & jenjang mahasiswa berdasarkan NIM*/ LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
42|
#include<stdio.h> #include #include<string.h> void main(); { char jurusan[25],jenjang[10],nim[10],nama[20]; clrscr(); printf(“Masukkan nama anda: “ );gets(nama); printf(“Masukkan Nim anda: “);gets(nim); switch(nim[5]) { case ‘1’:strcpy(jurusan,”Teknik Elektro”);break; case ‘2’:strcpy(jurusan,”Teknik Mesin”);break; case ‘3’:strcpy(jurusan,”Teknik Informatika”);break; case ‘4’:strcpy(jurusan,”Teknik Sipil”);break; default:printf(“Anda salah memasukkan NIM.Coba Periksa Lagi!”);break; } if(nim[4]==’1’) {strcpy(jenjang,”Strata-1”); } else { if(nim[4]==’7’) {strcpy(jenjang,”Diploma-3”); } else printf(“Anda salah memasukkan NIM.Coba periksa lagi!”); } LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
43|
printf(“<< Data Mahasiswa STT-PLN>>”); printf(“Nama : %s”,nama); printf(“NIM : %s”,nim); printf(“Jurusan:%s”,jurusan); printf(“Jenjang:%s”,jenjang); getch(); }
Array dimensi dua Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah kolom. Bentuknya dapat berupa matriks atau tabel Deklarasi array: Tipe_arraynama_array[baris][kolom]; Contoh: int x[3][4]; X[0][0] X[0][1] X[0][2] X[1][0] X[1][1] X[1][2] X[2][0] X[2][1] X[2][2] LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
X[0][3] X[1][3] X[2][3] 44|
Cara Mengakses array : Untuk mengakses array,misalnya kita ingin mengisi elemen array baris 2 kolom 3 dengan 10 maka perintahnya adalah sebagai berikut: X[1][2]=10; Untuk mengisi dan menampilkan isi elemen array ada dua cara yaitu : -
Row Major Order(secara baris per baris) Column Major Order(secara kolom per kolom)
Contoh program 1: /*program menginput nilai(bilangan) ke dalam array dimensi dua dan menampilkannya*/ #include<stdio.h> #include void main(); { int baris,kolom,matriks[3][4]; clrscr(); printf(“Input Elemen Array : “ ); for(baris=0;baris<3;baris++) { for(kolom=0;kolom<4;kolom++) { printf(“Matriks[%d][%d]”,baris+1,kolom+1); scanf(“%d”,&matriks[baris][kolom]); printf(“\n”);} printf(“Isi array: \n”); for(baris=0;baris<3;baris++) { for(kolom=0;kolom<4;kolom++) { LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
45|
printf(“%d”,&matriks[baris][kolom]); } printf(“\n”); } getch(); }
Contoh Aplikasi array untuk menghitung sebuah invers suatu matriks dengan ukuran mxn dengan metode Gauss-Jordan: /*MENGHITUNG MATRIKS DENGAN METODE GAUSS-JORDAN*/ #include<stdio.h> #include void main(); { float p[20],a[20][20],t; int m,i,j,k,x; clrscr(); printf(“Masukkan ukuran matriks: \n”); scanf(“%d”,&m); printf(“\n Masukkan nilai elemen matriks yang akan diinvers); printf(“\n Secara baris per baris ); for(i=1;i<=m;i++) { printf(“\n”); for(“j=1;j<=m;j++) printf(“A[%d][%d] = “,i.j); scanf(“%f”,&a[i][j]);}} printf(“\nMatriks Asli: “); for(i=1;i<=m;i++) LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
46|
{ printf(“%.2f”,a[i][j];)} for(i=1;i<=m;i++){ p[i][=a[i][j];a[i][j]=1; for(j=1;j<=m;j++){ a[i][j]=a[i][j]/p[i];} for(k=1;k<=m;k++){ if(k!=i){t=a[k][i];a[k][i]=0; for(x=1;x<=m;x++) { a[k][x]=a[k][x]-a[i][x]*t;}}} printf(“\n\nMatriks inverse: \n”); for(i=1;i<=m;i++) { for(j=1;j<=m;j++) { printf(“%.1f”,a[i][j]); printf(“\n”); } getch(); }
Array multi dimensi Array multidimensi adalah array yang mempunyai ukuran lebih dari dua. Bentuk pendeklarasiannya sama saja dengan array dimensi satu maupun array dimensi dua. Bentuk umumnya yaitu : tipe_array nama_array[ukuran1][ukuran2]&[ukuranN]; Contoh:
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
47|
float x[2][3][4]; X[0][0][0] X[0][0][1] X[0][0][2] X[0][0][3] X[0][1][0] X[0][1][1] X[0][1][2] X[0][1][3] X[0][2][0] X[0][2][1] X[0][2][2] X[0][2][3]
X[1][0][0] X[1][0][1] X[1][0][2] X[1][0][3] X[1][1][0] X[1][1][1] X[1][1][2] X[1][1][3] X[1][2][0] X[1][2][1] X[1][2][2] X[1][2][3]
Contoh program : #include<stdio.h> #include void main(); { inti,j,k; static int data_huruf[2][8][8]= {{{1,1,1,1,1,1,1,0}, {1,1,0,0,0,0,1,0}, {1,1,0,0,0,0,0,0}, {1,1,1,1,1,1,1,0}, {0,0,0,0,1,1,1,0}, {1,0,0,0,1,1,1,0}, {1,1,1,1,1,1,1,0}, {0,0,0,0,0,0,0,0} }, {{1,1,0,0,0,1,1,0}, {1,1,0,0,0,1,1,0}, {1,1,0,0,0,1,1,0}, {1,1,1,1,1,1,1,0}, {1,1,1,0,0,1,1,0}, {1,1,1,0,0,1,1,0}, {1,1,1,0,0,1,1,0}, {0,0,0,0,0,0,0,0} }}; LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
48|
for(i=0;i<2;i++){ for(j=0;j<8;j++){ for(k=0;k<8;k++){ if(data_huruf[i][j][k]) putchar(\xDB); else putchar( ); puts( );} puts( );} getch(); }
Fungsi Fungsi merupakan suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya terpisah dari program yang memanggilnya.Fungsi merupakan elemen utama dalam bahasa C karena bahasa C sendiri terbentuk dari kumpulan fungsi fungsi. Dalam setiap program bahasa C, minimal terdapat saatu fungsi yaitu fungsi main(). Fungsi banyak diterapkan dalam program-program C yang terstruktur. Keuntungan penggunaan fungsi dalam program yaitu program akan memiliki struktur yang jelas( mempunyai readability yang tinggi) dan juga akan menghindari penulisan bagian rogram yang sama. Dalam bahasa C fungsi dapat dibagi menjadi dua,yaitu fungsi pustaka atau fungsi yang telah tersedia dalam turbo C dan fungsi yang didefinisikan atau dibuat oleh programmer.
Beberapa Fungsi pustaka dalam C Fungsi Opersai String(tersimpan dalam file string.h) -
strcpy(): berfungsi untuk menyalin suatu string asal ke variable string tujuan bentuk umum: strcpy(var_tujuan,string_asal); strlen(): berfungsi untuk memperoleh jumlah karakter dalam suatu string bentuk umum: strlen(string) strcat(): berfungsi untuk menambahkan string sumber ke bagian akhir dari string tujuan. Bentuk umum :strcat(tujuan,sumber);
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
49|
-
strupr(); digunakan untuk mengubah setap huruf dari suatu string menjadi huruf capital bentuk umum : strupr(string); strlwr(): digunakan untuk mengubah setuao huruf dari suatu string menjadi huruf kecil semua bentuk umum :strlwr(string);
Contoh Program 1: #include<stdio.h> #include #include<string.h> void main(); { char nama[25]; strcpy(nama,“Suyatno Budiharjo”); printf(“Nama : %s”,nama); printf(“Banyaknya nama anda adalah: %i”,strlen(nama)); getch(); } Contoh Program 2 : #include<Stdio.h> #include #include<string.h> void main(); { char satu[30]=”Jurusan Teknik Elektro”; char dua[30]=”Sekolah Tinggi Teknik-PLN”; LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
50|
clrscr(); strcat(satu,dua); printf(“Hasil Penggabungannya: %s\n”,satu); printf(“Jika diubah huruf capital semua : \n”); printf(“%s”,strupr(satu)); printf(“Jika diubah menjadi huruf kecil semua : \n”); printf(“%s”,strlwr(dua)); getch(); } -
strcmp(); Digunakan untuk membandingkan dua buah string . hasil dari fungsi ini bertipe integer dengan nilai: 1. Negative, jika string pertama kurang dari stirng kedua 2. Nol,jika string pertama sama dengan string kedua 3. Positif,jika string pertama lebih besar dari yang kedua Bentuk umum: strcmp(string1,string2);
Fungsi Operasi Karakter(tersimpan dalam header “ctype.h”) -
islower(): Fungsi akan menghasilkan nilai benar( bukan nol) jika karakter merupakan huruf kecil Bentuk umum: islower(char); isupper(): fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kapital bentuk umum: isupper(char); isdigit(): fungsi akan menghasilkan nilai benar(bukan nol) jika karakter merupakan sebuah digit bentuk umum : isdigit(char); tolower(): fungsi akan mengubah huruf kapital menjadi huruf kecil bentuk umum : tolower(char); toupper(): fungsi akan mengubah huruf kecil menjadi huruf capital bentuk umum: toupper(char);
Contoh Program #include<stdio.h> LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
51|
#include #include void main(); { char karakter; clrscr(); printf(“Masukkan sebuah karakter : “ ); karakter=getche(); if(isupper(karakter)) { puts(“adalah huruf besar”); printf(“huruf kecilnya adalah : %c”,tolower(karakter)); } else if(islower(karakter)) { puts(“adalah huruf kecil”); printf(“huruf besarnya adalah: %c”,toupper(karakter)); } else if(ifdigit(karakter)) { puts(“adalah karakter digit”); else puts(“bukan huruf besar,huruf kecil atau digit); getch(); }
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
52|
Fungsi Operasi Matematik(“tersimpan dalam header “math.h” dan “stdlib.h”) -
sqrt(): pow();
digunakan untuk menghitung akar dari sebuah bilangan bentuk umum : sqrt(bilangan); digunakan dalam menghitung pemangkatan dari suatu bilangan bentuk umum : pow(bilangan);
Contoh Program: #include<stdio.h> #include #include<math.h> void main(); { int x,y; float z; clrscr(); printf(“Menghitung x pangkat y\n”); printf(“x = “); scanf(“%d”,&x); printf(“y= “); scanf(“%d”,&y); printf(“%d dipangkatkan dengan %d adalah %7.2lf”,x,y,pow(x,y)); getch(); clrscr(); printf(“Menghitung akar suatu bilangan z \n”); printf(“z= “); scanf(“%f”,&z); printf(“Akar dari %f adalah %7.2lf”,z,sqrt(z)); getch(); } LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
53|
-
sin(),cos(),tan(): masing masing digunakan untuk menghitung nilai sinus ,cosines dan tangens dari suatu sudut bentuk umum : 1. sin(sudut); 2. cos(sudut); 3. tan(sudut);
Contoh Program: #include <stdio.h> #include #include<math.h> void main(); { float sudut; clrscr(); printf(“Menghitung nilai sinus,cosines,dan tangens \n”); printf(“Masukkan sudut : “); scanf(“%f”,&sudut); printf(“Nilai sinus %.2f derajat adalah %3.f”,sudut,sin(sudut)); printf(“Nilai cosinus %.2f derajat adalah %3.f”,sudut,cos(sudut)); printf(“Nilai tangens %.2f derajat adalah %3.f”,sudut,tan(sudut)); getch(); } -
atof(); atoi();
digunakan untuk mengkonversi nilai string menjadi bilangan bertipe double bentuk umum :atof(char x); digunakan untuk mengkonversi nilai string menjadi bilangan bertipe integer bentuk umum : atoi(char x);
Contoh Program #include<stdio.h> #include #include<math.h> LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
54|
void main(); { char x[4]=”100”,y[5]=”10.3”; int a; float b; clrscr(); a=atoi(x); b=atof(y); printf(“Semula A = %s B=%s/n”,x,y); printf(“Setelah dikonversi A= %i B = %.2f”,a,b); getch(); } -
-
div():
max(); min():
digunakan untuk menghitung hail pembagian dan sisa pembagian Bentuk umum: div_t div(int x,int y); Strukturnya : typedef struct {int quot; int rem; }div_t; digunakan untuk menentukan nilai maksimal dua buah bilangan bentuk umum : max(bilangan1,bilangan2); digunakan untuk menentukan bilangan terkecil dari dua buah bilangan bentuk umum : min(bilangan1,bilangan2);
Contoh Program #include<stdio.h> #include #include <stdlib.h> void main(); int x,y,z; clrscr(); printf(“Menentukan bilangan terbesar dan terkecil \n”); LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
55|
printf(“X = “); scanf(“%d”,&x); printf(“y= “); scanf(“%d”,&y); printf(“z= “ ); scanf(“%d:,&z); printf(“\nBilangan terbesar :%d”,max(max(x,y),z)); printf(“\nBilangan terkecil : %d”,min(min(x,y),z)); getch(); }
MEMBUAT FUNGSI SENDIRI Deklarasi fungsi sebelum digunakan , suatu fungsi harus dideklarasikan dan didefinisikan terlebih dahulu Bentuk umum pendeklarasian fungsi adalah : Tipe_fungsi nama_fungsi(parameter_fungsi); Sedangkan bentuk umum pendefinisian fungsi adalah: Tipe_fungsi nama_fungsi(parameter_fungsi) { Statement; Statement; ….. ….. }
Hal hal yang perlu diperhatikan dalam penggunaan fungsi:
Jikalau tipe fugnsi tidak disebutkan maka akan dianggap sebagai fungsi dengan nilai keluaran bertipe integer Untuk fungsi yang memiliki keluaran bertipe bukan integer,maka diperlukan pendefinisian penentu tipe fungsi LABORATORIUM DASAR TEKNIK ELKETRO 56| PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
Untuk fungsi yang tidak mempunyai nilai keluaran maka dimasukkan ke dalam tipe void Pernyataan yang diberikan untuk memberikan nilai akhir fungsi berupa pernyataan return Suatu fungsi dapat menghasilkan nilai balik bagi fungsi pemanggilnya
Contoh Program 1: #include<stdio.h> #include float tambah(float a,float b); void(main); { float a,b,c; clrscr(); printf(“A = “); scanf(“%f”,&a); printf(“B= “); scanf(“%f,&b); c=tambah(a,b); printf(“ A+B = %.2f”,c); getch(); } float tambah(float a,float b) { return(a+b); }
Parameter Formal dan Parameter Aktual
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
57|
Parameter Formal adalah variable yang ada pada daftar parameter dalam definisi fungsi.Parameter aktual adalah variable (parameter) yang dipakai dalam pemanggilan fungsi. Dan dalam contoh program pertambahan di atas parameter formal terdapat pada pendefinisian fungsi: float tambah(float x, float y)//parameter formal { return(a+b); } Sedangkan parameter aktual terdapat pada pemanggilan fungsi: void main(); { …… C=tambah(a,b);//parameter aktual …… }
Cara melewatkan Parameter Cara melewatkan suatu parameter dalam bahasa C ada dua cara yaitu:
Pemanggilan Secara Nilai (Call by Value) 1. Call by value akan menyalin nilai dari parameter aktual ke parameter formal 2. Yang dikirimkan ke fungsi adalah nilai dari datanya,bukan alamat memori letak dari datanya 3. Fungsi yang menerima kiriman nilai akan menyimpannya di alamat terpisah dari nilai aslinya yang digunakan oleh bagian program yang memanggil fungsi 4. Perubahan nilai di fungsi(parameter format)tidak akan merubah nilai asli di bagian program yang memanggilnya 5. Pengiriman parameter secara nilai adalah pengiriman searah,yaitu dari bagian program yang memanggil fungsi ke fungsi yang dipanggil 6. Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan tidak hanya untuk sebuah variable elemen array atau konstanta saja
Contoh Program /*program menhitung nilai factorial*/ #include<stdio.h> #include void tukar(int x,int y); void main(); LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
58|
{ int a,b; clrscr(); a=15; b=10; printf(“Nilai sebelum pemanggilan fungsi\n”); printf(“a= %i b = %i\n\n\”,a,b); tukar(a,b); printf(“Nilai setelah pemanggilan fungsi\n”); printf(“a = %i b=%i\n\n”,a,b); getch(); } void tukar(int x,int y) { int z; z=x;x=y;y=z; printf(“Nilai di akhir tukar fungsi tukar: \n”); printf(“x= %i y=%i \n\n”,x,y); }
Pemanggilan secara referensi(Call by Reference) 1. Pemanggilan secara referensi merupakan upaya untuk melewatkan alamat dari suatu variable ke dalam fungsi 2. Yang dikirimkan ke fungsi adalah alamat letak dari nilai datanya ,bukan nilai datanya 3. Fungsi yang menerima kiriman alamat ini maka menggunakan alamat yang sama untuk mendapatkan nilai datanya 4. Perubahan nilai fungsi akan merubah nilai asli di bagian program yang memanggil fungsi 5. Pengiriman parameter secara referensi adalah pengiriman dua arah yaitu dari fungsi pemanggil ke fungsi yang dipanggil dan juga sebaliknya 6. Pengiriman secara acuan tidak dapat dilakukan untuk suaatu ungkapan
Contoh program : LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
59|
/*program menhitung nilai factorial*/ #include<stdio.h> #include void tukar(int *px,int *py); void main(); { int a,b; clrscr(); a=15; b=10; printf(“Nilai sebelum pemanggilan fungsi\n”); printf(“a= %i b = %i\n\n\”,a,b); tukar(a,b); printf(“Nilai setelah pemanggilan fungsi\n”); printf(“a = %i b=%i\n\n”,a,b); getch(); } void tukar(int *px,int *py) { int z; z=*px;*px=*py;*py=z; printf(“Nilai di akhir tukar fungsi tukar: \n”); printf(“*px= %i *py=%i \n\n”,*px,*py); }
Penggolongan variable berdasarkan kelas penyimpanan(storage class)
Variabel lokal 1. Variabel lokal adalah variable yang dideklarasikan dalam fungsi 2. Sifat sifat variable lokal:
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
60|
Secara otomatis akan diciptakan ketika fungsi dipanggil akan lenyap ketika proses eksekusi terhadap fungsi berakhir Hanya dikenal oleh fungsi tempat variable dideklarasikan Tidak ada inisialisasi secara otomatis(pada saat variable diciptakan nilainya random) Dideklarasikan dengan menambahkan kata auto(opsional) Variable global (eksternal) 1. Variable global adalah variable yang dideklarasikan di luar fungsi 2. Sifat sifat variable global : Dikenal oleh semua fungsi Jika tidak diberi nilai awal secara otomatis berisi nilai nol Dideklarasikan dengan menambahkan kata extern(opsional)
Contoh Program : #include<stdio.h> #include void tampil(void); int i=25; void main(); {clrscr(); Printf(“Nilai variable I dalam fungsi main() adalah %i \n\n”); tampil(); i=i*4; printf(“\nNilai variable I dalam fungsi main sekarang adalah %i\n\n”); getch(); } void tampil(void) {int I =10; printf(“Nilai variable I dalam fungsi tampil() adalah %i \n\n”); }
Variable statis 1. Variable statis adalah variable yang nilainya tetap dan bias berupa variable (lokal internal) Dan variable global (eksternal) 2. Sifat sifat variable statis: Jika bersifat internal (lokal) maka variable hanya dikenal oleh fungsi tempat variable dideklarasian
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
61|
Jika bersifat eksternal(global), maka variable dapat dipergunakan oleh semua fungsi yang terletak pada program yang sama Nilai variable statis tidak akan hilang walau eksekusi terhadap fungsi telah berakhir Inisialisasi hanya perlu dilakukan sekali saja , yaitu pada saat fungsi dipanggil pertama kali Jika tidak diberi nilai awal secara otomatis berisi nilai nol Dideklarasikan dengan menambahkan kata static Variable register 1. Variable register adalah variable yang nilainya disimpan didalam resistor dan bukan didalam memori RAM 2. Sifat sifat variable register : Hanya dapat diterapkan pada variable lokal yang bertipe integer dan character digunakan untuk mengendalikan proses perulangan(looping) Proses perulagan akan lebih cepat karena variable register memiliki kecepatan yang lebih tinggi dibandingkan variable biasa Dideklarasikan dengan kata register
Contoh program #include<stdio.h> #include void main(); { register int x; int jumlah;clrscr; for(x=1;x<=100;x++) { jumlah =jumlah+x; printf(“1+2+3+&+100=%i\n”,jumlah); getch(); }}
Fungsi rekursif Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri Contoh program : #include<stdio.h> #include LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
62|
long int faktorial(int N); void main; { int N; printf(“Berapa factorial ? “); scanf(“%i”,&N); printf(“Faktorial dari %i=%ld\n”,N,factorial(N)); getch(); } long int faktorial(int N) { if(N==0) return(1); else return(N*faktorial(N-1); faktorial(); }
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
63|
Modul V Operasi File, Struktur dan Manipulasi Bit. TUJUAN Mampu melakukan tugas berikut dengan menggunakan Pemrograman C Memahami Operasi File, struktur dan manipulasi Bit Membaca File : membuka dan menutup file Membaca dan menulis ke dalam file Operasi File File adalah sebuah organisasi dari sejumlah record. Masing-masing record bias terdiri dari satu beberapa field.Setiap field terdiri dari satu atau beberapa byte.
MEMBUKA FILE Untuk membuka atau mengaktifkan file, fungsi yang digunakan adalah fungsi fopen(). File dapat berupa file biner atau file tesk. File biner adalah file pola penyimpanan di dalam disk dalam bentuk biner, seperti bentuk pada memori (RAM) computer . File tesk adalah file yang pola penyimpanan datanya dalam bentuk karakter . Penambahan yang perlu dilakukan untuk menentukan mode teks atau biner dalam bentuk karakter. Penambahan yang perludilakukan untuk menentukan mode teks atau biner adalah t file teks dan b untuk biner. Prototype fungsi fopen() ada di header fungsi stdio.h Bentuk umum : file *fopen(char*namafile, char *mode) Keterangan : Namafile adalah nama dari file yang akan dibuka/diaktifkan. Mode adalah jenis operasi file yang akan dilakukan terhadap file. Jenis-jenis operasi file :
r : menyarankan file hanya dapat dibaca (file harus sudah ada)
w : menyatakan file baru akan dibuat/diciptakan (file yang sudah ada akan dihapus)
a : Untuk membuka file yang sudah ada dan akan dilakukan proses penambahan data(Jika file belum ada, otomatis akan dibuat)
r+ : untuk membuka file yang sudah ada dan akan dilakukan proses pembacaan dan penulisan
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
64|
w+ : untuk membuka file dengan tujuan untuk pembacaan atau penulisan . Jika file sudah ada isinya kan dihapus.
a+ : untuk membuka file, dengan operasi yang akan dilakukan berupa perekaman maupun pembacaan. Jika file sudah ada, isinya akan dihapus Contoh : pf= fopen(“COBA.TXT”, “w”);
MENUTUP FILE Untuk menutup file, fungsi yang digunakan adalah fclose(). Prototype fungsi fclose() ada di header file stdio.h Bentuk umum : int fclose(FILE *pf); atau int fcloseall(void); MELAKSANAKAN PROSES FILE Menulis Karakter Untuk menulis sebuah karakter .bentuk yang digunakan adalah : putc(int_ch, file*fp)
Keterangan : fp adalah pointer file yang dihasilkan oleh fopen() ch adalah karakter yang akan ditulis Contoh program : #include <stdio.h> #include #define CTRL_Z 26 Void main() {file *pf; /*pointer ke file*/ char kar; if((pf=fopen(“COBA.TXT”, “w”))==NULL)/*ciptakan file*/ LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
65|
{ cputs(“File tak dapt diciptakan !\r\n”); exit(1);/*selesai*/ } while((kar=getche()) !=CTRL_Z) putc(kar, pf); /*tulis ke file*/ fclose(pf); /*tutup file*/ } Membaca Karakter Untuk membaca karakter dari file, fungsi yang digunakan adlaha : getc(file *fp); fp adalah pointer file yang dihasilkan oleh fopen(). Fungsi feof() digunakan untuk mendeteksi akhir file pada saaat membaca data. Bentuk umum yang digunakan : foef(file *fp)
Contoh program : #include <stdio.h> #include Void main() { file *pf ; /* pointer ke file*/ Char kar; If((pf = fopen(“COBA.TXT”, “r”))==NULL)/*Buka file*/ { cputs(“File tak dapat dibuka !r\n\”); exit(1); /*selesai*/ } while(kar=getc(pf)) !=EOF) putchar(kar); /*tulis ke file */ fclose(pf); /*tutup file*/ LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
66|
Membaca dan Menulis String Fungsi untuk membaca dan menulis string adalah : fgets() dan fputs() Bnetuk Umum : fgets(char *str, int p, file *fp) fputs(char *str, file *fp) Membaca dan Menulis Blok Data Fungsi untuk membaca dan menulis blok data adalah : fread() dan fwrite() Bentuk Umum : fread(void *buffer, int b_byte, int c, file *fp); fwrite(void *buffer, int b_byte, int c, file *fp); Keterangan : Buffer adalah pointer ke sebuah area di memori yang menampung data yang akan dibaca dari file. b_byte adalah banyaknya byte yang akan dibaca atau ditulis ke file c adalah banyaknya item dibaca/ditulis. Struktur Sebelum digunakan, structure harusdideklarasikan lebih dahulu. Sebagai contoh, kita akan mencoba mendeklarasikan sebuah structure untuk data mahasiswa, yang tersusun dari mana yang bertipe string, NRP juga bertipr string dan nilai yang bertipe integer. Bentuk : Struct data_mhs { char nama[20];
char nrp[5]; int nilai; }; LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
67|
Perintah diatas, hanyalah mengatur format structure serta elemen-elemen penyusunnya .Kita belum membuat variable structure itu sendiri. Untuk mendeklarasikan sebuah variable structure, maka dibawah perintah tadi harus dituliskan . Struct data_mhs mahasiswa1
Tag
Variabel struktur
Artinya variable mahasiswa1 akan terdiri dari 3 data, yaitu nama, NIM, dan nilai, sesuai dengan structure data_mhs yang telah didefinisikan sebelumnya. Tag sifatnya optional, boleh ada atau tidak . Bila pendeklarasian variable structure dilakukan bersama-sama dengan pendefinisian format structure, tag seringkali tidak digunakan. Jadi bentuk : Struct data_mhs { char nama[20]; char NRP[3]; int nilai; }; Dapat disederhanakan menjadi : Struct { char nama[20]; char NRP[3]; int nilai; } mahasiswa 1; // Untuk variable struktur lebih dari satu dipisahkan dengan koma
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
68|
Ilustrasi aplikasi yang memerlukan penggunaan struktur adalah seperti digambarkan pada gambar berikut :
NRP Q4 Q1 Q2
Nama Mamat Barok Andri
Nilai 90 90 90
Mamat Q4 90 Andri Q42 90
Contoh program : #include<stdio.h>
#include void main() { file*f_struktur; char jawaban; Struct data_pustaka { char judul[26]; char pengarang[20]; int jumlah; } buku; /*variable buku bertipe struktur*/ /*buka file*/ If((f_struktur = fopen(“DAFBUKU.DAT”, “wb”)) == NULL) /*buka file*/ { cputs(“file tak dapat diciptakan !\r\n”); exit(1); /*selesai*/ } LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
69|
do { clrscr(); cputs(“Judul Buku : “); gets(buku judul); cputs(“Nama pengarang : “); gets(buku pengarang); cputs(“Jumlah buku : “); scanf(“%i”, $buku jumlah); fflush(stdin); /*Hapus isi penampungan keyboard*/ /*Rekam sebuah data bertipe struktur*/ fwrite(&buku, sizeof(buku), 1, f_struktur); cputs(“\r\nMau merekam data lagi (Y/T) ?”); jawaban = getche(); } while(jawaban == ‘Y’ || jawaban == ‘y’); fclose(f_struktur); /*tutup file*/ }
Membaca dan Menulis File yang Terformat Jika diinginkan, data bilangan dapat disimpan ke dalam file dalam keadaan terformat. Fungsi yang digunkan adalah : fprint(ptr_file, string control, daftar argument); fscanf(pts_file, string control, daftar argument); Contoh Program : #include<stdio.h> LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
70|
#include void main() { FILE *pformat; char jawaban; structur{int x; int y; } koordinat; /*Buka dan ciptakan file . Periksa kalau gagal dibuka*/ if((pformat = fopen(“KOORDINAT.TXT”, “w”) == NULL)/*buka*/ { cputs(“File tak dapat dibuka !\r\n”); exit(1); /*selesai*/ } do { clrscr(); cputs(“Masukkan data koordinat (bilangan integer)\r\n”); cputs(“Format : posisi x posisi y\r\n”); cputs(“Contoh : 20 30[ENTER}\r\n”); scanf(“%i %i”, &koordinat .x, &koordinat.y); fflush(stdin); /*Rekam ke File*/ fprintf(pformat, “%5i %5i\n”, koordinat.x, koordinat.y); cputs(“\r\nMenyimpan data lagi (Y/T) ??”); jawaban = getche(); } while(jawaban == ‘y’ || jawaban == ‘Y’); fclose(pformat); getch(); } LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
71|
FILE SEQUENSIAL File sequensial berisi record-record data yang tidak mengenal posisi atau nomor record pada saat aksesnya , dan setiap record dapat mempunyai lebar yang berbeda-beda . Akses terhadapnya selalu dimulai dari awal file dan berjalan satu persatu menuju akhir file. Dengan demikian penambahan file hanya dapat dilakukan terhadap akhir file, dan akses terhadap baris tertentu harus dimulai dari awal file.Fungsi baku terkait dengan sequensial ini antara lain adalah fprintf,fscanf, dan rewind. Program berikut menyajikan penanganan file sequensial tentang data nasabah yang berisi tiga field, yaitu nomor identitas (account), nama (name), dan posisi tabungannya (balance) untuk (1)menyajikan yang tabungannya bernilai nol, (2) berstatus kredit, dan (3)berstatus debet. File data tersimpan dengan nama klient.dat
Contoh Program : #include<stdio.h> void main() { int request ,account;float balance; char name[25]; FILE*cfPtr; if ((cfPtr=fopen(“klient.dat”,”r+”))==NULL) printf(“File could not be opened\n”); else { printf(“Enter request \n “1-List accounts with zero balance\n” “2-List accounts with credit balance\n” “3-List accounts with debit balance\n” “4-End of run\n?”); scanf(“%d”,&request) ; while(request !=4) { fscanf(cfPtr,”%d%s%f”,&account , name,&balance); switch (request) { case 1: printf(“\nAccounts with zero balances:\n”); while(!feof(cfPtr)) { if(balance==0) printf(“%-10d%-13s7.2f\n”,account,name,balance); fscanf(cfPtr,”%d%s%f”,&account , name, balance);} break;
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
72|
case 2: printf(“\nAccounts with credit balances:\n”); while(!feof(cfPtr)) { if(balance<0) printf(“%-10d%-13s7.2f\n”,account,name,balance); fscanf(cfPtr,”%d%s%f”,&account , name, balance); } break; case 3: printf(“\nAccounts with debit balances:\n”); while(!feof(cfPtr)) { if(balance>0) printf(“%-10d%-13s7.2f\n”,account,name,balance); fscanf(cfPtr,”%d%s%f”,&account , name, balance); } break; } rewind(cfPtr); printf(“\n?”); scanf(“%d”,&request); } printf (“End of run \n”); fclose (cfPtr); } }
OPERATOR BITWISE Bahasa C menyediakan kemampuan untuk memanipulasi bit (Binary Integer). Seluruh data ditampilkan oleh computer merupakan representasi dari kumpulan bit. Setiap bit dapat diasumsikan dengan nilai 0 atau dengan nilai 1 .Pada kebanyakan system, gabungan dari 8 bit menggambarkan nilai byte yaitu standarisasi untuk sebuah unit penyimpanan pada variable yang memiliki type data char. Tipe data yang lainnya dismpan dengan jumlah byte yang lebih besar. Operator bitwise digunakan untuk memanipulasi bit-bit dari operand integral(char,short,int,dan long ,termasuk signed dan unsigned). Operator-operator Bitwise OPERATOR &
NAMA Bitwise AND
!
Bitwise OR
^
Exlusive OR
<<
Geser Kiri
DESKRIPSI Nilai bit didalam hasil diubah menjadi 1 jika bit didalam kedua operand adalah bernilai 1 Nilai bit didalam hasil diubah menjadi 1 jika salah satu atau kedua bit didalam kedua operand adalah bernilai 1 Nilai bit dalam hasil diubah menjadi 1 jika hanya salah satu bit didalam kedua operand adalah bernilai 1. Geser ke kiri bit dari operand pertama dengan bit yang ditentukan operand bit kedua, isi dengan bit 0 dari sebelah
LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
73|
>>
Geser Kanan
~
Kompenen Bitwise
kanan. Geser kekanan Bit dari Operand pertama dengan bit yang ditentukan oleh operand kedua. Seluruh bit 0 diubah menjadi 1 dan seluruh bit 1 diubah mejadi nol.
Contoh Program operator Bitwise : // Program konversi dari decimal #include<stdio.h> #include void dectobin (unsigned nilai) { const int Shift=8*sizeof (unsigned)-1; const unsigned mask=1<<Shift; unsigned c; printf(“%7u=”,nilai; for(c=1;c<=Shift;c++) { putchar (nilai&mask?’1’:’0’); nilai<<=1; if(c%8==0)putchar(‘ ‘); } putchar(“\n”);} void main () { Unsigned number; Number=5;clrscr(); dectobin(number); getch (); } KONSTANTA ENUMERASI Enumerasi adalah sebuah kumpulan konstanta integer yang direpresentasikan dengan simbol. Pendeklarasian enumerasi dimulai dengan kata enum dan dilanjutkan dengan nama type. Nilai dari konstanta enumerasi dimulai dari nol, kecuali jika ditentukan terlebih dahulu, dan akan selalu bertambah 1. Simbol-simbol di dalam enum harus unik tetapi, beberapa konstanta dapat memiliki nilai sama. salah satu contoh enumerasi : Enam bulan {JAN=1,FEB,MAR,APR,MEI,JUN,JUL,AGUS,SEP,OKT,NOV,DEC} Pada contoh tersebut akan didefinisikan tipe bulan dengan konstanta enumerasi yang menggambarkan bulan pada sebuah tahun. Nilai awal dari konstanta enumerasi tersebut dimulai dari 1 , dan nilai-nilai selanjutnya akan ditambahkan dengan 1, maka hasilnya 1 sampai 12 . LABORATORIUM DASAR TEKNIK ELKETRO PROGRAM APLIKASI KOMPUTER SEKOLAH TINGGI TEKNIK PLN
74|