Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : 

  

Pertemuan 04 Pemrograman Dasar 2012 Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :

  

  Memahami tentang proses sederhana (simple

process) berupa pemanggilan procedure (fungsi)

dan ekspresi serta dapat menerapkannya dalam

algorithma ataupun pemrograman dengan bahasa

pemrograman C.

  

  Proses Sederhana (Simple Statement)

  

  Ekspresi

  

  Operator Penugasan (assignment)

  

  Operator Logika

  

  Operator Aritmetika

  

  Operator Relasional

  

  Operator Bitwise

   Dikatakan proses sederhana karena dipandang sebagai proses yang hanya mempunyai sebuah aliran masukan dan sebuah aliran keluaran.

  

Proses sederhana dalam pemrograman komputer terdiri dari:

  • Pemanggilan procedure atau fungsi
  • Perhitungan arithmatika atau logika

   Dalam flow-chart digambarkan sbb.:

  Aliran Masukan Aliran Masukan

  Proc_name() Proses atau

  Aliran Keluaran Aliran Keluaran

  Pemanggilan procedure/fungsi Perhitungan Arithmatika/Logika

   Ekspresi merupakan proses sederhana dalam pemrogram- an komputer untuk melakukan proses perhitungan arithmatika dan logika.

   Prinsip dasar perhitungan arithmatika dan logika dalam pemrograman komputer adalah melakukan perhitungan arithmatika atau logika kemudian hasilnya disimpan dalam variabel tertentu. Dalam flowchart digambarkan sbb.:

  Dalam C Var  perhitungan A/L Ekspresi

   Contoh:

  Dlm bhs pemrograman C dapat ditulis: c  c + 1 c=c+1; atau c+=1; atau ++c; atau c++;

  

Artinya (dibaca) nilai data dari variabel c ditambah dengan 1

hasilnya disimpan ke dalam variabel c.

   Tidak boleh:

  Karena tidak ada proses penyimpanan c + 1 dari hasil perhitungan dari c+1 ke variabel

   Komponen utama ekspresi adalah operand dan operator. 

  

Operand dapat berupa variabel, konstanta, nilai data konstan

maupun fungsi. Setiap operand harus memiliki nilai data.

   Operator adalah simbol yang mengolah nilai pada operand dan menghasilkan satu nilai baru.

   Dalam pemrograman komputer penulisan perhitungan arithmatika/logika TIDAK BOLEH BERTINGKAT . Contoh:

  Untuk itu setiap operator memiliki xy yz

   presedensi (hirarki) dan assosiativitas. x

   xy yz

  

  

  Didasarkan atas jumlah operand, operator dapat dibedakan menjadi tiga jenis, yaitu :

  • Unary operator
  • Binary operator
  • Ternary operator

  

  Unary operator memerlukan 1 operand, binary operator memerlukan 2 operand, sedangkan ternary operator memerlukan 3 operand.

  

Berdasarkan jenis operasinya, operator dalam bahasa pemrograman C dapat dikelompokkan :

  • Operator Penugasan (assignment operator)
  • Operator Logika
  • Operator Aritmatika
  • Operator Relasional
  • Operator Bitwise
  • Operator Pointer

  

  Termasuk Binary operator

  

  Digunakan untuk memberikan nilai kepada suatu Operand. Sintak sbb: operand1 operator operand2;

  

  Operand1 harus berupa variabel, sedangkan operand2

dapat sebarang operand termasuk variabel dari operand1.

  

  Urutan pengerjaan (assosiativitas) operator penugasan dari kanan ke kiri.

  

  Contoh x = 2; // konstanta x = y; // variabel lain x = 2 * y; // ekspresi a = sin (y); // fungsi

  

  Tipe hasil operasi disesuaikan dengan tipe operand sebelah kiri. int x = 7/2; /*nilai x sama dgn 3 */ float y = 3; /*nilai y sama dengan 3.000 */

  

  Digunakan untuk melakukan operasi matematika

