Selasa, 18 Desember 2018

AlgoProg Day 1 after UAS

Hii hari yang indahh 😁

28 November 2018 _ Day1 After UTS

Jadi hari ini adalah hari pertama setelah UTS. Jadwal hari ini sangatlah padat karena hari ini dari jam 7.20 ada kelas besar sampai jam 11.00. Setelah itu ada kelas kecil lagi dari dari jam 11.20 sampai jam 15.00. Kebetulan sekali aku ada training aslab dari jam 15.20 sampai jam 19.00 dan dari jam 19.10 aku harus sudah ada di kampus Syahdan untuk ikut LKMM Commet :)  Hari yang sangat indahhhhhh :')


Pada sesi pertama hari ini ada materi pembelajaran dan pada sesi kedua terdapat dosen tamu dan juga ada promosi dari University of Nottingham.

Materi hari ini adalah Function and Recursion dan Structure and Union & Memory Allocation.

👆 Function and Recursion

Pada sebuah program dapat dibagi pada beberapa modul. Modul di bahasa pemrograman C dinamakan function. Function itu dibentuk untuk mengelompokkan beberapa statement yang memiliki digabungkan untuk melakukan sebuah fungsi. Modul diperlukan ketika beberapa statement tersebut sering digunakan dalam sebuah program. Modul juga disebut Sub-Program.


Advantages of using Modules:
1.Top-down design with sub goal, program yang besar dibagi dalam modul-modul yng lebih kecil.
2.Dapat diselesaikan oleh lebih dari 1 developer.
3.Easier to debug, karena alur logis mudah diikuti dan lebih mudah untuk menandai titik kesahalnnya
4.Modification can be done without affecting overall codes.
5.Easier to document.

Praktik terbaik dalam pemrograman modul :


High Fan-In, frequently used


Low Fan-Out, more specific functionality/ small number of job

}

Self-Contained, self resource sufficient

Terdapat 2 jenis function dalam C  
 {
   statements;


return-value-type:  data type of the value zturned
If not filled, then default data type will be used (default integer)
If return-value-type is void then the function will not return value

Parameter-list: list of value sent from the function initiator (user)














Function di C biasanya ditulis di atas inisiator / pemanggil atau man program. Kalau tidak harus menggunakan Function Prototype
Function Prototype Objective:
To ensure a function is known by the initiator/caller
Compiler  will validate the parameters
Syntax :
  return-value-type  function-name ( parameter-list );



Function Prototype dapat ditulis sbb:


  int maximum (int a, int b);
Penting :
  parameters data type, number of parameters and its order



Identifier Scoping:
 Lingkup identifier dapat dijangkau.
Identifier Scoping:
Local : identifier dideklarasikan dalam fungsi termasuk parameter.
Global : identifier dideklarasikan di luar fungsi apa pun dan ditempatkan di atas semua fungsi dalam program C.


Passing Parameter:
Jika modul tidak mencukupi diri sendiri maka diperlukann data/nilai dan hasilnya masuk dan keluar menggunakan parameter
List of parameters is the interface of a module with other modules
Passing Parameter
By-Value, sent to other module is the value
By Location/by reference, sent to other module is the address



Recursive Definition


Recursive adalah fungsi di yang di dalam fungsi tersebut memanggil dirinya sendiri.
Recursive Function, suitable for recursive problem
Example :
 Factorial (n) or n! defined as follows :
 n! = 1, for n = 0;
 n! = n * (n-1)!, for n > 0
 4! = 4 * 3!
 3! = 3 * 2!
 2! = 2 * 1!
 1! =  1* 0!
 0! =  1
 Trace back : 4! = 1*2*3*4 = 24


Recursive Function has two components:
Base case:
  return value(constant) without calling next recursive call.
Reduction step:
  sequence of input value converging to the base case.
Contoh: (Factorial function)
Base case : n = 0
Reduction step: f(n) = n * f(n-1)







Recursive :
(-) Membutuhkan banyak memorix
(-) Memakan waktu yang lebih lama
(+) Dapat digunakan untuk menyelesaikan problem yang sulit diselesaikan secara iterative
(+) Dapat digunakan ketika efisiensi memori dan waktu eksekusi bukanlah perhatian utama
Jadi perhatikan dengan hati-hati kecepatan dan efisiensi menggunakan pendekatan iterative, daripada design logis yang bagus menggunakan rekursif.


Contoh penggunaan rekursif adalah Fibonacci :

int Fib(int n) {
   int f;
   if(n==0) f = 0;
      else if(n==1) f = 1;
         else f = Fib(n-2) + Fib(n-1);
   return f;
}
Ringkasan :
Function dibentuk melalui pengelompokan beberapa pernyataan untuk melakukan pekerjaan tertentu.
Bahasa pemrograman C mengimplementasikan pemrograman modular menggunakan function
Function in C divided in two types :
Library function
User-defined function
Recursive adalah fungsi di dalam fungsi yang memanggil dirinya sendiri.


✌  Structure and Union & Memory Allocation


- Structure : adalah tipe data untuk menyimpan sekelompok data dengan berbagai tipe data. Struktur dalam bahasa pemrograman lain juga disebut record. Nested Structure adalah struktur dengan salah satu elemnnya adalah struktur lain.







- Typedef
typedef adalah sebuah alias (nama lain)

Digunakan untuk penamaan singkat – especially identifier yang panjang

typedef sering digunakan di structure

Contoh :

typedef struct BinusStudent{

      char name[20];

      int  nim;

      float gpa;

}Mhs;

Mhs is an alias name of struct BinusStudent, and its function as a new data type.


- Bit Field 
Sebuah struct dengan masing-masing elemen menetapkan dengan jumlah bit tertentu.

-  Union Definition
Union digunakan untuk bergabung dengan memori. Dengan menggunakan union, lokasi memori dapa ditetapkan untuk dua atau lebih variabel dengan tipe data yang berbeda.

- Enumeration
Enumeration adalah tipe data dengan jumlah data yang telah ditentukan. Jumlah data yang terbatas ini dinamai untuk keterbacaan program.

- Static Keyword
 Kata kunci statis dapat digunkan sebagai tipe variabel atau mengembalikan nilai suatu fungsi.

- Memory allocation:
memperoleh bebrapa ruang memori (RAM) yang dikelola oleh OS untuk digunakan oleh program.
- Memory de-allocation:
melepaskan ruang memori (RAM) kembali ke OS

- Pointer to Functions : adalah alamat dari suatu fungsi dalam memori





Setelah materi, kita kedatangan dosen tamu bernama Dr. Amr Ahmed. Ia adalah head of School of Computer Science at UNMC. Ia menjelaskan tentang apa itu computer dan beberapa generasi dari computer. Selai itu ia juga menjelaskan tentang cloud computing.

Jadi compactnya Computer adalah sebuah mesin yang dapat memanipulasi dan menyimpan data, melakukan perhitungan, berdasarkan pada urutan instruksi(program). Terdapat 5 generasi dari computer.
Cloud computing adalah teknologi yang menjadikan internet sebagai pusat pengelolaan data dan aplikasi, dimana pengguna komputer diberikan hak akses (login).






Tidak ada komentar:

Posting Komentar