ALGORITHM and PROGRAMMING (part.10)

Dipertemuan 11 kali ini kita membahas materi-materi algoritma pemprograman untuk persiapan UAS.

http://a-l-g-o-r-i-t-m-a.blogspot.co.id/ ===> untuk menambah wawasan tentang coding

Contoh coding file,struck,cort

#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;
}

note :

– Printf (“%-4S%-12S%-20%”) maksudnya ada beberapa yang terdapat 4 karakter
– Jika tidak ada “fflush(stdin)” dapat menyebabkan looping forever
– Strcmp = String Conpare
– Pow (math.h)
– Itoa <stdlib.h>
– Switch tidak selalu diakhiri break bisa juga diakhiri continue;
– strcat : menggabung string
-strcmp : membandingkan 2 string

-strcmpi : tidak membedakan huruf besar dan kecil (ignore case)

ALGORITHM and PROGRAMMING (part.9)

SORTING AND SEARCHING

SORTING adalah pengurutan data

Metode-metode sorting :

A.Bubble Sort
Penukaran data hingga data terurut (Ascending atau Descending).

B.Selection Sort
Memastikan data kecil dan data besar. -Mencari index terkecil, baru index tersebut disimpan,selama index yang dicek bukan yang terkecil , index tersebut tetap pada tempatnya

C.Insertion Sort
Proses Persisipan,bandingkan Index yg dipilih dengan index lain, jika index lain tersebut lebih besar maka index tersebut digeser.

D.Quick Sort
Algoritma sorting yang berdasarkan pembandingan dengan metoda divide-and-conqueror.

E.Marge Sort
Sort yang dilakukan dengan teknik merge (menggabungkan) dua buah array kedalam sebuah array yang baru.
SEARCHING adalah mencari data (harus sudah di sorting)

Linear Search : cara barbar, (strcmp, dll tanpa function),tidak cocok untuk data yang besar

Binary Search: Harus diurutkan lebih besar ke kanan lebih kecil ke kiri,hapalin rumus

ALGORITHM and PROGRAMMING (part.8)

File Processing

 

Definisi Streams 

Stream adalah urutan karakter. Semua input dan output data stream.

 

Ketika program C dijalankan ada 3 standard streams yang diaktifkan:

 

  • Standard Input Stream (stdin)

Mengontrol stream input dari keyboard

  • Standard output Stream (stdout)

Mengontrol stream output ke monitor

  • Standard error Stream (stderr)

Mengontrol pesan error

Definisi File

 

  • File adalah kumpulan record (baris).
  • Record adalah kumpulan field (kolom).
  • Field adalah blok byte.
  • Byte adalah kumpulan bit (1 byte adalah 8 bit).
  • Text file tersimpan dalam teks atau ASCII yang merupakan suatu standard internasional.
  • Ukuran penyimpanan tergantung pada data: 10000 membutuhkan 5 byte
  • Dapat terbuka dengan menggunakan standar aplikasi editor teks atau c:> TYPE nama_file

 

Buffer area adalah bagian dari memori yang digunakan sebagai ruang sementara sebelum data pindah ke sebuah file.

 

fopen = untuk membuka data dari file yang ingin dibuka.

 

fclose = untuk menutup semua data yang telah dibuka.

 

fprintf, fputs = memasukkan data ke dalam file.

 

fscanf, fgets = untuk menampilkan data yang telah dimasukkan ke dalam file.

 

Open File

Membuka File menggunakan fopen ():

FILE *fopen (const char *filename, const char *mode);

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.

(Dalam penge-save-an Game sebaiknya menggunakan binary yaitu “rb” atau “wb” karena tidak dapat dibuka dengan notepad biasa)

 

Close File

int fclose (FILE *stream);

*harus ditutup agar bisa digunakan untuk aplikasi lainnya atau .txtnya akan digunakan terus menerus

fclose () didefinisikan di <stdio.h>

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 sisa data ke dalam file.

ALGORITHM and PROGRAMMING (part.7)

Function and Recursion :
-Modular Programming
-Function
-Identifier Scoping
-Passing Parameter
-Recursion Definition
-Recursive Function
-Iterative Vs. Recursive

Modular Programming adalah pemrogramman dimana program dibagi menjadi module, dimana module tersebut diimplementasikan dalam fungsi-fungsi

Keuntungan :

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

 

Library Function adalah fungsi standar dari C compiler

User defined function adalah fungsi yang didefinisikan/dibuat oleh developer sendiri

return-value-type function-name(parameter-list)
{
statement;
}

Function Prototype berfungsi untuk memastikan fungsi diketahui oleh initiator/caller

return-value-type function-name(parameter-list);

Identifier Scoping:
> Local: Dibatasi hanya berada pada sebuah fungsi
> Global: Bisa didapatkan dimanapun dalam program

Recursive: Fungsi yang memanggil dirinya sendiri

 

 

ALGORITHM and PROGRAMMING (part.6)

REVIEW

Sistem pemprogramman sebarnya hanya ada tiga langkah yaitu : Input – Process – Output

Process terdiri dari beberapa macam :

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

-Repetition / Looping : For, While, Do-While

-Strorage (belum diajarkan)

Coding segitiga tengahnya kosong :

#include<stdio.h>

int main(){
int n,a,b;
scanf(“%d”, &n);
fflush(stdin);
for(a=1;a<=n;a++){
for(b=1;b<=a;b++){
if(b==1||a==b||a==n){
printf(“*”);
}
else{
printf(” “);
}
}
printf(“\n”);
}
getchar();
return 0;
}

 

ALGORITHM and PROGRAMMING (part.5)

