Selasa, 01 November 2016 0 komentar

Operator Dalam Bahasa C

Sebelum mengenal operator, kita harus tahu apa itu operasi. Operasi adalah suatu proses yang dikerjakan oleh program untuk melakukan tindakan tertentu pada suatu nilai. Operasi selalu melibatkan operand dan operator. Operand adalah suatu nilai yang dioperasikan sedangkan operator sebagai pelaku operasi tersebut. Yang akan coba aku jelaskan di sini adalah mengenai operator dalam bahasa C.

Operator dalam bahasa C memiliki hirarki (tingkatan) prioritas di pengerjaannya dalam sebuah program. Aku akan jelaskan mulai dari hirarki tertinggi. Artinya mulai dari operator yang paling diprioritaskan oleh program.

1. Operator Tanda Kurung => ( )
Operator ini mengelompokkan proses operasi yang dikerjakan terlebih dahulu. Sama halnya dengan tanda kurung pada operasi matematika biasa. Namun berbeda dengan kurung siku ([ ]), kurung siku digunakan untuk menyatakan array.


2. Operator Unary => !, ~, -, ++, --, &, *
! : Operasi negasi (kebalikan).
~ : Negasi pada bitwise (berhubungan dengan bilangan biner).
- : Menyatakan nilai negatif.
++ : Increment (penambahan). Operand ditambah dengan angka 1.
-- : Decrement (pengurangan). Operand dikurang dengan angka 1.
& : Digunakan untuk mengetahui alamat memori suatu variabel.
* : Digunakan untuk mengetahui nilai suatu pointer pada alamat memori.

3. Operator Aritmatika => *, /, %, +, -
* : Digunakan untuk operasi perkalian.
/ : Digunakan untuk operasi pembagian.
+ : Digunakan untuk operasi penjumlahan.
- : Digunakan untuk operasi pengurangan.
% : Digunakan untuk operasi modulus (sisa pembagian).

4. Operator Bitwise => >>, << Operator ini digunakan untuk memanipulasi nilai bit. Contoh: 9>>2 hasilnya adalah 2. Bagaimana bisa begitu? Mari kita lihat pengoperasiannya dalam bilangan biner.

9 => 0000000000001001

9>>2 maksudnya nilai biner pada angka 9 digeser 2 digit ke kanan.

2 digit 0 ditambahkan di sebelah kiri (00)=> 00000000000010(01) => 2 digit sebelah kanan dihilangkan

hasilnya: 0000000000000010 => ini adalah angka biner dari 2

Jika kamu bingung, mungkin kamu perlu belajar cara mengkonversikan angka desimal ke biner dan sebaliknya.

5. Operator Perbandingan => >, <, >=, <= Operator ini berhubungan dengan penentuan nilai TRUE dan FALSE. > : lebih besar dari
< : lebih kecil dari >= : lebih besar dari atau sama dengan
<= : lebih kecil dari atau sama dengan 6. Operator Persamaan dan pertidaksamaan => ==, !=
Operator ini juga berhubungan dengan penentuan nilai TRUE dan FALSE
== : sama dengan
!= : tidak sama dengan

7. Operator Logika => &&, ||
Operator ini digunakan dalam pengkondisian/if.
&& : and (dan)
|| : or (atau)

8. Operator Assigment
= : sama dengan
*= : nilai operand 1 di awal dikalikan dengan nilai operand 2
+= : nilai operand 1 di awal dijumlahkan dengan nilai operand 2
-= : nilai operand 1 di awal dikurangi dengan nilai operand 2

Biar ga bingung akan coba kuberi contoh:
Misalnya dalam program kita menginisialisasikan variabel a=7. Ini artinya variabel a diisi dengan angka 7.

int a=7; => Ini berarti variabel a sekarang bernilai 7.

a*=2; => Operasi ini sama halnya dengan operasi a=a*2. Cara mengoperasikannya adalah a=7*2. Jadi nilai a sekarang adalah 14.

Ok, itu aja untuk operator dalam bahasa C. Mungkin dalam pemrograman bahasa lain, kamu akan menemukan simbol operator yang berbeda dengan operator dalam bahasa C. Tapi tenang, hanya simbolnya yang berbeda, arti dan penggunaannya tetap sama. Misalnya untuk menyatakan "tidak sama dengan" dalam bahasa C kamu menggunakan "!=", dalam bahasa Pascal menggunakan "<>".
Senin, 24 Oktober 2016 0 komentar

TIPE DATA

A. Pengertian Tipe Data
Tipe data biasanya digunakan untuk menentukan jenis nilai yang dapat ditampung oleh suatu variabel, umumnya telah menyediakan tipe-tipe data yang sederhana (simple) maupun yang terstruktur. Apabila kita membutuhkan tipe data yang belum tersedia, kita dapat mendefinisikan sendiri tipe data baru yang disebut enumerated type



A. Tipe Data Dasar (Basic)

Tipe data dasar dalam bahasa C dikelompokan ke dalam 2 tipe, yaitu tipe integer dan tipe floating-point.

1. Tipe Integer

