Anda di halaman 1dari 29

TUGAS KELOMPOK ALGORITMA DAN PEMROGRAMAN

PERTEMUAN 4

DISUSUN OLEH:

KELOMPOK 3

1. Ade Daraduana ( Nim : 2213363002)


2. Ade Nur Qolbiah ( Nim : 2213363003)
3. Annisa Rahmadina Tariza ( Nim : 2213363007)
4. Azmi ( Nim : 22133630039)
5. Dian Silvia ( Nim : 2213363012)
6. Gadis Dian Sari ( Nim : 2213363017)
7. Khalisa Humairah ( Nim : 2213363023)
8. Jim Mikail Ahmad ( Nim : 2213363043)
9. Fauzi Ammar Shidik ( Nim : 2213363014)
10. Ilham Rahmadsyah Sitorus ( Nim : 22133630020)

DOSEN PENGAMPU : YEYI GUSLA NENGSIH, S.Kom., M.Kom


PRODI : D-IV MANAJEMEN INFORMASI KESEHATAN
KELAS : A
JUDUL : STRUKTUR DATA ALGORITMA, NOTASI ALGORITMA,STRUKTUR
ALGORITMA, TIPE ALGORITMA BERDASARKAN FORMAT PENULISANNYA

UNIVERSITAS IMELDA MEDAN


T.P 2022/2023
Struktur Data Algoritma

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 ++

Program adalah kumpulan intruksi komputer, sedangkan metode dan tahapan


sistematis dalam program adalah algoritma. Program ini ditulis dengan menggunakan bahasa
pemprograman. Jadi bias kita sebut bahwa program adalah suatu implementasi dari bahasa
pemprograman.

Beberapa pakar memberi formula bahwa :


Program = struktur data + algoritma

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.

Maka program yang saya pelajari dapat kita lakukan seperti :


1. ARRAY
Array yang merupakan kumpulan dari nilai-nilai data yang bertipe sama dalam urutan
tertentu yang menggunakan nama yang sama. Dengan menggunakan array, sejumlah variable
dapat memakai nama yang sama. Letak atau posisi dari elemen array ditunjukan oleh suatu
indek . Dilihat dari dimensinya array dapat dibagi menjadi array dimensi satu, array dimensi
dua dan array multi-dimensi.
Bentuk Umum pendeklarasian array:
Tipe-Data Nama_Variable [Ukuran]
Contoh :
Int nil [5] ;
Nilai suatu variable array dapat juga diinialisasi secara langsung pada saat deklarasi,
misalnya :
int nil [5] = { 1,3,6,12,24 };
Maka di penyimpanan ke dalam array dapat digambarkan sebagai berikut:
01234
nil1361224

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:

Typedef struct telmtlist


{
Infotype info;
Addresscnext;
}elmtlist;

Single Linked list yang dapat di bagi 2 yaitu :


LIFO (Last In First Out ), aplikasinya : stack (tumpukan)
LIFO adalah suatu metode pembuatan linked list dimana data yang masuk paling akhir adalah
data yang keluar paling awal.
PIPO ( First In First Out), aplikasinya : Queue (Antrean)
PIPO adalahsuatu metodepembuatan linked list dimana data yang masuk paling awal adalah
data yang keluar paling awal juga.
5.STACK
Stack adalah suatu tumpukan dari benda. Konsep utamanaya adalah LIFO, benda yang
terakhir masuk adalah stack akan menjadi benda pertama yang dikeluarkan dari stack.Ada
dua cara penerapan prinsip stack, yakni dengan Array dan linked list setidaknya stack harus
memiliki operasi-operasi sebagai berikut;
Push Untuk menambah item pada tumpukan paling atas
Pop Untuk mengambil item teratas
Clear Untuk mengosongkan stack
IsEmpety Untuk memeriksa apakah stack kosong
IsFull Untuk memeriksa apakah stack sudah penuh
Retreive Untuk mendapatkan nilai dari item teratas.

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

Flowchart Luas Lingkaran


Perhatikan gambar flowchart Luas Lingkaran memiliki 3 instruksi yang harus dieksekusi.
Instruksi ke-1 : program membaca nilai jari-jari yang telah diinputkan, Instruksi ke-2 :
program melakukan operasi aritmatika rumus luas lingkaran dan Instruksi ke-3 :
menampilkan hasil dari perhitungan rumus luas lingkaran.
2. Algoritma Perulangan (Looping Algorithm)
Algoritma Perulangan atau Looping Algorithm adalah sebuah struktur dasar algoritma yang
menjalankan beberapa langkah tertentu secara berulang-ulang sampai terpenuhinya suatu
kondisi. Pada kehidupan sehari-hari banyak yang kita lakukan secara berulang-ulang,
contohnya seperti algoritma menjemur pakaian:
1. Siapkan tiang Jemuran
2. Ambil satu pakaian yang sudah dicuci
3. Peras pakaian hingga sedikit mengering
4. Letakan pakaian pada tiang jemuran
5. Ulangi langkah 2 sampai 4 hingga pakaian habis.

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

Flowchart Cetak Angka dengan FOR