POINTERS and ARRAYS

1.Pointer : sebuah variabel yang menyimpan variabel lain.

– Pointer hanya dapat menyimpan alamat dari variabel lain

– Syntax  : <type>*ptr_name

– Symbol : * = content of

&= address of

 

2.Pointer to Pointer : sebuah pointer yang menyimpan pointer lainnya.

-Syntax : <type>**ptr_ptr;

 

3.Array : Sebuah kumpulan variabel yang namanya sama tipe datanya sama.

– Karakter array : – Homogeneus (cuma 1 tipe data)

– Random Access (bisa mengakses index manapun)

– Syntax : type array_value [value_ dim];

 

4.String : Array yang biasa diakhiri dengan NULL(“)

1.Pointer : sebuah variabel yang menyimpan variabel lain.

– Pointer hanya dapat menyimpan alamat dari variabel lain

– Syntax  : <type>*ptr_name

– Symbol : * = content of

&= address of

 

2.Pointer to Pointer : sebuah pointer yang menyimpan pointer lainnya.

-Syntax : <type>**ptr_ptr;

 

3.Array : Sebuah kumpulan variabel yang namanya sama tipe datanya sama.

– Karakter array : – Homogeneus (cuma 1 tipe data)

– Random Access (bisa mengakses index manapun)

– Syntax : type array_value [value_ dim];

 

4.String : Array yang biasa diakhiri dengan NULL(“)

 

 

ALGORITHM and PROGRAMMING (part.4)

REPETITION

Repetition / Looping :

-for

-while

-do-while

 

1.FOR

Syntax:

for(exp1; exp2; exp3) statement;

or:

for(exp1; exp2; exp3){

statement1;

statement2;

…….

}

 

exp1 :  initialization

exp2 :  conditional

exp3 :  increment or decrement

exp1, exp2 and exp3 are optional

 

2.WHILE

-Di cek dulu baru dijalankan

-Adalah kondisi mengeksekusi blok kode yang ada diantaranya selama kondisi tersebut bernilai TRUE.

-Mempunyai kemiripan dengan looping “for”, namun sistemnya kurang lebih berjalan seperti dalam kondisi “IF”.

Syntax :

while (exp) statements;

or:

while(exp){

statement1;

statement2;

…..

}

 

3.DO – WHILE

-Dijalankan dulu baru di cek

-Merupakan statement pengulangan yang biasa digunakan untuk membuat menu dalam program.

-Secara umum proses do while sama dengan for ataupun while.

Syntax :

do{

< statements >;

} while(exp);

 

Break VC Continue

-Break :ending loop (for, while and do-while), end the switch operation

-Continue: skip all the rest of statements (subsequent to the skip statement) inside a repetition, and continue normally to the next loop.

ALGORITHM and PROGRAMMING (Pert.3)

SELECTION

IF

Syntax :

If (boolean expression) statement;

                        Or

If (Boolean expression){

                        Statement 1

                        Statement 2

}

 

IF ELSE

Syntax :

            If (Boolean expression) statement 1;

            Else statement 2;

                        Or

            If (Boolean expression){

                        Statement 1;

                        Statement 2;

                        ……

            }

            Else{  

                        Statement 3;

                        Statement 4;

            }

 

 

NESTED IF

Syntax :

            If (boolean expression) statement 1;

                        If (boolean expression) statement 2;

                                    If (boolean expression) statement 3;

                        Or

            If (boolean expression) statement 1;

            Else

                        If (boolean expression) statement 2;

 

SWITCH CASE

Syntax :

            Switch (expression) {

 

            Case constant 1 : statement 1; break;

            Case constant 2 :statement 2; break;

            default:statement;

            }

 

 

 

 

 

 

 

 

? : OPERATOR

Is similar to the if statement,but it returns a value.

Syntax : condition ? then – expression : else expression

You can rewrite :

if (a > b)         

                        max_value = a;

            else

                        max_value = b;

            as

            max_value = (a > b)? a : b;

 

ERROR TYPE

a.Compile Type : syntax error

b.Link Time : no object code at link time)

c.Run Time : (unsually by numerical operation)

d.Logical : inccorect logical flow/algo

ALGORITHM AND PROGRAMMING (Pert.1)

Algorithm & Programming and Introduction to C Programming

Algoritma adalah urutan langlah-langkah yang logis untuk menyelesaikan suatu masalah.Sedangkan Algoritma Pemprograman  adalah langkah-langkah yang ditulis secara berurutan untuk menyelesaikan masalah pemprograman komputer.

Urutan Algoritma Pemprogaman : Problem => Process => Solution

Pseudo Code : Kode yang digunakan untuk menulis algoritma dan tidak menggunakan bahasa pemprograman (ex : print,else,if,set,dll)

Isi Pseudo Code : Input,Output,Compute,Store,Compare,Loop

Flow Chart : Bagan yang memperlihatkan urutan dan hubungan antar proses beserta intruksinya.

 

Struktur Teorema : Sequence,Selection,Repetition

Tipe data : int (bilangan bulat ), float dan double (desimal), char, char array

Formatted Input / Output

syntax output : printf, putchar, putch, puts

sytanx input : scanf (bisa digunakan untuk menginput beberapa data sekaligus), getchar (membaca data yang bertipe karakter), getch (menerima karakter tapi tidak ditampilkan hanya menyimpan dan akan tampil bila kita beli perintah), getche (menerima karakter lalu ditampilkan), gets (digunakan untuk memasukan data bertipe karakter dan tidak bisa menerima data numerik)

format input output : int (%d), float (%f), double (%lf), char (%c), char array (%s)