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
Introduction
Selasa, 18 Desember 2018
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
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;
}
}
}
}
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.
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].
}
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.
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 sortmemilih 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
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
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 .
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;
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
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
Langganan:
Komentar (Atom)




