PERTEMUAN 3 Algoritma & Pemrograman Presented by : Sity Aisyah, M.Kom Email : dryesha@gmail.com Blog : yeshasalsabila.blogspot.com 1
MENGENAL OPERATOR Operator 2 + 3 Ekspresi Operand Operand Ditinjau dari jumlah operand yang dilibatkan dalam sebuah operator terdapat 3 macam operator. Operator Unary, yaitu operator yg hanya melibatkan sebuah operand. Contoh : +1 -1 2
Operator Binary, yaitu operator yg hanya melibatkan 2 buah operand. Contoh : 2 + 3 5 > 3 Operator Tertiary, yaitu operator yg hanya melibatkan 3 buah operand. Contoh : a > b ? 1 : 0 Ekspresi di atas berarti “jika a lebih besar drpd b maka ekspresi menghasilkan nilai 1, sedangkan kalau tidak maka ekspresi menghasilkan nilai 0”. ? : adalah sebuah operator. 3
Berdasarkan kelompok kegunaan, operator dapat dibagi menjadi sbb : Operator Aritmetika Digunakan untuk melakukan perhitungan aritmetika. Berikut daftar operator aritmetika : Operator Prioritas Keterangan Contoh - 1 Unary minus -1 + Unary plus +1 * 2 Perkalian 2 * 3 6 2 * 3.0 6.0 / Pembagian 7 / 2 3 7 / 2.0 3.5 7.0 / 2 3.5 % Sisa Pembagian 7 % 2 1 3 Penjumlahan 2 + 3 5 2 + 3.0 3.0 Pengurangan 3 – 1 2 3 – 1.0 2.0 4
Tabel 1. Fungsi-fungsi Aritmetika Berkas header math.h menyediakan prototipe sejumlah fungsi yg terkait dg operasi aritmetika. Tabel 1. Fungsi-fungsi Aritmetika Fungsi Keterangan sqrt(x) Memberikan nilai balik berupa akar x. Nilai balik bertipe double & argumen juga bertipe double. pow(x,y) Memberikan nilai balik berupa xy. Nilai balik bertipe double & argumen juga bertipe double. tan(x) Memberikan nilai balik berupa tangent x. Argumen x berupa nilai dalam satuan radians. Nilai balik bertipe double & argumen juga bertipe double. sin(x) Memberikan nilai balik berupa sinus x. Argumen x berupa nilai dalam satuan radians. Nilai balik bertipe double & argumen juga bertipe double. cos(x) Memberikan nilai balik berupa cosinus x. Argumen x berupa nilai dalam satuan radians. Nilai balik bertipe double & argumen juga bertipe double. log(x) Memberikan nilai balik berupa loge x. Nilai balik bertipe double & argumen juga bertipe double. 5
Berikut contoh notasi matematika dan penulisan rumus pada C dan C++ : Fungsi Keterangan log10(x) Memberikan nilai balik berupa log10 x. Nilai balik bertipe double & argumen juga bertipe double. cabs(x,y) Memberikan nilai balik berupa nilai absolut x. Nilai balik bertipe int & argumen juga bertipe int. fabs(x) Memberikan nilai balik berupa nilai absolut x. Nilai balik bertipe double & argumen juga bertipe double. Berikut contoh notasi matematika dan penulisan rumus pada C dan C++ : Notasi Matematika Ekspresi C dan C++ ax2 + bx + c a * x * x + b * x + c √𝒃 sqrt(b) 𝟑 𝒃 pow(b, 1.0/3) 𝒂+𝒃 𝒄+𝒅 (a + b) / (c + d) 𝒃 𝟐 −𝟒𝒂𝒄 sqrt(b * b – 4 * a * c) 6
Notasi Matematika Ekspresi C dan C++ a + 𝒃 |𝒎 −𝒏| a + b / fabs(m – n) log10 m log10(m) loge(m+n) log(m + n) 𝒆𝒙+𝒚 𝒙+𝒚 exp(x + y) / (x + y) 7
Operator Pembanding/Relasional Digunakan untuk melakukan perbandingan terhadap dua buah nilai. Operator Keterangan > Lebih dari >= Lebih dari atau sama dengan < Kurang dari <= Kurang dari atau sama dengan != Tidak sama dengan == Sama dengan Berikut contoh pemakaian operator pembanding : Pada data bertipe karakter, pembandingan didasarkan pada nilai ASCII dari karakter yg dibandingkan. Misalnya, nilai ASCII A adalah 65,nilai ASCII B adalah 66, dan nilai ASCII a berupa 97. Operator pembanding hanya dpt dipakai untuk tipe dasar, tidak dpt digunakan untuk string. Ekspresi Hasil 5 > 1 1 (benar) 4 <= 3 0 (salah) ‘A’ > ‘B’ ‘A’ < ‘a’ 8
kar >= ‘A’ && kar <= ‘Z’ kode == ‘a’ || kode == ‘A’ Operator Logika Digunakan untuk membentuk suatu ekspresi pembandingan dari satu atau dua buah ekspresi pembandingan. Operator Keterangan && Operator “dan” || Operator “atau” ! Operator “bukan” Berikut contoh pemakaian operator logika: Ekspresi Keterangan kar >= ‘A’ && kar <= ‘Z’ Hasil berupa benar hanya kalau kar berupa huruf kapital. kode == ‘a’ || kode == ‘A’ Hasil berupa benar hanya kalau kode berupa huruf a atau A. ! (kar == ‘A’) Hasil berupa benar hanya kalau kar tidak berupa huruf A. 9
Digunakan untuk memanipulasi string Operator String Digunakan untuk memanipulasi string Operator Keterangan + concatenation, menggabung len menghitung panjang string Substr substring, mencuplik 10
KOMENTAR PROGRAM Komentar program hanya diperlukan untuk memudahkan pembacaan dan pemahaman 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). 11
MENGENAL TIPE STRUCT Di dalam C dan C++ terdapat tipe struct yg dpt dipakai untuk menghimpun sejumlah data dg tipe yg berbeda-beda. Data yg diletakkan dalam sebuah struct adalah data yg terkait. Sebagai contoh, dimungkinkan untuk membuat tipe struct yg mengandung data NIP, nama pegawai, dan gaji. Pendefinisiannya adalah seperti berikut : struct data_pegawai { int nip; char nama[25]; long int gaji; } ; Untuk mengakses suatu field, notasi seperti berikut digunakan : Variabel_struct.nama_field 12
LIBRARY DALAM BAHASA C Keywords dan Library Functions dalam Bahasa C/C++. Perhatikan dua contoh program C yang tujuannya menginput dua buah nilai kemudian mencetak total nilai, sebagai berikut : #include <stdio.h> void main() { int A, B, T; scanf("%i", &A); scanf("%i", &B); T = A + B; scanf("%i", &T); } Diantara banyak sekian kata yang digunakan dalam suatu bahasa pemograman ada yang disebut keyword (kata kunci) dan ada yang digunakan untuk function (fungsi). Include sendiri bukan merupakan keyword, tapi suatu instruksi yang diberikan untuk compiler agar menyertakan (include) library function yang terdapat dalam suatu file yang disediakan oleh bahasa C. 13
a. Keyword dalam bahasa C auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while Keywords tambahan dalam Turbo C Selain keywords yanga da pada ANSI C, Turbo C menambah beberapa keywords yaitu: asm cdecl far huge interupt near pascal 14
b. Library Functions dan Library Macroes dalam Turbo C Keywords tambahan dalam C++ Selain keywords yanga da pada ANSI C, Turbo C, C++ menambah beberapa keywords yaitu: asm class delete friend inline new operator private protected public template this virtual b. Library Functions dan Library Macroes dalam Turbo C (Fungsi-fungsi Pustaka dan Makro-makro Pustaka) Bahasa C menyiapkan banyak fungsi. Setiap fungsi terdiri dari banyak instruksi yang sulit dipahami. Karena sulit dipahami maka Bahasa C menyiapkannya untuk pemakai. Karena telah disiapkan maka fungsi tersebut disebut Library Function (fungsi pustaka). Salah satu fungsi yang sudah diperkenalkan diatas adalah fungsi mencetak ke layar monitor yaitu fungsi printf(). Fungsi-fungsi tersebut dikelompokkan menurut jenis dan sifatnya, dan disimpan dalam sebuah file yang berekstensi h. Sebagai contoh, fungsi-fungsi yang berguna untuk input dan output standard, disimpan dalam file stdio.h. 15
1. Dalam stdio.h 2. Dalam math.h 16 Library Functions Library Macroes clearerr() fclose() fccloseall() fdopen() fflush() fgetc() fgetchar() fgetpos() fgets() flushall() fopen() fprint() fputc() fputchar() fputs() fread() free() freopen() fscan() fseek() fsetpos() ftell() fwrite() gets() getw() perror() printf() puts() putw() rename() rewind() scanf() unlink() typedef union unsigned void volatile while 2. Dalam math.h Library Functions abs() acosh() asin() atan() atan2() atof() ceil() cos() cosh() exp() fabs() floor() fmod() labs() ldexp() log() log10() pow() sin() sinh() sqrt() tan() tanh() 16
3. Dalam stdlib.h 4. Dalam string.h 5. Dalam conio.h 17 Library Functions Library Macroes abs() atof() atoi() atol() div() exit() free() ldiv() malloc() rand() srand() system() abs(x) atoi(s) random(sum) randomize() 4. Dalam string.h strcpy() strcat() strchr() strcmp() strlen() 5. Dalam conio.h clrscr() getch() getche() gotoxy() khbit() putch() 17
6. Dalam io.h 7. Dalam ctype.h 18 Library Functions access() _close() _creat() eof() filelength() _ope() open() _read() read() _write() write() 7. Dalam ctype.h Library Functions Library Macroes stlower() toupper() isalnum(c) isalpha(c) isascii(c) iscntrl(c) isdigit( c) isgraph(c) islower(c) isprint(c) ispuncts(c) isspace(c) isupper(c) isxdigit(c) toascii(c) _tolower(c) _toupper( c) 18
MENAMPILKAN INFORMASI KE LAYAR Pada Bahasa C Selain fungsi printf() terdapat 2 fungsi penting yg berguna untuk menampilkan keluarann yaitu puts() dan putchar(). puts() berguna untuk menampilkan string. Dengan sendirinya fungsi ini menambahkan karakter newline (pindah baris). putchar() berguna untuk menampilkan sebuah karakter tanpa menambahkan karakter newline (pindah baris). Kedua fungsi ini berada pada berkas header stdio.h. Contoh : puts(“Algoritma”); // menampilkan string putschar(‘A’); // menampilkan karakter A 19
Penentu format pada printf Kode Keterangan %u Menampilkan bilangan bulat tak bertanda %d atau %i Menampilkan bilangan bulat bertanda %o Menampilkan bilangan bulat tak bertanda dalam bentuk sistem oktal (sistem bilangan berbasis 8) %x Menampilkan bilangan bulat tak bertanda dalam bentuk sistem heksadesimal (sistem bilangan berbasis 16). Huruf dinyatakan dalam huruf kecil. %X Menampilkan bilangan bulat tak bertanda dalam bentuk sistem heksadesimal (sistem bilangan berbasis 16). Huruf dinyatakan dalam huruf kapital. %f Menampilkan bilangan real dengan notasi : dddd.dddddd %e atau %E Menampilkan bilangan real dalam bentuk notasi sains %g atau %G Menampilkan bilangan real dalam bentuk seperti %f atau %E tergantung pada keperesisian data %% Menyatakan simbol % l (huruf L kecil) Awalan yg digunakan untuk menyatakan long int atau double. Contoh %ld untuk long int atau %lf untuk double. 20
Pada Bahasa C++ Pada C++, cout dapat digunakan untuk menampilkan tipe data apa saja dg bentuk yg sederhana. Contoh : cout << “Algoritma”; // menampilkan string cout << ‘A’ ; // menampilkan karakter A Untuk keperluan pemformatan data pada keluaran, C++ menyediakan sejumlah manipulator, al : hex : untuk menampilkan bilangan dalam bentuk heksadesimal oct : untuk menampilkan bilangan dalam bentuk oktal setw(n) : untuk menentukan lebar tampilan sebanyak n karakter setfill(karakter) : untuk menambahkan karakter pada bagian ruang yg ditentukan oleh setw yg normalnya tidak berisi karakter apapun. setprecision (n) : untuk menentukan jumlah d igit pecahan. 21
MENGENAL OPERASI MASUKAN Fungsi scanf() Secara umum C menyediakan fungsi bernama scanf() yg terdapat pada header stdio.h untuk pemasukan data dari keyboard. Fungsi ini dapat dipakai untuk pemasukan berbagai tipe data. Bentuk penggunaannya : Scanf(“string kontrol”,argumen); Dalam hal ini “string kontrol” dapat berupa : Penentu format Karakter spasi putih ( karakter newlinem spasi, dan tab) Karakter bukan spasi putih 22
Penentu format pada scanf Kode Keterangan %c Data yg dibaca berupa sebuah karakter %s Data yg dibaca berupa string %i atau %d Data yg dibaca berupa sebuah biloangan bulat %e atau %f Data yg dibaca berupa sebuah bilangan real %u Data yg dibaca berupa sebuah bilangan bulat tak bertanda l (huruf L kecil) Awalan yg digunakan untuk menyatakan long int atau double. Contoh %ld untuk long int atau %lf untuk double. 23
Pada Bahasa C++ Fungsi gets() Pada C++, cin dapat digunakan untuk membaca data dari keyboard dan berlaku untuk sembarang tipe data. Bentuk penggunaannya : cin >> namaVariabel Fungsi gets() C menyediakan fungsi gets() yg berguna untuk memasukkan data string dari keyboard. Fungsi gets() membaca seluruh karakter yg dimasukkan dari keyboard sampai tombol Enter ditekan. Oleh karena itu harus dipastikan bahwa ukuran variabel string harus mampu menmyimpan seluruh karakter dalam string plus 1 (yg digunakan untuk menyimpan karakter NULL). 24
Thank You 25