Selasa, 18 Desember 2018

File Processing

File adalah koleksi dari data yang terdiri dari field di dalam field ada byte dan di slm byte terdapat bit.

Text file saved di ascii field.
Syntax:
File *fp=fopen("nama_file","mode_value");
Fp merupakan tmpt menyimpan file(dipanggilnya)

Fopen untuk buka file , if error kembali ke 0.
Possible mode value:
Paling sering dipakai ialah
r = read file yang akan dibuka
r+ /w+ = bisa read dan write sekaligus
a+ = bisa read dan append sekaligus
w= write file / edit file.
a= append file

Setelah file di open dengan fopen (fp).

File harus di close dgn fclose(fp).

input output file:
INPUT:
fgets
fscanf
fread
3 sytax diatas untuk read isi dari file biasa dibantu oleh feof
OUTPUT
fwrite
fputs
fprintf
3 diatas untuk mencetak data dalam file.

foef=untuk mencaritahu apakah didalam file masih ada data atau tidak.apabila iya masih ada data maka return 0.


Dalam read file harus ada file yang akan di read terlebih dahulu untuk dapat membaca isi dalam file . Selain itu kita juga membutuhkan struct apabila ingin menampilkan file dalam layar compiler . Struct adalah kumpulan data dari berbagai jenis data type.

Contoh untuk read file dengan fuction dan menggunakan struct data.
void readFile(){
FILE *fp =fopen("test.txt","r");

while(!feof(fp)){
fscanf(fp,"%[^#]#%d",data[count].name,data[count].age);
count++;
}
fclose(fp);
}

contoh algoritma write file dengan menggunakan fuction dan struct.
void writeFile(){
FILE *fp=fopen("test.txt","w");//w=write,r=read,a=append,w+,r+,a+
for(int i=0;i<count;i++){
fprintf(fp,"%s#%d\n",data[i].name,data[i].age);
}
fclose(fp);
}

nim:2201732185
nama:claudia ananthio
claudia.ananthio@binus.ac.id
skyconnectiva.com

Minggu, 16 Desember 2018

Fuction dan Recursive

Fuction
Fuction adalah kumpulan statement yang dapat digunakan berkali kali dengan fungsi masing masing . Fuction merupakan suatu modul yang fungsional terdiri dari 2 jenis yaitu void dan int

Perbedaan void dan int ialah :

Void tidak dapat return value(nilai).
Int dapat mengembalikan nilai yang telah di proses dalam fungsi.

tedaapat passing parameter dalam fuction yaitu ;
passing by value :langsung dengan mengembalikan atau memanggil dengan nilainya dengan memiliki variable masing masing;
 syntax: void test(int tanggal){}
               di dalam int main(){

                   test(angka);
}
passing by reference : menggunakan address dalam memasukan parameter.
syntax: void test(int *age);
                didalam int main(){

                    test(&age);


}

Contoh :




Recursive
Recursive ialah fungsi yang dapat memanggil fungsinya sendiri.

Recursive memiliki kemiripan seperti looping hanya saja memakan lebih banyak memory dari pada melakukan cara iteratif atau yang biasa disebut looping for biasa

Contoh:

nim:2201732185
nama:claudia ananthio
claudia.ananthio@binus.ac.id
skyconnectiva.com

SORTING & SEARCHING

Sorting adalah menyusun suatu data dengan cara ascending ataupun secara descending .

Sorthing memiliki beberapa jenis yaitu:
Easy:
Bubble sort
Selection sort
Insertion sort

Intermediete:
Quick sort
Merge sort

Bubble sort
Babble sort merupakan sorting yang menggunakan temporary dan mengurutkan angka dengan membandingkan angka sekarang dan selanjutnya jika lebih besar angka sekarang maka:
Temporary =angka sekarang
Angka sekarang = angka selanjutnya
Angka selanjutnya = temporary
contoh bubble sort:

