Materi Algoritma dan Pemrograman (14 Januari)

Materi yang dibahas:

Function

File Processing

Sorting

Seacrhing

Untuk codingandari bapak dosen,  dapat diakses

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

tambahan :

1.perbedaan strcmp (case sensitive) dan strcmpi (tidak case sensitive)

2.penggunaan itoa(integer to ascii) dan atoi (ascii to integer)

3.Penggunaan w,r,a dalam file Processing.

4.strtok,strcat=untuk menambah string,strcpy=untuk mengcopy string

 

Posted in Uncategorized | Leave a comment

Materi Algoritma dan Pemrograman (7 Januari)

Sorting adalah suatu cara untuk mengurutkan data sesuai dengan urutan yang kita inginkan, apakah itu dari besar-kecil ataupun kecil-besar.

Macam-macam Jenis Sorting :

1. Bubble Sorting : (BASIC)

Bubble Sorting bekerja dengan menyesuaikan value dari nilai-nilai yang bersebelahan.

Keuntungan :
+ Penulisan kode yang mudah.
+ Mudah dipahami.

Kelemahan :
– Tidak sesuai jika data yang dimiliki banyak.

2. Selection Sorting : (BASIC)

Selection Sorting bekerja dengan memilih nilai yang paling kecil lalu nilai itu akan dipindahkan menjadi yang paling pertama ataupun sebaliknya.

Keuntungan :
+ Penulisan kode yang mudah.
+ Mudah dipahami.

Kelemahan :
– Tidak sesuai jika data yang dimiliki banyak.

3. Insertion Sorting : (BASIC)

Insertion Sorting bekerja dengan menyisipkan maka ketika bilangan yang dipilih lebih kecil ia akan menggeser bilangan selanjutnya sampai bilangan itu sesuai dan terakhir menyisipkannya.

Keuntungan :
+ Penulisan kode yang mudah.
+ Mudah dipahami.

Kelemahan :
– Tidak sesuai jika data yang dimiliki banyak.

4. Quick Sorting : (ADVANCED)

Quick Sorting memiliki 4 variabel yang berguna untuk mencocokan value nilai agar nilai-nilai dalam di sorting secara cepat.

Keuntungan :
+ Bekerja dengan cepat.
+ Sangat sesuai jika data yang dimiliki banyak.

Kelemahan :
– Tidak sesuai jika data yang dimiliki sedikit.
– Penulisan kode yang cukup rumit.
– Butuh waktu yang lebih untuk memahami ini dibandingkan dengan Basic Sorting.

2. Merge Sorting : (ADVANCED)

Merge Sorting akan mengelompokan semua data menjadi 2 dan mengatur posisinya agar sesuai lalu setelah proses itu selesai data-data akan dibentuk menjadi 4 dalam 1 kelompok dan diurutkan kembali dan seterusnya sampai semua bilangan menjadi terurut.

Keuntungan :
+ Bekerja dengan cepat.
+ Sangat sesuai jika data yang dimiliki banyak.

Kelemahan :
– Tidak sesuai jika data yang dimiliki sedikit.
– Penulisan kode yang cukup rumit.
– Butuh waktu yang lebih untuk memahami ini dibandingkan dengan Basic Sorting.

Kesimpulan :
Melihat dari kekuatan dan kelemahan dari masing-masing Sorting, maka dapat disimpulkan bahwa tidak ada yang terbaik ataupun terhebat, namun semua itu bergantung pada selera Programmer sendiri dan juga data yang akan di sorting.

Searching sendiri berkesinambungan dengan Sorting karena Searching adalah mencari sebuah data dan Sorting mengurutkan semua data. Ketika semua data telah terurut maka akan lebih mudah untuk mencarinya.

3 Jenis Searching :

1. Linear Searching :

Linear Searching bekerja dengan cara mencocokan key dengan data sehingga apabila key tidak ditemukan maka data tidak ada. Linear ini sangat berguna ketika data yang kita miliki tidak tersorting.

2. Binary Searching :
Efektif penggunannya dalam data kecil dan belum disortir.

——————————————————————————————————————-
Algoritma
n : total record of array x.
left=0, right= n-1.
mid =(int) (left + right)/2.
If x[mid]=key then index = mid. Finished.
If x[mid]key then right = mid-1.
If left £ right and x[mid] ¹ key, then repeat point 3.
If x[mid] ¹ key then index = -1. Finished
——————————————————————————————————————-

3. Interpolation search :
Efektif jika data sudah disortir dan lokasi pencarian data mendetail.

