Algorithm And Programming Pertemuan Ke- 10

Pada pertemuan ke-10 ini,kami mereview kembali materi-materi algoritma pemrograman yang akan diujikan di UAS nantinya. (dengan melihat contoh-contoh coding)

http://a-l-g-o-r-i-t-m-a.blogspot.co.id/ <-<-<-<- Bisa diakses untuk menambah ilmu coding.

berikut contoh coding (file,struct,sort)

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

Algorithm And Programming Pertemuan Ke- 9

*Sorting -> mengurutkan data -> mudah mencari data(mempermudah proses pencarian data).

*Metode-metode sorting :

1.Bubble sort -> sorting favorit di ujian
->Putaran
->Banyaknya putaran : banyaknya data -1

2.Selection sort
Menggunakan temp,menyimpan indeks yang terkecil.
Dan indeks tersebut selalu dibandingkan dengan indeks yang sebelumnya
banyaknya putaran = bubble sort
Intinya dari teknik sort ini : menukar indeks-indeks saja

3.Insertion sort : berbeda dengan bubble atau selection sort
-> Prosesnya adalah penyisipan
Banyaknya putaran : banyaknya data -1
,berbeda dengan bubble sort dan selection sort :
Setiap putaran tidak menentukan nilainya terkecil.

4.Quick sort ,menggunakan teknik recursive yaitu memanggil dirinya sendiri. Menggunakan 4 variabel.
Quick sort merupakan cara yang rumit dan sulit,namun paling cepat dalam melakukan proses sort.

5.Merge sort -> kita bagi,kemudian kita gabung
-Dipecah menjadi per dua data
-Kemudian di sorting
-Putarannya lebih sedikit dari bubble sort (kira-kira sepertiga dari putarannya bubble sort)

*Teknik Searching
1.Data harus sudah di sorting
2.Baru bisa di searching

Teknik searching :
-Linear search ->tidak cocok untuk data yang besar & paling mudah digunakan (teknik barbar)
-Binary search -> hapalin rumus saja
-Interpolation search -> rumus juga

 

Algorithm And Programming Pertemuan Ke- 8

File Processing:

–Files and Streams

–File Definition

–Open File

–Close File

–Input File

–Output File

File & Stream

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

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

1 byte = 8 bit
-Field is a block of byte
-Byte is collection of bit

Definisi Streams 

  • To keep key in data from keyboard need to be saved at secondary storage device as a data file.
  • Streamis a sequence of character. All input and output data is a stream. C sees file as a stream.

 

3 Jenis Stream :

 

  1. Standard Input Stream

Controlling input stream from keyboard

  1. Standard Output Stream

Controlling output stream to the monitor

  1. Standard Error Stream

Controlling the error messaging

 

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

Algorithm And Programming Pertemuan Ke- 7

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

 

Program itu dibagi menjadi modul – modul.
Modul di dalam pemrograman bahasa C dibuat dengan menggunakan Function.
Biasa disebut juga dengan Sub-Program.

 

Kenapa menggunakan Function ? Apa keuntungannya :
– Dari besar ke kecil , program yang besar menjadi lebih spesifik.
– Lebih mudah untuk debug
– Memungkinkan program bisa dikerjakan bersama dengan orang lain.
Main –Program dipecah menjadi Sub-Program ,dan Sub – Program bisa dipecah-pecah lagi menjadi Sub-Program.

Library vs User-Defined Function
Library : Letaknya di header ( usually)
Udf : Function yng kita buat sendiri dan diletakan di Resource

 

Function Construction

Syntax :

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

Void : sifatnya tidak mngembalikan nilai.

  • Parameter-list : (Optional)

    Function Prototype
    Memastikan fungsi bisa dipanggil

  • Int maximum(int a,int b);

 

Nama variabel bisa sama tetapi variabel lokal lebih diprioritaskan daripada variabel global.

 

Passing Parameter:
-By-Value
-By Location/by reference

Recursive : (memanggil dirinya sendiri -> seperti pengulangan)
->Memakai banyak memori dan lebih lambat.

Example :

int Fib(int n) {

int f;

if(n==0) f = 0;

else if(n==1) f = 1;

else f = Fib(n-2) + Fib(n-1);

return f;

}

 

Sesi kedua :

Kedatangan tamu dari Dewa Web, disini saya mendapatkan informasi yang sangat bagus dan menarik seperti sejarah-sejarah cryptography dari zaman Cesar sampai sekarang ini, dan juga perkembangannya sampai kegunaannya yang begitu banyak.

