Jan 14

Review material

 

stdio = standart input output

 

Struct lebih baik digunakan daripada membuat banyak variabel berbeda”.

FILE -> harus huruf besar semua

FILE *file = fopen(“data.txt”,”r”);

r = Cuma read

r+ = bisa read dan write

w+ = Tulis,nambahin di awal

a+ = nambahin dipaling belakang

 

!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

 

http://a-l-g-o-r-i-t-m-a.blogspot.co.id/

Jan 07

Sorting dan Searching

 

Sorting

*Bubble Sort

-for didalam for /while

-tergolong sorting yang komplek

-dengan sistem membandingkan 2 index secara terus menerus

 

*Selection Sort

-Mencari index terkecil, baru index tersebut disimpan

-Selama index yang dicek bukan yang terkecil , index tersebut tetap pada tempatnya

 

*Insertion Sort

– Proses Persisipan

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

 

*Quick sort

-Rekursif

 

*Merge sort

– Dikelompokan , baru di sort

-putaranya lebih sedikit, jauh lebih cepat

 

 

SEARCHING-> cari data (rata” setelah data sudah disort)

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

*Binary Search: Harus diurutkan lebih besar ke kanan lebih kecil ke kiri

 

kompleksitas 2^logn

*Interpolation Search ; sama dengan binary hanya berbeda rumus coding

Dec 22

File Processing

1 byte = 8 bit

File & Stream

– File is collection of record (baris),is block of byte

– Record is collection of field (kolom),is collection of bit

 

Standart Input Stream

Standart Output Stream

Standart Error Stream

 

 

File Definition

– Text disimpan dlm format ascii atau text format

– Binary file bentuk exe = tidak bisa dibuka

 

Buffer area

FILE *fp -> boleh ada boleh tidak

 

OPEN FILE

 

FILE *fopen

r -> READ

w -> Tulis

a -> Nambahin data , dibelakang

r+ -> buka data untuk ditulis dan dibaca

w+ -> buat data untuk tulis dan baca

a+ -> buka data untuk baca atau tambah

 

Close File

int fclose(FILE *stream)

– defined at stdio.h

-EOF equals -1

-Ditutup agar aplikasi lain bisa melihat

 

 

 

Dec 03

Function and Recursion

Modular Programming

Program dibagi menjadi modul-modul

Fungsi dibuat dengan mengelompokan statement untuk suatu pekerjaan

Disebut SUB-PROGRAM

 

Keuntungan :

  1. Dari Besar ke Kecil , Program besar menjadi Spesifik
  2. Lebih Mudah Debug
  3. Bisa dekerjakan bersama orang lain

Sub-Program bisa dipecah menjadi beberapa sub program lagi jika masi kompleks

 

Library Vs UDF(User Defined Function)

Library : Biasanya di header

UDF : function buatan sendiri dimasukan di Resource

 

Function Definition

Syntax : return_value_type function name(paramerter list)

{

Statement;

}

Parameter list sifatnya optional

 

Void : sifatnya tidak mengembalikan nilai

 

-Function Prototype

Memastikan fungsi bisa dipanggil

Int maximum(int a, int b);

 

Nama variabel bisa sama tetapi yang lokal akan diprioritaskan daripada global

 

 

Recursion Definition

Memanggil dirinya sendiri (seperti pengulangan)

Int faktorial(int n)

{

If(n==0)

return 1;

else

nilai=n*factorial(n-1);

}

Return nilai;

 

Int main()

{

Int hasil

Hasil=factorial(5);

}

Recursive : memakai banyak memori dan lebih lambat

Nov 15

Review Material

Sistem pemrograman sebenarnya cuma dibagi menjadi 3 step: Input, Process,Output

Input adalah apa yang di masukan oleh user ke komputer

lalu Process adalah tahap pemrosesan hasil Inputan user ke Komputer dan hasilnya adalah Output

Process dibagi menjadi bermacam”:

-Selection

-Looping/Repetition

-Strorage yang belum diajarkan

selection untuk AI

 

 

Selection : If, Else-If,Nested If, Switch Case

Looping : While,Do-While,For

 

Coding bilangan Prima:

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

int a,b,i,c=0;

scanf(“%d”,&i);
fflush(stdin);
for(a=2;a<i+1;a++){
for(b=1;b<=a;b++)
{if(a%b==0){c++;}}

if (c==2)
{printf(“%d “,a);}c=0;}
getchar();
return 0;
}

 

contoh segitiga pascal

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