Simbol Fungsi Contoh

  Penambahan x = y + 6; + Pengurangan y = x

  • Perkalian *
    • – 5;

  y = y * 3; / Pembagian z = x/y; % Modulo A = 10 % 3; B= 3 % 10;

  Increment x++; ++ Decrement z--; -- () Menaikan Priority x=(2+3)*5

  

  Modulo:

  • Simbol : %
  • Termasuk Binary operator
  • Untuk menghitung sisa hasil bagi
  • n % 2, dapat digunakan untuk menguji apakah integer n

  bernilai genap atau ganjil  n % 2 = 0  n GENAP  n % 2 = 1  n GANJIL

  

  Increment dan Decrement:

  • Simbol : ++(increment), --(decrement)
  • Termasuk unary operator
  • Menaikkan (++) dan menurunkan (--) nilai variabel dengan 1

  • Posisinya bisa di depan (pre) atau dibelakang (post) variabel

  

  Contoh: N++; //post increment

  • N; //pre increment N--; //post decrement
    • N; //pre decrement

  

  Jika statement increment stand alone. Maka N++; atau

  • N; sama artinya N=N+1;

  

  Jika statement decrement stand alone. Maka N--; atau -

  • N; sama artinya N=N-1;

  

Contoh:

  #include <stdio.h> int main () { int x = 44; int y = 44;

  • ++x;

  printf (”x = %d\n”, x); /* hasilnya 45 */ y++; printf (”y = %d\n”, y);

  /* hasilnya 45 */ }

   Jika ++n dan n++ sebagai statement yang terikat dalam ekspresi lainnya (sub expresi), keduanya mempunyai arti yang berbeda.

  

  • n -> n ditambah 1, baru diproses terhadap ekspresinya

   n++ -> n langsung diproses terhadap ekspresinya tanpa ditambah 1 terlebih dahulu, pada saat selesai baru n ditambah 1 int main () { int x=44; int y = 44; int z; z = ++x; /* z, x nilainya 45 */ z = y++; /* z nilainya 44 dan y nilainya 45 */ return(0); }

   Setiap ekspesi yang berbentuk :

  <Variabel> = <Variabel> <Operator><Exp>; dapat diganti dengan :

  <Variabel> <Operator> = <Exp>;  Operator ini sering disebut dengan Combined Operator.

Ekspresi Dapat diganti dengan

  a = a + b; a += b; a = a a -= b;

  • – b; a = a * b; a *= b; a = a / b; a /= b; a = a % b; a %= b; a = a ^ b ; a ^= b;

  Contoh soal : x *= y +1; artinya sama dengan :

  A. x = x * (y + 1); B. x = x * y + 1;

  C. x = x + 1 * y;

  D. x = (x + 1) * y; Jawab:

  A

  

  Digunakan untuk membandingkan dua nilai, dan hasilnya TRUE atau FALSE

Simbol Fungsi

  = = Sama Dengan != Tidak Sama Dengan < Lebih Kecil Dari > Lebih Besar Dari

  <= Lebih Kecil atau Sama Dengan >= Lebih Besar atau Sama Dengan ?: Conditional assignment

  

  TRUE dalam bahasa pemrograman C nilainya Tidak sama dengan NOL

  

  FALSE dalam bahasa pemrograman C nilainya sama dengan NOL

  

  Sedangkan nilai TRUE yang diset oleh program C saat run time nilainya sama dengan 1.

  

  Contoh: int x; x = (20 > 10); //nilai x sama dgn 1 x = (20 == 10); //nilai x sama dgn 0

  

Contoh :

  #include<stdio.h> int main() { int x=5,y=6; if ( x == y) printf("%d sama dengan %d\n",x,y); if ( x != y) printf("%d tidak sama dengan %d\n",x,y); if ( x < y) printf("%d lebih kecil daripada %d\n",x,y); if ( x > y) printf("%d lebih besar daripada %d\n",x,y); if ( x <= y) printf("%d lebih kecil atau sama dengan %d\n",x,y);

if ( x >= y) printf("%d lebih besar atau sama dengan %d\n",x,y);

