Anda di halaman 1dari 12

Latihan Soal Teori Algoritma

NIM : 3411211132
Nama : ADRIANSYAH PRAMANA
Kelas :D
Materi:
1. Sruktur Dasar Algoritma dan Bahasa C++
a. Tuliskan Struktur Dasar algoritma dengan lengkap dan berikan penjelasan dari
masing-masing blok
Jawab:
• Runtunan (Sequencial) adalah instruksi yang dikerjakan secara beruntun
atau berurutan baris per-baris mulai dari baris pertama hingga baris
terakhir, tanpa ada loncatan atau perulangan.
• Pemilihan(Selection) adalah instruksi yang dipakai untuk memilih satu
aksi dari beberapa kemungkinan aksi berdasarkan suatu persyaratan.
• Repettion(Perulangan) adalah instruksi yang dapat mengulangi
pelaksanaan sederetan instruksi-instruksi lainnya berulang kali sesuai
dengan persyaratan yang ditetapkan.
b. Berikan contoh algoritma sederhana dari point a tersebut
Jawab:
• Runtunan
1) //judul
2) Mencari luas segitiga
3) //Deskripsi
4) real Alas, Tinggi;
5) real Luas;
6) //Implementasi
7) write (“Masukkan panjang alasnya : “);
8) read (Alas);
9) write (“Masukkan tingginya : “);
10) read (Tinggi);
11) Luas = Alas * Tinggi / 2;
12) write (“Luas segitiga = “, Luas);

• Pemilihan
1) //judul
2) contoh algoritma ini menerima 3 bilangan bulat kemudian
menetapkan
3) bilangan yang terbesar, memanfaatkan bentuk bersusun }
4) //Deskripsi
5) integer A, B, C, maks;
6) //Implementasi
7) write (“masukkan bilangan 1 : “);
8) read ( A );
9) write (“masukkan bilangan 2 : “);
10) read ( B );
11) write (“masukkan bilangan 3 : “);
12) read ( C );
13) if ( A > B )
14) then if ( A > C )
15) then write (“ maksimum = “, A );
16) else write (“ maksimum = “, C );
17) endif
18) else if ( B > C )
19) then write (“ maksimum = “, B );
20) else write (“ maksimum = “, C );
21) endif
22) endif

• Perulangan
1) //Judul
2) Program hitung_mundur
3)
4) //Deskripsi
5) var bilangan : integer
6)
7) //Implementasi
8) FOR (bilangan ← 5; nilangan > 0; bilangan--)
9) Printf bilangan
10) ENDFOR

c. Tuliskan Struktur Dasar bahasa pemrograman C++ dengan lengkap dan berikan
penjelasan dari masing-masing blok
Jawab:
1) #include <iostream> // Preprocessor Directive
2) int main() //Function utama
3) { //Blok pembuka
4) std::cout<<"Selamat Datang Di BelajarC++"; //Pernyataan
(Statement)
5) return 0; //Pernyataan
6) } //Blok Penutup
• Baris 1: file header yang dasarnya figunakan untuk menyatakan bahwa
file dari program yang sedang ditulis menggunakan pustaka (Library)
yang didalamnya memuat kumpulan keyword dan function.
• Baris 2: merupakan fungsi (Function) utama, fungsi yang akan dibaca
oleh kompilator pertama kali secara otomatis, tidak akan ada function
yang otomatis dibaca oleh kompilator kecuali fungsi utama.
• Baris 3: merupakan blok pembuka.
• Baris 4: sebuah baris pernyataan(Statement) dan merupakan definisi
dari fungsi utama.
• Baris 5: merupakan pernyataan pengembalian, untuk memberitahu
kepada sistem operasi bahwa program telah berakhir secara normal
dengan nilai 0 yang berarti tanpa kesalahan.
• Baris 6: merupakan blok penutup.
d. Berikan contoh program sederhana dari point c tersebut
1) #include <iostream>
2) using namespace std;
3)
4) int main(){
5) cout<<"belajarcpp"<<endl;
6) return 0;
7) }

2. Operator dan Tipe Data


