Apa saja yang saya dapatkan dikelas Algoritma#11?
January 20th, 2016
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;
}
Apa saja yang saya dapatkan di kelas Algoritma#10
January 13th, 2016
A. Sorting : 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 algoritma :
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 algoritma:
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 algoritma:
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
– Putarannya 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
Apa saja yang saya dapatkan dikelas Algoritma #8?
January 6th, 2016
Pada pertemuan kali ini membahas tentang File Processing & Stream
Definisi Stream :
Stream adalah urutan karakter. Semua input dan output data stream.
– Ketika program C dijalankan ada 3 standard streams yang diaktifkan:
1. Standard Input Stream
Mengontrol stream input dari keyboard
2. Standard output Stream
Mengontrol stream output ke monitor
3. Standard error Stream
Mengontrol pesan error
– Definisi File
– File adalah kumpulan record (baris)
– Record adalah kumpu lan field (column)
– Field adalah blok byte
– Byte adalah kumpulan bit
jadi 1 byte adalah 8 bit
– File dan Streams:
Membuka file ordering pointer kembali ke initiator. Pointer menunjuk ke struktur data dengan tipe FILE didefinisikan dalam stdio.h
contoh stream :
Standard Input Stream(misalnnya scanf), dengan file pointer stdin
Standard output Stream (pas mau di cetak misalnya printf), dengan file pointer stdout
Standard error Stream (jika kita pelajari C#, nanti ada perror), dengan file pointer stderr
– File Definition
– Text file tersimpan dalam teks atau ASCII (American Standard Code for Information Interchange) 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
– FILE BINARY menyimpan data numerik dalam format in line dengan format yang mikro-prosesor (contoh: Format sign-magnitude 2 ‘s complement).
– Buffer Area
Buffer area adalah bagian dari memori yang digunakan sebagai ruang sementara sebelum data pindah ke sebuah file.
contoh syntax :
FILE * fp;
(hati hati karena FILE menggunakan huruf besar)
(fp adalah pointer file awal dari buffer area)
– 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.
(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.
– Input dan output file
– fgetc (INPUT)
– Membaca satu karakter dari dua file
– fgetc (stdin) ekuivalen dengan getchar ()
– Syntax: int fgetc (FILE *stream);
– fputc (OUTPUT)
– Menulis satu karakter ke file
– fputc (‘a’, stdout) sama dengan putchar (‘a’)
– Syntax: int fputc (int c, FILE * stream);
– fgets (INPUT)
– Syntax: char *fgets( char *string, int n, FILE *stream );
– Membaca satu baris dari sebuah file yang berakhir dengan baris baru, atau maksimum n-1 jumlah karakter.
– Kembali string jika successful dan NULL jika error
– fputs (OUTPUT)
– Menulis baris ke file
– syntax: int fputs( const char *string, FILE *stream );
– Mengembalikan nilai non-negatif jika berhasi dan EOF jika error.
– fscanf (INPUT)
– Syntax:int fscanf( FILE *stream, const char *format [, argument ]… );
– Membaca data dari file dengan format scanf.
– mengembalikan jumlah field dan read jika successful, dan EOF jika error
– fprintf (OUTPUT)
– Syntax:int fprintf( FILE *stream, const char *format [, argument ]…);
– Menulis data ke file menggunakan format printf.
– Pengembalian byte written jika nilai successful dan negatif jika error.
– fwrite
– Syntax: size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );
– Writing a block of data in the buffer area to the file
– Return number of byte data written, and error otherwise.
– fread
– Syntax: size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
– Baca ukuran blok data dari file
– feof
– Syntax: int feof( FILE *stream );
– Mencari tahu apakah pointer telah mencapai end-of-file
– Kembali 0 jika tidak berakhir end-of-file
Apa saja yang saya dapatkan dikelas Algoritma #7?
December 16th, 2015
Function and Recurtion
Program biasanya di bagi kedalam modul. Modul di bahasa pemrograman C diimplementasikan dengan menggunakan function. Function adalah sekumpulan statement yang di gunakan untuk melakukan sesuatu yang spesifik.
Modul juga sering di sebut sebagai Sub-Program.Best practice in module programming:
–High Fan-In, frequently used
–Low Fan-Out, more specific functionality/ small number of job
–Self-Contained, self resource sufficientFunction in C divided in two types :
–Library function
–User-defined functionFunction Prototype
#include<math.h>
int main() {
int i;
for(i=0; i<6; i++)
printf(“%d %f”,i,sqrt(i));
return 0;
}
Contoh Function Prototype :
#include <stdio.h>
int maximum (int x, int y){
int max = x;
if ( y > max) max = y;
return max
}
Pasing Paramenter :
#include <stdio.h>
void Line (char x ) { /* x is Formal Parameter*/
{
int i; / *i, x are Local Variable */
for (i = 1; i<=10; i++) printf(“%c”,x);
}
/*Main Program*/
void main()
{
char A = ’-’;
Line(A); /* A is Actual Parameter */
}
Apa saja yang saya dapatkan dikelas Algoritma #6?
December 2nd, 2015
3 langkah sistem pemograman :
-) Input
-) Process
-) Output
Input = adalah tahap proses suatu data yang dimasukkan
Process = adalah tahap pemrosesan suatu data
Output = adalah hasil dari suatu data yang di input & process
Yang termasuk dalam input:
-) If
-) Else
-) Else if
-) Nested if
-) Switch Case
-) While
-) Do While
-) For
Yang termasuk dalam process:
-) Selection
-) Looping
-) Storage
Apa saja yang saya dapatkan dikelas Algoritma#5?
November 4th, 2015
POINTER & ARRAY
Pointer adalah variable yang dapat menyimpan alamat dari variable lain
Syntax pointer : *ptr_name;
Insialisasi pointer=
int i ,*ptr;
ptr=&i;
pointer to pointer= menyimpan alamat dari suatu pointer.
Syntax: **ptr_ptr
Inisialisasi:
Int I, *ptr, **ptr_ptr;
Ptr=&I;
Ptr_ptr=&ptr;
Array adalah suatu variable yang dapat menyimpan beberapa data yang tipe-nya sama.
Syntax : arr_name[value] //value bisa diganti dengan angka yang kita mau.
Inisialisasi:
Int B[4]={1,4,-8,9};
Mengakses array dengan pointer:
Int A[2] bisa diakses dengan printf(“%d”, A[2]);
Memberi nilai ke Array
A[6]=9;A[3]=1;
Array 2 dimensi
Syntax: type name[row][column];
1
2
3
Inisialisasi:
4
Int b[2][2]={1,2,3,4}; akan membentuk array seperti ini
Atau
Int b[2][2]={(1,2),(3,4)};
Array of pointer adalah array yang diisi oleh pointer
Type*array_name[value];
Contoh:
Int *ptr[4];
Int I;
Array of character = char arr_name[]
String adalah array karakter yang diakhiri dengan null character.
Inisialisasi : char kata[]=”BinUs”;
Apa saja yang saya dapatkan dikelas Algoritma #4?
October 28th, 2015
Materi yang diajarkan pada pertemuan ke4 adalah tentang repetition atau bisa disebut juga pengulangan, selanjunya akan dijelaskan dibawah:
1.Repetition: satu atau lebih instruksi yang diulang beberapa kali.
2.Operasi Repetition/Looping:
for
while
do-while
3.FOR
sntyax:
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
Infinite Loop:Pengulangan yang tidak ada hentinya.Dihentikan dengan menggunakan “break”.
Nested Loop:Pengulangan yang didalamnya ada pengulangan juga.
4.WHILE
Syntax :while (exp) statements;
or:
while(exp){
statement1;
statement2;
…..
}
(exp)statement:
exp adalah Boolean Expression.Hasilnya antara true(not zero) atau false(zero)
staement akan dijalankan jika bernilai ridak sama dengan 0.(true)
evaluasi “exp” dilakukan sebelum statement dijalankan.
4.DO-WHILE
Snytax :do{
;
} while(exp);
(exp)statement:
akan terus menjalankan selama statement true.
evaluasi “exp” dilakukan setelah statement dijalankan.
5.END A REPETITION
Sentinel
Break
Question,should the repetition continue?
Continue
Apa saja yang saya dapatkan dikelas Algoritma #3?
October 21st, 2015
Selection definition
Syntax:
1 .If
Fungsi “If” terjadi atau dilakukan apabila pernyataan atau syarat tersebut benar
2. If-Else
Fungsi “If-Else” terjadi apabila ada beberapa pilihan yang ada, dan di fungsi tersebut dicari fungsi yang lebih dahulu benar. ex . ada 4 pernyataan (A,B,C,D), apabila pernyataan A benar. fungsi tersebut berhenti dan menjalankan pernyataan A. Dan apabila pernyataan A salah, B salah, Dan C benar. Maka Fungsi tersebut dan akan menjalankan Pernyataan C, Begitu seterusnya.
3. Nested If
Fungsi “Nested-If” terjadi apabila ada If di dalam If tersebut. jadi didalam kasus ini ada beberapa syarat yang harus dipenuhi agar pernyataan ini bisa berjalan. ex. ada 4 pernyataan (A*A.1,A.2*,B,C,D), apabila pernyataan A benar. fungsi tersebut menjalankan pernyataan A, namun memerika pernyataan A tersebut , karena di dalam pernyataan A ada ” A.1 Dan A.2″ .dan apabila A.1 Benar, maka akan menjalankan A.1 .begitu seterusnya.
4. Switch-Case
Prinsipnya tidak beda jauh dengan “If-Else” .
5. Example (If-Else, If Else-If Else, Nested If, Switch-Case)
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
Apa saja yang saya dapatkan dikelas Algoritma #2?
October 14th, 2015
Operator, Operand and Arithmetic
Operator : sebuah proses value yang menghasilkan value baru.
Contoh : +, -, *, /, =, !
Berdasarkan tipenya operator dapat dikelompokkan menjadi :
Assignment Operator
logical Operator
Arithmetic Operator
Symbol Functionality Example
+ Addition x = y + 6;
– Subtraction y = x – 5;
* Multiply y = y * 3;
/ Division z = x/y;
% Modulo A = 10 % 3;
++ Increment x++;
— Decrement z–;
Relational Operator
== : berfungsi untuk melihat True atau False
!= : Not equal
< : less than
: greater than
>= : greater or equal than
?: : Conditional AssignmentNB : True selalu bernilai 1 sedangkan False selalu bernilai 0
Bitwise Operator
Pointer Operator
Conditional Expressions
if(a > b) z=a;
else z=b;
statement diatas dapat ditulis z=(a > b) ? a:b
Logical Operator
Symbol Functionality
&& AND
|| OR
! NOT
^ XOR
Rumus AntiPoligami
a | b & ! (A & B) = bisa pilih a atau b dan bukan a dan b
jika a = T dan b = T
maka :
a | b & ! (A & B)
=T & !(T)
=T & F
= F
NB : Sesuatu yang = 0 bernilai False
Bitwise Operators
Symbol Meaning Example
& AND A & B
| OR A | B;
^ XOR A ^ B;
~ Complement ~A;
>> Shift Right A >> 3;
<< Shift Left B << 2;
Cara mudah menhitung bilangan Biner
Contoh carilah bilangan biner dari 15
cari 2 pangkat berapa yang hasilnya mendekati 15 (2^3)
2^3 2^2 2^1 2^0
yang paling mendekati 15 diberi bilangan biner 1
2^3 2^2 2^1 2^0
1
kurangi 8 dengan 15 = 7 cari pangkat 2 yang mendekati 7(2^2) lalu beri bilangan biner 1
2^3 2^2 2^1 2^0
1 1
kurangi lagi 7 – 4 = 3 cari lagi pangkat dua yang paling mendekati 3(2^1)
2^3 2^2 2^1 2^0
1 1 1
kurangi lagi 3 – 2 = 1 cari pangkat 2 yang mendekati 1 (2^0)
2^3 2^2 2^1 2^0
1 1 1 1
jadi bilangan biner 15 adalah 1 1 1 1
Apa saja yang saya dapatkan di kelas Algoritma #1 ?
October 6th, 2015
OOP atau yang disebut juga object oriented Programming itu bersifat reusable
-encapsulation = bersifat private (no access) tetapi bisa juga memberikan sebagian hak aksesnya kepada (public access) pada user lain
-inheriten = seperti hubungan bapak dengan anak (sunnah), sifat tidak harus ditunjukan dan masih dapat diperbaiki
-abstraction = sifat yang wajib diimplementasikan / tetapi bisa tidak wajib juga tergantung kondisi (banci)
-interface = sifat yang udah pasti wajib diturunkan, bisa memiliki lebih dari 1 bapak, tetapi hanya memiliki 1 bapak asli
-polymorphism = sifat yang sama dengan bapaknya tetapi sifat objek ini bisa berbeda-beda
PROBLEM > PROCESS > SOLUTION
Algoritm > Source Code > Executable Code
Pseudocode = kode program yang berbentuk kata2/tulisan yang dibuat untuk mudah dimengerti
Flowchart = berbentuk gambar / aliran source code berbentuk diagram (Start to End)
Writing Code > Compile > Execute Code > Documentation
*if syntax error while compiling back to writing code
*if it run error while execute code back to writing code
Pseudocode (tulisan agar gampang dimengerti)
-Input
-Output
-Compute
-Storing Value to an Identifier
-Compare
-Repetition
Prosedural (codingan luas – atas ke bawah)
Structure Theorem = 1. Sequence = berurutan
2. Selection = pemilihan (if,else)
3. Repetition = pengulangan (DO, while)
Apa itu bahasa C?
bahasa C adalah bahasa basic pemrogramman yang wajib dikuasai oleh seluruh programmer.
C dan C++ itu berbeda.
bahasa C hanya memiliki 1 main function saja dan case sensitive sangat berpengaruh disini
compiler C berbagai macam seperti VCExpress dan borland C
C library :
contoh structure bahasa C
main()
{
statement;
}
variable: no keyword, no space, no number