int input;
int kolom,baris,segitiga[100][100];
scanf(“%d”,&input);
fflush(stdin);
for (baris=0;baris<input;baris++)
{
for (kolom=0;kolom<=baris;kolom++)
{
if(kolom==0 || kolom==baris)
{
segitiga[baris][kolom]=1;
}
else if(baris>1 && kolom<baris)
{
segitiga[baris][kolom]=segitiga[baris-1][kolom]+segitiga[baris-1][kolom-1];
}
printf(“%d “,segitiga[baris][kolom]);
}

printf(“\n”);
}

return 0;
}

Oct 30

Pointer dan Array

Definisi Pointer : Pointer variabel yang menyimpan alamat dari variabel lain / tidak bisa menyimpan value tanpa alamat dari variabel.

Variabel biasa menyimpan Value

<type>*ptr_name //type : int float char dll

*(content of)

&(address of)

 

cth: int i,*ptr;

ptr=&i

*ptr=5

berarti nilai I= 5

 

Pointer to Pointer

<type>**ptr_ptr // cuma bisa menyimpan alamat dari single Pointer

 

Definisi Array

Pointer statis, menyimpan data banyak dalam 1 tipe data

-Homogen : cuma 1 tipe data

– Random Access : bisa mengakses index yang manapun asalah != <0dan masih sesuai batas

 

Array Initialization

int B[]={1,2,3,4} // bisa menyesuaikan jumlah Index

int B[8]={1,2,3,4} //Jumlah index 8 yang terisi dengan 4 NULL

 

Accessing Array

*(A+2) == A[2]

karena A == *A[0]

 

Pointer Constant dan Pointer Variabel

Pointer Constant == Array  -> Tidak bisa masukin nilai Baru waktu Runtime

Array of Pointer

type*array_name[value_dim]

int i;

int *ptr[4];

int x=1,y=2;

arr_ptr[0]=&x

arr_ptr[4]=&y

 

String

Array of character yang biasa diakhiri dengan NULL (”)

Oct 24

Repetition in C

Repetition = Pengulangan, Looping

Operasi Repetition:

For, While, Do-While

For = kondisinya bisa dikosongkan

While = Kondisi harus berisi dan kondisi di cek sebelum mulai menjalankan statement

Do-While = mengerjakan Kondisi terlebih dahulu baru di cek

 

– FOR

for(exp1;exp2;exp3)statement;

or

for(exp1;exp2;exp3)

{statement1;

statement2;

statement3;

}

Exp 1 : Iniatialization

Exp2 : Conditional

Exp3: Increment or Decrement

Exp is Optional

 

-While : Hanya akan jalan jika kondisi TRUE

while(exp)statement;

or

While(exp)

{statement1;

statement2;}

Note: Dia bisa jalan jika exp != 0

Jadi selalu benar karena kondisi harus benar

 

– Do-While

do{statement}

while(exp);

-Terus berjalan selama Exp bernilai True

-Menjalankan statement sekali terlebih dahulu baru mengecek kondisi

 

To End repetition, there is several ways

– Sentinel

– Question, should the repetition continue?

 

Note tambahan:

break; adalah fungsi untuk menghentikan Looping dan keluar dari fungsi loop

continue; Men Skip sisa statement yang ada dibawahnya

 

 

1421178042197

Oct 15

Selection

Kita mengalami banyak pilihan dan pilihan selalu lebih dari satu, sama kayak komputer yang bisa memilika banyak pilihan atau fungsi.

Syntax pilihan dalam Algo:

IF

IF ELSE

NESTED IF

SWITCH CASE

 

-IF

Syntax : if(boolean expression){statement1;

Statement2;

Statement3;}

 

Kalau Cuma satu statement boleh dihilangkan tanda {}

 

-If Else

If(boolean expression)statement1;

Else statement2;

 

Ada 2 pilihan : Kalau kondisi benar mengikuti statement 1 dan kalau salah mengikuti statement 2

 

-Nested If

Kalau If nya lebih dari satu

Syntax: If(boolean expression)statement1;

If(boolean expression)statement2;

If(boolean expression)statement3;

 

Atau

If

Else

If

else

If

Else

If

Else

//Dst………..

 

-Switch Case

Kalau If mempunyai hanya 2 Nilai yaitu T/F

Sedangkan switch case mempunyai nilai yang lebih dari 2

Syntax: switch(expression){

Case constant1 : statement; break;

Case constant2 : statement; break;

.

.

.

Default:statement;

}

 

*Yang bisa dikerjakan If belum tentu bisa dikerjakan Switch Case, tetapi apapun yang bisa dikerjakan dengan switch case pasti bisa diselesaikan dengan If.

 

? Operator

? mirip dengan If

Condition ? then-expression:else-expression