return(0);

  }

  

  Conditional expression menggunakan ternary operator ?:

  

  Sintak : exp1 ? exp2 : exp3;

  • Jika exp1 bernilai true, maka exp2 dieksekusi. Sebaliknya jika exp1 bernilai false, maka exp3 dieksekusi.

  

  Contoh yang sama artinya dgn statement diatas: z = (a > b) ? a : b;

Jika (a>b) bernilai benar maka z=a. Sebaliknya jika (a>b)

bernilai salah maka z=b.

Contoh:

  #include <stdio.h> #include <iostream.h> int main () { int bil, abs; printf("Menentukan nilai absolut\n\n"); printf("Masukkan bilangan integer: "); scanf("%d",&bil); abs = (bil >= 0) ? bil : - bil; printf("Nilai absolutnya adalah : %d \n\n",abs); system("PAUSE"); return(0); }

  

  Digunakan untuk melakukan operasi logika

Simbol Fungsi

  && AND || OR ! NOT

  

  Table Kebenaran operator logika:

A B !A A && B A || B

  True True False True True True False False False True False True True False True False False True False False

   Operand pada operator logika harus mempunyai nilai boolean, yaitu TRUE atau FALSE. Meskipun dalam bahasa C/C++ nilai TRUE dinyatakan dalam bentuk nilai integer yang tidak sama dengan nol (0) dan sebaliknya nilai FALSE dinyatakan dalam bentuk nilai integer yang sama dengan nol (0), tetapi nilai data integer tidak dibolehkan sbg operand dari operator logika.

  

Contoh:

  int x=5; int y=0, a , b; a = x && y; //error (hasil yg salah) b = (x > y) && (y>=0); //ok

Simbol Fungsi Contoh

  & AND A & B | OR A | B; ^

  XOR A ^ B; ~ Complement 1 ~A; >> Shift Right A >> 3; << Shift Left B << 2;

  

  Operasinya dilakukan bit per bit

  

  Contoh: a=24 Binernya: 011000 b=35 Binernya: 100011 int a=24; int b=35; int c;

  (a&b) per bit hasilnya : c = a & b; //nilai c = 0

  000000 desimalnya 0 c = a | b; //nilai c = 59

  (a | b) per bit hasilnya : 111011 desimalnya 59

  

  Dua buah bit di-XOR-kan akan menghasilkan 1 jika kedua bit tersebut berbeda, dan akan menghasilkan 0 jika kedua bit tersebut sama.

  

  Contoh: Desimal 45 binernya: 0101101 Desimal 75 binernya: 1001011 Kemudian bit per bit di XOR kan maka hasilnya: 1100110 atau (102 desimal). int A,B=45; A=B^75; //Nilai A=102

  

  Dengan menggunakan operator komplemen (~), maka setiap bit bernilai 0 akan dirubah menjadi 1 dan sebaliknya.

  

  Contoh: int A, B=0xC3; A=~B; //nilai A=0x3C;

  Catatan: Penulisan bilangan hexadesimal pada bhs pemrograman C menggunakan awalan 0x atau 0X (nol-X).

  0xC3 binernya: 1100 0011 Di-komplemenkan hasilnya: 0011 1100 atau dlm notasi hexadecimal menjadi 3C

   Operator shift-right (>> n) dapat dipergunakan untuk

menggeser n bit ke kanan dan diberi nilai 0 (nol) sejumlah n

bit dari paling kiri yang ditinggalkan.

   Operator shift-left (<< n) dapat dipergunakan untuk menggeser n bit ke kiri dan diberi nilai 0 (nol) sejumlah n bit dari paling kanan yang ditinggalkan.

  

  Contoh: Catatan: int A, B=78;

  78 binernya: 00100 1110 A = B>>3; //nilai A=9

  Geser kekanan 3 bit: 000001001 = 9

