Senin, 17 Desember 2018

Sorting & Searching

Ruben Marton Rezer
2201744941
LP01

Pada tanggal 12 Desember 2018 saya mempelajari tentang Sorting & Searching

Tipe sorting:
-ascending
-descending

contoh-contoh sorting:
-bubble sort
-selection sort
-insertion sort
-quick sort
-merge sort

code bubble sort:

void Bubble(int *DataArr, int n)
{
    int i, j;
    for(i=1; i<n; i++)
    for(j=n-1; j>=i; j--)
    if(DataArr[j-1] > DataArr[j])
               Swap(&DataArr[j-1],&DataArr[j]);
}
code selection sort:

for(i=0; i<N-1; i++){      /* N=number of data */
  Set idx_smallest equal to i
  for(j=i+1; j<N; j++){
  If array[ j ] < array [ idx_smallest ] then idx_smallest = j
    }
  Swap array[ i ] with array[ idx_smallest ]
}
code insertion sort:

for(i=1; i<n; i++) {
     x = A[i], insert x to its suitable place between A[0] and A[i-1].
}
code quick sort:

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] and R[J+1],...,R[right] > R[J].
            QuickSort(left, J-1);
            QuickSort(J+1, right);
       }
}


Merge sort adalah sebuah algortima sorting berdasarkan algoritma divide-and-conquer

Searching adalah aksi untuk mendapatkan informasi berdasarkan kunci tertentu dari informasi yang disimpan

tipe-tipe algoritma searching:
-linear search
-binary search
-interpolation search

code linear search:
1. n : total record of array x.
2. For each x[i], 0 £  i £ n-1, check whether x[i] = key.
3. If x[i] = key, then the searched data is found in index=i. Finished.
4. If x[i] ¹ key, then continue searching until the last data which is i = n-1.
5. If i= n-1 and x[i] ¹ key, it means the data is not exist in the list, and set index = -1. Finished.

code binary search:
1. n : total record of array x.
2. left=0,  right= n-1.
3. mid =(int) (left + right)/2.
4. If x[mid]=key then index = mid. Finished.
5. If x[mid]<key then left = mid+1.
6. If x[mid]>key then right = mid-1.
7. If left £ right and x[mid] ¹ key, then repeat point 3.

8. If x[mid] ¹ key then index = -1. Finished.

code interpolation search:
1.In the interpolation search, we'll split the data according to the following formula:
2.If data[mid] = sought data, data has been found, searching is stopped and return mid.
3.If data[mid]!= sought data, repeat point **
4.**Searching is continued while sought data > data[min] and sought data < data[max].
5.Looking for a mid value by entering into the interpolation formula
6.If data[mid] > sought data, high = mid – 1
7.If data[mid] < sought data, low = mid + 1

8.It will be looped until the requirements point ** are not met then return (-1), data not found



File Processing

Ruben Marton Rezer
2201744941
LP01

Pada tanggal 5 Desember 2018 saya mempelajari tentang File Processing

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

File adalah koleksi dari record

Buffer area adalah bagian dari memory yang digunakan sebagai tempat cadangan sebelum data dipindahkan ke sebuah file
syntax:

  FILE *fp;


Membuka sebuah file dengan fopen():

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


Menutup sebuah file dengan fclose():

  int fclose (FILE *stream);


fgetc(input) untuk membaca sebuah karakter dari file
syntax:
int fgetc( FILE *stream );
fputc(output) untuk menulis satu karakter kepada sebuah file
syntax:
int fputc( int c, FILE *stream ); 

fgets(input) membaca sebuah line dari file yang diakhiri dengan sebuah line
syntax:

char *fgets( char *string, int n, FILE *stream );
fputs(output) untuk menulis sebuah line kepada sebuah file
syntax:

