Algoritma dan Pemrograman Ruang 800 Pertemuan 10

Materi Review

perbedaan “r” dan “r+” adalah r hanya dapat digunakan untuk membaca file sedangkan r+ dapat digunakan untuk membaca dan menulis file

atoi digunakan untuk mengubah string menjadi angka
itoa kebalikan dari atoi yaitu untuk merubah angka menjadi string
selain menggunakan itoa untuk merubah angka menjadi string, dapat juga digunakan sprintf

strcat untuk menyambung string
strtok untuk memisah string

perbedaan strcmp dan strcmpi : strcmpi tidak sensitif huruf besar / kecil sedangkan strcmp pengaruh huruf besar/kecil.

pow : untuk menggunakan pangkat dalam C
pow termasuk dalam library #include<math.h>

a-l-g-o-r-i-t-m-a.blogspot.com = didalam web banyak hasil kodingan

Algoritma dan Pemrograman Ruang 800 Pertemuan 9

Sorting and Searching

Sorting digunakan untuk mempermudah penncarian data
Sorting dibagi menjadi 3 yaitu :

>Bubble Sort<
banyaknya putaran dalam bubble sorting = banyak data dikurangi 1
Contoh cara kerja bubble sorting
5   7   1   6   4
Diawali dari paling belakang yaitu 4 dibandingkan dengan sebelahnya, 6 jika lebih kecil maka kedua angka akan bertukar tempat
5   7   1   4   6
lalu ke index selanjutnya yaitu 6 bandingkan lagi dengan sebelahnya jika tidak lebih kecil maka tidak akan bertukar tempat
5   7   1   4   6
Seterusnya hingga berurut
5   1   7   4   6
1   5   7   4   6
1   5   4   7   6
1   4   5   7   6
1   4   5   6   7
(Sorting Selesai)

>Selection Sort<
sama seperti bubble sort, banyaknya putaran dalam selection sort = banyak data dikurangi 1
Contoh cara kerja Selection Sort

  1. 5   7   1   6   4Di awali dengan index terdepan di bandingkan dengan sampingnya jika lebih kecil maka index tersebut akan ditandai, jika tidak maka akan ke samping lagi
    5   7   1   6   4

    Karena 1<5 maka 1 ditandai
    5   7   1   6   4

    Berlanjut terus hingga index terakhir. Jika sudah dibandingkan dengan index paling terakhir maka index yang ditandai akan bertukar empat dengan 5 karena masih putaran 1
    1   7   5   6   4

  2. Putaran ke 2 sama seperti putaran 1 hanya dimulai pada index ke 2
    1   7   5   6   41   7   5   6   4

    1   7   5   6   4

    1   4   5   6   7

  3. 1   4   5   6   71   4   5   6   7
  4. 1   4   5   6   7Sorting Selesai

 

>Insertion Sort<
Insertion menggunakan rekursif
Contoh cara kerja insertion Sort :


UntitledUntitledUntitled

Searching
searching menggunakan sorting, setelah disorting lalu disearch

Searching dibagi menjadi :

  1. Linear Search
    Linear search membandingkan yang dicari dengan semua data yang tersedia. Tidak cocok dengan data dengan jumlah besar. Misal ada 1 juta data, jika menggunakan linear search maka semua data akan di bandingkan dengan yang kita cari sehingga akan memakan waktu yang sangat lama
  2. Binary Search
    Binary search yang paling efisien dibandingkan dengan jenis search yang lain. Tetapi kelemahan binary search adalah data harus disort sebelum di search.
    Cara Kerja :
    10   20   30   40   50   60   70   80
    Left = 0
    Right = 7
    Mid = (L+R) : 2 = 3
    *NB: koma dalam int dihilangkan
    Yang dicari = 1
    Jika mid<yang dicari maka left = mid-1, tetapi
    jika mid>yang dicari maka right=mid+1
    Yang dibandingkan disini adalah data bukan index10   20   30   40   50   60   70   80
    Left = 4
    Right = 7
    Mid = 540<70
    10   20   30   40   50   60   70   80
    Left = 5
    Right = 7
    Mid = 6
    Index ke 6 berisi 70 nilai yang dicari

Algoritma dan Pemrograman Ruang 800 Pertemuan 7

Function and Recursion

Fungsi : Memiliki tujuan tertentu

udf (user device function) merupakan fungsi yang di buat oleh user/pengguna