a. Jelaskan fungsi Operator dan Tipe Data dalam algoritma
Jawab:
• Fungsi operator adalah simbol yang digunakan untuk merubah suatu
nilai dalam sebuah program.
• Tipe data adalah suatu petunjuk bagi komputer untuk mengenali jenis
nilai yang terkandung didalam suatu variabel.
b. Sebutkan dan jelaskan jenis-jenis operator dalam algoritma dan berikan
contohnya
Jawab:
• Operator aritmatika adalah operator yang digunakan khusus untuk
bilangan ulat maupun real.
Untuk contoh dari operator ini adalah 14 div 4 maka hasilnya3,
meskipun demikian sesungghunya kalau dihitung dengan kalkulator 3,5
(tiga koma lima) namun karena operator ini hanya bisa menerima angka
bulat maka nilai 0,5 (nol koma lima) kita buang dan yang dianggap hanya
3 saja.
• Operator logika merupakan operator yang digunakan untuk
menghubungkan dua atau lebih suatu nilai dalam variabel yang
menghasilkan nilai TRUE atau FALSE. Operator logika ada 3, yaitu AND,
OR, dan NOT. Sebagai contoh
➢ TRUE and FALSE, maka hasilnya FALSE.
➢ TRUE or FALSE, maka hasilnya TRUE.
➢ TRUE xor FALSE, maka hasilnya TRUE.
➢ Not TRUE, maka hasilnya FALSE.
• Operator relasional adalah operator yang digunakan untuk
membandingkan antara dua variabel. Untuk contohnya, bila 5 = 5 (lima
sama dengan lima) maka hasilnya TRUE (benar), bila 5>6 (lima lebih
besar dari enam) maka hasilnya FALSE.
c. Sebutkan dan jelaskan jenis-jenis tipe data dalam algoritma dan berikan
contohnya
Jawab:
• Integer / bilangan bulat, adalah tipe data dasar berupa bilangan yang
tidak mengandung pecahan desimal. Contoh integer 2, 3, -10, -135, 2016
• Real / bilangan Rill, adalah tipe data dasar berupa bilangan yang memiliki
pecahan desimal. Contoh rill 0.7, -3.678, 88.7
• Char / karakter, adalah tipe data dasar yang terdiri atas satu buah angka,
huruf, tanda baca atau karakter khusus. Vontoh char “5”, “A” “?”, “$”
• String, adalag tipe data dasar yang berupa kumpulan karakter dengan
panjang tertentu. Contoh string “BANDUNG” “ABC123”, “123453”, “Z”
• Boolean / bilangan logika, memiliki tepat dua buah kemungkinan nilai,
direpresentasikan sebagai Benar dan Salah, atau True dan False atau
dapat dilambangkan dengan 1 dan 0.
d. Sebutkan dan jelaskan jenis-jenis operator dalam bahasa C++ dan berikan
contohnya
Jawab:
• Operator aritmatika, adalah operator yang biasa kita temukan untuk
operasi matematika. Aritmatika sendiri merupakan cabang ilmu
matematika yang membahas perhitungan sederhana, seperti kali, bagi,
tambah, dan kurang. Contohnya:
+ Penambahan A = 10 + 5
- Pengurangan A = 10 – 5
* Perkalian A = 10 * 5
/ Pembagian A = 10 / 5
% Sisa hasil bagi A = 10 % 5

• Operator Incerement dan Decrement, adalah sebutan untuk operasi


seperti a++ dan a--. Ini sebenarnya penulisan singkat dari a = a + 1 serta
a = a – a. Increment digunakan untuk menambah variabel sebanyak 1
angka, sedangkan Decrement digunakan untuk mengurangi variabel
sebanyak 1 angka. Contohnya:
Post- a-- Tampilkan nilai a, lalu kurangi a sebanyak 1
decrement angka
Pre-decrement --a Kurangi a sebanyak 1 angka, lalu tampilkan
hasilnya
Post- a++ Tampilkan nilai a, lalu tambah a sebanyak 1
increment angka
Pre-increment ++a Tambah a sebanyak 1 angka, lalu tampilkan
hasilnya
• Operator perbandingan / relasional, dipakai untuk membandingkan 2
buah nilai, apakah nilai tersebut sama besar, lebih kecil, lebih besar, dll.
Hasil dari operator perbandingan ini adlah boolean TRUE atau FALSE.
Contohnya:
== Sama dengan 5 == 5 1 (true)
!= Tidak sama dengan 5 != 5 0 (false)
> Lebih besar 5>6 0 (false)
< Lebih kecil 5<6 1 (true)
>= Lebih besar atau sama dengan 5 >= 3 1 (true)
<= Lebih kecil atau sama dengan 5 <= 5 1 (true)
• Operator logika / boolean, dipakai untuk menghasilkan nilai boolean
true atau false dari 2 kondisi atau lebih.
&& And Akan menghasilkan true jika kedua true && false,
operand true hasilnya: false
|| Or Akan menghasilkan true jika salah true || false,
satu operand true hasilnya: true
! Not Akan menghasilkan true jika !false, hasilnya: true
operand false
• Operator Assignment, adlah operator yang digunakan untuk
memberikan nilai ke dalam suatu variabel. Didalam bahasa C++,
operator assignment menggunakan tanda sama dengan “=”. Nantinya
juga terdapat operator assignment gabungan, seperti “+=”, “-=”, dsb.
e. Sebutkan dan jelaskan jenis-jenis tipe data dalam C++ dan berikan contohnya
Jawab:
• Void (kosong), adalah tipe data yang tidak bertipe karena mempunyai
ukuran 0 byte biasanya digunakan untuk tipe data kosong seperti
membuat fungsi. Contohnya:
1. #include<iostream.h>
2. #include<conio.h>
3.
4. void main(){
5. cout<<" Hello World !!!!"<<endl;
6. getch();
7. }