int fputs( const char *string, FILE *stream );
fscanf(input) untuk membaca data dari file inline dengan format scanf
syntax:int fscanf( FILE *stream, const char *format [, argument ]... ); 
fprintf(output) untuk menulis data kepada file dengan format printf
syntax:int fprintf( FILE *stream, const char *format [, argument ]...);
fwrite untuk menulis sebuah block dari data dalam area buffer untuk file
syntax:size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream ); 
fread untuk membaca block size sebuah data dari file
syntax:size_t fread( void *buffer, size_t size, size_t count, FILE *stream ); 
feof mencari jika pointer sudah mencapai end-of-file
syntax:int feof( FILE *stream );

Structures and Unions & Memory Allocation

Ruben Marton Rezer
2201744941
LP01

Pada tanggal 28 November saya mempelajari tentang Structures and Union & Memory Allocation

Structure adalah sebuah tipe data untuk menyimpan sebuah grup data untuk macam-macam tipe data

syntax structure:

struct name_structure {
    dataType1 name_field1;
    dataType2 name_field2;
   
};


Nested Strcuture adalah sebuah structure yang salah satu elemennya adalah structure lain

syntax nested structure:

struct struct_name variable = {value_1, …, value_m};


Typedef adalah sebuah alias untuk mempersingkat nama untuk identifier yang panjang.
contoh:

typedef struct BinusStudent{
      char name[20];
      int  nim;
      float gpa;
}Mhs;


Bitfield adalah sebuah struct yang setiap elemennya ditetapkan dengan jumlah bit tertentu
syntax:

struct name{
           type  field1: numberof_bit;
           …...
      };


Union digunakan untuk memory join. Dengan menggunakan union, lokasi sebuah memory bisa ditetapkan untuk variabel yang berjumlah 2 atau lebih dengan tipe data yang berbeda

Enumeration adalah sebuah tipe data yang jumlah datanya sudah ditentukan sebelumnya.
deklarasi enumeration:

enum name_type {
        const1, const2,… const_n
      }name_var;
Static keyword bisa digunakan sebagai tipe variabel
syntax:
static type variable_name;

Pointer to function adalah almat dari sebuah function dalam memory
syntax:

  return_type (* pointer_name)(parameter);

Function and Recursion

Ruben Marton Rezer
2201744941
LP01

Pada tanggal 28 November 2018 saya mempelajari Function dan Recursion

konstruksi function:

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

Tujuan prototype fungsi:
- untuk memastikan sebuah fungsi dikenal oleh initiator/caller
-compiler akan memvalidasi parameter

syntax prototype fungsi:

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


Recursive adalah sebuah panggilan fungsi dalam sebuah fungsi memanggil fungsinya sendiri
Komponen recursive:
-Base case
-Reduction step

Kekurangan dari recursive:
-lebih banyak mengonsumsi memori
-butuh waktu yang lebih lama

Pointer and Arrays

Ruben Marton Rezer
2201744941
LP01

Pada tanggal 17 Oktober 2018 saya duduk di auditorium dan mempelajari tentang Pointer dan Array

Pointer adalah sebuah variable yang menyimpan alamat dari variabel lain

syntax pointer:
  <type> *ptr_name;
Pointer to Pointer adalah sebuah variabel yang menyimpan alamat lain dari pointer lain.
syntax dari pointer to pointer:
  <type> **ptr_ptr ;

Array adalah data yang disimpan di struktur tertentu yang diakses sebagai suatu grup atau sebagai suatu individual.
Karakteristik dari array:
-Homogenous
-Random Access
syntax array:
type array_value [value_dim];
syntax array 2 dimensi:
  type name_array[row][col];
syntax array 3 dimensi:
  type name_array[row][col][depth];

array of pointer adalah array yang diisi dengan pointer
syntax array of pointer:
    type *array_name [value_dim];
array of character adalah array yang diisi dengan karakter
syntax array of characters:
  char array_name[value_dim];

String adalah array of character yang diakhiri dengan null character

Sabtu, 13 Oktober 2018

Tugas Algo
Ruben Marton Rezer
2201744941
LP01

Pada hari rabu 10 oktober 2018 pada jam 7.20 pagi saya berkumpul di ruang auditorium gedung binus anggrek untuk mendapatkan pelajaran algoritma&programming tentang repetition

saya mempelajari beberapa hal seperti operasi untuk looping adalah:
-for
-while
-do-while

