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.
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
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).