void bubblesort(){
for (int i=0;i<count;i++){
for (int j=0;j<count-1;j++){
if(data[j].age > data[j+1].age){
Data temp =data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
}
}
}

Selection search
membadingan angka pertama dengan setelahnya jika menemukan angka yang lebih kecil maka ia akan mengganti anga tersebut menjadi pembanding apabila data telah habis dan angka pembanding merupakan angka terkecil maka ia akan di letakan paling depan apa bila diurutkan secara ascending.
for(i=0; i<N-1; i++){      /* N=number of data */
Set idx_smallest equal to i
for(j=i+1; j<N; j++){
If array[ j ] < array [ idx_smallest ] then idx_smallest = j
    }
Swap array[ i ] with array[ idx_smallest ]
}



Insertion sort
Membandingkan dengan 1 angka saja dan menyelipkan angka tersebut apabila angka tersebut lebih kecil dari pada angka setelahnya , dan apabila sudah mendapatkan tempat dalam suatu array dia akan mengambil angka lain sebagai patokan lain untuk dibandingan . Diulang terus menerut sampai dengan urutan arrray telah tersusun.
contoh algoritmanya:

for(i=1; i<n; i++) {
   x = A[i], insert x to its suitable place between A[0] and A[i-1].
}




source :binusmaya
Intermediete sort:
Quick sort
memilih 1 angka sebagai patokan dan membandingkan angka yang lebih kecil dengan angka tersebut apabila angka tersebut lebih kecil maka di pindahkan ke array selanjutnya setelah angka patokan diawal , apabila data telah habis dan tidak ada angka yang lebih kecil lagi maka masukan angka tersebut ke tempat setelah angka yang telah urut dibandingkan tadi dan mengambil angka baru sebagai patokan lakukan hal yang sama sampai data terurut.

Merge sort
Membagi urutan array menjadi lebih kecil dan mengurutkan satu persatu apabila sudah urut pada bagian kecil , melanjutkan ke bagian yg selanjutnya diurutkan kembali dan jika semua sudah terurut maka diurutkan dari tiap bagian satu persatu sampai semua array tersusun.

Searching 
Sesuatu yang unik yangakan mempermudah saat mencari data dalam suatu array.

3 jenis search
Linear search
Binary search
Interpolation search


Linear seach
Mencari data lebih cepat dan mudah jika data sudah urut

Binary search

Data harus sudah terurut dan membagi 2 data ditengah apabila lebih besar dibandingkan degan angka yang di tengah maka data berada di sebelah kanan dan apabila lebih kecil dibandingkan yang di tengah maka data ada di sebelah kiri.maka dicari satu satu tiap datanya jika tidak dapat di temukan maka data tidak ada

Interpolation seach

interpolation search memiliki rumus seperti diatas,setelah mencari data tengah data dan data harus sudah terurut  apabila lebih besar dibandingkan degan angka yang di tengah maka data berada di sebelah kanan dan apabila lebih kecil dibandingkan yang di tengah maka data ada di sebelah kiri.selanjutnya akan dicari data tengahnya lagi dan dibandingkan seperti sebelumnya sampai data ditemukan apabila data tidak ada makan return (-1).
nim:2201732185
nama:claudia ananthio
claudia.ananthio@binus.ac.id
skyconnectiva.com

Rabu, 17 Oktober 2018

Pointers & Array

Perbedaan Pointers dengan Array

Pointers
menimpan data (alamat/ address).
dilambangkan dengan bintang (*).
Array
menyimpan data berupa nilai.
memiliki tipe data yang homongen.
di lambangkan dengan kurung siku ([]).

Pointers
pointers tidak memiliki batas,dan cara penulisannnya di validasi di awal
penulisan syntax:

tipe_data *variable;


Contoh 1:

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

int angka1=3;
int *angka2;
int **angka3;                               

angka2=&angka1;                            //&=address of angka 1,dst
angka3=&angka2;                           //pointer to pointer
                                                        //* digunakan pada saat print untuk mencetak isi dari address
printf("%d",**angka3);                  //content of angka1 yang keluar
printf("%d",*angka2);                   //content yang ada di angka1 yang keluar menjadi output
printf("%d",angka2);                    // address dari angka1 yang akan keluar di output

return 0;
}