——————————————————————————————————————-
Algoritma :
In the interpolation search, we’ll split the data according to the following formula:
If data[mid] = sought data, data has been found, searching is stopped and return mid.
If data[mid]!= sought data, repeat point ** (**Searching is continued while sought data > data[min] and sought data sought data, high = mid – 1
If data[mid] < sought data, low = mid + 1
It will be looped until the requirements point ** are not met thenreturn (-1), data not found
——————————————————————————————————————-

Posted in Uncategorized | Leave a comment

Algoritma dan Pemrograman

Ketika program C dijalankan ada 3 standard streams
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

FILE BINARY

Penulisan : FILE *fp;

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

Contoh syntax :
FILE * fp;

Open File
Membuka File menggunakan fopen ():
FILE *fopen (const char *filename, const char *mode);

Close File
int fclose (FILE *stream);
*harus ditutup agar bisa digunakan untuk aplikasi lainnya atau .txtnya akan digunakan terus menerus
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 sisa data ke dalam file.

Input dan Output File

fgetc (INPUT)
Syntax : int fgetc (FILE *stream);
fgetc (stdin) sama dengan getchar ()

fputc (OUTPUT)
Syntax : int fputc (int c, FILE * stream);
fputc (‘a’, stdout) sama dengan putchar (‘a’)

fgets (INPUT)
Syntax : char *fgets( char *string, int n, FILE *stream );

fputs (OUTPUT)
Syntax : int fputs( const char *string, FILE *stream );

fscanf (INPUT)
Syntax : int fscanf( FILE *stream, const char *format [, argument ]… );

fprintf (OUTPUT)
Syntax : int fprintf( FILE *stream, const char *format [, argument ]…);

fwrite
Syntax : size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );

fread
Syntax : size_t fread( void *buffer, size_t size, size_t count, FILE *stream );

feof
Syntax : int feof( FILE *stream );

Posted in Uncategorized | Leave a comment

Materi Algoritma dan Pemrograman (3 Desember)

Program is divided by modules.

Advantage :

1. Top to Down design ( program gede dibagi menjadi bagian-bagian kecil)
2. Can be done more than one programmer (mungkin ini alasan kenapa ada tugas kelompok)3. Easy Debug (soalnya int main cuma pendek, kayaknya)
4. Easy Modified (lebih terstruktur menunya)
5. Easy to documented

Best Practice
high fan-in(?), low fan-out(?),  self contained(?) >> Butuh penjelasan lebih lanjut

 

Konstruksi fungsi
return-value-type function-name (parameter-list){
statements…
}

 

Tambahan dari dosen tamu

2 jenis enkripsi : simetrik dan asimetrik
3 jenis Secure Socket Layer (SSL) : Domain Validation, Organization Validation, Extended Validation
keamanan meningkat berurut ke kanan.

Promosi Dewaweb, dapat kaos sama notes.

Posted in Uncategorized | Leave a comment

Materi Algoritma dan Pemrograman (29 Oktober 2015)

Pointer dan Array

Pointer adalah variabel yang menyimpan alamat variabel lain
syntax : <type> *pointername

(*) >> menunjukkan isi sedangkan (&) >> menunjukkan alamat

pointer tidak bisa menyimpan value, selain alamat variable lain.

contoh :

int i, *ptr
ptr = &i

artinya : value yang tersimpan di *ptr = i

 

ada beberapa jenis pointer

1. Pointer (*ptr)

2. Double Pointer (*ptr_ptr)

Double pointer jarang digunakan

 

 

Array

Definisi Array : Menyimpan data dengan tertentu dengan jumlah yang banyak. Namun hanya dengan tipe data yang sama. ( [ ] )

Sifat dari Array: Homogen ( Tipe data haya 1) , random access ( dapat diakses secara satu-persatu, tidak harus berurutan)

 

4 komponen dalam Array

–Type specified (tipe data)

–Identifier (nama dari array)

–Operator index ([ ]) (index dari operator)

–Dimensional value inside operator [ ] ( isi dari operator)

 

Array Initialization

contoh

int a [] = { 1, 2, 4, 8}
hanya 4

int a [8] = {1,2,3,4}
sisa yang tidak di inisialisasi bernilai default (0)

int B[4] = { 1, 2, -4, 8, 9 }; >> inisialisasi berurutan
akan error, karena jumlah memori yang disediakan hanya 4, sedangkan nilai yang di tampung ada 5

 

Accessing Array

Dua cara untuk mengakses array i = 2:

1. *(A+2)
2. A[2]

 

Assigning Value

Contoh :

A[6] = 15; A[3] = 27; >> memberi nilai dalam alamat tertentu

 

maka

27                        15

A[0] A[0] A[0] A[0] A[0] A[0]

 

 

