Minggu, 16 Desember 2018

Searching

Searching adalah mencari satu atau beberapa elemen yang ada di sebuah array.

Elemen yang akan dicari ini disebut key(kunci). Key sebuah data haruslah unik dan berbeda dengan data yang lain. Contoh key adalah NIM.

Terbagi 3:
- Linear Search
membandingkan isi array dari awal sampai key itu sendiri ditemukan.

Algorithm:

1. n : total record of array x.

2. For each x[i], 0 £ i £ n-1, check whether x[i] = key.

3. If x[i] = key, then the searched data is found in index=i. Finished.

4. If x[i] ¹ key, then continue searching until the last data which is i = n-1.

5. If i= n-1 and x[i] ¹ key, it means the data is not exist in the list, and set index = -1. Finished.

- Binary Search

Algorithm:

1. n : total record of array x.

2. left=0, right= n-1.

3. mid =(int) (left + right)/2.

4. If x[mid]=key then index = mid. Finished.

5. If x[mid]<key then left = mid+1.

6. If x[mid]>key then right = mid-1.

7. If left £ right and x[mid] ¹ key, then repeat point 3.

8. If x[mid] ¹ key then index = -1. Finished.



- Interpolation Search
Interpolation ini seperti kita membuka kamus. Jika kita mencari kata berawal huruf B, maka kita mencarinya di bagian akhir dari huruf A sampai bagian awal dari huruf C.

Algorithm:
1.In the interpolation search, we'll split the data according to the following formula: 

2.If data[mid] = sought data, data has been found, searching is stopped and return mid. 

3.If data[mid]!= sought data, repeat point ** 

4.**Searching is continued while sought data > data[min] and sought data < data[max].

5.Looking for a mid value by entering into the interpolation formula 

6.If data[mid] > sought data, high = mid – 1 

7.If data[mid] < sought data, low = mid + 1 

8.It will be looped until the requirements point ** are not met then return (-1), data not found


2201770896
skyconnectiva.com
binus.ac.id
Felix Chrissandy

Sorting

Sorting adalah mengurutkan data bisa dari yang kecil ke yang besar (ascending) atau sebaliknya (descending).

Sorting bisa dilakukan secara internal di dalam RAM ataupun secara eksternal di penyimpanan sekunder.

Sorting:
- Bubble Sort
Algoritmanya:

void Bubble(int *DataArr, int n){
int i, j;
for(i=1; i<n; i++)
     for(j=n-1; j>=i; j--)
          if(DataArr[j-1] > DataArr[j])
                 Swap(&DataArr[j-1],&DataArr[j]);
}


- Selection Sort 
Algoritmanya:

     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 
Algoritmanya:

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




- Quick Sort 
Algoritmanya:


void QuickSort(int left, int right) {
       if(left < right){ 
       //arrange elements R[left],...,R[right] that
       //producing new sequence:
       R[left],...,R[J-1] < R[J] and R[J+1],...,R[right] > R[J]. 
       QuickSort(left, J-1);
       QuickSort(J+1, right); 
       }
}












- Merge Sort
Cara kerjanya:
1. Divide: Bagilah input data menjadi 2 subset disjoint
2. Recur: Selesaikan sub-sub problem dalam subset
3. Conquer: Gabungkan solusi tiap subset menjadi satu



Yang paling mudah digunakan adalah bubble sort. Tetapi untuk data yang banyak perlu waktu yang lama untuk menyelesaikan pengurutannya.

Yang paling sulit digunakan adalah merge sort. Biasanya Quick Sort lebih cepat daripada Merge Sort, tetapi ada di beberapa situasi Merge Sort lah yang lebih cepat.


2201770896
skyconnectiva.com
binus.ac.id
Felix Chrissandy


Akses File

Mendeklarasikan Pointer ke File

syntax:

FILE *namaPointer;

Syntax di atas mendeklarasikan pointer yang digunakan sebagai penunjuk atau pengait ke file yang akan diakses

Membuka File
Akses file hanya dapat dilakukan jika file sudah dibuka. Untuk membuka file, gunakan fungsi fopen(). Fungsi ini akan mengembalikan pointer ke tipe FILE.

Syntax:

FILE *fopen(char *fileName,char *mode);

Parameter fileName menyatakan nama file yang akan diakses, sedangkan mode menyatakan mode akses yang akan dilakukan

