Rabu, 05 Desember 2018

File Processing 05-12-2018

Algorithm and Programming 05-12-2018

File Processing:

    File Processing adalah proses untuk membuat, membaca, menyimpan dan memanipulasi 
    file.

    file Processing ada 2 kegiatan utama membuka file dan menutup file (fopen dan fclose)
    file yang dibuka harus ditutup supaya apa yang telah dilakukan tidak hilang.
    
    dalam membuka file ada beberapa mode sepert "a", "w", "r", "w+" , "r+"

    untuk materi ini akan diberikan coding panjang dan akan dijelaskan cara kerjanya
    Contoh Program:

#include<stdio.h>
#include<string.h>


FILE* p;  FILE*xb; // Panggil File
int count = 0;

struct Toko {
    char nama_barang[100];
    int
qty_barang;
    int harga_barang;
} binusmart[100];

void read_file() {
    // R W A R+ W+
    p = fopen("datamarket.txt", "r");
    if(p == NULL) { // kalau file belom tidak ada
        printf("File not found 'datamarket' not found");
    } else {
        // kalau filenya ada
        while(!feof(p)) {
            // baca file
            // separated by "$" / # / ,

            fscanf(p, "%[^#]#%d#%d\n", &binusmart[count].nama_barang, &binusmart[count].qty_barang, &binusmart[count].harga_barang);
            // add count untuk jumlah barang
            count++; // atau count += 1;
        }
    }
    // close file
    fclose(p);
}

void write_file() {
    // R W A R+ W+
    p = fopen("datamarket.txt", "w");
    for(int i = 0; i < count; i++) {
        fprintf(p, "%s#%d#%d\n", binusmart[i].nama_barang, binusmart[i].qty_barang, binusmart[i].harga_barang);
    }
    // close file
    fclose(p);
}

void add_data(char* nama_barang, int qty, int harga_barang) {
    // passing parameter ke dalam data Structure
    strcpy(binusmart[count].nama_barang, nama_barang);
    binusmart[count].qty_barang = qty;
    binusmart[count].harga_barang = harga_barang;
    count++;   
}

void lihat_data() {
    for(int i = 0; i < count; i++) {
        printf("%s %d %d\n", binusmart[i].nama_barang, binusmart[i].qty_barang, binusmart[i].harga_barang);
    }
}

void insert(char* nama_barang, int qty, int harga_barang) {
    p = fopen("datamarket.txt", "a");
    strcpy(binusmart[count].nama_barang, nama_barang);
    binusmart[count].qty_barang = qty;
    binusmart[count].harga_barang = harga_barang;
    fprintf(p, "%s#%d#%d\n", binusmart[count].nama_barang, binusmart[count].qty_barang,     binusmart[count].harga_barang);
    count++;
}

void write_binary_file() {
    int angka[] = {1, 2, 3,4 ,5};
    xb = fopen("binary.txt", "wb");
    fwrite(angka, sizeof(angka), 1, xb);
    fclose(xb);
}

void read_binary_file() {
    int angka[6];
    xb = fopen("binary.txt", "rb");
    fread(angka, sizeof(angka), 1, xb);
    for (int i = 0; i < 6 ; i ++ ) {
         printf("%d ", angka[i]);
    }
    fclose(xb);
}

int main() {
    read_file();

    add_data("Kopi", 12, 2000);
    write_file();

    insert("Append", 10 , 100);
    lihat_data();

    write_binary_file();
    read_binary_file();
    return 0;
}


Pertama untuk mengakses file perlu membuat sebuah membuat file pointer 
        FILE* p;
setiap mau melakukan sesuatu kepada file baik access maupun edit perlu di openterlebih dahulu seperti:
        p = fopen("datamarket.txt", "r");    
        tulisan dengan warna ini menunjukan file yang mau dibuka
        warna ini menunjukan mode. ada beberapa mode
        "r" = membaca atau read file
        "w" = write atau menulis (menulis berarti menghapus semua dari file tersebut)
        "a" = append atau menambahkan
        "wb" = menulis dalam binary
        "rb" = membaca dalam binary
 
 Bila file dengan nama tersebut tidak ada maka nilai p adalah NULL.

 setelah dibuka file tersebut dapat digunakan
ada beberapa perintah yang dapat dilakukan pada file seperti 
fscanf = membaca isi dari file
fprintf = mencetak kedalam isi file. (bukan mencetak dalam sistem bedakan dengan printf)

setelah mengunakan file, file HARUS ditutup dengan fclose(nama pointer file) diingatkan kembali

- Stay curious -

    NIM: 2201762723
    binus.ac.id
    skyconnectiva.com
    Hubert Michael Sanyoto

Jumat, 30 November 2018

Function, dan Cloud 28-11-2018