A = B<<2; //nilai A=312 Geser kekiri 2 bit : 010011000 = 312

  

  Pointer operator terdiri dari :

  • & (address of)
  • (value of)

   Presedensi menentukan urutan pengerjaan operator berdasarkan prioritas. Operator yang memiliki tingkat presedensi lebih tinggi akan dikerjakan lebih dahulu.

   Assosiativitas menentukan urutan pengerjaan operator berdasarkan lokasinya dalam sebuah ekspresi (apakah dari kiri atau dari kanan).

   Assosiativitas berlaku untuk operator-operator yang memiliki presedensi yang sama.

  • -> Pointer ke anggota struktur atau kelas Kiri-Kanan . Anggota struktur, union atau kelas Kiri-Kanan
    • ++ Pre-increment
      • -- Pre-decrement

  Kanan-Kiri

  delete Dealokasi memori

  Kanan-Kiri

  new Alokasi memori

  Kanan-Kiri

  sizeof Ukuran tipe data

  Kanan-Kiri

  (type) Type casting

  Kanan-Kiri

  Kanan-Kiri

  & Alamat

  Kanan-Kiri

  Komplemen Bitwise Kanan-Kiri

  ~

  Kanan-Kiri

  ! Logika not

  Kanan-Kiri

  • - Unary minus
    • + Unary plus
      • * Indirection

  3 Kanan-Kiri

  Operator Unary

  Kiri-Kanan

  [] Elemen array

  2 Kiri-Kanan

  () Kurung

  1 Kiri-Kanan Kurung, indeks larik dan elemen struktur data

  Resolusi Lingkup :: Resolusi Lingkup

  Kanan-Kiri

  • * Perkalian

  Operator aritmatika

  / Pembagian

  4 Kiri-Kanan perkalian

  % Sisa Pembagian

  Penambahan + Operator penambahan

  5 Kiri-Kanan Pengurangan -

  << Geser Kiri

  Pergeseran bit

  6 Kiri-Kanan

  >> Geser Kanan < Lebih kecil <= Lebih kecil sama dg

  Operator Relational

  7 Kiri-Kanan

  > Lebih besar >= Lebih besar sama dg == Sama dengan

  Operator Relational

  8 Kiri-Kanan

  != Tidak sama dengan & Bitwise AND

  9 Operator Bitwise ^ Bitwise XOR

  10 Kiri-Kanan

  | Bitwise OR

  11

  && Logika AND

  12 Operator Logika Kiri-Kanan

  || Logika OR

  13 Operator Ternary ?: Operator kondisi

  14 Kanan-Kiri

  =, +=, -=,

  Operator penugasan arithmatika Operator Penugasan *=, /=, %=

  15 Kanan-Kiri Majemuk

  &=, ^=, |=,

  Operator penugasan bitwise

  <<=, >>=

  Operator koma , Operator Koma

  16 Kiri-Kanan

  

  Contoh:

  

  Ditulis dalam bhs pemrograman C:  x = (x * y + y * z)/(x * y – y * z); yz xy yz xy x

    

  1

  2

  3

  4

  5

  6

  7

  8

  #include <stdio.h> #include <iostream.h> int main () { int a, b, z=100; float x, y; printf("Melihat pengaruh prioritas dan urutan pengerjaan\n\n"); printf("Masukkan sebarang nilai integer: "); scanf("%d",&a); x = a/3*3; y = a*3/3; z += b = a; printf("\n\nx = %d/3*3, diperoleh x = %f\n\n",a,x); printf("y = %d*3/3, diperoleh y = %f\n\n",a,y); printf("bila z=100, maka untuk z += b = %d diperoleh z = %d\n\n\n",a,z); system("PAUSE"); return(0); }

  

  Jika semua variabel bertipe integer, maka tentukan nilai A sbb: B=23; C=12; D=32; E=0; 1.

  A = B && E; 2. A = B & C;

  3. A = C || D;

  4. A = B | D; 5.

  A = B > 2; 6. A = B >> 2; 7. A = C < 3;

  8. A = C << 3;

  9. A = B = C; 10.

  A = B == C;

  

  Sebutkan contoh operator yang termasuk :

  1. Unary Operator

  2. Binary Operator

  3. Ternary Operator

  

  Sebutkan beberapa operator yang bisa berfungsi sebagai unary dan binary operator, dan berikan contohnya.

  #include <stdio.h> int main() { int x=10, y=6; x *= 5 + y; y += y &= x; printf (“x = %d\ny = %d",x,y); return(0); }

  Apakah keluaran yang akan ditampilkan di layar monitor bila program di atas berhasil dieksekusi ?

  #include <stdio.h> #include <iostream.h> int main () { float x; x = 7/2; printf("x = %f\n",x); x = 7.0/2; printf("x = %f\n",x); x = 7/2.0; printf("x = %f\n",x); x = 7.0/2.0; printf("x = %f\n",x); x = (float)7/2; printf("x = %f\n\n\n",x); system("PAUSE"); return(0); }

  Bagaimanakah hasil keluaran yang ditampilkan di layar monitor dari program di atas?, Jelaskan?

  #include <stdio.h> #include <iostream.h> int main () { int y=33, x=45; y = y && x; printf("y = %d\n",y); y = y & x; printf("y = %d\n",y); y = y || x; printf("y = %d\n",y); y = y | x; printf("y = %d\n",y); y &= y = x; printf("y = %d\n",y); y ^= y = x; printf("y = %d\n",y); system("PAUSE"); return(0);

  } Apakah keluaran yang akan ditampilkan di layar monitor bila program di atas berhasil dieksekusi ?

  #include <stdio.h> #include <iostream.h> int main () { int y, n; n =10; y=++n; printf("y = %d\n",y); n =10; y=n++ printf("y = %d\n",y); n =10; n++ printf("n = %d\n",n); system("PAUSE"); return(0); }

  Apakah keluaran yang akan ditampilkan di layar monitor bila program di atas berhasil dieksekusi ? z = (n > 0) ? f : b; Perhatikan conditional expression diatas, bolehkah sekiranya variabel f dan b memiliki tipe data yang berbeda?