Mode akses:
1. r , untuk membuka file teks yang sudah ada untuk dibaca
2. w, untuk membuka file teks untuk ditulis. Jika file belum ada, maka file akan dibuat. Proses penulisan data ke dalam file dilakukan dari posisi awal
3. a, untuk membuka file teks untuk diappend. Jika file belum ada, maka file akan dibuat. Proses penulisan data ke dalam file dilakukan dari posisi akhir
4. r+, untuk membuka file teks yang sudah ada untuk dibaca dan ditulis
5. w+, untuk membuka file teks untuk dibaca dan ditulis. Jika file belum ada,maka file akan dibuat. Jika sudah ada, maka isi file akan ditimpa
6. a+, untuk membuka file teks untuk dibaca dan ditulis. File akan dibuat jika file belum ada. Proses pembacaan data dilakukan dari posisi awal, sedangkan proses penulisan data dilakukan dari posisi akhir.

Untuk mengakses file biner dapat digunakan mode: rb,wb,ab,rb+,wb+,ab+,w+b,r+b,atau a+b

Menutup File

Setelah file diakses kita seharusnya menutup file.

Syntax: 

int fclose(FILE *fileName);

atau 

fclose(f);


2201770896
skyconnectiva.com
binus.ac.id
Felix Chrissandy

Enumerasi, Struktur, dan Union

1. Enumerasi
Enumerasi adalah suatu tipe data bentukan yang nilainya dibatasi oleh nilai-nilai konstan yang sudah didefenisikan

Contoh tipe data yang dapat dijadikan sebagai enumerasi adalah jenis kelamin, agama, warna primer, nama hari, nama bulan dsb.

Syntax:

enum namaEnumerasi{nilai1,nilai2,....};

Enumerasi dapat bersifat global maupun lokal.

2. Struktur dan Union
Struktur adalah tipe data bentukan yang dapat menampung beberapa nilai, baik sejenis maupun berbeda jenis

Contoh data yang dapat dinyatakan dalam tipe struktur adalah data buku yang terdiri dari kolom kode, judul, jumlah halaman, penulis, penerbit, tahun terbit, dsb

Union mirip dengan struktur yang mengizinkan kita untuk menyimpan nilai dari tipe berbeda ke dalam satu ruang memori. Union dapat memiliki lebih dari satu anggota, tapi dalam sekali waktu hanya ada satu anggota yang dapat memiliki nilai.

Syntax struktur:

struct namaStruktur{
     tipe anggota1;
     tipe anggota2;
};

Pointer ke struktur
Untuk mendeklrasikan pointer ke tipe struktur, gunakan bentuk umum sbb:

struct namaStrktur *namaPointer;

Selanjutnya, untuk mengakses kolom/anggota struktur melalui pointer kita perlu menggunakan operator panah (->), bukan operator titik (.),sbb:

namaPointer->namaAnggota

Syntax union:

union namaUnion{
   tipe anggota1;
   tipe anggota2;
};

Berbeda dengan struktur, union hanya terdapat satu anggota yang dapat diaktifkan dalam sekali waktu. Pada union, hanya terdapat satu ruang memori yang dialokasikan dan digunakan secara bergantian oleh seluruh anggota yang ada.

Pointer ke Union:

union namaUnion *namaPointer;

Akses anggota union melalui pointer harus dilakukan dengan operator ->

namaUnion->namaAnggota



2201770896
skyconnectiva.com
binus.ac.id
Felix Chrissandy


Selasa, 11 Desember 2018

Cloud Computing

Apa itu cloud?

  • Cloud dapat merujuk pada Network atau Internet yang hadir di tempat tertentu yang dapat diakses dari lokasi manapun melalui jaringan publik atau jaringan pribadi
  • Cloud computing berarti mengelola, mengkonfigurasi, dan mengakses aplikasi secara online. Ia menawarkan penyimpanan data online, komputasi, infrastruktur jaringan dan aplikasi yang dikirim sebagai layanan jaringan
  • Cloud computing biasanya memisahkan infrastruktur dengan bisnis. Dimana "infrastruktur" mengacu pada perangkat keras, jaringan, dan perangkat lunak yang dikelola dalam satu kesatuan. Sedangkan "bisnis" mengacu pada alur kerja prosedural
Contoh penerapan:
  • Social network: Facebook
  • Data sharing : e-mail
  • Education: Quipper
  • Business: Online shop
Ada 3 model penyebarannya : 
  • Public : 1 server banyak pengguna
  • Privat : 1 server 1 pengguna
  • Hybrid : dapat digunakan public dan privat
Jenis Cloud Computing :
  1. Software as a Service (SaaS) : salah satu layanan dimana kita tinggal memakai software yang telah disediakan.
  2. Platform as a Service (Paas) : analoginya menyewa rumah dan lingkungannya untuk menjalankan aplikasi yang kita buat.
  3. Infrastructure as a Service (IaaS) : layanan untuk menyewa infrastuktur IT 

2201770896
skyconnectiva.com
binus.ac.id
Felix Chrissandy




Fungsi

Fungsi adalah bagian(blok) program yang melakukan pekerjaan-pekerjaan speseifik tertentu, seperti: perhitungan, manipulasi teks, operasi file,dsb.