Algorithm and Programming 28-11-2018

       Materi: Fuction, Data Structure <- struct saja and a bit about Cloud services:

     FUNCTION:

        Dalam dunia kerja, programmer akan diminta untuk membuat sebuah program 
             yang besar dan kompleks. Akan banyak hal yang perlu dilakukan dala
             program. Untuk memudahkan membuat hal tersebut digunakanlah function 
             atau fungsi.Program akan dibagi kedalam beberapa fungsi. Sehingga 
             program lebih mudah untuk dipahami. 

             manfaat function adalah sebagai berikut:
                 - Memudahkan untuk dipahami
                 - Memudahkan maintenance 
                 - Mengurangi redudansi
                 - Lebih  mudah untuk dokumentasi 
         Penulisan Function dalam C:
             syntax: returnDataType nama (dataType parameter1, dataType parameter2, ... //bisa cukup banyak) { statement; return value;}

             Function dapat dibedakan menjadi 2:
                     Built-in function = function yang disediakan oleh dev dan dapat langsung
                     dipakai
                          contoh: strcpy() string copy, strstr() string compare, sqrt() akar
                          untuk menggunakan built-in function pertama pelu include
                          library yang sesuai seperti #include<math.h> untuk function
                          yang berhubungan dengan matematika

                     User-defined function = function yang dibuat oleh user sendiri

        untuk dapat menggunakan function, function perlu dipanggil dengan cara 
        namaFunction(parameter, ...); <- kalau ada sebuah atau lebih dipisahkan    
                                                              dengan tanda koma
        namaFunction(); <- kalau tidak ada nilai yang dikirim ke function.
        
       parameter adalah nilai yang akan dikirim ke dalam function. paramater ada dua jenis pertama pass by value dan pass by reference. pass by value adalah mengirim sebuah nilai ke dalam function untuk diolah apapun yang dilakukan dalam function tidak akan mempengaruhi nilai aslinya. pass by reference alamat dikirim kedalam function, jika dalam function tersebut nilai yang terdapat alamat diganti maka nilai asli yang dikirim juga berubah

       Return data type merupakan data type nilai yang di kemballikan saat memanggil
       function.

       seperti contoh:

 int rumah (int number) {
      return number * 2
}

  x = rumah(2);
printf("nilai rumah : %d\n", x);

output : 4

 Return data type sama seperti tipe data saat membuat sebuah variable int, double, char, float. namun returnDataType function juga bisa void. Function yang memiliki return data type void tidak perlu dan tidak boleh mengembalikan sebuah nilai apapun.

     STRUCT: (Updated 5_12_2018)

       Struct adalah struktur data yang dapat menyimpan beberapa data yang berbeda tipe
           Sangat sering dipakai misal barang yang berisikan nama, harga, dan jumlah atau buku
           dengan judul pembuat tahun terbit dsb

             syntax: struct namaStruct{ dataType namaData; dataType namaData; dataType 
              namaData; // bisa banyak};

           struct membuat sejenis data type yang baru. Sehingga, untuk menggunakannya 
           perlu membuat sebuah variable dengan Data type nama Struct tersebut seperti:  
                    namaStruct namaVariable // nama struct yang telah dibuat sebelumnya
           Untuk dapat mengakses item yang ada di struct maka penulisanya
           
           namaVariable.namaData

           struct bisa juga didalam struct untuk penuisannya
           namaVariableStruct1.namaVariableStruct2.namaData // yang ada di struct ke dua

           Contoh Program:
          #include<stdio.h>
          #include<string.h> 

          struct alamat {

              char kota[20];
              char jalan[20];
              int no;
          }; 


          struct Mahasiswa{
              char nim[11];
              char nama[30];
              double ipk;
              char gender;
              alamat varAlamat;
          }; 


          int main() {   
              Mahasiswa mhs1;
                  

              strcpy(mhs1.nim, "001234859"); // pakai strcpy karena
                                             // ingin memasukan string
              strcpy(mhs1.nama, "Adam Santosa");
              mhs1.ipk = 45;
              mhs1.gender = 'L'; 

              
              printf("Mhs1\n");
              printf("===================\n");
              printf("Nim    mhs1 : %s\n", mhs1.nim);
              printf("Nama   mhs1 : %s\n", mhs1.nama);
              printf("IPK    mhs1 : %.2f\n", mhs1.ipk);
              printf("gender mhs1 : %c\n", mhs1.gender);
              printf("Jalan  mhs1 : %s\n", mhs1.varAlamat.jalan);


              return 0;

              } 
            pada kasus ini hanya 1 mahasiswa saja, untuk menyimpan banyak data maka 
           dibuatlah array seperti Mahasiswa mhs[100]. ingat pula diakhir saat mebuat struct
           diberi ;
 

     CLOUD SERVICE:



Saat diakhir dari pelajaran, datang tamu yang menjelaskan mengenai Cloud Service. Cloud sangat banyak  digunakan oleh perusahaan terkenal. Dalam cloud service tedapat 3 model yang berbeda, Software as a Service(Saas), Infracstructure as a Service(IaaS), dan Platform as a Service (PaaS).  cara membedakan Saas, IaaS dan PaaS dapat dianalogikan seperti order Pizza, IaaS seperti menyiapkan seluruh peralatannya, meja makan, membeli satu paket yang berisikan semua bahan baku pizza. PaaS seperti membeli pizza dikirim atau take home dimana perlu menyiapkan meja makan. kalau SaaS seperti makan di restaurant pizza tersebut.


- Stay curious -

    NIM: 2201762723
    binus.ac.id
    skyconnectiva.com
    Hubert Michael Sanyoto



 

 

 

 

Rabu, 31 Oktober 2018

Review 31-10-2018

Algorithm and Programming 31-10-2018

Review:

            There are 6 main topics:
                 > Algorithm & Programming 
                 > Introduction to C Programming 
                 > Operator, Operand, and Arithmetic
                 > Program Control: Selection
                 > Program Control: Repetition
                 > Pointers and Arrays

     ALGORITHM:

                 Procedure for solving a problem
                 To write an algorithm:
                      -writing : Pseudocode
                           Pseudocode can use artificial and informal language
                           Keywords are allowed in writing Pseudocode
                      -drawing : flowchart
                 Basic Computer Operation:
                      1. Input
                      2. Output
                      3. Compute
                      4. Storing Value
                      5. Compare
                      6. Repetition
                 Structure Theorem
                      1. Sequence
                      2. Selection
                      3. Repetition

     INTRODUCTION TO C PROGRAMMING:

                 C Structure consist of function
                                  have many library (standard, by yourself, form others)
                                  every statement closed with ;
                                  has one function called main
                                  case sensitive
                 Comments // <- for 1 line /* */ <- more than 1
                 Escape Sequence \a, \n, \', \", \\, \t
                 Character A - Z, a - z, 0 - 9, '!', '&', '+' etc.
                 Identifier naming mechanism for various element
                                Case Sensitive (Leo not equal to leo)
                                Never use keyword
                                cannot started with numbers 
                  Keywords is words that have special meaning to C compiler
                  Data types character, integer, float  <- basic
                                char, int, float, double, long, unsigned
                  Casting (int), (float) to change data type
                  Constant #define Pi 3.14 
                                const float Pi = 3.14;
                  Sizeof to find out size of data
                  Output Operation
                                printf();
                                putchar();
                                puts();
                  Input Operation
                                scanf();
                                getchar;
                                getch();
                                gets();

     OPERATOR, OPERAND, and ARITHMETIC:

                 C = A + B
                 
                 C, A, B are Operands -> part which data is to be manipulated
                 =, + are Operator -> symbol to process values in result for new value
                      Based in its operand, operator divided into three:
                           - Unary    Operator (1 Operand) Ex. ++A ,A++, --A , A--
                           - Binary   Operator (2 Operand) Ex. A + B, A - B, A = B
                           - Ternary Operator (3 Operand) Ex. Condition ? argument : argument
                      Based on its operation type, operator can be grouped as:
                           1. Assignment =
                           2. Logical && || !
                           3. Arithmetic + - * / % ++ -- ()
                           4. Relational >=, <= , == (to differentiate between =) > , , ?:
                           5. Bitwise >> << ^~ | &
                           6. Pointer  *(value of) & (address of) 
                 Operator will have precedence and associative:
 

     PROGRAM CONTROL 

         SELECTION:
Selection Definition

If

If-Else

Nested If

Program Examples Using If

Switch-Case

?: Operator 
- Go To Label: syntax: goto label; label:

Error Type: Compile-Time Error: syntax error
                    Link-Time Error : Successfully compiled but no object code at link time
                    Run-Time Error: successfully compiled but Run result causing  
                         overflow, floating point underflow, Divison by zero etc
                    Logical Error: YOUR FAULT :v <- I mean incorrect logical flow/ 
                         Algorithm

REPETITION: For(know the limit)
While (don't know the limit)
Do-While (at least 1 time must be executed)
Repetition OperationBreak vs Continue



     POINTERS and ARRAY:

           pointer: datatype* ptrname;
                pointer must be assigned with address
                pointer has its own address it means pointer can point another pointer
                datatype** ptr2;
                ptr2 = ptr1
                ptrname = &address;
                to access address value through ptrname, *ptr <- dereference
                Careful when using scanf array, and string because scanf read a 
                     value and store it in address of some variable
                Creating array: datatype name[length] = {// if you want to set a value first};
                Accessing array[index] // 0 based index
                String is array of char. Remember STRING ALWAYS ENDS with '\0'
                Array consist of single array, 2D array
               
               
    - Stay curious -
       NIM: 2201762723
       binus.ac.id
       skyconnectiva.com
       Hubert Michael Sanyoto