If(a>b)

Max_value=a

Else

Max_value=b
As

Max_value=(a>b)?a:b

 

-Goto and Label

Tidak dijelaskan karena bukan sequence jadi tidak dijelasin

 

*Error Type

  1. Compile Type Error

Caused by syntax error

  1. Link time error

External int x  -> ambil dari data eksternal jadi kalau tidak ada menjadi error

  1. Run-time Error

Biasa pointer,memori,Salah perhitungan

4.Logical Error

Salah hasil karena kesalahan logika flow , algoritma

 

Thank You Cards (4)

Oct 08

Operator dan Operand Introduction

Operator is a symbol to process values in result for a new value

Operand is part which species what data to be operated on

C=A+B

+ – / * %(modulus) adalah operator

C A B adalh operand

Dibagi berdasarkan jumlah Operantnya, Operator dibagi 3:

– Unary Operator (butuh 1 operant)

– Binary Operator (butuh 2 operant)

– Ternary Operator (butuh 3 operant)

 

Operator Type

– Assignment

– Logical

– Arithmatic

– Relational

– Bitwise

– Pointer

 

Assignment type

ada simbol “sama dengan” tetapi “=” dengan “==” ini berbeda

= adalah nilai variabel

== adalah mencocokan

x=3  (proses dari kiri ke kanan)

 

Arithmatic

+ addition

– subtraction

/  division

mutiply

% Modulo

++ increment

— decrement

() Scope

 

increment dan decrement

++N pre ( ditambah baru dimasukan ke variabel)

N– Post  (masukan variabel baru dikurangkan)

note:

a=a+b dapat ditulis a+=b

 

Relation

== equality

!= not equal

< less than

> greater than

<= less or equal than

>= greater or equal than

?:  conditional assignment

 

Logical Operator

1=T

0=F

int x;

x= 20>10 // value x adalah 1 yang berarti T

int x=5 ;

int y=0;

x && y // bernilai FALSE

(x>y) && (y>=0) // True

 

bitwise

&  AND

| OR

^ XOR

~ COMPLEMENT

>> SHIFT RIGHT

<< SHIFT LEFT

 

 

Pointer operator akan dijelaskan di sesi 3

 

 

 

Oct 01

OOP : Object Oriented Program dibagi jadi 5 : Incapsulation(bisa kasi hak akses bisa ga), Inheriten(hubungan bapak anak; anak boleh nunjukin sifat bapak, boleh ga), Abstraction (Wajib memunculkan sifat dari anak), Interface( Bapak tertinggi), Polimerism (?)

Tingkatan:

1. Assembler (Rendah)

2. C, Pascal , Fortran (sedang)

3.Java, C++, C# (Tinggi)

Algoritma ditemukan oleh matematikawan arab : Al-Khowarizmi, Algoritma berasal dari 2 kata: Algoris dan ritmis.

Contoh Algoritma :

Bangun Tidur

Buka Baju

Mandi dan sabunan

Pakai baju

pergi Kuliah

Step pembuatan Algoritma :

Men-Develop Algoritma dibagi 2:

-Pseudo Code (Tulisan)

-Flow Chart (Gambar)

Step Algoritma: 

PROBLEM – PROCESS – SOLUTION

dari masalah akan muncul proses penyelesaian sampai akhirnya ada solusi

Di bagian process terbagi menjadi beberapa step: Algoritma – Source code – Executable Code

Source code bisa compile jadi EXE dan ada juga yang tidak bisa dicompile

Pseudo code

memakai bahasa Inggris, membantu kita mengembangkan pengetahuan mengenai Algoritma

Keyword: If, Else, print, set, add, while dan lain lain

basic Pseudo code:

-INPUT

-OUTPUT

-COMPUTE

-Storing Value to an Identifier

-Compare

-Repetition (Looping)

 I – P – O

input data setelah itu akan diproses dan baru output ke Dekstop anda.

Kenapa C?

karena bahasa C itu adalah Mother Language dan memiliki fleksibilitas,Portability, Bahasa yang sangat terkenal dan men Support banyak device

C standart library:

<math.h> untuk Math Function

<stdio.h> untuk input output

<stdlib.h> untuk Utility Function

<string.h> untuk String Function

<time.h> untuk waktu dan tanggal Function

Catatan mengenai C:

  • Terisi dari Function
  • Setiap program c punya fungsi utama yaitu main
  • Bahasa C adalah bahasa yang sangat terpengaru dari Huruf(Case Sensitive)
  • Setiap statement harus diakhiri dengan semi-colon (;)

 

catatan: int sekarang 4 bit

 

images