Archive for » January, 2016 «

ALGO Pertemuan 10

– stdio = standart input output

– FILE -> harus huruf besar semua
Contoh cara membuka file :
– Membuka File menggunakan fopen ():
– FILE *fopen (const char *filename, const char *mode);
– FILE *file = fopen(“data.txt”,”r”);
Keterangan :
r membuka file untuk dibaca/read

contoh mode :
“r” membuka file untuk dibaca.
“w” membuat file untuk ditulis.
“A” membuka file untuk data append.
“r+” membuka file untuk membaca / menulis.
“w+” membuat file untuk membaca / menulis.
“a+” membuka file untuk membaca / tambahkan
“rb” membuka File (binary) untuk dibaca.
“wb” membuat file (binary) untuk menulis.
(kalau buat game savenya sebaiknnya pake binary yaitu “rb” atau “wb” karena tidak bisa dibuka dengan notepad biasa)
– Close File
int fclose (FILE *stream);
– fclose () didefinisikan di
– fclose () akan mengembalikan 0 jika berhasil, dan EOF jika error
– EOF (End Of File) sama dengan -1 (EOF itu dibuat otomatis)
– fclose () akan masuk ke buffer area dulu dan segera mengirimkan data yang tersisa untuk file.
– !feof(file) -> membaca sampai akhir file
– boleh juga pake !=EOF
kalo mau mengubah fungsi char ..
atoi = ascii to int
itoa = int to ascii
jangan lupa fclose(file)
strcat -> menggabung string
fflush – > hapus buffer
strcmp -> membandingkan 2 string
strcmpi -> tidak membedakan huruf besar dan kecil

Contoh coding :

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

struct Film{
char namaFilm[50];
int jam;
int rating;
}filem[5];

void view(){
int i;
for(i=0;i<4;i++){
printf(“%s %d %d\n”,filem[i].namaFilm,filem[i].jam,filem[i].rating);
}
}

void print(){
FILE *out;
out = fopen(“output.csv”,”w+”);
int i;
for(i=0;i<5;i++){
fprintf(out,”%s,%d,%d\n”,filem[i].namaFilm,filem[i].jam,filem[i].rating);
}
fclose(out);
}

void tambahFilm(int i){
char namaFilm[25];
int jam;
int rating;
do{
printf(“Masukan nama film [10..25]: “);
scanf(“%[^\n]”,namaFilm);
fflush(stdin);
}while( strlen(namaFilm) < 10 || strlen(namaFilm) > 25);

do{
printf(“Masukan jam [0..23]”);
scanf(“%d”,&jam);
fflush(stdin);
}while( jam < 0 || jam > 23);

printf(“Rating:”);
scanf(“%d”,&rating);

strcpy(filem[i].namaFilm , namaFilm);
filem[i].rating = rating;
filem[i].jam = jam;
}

int main(){
FILE *in;
int i=0;
in = fopen(“film.csv”,”r”);
if( in == NULL){
printf(“File \’film.csv’ tidak ditemukan”);
getchar();
return 1;
}else{
while( !feof(in) ){
fscanf(in,”%[^,],%d,%d\n”,filem[i].namaFilm,&filem[i].jam,&filem[i].rating);
i++;
}
view();
}
fclose(in);
tambahFilm(i);
print();
return 0;
}

ALGO Pertemuan 09

A. Sorting adalah penyortiran atau memilih – milih, Pada struktur data sorting adalah sebuah metode untuk pengurutan data, misalnya dari yang terbesar ke data yang terkecil, yang tentunnya berguna untuk mempercepat pencarian operasi dalam daftar. Sorting di bagi menjadi dua yaitu : Ascending dan Descending.

Tipe sorting :

Simple sorting
– Bubble sort
– Selection sort
– Insertion sort

Intermedite sorting
– Quick sort
– Merge sort

1. Bubble Sort

– for didalam for
– While
– Tergolong sorting yang kompleks
– Dengan sistem membandingkan 2 index secara terus menerus

contoh algorithm :

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

2. Selection Sort

– Mencari index terkecil, baru index tersebut disimpan
– Selama index yang dicek bukan yang terkecil , index tersebut tetap pada tempatnya

Contoh algorithm:

for(i=0; i<=N-2; i++){ /* N=number of data */
for(j=i; j<=N-1; j++){
Note the index of smallest value between A[j] s/d A[N-1],
Save it in variable k.
Swap A[i] with A[k].
}
}

3. Insertion Sort

– Proses Persisipan

– Bandingkan Index yg dipilih dengan index lain, jika index lain tersebut lebih besar maka index tersebut digeser

Contoh algorithm:

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

4. Quick sort

-Rekursif

Contoh algorithm:

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].
QuickSort(left, J-1);
QuickSort(J+1, right);
}
}

5. Merge sort
Menyorting algoritma berdasarkan pada algoritma membagi dan mengatasi :
– Divide : membagi data masukan dalam dua himpunan penguraian
– Recur : memecah masalah yang terkait dengan subset
– Conquer : menggabungkan solusi untuk setiap bagiann dalam solusi
– Dikelompokan , baru di sort
– Putaranya lebih sedikit, jauh lebih cepat

B. Searching adalah merupakan proses yang fundamental dalam pemograman, berguna menemukan data(nilai) tertentu di dalam sekumpulan data yang bertipe sama. Fungsi pencarian itu sendiri adalah untuk memvalidasi(mencocokan) data.

1. Linear Search : cara barbar, (strcmp, dll tanpa function)

2. Binary Search: Harus diurutkan lebih besar ke kanan lebih kecil ke kiri

3. Interpolation Search : sama dengan binary hanya berbeda rumus coding