Senin, 19 September 2016

Refleksi S_Data Minggu 2

Assalamu'alaikum w  w
Selamat berjumpa lagi teman-teman, baik saya disini akan menuliskan tentang refleksi SDATA pertemuan ke 2. Adapun refleksinya adalah sebagai berikut:

Perkuliahan SDATA di mulai tepat pukul 07.00 am. Kali ini kelas A lumayan rame karen terdapat tambahan kelas C yang ikut kuliah di kelas kami. Kenapa Kelas C ikut kelas A??Karena mereka kemarin libur hari raya lebaran haji dan mereke di wajibkan untuk mengikuti kuliah di kelas A dan B sebagai kuliah pengganti. Sebagian anak kelas C ikut kelas kami, walaupun mereka mengikuti perkuliahan sangat cepat kira-kira 30 menit. Setelah mereka presensi mereka izin untuk mengikuti praktikum. 

Demikian sekilas refleksi s_data minggu ke dua ini.
Wassalamu'alaikum w. w

Refleksi S_Data Minggu 1

Assalamu"alaikum wr.wb.

Hari ini, tanggal 07 september 2016 merupakan hari pertama pertemuan mata kuliah Struktur Data. Mata kuliah ini di ampuh oleh Pak Wahyu Pujiono. Pada pertemuan pertama kali ini kami sedikit membahas tentang kontrak perkuliahan dan beberapa tentang parameter nilai. Pak wahyu menjelaskan tentang beberapa cara memodifikasi sebuah program. Harapan saya kali ini, saya ingin dapat mengerti lebih dalam tentang bahasa pemrograman. Mungkin hanya ini yang dapat saya sampaikan pada pertemuan Struktu Data hari ini, kurang lebihnya saya mohon maaf.

Wassalamu"alaikum wr.wb

Kasus 1

Assalamualaikum wr.wb.

Pada kesempatan kali ini saya ingin berbagi tentang hasil belajar kelas kami hari ini. Dihari pertama ini kami belajar tentang parameter nilai. Nah, kalo begitu langsung saja mari kita bahas...

Program 1.1 


Penerapan C++
Hasilnya 
 Program 1.2 dan 1.3
Penerapan C++ 1.2
Hasilnya
Penerapan C++ 1.3

Hasilnya 
Program 1.4
Penerapan C++
Hasilnya
Program 1.5 dan 1.6
Penerapan C++ 1.5
Hasilnya
Penerapan C++ 1.6
Hasilnya
Dari setiap program diatas memiliki cara penerapan c++ yang berbeda-beda, namun hasilnya tetap sama. Jika teman-teman ada yang memiliki cara yang lain , teman -teman bisa menambahkan pada kolom komentar. Mungkin hanya ini yang dapat saya bagi untuk teman-teman semua, kurang lebihnya saya mohon maaf. Terima kasih
Wassalamu"alaikum wr.wb

Jumat, 27 Mei 2016

Refleksi Minggu 11

Assalamualaikum w w

selasa 24 mei 2016 merupakan pertemuan matakuliah Alpro minggu ke-11. Hari itu kami belajar tentang vektor dan juga matriks, materi yang cuku sulit bagi saya, agar kami memahami tentang materi tersebut dosen memberikan kami tugas yang harus kami amati dan cermati sendiri.

Itulah garis besar perkuliahan Alpro pada minggu 11.


Jangan lupa ya kunjungi juga blog teman-teman saya...
Edi Siswanto
Lalu Sabrian Ganata

Assalamualaikum w w

Selasa, 24 Mei 2016

Perkalian Antara Matrix dengan Vektor Menggunakan 6 Kaidah Penyusunan Program

1. Mengerti masalah :
    mengalikan matrik ordo 3x2 dengan vector.

2. Menentukan Input dan Output:
    input    :   matrik[2][3]={1,3,5,2,4,6},
                   vektor[3]={1,2,3}
    output :   hasil[2].

3. Membuat algoritma

Deklarasi : i,j, = integer

