Tuesday, December 18, 2018

Sorting And Searching

Sorting and Searching

1. Sorting

Sorting adalah mengurutkan sesuatu nilai baik dari yang terbesar ke yang terkecil ataupun sebaliknya.
Ada tipe-tipe dari sorting yaitu :
a. Bubble Sort
    Bubble sort membandingkan dua nilai yang bersebelahan dan menukarkannya jika perlu. 

b. Selection Sort



c. Insertion Sort


d. Quick Sort



e. Merge Sort 

2. Searching

Searching yaitu mencari suatu nilai dari data-data yang dimiliki. Ada tipe-tipe dari searching yaitu:
a. Linear Search



b. Binary Search



c. Interpolation Search 
 
 
Nama : Anglie Yanto
BINUSIAN 2022

File Processing in C

File dan Streams

Ketika sebuah program C berjalan, ada 3 streams standar yang aktif;
1. Standard Input Stream : Stream yang mengontrol input stream dari keyboard
2. Standard Output Stream : Stream yang mengontrol output stream ke monitor
3. Standard Error Stream : Stream yang mengontrol pesan-pesan error

Ada 2 tipe file dalam sebuah file processing, yaitu:
1. Text File
    Text File adalah file yang disimpan dalam format text. Besar dari penyimpanan tergantung dari data tersebut. Text File ini dapat dibuka menggunakan aplikasi text editor yang standar.
2. Binary File
    Binary File adalah file yang menyimpan data numerik dalam format yang ditempelkan sesuai dengan definisi format mikro-prosesor.

Buffer Area
Buffer area adalah bagian dari memori yang digunakan sebagai ruang sementara sebelum data dipindahkan ke file. 
Syntax : 
        FILE *fp;
fp disyntax tersebut sebagai penunjuk (pointer) untuk memulai area buffer (area penyangga) .

Open File
Untuk membuka sebuah file perlu digunakan fopen();
Syntax :
       FILE *fp  = fopen (const char *filename, const char *mode);

Mode-mode yang dapat digunakan : 
- "r"       digunakan untuk membuka suatu file untuk dibaca

- "w"      digunakan untuk membuat suatu file baru untuk ditulis

- "a"       digunakan untuk membuka suatu file dan menambahkan sesuatu ke file tersebut
- "r+"     digunakan untuk membuka file untuk dibaca/ditulis

- "w+"    digunakan untuk membuat file untuk dibaca/ditulis

- "a+"     digunakan untuk membuka file untuk dibaca/ditambahkan

- "rb"     digunakan untuk membuka file binary untuk dibaca

- "wb"    digunakan untuk membuat suatu file binary untuk menulis sebuah operator


Close File
Untuk menutup sebuah file perlu digunakan fclose();
Syntax :
       int fclose(FILE *stream);
 fclose() akan merilis area buffer dan segera mengirim data yang tersisa ke file.

Input dan Output File
  • fgetc (Input) => membaca satu karakter dari file
           Syntax :
                  int fgetc(FILE *stream);
  • fgets (Input) => membaca satu kalimat dari file yang diakhiri dengan kalimat baru
           Syntax :
                  char *fgets(char *string, int n ,FILE *stream);

  • fscanf (Input) => membaca data dari file dengan format scanf
           Syntax :
                  fscanf(FILE *stream, const char *format [argument]...);

  • fputc (Output) => menulis satu karakter kedalam file
           Syntax :
                  int fputc(FILE *stream);

  • fputs (Output) => menulis kalimat kedalam file
           Syntax :
                  int fputs(char *string, int n ,FILE *stream);

  • fprintf (Output) => menulis data kedalam file dengan format printf
           Syntax :
                  fprintf(FILE *stream, const char *format [argument]...);
  • feof => mencari apabila pointer mencapai akhir dari sebuah file, apabila sudah mencapai akhir dari sebuah file maka akan return 0; .
            Syntax: 
                  int feof(FILE *stream);
  • fwrite => menulis blok data di area buffer ke file
            Syntax: 
                  size_t fwrite(void * buffer, size_t size, size_t count , FILE * stream);
  • fread => membaca ukuran blok data dari file
            Syntax: 
                  size_t fread (void * buffer, size_t size, count size_t, FILE * stream);

Contoh penggunaan syntax dari fwrite:
          fwrite (& mhs, sizeof (mhs), 1, fp);

     & mhs = lokasi asal data
     sizeof (mhs) = kembalikan ukuran mhs
     1 => satu kali menulis sizeof (mhs)
     fp = file pointer
 

Tuesday, October 23, 2018

Pointer and Array

Pointer and Array

     a.       Pointer
Pointer adalah variabel yang menyimpan alamat dari variabel lain.
Syntax :
<type> *ptr_name;
Ada 2 operator yang biasa digunakan didalam pointer yaitu “*” sebagai konten dari dan “&” sebagai alamat dari.
Contoh :
                int i, *ptr;
                i = 10;
                ptr = &i;