• Char (karakter), adalah tipe data untuk karakter yang sering digunakan
untuk tipe data yang menggunakan huruf dan angka sebagai datanya.
Contohnya:
1. #include<iostream.h>
2. #include<conio.h>
3.
4. main(){
5.
6. char jwb[2] = "B";
7.
8. cout<<"1. Bahasa Pemrograman C++ dirancangan
untuk"<<endl;
9. cout<<"A.PFC B.PBO C.CFP D.PBA"<<endl;
10. cout<<"Jawabanya adalah "<<jwb<<endl;
11. getch();
12. }

• Int (integer), adalah tipe data numerik yang sering digunakan untuk data
berupa angka. Contohnya:
1. #include<iostream.h>
2. #include<conio.h>
3. main(){
4. int sisi;
5. sisi=10;
6. cout<<"Pesergi memiliki sisi sebesar
"<<sisi<<endl;
7. cout<<"dan luas persegi adalah
"<<sisi*sisi<<endl;
8. getch();
9. }

• Float (Floating Point), adalah tipe data untuk numerik yang digunakan
untuk data berupa angka dan pecahan. Contohnya:
1. #include<iostream.h>
2. #include<conio.h>
3.
4. main(){
5.
6. float phi = 3.14, luas;
7. int r = 20;
8.
9. luas = phi*r*r;
10.
11. cout<<"Diketahui lingkaran berdiameter
"<<r<<" cm"<<endl;
12. cout<<"luas lingkaran adalah
"<<luas<<" cm^2"<<endl;
13.
14. getch();
15. }

• Double (Double Floating Point), adalah tipe data numerik yang


digunakan untuk data berupa angka pecahan yang nilai desimalnya dua
kali lebih banyak. Contohnya:
1. #include<iostream.h>
2. #include<conio.h>
3.
4. void main(){
5.
6. double diskon = 0.02;
7. int harga = 100000;
8.
9. cout<<"Potongan harga Rp."<<harga<<endl;
10. cout<<"mendapatkan diskon sebesar
2%"<<endl;
11.
12. cout<<"menjadi
Rp."<<diskon*harga<<endl;
13. getch();
14. }

• Bool (boolean), adalah tipe data yang digunakan untuk menentukan


false dan true, tipe data ini sama seperti bilangan biner hanya ada dua
angka saja yaitu 0 dan 1. Contohnya:
1. #include<iostream.h>
2. #include<conio.h>
3.
4. main(){
5.
6. bool log = false;
7.
8. cout<<"jika kondisi salah maka bilangan bool
adalah "<<log++<<endl;
9.
10. cout<<"jika kondisi benar maka bilangan
bool adalah "<<log<<endl;
11.
12. getch();
13.
14. }

3. Operasi Selection
a. Jelaskan fungsi dari operasi selection
Jawab:
• Operasi yang digunakan untuk menentukan salah satu pilihan dari
banyak pilihan
b. Sebutkan dan tuliskan operasi-operasi selection dalam bentuk algoritma dan
bahasa C++
Jawab:
1. //menampilkan bilangan IF01
2.
3. #include <iostream.h>
4. #include <conio.h>
5.
6. Void main()
7. {
8. //deklarasi variabel
9. Int N,P;
10. //deksripsi
11. Clscr();
12. Cout<<”Masukkan Nilai Bilangan Pembagi (N)
= ”; cin>>N;
13. Cout<<”Masukkan Nilai Bilangan Pembagi (P)
= ”; cin>>P;
14. If (N % P == 0)
15. Cout<<”BENAR”<<endl;
16. Getch();
17. }

c. Berikan contoh sederhana cara menggunakan operasi selection dalam bentuk