Deskripsi : for (i=1 ; i<=2 ;i++)
                      for (j= 1 ; j<=3 ; j++
                        total [i][j]=0;
                              for (k= 1 ; k<=3 ; k++)
                                   total [i][j] = total [i][j]+A[i][k][j] ;

4. Tes dengan data :

 MATRIK
             j=1  j=2  j=3

A i=1|   1      3      5
    i=2|  2      4      6

VEKTOR
           J=1
B i=1|  1  |
    i=2| 2  |
    i=3| 3  |
Cara Perkalian
C = |A11*B11+A12*B21+A13*B31|
       |A21*B11+A22*B21+A23*B31|
jadi
       | 1x1 + 3x2 + 5x3 |
       | 2x1 + 4x2 + 6x3 |
hasil akhirnya
       | 22 |
       | 28 |

5. C++

#include <iostream>
    using namespace std;
   /* run this program using the console pauser or add your own getch, system("pause") or        input loop */

void kali(int matrik[2][3],int vektor[3],int hasil[2]){
 cout<<"matrik : \n";
 for(int i=0;i<2;i++){
  for(int j=0;j<3;j++)
   hasil[i]=hasil[i]+(matrik[i][j]*vektor[j]);
 }
}
void cetakm(int hasil[][3]){
 for(int i=0;i<2;i++){
  for(int j=0;j<3;j++)
   cout<<hasil[i][j]<<" ";
   cout<<endl;
 }
}
void cetakv(int vektor[]){
 cout<<"vektor : \n";
 for(int i=0;i<3;i++){
  cout<<vektor[i]<<endl;
 }
}

void cetak(int hasil[]){
 cout<<"hasil trakhir : \n";
 for(int i=0;i<2;i++){
  cout<<hasil[i]<<endl;
 }
}
int main(int argc, char** argv) {
 int matrik[2][3]={1,3,5,2,4,6}, vektor[3]={1,2,3},hasil[2]={0};
 kali(matrik,vektor,hasil);
 cetakm(matrik);
 cetakv(vektor);
 cetak(hasil);
 return 0;

}

    
6. Hasil 







Kamis, 19 Mei 2016

Refleksi Minggu 10

Assalamu"alaikum wr.wb

Hari selasa tanggal 17 Mei 2016 Jam 07.00 WIB adalah perkuliahan ALPRO minggu ke-10 yaitu tentang : SEARCHING. Seperti pertemuan sebelumnya sebelum dosen datang maka kita sudah harus mempersiapkan/membuka : Rencana Kuliah, PPT, Diktat, E-Book.
Dosennya menjelaskan materi SEARCHING yang didalmnya terdapat Linear Search & Binary Search. Dosennya menjelaskan sesuai dengan 6 kaidah/langkah. Dosennya memberi tugas di kelas, terdapat 2 tugas diantarannya di kumpulkan pada saat perkuliahan selesai 09.00 WIB, dan pada jam 12.00 WIB.
Alhamdulillah di minggu ini tidak diberi tugas dari Diktat maupun E-book, mungkin karena sudah di upload minggu kemarin tentang SEARCHING AND SORTING. Jadi minggu ini hanya upload Refleksi saja di Blog. Tetapi ada tugas TP yaitu presentasi di depan Mentor , agar tahu sudah sejauh mana TP kelompok. Batas penilaian hari Sabtu, tanggal 21, jam 12.00 WIB.
Mungkin ini saja yang dapat saya sampaikan dalam pertemuan kali ini. Kurang lebihnya syaa mohon maaf.
Wassalamu"alaikum wr.wb

Diktat BAB 10

Assalamu"alaikum wr.wb

Selamat malam sedulur, postingan kali ini tentang soal dari diktat BAB 10.
Langsung saja mari kita bahas....


Penyelesaian :
C++
#include <iostream>
#include <conio.h>
#include <windows.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class Mhs{
public:
void Buat_berikut_list();
char Nama[20];
char Nim[10];
int Nilai;
Mhs *berikut;
};
void Mhs::Buat_berikut_list(){
Mhs *Ptr_Kepala = NULL;
Mhs *Ptr_Baru;
char lagi;
do{
Ptr_Baru= new Mhs;
cout<<"\nNama Mahasiswa : ";
cin>>Ptr_Baru->Nama;
cout<<"Nim Mahasiswa : ";
cin>>Ptr_Baru->Nim;
cout<<"Nilai Mahasiswa : ";
cin>>Ptr_Baru->Nilai;
Ptr_Baru->berikut=Ptr_Kepala;
Ptr_Kepala=Ptr_Baru;
cout<<"Tambah (y/t) : ";
cin>>lagi;
} while (lagi=='Y' || lagi=='y');
system("cls");
cout<<"\nAnda telah memasukkan data : "<<endl;
Mhs *cetak= Ptr_Kepala;
cout<<"Nama \t\t Nim \t\t Nilai Angka \t\t Nilai Huruf"<<endl;
while (cetak !=NULL){
cout<<cetak->Nama<<" \t\t"<<cetak->Nim<<" \t\t"<<cetak->Nilai<<" \t\t";
if (cetak->Nilai>=0&&cetak->Nilai<20)
cout<<"E"<<endl;
else if(cetak->Nilai>=20&&cetak->Nilai<40)
cout<<"D"<<endl;
else if(cetak->Nilai>=40&&cetak->Nilai<60)
cout<<"C"<<endl;
else if(cetak->Nilai>=60&&cetak->Nilai<80)
cout<<"B"<<endl;
else
cout<<"A"<<endl;
cetak=cetak->berikut;
}
}
int main(int argc, char** argv) {
Mhs *simpul;
simpul->Buat_berikut_list();
getch();
}
Alhamdulillah penyelesaian latihan pada diktat bab 10 terselesaikan. 
Kurang dan lebihnya saya mohon maaf, karena saya juga masih dalam tahap pembelajaran jadi mohon di mengerti.
Wassalamu"alaikum wr.wb