Bahasa C sudah cukup banyak mendefinisikan fungsi-fungsi yang sudah siap pakai. Tetapi dalam kenyataannya kita akan banyak mendefinisikan fungsi sendiri untuk memenuhi kebutuhan yang ada.


  • Melewatkan parameter menggunakan pass-by-value
          Semua parameter fungsi secara default dilewatkan menggunakan mekanisme pass-by-value.                Melalui cara seperti ini, nilai argumen(parameter aktual) akan disalin ke parameter formal.                  Hanya cocok untuk melewatkan parameter yang berperan sebagai parameter masukan.

  • Melewatkan parameter menggunakan pass-by-reference
          Mekanisme pass-by-reference di dalam bahasa C disimulasikan menggunakan alamat                          memori(pointer). Mekanisme ini cocok digunakan pada saat fungsi membutuhkan parameter                yang berperan sebagai parameter keluaran(parameter yang berfungsi untuk menampung nilai              yang dihasilkan oleh fungsi).

Fungsi rekursif
adalah alternatif dari bentuk iteratif(perulangan) dimana di dalam programnya terdapat sebuah fungsi yang memanggil fungsi itu sendiri. 



2201770896
skyconnectiva.com
binus.ac.id
Felix Chrissandy

Rabu, 17 Oktober 2018

Pointer & Array

Pointer adalah variabel yang menyimpan alamat variabel lainnya

Syntax :
<type> *ptr_name;

2 operator yang biasa digunakan di pointer:
* = content of
& = address of

Pointer to pointer : variabel yang menyimpan alamat dari pointer lainnya
Syntax:
  <type> **ptr_ptr ;
Tanda *(content of) akan terus bertambah seiring bertambahnya pointer

Array adalah data yang disimpan di struktur tertentu yang dapat diakses 1 atau lebih.
Ciri-ciri:
1. Homogenous : memiliki tipe data yang sama
2. Random acces : setiap elemen dapat dijangkau secara individual,tidak perlu berurutan

Syntax:

  type array_value [value_dim];

Persamaan pembacaan pointer dan array : 
Contoh : *(A+2) or A[2]

Pointer constant ( array ) : tempat yang disediakan sudah dibook tidak bisa diubah
Pointer variabel ( ptr ) : dapat ditambahkan value baru saat proses

Terdapat 3 dimensional array:
1. One dimensional array 
     Contoh : int arr[10];
2. Two dimensional array
     Contoh : int a[3][4];
3. Three dimensional array
     Contoh : int x[3][2][4]; 

Array of character ( String )
Syntax:
  char array_name[value_dim];

String memakai \0 diarray terakhir sehingga jika kita mau membuat sebuah kata, value_dim-nya harus ditambahkan 1 dari jumlah kata yang ingin dibuat

String manipulation (dengan memakai header <string.h>)
strlen()
  Return a value of string length; excluded null char
strcpy(s1,s2)
  Copy s2 to s1
strncpy(s1,s2,n)
  Copy first n characters of s2 to s1
strcat(s1,s2)
   Adding string s2 to the end of string s1
–strncat(s1,s2,n)
  Adding n characters of string s2 to the end of string s1
–strcmp(s1,s2)
  Comparing the value of string s1 and s2, if similar returning 0
–etc.

2201770896
skyconnectiva.com
binus.ac.id
Felix Chrissandy



Program control : selection

Selection adalah sebuah atau beberapa instruksi yang bisa dijalankan atau tidak dengan kondisi yang ditentukan sebelumnya.

Terbagi 3:
- if
- if-else
- switch-case

Perbedaan if dan if-else:
if akan mengecek satu atau beberapa blok statement satu persatu.
if-else akan mengecek satu blok statement dan jika salah akan langsung dijalankan yang blok statement selanjutnya.

if dan switch-case memiliki fungsi yang sama

?:operator
>> mirip dengan fungsi if



2201770896
skyconnectiva.com
binus.ac.id
Felix Chrissandy

Selasa, 16 Oktober 2018

Program control : Repetition ( pengulangan )

Repetition ( pengulangan )
1. For
2. While
3. Do-while

Perbedaan While dengan Do-while :

   while: cek syarat dahulu kemudian proses looping ( jika benar )
   do-while : proses dahulu cek syarat kemudian looping( jika benar )

Repetisi: satu atau lebih instruksi yang diulang dalam waktu tertentu

For
*Infinite loop : karena tidak ada batas salahnya alias benar semua syaratnya. Dihentikan dengan                                  break;
*Nested loop : loop dalam loop

Break : untuk menghentikan loop dan switch
Continue : skip semua statement di dalam repetition dan melanjutkan ke loop selanjutnya



2201770896
skyconnectiva.com
binus.ac.id
Felix Chrissandy