Contoh 2:

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

int angka1=3;
int *angka2;
int **angka3;                               

angka2=&angka1;                         
angka3=&angka2;                           //pointer to pointer

**angka 3=10;                                 //apabila salah satu pointer diganti maka yang terhubung dengan                                                                 pointer tersebut juga terganti

printf("%d",angka1)                          // output yang keluar = 10
printf("%d",*angka2)                        //output yang keluar =10
}

Array

array tidak dapat dinyatakan kosong jika ingin mengisi array terdapat 2 cara yaitu validasi dengan memasukan input dan inisiasi atau menempatkan isi array di awal

syntax array:

tipe_data variable[i];

i=angka yang menyatakan jumlah array yang akan di siapkan


pengisian array di awal

int d[]={1,2,3,4,5}; atau
int d[5]={1,2,3,4,5}

validasi array dengan cara input 

int d[2];
scanf ("%d %d",&d ,&d);

jika ingin membuat array baris dan kolom menggunakan array 2D

dengan cara 

int d[2][3];
[2]=merupakan baris
[3]=merupakan kolom


jika menggunakan library<string.h> dapat menggunakan fuction sebagai berikut:
strlen(): menghuting jumlah char
strcmp(s1,s2):membandingkan string 1 dan 2
strcat(s1,s2):menyatukan string 2 ke string 1
strncat(s1,s2,n): menyatukan n string 2 ke string 1
strcpy(s1,s2): mengcopy string 2 ke string 1
strncpy(s1,s2):mengcopy n string 2 ke string 1

n=banyaknya huruf 

nama:claudia ananthio
nim :2201732185
skyconnectiva.com
claudia.ananthio@binus.ac.id


Kamis, 11 Oktober 2018

Repetition dalam bahasa C

Repetition


repetisi adalh pengulangan 1 atau lebih statement yang ada .repetisi dibagi menjadi 4 yaitu:
-for
-do-while
-while-do
-go to( tapi jarang dipakai karena berantakan di kodingnya)

perbedaan do-while dengan while-do :

DO-WHILE melakukan statement yang ada dan mengecek kembali kondisi nya .
                contoh: mesin ATM , masukan kartu terlebih dahulu lalu masukan PIN.
WHILE-DO mengecek kondisi yang ada terlebuh dahulu jika benar maka lanjut ke statement yang ada.

looping dengan menggunakan FOR :
syntax:
for(int exp1;exp2;exp3)

keterangan:

exp 1 = inisialisasi ( mulai awalnya dari mana)
exp 2 = kondisi yang diinginkan
exp 3 = increment atau decrement 

contoh 1:
#include<stdio.h>

int main(){
int i;
##i      for(i=0;i<5;i++){
           printf("*");
}
return 0;
}

Outputnya
*****

contoh 2:
#include<stdio.h>

int main(){
int i;
int x=196
  for(i=199;i<x;i--){
           printf("*");
}
return 0;
}

outputnya :
***

looping FOR terdiri dari 2 jenis:
infinite loop atau looping selamanya dengan mengetik ,dan
nested loop atau looping for bersarang

contoh :
looping selamanya
for (;;){
print (".");
}

outputnya
..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................terus sampai selamanya



looping bersarang
for(i=0;i<2;i++){
    for(j=0;j<2;j++){
        printf("*");
}
printf("\n");
}

outputnya :
**
**


WHILE - DO

syntax:
while(exp){
       statement 1;
       statement 2;
}

keterangan;
exp =kondisi yang hanya menghasilkan nilai benar (1) atau salah (0)
Statement dapat dijalankan apabila  exp tidak sama dengan 0

exp kondisi harus dijalankan duluan agar dapat  menjalankan statement

DO-WHILE
syntax:


do{ 


< statements >;


} while(exp);

• akan terus berulang apabila exp benar
•exp =kondisi yang diinginkan 
exp evaluasi selesai apa bila statement selesai



nim:2201732185
nama:claudia ananthio
claudia.ananthio@binus.ac.id
skyconnectiva.com