LOGIKA ALGORITMA PEMROGRAMAN
Logika berasal dari kata Yunani kuno λόγος (logos) yang berarti hasil pertimbangan akal pikiran yang diutarakan lewat kata dan dinyatakan dalam bahasa. Sedangkan Algoritma adalah urutan langkah – langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Logis merupakan kunci dari sebuah algoritma. Langkah – langkah dalam algoritma harus logis dan bernilai benar atau salah.
Orang yang telah terbiasa “bergaul” dengan computer menggunakan satu bahasa pemrograman tertentu, biasanya tidak lagi memerlukan kertas coret – coretan untuk membuat suatu program computer. Namun bagi pemula, pembelajar atau yang belum mahir diperlukan kertas coret – coretan tersebut.
Kertas coret-coretan itu akan digunakan untuk menyusun langkah-langkah penyelesaian masalah (algoritma), flowcharting, maupun menuliskan perintah sesuai dengan kaidah dari bahasa pemrograman yang akan digunakannya. Sewaktu menyusun algoritma, kita tidak perlu tahu atau tidak perlu menyesuaikan dengan bahasa pemrograman yang nanti akan kita gunakan. Hal utama yang harus kita pikirkan adalah kaidah dari computer itu sendiri yaitu input – proses – output.
Input adalah data yang harus ada, sudah ada atau sudah tersedia, yang dapay diproses dengan aturan – aturan tertentu untuk menghasilkan output seperti yang dikehendaki. Data yang ada harus logis bahwa “ia” dapat diproses untuk menghasilkan output.
FLOWCHART
Tujuan utama dari penggunaan flowchart adalah untuk menggambarkan suatu tahapan penyelesaian masalah secara sederhana, terurai, rapi dan jelas dengan menggunakan simbol – simbol standart.
Flowchart program merupakan bagan alir yang menggambarkan urutan logika dari suatu prosedur pemecahan masalah.
Contoh Flow chart
Mengganti Roda Mobil
|
| |||||||
![]() | ||||||||
![]() | ||||||||
PSEUDOCODE
Pseudo berarti imitasi atau mirip atau menyerupai. Code menunjukkan kode dari program. Pseudocode adalah kode yang mirip dengan instruksi kode program yang sebenarnya.
Aturan penulisan algoritma pseudocode :
1. Judul (Header)
2. Deklarasi
3. Deskripsi
Judul (Header) : Digunakan sebagai tempat mendefinisikan nama algoritma.
Deklarasi : Bagian teks algoritma sebagai tempat untuk mendefinisikan nama Konstanta, variable, tipe, fungsi dan prosedur.
Deskripsi : Bagian inti dari suatu algoritma. Komponen teks algoritma dalam pemrograman procedural dapat berupa instruksi dasar seperti input/output, runtutan, analisa kasus dan perulangan.
LANGUAGE STRUCTURE
Bentuk penyajian algoritma ini berdasarkan struktur bahasa yang dipakai dalam sehari – hari tanpa melihat aturan – aturan yang berlaku di algoritma.
Contoh 1
Membuat Flowchart, pseudocode dan language structure untuk menghitung luas persegi panjang. Luas = Panjang x Lebar. Dimana sebelumnya panjang dan lebar telah diketahui.
|
|
![]() | |||
| |||
|
|
| ||||||
![]() | ||||||
![]() | ||||||
|
|
|
|
|
|
| ||||
![]() | ||||
Array
Array adalah suatu tipe data terstrukturyang berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu. Elemen – elemen array tersusun secara sekuensial didalam memori sehingga memiliki alamat yang berdekatan. Array juga dapat berupa 1 dimensi, 2 dimensi bahkan n-dimensi.
Contoh Soal latihan :
12 | 17 | 23 | 14 |
10 | 5 | 13 | 5 |
1. Array 2 diensi diatas terdiri dari apakah dan memiliki data yang sama? Ya/tidak.
2. Tuliskan deklarasi array 2 dimensi diatas dan jelaskan!
3. Buatlah pendeklarasian array berukuran 2x3 bertipe integer!
4. Tuliskan inisialisasi array 2 dimensi dengan ukuran 2x3!
5. Bisa saja tidak seluruh elemen di inisialisasikan? Berikan contoh!
Jawab :
1. Contoh array yang ada terdiri dari 2 baris dan 4 kolom (2x4). Memiliki tipe data yang sama yaitu integer.
2. Deklarasi array 2 dimensi :
int x [2][4];
x[0][0]=12; x[0][1]=17; x[0][2]=23; x[0][3]=14;
x[1][0]=10; x[1][1]=5; x[1][2]=13; x[1][3]=5.
Atau
Int x[2][4]={{12,17,23,14}{10,5,13,5}
Pejelasan deklarasi
x[0][0]=12, baris pertama kolom pertama = 12
x[0][1]=17, baris pertama kolom kedua = 17
x[0][2]=23, baris pertama kolom ketiga = 23
x[0][3]=14, baris pertama kolom keempat = 14
x[1][0]=10, baris kedua kolom pertama = 10
x[1][1]=5, baris kedua kolom kedua = 5
x[1][2]=13, baris kedua kolom ketiga = 13
x[1][3]=5, baris kedua kolom keempat = 5
3. int[2][3];
x[0][0]=1; x[0][1]=2; x[0][2]=3;
x[1][0]=4; x[1][1]=8; x[1][2]=12.
1 | 2 | 3 |
4 | 8 | 12 |
4. Algoritma 2x3
For baris = 0 to 2 do
For kolom = 0 to 3 do
Matrik [baris][kolom]=1
End for
1 | 1 | 1 |
1 | 1 | 1 |
5. Bisa.
Deklarasi
1 | 2 | 3 |
1 | 2 | 3 |
int x[2][3] baris [1,2,3]
kolom[1,2,3]
Contoh program array menggunakan bahasa c/c++
#include<iostream.h>
#include<stdio.h>
void main()
{
int matriks[3][2]={{10,4,0}{30,60}
for(int x=0;x<3,x++)
{
cout<<endl;
for(int z=0;z<2;z++)
{
printf(“%d”,matriks[x][z]);
}
}
cout<<endl;
}
Tugas
Buatlah program c/c++ soal dibawah ini!!
1. Masukan Nomor Pegawai :
Masukan Nama Pegawai :
2. Gaji yang diterima pegawai dari gaji pokok, tunjangan dan upah lembur, besar tunjangan 15% dari gaji pokok, besar upah lembur per jam 3% dari gaji pokok. Buatlah program yang menghitung gaji yang diterima pegawai. Input: nama pegawai, gaji pegawai, jumlah jam lembur. Output: Gaji pokok, tunjangan, uang lembur, total gaji.
3. Mencari bilangan terbesar dari 2 buah bilangan. Input: masukan bil pertama dan masukan bil kedua. Output: Tampilkan pesan.
Jawab :
1. #include<iostream.h>
void main()
{
int x, y:
cout<<”Masukan Nomor Pegawai :”<<endl;
cin>>x;
cout<<”Masukan Nama Pegawai :”<<endl;
cin>>y;
cout<<endl;
cout<<”Nama Anda =”<<y<<endl;
cout<<”Nomor iD Anda =”<<x<<endl;
}
2. #include<iostream.h>
void main()
{
Int x, y, z, tunjungan, uang_lembur, total_gaji;
cout<<”Masukan Nama Pegawai :”<<endl;
cin>>x;
cout<<”Masukan Gaji Pegawai :”<<endl;
cin>>y;
cout<<”Jumlah Jam Lembur :”<<endl;
cin>>z;
tunjangan=0.15*y;
uang_lembur=0.03*y*z
total_gaji=y+tunjangan+uang_lembur;
cout<<”Penghasilan yang diterima Pegawai :”<<endl;
cout<<”Gaji Pokok :”<<y<<endl;
cout<<”Tunjangan :”<<tunjangan<<endl;
cout<<”Uang Lembur :”<<uang_lembur<<endl;
cout<<”Total Gaji :”<<total_gaji<<endl;
cout<<endl;
}
3. #include<iostream.h>
void main()
{
int x, y;
cout<<”Masukan Bilangan Ke-1 :”<<endl;
cin>>x;
cout<<”Masukan Bilangan Ke-2 :”<<endl;
cin>>y;
if(x>y)
cout<<”Bilangan Ke-1 Lebih Besar Dari Bilangan Ke-2”<<endl;
else if(x<y)
cout<<” Bilangan Ke-2 Lebih Besar Dari Bilangan Ke-1”<<endl;
else
cout<<”Nilai Sama”<<endl;
cout<<endl;
}
Bubble sort
Bubble sort merupakan metode sorting paling mudah, system pengurutannya yang secara berangsur – angsur ke posisi yang tepatmirip dengan gelombang yang keluar dari gelas yang berisi soda. Buble sort mengurutkan data dengan cara membandingkan elemen skrng dengan elemen berikutnya. Jika elemen sekarang lebih besar dari elemen berikutnya, maka kedua elemen tersebut ditukar (Ascending) A-Z. Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar (Descending) Z-A. Proses bubble sort akan mensortir dari seluruh elemen data yang ada dan data tersebut akan saling bertukar posisi. Sampai semua data sudah diperiksa dan tidak ada pertukaran lagi yag bias dilakukan serta tercapai perurutan yang telah diinginkan.
Contoh :
Data acak :
15 25 36 21
Urutkan dengan bubble sort secara Ascending!
Jawab :
15 21 25 36
Selection sort
Selection sort merupakan kombinasi antara sorting dan searching. Setiap proses akan di cari elemen – elemen yang belum diurutkan, yang memiliki nilai terbesar atau terkecil akan ditukarkan ke posisi yang tepatdidalam array. Misalkan untuk putaran pertama akan dicari data dengan nilai terkecil dan data ini akan ditempatkan di index terkecil (data [a]) putaran kedua akan dicari data kedua terkecil dan akan ditempatkan di index kedua (data [i]). Selama proses pembanding dan pengubahnya hanya diletakkan pada index pembanding saja, pertukaran data secara fisik terjadi pada akhir proses.
Contoh :
Data acak : 3 8 2
Proses 1
· Pembanding posisi
3 < 8 0
3 > 2 (tukar idx) 2
Tukar data ke-0 (3) dan data ke-2 (2)
2 8 3
Proses 2
· Pembanding posisi
8 > 3 (tukar idx) 2
Tukar data ke-1 (8) dab data ke-2 (3)
2 3 8
Contoh soal :
1. Gunakan Selection sort dengan nilai input sebagai berikut :
32 75 69 58 21 40
2. Gunakan bubble sort dengan nilai input sebagai berikut :
22 10 15 3 8 2 (Ascending)
Jawaban :
1. 32 75 69 58 21 40
· Pembanding posisi
32 < 75 0
32 < 69 0
32 < 58 0
32 < 21 (tukar index) 4
21 < 40 4
Tukar data ke-0 (32) dengan data ke-4 (21)
21 75 69 58 32 40
· Pembanding posisi
75 > 69 (tukar index) 2
69 > 58 (tukar index) 3
58 > 32 (tukar index) 4
32 < 40 4
Tukar data ke-1 (75) dengan data ke-4 (32)
21 32 69 58 75 40
· Pembanding posisi
69 > 58 (tukar index) 3
58 < 75 3
58 > 40 (tukar index) 5
Tukar data ke-2 (69) dengan data ke-5 (40)
21 32 40 58 75 69
· Pembanding posisi
58 < 75 3
58 < 69 3
Tukar data ke-3 (58) dengan data ke-3 (58)
21 32 40 58 75 69
· Pembanding posisi
75 > 69 (tukar index) 5
Tukar data ke-4 (75) dengan data ke-5 (69)
2. 22 10 15 3 8 2
Proses 1
·
22 10 15 3 8 2
22 10 15 2 3 8
22 2 10 15 3 8
22 2 10 15 3 8
Proses 2
· 2 22 10 15 3 8
2 22 10 3 15 8
2 3 22 10 15 8
2 3 22 10 15 8
Proses 3
·
2 3 22 10 15 8
2 3 8 22 10 15
2 3 8 22 10 15
2 3 8 22 10 15
Proses 4
· 2 3 8 22 10 15
2 3 8 10 22 15
2 3 8 10 22 15
2 3 8 10 22 15
2 3 8 10 22 15
Proses 5
·
2 3 8 10 22 15
2 3 8 10 15 22
2 3 8 10 15 22
2 3 8 10 15 22
2 3 8 10 15 22
2 3 8 10 15 22