Senin, 16 Mei 2016

sorting (bubble sort)

Assalamu"alaikum wr. wb

Pada kesempatan kali ini kelompok kami akan membahas tentang sorting, ada 3 jenis sorting yang akan kami jelaskan. Saya sendiri akan membahas tentang Bubble Sort. Sementara selection sort dan insertion sort akan dibahas oleh temen saya. Langsung saja mari kita bahas.

Kelompok 15

Selection Sort --> Edi Siswanto (1500018018)
Insertion Sort --> Lalu Sabrian Ganata (1500018048)

Sorting dengan metode Bubble Sort


Memahami permasalahan

mengurutkan data acak menggunakan metode bubble sort
metodenya jika nilai sebelah kanan lebih kecil dari nilai disebelah kiri, maka tukar pisisi keduanya.
misal: 
6 7 5 --> (6 , 7) tak perlu di tukar karena 6<7.
6 7 5 --> tukar(7 --> 5) sudah di akhir mulai dari depan lagi 
6 5 7 --> tukar(6 -->5)
5 6 7 --> jika sudah tidak ada yg bisa ditukar (data sudah urut) maka selesai
5 6 7 --> selesai


Algoritma
Procedure Bubble_Sort (input/output x : larik, input n : byte)
Deklarasi
larik = array [1..100] of integeri, a : bytek : larik, bantu : integer
Deskripsi
for i <-- 1 to n-1 dofor j <-- i+1 to n doif x[i] > x[j] thentukar(x[i], x[j])endif edfor endfor
flowchart




C++ Program
#include <iostream>
using namespace std;

void baca_data(int A[], int n) {
int i;
for (i = 0; i < n; i++)
{ cout << "Data ke-" << i+1 << " : ";
cin >> A[i];
}
}

void cetak_data( int A[], int n) {
int i;
for (i = 0; i < n; i++)
cout << A[i] << " ";
cout << "\n";
}

void tukar (int *a, int *b)
{ int temp;
temp = *a;
*a = *b;
*b = temp;
}

void buble_sort (int x[], int n)
{ int i, j;
for (i = 0; i<n-1; i++)
for (j = i+1; j<n; j++)
if (x[i] > x[j])
tukar(&x[i], &x[j]);
}

main() {
cout << "Banyak data : ";
cin >> n;
baca_data(nilai,n);
cout<<endl;
cout<<"data awal"<<endl;
cetak_data(nilai,n);
buble_sort(nilai,n);
cout<<"data stelah diurutkan"<<endl;
cetak_data(nilai,n);
}

Jumat, 13 Mei 2016

How to Solve #5


Assalamu"alaikum wr.wb

Pada kesempatan kali ini, kita akan membahas tentang penyelesaikan kasus-kasus pada ebook how to solve bab 5. OK, langsung saja mari kita bahas.

Kasus 5.1

E-Book (How To Solve It By Computer) = Algorithm 5.1 The Two-Way Merge.


Algoritma :