build in function adalah fungsi yang sudah ada sebelumnya dalam library

int main  : standart internasional

fungsi dibagi menjadi :

  • Global : fungsi yang berlaku untuk semua, dibuat diluar fungsi
  • Local : berlaku hanya untuk 1 scope

Jika ada 2 variabel yang dibuat sama, maka local lebih di prioritaskan dari global

Passing Parameter

  • by value : bisa berbeda karena beda memori
  • by location : nilainya sama karena 1 memori (array)

Recursive adalah looping/pengulangan menggunakan fungsi

Sesi 2 oleh dosen tamu

Cryptography SSL : mengubah plaintext menjadi cipher text

Caesar Cipher digunakan untuk menyampaikan pesan militer

mechanical cryptography menggunakan enigma

SSL Certificate

berdasarkan tipenya dibagi menjadi :

  • Domain Validation : paling gampang dan murah tapi paling lemah
  • Organization validation : lebih ketat biasanya jika ingin menggunakan service ini harus memberikan data data perusahaan
  • Extended Validation : diberi hanya untuk perusahaan yang sudah berdiri selama 2 tahun atau lebih

SSL harus diinstal dengan benar

Algoritma dan Pemrograman Ruang 800 Pertemuan 6

I        >        P        >       O
(Input)     (Process)    (Output)

Process dibagi menjadi 3 yaitu :

  1. Selection
    Selection terdiri atas :

    • IF
    • IF-ELSE
    • SWITCH-CASE
  2. Looping/Repetition
    Looping terdiri atas :

    • FOR
    • WHILE
    • DO-WHILE
      *Perbedaan while dan do-while adalah do while akan melakukan 1x perintah lalu mengecek kondisi untuk looping sedangkan while akan mengecek terlebih dahulu sebelum memulai looping
  3. Storage
    • File *m
    • SQL
    • no SQL

Soal yang biasanya masuk dalam QUIZ algo-prog

  1. Membuat bentuk-bentuk bangun datar
  2. Membuat segitiga Pascal

Algoritma dan Pemrograman Ruang K3A Pertemuan 5

Pointer and Array

  • POINTER
    pointer berguna untuk menyimpan alamat variabel lain mejadi valuenya.
    “&” berarti address of
    Contoh : ptr = i;  ptr mengambil alamat i menjadi valuenya
    *ptr = 5; ptr memasukkan angka 5 ke dalam alamat yang telah diambil                                     sebelumnya sehingga nilai i sekarang = 5

pointer tidak bisa menyimpan nilai/value dirinya sendiri, value pointer berasal dari alamat variabel lain

  • POINTER TO POINTER
    pointer to pointer menggunakan dua pointer
    *ptr disebut single pointer
    **ptr_ptr disebut double pointer
    penggunaan pointer tidak hanya terbatas 2. Penggunaan pointer bisa lebih dari 2

    cara menggunakan pointer to pointer harus berurutan.
    Langkah mnggunakan Pointer to Pointer :

  1. buat suatu variabel contoh variabel i
  2. buat single pointer lalu masukkan alamat i ke dalam value single pointer
  3. buat double pointer dan masukkan alamat single pointer ke double pointer
  4. jika kita memasukkan nilai ke double pointer (contoh : **ptr_ptr = 1) maka nilai variabel i akan berubah sesuai dengan yang sudah dimasukkan ke double pointer (i=1).
  • ARRAY
    disebut juga pointer statis.
    Array berfungsi membuat banyak ruangan
    Contoh A[10] maka ada 10 ruangan yang bisa diisi dalam A

    untuk memasukkan nilai ke setiap ruang harus dilakukan dengan spesifik
    Contoh A[ruang nomor berapa yang ingin diisi]=(nilai yang akan dimasukkan)
    A[2]=5 maka ruangan ke 2 dalam A terisi dengan angka 5

A[2] bisa juga ditulis dengan *(A+2)

Kerugian penggunaan Array : menggunakan banyak memori walau pun array tidak terpakai Contoh A[100] dan ruang yang diisi hanya 50 memori yang digunakan tetap 100 bukan 50

 

Algoritma dan Pemrograman Ruang 800 Pertemuan 4

Program Control : Repetition

Repetition/Pengulangan/Looping : perintah yang di kerjakan secara berulang-ulang hingga kondisi terpenuhi.
Looping bisa hard-coded : angka sudah pasti

