IT234 - Algoritma dan Struktur Data
Ramos Somya
Pengertian Looping Beberapa instruksi diulang untuk suatu jumlah pengulangan Beberapa instruksi diulang untuk suatu jumlah pengulangan
yang tertentu.yang tertentu. Jumlah pengulangan dapat diketahui sebelumnya atau Jumlah pengulangan dapat diketahui sebelumnya atau
ditentukan dalam perjalanan program. ditentukan dalam perjalanan program.
Kegunaan Looping Meringkas algoritma (atau program) dengan
mengotomatisasi perintah-perintah yang sama yang dikerjakan berulang-ulang.
Struktur loop sangat efektif karena dapat menyingkat puluhan (bahkan mungkin ratusan hingga ribuan baris kode) menjadi beberapa baris perintah saja.
forwhiledo while
Format:for (inisialisasi; kondisi; increment/decrement){
statement;}
Contoh:printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);printf(“It is fun!\n”);
for (n=0; n<10; n++) {for (n=0; n<10; n++) {printf(“It is fun!\n”);printf(“It is fun!\n”);
}}
Format:while (boolean expression){
statement;}
Contoh:int n = 0;
while (n<10) {printf(“It is fun!\n”);n++;
}
Format:do {
statement;}while (boolean expression);
Contoh:do {
printf(“It is fun!\n”); }while (n<10);
/* Program Segitiga */#include <stdio.h>int n;void main(){
printf("n = ");scanf("%d",&n);printf("\n");for(int i=1;i<=n;i++) {
for(int j=1; j<=i ; j++) {printf("*");
}printf("\n");
}}
Pernyataan yang dipakai untuk mengambil keputusan berdasarkan suatu kondisi. Bentuk pernyataan ini ada dua macam : if if – else switch case
Format if:
Format if-else:
if (kondisi) {pernyataan;
}
if(kondisi) { pernyataan1;}else { pernyataan2;}
if(kondisi1) { Pernyataan1;}else if(kondisi2) { Pernyataan2;}else if(kondisi3) { Pernyataan3;}else { pernyataan4;}
#include<stdio.h>void main(){ int nilai; printf("Masukkan nilai Anda (10-100) = "); scanf("%i",&nilai); if(nilai>60) { printf("Anda Lulus"); } else { printf("Anda tidak Lulus"); }}
switch(ungkapan){ case ungkapan1: pernyataan1; break; case ungkapan2: pernyataan2; break; ........ default: pernyataanDefault}
#include<stdio.h>void main(){ char nilai; printf("Masukkan Nilai Anda (A, B, C, D atau E) = "); scanf("%c",&nilai); switch(nilai){ case 'A':
printf("Sangat Baik");break;
case 'B':printf("Baik");break;
case 'C':printf("Cukup");break;
default: printf("Anda Sebaiknya Mengulang!"); }}
#include<stdio.h>void main(){ char nilai; printf("Masukkan Nilai Anda (A, B, C, D atau E) = "); scanf("%c",&nilai);
if(nilai == 'A'){printf("Sangat Baik");
} else if(nilai == 'B'){printf("Baik");
} else if(nilai == 'C'){printf("Cukup");
} else { printf("Anda Sebaiknya Mengulang!"); }}
• Sejauh ini program yang kita pelajari masih sangat terbatas, karena statement assignment hanya berupa pemberian satu nilai pada satu variabel
• Padahal sering kali kita perlu untuk meng-assign ataupun memanipulasi banyak nilai ke sekelompok variabel
• Sebagai contoh jika anda membuat program yang membaca 100 nilai percobaan untuk dihitung nilai rata-rata-nya, akan sangat repot jika kita menghitungnya dengan cara berikut: rata_rata = (x1 + x2 + x3 + x4 + x5 + dst )/100.
#include<stdio.h>void main(){ int jumlah = 0; float rata2 = 0; int angka1; int angka2; ………. angka100; printf("Masukkan Angka1 = "); scanf("%d",&angka1); jumlah += angka1; printf("Masukkan Angka2 = "); scanf("%d",&angka2); jumlah += angka2; … rata2 = jumlah/100; printf("Rata-rata = %4.2f",rata2);}
Array: adalah kumpulan data bertipe sama yang menggunakan nama sama.
Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama.
Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan subscript.
Sebuah subscript berupa bilangan di dalam kurung siku.
Array dapat diibaratkan sebagai sebuah gedung yang memiliki beberapa ruangan dengan bentuk dan ukuran yang sama
Array 1 Dimensi Array 2 Dimensi Array 3 Dimensi
Deklarasi Array (1D, 2D dan 3D):– Tipe data elemen array– Nama array– Jumlah elemen array
Deklarasi 1 Dimensi:tipe_data nama_larik[ukuran];
Contoh deklarasi Array 1 Dimensi:int val[ 5 ]; //declaration
Cara 1:val[0] = 5;val[1] = 10;val[2] = 15;val[3] = 20;val[4] = 25;
Cara 2:int val[5] = {5,10,15,20,25};
• Contoh array integer 1D bernama n yg memiliki 5 elemen,n[0] = 1, n[1] = 3, n[2] = 5, n[3] = 7, n[4] = 9 dideklarasikan sbb: – int n[5] = {1,3,5,7,9};
Akses Indeks pada Array
Perhatikan index-nya, jangan sampai terjadi Error karena akses index yang tidak ada.
#include<stdio.h>void main(){ int nilai[5] = {70, 80, 82, 60, 75}; printf("\nIsi elemen ke-1 : %d", nilai[0]); printf("\nIsi elemen ke-2 : %d", nilai[1]); printf("\nIsi elemen ke-3 : %d", nilai[2]); printf("\nIsi elemen ke-4 : %d", nilai[3]); printf("\nIsi elemen ke-5 : %d", nilai[4]);}
#include<stdio.h>void main(){ int jumlah = 0; float rata2 = 0; int angka[5]; for(int i=0;i<5;i++){
printf("Masukkan Angka ke %d = ",i); scanf("%d",&angka[i]); jumlah += angka[i];
} rata2 = jumlah/5; printf("Rata-rata = %4.2f",rata2);}
Merupakan array yang terdiri dari m buah baris dan n buah kolom.
Bentuknya dalam matriks atau tabel.
Deklarasi Array 2 Dimensi:TipeData Nama_array[subscript_baris][ subscript_kolom]
int X[3][4];
Misal ingin mengisi elemen array baris 2 kolom 3 dengan nilai 10, maka perintahnya:X[1][2] = 10;
for ( baris=1 ; baris<=3 ; baris++){
for ( kolom=1 ; kolom<=3 ; kolom++){ printf("\tMasukan matrik elemen [%d,%d]
= ",baris,kolom); scanf("%d",&matrik[baris][kolom]);}
}
Output:
Menampilkan Isi Array 2 Dimensi:
for ( baris=1 ; baris<=3 ; baris++){
for ( kolom=1 ; kolom<=3 ; kolom++){ printf("\tMatrik elemen [%d,%d] =
%d",baris,kolom,matrik[baris][kolom]);}printf("\n");
}
Hasil:
Dalam bentuk matriks:printf("\tMatrik yant telah diinput adalah : \n");for ( baris=1 ; baris<=3 ; baris++){
for ( kolom=1 ; kolom<=3 ; kolom++){
printf("\t%d",matrik[baris][kolom]);}printf("\n");
}
Output:
1. Buatlah program untuk menghitung nilai faktorial dengan menggunakan perulangan for, while dan do while.
2. Buatlah program untuk menghitung luas segitiga, perihitungan dilakukan terus-menerus selama masih diinginkan.
Buatlah program untuk menampilkan bilangan terkecil dari n bilangan yang dimasukkan oleh user.
Buatlah program untuk menghitung penjumlahan dari 2 buah matriks.