if a[m]<b[n] then a[m+1]:=b[n+1]:=a[m];
i:=1;
j:=1;
nm:= n+m;
for k:= 1 to nm dobegin {merge next element }
if a[i]<b[j] thenbeginc[k]:=a[i];
i:=i+1end elsebeginc[k]:=b[j];
j:=j+1end
end
Program dengan C++ :

#include <iostream>
#include <cstdlib>

using namespace std;

int data[100];

void mergeSort(int awal, int mid, int akhir){
cout<<endl;
int temp[100], tempAwal = awal, tempMid = mid, i = 0;


while(tempAwal < mid && tempMid < akhir){
if(data[tempAwal] < data[tempMid])
temp[i] = data[tempAwal],tempAwal++;
else
temp[i] = data[tempMid],tempMid++;
i++;
}
while(tempAwal < mid) //kalau masih ada yang sisa
temp[i] = data[tempAwal],tempAwal++,i++;
while(tempMid < akhir)
temp[i] = data[tempMid],tempMid++,i++;
for(int j=0,k=awal;j<i,k<akhir;j++,k++) //mengembalikan ke array semula, tapi
cout<<data[k]<<' '<<temp[j]<<endl, data[k] = temp[j]; //sudah urut
}

void merge(int awal, int akhir) //membagi data secara rekursif{
if(akhir-awal != 1){
int mid = (awal+akhir)/2;
merge(awal, mid);
merge(mid, akhir);
mergeSort(awal, mid, akhir);
}
}

int main(){
int n;
cout<<"Masukan banya data = ";cin>>n;
cout<<"Masukan data yang akan di susun = ";
for(int i=0;i<n;i++)
cin>>data[i];
merge(0,n);
for(int i=0;i<n;i++)
cout<<data[i]<<' ';

return 0;
}

Kasus 5.2

E-Book (How To Solve It By Computer) = Algorithm 5.2 Sorting By Selection.


Algoritma:

Selection Sort

Algoritma ini mudah diterjemahkan ke dalam program computer tetapi memiliki kekurangan yaitu sort dengan menggunakan metode Seleksi membutuhkan ruang di memori untuk meyimpan 2 daftar lengkap.
Jika memiliki satu daftar nama dan meletakkan dalam urutan berdasarkan huruf bisa menggunakan pemdekatan umum sebagai berikut :


1. Temukan atau cari nama yang pertama kali datang dalam urutan huruf dan tulis di sheet kedua
2. Tandai nama yang keluar dari daftar asli
3. Lanjutkan perputaran ini sampai semua nama di daftar semula telah di coret dan ditulis di daftar kedua dimana di bagian daftar yang kedua ini nama-nama sudah terurut berdasarkan huruf.
Program C++ :

#include <iostream.h>
#include <conio.h>

int data[100],data2[100];
int n;

void tukar(int a,int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}

void bubble_sort()
{
for(int i=1;i<n;i++)
{
for(int j=n-1;j>=i;j–)
{
if(data[j]<data[j-1]) tukar(j,j-1);
}
}
cout<<”bubble sort selesai!”<<endl;
}

void exchange_sort()
{
for (int i=0; i<n-1; i++)
{
for(int j = (i+1); j<n; j++)
{
if (data [i] > data[j]) tukar(i,j);
}
}
cout<<”exchange sort selesai!”<<endl;
}

void selection_sort()
{
int pos,i,j;
for(i=0;i<n-1;i++)
{
pos = i;
for(j = i+1;j<n;j++)
{
if(data[j] < data[pos]) pos = j;
}
if(pos != i) tukar(pos,i);
}

cout<<”selection sort selesai!”<<endl;
}

void insertion_sort()
{
int temp,i,j;
for(i=1;i<n;i++)
{
temp = data[i];
j = i -1;
while(data[j]>temp && j>=0)
{
data[j+1] = data[j];
j–;
}
data[j+1] = temp;
}
cout<<”insertion sort selesai!”<<endl;
}

void QuickSort(int L, int R) //the best sort i’ve ever had
{
int i, j;
int mid;

i = L;
j = R;
mid = data[(L+R) / 2];

do
{
while (data[i] < mid) i++;
while (data[j] > mid) j–;

if (i <= j)
{
tukar(i,j);
i++;
j–;
};
} while (i < j);

if (L < j) QuickSort(L, j);
if (i < R) QuickSort(i, R);
}