Tipe integer (tipe bilangan bulat) adalah suatu tipe data yang digunakan untuk menyimpan nilai-nilai yang berbentuk bilangan bulat (bilangan yang tidak mengandung koma), misalnya 5, 10, 100 dan sebagainya. Namun perlu diperhatikan juga bahwa bilangan bulat juga dikelompokkan lagi menjadi 2 jenis, yaitu bilangan bulat positif dan negatif. Untuk itu di dalam bahasa C tipe bilangan bulat juga dibedakan lagi menjadi beberapa macam dengan rentang nilai tertentu. Adapun yang termasuk ke dalam tipe bilangan bulat di dalam bahasa C adalah seperti yang terlihat pada tabel berikut.
TipeUkuranRentang
char1 byte-128 sampai 127 atau 0 sampai 255
unsigned char1 byte0 sampai 255
signed char1 byte-128 sampai 127
int2 atau 4 byte-32,768 sampai 32,767 atau -2,147,483,658 sampai 2,147,483,647
unsigned int2 atau 4 byte0 sampai 65,535 atau 0 sampai 4,294,967,295
short2 byte-32,768 sampai 32,767
unsigned short2 byte0 sampai 65,535
long4 byte-2,147,483,648 sampai 2,147,483,647
unsigned long4 byte0 sampai 4,294,967,295
Dalam tipe integer untuk mendapatkan ukuran yang tepat dari tipe atau variable pada platformtertentu, kita dapat menggunakan operator sizeof. Ekspresi sizeof(tipe) menghasilkan ukuran penyimpanan objek atau tipe dalam byte.

Contoh :

#include <stdio.h>#include <limits.h>

int main() {

    printf("Ukuran penyimpanan pada tipe int adalah : %d \n", sizeof(int));
    scanf("%d");
    return 0;

}

2. Tipe Floating-Point

Tipe floating-point (tipe bilangan riil) adalah tipe data yang digunakan untuk menyimpan nilai-nilai bilangan riil (bilangan yang mengandung koma), misalnya 2.12, 2.24, 5.96 dan sebagainya. Adapun yang termasuk ke dalam tipe tersebut adalah seperti yang tertera pada tabel di bawah ini.
TipeUkuranRentangPresisi
float4 byte1.2E-38 sampai 3.4E+386 angka dibelakang koma
double8 byte2.3E-308 sampai 1.7E+30815 angka dibelakang koma
long double10 byte3.4E-4932 sampai 1.1E+493219 angka dibelakang koma
Dalam tipe floating-point, file header "float.h" mendefinisikan macro yang memungkinkan kita untuk menggunakan nilai-nilai dan rincian lainnya tentang representasi biner dari bilangan riil dalam program yang kita buat.

Contoh :

#include <stdio.h>#include <float.h>

int main() {

    printf("Ukuran penyimpanan tipe float adalah : %d \n", sizeof(float));
    printf("Minimal nilai positif tipe float adalah : %E \n", FLT_MIN);
    printf("Maksimal nilai positif tipe float adalah : %E \n", FLT_MAX);
    printf("Nilai presisinya adalah : %d \n", FLT_DIG);
    scanf("%d");
    return 0;
}


B. Tipe Data Enumerated

Tipe data enumerated (enumerasi) adalah tipe data yang dideklarasikan oleh user. Tipe ini mendeklarasikan variabel yang hanya bisa diberi nilai salah satu dari nilai yang sudah dideklarasikan didalam brace ({})/semicolon ( ; ). berikut syntax deklarasi nilai pada tipe dataenumerated:


enum identifier {nilai1, nilai2 ... nilain};


Setelah mendeklarasikan nilai-nilai yang akan diaplikasikan, selanjutnya mendeklarasikan variabel-variabel yang akan diberi nilai-nilai tersebut, syntaxnya adalah:


enum identifier variabel1, varabel2, variabel3, ... variabeln;


Variabel variabel1, variabel2 s.d variabeln hanya dapat diberi salah satu dari nilai nilai1, nilai2, s.dnilain.

Contoh :

#include <stdio.h>

main()
{

enum hari {Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu};
enum hari hari_pertama, hari_terakhir;
hari_pertama = Senin;
hari_terakhir = Minggu;
printf("Hari Pertama = %d\n", hari_pertama);
printf("Hari Terakhir = %d\n", hari_terakhir);
scanf("%d");

}


C. Tipe Data Void

Tipe data void merupakan tipe data tidak bertipe dan memiliki jumlah bit sebanyak 0 bit. Biasanya digunakan saat pendeklarasian fungsi. Tipe data ini biasanya digunakan dalam tiga jenis situasi, yaitu:

1. Fungsi return sebagai void

Ada berbagai fungsi di C yang tidak mengembalikan nilai apapun atau bisa disebut juga "kembali ke 0". fungsi yang tidak mengembalikan nilai memiliki jenis return sebagai void.

Format Penulisan :

void exit (int status);

Contoh Penulisan :

#include <stdio.h>#include <stdlib.h>

int main ()
{

printf("Memulai Program....\n");

printf("Keluar Program....\n");
scanf("%d");
exit(0);

printf("Akhir dari program....\n");
scanf("%d");

return(0);

}