algoritma dan bahasa C++
Jawab:
1. //menampilkan bilangan IF01
2.
3. #include <iostream.h>
4. #include <conio.h>
5.
6. Void main()
7. {
8. //deklarasi variabel
9. Int N,P;
10. //deksripsi
11. Clscr();
12. Cout<<”Masukkan Nilai Bilangan Pembagi (N)
= ”; cin>>N;
13. Cout<<”Masukkan Nilai Bilangan Pembagi (P)
= ”; cin>>P;
14. If (N % P == 0)
15. Cout<<”BENAR”<<endl;
16. Getch();
}

4. Operasi Looping
a. Jelaskan fungsi dari operasi looping
Jawab:
• Fungsi perulangan (looping) digunakan untuk melakukan perulangan
terhadap kondisi array. Dalam kehidupan sehari-hari, sering kali kita
melakukan suatu kegiatan yang berulang-ulang.
b. Sebutkan dan tuliskan operasi-operasi looping dalam bentuk algoritma dan
bahasa C++
• Contoh perulangan for
1. #include “stdio.h”
2. main(){
3. int k;
4. for(k=0; k<10; k++){
5. printf (“Hai Dia\n”);

6. return 0;

7. }
8. }
• Contoh program perulangan while
1. #include <iostream>
2. using namespace std;
3. int main(){
4. int x;
5. x = 0;
6. while (x<8){
7. cout<<“Good Morning\n”;
8. x++;
9. }
10. return 0;
11. }
• Contoh perulangan do-while
1. #include <iostream>
2. using namespace std;
3. int main(){
4. int y;
5. y = 5;
6. do{
7. cout<<“Thank you\n”;
8. y++;
9. }
10. while (y<10);
11. return 0;
12. }

5. Procedure & Function


a. Apa yang dimaksud dengan procedure dan function
Jawab:
• Procedure adalah modul program yang mengerjakan tugas/aktifitas
yang spesifik dan menghasilkan suatu efek netto.
• Function adalah sebuah kumpuan statement yang akan mengembalikan
sebuah nilai balik pada pemanggilnya.
b. Bagaimana cara membuat procedure dan function dalam bentuk algoritma
Jawab:
• Struktur prosedur sama dengan struktur algoritma, yaitu bagian
judul, deklarasi, dan badan prosedur.
• Setiap prosedur memiliki nama unik.
c. Jelaskan mengenai pengiriman parameter pass-by-value dan pass-by-
reference
Jawab:
• Parameter pass-by-value adalah ketika kita memberikan salinan nilai
sebuah variabel sebagai argumen untuk sebuah method. Karena
yang diberikan hanya sailnan nilainya saja, maka nilai variabel
tersebut tidak akan berubah meskipun di dalam method tersebut
nilainya berubah karena digunakan untuk melakukan berbagai
operasi.
• Parameter pass-by-reference adalah ketika kita memberikan
referensi / pointer ke alamat lokasi variabel yang digunakan sebagai
argumen untuk sebuah method. Memberikan referensi ke alamat
variabel berarti memberi akses terhada variabel tersebut. Setiap
operasi yang menggunakan referensi tersebut akan merubah nilai
variabelnya di stack. Pass by reference bisa dilakukan dengan
menambahkan kata kunci.
6. Tipe Data Array dan Record
a. Apa yang dimaksud dengan array dan Record
Jawab:
• Array sering disebut sebagai larik.
• Array merupakan koleksi data dengan setiap elemen data
menggunakan nama yang sama dan masing-masing elemen data
bertipe sama.
• Record merupakan kumpulan data yang tidak sejenis atau variase.
• File merupakan kumpulan dari beberapa record yang tersimpan dan
mempunyau nama.
b. Sebutkan jenis-jenis array dan bagaimana cara mendeklarasikan array
tersebut dalam bentuk algoritma
• Array berdimensi Satu
Bentuk umum deklarasi array dimensi satu dalam bahasa C:
➢ Tipe_data nama_var[ukuran];
Dimana:
1) Tipe_data untuk menyatakan jenis tipe data elemen
array (misal char, int, long, dsb..)
2) Nama-var menyatakan nama variabel array
3) Ukuran unruk menyatakan jumlah maksimal elemen
array
• Array berdimensi dua
➢ Cara mengakses array, misalnya kita ingin mengisi elemen
array baris 1 kolom 2 dengan 10 makan perintahnya adalah:
❖ X[0][1]=10
➢ Untuk mengisi dan menampilkan isi elemen array ada dua
cara yaitu:
❖ Row Major Order (secara baris per baris)
❖ Column Major Oreder (secara kolom per kolom)
c. Bagaimana cara mendeklarasikan record dalam bentuk algoritma
Jawab:
Type identifier = Record
Nama_field_1 : jenis;
Nama_field_2 : jenis;
…………………….
…………………….
Nama_field_n : jenis;
End;

Anda mungkin juga menyukai