Kontrol Program: REPETISI
Repetisi adalah satu atau lebih petunjuk yang dilakukan secara berulang-ulang dalam waktu tertentu. Jumlah dari repetisi bisa langsung didefinisikan atau didefinisikan nanti pada saat program berjalan. Ada 3 macam repetisi yaitu :
- for
- while
- do-while
for
for merupakan suatu operasi looping yang akan berjalan dengan fungsi berikut:
for(exp1,exp2,exp3) statement;
atau juga bisa dengan seperti ini:
______________________
for(exp1,exp2,exp3)
{
statement1;
statement2;
statement3;
}
______________________
Penjelasan:
exp1: inisialisasi
exp2: kondisi
exp3: increment atau decrement
exp1,exp2,exp3 adalah opsional. Serta ketiga ekspresi tersebut dapat diisi berbagai ekspresi lainnya yang dipisahkan oleh tanda koma ( , ).
while
while juga merupakan suatu operasi looping yang memiliki cara kerja yaitu suatu ekspresi akan divalidasi terlebih dahulu, apabila terpenuhi maka statement tersebut akan dijalani secara terus menerus sampai ekspresi tersebut tidak valid.
Contoh penempatan:
______________________
while(exp) statements;
atau
while(exp)
{
statement1;
statement2;
}
______________________
Penjelasan:
exp akan menghasilkan pernyataan true (tidak sama dengan 0) atau false ( sama dengan 0).
statement akan dijalankan apabila exp = true (tidak sama dengan 0).
do-while
do-while adalah suatu operasi looping yang merupakan kebalikan dari while. Jika while memvalidasi ekspresi terlebih dahulu lalu bekerja. Sedangkan do-while mengerjakan statement terlebih dahulu baru memvalidasi ekspresi tersebut.
Contoh penempatan:
______________________
do{
statement1;
statement2;
statement3;
}
while(exp);
______________________
Penjelasan:
Jadi di dalam operasi looping ini program akan menjalankan perintah terlebih dahulu. Setelah perintah sudah terjalani, program baru akan memvalidasi ekspresinya. Ini akan dilakukan secara berulang-ulang hingga ekspresinya tercapai.
Repetisi merupakan salah satu operasi yang sangat penting di dalam program dan untuk memikirkan logikanya tidaklah mudah. Oleh karena itu, kita harus perbanyak latihan untuk mengerti operasi repetisi ini. Sekian terima kasih!
_______________________________________________________________________________________
Pointer & Array
Pointer merupakan sebuah variabel yang menyimpan alamat dari variabel lainnya. Pointer menggunakan dua operator yaitu (*) dan (&).
Contoh:
int i, *ptr;
int i, *ptr;
ptr = &i;
Array adalah sebuah data yang tersimpan dalam suatu variabel yang memiliki tipe data yang sama.
Contoh:
int arr[5] = {1,2,3};
for(int i=0;i<5;i++)
{
printf("%d ",arr[i]);
}
Penjelasan:
Hasil yang akan dicetak adalah 1,2,3,0,0. Dengan menggunakan array kita dapat menyimpan banyak data dalam satu variabel dengan tipe data yang sama.
______________________________________________________________________________________
Function & Recursion
Fungsi
Dalam membuat program, fungsi digunakan untuk memecahkan masalah ke dalam beberapa modul. Modul-modul tersebut memiliki fungsinya masing-masing. Fungsi digunakan untuk memudahkan dalam mengubah sesuatu dalam kodingan.
Contoh:
int maximum (int x, int y)
{
int max = x;
int max = x;
if(y>max) max = y;
return max;
}
int main()
{
int a,b
printf("Input 2 even values: ");
scanf("%d %d",&a,&b);
printf("Largest value is : %d\n",maximum(a,b));
return 0;
}
Penjelasan:
Dalam fungsi tersebut terdapat sebuah kodingan untuk mencari angka maksimal. Jadi kita tidak perlu untuk menulis kodingan di dalam int main lagi. Cukup dengan menulisnya di dalam fungsi baru. Sehingga mudah untuk memperbaiki kesalahan. Ketika mempelajari fungsi terdapat global data dan local data. Global Data adalah sebuah data yang bisa dipanggil oleh fungsi manapun. Sedangkan local data adalah sebuah data yang hanya dapat dipanggil dalam suatu fungsi saja (Tidak bisa dipanggil oleh fungsi yang lain).
Recursive
Rekursif adalah sebuah fungsi yang memanggil fungsi dirinya sendiri.
Ada 2 komponen fungsi rekursif yaitu:
- Base Case:
mengembalikan nilai konstan tanpa memanggil rekursif selanjutnya.
- Reduction Step:
urutan dari masukkan nilai dan dikonversikan ke base case.
Contoh:
- Base Case : n = 0;
- Reduction Step : f(n) = n * f(n-1)
Structures and Union
Structure
Structure adalah sebuah tipe data yang menyimpan banyak tipe data (bisa tipe data yang berbeda) lainnya.
Contoh:
struct nama struktur {
int struktur = 5;
char nama[50];
float koma;
long angka;
}nama_variabel_struktur;
Penjelasan:
Jadi dalam satu struct terdapat banyak tipe data lainnya yang dapat dipanggil dengan cara:
printf("%d",nama_variabel_struktur.struktur);
Struct dapat dikembangkan lebih lanjut seperti struct di dalam struct, array dari struct, dsb.
Union
Union digunakan untuk penggabungan memori.
Contoh:
- Deklarasi Data Union
union name_union{
tipedata1 namavariabel1;
tipedata 2 namavariabel2;
. . .
}nama_variabel_union;
- Deklarasi Variabel Union
union nama_union nama_variabel_union;
Enumeration
Enumeration adalah sebuah tipe data yang jumlah datanya telah ditentukan.
Contoh:
- Deklarasi tipe data enumerasi
enum name_type{
const1, const2, … const_n
}nama_variabel
- Enumerasi Variable
enum tipe_nama nama_variabel;
___________________________________________________________________________________
File Processing
File adalah sebuah koleksi dari record.
Record adalah sebuah koleksi dari field.
Field adalah satu block dari byte.
Byte adalah koleksi dari bit.
Cara untuk memanggil file:
#include <stdio.h>
FILE *fp;
FILE *fopen (const char *filename, const char *mode);
//Jangan lupa untuk menutup file dengan fclose.
fclose(fp);
Mode
Ada beberapa mode yang dapat dijalankan di file:
- "r" berfungsi membuka file dan membacanya.
- "w" berfungsi membuat file untuk ditulis.
- "a" berfungsi membuka file untuk diappend.
- "r+"berfungsi membuka file untuk data append.
- "w+"berfungsi membuka file untuk dibaca/ditulis.
- "a+" berfungsi membuka file untuk dibaca/diappend.
- "rb" berfungsi membuka file binary untuk dibaca.
-"wb" berfungsi membuat file binary untuk ditulis.
___________________________________________________________________________________
Sorting & Searching
Sorting dibutuhkan untuk mempercepat program dalam melakukan searching.
Ada bermacam-macam sorting:
- Bubble Sort
- Selection Sort
- Insertion Sort
- Quick Sort
- Merge Sort
- dan masih banyak lagi
Bubble Sort
merupakan sorting dengan cara membandingkan suatu variabel dengan variabel yang berada di sampingnya. Apabila variabel tersebut lebih kecil maka akan bertukar tempat. Sorting jenis ini memakan waktu yang sangat lama dan kurang efisien.
Contoh:
void Bubble(int *DataArr, int n)
{
int i,j;
int i,j;
for(i=1;i<n;i++)
{
for(j=n-1;j>=i;j--)
for(j=n-1;j>=i;j--)
{
if(DataArr[j-1] > DataArr[j]);
{
Swap(&DataArr[j-1],&DataArr[j]);
}
}
}
Selection Sort
Selection sort memiliki ciri yaitu mengambil sebuah nilai dari suatu variabel dan dibandingkan kepada variabel selanjutnya. Apabila variabel yang dipilih lebih kecil maka variabel tersebut dipilih dan dibandingkan lagi. Sampai yang terkecil dan yang terkecil akan ditaruh di paling awal. Sorting tipe ini cukup memakan waktu.
Contoh:
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 ]
}
Insertion Sort
Insertion sort menggunakan temporary untuk menampung nilai sebuah variabel sementara. Lalu dibandingkan dengan nilai variabel disampingnya. Apabila nilai tersebut lebih kecil maka akan dilakukan pertukaran tempat.
Contoh:
for(i=1;
i<n; i++) {
x =
A[i], insert x to its suitable place between A[0] and A[i-1].
}
Quick Sort
Quick sort adalah sebuah cara yang memilih satu nilai dari variabel untuk dijadikan pembanding terhadap nilai-nilai lainnya.
Contoh:
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
Merge sort adalah sebuah algoritma yang berdasarkan pembagian dan kombinasi.
Searching
Searching adalah sebuah proses mencari elemen dari sebuah array.
Ada 3 macam searching yaitu:
- Linear Search
- Binary Search
- Interpolation Search
Linear Search
Linear Search merupakan pencarian dari atas ke bawah secara berurutan. Teknik pencarian seperti ini cukup memakan waktu yang lama.
Binary Search
Binary Search adalah sebuah Teknik pencarian dengan cara mencari dimulai dari tengah.
Interpolation Search
Interpolation search adalah cara yang cukup efektif karena cara ini sama seperti mencari sebuah kata di kamus.
2201748353
binus.ac.id
skyconnectiva.com
Fraderic
Komentar
Posting Komentar