void Input()
{
cout<<”Masukkan jumlah data = “; cin>>n;
for(int i=0;i<n;i++)
{
cout<<”Masukkan data ke-”<<(i+1)<<” = “; cin>>data[i];
data2[i] = data[i];
}
}

void Tampil()
{
cout<<”Data : “<<endl;
for(int i=0;i<n;i++)
{
cout<<data[i]<<” “;
}
cout<<endl;
}

void AcakLagi()
{
for(int i=0;i<n;i++)
{
data[i] = data2[i];
}
cout<<”Data sudah teracak!”<<endl;
}

void main()
{
int pil;
clrscr();
do
{
clrscr();
cout<<”Program Sorting Komplit!!!”<<endl;
cout<<”*********************************************”<<endl;
cout<<” 1. Input Data”<<endl;
cout<<” 2. Bubble Sort”<<endl;
cout<<” 3. Exchange Sort”<<endl;
cout<<” 4. Selection Sort”<<endl;
cout<<” 5. Insertion Sort”<<endl;
cout<<” 6. Quick Sort”<<endl;
cout<<” 7. Tampilkan Data”<<endl;
cout<<” 8. Acak Data”<<endl;
cout<<” 9. Exit”<<endl;
cout<<” Pilihan Anda = “; cin>>pil;
switch(pil)
{
case 1:Input(); break;
case 2:bubble_sort(); break;
case 3:exchange_sort(); break;
case 4:selection_sort(); break;
case 5:insertion_sort(); break;
case 6:QuickSort(0,n-1);
cout<<”quick sort selesai!”<<endl;
break;
case 7:Tampil(); break;
case 8:AcakLagi(); break;
}
getch();
}while(pil!=9);
}


Kasus 5.3




E-Book (How To Solve It By Computer) = Algorithm 5.3 Sorting By Exchange.

Soal

Diberikan urutan yang tidak beraturan dari kumpulan nilai n gunakan urutan dengan emnggunakan sorting by exchange

Penyelesaian :
Bubble Sort (Gelembung) merupakan metode pertukaran yang alur logikanya mirip dengan gelembung yaitu dengan cara membandingkan indeks Array yang pertama dengan indeks Array berikutnya secara terus menerus dan bergantian. Namun cara ini kurang efektif karena meskipun data sudah terurut proses perulangan yang terjadi akan terus berlangsung sampai batas perulangan itu berakhir. Ini adalah contoh alur alogaritmanya dalam kode program.

for (c=0; c<7; c++)
{ for (x=0; x<7; x++)
{if (menu[x]menu[x+1])
{term=menu[x];
menu[x]=menu[x+1];
menu[x+1]=term;
}
else {
menu[x]=menu[x];
}}}

Selection Sort (Maksimum/Minimum) merupakan metode pertukaran yang mencari nilai Maksimum/Minimum sekelompok data array yang nantinya nilai yang paling ujung akan diisolasikan dan tidak disertakan pada proses selanjutnya. Perhatikan contoh code berikut ini.

for(y=0; y<9; y++)
{max=0;
for (x=1; x<=b; x++)
{ if (A[x]>A[max])
{
max=x;
} }
if (A[max]>A[b])
{ term=A[b];
A[b]=A[max];
A[max]=term;
b--;
} else
{
b--;
}}


Insertion Sort (Sisip) meripakan metode pengurutan dengan cara menyisipkan nilai pada array pada posisi yang tepat. Untuk lebih jelasnya silakan lihat code dibawah ini.