Kami juga dijelaskan tentang 3 level keamanan ( gambar kunci ) di beberapa situs perbelanjaan. Dimana Dewa Web mempunyai level keamanan yang tertinggi, setara dengan situs-situs milik Bank-bank seperti BCA atau Mandiri. Sedangkan beberapa situ belanja yang terkenal ternyata masih mempunyai level keamanan yang rendah yaitu di level 1. Dan ada juga beberapa web yang mempunyai level keamanan intermediet yaitu di level 2. Yang tidak terlalu aman namun juga tidak terlalu mudah di bobol.

Algorithm and Programming Pertemuan Ke-6

Belajar Algoritma Pemrograman sebenarnya hanya tentang input, output, dan process.

Bagian input dan output adalah sesuatu yang simple.
Yang membuat belajar pemrograman menjadi lebih rumit adalah di bagian proses-nya.

Process :
1.Selection : if,else-if,nested if, switch case
2.Looping or Repetition : while,do-while,for
3.Storage (belum dipelajari)

Kemudian kami mempelajari  bagaimana cara membuat bangun datar dan juga membuat segitiga pascal. Berikut coding dari 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”);

}

getchar();
return 0;

 

Algorithm and Programming Pertemuan ke-5

29, Oktober 2015

*Pointers and Array

*Sub Topics :
-Pointer Definition
-Pointer Concept
-Pointer to Pointer
-Array

*Pointer definition : variabel dimana ia menyimpan alamat dari variabel lain.
Syntax : <type> *ptr_name;
Mostly Use Two operators.

*Inisialisasi sebuah interger Pointer ke dalam sebuah data variabel :
int i, *ptr;
ptr= &i;

*Single Pointer hanya bisa menyimpan alamat dari variable biasa.
Double Pointer hanya bisa menyimpan alamat dari variable single pointer.
Triple Pointer hanya bisa menyimpan alamat dari variable double pointer.

Ptr_ptr=&ptr;
ptr=&x;
x=10;
**&ptr_ptr -> 10

*Pointer sama array saling berhubungan
-Pointer statis
-Hanya 1 jenis data

*int[100] -> bisa dipakai hanya 99
0-(n-1)

*Array characteristics :
-Homogenous
-Random Access

*Pake array = alamat indeksnya pasti berurutan.

 

 

 

 

 

 

 

Algorithm and Programming Pertemuan ke-4

Kamis, 22 Oktober 2015

Program Control : Repetition

Repetition/looping di program bahasa C.

Program control-repetition :
-Repetition Definition
-For
-While
-Do-While
-Repetition Operation
-Break vs Continue

Repetition / looping operating :
-For = Parameternya bisa dikosongin, kondisi bisa dikosongin.
-While = Cek kondisi setelah itu dijalanin | Kondisi jalan,berhenti harus ada.
-Do -while = Jalanin dulu setelah itu cek kondisi

Syntax For :
For(exp1;exp2;exp3)statement;
or:
for(exp1;exp2;exp3){
statement1;
statement2;
statement3;
}
*inisialisasi bisa dikosongin ,exp 3 bisa dikosongin,statement bisa dikosongin
Hasilnya adalah looping forever.
*Jika hanya exp 2 dikosongin juga jadi looping forever.

Repetition : For
Example:

void reverse(char ss[])
{
int c,i,j;
for(i=0, j=strlen(ss-1 ; i<j;i++,j–){
c=ss[i];
ss[i]=ss[j];
ss[j]=c;
}
}

Infinite loop

Bedanya break sama continue
contohnya : 1 2 3 4 5
-Continue yang ada ngeskip
jadinya 1 2 3 4 6 dst
-Break
jadinya 1 2 3 4 5 6 dst

While -> hanya jalan jika statementsnya true
ada 1 kelebihan sekaligus kelemahan
-> dia ngecek dulu baru dijalanin
-> jadinya kesalahannya pasti 0
While -> contohnya KFC
do-while -> di warteg :makan dulu baru bayar

Coding:
->Harus suka dulu,kalo udah suka = GGWP
->Harus ada motivasi

while->minimal jalan 0 kali
do-while-> minimalan jalan 1 kali

*To end

Question -> dia yang nanya mau exit atau tidak
Sentinel -> contohnya :masukkan angka 0 untuk keluar

break : keluar dari scope/looping.

Pertemuan ke-3 Algorithm and Programming

15 October 2015

*Selection Definition

Syntax :
-If
-If-else
-Switch-case

*If,syntax : -> Kondisi Kompleks
if(boolean expression) statements

Nested-If
syntax :
if(boolean expression) statements 1;
if(boolean expression) statements 2;
if(boolean expression) statements 3;

or
if(boolean expression) statement 1
else
if(boolean expression) statement 2
else
if(boolean expression) statement 3

*Switch-case
-tidak sekompleks if
-contohnya menghitung huruf konsonan

-Syntax:
switch(expression){
case constant:statement 1;break;

case constant:statement 2;break;
default:statements;
}

*?:Operator
syntax :
condition?then-expression
:else-expression

if(a>b)
max_value=a;
else
max_value=b;
as
max_value=(a>b)
?a:b;

*Jenis error:
+Compile-time error
caused by syntax error
+Link-time error
Success full compiled,but cause link error
Caused by no object code at link time
+Run time error
Successfully cimpiled,but error at runtime
+Logical error
Program jalan tapi output salah

*In an algorithm implementation,an instruction or block of instructions may be executed (or not) with certain pre determinated condition, that’s why we use selection.

 

 

 

 

 

 

 

Pertemuan Ke -2 Algorithm and Programming

Thursday,8 October 2015.

Topik yang dipelajari : Operator,Operand, and Arithmetic

*Operator and Operand Introduction
1.Example :
C=A+B
[ “=” And “+” are operators, A,B,and C are operands]
2.Based on its operand number,operator can be divided into three :
-Unary Operator  ( Need One Operand)
-Binary Operator ( Needs Two Operands)
-Ternary Operator ( Needs Three Operands)
3.Berdasarkan tipe operasinya,operator dapat dibagi menjadi :
Assignment operator,logical operator,arithmetic operator,relational operator,bitwise operator, and pointer operator.

*int=bilangan bulat (dibulatkan ke bawah)
Example : 3,5=3

*Increment and Decrement
Symbol : Increment(++) and Decrement(–)
Pre increment (++N)
Post increment (N++)
Pre decrement (–N)
Post decrement (N–)
“==” : Membandingan apakah True/False
“=” : Memasukkan Nilai

*Fungsi xor : Lawannya fungsi biimplikasi
-True + True = False
-False +False =False
-True + False = True
-False +True = True

*-10
Carilah angka 2^n,yang lebih kecil dari 10.
_ _ _ _
2^3 2^2 2^1 2^0 =  1 0 1 0

-37
_ _ _ _ _ _
2^5 2^4 2^3 2^2 2^1 2^0 = 1 0 0 1 0 1

– 11 =3
-111 =7
-1111=15

 

 

 

 

 

 

 

 

 

Pertemuan Pertama Algoritma dan Pemrograman

Algoritma Sederhana

*Yang terpenting adalah Passion(niat)

*OOP-> Object Orienting Programming

*OOP Ada :
1.End Capsulation : Privation(orang lain tidak dapat akses tanpa se izin yang berwenang), dapat diubah dari mode private ke mode publik jika pihak yang berwenang menyetujuinya)
2.Abstraction : Wajib dimunculkan/implementasikan
3.Interface : Interface boleh banyak, Bapak cuman 1 (Bapak tertinggi dalam dunia OOP) =dah pasti wajib diimplementasikan
4.Polymerism : Ada banyak methode
5.Inheriten (Sunnah/tidak wajib) : Contoh bapaknya diabetes, anaknya tidak wajib menampilkan sifatnya yang memiliki diabetes.

*No SQL -> yang digunakan Facebook/Twitter agar proses update status “User” instant/cepat.

*Prospek IT di Indonesia : Prospeknya besar dan berpotensial besar
Renungkan anda ingin menjadi apa!

*Algorithm and Programming

*Bahasa C -> Bisa digunakan ke Mac,Windows,dsb

*Problem ->Process->Solution
Algorithm->Source Code->Executable Code
Problem Definition->Model Development->Algorithm Design-Writing Code
Writing Code->Compile-Syntax Err->Executable codes->Run(Testing)->Output Err->Documentation

*Flow Chart -> menggunakan bahasa sehari-hari dan mudah dimengerti

*Representing Algorithm
How to Develop an Algorithm
-Flow Chart
-Pseudo Code : Biasanya menggunakan bahasa inggris

Pseudo Code:
-Input
-Output
-Compute
-Value to an Identifier(Store)
-Compore
-Repetition (Loop)

*Structure Theorem:
1.Sequence :Berurutan,is series of consecutive commands/statements
2.Selection :If,else ,True or False
3.Repetition/Looping/interation(its all the same) :Dowhile-ENDOO sesuatu yang berulang

*History of C
Dibuat tahun 1967 oleh Martin Richards

*Why Using C:
Flexibility,portability,a well known programming languange,supported with a large number of libraries

*Coding antara 2 kemungkinan :
0=Gak ada return Value
1=Ada return Value