Gambar flowchart diatas, menjelaskan bahwa nilai i awal berisi 1, kemudian dicetak nilai i
awal yaitu 1. Dalam struktur perulangan menggunakan FOR, nilai variabel i akan bertambah
secara otomatis sehingga nilai variabel i. Setelah ditambahkan secara otomatis, sekarang i = 2
lalu cetak nilai variabel i.

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

Flowchart Cetak Bilangan Genap dengan FOR

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

Flowchart Cetak Angka Genap dengan WHILE


Pada gambar flowchart diatas, dapat dijelaskan pertama adalah nilai i diberikan nilai 1. Lalu
nilai i diuji apakah nilai i lebih kecil atau sama dengan (<=) 10, jika benar maka akan
dilakukan operasi aritmatika yaitu nilai i dibagi 2, jika habis atau hasilnya 0 maka akan
dicetak nilai i dan jika sebaliknya maka nilai i tidak tercetak dan langsung keproses
berikutnya.

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

Flowchart Cetak Angka dengan DO…WHILE


Pada gambar diatas, pertama kali variabel i diberi nilai awal adalah 0. Kemudian nilai i
ditambah 1 sehingga nilai i menjadi 1, Lalu nilai i dicetak. Langkah selanjutnya adalah nilai i
diuji apakah lebih kecil atau sama dengan (<=) 5, jika hasil uji bernilai benar maka akan
kembali ke instruksi ke 1 yaitu nilai i ditambah 1 sehingga nilai i sekarang menjadi 2.
Kemudian nilai i dicetak dan diuji kembali, perulangan akan berhenti sampai nilai i lebih
besar dari 5.

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

Flowchart Cetak Angka Genap dengan DO…WHILE


Pada gambar flowchart, instruksi pertama adalah nilai i adalah 1. Instruksi selanjutnya
pengujian nilai i habis dibagi 2, jika benar maka nilai i dicetak kemudian nilai i ditambah 1
sehingga nilai i menjadi 2. Jika salah maka instruksi nilai i ditambah 1 sehingga menjadi 2.

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.

3. Algoritma Percabangan (Conditional Algorithm)


Algoritma percabangan atau Algoritma bersyarat adalah algoritma yang menjalankan
instruksi selanjutnya apabila syarat yang ditetapkan sudah terpenuhi. Pada struktur ini tidak
setiap instruksi akan dikerjakan, instruksi yang dikerjakan hanya yang memenuhi syarat saja.
Pada bahasa pemrograman struktur ini sering digunakan menggunakan instruksi IF-THEN
atau lebih dikenal instruksi jika-maka. Berikut macam-macam instruksi IF :

A. Struktur IF Sederhana
Bentuk dari struktur IF sederhana adalah IF (Syarat) THEN (Instruksi), simak gambar
dibawah ini :

Bentuk flowchart IF Sederhana


Pada gambar flowchart diatas, struktur IF sederhana dapat kita lihat bahwa instruksi_1 akan
dieksekusi jika syarat yang ditentukan bernilai benar dan jika bernilai salah, instruksi_1 tidak
akan dieksekusi. Untuk lebih jelasnya kita simak contoh algoritma kelulusan siswa, program
ini akan mengatakan bawa siswa tersebut lulus jika nilainya >= 65.

Deskripsi :
1. Mulai
2. Baca nilaisiswa
3. Jika nilaisiswa >= 65 maka kerjakan langkah 4
4. Cetak “LULUS”
5. Selesai

Flowchart Kelulusan Siswa

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

Flowchart Kelulusan Siswa


Pada gambar flowchart diatas, setelah nilai diinputkan maka nilai tersebut akan diuji apakah
nilai siswa lebih besar atau sama dengan 65. Jika benar maka program akan mencetak
“LULUS” lalu selesai, Jika tidak maka akan dicetak “TIDAK LULUS” lalu program 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:

Flowchart struktur IF Bersarang

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 :

– Jika nilai angka >= 80 maka nilai huruf sama dengan A


– Jika nilai angka >= 70 maka nilai huruf sama dengan B
– Jika nilai angka >= 60 maka nilai huruf sama dengan C
– Jika nilai angka >= 50 maka nilai huruf sama dengan D
– Jika nilai angka < 50 maka nilai huruf sama dengan E

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

Flowchart Konfersi Nilai Siswa


Dapat dicermati gambar flowchart diatas, hal yang perlu diperhatikan dalam struktur IF
bersarang adalah jika salah satu syarat sudah terpenuhi maka syarat-syarat lainnya yang ada
sejajar tidak akan diuji lagi. Contohnya kita masukan nilaiangka 60 maka nilaihurufnya
adalah “C” dan pengujian nilaiangka lebih besar atau sama dengan 50 tidak akan dijalankan.

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.

Tipe Data Primitive


Ada 3 jenis tipe data primitif dalam Algoritma
1. Tipe data Integer
Di dalam Algoritma, ada tipe data integer, tipe data yang terdiri dari angka bulat ( tidak
mengandung nilai pecahan atau nilai desimal). Kita lihat jenis tipe data integer pada tabel
dibawah serta seberapa besar ia mengambil memori pada program dan rentan nilai yang
digunakan.
2. Tipe data Real

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.

3. Tipe data Char

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.

4. Tipe data Boolean

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

Ada 4 jenis tipe data Composite dalam Algoritma

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.

Anda mungkin juga menyukai