Syntax :

  • FOR
    for(exp1;exp2;exp3)
    {
    printf(“A”);
    }
    cara kerja for : dimulai dari exp1 lalu ke exp2 dan turun ke printf dan kembali naik ke exp3 dari exp 3 ke exp2 lalu exp2 ke printf dan seterusnya hingga kondisi di exp2 terpenuhi

    strlen : jumlah kata

  • WHILE
    while(exp)
    {

    }
    While bisa dijalankan hanya dengan kondisi True dan keluar pada saat kondisi False
    While = 0

  • DO-WHILE
    Do-While = 1 artinya pasti ada 1 output

break; = perintah untuk menyelesaikan looping
continue; = perintah untuk melangkahi

Perbedaan While dan Do-While
While diperiksa terlebih dahulu sebelum dijalankan sedangkan Do-While dijalankan lalu diperiksa

Algoritma dan Pemrograman Ruang 800 Pertemuan 3

Program Control : Selection

Selection Syntax :

  • if (hanya terdapat satu kondisi yang bernilai True atau False)
  • if – else (terdapat lebih dari satu konsidi yang bernilai True atau False)
  • switch – case

Selection : IF
fungsi if dapat berjalan saat kondisi bernilai True (Benar)
Contoh :
int a=10,b=5;
if(a > b)
{
printf(“Benar”);
}
setelah coding di jalankan maka outputnya adalah Benar. Karena kondisi if bernilai True

Selection : IF – ELSE
Contoh :
if(kondisi)
{
printf(“A”);
}
else
{
printf(“B”);
}
Jika kondisi if bernilai benar maka yang akan tercetak adalah A sedangkan jika kondisi if salah yang akan tercetak adalah B

Selection : NESTED-IF
terdapat if di dalam if
Contoh :
if (kondisi) statement1;
  if (kondisi) statement2;
     if (kondisi) statement3;

coding yang bisa dikerjakan di switch-case bisa dikerjakan menggunakan if tetapi yang menggunakan if belum tentu bisa menggunakan switch-case

Go To and Label = bisa melompat ke baris lain (sudah tidak digunakan lagi karena sulit dimengerti)

 

 

Algoritma dan Pemrograman Ruang 800 Pertemuan 2

Operator, Operand and Arithmetic

Operator : sebuah proses value yang menghasilkan value baru.
Contoh : +, -, *, /, =, !

Berdasarkan tipenya operator dapat dikelompokkan menjadi :

  1. Assignment Operator
  2. logical Operator
  3. 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–;
  4. Relational Operator
    == : berfungsi untuk melihat True atau False
    != : Not equal
    < : less than
    <= : less or equal than
    > : greater than
    >= : greater or equal than
    ?: : Conditional AssignmentNB : True selalu bernilai 1 sedangkan False selalu bernilai 0
  5. Bitwise Operator
  6. 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

Algoritma dan Pemrograman Ruang 800 Pertemuan 1

OOP (Object Oriented Programming)
OOP terdiri atas :

  1. Encapsulation (Privatisasi) : ases yang dimiliki oleh suatu admin untuk mengatur sharing data antara private atau public
  2. Inheritance : pewarisan dari orang tua yang tidak wajib untuk ditampilkan
  3. Abstraction (Banci) : wajib ditampilkan dari orang tua, orang tua yang memilih penampilan yang akan ditampilkan
  4. Interface : jasa yang digunakan untuk ditampilkan
  5. Polymorthsm =*NB : Pengertian bagian OOP menggunakan ilustrasi orang tua, anak, dan warisan. Orang tua hanya bisa satu setiap anak sedangkan interface bisa lebih dari satu

Algoritma
Dalam membuat Algoritma, terdapat dua cara :

  1. Pseudocode : berbentuk tulisan, menggunakan bahasa manusia yang dimengerti mesin
  2. Flowchart : berbentuk gambar/tabel aliran, di setiap flowchart harus terdapat awal dan akhir

Sourcecode : code yang nantinya akan di compile menjadi executable code

Alasan Menggunakan Bahasa Perograman C

  1. Fleksibel
  2. Portable
  3. Banyak diketahuidalam C terdapat case sensitive (pengaruh dalam huruf besar dan huruf kecil)

Jika mengcoding ingin memasukkan NIM tidak menggunakan integer (int) karena int biasanya digunakan untuk perhitungan (size memory int adalah 4 byte)

Perbedaan Suffix dan Casting
Suffix : 3.14f
Casting : (float)3.14