for (k=1; k<9; k++)
{
term=L[k];
j=k-1;
while (term<=L[j])
{
L[j+1]=L[j];
j--;
}
if ((term >= L[j]) || (j=1))
{
L[j+1]=term;
}
else
{
L[j+1]=L[j];
L[j]=term;
}


Kasus 5.4



E-Book (How To Solve It By Computer) = Algorithm 5.4 Sorting By Insertion.


Algoritma :

1. Membangun sebuah array [1 .. n] elemen n.
2. Menemukan minimum dan meletakkannya di tempat untuk bertindak sebagai sentinel :
3. Sementara masih ada unsur-unsur yang akan dimasukkan di bagian memerintahkan melakukan
a. Pilih x elemen berikutnya untuk dimasukkan
b. Sementara x kurang dari sebelumnya unsur melakukan
c. Insert x pada posisi saat ini
for i:=2 to n do
begin {search for x's position then insert it}
j:=1; x:=a[i];
while x>a[j] do j:=j+1
for k:= i down to j+1 do a[k]:= a[k-1];
a[j]:=x
end


Program C++ :

#include <iostream.h>


void main(){
int data[100];
int a,b,c,d,x;
int temp;


cout<<"PROGRAM SORTING DATA "<<endl;
cout<<"---------------------------------------------"<<endl;
cout<<"Masukkan jumlah data : ? ";cin>>x;


for(d=1;d<=x;d++)
{
cout<<"Data ke-"<<d<<" = ";cin>>data[d];
}
cout<<"\nData Sebelum Diurutkan \n";
for(d=1;d<=x;d++){
cout<<"\t"<<data[d];
}
for(a=0;a<x;a++){
for(b=0;b<x;b++)
if(data[b]>= data[b+1])
{
temp=data[b];
data[b]=data[b+1];
data[b+1]=temp;
}
}
cout<<"\n\nData setelah diurutkan :\n";
for(c=0;c<x;c++)
cout<<"\t"<<data[c];
cout<<"\n\n---------------------------------------------"<<endl
}
system("PAUSE");
return EXIT_SUCCESS;
}


Kasus 5.7



E-Book (How To Solve It By Computer) = Algorithm 5.7 Binary Search.


Algoritma :

Pencarian pada data yang telah terurut menunjukkan kinerja yang lebih baik daripada pada data yang masih acak, hal ini karena dapat segera diketahui bahwa x tidak terdapat dalam larik bila ditemukan elemen yang lebih besar dari x.
Binary searching atau biasa disebut pencarian bagi dua merupakan metode pencarian yang paling efisien untuk data yang telah terurut. Metode ini digunakan untuk kebutuhan pencarian dengan waktu yang cepat.
Langkah-langkah pencarian bagi dua untuk data yang telah terurut secara ascending:
1. Bagi dua elemen larik yang telah terurut secara ascending, dengan cara menentukan elemen awal pencarian, elemen akhir pencarian dan elemen tengahnya.
- elemen awal pencarain (lo) = 1
- elemen akhir pencarain (hi) = n
- elemen tengah = (lo + hi) div 2

Misalnya terdapat larik L dengan 9 elemen yang telah terurut secara ascending seperti dibawah ini, maka kita akan menentukan elemen awal, akhir dan tengah pencariannya.

3
6 7 9 10
15 20 30 45

Lo = 1
Hi = 9
Mid = ( 1 + 9 ) div 2 = 5
2. Jika elemen yang dicari ada pada elemen di mid, maka ketemu.
3. Jika elemen yang ada di mid > elemen yang dicari, maka hi berubah
Hi = mid - 1
4. Jika elemen yang ada di mid < elemen yang dicari, maka lo berubah Lo = mid + 1 5. Ulangi langkah-langkah tersebut sampai data yang dicari ditemukan atau sampai elemen telah habis dibagi. Contoh: 3 6 7 9 10 15 20 30 45 Misalnya data yang dicari (x) = 7 1. lo = 1 hi = 9 mid = (1 + 9) div 2 = 5 L[5] = 10 L[mid] > x, maka hi berubah.
2. hi = mid -1 = 5 – 1 = 4
lo = 1
mid = ( 1 + 4 ) div 2 = 2
L[2] = 6
L[mid] < x, maka lo berubah 3. lo = mid +1 = 2 + 1 = 3 hi = 4 mid = ( 3 + 4 ) div 2 = 3 L[3] = 7 L[mid] = x, maka data ditemukan Pseudocode Pencarian bagi dua: Algoritma bin_searching; Var lo,hi,mid,n,x,idx :integer; ketemu : boolean; L : array [1..100] of integer; Begin {misalnya telah terdapat sekumpulan data yng tersimpan di dalam larik L} loß 1; hi ß n; ketemu ß false; while (not ketemu) and (lo <= hi) do midß (lo + hi ) div 2; If L[mid] = x then ketemu ß true Else If ( L[mid] > x ) then
lo ß mid + 1
Else
hi ß mid – 1;
End if
End if
End while
If (ketemu) then
Idx ß mid
Else
Idx ß -1;
End if
End.


Alhamdulillah kasus pada ebook how to solve bab 5 terselesaikan.
Terima kasih, kurang lebihnya saya mohon maaf.


Wassalamu"alaikum wr.wb