Dokumen yang terkait

Dampak penggunaan internet dalam penyelesaian tugas perkuliahan mahasiswa di jurusan pendidikan agama islam fitk uin sumatera utara - Repository UIN Sumatera Utara

1 6 82

Dampak penggunaan internet dalam penyelesaian tugas perkuliahan mahasiswa di jurusan pendidikan agama islam fitk uin sumatera utara - Repository UIN Sumatera Utara

0 2 79

BAB II LANDASAN TEORI A. Gaya Belajar Mahasiswa Tahfidz AlQuran 1. Pengertian Gaya Belajar - Gaya belajar mahasiswa tahfidz alquran dalam meraih prestasi akademik di prodi pendidikan agama islam universitas islam negeri sumatera utara medan - Repository U

1 2 41

BAB IV TEMUAN PENELITIAN DAN PEMBAHASAN A. Temuan Umum 1. Sejarah Berdirinya PAI - Gaya belajar mahasiswa tahfidz alquran dalam meraih prestasi akademik di prodi pendidikan agama islam universitas islam negeri sumatera utara medan - Repository UIN Sumater

1 13 36

BAB II KAJIAN PUSTAKA A. Konsep Perkembangbiakan Generatif Pada Tumbuhan - Perkembangbiakan Generatif Pada Tumbuhan Pdf

0 4 20

1. Pendahuluan: Tubuh tumbuhan terdiri atas banyak sel, sel-sel itu pada tempat tertentu - Macam Macam Jaringan Pada Tumbuhan •

1 5 19

BAB 8 SEJARAH NABI MUHAMMAD : KERASULANNYA UNTUK SEMUA MANUSIA DAN BANGSA - 08 sejarah Nabi Muhammad 1

1 1 6

Peserta : MADRASAH IBTIDAIYAH Tempat NO NAMA MAPEL NAMA LEMBAGA JADWAL

0 6 10

Editor : Eko Haryanto Abu Ziyad

0 0 8

4. Jika peserta yang lolos seleksi tidak mengirim pernyataan konfirmasi kehadiran, maka akan digantikan oleh peserta cadangan (sesuai dengan urutan nomor). 5. Peserta dan pendamping diwajibkan melakukan registrasi dan pengambilan perlengkapan di lokasi ko

0 2 8