2. Fungsi arguments sebagai void

Ada berbagai fungsi di C yang tidak menerima parameter (arguments) apapun. Sebuah fungsi tanpa parameter dapat menerima void.

Format Penulisan :

int rand(void);

Contoh Penulisan :

#include <stdio.h>#include <stdlib.h>

int main()
{

int i, n;
time_t t;

n = 5;

srand((unsigned) time(&t));

for( i = 0 ; i < n ; i++ )
{
   printf("%d\n", rand() % 50);
}
scanf("%d");

return(0);

}

3. Pointer ke void

Sebuah pointer tipe void * merupakan alamat dari sebuah objek, tetapi tidak bertipe. Sebagai contoh, fungsi alokasi memori void *malloc(size_t size); mengembalikan pointer ke void yang dapat diisi untuk semua jenis data.

Format Penulisan :

void *malloc(size_t size);

Contoh Penulisan :

#include <stdio.h>#include <stdlib.h>

int main()
{

   char *str;

   str = (char *) malloc(15);
   strcpy(str, "pointopoin");
   printf("String = %s,  Alamat = %u\n", str, str);

   str = (char *) realloc(str, 25);
   strcat(str, ".com");
   printf("String = %s,  Alamat = %u\n", str, str);

   free(str);
   scanf("%d");

   return(0);

}


D. Tipe Data Derived

Tipe data derived terbagi menjadi 5 bagian, yaitu tipe pointer, tipe array, tipe struktur, tipe uniondan tipe fungsi.

1. Tipe Pointer

Tipe pointer merupakan variabel khusus yang berisi suatu alamat (address) di lokasi lain di dalam memori. Suatu variabel yang menunjuk (points) ke suatu tipe data disebut sebagai pointer.

Contoh :

#include <stdio.h>#include <stdlib.h>

int main()
{

int beratBadan = 78 ;
int *contohPointer ;
contohPointer = &beratBadan;
printf("Berat badan = %d", contohPointer);
scanf("%d");

}

2. Tipe Array

Tipe Array adalah tipe data yang sudah terstruktur dengan baik meskipun tipe data ini masih sederhana. Array mampu menyimpan sejumlah data dengan tipe yang sama dalam sebuah variabel.

Contoh :

#include <stdio.h>
int main () {

   int n[ 10 ];
   int i,j;

   for ( i = 0; i < 10; i++ ) {
      n[ i ] = i + 100;
   }

   for (j = 0; j < 10; j++ ) {
      printf("Array[%d] = %d\n", j, n[j] );
   }
   scanf("%d");

   return 0;

}

3. Tipe Struktur

Tipe Struktur adalah tipe data yang dapat melakukan penyimpanan beberapa data yang saling terkait (seperti Nama, NRP, Alamat), sebagai suatu kesatuan, sehingga data-data tersebut seakan-akan menjadi suatu data tunggal.

Contoh :

#include <stdio.h>#include <string.h>

struct nilai_mahasiswa {
   int  nim;
   char  nama[50];
   int nilai;
};

int main( ) {

   struct nilai_mahasiswa nilai1;
   struct nilai_mahasiswa nilai2;

   nilai1.nim = 653789081;
   strcpy( nilai1.nama, "Denis Julianto");
   nilai1.nilai = 90;

   nilai2.nim = 653789082;
   strcpy( nilai2.nama, "Raizal Dzil Wafa");
   nilai2.nilai = 95;

   printf( "NIM : %d\n", nilai1.nim);
   printf( "NAMA : %s\n", nilai1.nama);
   printf( "NILAI : %d\n", nilai1.nilai);

   printf( "\n============================\n\n" );

   printf( "NIM : %d\n", nilai2.nim);
   printf( "NAMA : %s\n", nilai2.nama);
   printf( "NILAI : %d\n", nilai2.nilai);
   scanf("%d");
   return 0;

}

4. Tipe Union

Tipe union adalah tipe data khusus yang tersedia di C. Tipe ini memungkinkan untuk menyimpan berbagai jenis data di lokasi memori yang sama.

Contoh :

#include <stdio.h>#include <string.h>

union Data {

   int i;
   float f;
   char str[20];

};

int main( ) {

   union Data data;

   printf( "Ukuran Memori yang ditempati oleh sebuah data adalah : %d ", sizeof(data));
   printf( "byte\n");
   scanf("%d");

   return 0;

}

5. Tipe Fungsi

Fungsi adalah blok perintah yang digunakan untuk melakukan pekerjaan tertentu yang diletakkan diluar prosedur utama. Blok perintah ini dapat digunakan berulang-ulang kali dengan memanggil namanya dan parameter yang dibutuhkan.

Format Penulisan :

int jumlah(int,int) ;

Contoh Penulisan :

#include <stdio.h>

int jumlah(int nilai1, int nilai2);
int main () {

   int a = 100;
   int b = 200;
   int hasil;

   hasil = a+b;

   printf( "Hasil dari 100 + 200 adalah : %d\n", hasil );
   scanf("%d");

   return 0;

}
 
;