Array dalam dimensi

 

Array 1 Dimensi

Contoh program

#include<stdio.h>

int SIZE = 5;

void main() {

int i, j;

int n[SIZE] = {15, 9, 1, 7, 5};

for( i=0 ; i<= SIZE ; i++) {

printf(“%5d “, n[i]);

for ( j=1; j<=n[i] ; j++) printf(“%c”,”*”);

printf(“\n”);

 

 

Array 2 dimensi

#include <stdio.h>

void main() {

int two_dim[3][5] = {1, 2, 3, 4, 5,

10, 20, 30, 40, 50,

100, 200, 300, 400, 500};

int i, j;

for (i=0; i<3; i++){

for (j=0; j<5; j++) printf(“%6d”, two_dim[i][j]);

printf(“\n”);

}

 

 

Posted in Uncategorized | Leave a comment

Materi Algoritma dan Pemrograman (22 Oktober 2015)

Repetition digunakan untuk mengulangi sebuah proses sampai pada batas yang ditentukan.

Ada 3 macam repetition

1. For : Dalam penggunaan for tidak diwajibkan untuk menentukan kondisi untuk menghentikan loop (Tetapi akan menghasilkan Infinite Loop).

Inisialisasi dalam Ekspresi For :
expression 1: Inisiasi/Pendefinisian
expression 2: Kondisi
expression 3: increment/decrement

Dalam For, ada 2 macam Loop:
A. Infinite Loop
B. Nested Loop

2. While : Sedangkan dalam penggunaan while, pengguna diharuskan ada kondisi untuk menghentikan loop, kondisi akan di cek terlebih dahulu baru akan menjalankan statement. Seperti makan di KFC, bayar dulu baru makan, ada uang, ada makan.

3. Do – While : Kalau dalam Do – While statement akan dijalankan 1 kali terlebih dahulu baru akan mengecek kondisi. Seperti makan di Warteg, yang penting makan dulu, masalah ada uang atau tidak belakangan.

4. Repetition Operation
Sentinel adalah cara untuk menghentikan operasi pengulangan.

5. Break dan Continue

Break adalah operator yang memaksa suatu program untuk selesai walaupun syarat belum terpenuhi. Break dalam pemrogramman tersebut berfungsi untuk menyelesaikan program, hasil dari pemrogramman tersebut berarti hanya “1” . Sedangkan ada satu operator lagi dalam Looping yaitu Continue, adalah operator yang berfungsi untuk melompati suatu statemen yang diberi tanda continue dalam kodeannya.

Posted in Uncategorized | Leave a comment

Materi Algoritma dan Pemrograman (15 Oktober 2015)

Dalam penerapan algoritma, sebuah instruksi  akan dijalankan berdasarkan kondisi tertentu, dengan menggunakan seleksi.

Seleksi yang digunakan

if, if-else, switchcase

Beberapa contoh dari seleksi

1. if > true, jalankan statement 1
> false, tidak dijalankan apa apa.

2. if else —> sama seperti if, namun untuk pilihan lebih dari 2.

contohnya:

if a>b
print 1
else if a=b
print 2
else
print 3

3. nested if —> merupakan perintah if, dengan perintah if di dalamnya

contohnya:

if a=b

if a=c
print Excellentelse
print Good

else
print Bad

4. switch case —> belum begitu dipahami penggunaannya

contohnya:

If -> if(exp){
statement;
}

Switch Case
switch(x)
{
case constant: statement1; break;
.
.
default: statement;
}

 

angka 0 berarti false, sedangkan 1 true.

 

tipe error

1. Compile time error
2. Link time error
3. run time error4. logical error

 

Posted in Uncategorized | Leave a comment

Materi Algoritma dan Pemrograman (8 Oktober 2015)

Operator, Operand and Arithmetic

 

Operator adalah simbol untuk memproses suatu nilai menjadi nilai yang baru.
Operand adalah data/nilai yang akan dimodifikasi.

A+B=C

A,B,C : Operand
+,= : Operator

Berdasarkan jumlah operand, operator terbagi 3

1. Unary Operator : butuh 1 operand
2. Binary Operator : butuh 2 operand
3. Ternary Operator : butuh 3 operand

Berdasarkan tipe operasi :

1. Assignment
2. Logical
3. Aritmethic
4. Relational
5. Bitwise
6. Pointer

 

1. Assignment

Untuk pernyataan tunggal, dapat menggunakan ((++N/–N) dan (N–/N++)) untuk menambah atau mengurang tergantung situasi dan keperluan.
Contoh : mis x,y : 44
Jika z = ++x, maka z,x = 45. Jika z = y++, maka z = 44, y = 45

2. Logical
Operasi yang digunakan
&& (and), || (or), !(not)

3. Aritmethic

Simbol yang digunakan antara lain
== (equality), != (not equal), </> (less than/more than), ? (conditional assignment).
Contoh : (a=a+b) = (a+=b)

4. Relational
…..

5. Bitwise

& – And ———-> A&B| – Or————-> A|B
^ – xor————> A^B
~ – complement—> ~A
>> – Shift right—-> A>>3
<< – Shift left—–> B<<2

6. Pointer
…..

 

BINARY CODE

0000 0000

cara mengetahui nilai angka dari binary code.

untuk 0 paling kanan dimulai dengan 2^0, 2^1,….., 2^7. Jika nilai 1, berarti dihitung, jika 0 maka tidak

contoh : 0000 1010 : ?
hasilnya adalah 10; 2^3 + 2^1 = 10

Posted in Uncategorized | Leave a comment

Materi Algoritma dan Pemrograman (1 Oktober 2015)

Rangkuman materi Algoritma dan pemrograman pada :

Hari : Kamis, 01 Oktober 2015
Kelas: LB07
Ruang: 800

Illustrasi OOP (Object-Oriented Program)

– Encapsulation
– Inheriten
– Abstrasction
– Interface
– Polymorphism

Perbedaan Compiler dengan Interpreter :
Compiler merupakan sebuah file yang dapat dieksekusi, sedangkan Interpreter merupakan Source Code yang diimplementasikan secara langsung.

Algoritma : Prosedur penyelesaian masalah yang akan diselesaikan

Tingkatan bahasa pemrograman terbagi dalam tiga, yakni:
1. Bahasa kelas rendah (Assembler)
2. Bahasa kelas menengah
Contoh : Pascal
3. Bahasa kelas tinggi
Contoh : Java

Cara menggambarkan Algoritma
– write (menulis) : Pseudo-code dan struktur
– draw (menggambar) : Flow-chart

Struktur teori

1. Sequence (urutan)
2. Selection (pemilihan)3. Repetition (pengulangan)

Mengapa menggunakan bahasa C?

1. Fleksibel, mudah dipahami.
2. Mudah dibawa, dapat digunakan oleh komputer sederhana, sampai yang besar
3. Bahasa pemrograman yang sudah cukup dikenal
4. Mendukung berbagai macam Libraries (contoh : stdio.h, string.h)

Beberapa kata yang memiliki arti khusus (memiliki fungsi)

break, char, float, for, int, switch, void, dll.

bahasa C, case sensitive (Membedakan antara huruf besar dan kecil)
di setiap akhir pernyataan, diakhiri dengan tanda “;”

Posted in Uncategorized | Leave a comment

HTTP (HIMTI Togetherness and Top Performance)

HTTP adalah kegiatan “Welcoming party” untuk seluruh mahasiswa baru SoCS Binus, dan hanya diadakan sekali.

HTTP tahun ini mengangkat tema “SHINE” (Strengthening Harmony and Inspiring New Experiences). Acara ini bertempat di Auditorium lantai III, Gedung BTTP II. Tiket masuk seharga 150 rb, termasuk Pengenalan bahasa C, (dilaksanakan beberapa minggu sebelum HTTP), Pin Exclusive, Lunch, E-Certificate, dan HIMTI kit yang berguna dalam pembelajaran SoCS nanti.

Transportasi disediakan oleh pihak Panitia, sehingga kami tidak perlu sibuk untuk mencari kendaraan ke sana. Pada awal kedatangan, kami langsung disuguhkan dengan aplikasi-aplikasi buatan SoCS yang tentunya menarik. Contohnya ada Games yang mengumpulkan makanan dan menghindari batu yang jatuh dari atas. Sebelum acara utama dimulai, kami diputarkan film animasi yang berhubungan dengan Science and Tech, seperti Big Hero 6 dan Mr. Peabody and Sherman.

Acara utama pun dimulai. Diawali dengan kata sambutan dari berbagai perwakilan Pemimpin jurusan, dan dilanjutkan dengan penampilan menyanyi solo dan Band. Setelah itu ada makan siang bersama, dan kunjungan ke stand-stand sponsor.

Setelah break, dilanjutkan dengan talkshow dengan entrepreneur muda yang lulus dari Binus University. Berlanjut pada acara yang paling menarik yaitu visualisasi. Setelah itu, puncak acara dilaksanakan yaitu peresmian menjadi anggota HIMTI. Acara ditutup dengan beberapa acara musik seperti Band, Solo, dan yang terakhir penampilan Disk Jockey. 

Sekian.

Posted in Uncategorized | Leave a comment