maka nilai dari variabel pointer tersebut adalah 10. Untuk memberikan nilai baru untuk variabel i, maka:
                *ptr=5; // ini berarti i =5
     b.      Pointer to Pointer
Pointer to pointer adalah variabel yang menyimpan alamat dari pointer lain.
Syntax:
                <type>**ptr_ptr;
Contoh :
int i, *ptr, **ptr_ptr;
i = 10;
ptr = &i;
ptr_ptr = &ptr;
maka nilai dari ptr dan ptr_ptr adalah 10. Untuk memberikan nilai baru untuk variabel i, maka:
                *ptr = 5;                                               // artinya i=5
                **ptr_ptr = 9;                                    // artinya i=9, atau *ptr=9

ARRAY
Array digunakan untuk menyimpan nilai dengan menggunakan variabel yang sama tetapi menggunakan index yang berbeda. Karakteristik dari array yaitu :
     1.       Homogenus : artinya semua elemen memiliki tipe data yang sama
     2.       Aksesnya Random : artinya setiap elemen dapat dipanggil secara individual, tidak secara berurutan.
a.      Array 1 dimensi
Syntax :
type array_value [value_dim];

dalam array terdapat 4 komponen yaitu :
-          Data type
-          Nama dari array / identifier
-          Operator Index ([ ])
-          Nilai index didalam operatornya [ ]
Elemen dari sebuah array, indexnya selalu dimulai dari 0. Array dapat di inisialisaikan secara langsung, contohnya :
int B[ ]={1, 2, 3, -4};
maka B[0]=1, B[1]=2, B[2]=3, B[3]=-4.
Jika misalnya:
                int B[6]= {1, 2, 3, -4};
maka B[0]=1, B[1]=2, B[2]=3, B[3]=-4, B[4]=0, B[5]=0, B[6]=0.
Ada beberapa kesalahan-kesalahan yang sering terjadi saat melakukan inisialisasi array yang dapat menyebabkan error misalnya:
a.       int B[6]= {1, 2, 3, -4, 5, -2, 9, 10};
Ini merupakan suatu kesalahan ketika melakukan inisialisasi pada array karena index yang dimiliki array hanya 6 dan yang ditampung sebanyak 8.

b.      int B[6];
B[6]= {1, 2, 3, -4, 5, -2};
         Cara mengakses array :
                Misalkan elemen i =3, maka
                                *(A+3) atau A[3]
                                Untuk memprint A[3] dimonitor yaitu :
                                printf(“%d”,A[3]);  atau printf(“%d”,*(A+3));
b.       Array 2 dimensi
Syntax dari array 2 dimensi :
       type name_array[row][col];
Contoh dari array 2 dimensi:
1.       int a[3][4];
2.       int b[3][4] = { {1,2,3,4} , {5,6,7,8} };
c.       Array 3 dimensi
Syntax dari array 3 dimensi:
       type name_array[row][col][dept];
Contoh dari array 3 dimensi :
1.       int a[3][4][5];
2.       int  b[3][2][4]={ {{1,2,3,4} , {5,6,7,8}} ,{{9,10,11,12} , {13,14,15,16}} , {{17,18,19,20} , {21,22,23,23}} };
d.      Array of Pointer
Syntax dari array of pointer:
       type *array_name [value_dim];
Contoh :
       int i;
       int *ptr[4];
       int x=1, y=2, z=3, a=5;
       ptr[0]=&x; ptr[1]=&y; ptr[2]=&xz ptr[3]=&a;
       for(i=0; i<4; i++){
                printf(“%d”,*ptr[i]);
       }

Maka outputnya = 1 2 3 5
e.      Array of Character
Array of charater adalah array yang isinya berupa karakter
Syntax dari array of character:
                    char array_name [value_dim]; 
           Contoh: 
            char nama [40];
        char huruf[ ]={‘A’, ’B’, ’C’, ’D’};
f.        String
String adalah array of character yang diakhiri dengan null character atau “\0”
Contoh :
       char nama[40] = “Wakeso”;
       char s[ ]= “BINUS”;
       char s[ ]= {‘O’,  ‘L’, ‘A’, ‘H’, ‘\0’};
Standard Library dari sting yaitu <string.h> yang isi dari library ini dapat berupa :
-          strlen() => untuk menghitung panjang string sampai ketemu “\n”
-          strcpy(s1,s2) => untuk mengcopy s2 ke s1
-          stncpy(s1,s2,n) => untuk mengcopy s2 ke s1 sebanyak n character
-          strcat(s1,s2) => untuk menambah s2 diakhir dari s1
-          strncat(s1,s2,n) => untuk menambah s2 diakhir dari s1 sebanyak n character
-          strcmp(s1,s2) => membandingkan nilai dari string s1 dan s1, jika sama maka hasilnya sama dengan 0.
-          strstr(s1,s2) => untuk mengcek apakah s2 terdapat di s1 atau tidak
-          dan sebagainya.