syntax for:
for(exp1; exp2; exp3) statement;
or:
for(exp1; exp2; exp3){
  statement1;
  statement2;
  …….
 }
syntax while:
while (exp) statements;
or:
while(exp){
  statement1;
  statement2;
   …..
}

syntax do-while:

do{
    < statements >;
} while(exp);
contoh penggunaan repetition for adalah:

#include<stdio.h>
int main()
{
    int x;
    for( x = 1 ;  x <= 10 ;  x++ ) printf( "%d\n", x );
    return(0);
}


contoh penggunaan repetition while adalah:

int counter = 1;
while ( counter <= 10 ) {
     printf( "%d\n", counter );
     ++counter;
}
contoh penggunaan repetition do-while

do {
     printf( "%d  ", counter );
  ++counter;
} while (counter <= 10);
cara untuk memberhentikan repetition adalah dengan menggunakan break sedangkan untuk melewatkan sisa statement didalam repetition adalah dengan continue

Selasa, 20 Januari 2015

Tugas




Teks dengan Efek Api
1.Aktifkan program Adobe Photoshop dan tekan huruf “D” pada keyboard untuk mereset warna                                                  foreground dan background menjadi warna hitam dan putih.
2.Tekan huruf “X” untuk menukar posisi kedua warna tersebut sehingga warna foreground menjadi    putih dan warna background menjadi hitam.
3.Buat dokumen baru dengan mengklik “File “> “New…” Pada kotak dialog “New”, buatlah pengaturan           sebagai berikut:
                Name                    :Efek Api
                Width                    :400pixel
                Height                  :400 pixel
                Mode                    :Grayscale
                Content               :Background Color
Klik tombol “OK” untuk membuat dokumen baru

4.Pilih “Type Tool” pada toolbox.
Pada “Option Bar”, gunakan pengaturan sebagai berikut:
                Font                       :Arial Black
                Type                      :Regular
                Size                        :15,5 pt
(biarkan opsi yang lainnya tetap)

5.Tuliskan teks “HOTNEWS” pada area kerja.

6.Pilih “Move Tool” pada toolbox dan pindahkan teks agak ke bawah.

7.Pilih menu “Layer”>”Flatten Image” untuk menyatukan semua layer yang ada menjadi layer tunggal.

8. Pilih menu “Image” >”Rotate Canvas” > “90 CCW” untuk memutar kanvas berlawanan jarum jam.

9. Pilih menu “Image” >“Adjustments > “Invert”.

10.Pilih menu “Filter”>”Stylize”>”Wind…” untuk memberikan efek tiupan angin (wind)
Pada kotak dialog “Wind”, buatlah pengaturan sebagai berikut:
Method                                               :Wind
Direction                              :From the Right
Klik tombol “OK” untuk melihat hasilnya.

11. Pilih menu “Image”>”Adjustment”>”Invert”

12. Pilih menu “Filter”>”Stylize”>”Wind…” untuk memberikan efek wind yang kedua.
                Pada kotak dialoh “Wind”, buatlah pengaturan sebagai berikut:
                Method                                               “Wind
                Direction                              :From the right
                Klik tombol “OK” untuk melihat hasilnya.

13. Pilih menu “Filter”> “Wind” untuk memberikan efek wind dengan pengaturan yang sama

14.Sekali lagi pilih menu “Filter”>”Wind”.

15.Pilih menu “Image”>”Rotate Canvas”>”90o CW” untuk mengembalikan posisi kanvas seperti semula.

16. Pilih menu “Filter”>”Distort”>”Ripple…” untuk memberikan efek riak atau bergelombang.
                Pada kotak “Ripple” buat pengaturan sebagai berikut:
                Amount                               :80
                Size                                        :Medium
                Klik tombol “OK”.

17. Pilih menu “Image”>”Mode”>”Indexed Color” untuk mengubah mode grayscale ke mode warna berindex

18. Pilih menu “Image”>”Mode”>”ColorTable…”

19. Pada kotak dialog “Color Table”, pilih “Table”:
“Black Body”.