PERTEMUAN 4
DISUSUN OLEH:
KELOMPOK 3
Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk
memecahkan suatu masalah dalam rentang waktu tertentu. Setiap aksi harus dapat dikerjakan
dan mempunyai efek tertentu. Algoritma merupakan logika, metode dan tahap (urutan)
sistematis yang digunakan untuk memecahkan suatu permasalahan. Algoritma dapat
dituliskan dengan banyak cara, mulai dari menggunakan bahasa alami yang digunakan sehari-
hari, simbol-simbol grafik bagan air (flowchart), sampai menggunakan bahasa
pemprograman seperti bahasa C atau C ++
Struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam
media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. Dalam
teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik
itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk
keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan
kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah
dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari
pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data
dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau
untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh
struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data
(database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas
dengan teknik tertentu yang memanfaatkan struktur data.
Yang kami pelajari tentang algoritma ini adalah
1. Include
Include adalah satu pengarah preprocessor directive yang tersedia pada C++. Preprocessor
selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. Bentuk umumnya:
# include
tidak diakhiri dengan tanda semicolon, karena bentuk tersebut bukanlah suatu bentuk
pernyataan , tetapi merupakan preprocessor directive. Baris tersebut mengintruksikan kepada
compiler untuk menyisipkan file lain dalah hal ini file yang berakhiran .h (file header) yaitu
file yang berisi C++ standard libarary.
contohnya
# include : diperlukan pada program yang melibatkan object cout dan cin
#include : diperlukan bila melibatkan clrscr ( ), yaitu perintah untuk membersihkan layer dan
fungsi getch ( ) untuk menerima sembarang input keyboard dari user.
#include : diperlukan bila melibatkan setw ( ) yang bermanfaat untuk mengatur lebar dari
suatu tampilan data.
#include : diperlukan pada program yang menggunakan operasi sqrt ( ) yang bermanfaat
untuk operasi matematika kuadrat.
2. Fungsi main ( )
Program C++ terdiri satu atau lebih fungsi, dan diantara salah satunya harus ada fungsi
main dan hanya ada satu main pada program C++.
3. Tanda Semicolon
Tanda Semicolon Ò;Ó digunakan untuk mengakhiri sebuah pernyataan setiap pernyataan
harus diakhiri dengan sebuah tanda semicolon
4. Mengenal Input/output
Pernyataan cout (dibaca C out ) merupakan sebuah objek di dalam C++. Yang digunakan
untuk mengarahkan data kedalam standar output ( cetak pada layer ). Sedangkan untuk
menginputkan data,dapat digunakan cin (dibaca C in ).
Operator dengan tanda << dan >> digunakan sebagai penghubung antara stream dengan
kalimat .Operator ini disesuaikan dengan fungsionalnya dari cout. Seperti
cout << daftar_keluaran
cin >> daftar_masukan
endl merupakan suatu fungsi manipulator yang digunakan untuk menyisipkan karakter
NewLine atau mengatur pindah baris.
Fungsi getch ( ) (get character and echo) dipakai untuk membaca sebuah karakter dengan
sifat karakter yang dimasukan tidak perlu diakhiri dengan menekan tombol ENTER, dan
karakter yang dimasukan tidak akan ditampilkan di layar.
array dapat berupa array satu dimensi ,dua dimensi ,tiga dimensi ataupun banyak
dimensi(multi dimensi).
1. Array satu dimensi
Array satu dimensi adalah kumpulan elemen-elemen indentik yang tersusun dalam satu baris.
Elemen-elemen tersebut memiliki data yang sama , tetapi isi dari elemen tersebut boleh
berbeda.
2. Array dua dimensi
Jika array satu dimensi hanya terdiri dari satu baris dan beberapa kolom elemen ,maka array
dua dimensi terdiri atas beberapa baris dan beberpa kolom elemen yang bertipe data sama.
Bentuk umum :
Nama array[m][n];
2. POINTER
Pointer sesungguhnya berisi alamat dari suatu data, bukan data sebagaimana pada variable
yang sudah anda kenal. POINTER ( variable penunjuk ) adalh suatu variable yang berisi
alamat memori dari suatu variable lain. Alamat ini merupakan lokasi dari objek lain (biasanya
variable lain) di dalam memori. Contoh jika sebuah variable berisi alamat dari variable lain,
variable pertama dikatakan menunjuk ke variable ke dua.
Operator pointer ada dua, yaitu :
Operator dan ( Dereference Operator )
Operator dan menghasilkan alat dari operandnya
Setiap variable yang dideklaraskan, disimpan dalam sebuah lokasi memori dan pengguna
biasanya tidak mengetahui di alamat mana data tersebut disimpan. Dalam C++, untuk
mengetahui alamat tempat penyimpanan data, dapat digunaka tanda ampersand (&) yang
dapat diartikan ÒalamatÓ .contoh:
Bill = &Bil2;
Operator*( Deference Operator )
Operator*menghasilakan nilai yang berada pada sebuah alamat.
Penggunaan operator ini, berarti mengakses nilai sebuah alamat yang ditunjukan oleh
variable Pointer, contoh;
Bill = *Bil2;
Dibaca : bil1 sama dengan nilai yang ditunjukan oleh bil2
Mendefinisikan Variable Pointer
Suatu variable pointer didefinisikan dengan bentuk sebagai berikut :
Tipe_data *nama_variable ;
Tipe_data dapat berupa sembarang tipe seperti halnya pada pendefinisian variable non-
pointer.
Nama-variable adalah nama variable pointer.
3.STRUCTURE
Structure adalah kumpulan elemen-elemen data yang digabungkan menjadi satu kesatuan.
Masing-masing elemen data tersebut dikenal dengan sebutan field. Field data tersebut berada
dalam satu kesatuan, masing-masing field tersebut tetap dapat diakses secara individual.
Bentuk umum :
struct namastruct
{
field 1;
field 2;
field 3;
};
4. LINKED LIST
Linked list adalah sekumpulan elemen bertipe data sama,yang mempunyai keterurutan
tertentu,yang setiap elemennya terdiri atas dua bagian.
Bentuk umum:
6. QUEUE
Jika di artikan secara harfiah, Queue berarti antrean ,Queue merupakan salah satu contoh
aplikasi dari pembuatan double linked list yang cukup sering kita temui dalam keidupan
sehari-hari,misalnya saat anda mengantre di loket untuk membeli tiket
Istilah yang dipakai seseorang untuk masuk dalam sebuah antrian adalah enqueue.istilah yang
dipakai bila seseorang keluar dari antrian adalah dequeue.
Walaupun berbeda implentasi , stuktur data Queue setidaknya harus memiliki operasi-operasi
sebagai berikut :
Enqueue Memasukan data ke dalam antrian
Dequeue Mengeluarkan data terdepan dari antrian
Clear Menghapus seluruh antrian
IsEmpty Memeriksa apakah antrian kosong
IsFull Memeriksa aakah antrian penuh
7. TREE
Tree adalah salah satu bentuk structure data tidak linear yang menggambarkan hubungan
yang bersifat hierarkis (hubungan one to many) antara elemen-elemen.tree bias didefinisikan
sebagai kumpulan simpul/node dengan elemen khusus yang disebut Root.
Jenis-jenis Tree :
-Binary Tree
Binary tree adalah tree dengan syarat bahwa tiap node hanya boleh memiliki maksimal dua
subtree dan kedua sub tree harus terpisah.
-Full Binary Tree
Binary tree ini tiap nodenya(kecuali leaf) memiliki dua child dan tiap subtree harus
mempunyai panjang path yang sama.
-Complate Binary Tree
Jenis ini sama dengan binary tree, namun tiap subtree boeh memiliki panjang path yang
berbeda dan setiap node kecuali leaf hanya boleh memikiki 2 child.
-Skewed Binary Tree
Skewed Binary tree adalah binary tree yang semua nodenya(kecuali leaf) hanya memiliki satu
child.
-implementasi Binasy Tree
Binary tree dapat di implementasikan dalam C++ dengan menggunaknan double linked list.
Notasi Algoritma
Menurut Rinaldi Munir dalam buku Algoritma dan Pemrograman (1997) notasi
algoritma adalah desain berisi urutan langkah-langkah pencapaian solusi yang tidak tergolong
bahasa pemrograman apapun. Sehingga notasi algoritma merupakan dasar dibuatnya suatu
program komputer dan dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Notasi
algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Baca juga:
Arsitektur Komputer: Pengertian, Jenis, Fungsi, dan Bagiannya Secara umum notasi
algoritma terdiri dari tiga jenis, yaitu kalimat deskriptif, pseudocode, dan flowchart. Berikut
adalah ketiga penjelasan dari tiga notasi pemrograman tersebut: Kalimat Deskriptif Notasi
algoritma kalimat deskriptif adalah notasi algoritma yang menggunakan bahasa Inggris atau
bahasa Indonesia dalam menjabarkan desain langkah pemrograman yang akan dibuat. Dalam
notasi kalimat deskriptif akan dijumpai berbagai kata kerja dalam bahasa manusia seperti
mulai, tulis, baca, tampilkan, maka, ulangi, read, print, if, dan end. Notasi kalimat deskriptif
ditulis dengan kerangka utama berupa judul, deklarasi, dan deskripsi. Deklarasi adalah bagian
yang mendefinisikan variabel, fungsi, dan juga konstanta yang akan digunakan dalam
pemrograman. Adapaun deskripsi berisi uraian langkah atau inti dari algoritma untuk suatu
program komputer.
Contoh notasi algoritma kalimat deskriptif:
1. Algoritma menghitung luas dan keliling lingkaran {menghitung luas dan keliling lingkaran
berdasarkan jari-jarinya. Algoritma menerima masukan berupa jari-jari lingkaran berupa
bilangan bulat positif, melakukan pemrosesan berupa penghitungan luas lalu penghitungan
keliling, dan yang terakhir mencetak hasil perhitungan sebagai keluaran}
Deklarasi:
Jari_jari = real {tipe data bilangan termasuk bilangan desimal maupun pecahan}
Luas = real Keliling = real Phi = 3.14 {konstanta}
Deskripsi:
1. Baca jari_jari lingkaran
2. Hitung Luas = Phi*Jari_jari*Jari_jari
3. Tampilkan Luas ke layar
4. Hitung Keliling = 2*Phi*Jari_jari
5. Tampilkan Keliling ke layar
6. Selesai
2. Algoritma menentukan nilai kualitas nilai siswa {memasukkan nilai berupa bilangan real
sebagai masukan, membaca nilai dan membandingkan dengan kondisi, menentukan kondisi
yang sesuai dengan nilai, dan menampilkan kualitas nilai sebagai keluaran}
Deklarasi: Nilai = real {tipe data bilangan termasuk bilangan desimal maupun pecahan}
Deskripsi:
1. Baca Nilai
2. Jika 100 > nilai > 90 maka tampilkan “A : memuaskan”
3. Jika 90 > nilai > 80 maka tampilkan “B: baik”
4. Jika 80 > nilai > 70 maka tampilkan “C: cukup”
5. Jika 70 > nilai > 60 maka tampilkan “D: kurang”
6. Jika 60 > nilai maka tampilkan “E: sangat kurang”
7. Selesai
Flowchart
Flowchart adalah jenis notasi algoritma yang menggunakan grafis berupa bagan untuk
memperlihatkan langkah-langkah algoritma sebuah bahasa pemrograman. Bentuk diagram
dalam bagan dari flowchart mendefinisikan instruksi yang diberikan pada komputer.
Misalnya bentuk oval digunakan untuk instruksi dimulai atau dihentikannya suatu program.
Tanda panah yang menghubungkan diagram menandakan arah mengalirnya program.
Diagram berbentuk jajar genjang menandakan masukan atau keluar program. Diagram belah
ketupat menandakan diambilnya suatu keputusan Adapun diagram berbentuk persegi panjang
menandakan proses perhitungan dalam suatu program.
Pseudocode
Peseudocode adalah jenis notasi algoritma yang sangat ringkas dan cocok digunakan untuk
membuat alogirtma pemrograman yang panjang. Ali Ridho Barakbah, dkk dalam buku
Logika dan Algoritma (2013) menyebutkan bahwa pseudocode berisi deskripsi dari algoritma
pemrograman komputer yang menggunakan struktur sederhana dari beberapa bahasa
pemrograman tetapi ditujukkan agar dapat dimengerti manusia. Pseudocode menggunakan
beberapa sintaks yang harus dipahami. Misalnya read yang berarti baca atau memasukkan
input, if yang berati jika, print dan write yang berarti menampilkan pada layar, juga end yang
berarti selesai. Pseudocode juga menggunakan “;” sebagai tanda berakhirnya suatu perintah.
Berikut adalah contoh pseudocode algoritma menentukan nilai kualitas nilai siswa:
Algoritma nilai;
Deklarasi
Nilai = real
Begin
Output (“masukkan nilai”)
Input (“nilai”)
If 100 > nilai > 90 then
Output “A: memuaskan”
Else
If 90 > nilai > 80 then
Output “B: baik”
Else
If 80 > nilai > 70 then
Output “C: cukup”;
Else
If 70 > nilai > 60 then
Output “D: kurang”;
Else
If 60 > nilai then
Output “E: sangat kurang”;
End
Struktur Algoritma
1. Algoritma Sekuensial
Algoritma Sekuensial (Sequence Algorithm) adalah algoritma yang langkah-langkahnya
dikerjakan atau dieksekusi secara urut dari awal hingga akhir sesuai dengan urutannya.
Kita bisa lihat contoh gambar flowchart diatas, terlihat kumpulan instruksi tersusun dari atas
ke bawah. Program akan mengeksekusi instruksi_1, setelah instruksi_1 sudah selesai
dikerjakan selanjutnya program akan mengeksekusi instruksi_2.
Setelah instruksi_2 sudah selesai dikerjakan selanjutnya program akan mengeksekusi
instruksi_3. Setelah instruksi_3 sudah selesai dikerjakan maka selanjutnya program akan
berakhir atau selesai. Kita ambil contoh program Luas Lingkaran, dimana untuk panjang jari-
jarinya sudah diketahui besarannya. Dan berikut adalah algoritmanya :
Deskripsi :
1. Mulai
2. Input Jari_Jari
3. Hitung Luas = 3.14 * Jari_Jari * Jari_Jari
4. Cetak Luas
5. Selesai
Dari algoritma menjemur pakaian diatas, kita dapat mendapat gambaran tentang struktur
algoritma looping. Jenis struktur dasar ini akan selesai jika sebuah kondisi tertentu terpenuhi,
seperti menjemur pakaian maka proses jemur akan selesai jika pakaian yang akan dijemur
sudah habis. Struktur dasar algoritma ini mempunyai beberapa bentuk seperti Struktur FOR,
Struktur While dan Struktur Do….While.
A. Struktur FOR
Struktur dasar algoritma perulangan menggunakan instruksi FOR digunakan untuk
mengulang satu baris instrusi atau beberapa baris instruksi sampai jumlah perulangan yang
disyaratkan terpenuhi. Ciri-ciri utama struktur perulangan menggunakan FOR adalah terdapat
nilai awal dan nilai akhir yang menunjukkan syarat yang harus terpenuhi. Berikut Flowchart
menggunakan FOR :
Gambar diatas menjelaskan bahwa Instruksi_1, Instruksi_2 dan Instruksi_3 akan dieksekusi
atau dikerjakan ketika syarat terpenuhi. Perulangan menggunakan struktur FOR dimulai dari
Nilai_Awal dan akan berhenti pada Nilai_Akhir. Untuk lebih jelasnya kita lihat contoh
algoritma mencetak angka menggunakan FOR, program akan dicetak angka 1 sampai 5.
Deskripsi :
1. Mulai
2. Kerjakan Langkah 3 mulai i = 1 sampai i = 5
3. Cetak i
4. Selesai
Proses tersebut akan dijalankan sampai kondisi yang sudah ditentukan terpenuhi yaitu i = 5
maka proses looping akan berhenti. Jika belum paham kita pelajari dengan seksama contoh
ke 2, algoritma Cetak Bilangan Genap menggunakan struktur FOR, program akan mencetak
bilangan genap mulai dari 0 dengan batas akhir 10 dengan menggunakan struktur looping
FOR.
Deskripsi :
1. Mulai
2. Kerjakan langkah 3 sampai langkah 4 mulai i = 1 sampai i = 10
3. Jika i dibagi 2 sama dengan 0 maka kerjakan langkah 4
4. Cetak i
5. Selesai
Gambar flowchart diatas, menjelaskan bahwa program akan mengeksekusi syarat yang
dijabarkan dengan FOR, diketahui nilai i pertama kali berisi 1 kemudian diuji apakah nilai i
tersebut habis dibagi dengan 2. Jika benar maka nilai i akan dicetak kemudian dilakukan
penambahan otomatis sehingga nilai i menjadi 2. Namun jika salah, nilai i akan langsung ke
langkah penambahan otomatis. Proses tersebut akan dieksekusi terus sampai nilai i lebih
besar dari 10.
B. Struktur WHILE
Struktur looping dengan menggunakan WHILE berfungsi hampir mirip dengan FOR yaitu
mengulang satu baris instruksi atau beberapa baris instruksi selama syarat yang ditentukan
masih terpenuhi. Ciri-ciri utama dari struktur WHILE adalah syarat yang ditentukan akan
diuji lebih dahulu sebelum instruksi-instruksi dieksekusi dalam perulangan.
Flowchart struktur while
Gambar diatas menjelaskan bahwa syarat akan diuji oleh pemroses terlebih dahulu sebelum
mengeksekusi instruksi-instruksi yang akan diulang. Jika syarat yang diuji benar, maka
instruksi akan dieksekusi. Setelah instruksi dikerjakan maka syarat akan diuji lagi, proses
perulangan ini akan berhenti jika syarat yang telah diuji bernilai salah. Untuk lebih jelasnya,
kita simak contoh algoritma cetak angka menggunakan WHILE, program akan mencetak
angka 1 sampai 5 dengan struktur WHILE.
Deskripsi :
1. Mulai
2. i = 1
3. Selama i <= 5 kerjakan langkah 4 sampai langkah 5
4. Cetak i
5. i = i + 1
6. Selesai
Flowchart Cetak Angka dengan WHILE
Gambar flowchart diatas, menjelaskan bahwa nilai i pertama kali bernilai 1. Kemudian akan
diuji apakah nilai i lebih kecil atau sama dengan (<=) 5, jika benar maka nilai i dicetak.
Kemudian nilai i ditambah 1, lalu nilai i akan diuji kembali apakah masih memenuhi syarat
yang sudah di deklaraskikan diawal, jika benar maka nilai i akan dicetak. Langkah
perulangan akan berjalan terus sampai nilai i lebih besar dari 5.
Deskripsi :
1. Mulai
2. i = 1
3. Selama i <= 10 kerjakan langkah 4 sampai langkah 6
4. Jika i habis dibagi 2 kerjakan langkah 5
5. Cetak i
6. i = i + 1
7. Selesai
Proses berikutnya adalah nilai i akan ditambah 1, sebelumnya nilai i adalah 1 maka setelah
proses ini menjadi 2. Kemudian nilai i diuji kembali sampai nilai i lebh besar dari 10 barulah
proses perulangan menggunakan WHILE berakhir.
C. Struktur DO…WHILE
Struktur looping dengan DO…WHILE digunakan untuk mengulangi satu baris instruksi atau
beberapa baris instruksi sampai syarat yang ditetapkan tidak terpenuhi. Ciri-ciri utama dari
struktur DO…WHILE ialah syarat akan diuji setelah instruksi dikerjakan seluruhnya atau
bisa kita katakan pengujian pada syarat dilakukan dibelakang.
Flowchart struktur DO…WHILE
Pada gambar flowchart diatas, kita bisa lihat bahwa instruksi_1, instruksi_2 dan instruksi_3
akan dikerjakan dahulu baru syarat akan diuji. Jika syarat yang diuji bernilai benar maka
instruksi_1 sampai instruksi_3 akan dikerjakan kembali.
Setelah dikerjakan kembali maka syarat akan diuji lagi, perulangan akan selesai jika syarat
yang diuji bernilai salah. Untuk lebih jelasnya kita lihat contoh algoritma cetak angka
DO…WHILE, program akan mencetak angka 1 sampai 5 dengan menggunakan
DO…WHILE
Deskripsi :
1. Mulai
2. i = 0
3. i = i + 1
4. Cetak i
5. Jika i <= 5 kerjakan langkah 3 sampai langkah 4
6. Selesai
Kita lihat contoh berikutnya algoritma cetak bilangan genap, program akan mencetak
bilangan genap dari 1 sampai 10 menggunakan struktur perulangan DO…WHILE.
Deskripsi :
1. Mulai
2. i = 1
3. Selama i <= 10 kerjakan langkah 4 sampai langkah 6
4. Jika i habis dibagi 2 kerjakan langkah 5
5. Cetak i
6. i = i + 1
7. Selesai
Instruksi berikutnya adalah pengujian apakah nilai i lebih kecil atau sama dengan 10, jika
benar maka akan kembali pada instruksi ke 2 yaitu diuji apakah nilai i habis dibagi 2,
begitulah seterusnya sampai nilai i lebih besar dari 10 barulah perulangan selesai.
A. Struktur IF Sederhana
Bentuk dari struktur IF sederhana adalah IF (Syarat) THEN (Instruksi), simak gambar
dibawah ini :
Deskripsi :
1. Mulai
2. Baca nilaisiswa
3. Jika nilaisiswa >= 65 maka kerjakan langkah 4
4. Cetak “LULUS”
5. Selesai
Pada flowchart diatas, nilai siswa yang diinputkan akan diuji apakah nilai tersebut lebih besar
atau sama dengan 65. Jika benar maka program akan mencetak “LULUS” kemudian selesai,
namun jika salah maka program selesai.
B. Struktur IF…THEN…ELSE…
Pada struktur ini, terdapat dua kemungkinan instruksi yang akan dikerjakan berdasarkan hasil
dari pengujian. Contoh jika syarat yang diujikan memperoleh hasil benar maka instruksi_1
dikerjakan, namun jika bernilai salah maka instruksi_2 yang dikerjakan. Untuk lebih jelasnya
bisa lihat gambar dibawah ini :
Bentuk flowchart
Tidak lengkap rasanya kalau tidak diberikan contoh, mengambil masalah sebelumnya tentang
kelulusan siswa. Sekarang kita modifikasi sedikit dimana jika nilai siswa lebih besar atau
sama dengan 65 maka dinyatakan lulus dan jika nilai siswa lebih kecil dari 65 maka siswa
dinyatakan tidak lulus.
Deskripsi :
1. Mulai
2. Baca nilaisiswa
3. Jika nilaisiswa >= 65 maka kerjakan langkah 4, selain itu kerjakan langkah 5
4. Cetak “LULUS”
5. Cetak “TIDAK LULUS”
6. Selesai
C. IF Bersarang
Untuk struktur yang satu ini kita perlu belajar logika dan ketelitian, satu alasan yang pasti
adalah struktur ini sering dipakai untuk tes kerja dalam bidang IT terutama pekerjaan yang
berkaitan dengan perancangan sistem. Pada struktur ini juga kemungkinan akan banyak
instruksi yang dikerjakan berdadarkan hasil pengujian, bisa disimak gambar dibawah ini:
Dari flowchart diatas kita bisa pelajari bagaimana struktur dari IF bersarang. Kita jabarkan
satu persatu, jika syarat1 yang diuji bernilai benar maka instruksi1 akan dieksekusi, jika
syarat1 bernilai salah maka syarat2 diuji,jika syarat2 yang diuji bernilai benar maka
instruksi2 akan dieksekusi, jika syarat2 bernilai salah maka syarat3 diuji, jika syarat3 yang
diuji bernilai benar maka instruksi3 akan dieksekusi, jika syarat3 bernilai salah maka syaratx
diuji, jika syaratx yang diuji bernilai benar maka instruksix akan dieksekusi, jika syaratx
bernilai salah atau tidak ada syarat yang terpenuhi maka instruksiy yang dieksekusi.
Untuk lebih jelasnya, kita implementasikan dalam sebuah algoritma konfersi nilai siswa,
program akan mengkonfersi nilai siswa dari semula dalam bentuk angka dirubah menjadi
bentuk huruf dengan ketentuan sebagai berikut :
Deskripsi :
1. Mulai
2. Baca nilaiangka
3. Jika nilaiangka >= 80 maka nilaihuruf = “A”, selain itu
4. Jika nilaiangka >= 70 maka nilaihuruf = “B”, selain itu
5. Jika nilaiangka >= 60 maka nilaihuruf = “C”, selain itu
6. Jika nilaiangka >= 50 maka nilaihuruf = “D”, selain itu
7. nilaihuruf = “E”
8. Cetak nilaihuruf
9. Selesai
Tipe Data
Tipe data artinya label pada nilai, ini menjadi penting pada sebuah algoritma. Tipe data
dibagi menjadi 2, Ada tipe data primitive, artinya tipe data sederhana. Sedangkan yang satu
lagi, adalah tipe data composite. Tipe data ini adalah kumpulan dari tipe data primitive. Kita
akan jabarkan satu persatu.
Selain integer yang tidak memiliki nilai pecahan atau desimal, Real ada untuk menutupi
kekurangan itu. Di Algoritma biasanya, digunakan untuk angka desimal (pecahan, misalnya
3.14). Tipe data ini dikenal juga dengan tipe data float atau floating point. Kita lihat tabel
dibawah ini.
Tipe data yang hanya bisa diisi dengan 1 karakter saja. Karakter ini (alphanumeric) harus
ditulis diantara tanda kutip dua(“ ”)/kutip satu („ ‟). Karena hanya bisa diisi dengan 1 karakter
saja, tipe data char hanya membutuhkan 1 byte memory (1 byte = 8 bit). Meskipun tipe data
Char dapat diisi angka namun nilai tersebut tidak dapat dilakukan operasi aritmatika dalam
program kita nanti.
Ini merupakan tipe data logika, yang berisi dua kemungkinan nilai: TRUE (benar) atau
FALSE (salah). Tipe data boolean banyak digunakan untuk percabangan kode program, atau
untuk memutuskan apa yang mesti dijalankan ketika sebuah kondisi terjadi. Sebagai bilangan
ordinal boolean TRUE mempunyai nilai 1(satu), sedangkan FALSE nilainya adalah 0 (nol).
Tipe Data Composite
1. Array
Array atau larik, yaitu tipe data yang sudah terstruktur dengan baik, meskipun masih
sederhana. Array mampu menyimpan sejumlah data dengan tipe yang sama (homogen)
dalam sebuah variabel. Array mampu menampung banyak data namun dengan satu tipe data
yang sama, misalnya integer saja. Setiap lokasi data array diberi nomor indeks yang berfungsi
sebagai alamat dari data tersebut. Index dimulai dari 0. Kita lihat ilustrasi berikut.
2. Record/Struct
Berbeda dengan array, tipe data record mampu menampung banyak data dengan tipe data
berbeda-beda (heterogen). Misalnya, satu bagian integer, satu bagian lagi character, dan
bagian lainnya Boolean. Biasanya record digunakan untuk menampung data suatu objek.
Misalnya, siswa memiliki nama, alamat, usia, tempat lahir, dan tanggal lahir. Nama akan
menggunakan tipe data string, alamat bertipe data string, usia bertipe data single (numeric),
tempat lahir bertipe data string, dan tanggal lahir bertipe data date. Berikut contohnya.
3. Image
Image, atau gambar, atau citra, merupakan tipe data grafik. Misalnya grafik perkembangan
jumlah siswa SMK, foto keluarga kita, video perjalanan, dan lain-lain. Pada bahasa-bahasa
pemrograman modern terutama yang berbasis visual, tipe data ini telah didukung dengan
sangat baik. Ini contoh image.
4. Data Time
Yang terakhir adalah date Time, Nilai data untuk tanggal (date) dan waktu (time) secara
internal disimpan dalam format yang spesifik. Variabel atau konstanta yang dideklarasikan
dengan tipe data Date dapat digunakan untuk menyimpan, baik tanggal maupun jam. Tipe
data ini masuk dalam kelompok tipe data composite, karena merupakan bentukan dari
beberapa tipe data.