photo banner-fanny_zps9ad1ff0c.gif

Senin, 24 November 2014

Program Data Record

A. Flowchart
B. Listing Program

program record_2;
uses wincrt;
type siswa=record
     nama,alamat,asal,alasal,ttl:string;
     jurusan:1..5;
     prestasi:1..3;
     nem:real;
end;
larik_baru=array[1..17] of siswa;
var sisba,copy:larik_baru;
    i,j,x,n,acak:byte;
    pil:1..9;
procedure daftar(var a:larik_baru);
var lagi:char;
begin
repeat
begin
     inc(n);
     writeln('No Pendaftaran ke ',n);
     writeln;
     write('Nama                        : ');readln(a[n].nama);
     write('Tempat Tanggal Lahir        : ');readln(a[n].ttl);
     write('Alamat                      : ');readln(a[n].alamat);
     write('Asal Sekolah                : ');readln(a[n].asal);
     write('Alamat Sekolah              : ');readln(a[n].alasal);;
     write('Jumlah NEM                  : ');readln(a[n].nem);
     writeln;
     writeln('Prestasi yang pernah diraih (0:Tidak, 1:Kabupaten, 2:Nasional, 3:Internasional)');
     writeln('Hanya boleh melampirkan 1 prestasi');
     write('Prestasi Anda? ');readln(a[n].prestasi);
     writeln;
     writeln('Pilihan Jurusan:');
     writeln('          1. Teknik Jaringan (TKJ)');
     writeln('          2. Multimedia (MM)');
     writeln('          3. Akuntansi (AK)');
     writeln('          4. Administrasi Perkantoran (AP)');
     writeln('          5. Pemasaran (PM)');
     write('Pilihan Jurusan (1/2/3/4/5) : ');readln(a[n].jurusan);
     writeln;
     write('Daftar Selanjutnya (y/t)? ');readln(lagi);
     writeln;
end
until (lagi<>'y');
end;
procedure cetak(var a:larik_baru);
var jur:string;
    pres,jumlah,e,b,c,d:real;
   
begin
clrscr;
writeln('                     Data Pendaftar Siswa Baru SMKN 1 Bantul                   ');
writeln('                             Tahun Ajaran 2013/2014                            ');
writeln('_______________________________________________________________________________');
writeln('| No |   Nama    |    Asal Sekolah   | Jurusan |  NEM  |Prestasi| Total Nilai |');
writeln('|----|-----------|-------------------|---------|-------|--------|-------------|');
for i:=1 to n do
begin
e:=0.25;
b:=0.50;
c:=1.00;
d:=0;
with a[i] do
begin
     if (a[i].jurusan= 1) then jur:='TKJ' else
     if (a[i].jurusan= 2) then jur:='MM' else
     if (a[i].jurusan= 3) then jur:='AK' else
     if (a[i].jurusan= 4) then jur:='AP' else
                               jur:='PM';
     if (a[i].prestasi=1) then begin pres:=0.25;jumlah:=a[i].nem+e;end else
     if (a[i].prestasi=2) then begin pres:=0.50;jumlah:=a[i].nem+b;end else
     if (a[i].prestasi=3) then begin pres:=1.00;jumlah:=a[i].nem+c;end else
                               begin pres:=0.00;jumlah:=a[i].nem+d;end;
writeln('|',i:3,' |',nama:10,' |  ',asal:15,'  |   ',jur:3,'   | ',nem:2:2,' |  ',pres:2:2,'  |    ',jumlah:2:2,'    |');
end;
end;
writeln('|____|___________|___________________|_________|_______|________|_____________|');
end;
procedure cari(var a:larik_baru);
var search,jur:string;
    pres,e,b,c,d,jumlah:real;
    tempat:byte;
begin
clrscr;
acak:=0;
write('Siapa yang Anda cari? ');readln(search);
for i:=1 to n do
begin
if (a[i].nama=search) then
   begin
   tempat:=i;
   inc(acak);
   writeln(acak,' ',search,' ada di nomor pendaftaran ',tempat,' dengan data sebagai berikut.');
     writeln('Nama                        : ',a[tempat].nama);
     writeln('Tempat Tanggal Lahir        : ',a[tempat].ttl);
     writeln('Alamat                      : ',a[tempat].alamat);
     writeln('Asal Sekolah                : ',a[tempat].asal);
     writeln('Alamat Sekolah              : ',a[tempat].alasal);
     writeln('Jumlah NEM                  : ',a[tempat].nem:2:2);
     writeln;
   end;
end;
if (acak=0) then writeln('nama ',search,' tidak ada di dalam daftar');
end;
procedure fil_jur(var a:larik_baru);
var lagi:char;
    acak:byte;
    jur:string;
    pres,e,b,c,d,jumlah:real;
begin
repeat
begin
e:=0.25;
b:=0.50;
c:=1.00;
d:=0;
with a[i] do
begin
     if (a[i].jurusan= 1) then jur:='TKJ' else
     if (a[i].jurusan= 2) then jur:='MM' else
     if (a[i].jurusan= 3) then jur:='AK' else
     if (a[i].jurusan= 4) then jur:='AP' else
                               jur:='PM';
     if (a[i].prestasi=1) then begin pres:=0.25;jumlah:=a[i].nem+e;end else
     if (a[i].prestasi=2) then begin pres:=0.50;jumlah:=a[i].nem+b;end else
     if (a[i].prestasi=3) then begin pres:=1.00;jumlah:=a[i].nem+c;end else
                               begin pres:=0.00;jumlah:=a[i].nem+d;end;
end;
begin
for i:=1 to n do
clrscr;
writeln('Daftar Jurusan');
writeln('1. Teknik Komputer Jaringan');
writeln('2. Multimedia');
writeln('3. Akuntansi');
writeln('4. Administrasi Perkantoran');
writeln('5. Pemasaran');
writeln;
write('Masukkan Pilihan Anda 1/2/3/4/5 : ');readln(pil);
case pil of
1: begin
   acak:=0;
   writeln;
   writeln('Data pendaftar pada jurusan Teknik Komputer Jaringan');
   writeln('____________________________________________________________');
   writeln('| No | No Daftar |     Nama     |    Asal Sekolah  |  NEM  |');
   writeln('|----|-----------|--------------|------------------|-------|');
   for i:=1 to n do
   begin
   if (a[i].jurusan=1) then
   begin
   inc(acak);
   writeln('|',acak:3,' |',i:10,' |',a[i].nama:12,'  | ',a[i].asal:15,'  | ',a[i].nem:2:2,' |');
   end;
   end;
   writeln('|____|___________|______________|__________________|_______|');
   end;
2: begin
   acak:=0;
   writeln;
   writeln('Data pendaftar pada jurusan Multimedia');
   writeln('____________________________________________________________');
   writeln('| No | No Daftar |     Nama     |    Asal Sekolah  |  NEM  |');
   writeln('|----|-----------|--------------|------------------|-------|');
   for i:=1 to n do
   begin
   if (a[i].jurusan=2) then
   begin
   inc(acak);
   writeln('|',acak:3,' |',i:10,' |',a[i].nama:12,'  | ',a[i].asal:15,'  | ',a[i].nem:2:2,' |');
   end;
   end;
   writeln('|____|___________|______________|__________________|_______|');
   end;
3: begin
   acak:=0;
   writeln;
   writeln('Data pendaftar pada jurusan Akuntansi');
   writeln('____________________________________________________________');
   writeln('| No | No Daftar |     Nama     |    Asal Sekolah  |  NEM  |');
   writeln('|----|-----------|--------------|------------------|-------|');
   for i:=1 to n do
   begin
   if (a[i].jurusan=3) then
   begin
   inc(acak);
   writeln('|',acak:3,' |',i:10,' |',a[i].nama:12,'  | ',a[i].asal:15,'  | ',a[i].nem:2:2,' |');
   end;
   end;
   writeln('|____|___________|______________|__________________|_______|');
   end;
4: begin
   acak:=0;
   writeln;
   writeln('Data pendaftar pada jurusan Administrasi Perkantoran');
   writeln('____________________________________________________________');
   writeln('| No | No Daftar |     Nama     |    Asal Sekolah  |  NEM  |');
   writeln('|----|-----------|--------------|------------------|-------|');
   for i:=1 to n do
   begin
   if (a[i].jurusan=4) then
   begin
   inc(acak);
   writeln('|',acak:3,' |',i:10,' |',a[i].nama:12,'  | ',a[i].asal:15,'  | ',a[i].nem:2:2,' |');
   end;
   end;
   writeln('|____|___________|______________|__________________|_______|');
   end;
5: begin
   acak:=0;
   writeln;
   writeln('Data pendaftar pada jurusan Pemasaran');
   writeln('____________________________________________________________');
   writeln('| No | No Daftar |     Nama     |    Asal Sekolah  |  NEM  |');
   writeln('|----|-----------|--------------|------------------|-------|');
   for i:=1 to n do
   begin
   if (a[i].jurusan=5) then
   begin
   inc(acak);
   writeln('|',acak:3,' |',i:10,' |',a[i].nama:12,'  | ',a[i].asal:15,'  | ',a[i].nem:2:2,' |');
   end;
   end;
   writeln('|____|___________|______________|__________________|_______|');
   writeln;
   end;
   end;
write('Mau Filter lagi <y/t> ?  ');readln(lagi);
end;
end;
until (lagi<>'y');
end;
procedure sortir_nama(var a:larik_baru);
var backup:siswa;
begin
for i:=1 to n do copy[i]:=a[i];
for i:=1 to n-1 do
begin
     for j:=i+1 to n do
     begin
     if (copy[i].nama>copy[j].nama) then
     begin
          backup:=copy[i];
          copy[i]:=copy[j];
          copy[j]:=backup;
     end;
     end;
end;
writeln('Data Pendaftar sesuai nama');
writeln;
cetak(copy);
end;
procedure sortir_nem(var a:larik_baru);
var backup:siswa;
    jumlah:real;
begin
for i:=1 to n do copy[i]:=a[i];
for i:=1 to n-1 do
begin
     for j:=i+1 to n do
     begin
     if (copy[i].nem<copy[j].nem) then
     begin
          backup:=copy[i];
          copy[i]:=copy[j];
          copy[j]:=backup;
     end;
     end;
end;
writeln('Data Pendaftar sesuai jumlah NEM');
writeln;
cetak(copy);
end;
procedure edit(var a:larik_baru);
var ganti:byte;
begin
write('Data yang akan diedit: ');readln(ganti);
writeln('Mengedit data ke ',ganti);
writeln;
write('Nama                        : ');readln(a[ganti].nama);
write('Tempat Tanggal Lahir        : ');readln(a[ganti].ttl);
write('Alamat                      : ');readln(a[ganti].alamat);
write('Asal Sekolah                : ');readln(a[ganti].asal);;
write('Alamat Sekolah              : ');readln(a[ganti].alasal);
write('Jumlah NEM                  : ');readln(a[ganti].nem);
writeln;
writeln('Prestasi yang pernah diraih (0:Tidak, 1:Kabupaten, 2:Nasional, 3:Internasional)');
writeln('Hanya boleh melampirkan 1 prestasi');
write('Prestasi Anda? ');readln(a[ganti].prestasi);
writeln('Pilihan Jurusan:');
writeln('          1. Teknik Jaringan (TKJ)');
writeln('          2. Multimedia (MM)');
writeln('          3. Akuntansi (AK)');
writeln('          4. Administrasi Perkantoran (AP');
writeln('          5. Pemasaran (PM)');
write('Pilihan Jurusan (1/2/3/4/5) : ');readln(a[ganti].jurusan);
writeln;
writeln('Pendaftar ke ',ganti,' sudah di edit');
end;
procedure hapus(var a:larik_baru);
var hilang:byte;
begin
write('Data yang akan dihapus: ');readln(hilang);
for i:=hilang to n-1 do a[i]:=a[i+1];
    dec(n);
writeln('Pendaftar ke ',hilang,' sudah di hapus');
end;
begin
repeat
begin
     clrscr;
     writeln('     ..::SELAMAT DATANG DI SMKN 1 BANTUL::..');
     writeln('   Penerimaan Siswa Baru Tahun Ajaran 2013/2014');
     writeln('_____________________________________________________');
     writeln;
     writeln('1. Daftar');
     writeln('2. Tabel Pendaftar');
     writeln('3. Cari Nama Pendaftar');
     writeln('4. Daftar Perjurusan');
     writeln('5. Sortir Nama Pendaftar');
     writeln('6. Sortir Jumlah NEM');
     writeln('7. Edit Data');
     writeln('8. Hapus Data');
     writeln('9. Selesai');
     write('pilihan anda? ');readln(pil);
     clrscr;
     case pil of
     1: daftar(sisba);
     2: cetak(sisba);
     3: cari(sisba);
     4: fil_jur(sisba);
     5: sortir_nama(sisba);
     6: sortir_nem(sisba);
     7: edit(sisba);
     8: hapus(sisba);
     9: begin
        writeln;
        writeln('        ..::Terima Kasih::..        ');
        writeln('  Telah mendaftar di SMK N 1 Bantul ');
        writeln('..Silahkan tunggu info selanjutnya..');
        end;
     end;
     readln;
end; 
until (pil=9);
end.

C. Hasil Run program

 

PENGENALAN HTML

HTML


Sebelum belajar HTML, alangkah lebih baik jika kita memahami konsep dasar HTML terlebih dahulu.
Pengertian HTML
HTML adalah suatu bahasa yang dipergunakan untuk mendeskripsikan halaman web.
  • HTML merupakan singkatan dari Hyper Text Markup Language.
  • HTML bukan merupakan bahasa pemrograman, HTML adalah suatu markup language (bahasa markah).
  • Suatu markup language berupa serangkaian markup tags.
  • HTML menggunakan markup tags untuk mendeskripsikan halaman web.
HTML Tags
HTML markup tags biasa disebut HTML tags.
  • HTML tags berupa keywords atau kata kunci yang diapit oleh tanda kurung seperti <html>.
  • HTML tags biasanya dipakai berpasangan seperti <b> dan </b>.
  • Tag pertama dalam pasangan html tags adalah start tag atau tag awal, sedang tag kedua adalah end tag atau tag akhir.
  • Start tags dan end tags biasa juga disebut opening tags dan closing tags.
HTML Documents = Web Pages
  • HTML documents atau dokumen HTML mendeskripsikan suatu web pages atau halaman web.
  • HTML documents berisi HTML tags dan plain text atau text biasa.
  • HTML documents atau dokumen HTML juga biasa disebut web pages atau halaman web.
Tujuan dari sebuah web browser (seperti Internet Explorer, Firefox, Opera, Safari atau Google Chrome) adalah untuk membaca HTML documents kemudian menampilkannya sebagai halaman web. Browser tidak menampilkan HTML tags, tetapi menggunakan tag tersebut untuk menterjemahkan isi dari halaman web.
1
2
3
4
5
6
7
8
9
<html>
<body>
 
<h1>Judul Pertama</h1>
 
<p>Paragraf pertama</p>
 
</body>
</html>
Coba contoh HTML diatas dengan HTML Editor.
Penjelasan Contoh
  • Teks di antara <html> dan </html> mendeskripsikan web page.
  • Teks di antara <body> dan </body> adalah konten halaman web yang akan tertampil.
  • Teks di antara <h1> dan </h1> digunakan untuk menampilkan judul.
  • Teks di antara <p> dan </p> digunakan untuk menampilkan paragraf.

 DASAR HTML


Saat mempelajar HTML, terdapat dasar HTML yang paling sering dipergunakan dalam penulisan HTML. Meliputi : HTML Headings, HTML Paragraphs, HTML Links dan HTML Images.
HTML Headings
Heading atau Judul ditulis menggunakan tag <h1>, <h2>, <h3>, <h4>, <h5> dan <h6>.
1
2
3
<h1>Judul</h1>
<h2>Judul</h2>
<h3>Judul</h3>
Coba contoh HTML diatas dengan HTML Editor.
HTML Paragraphs
Paragraf ditulis menggunakan tag <p>.
1
2
3
4
5
6
<p>Paragraf pertama</p>
<p>Paragraf kedua</p>
<p>Paragraf ketiga</p> 
<p>Paragraf keempat</p>
<p>Paragraf kelima</p>
<p>Paragraf keenam</p>
Coba contoh HTML diatas dengan HTML Editor.
HTML Links
Links ditulis menggunakan tag <a>.
1
<a href="http://www.pemrograman.org/">Pemrograman.org</a>
Coba contoh HTML diatas dengan HTML Editor.
HTML Images
Gambar ditulis menggunakan tag <img>.
1
<img src="statx.jpg" width="738" height="327" />
Coba contoh HTML diatas dengan HTML Editor.


ELEMEN HTML

HTML Elements
Dokumen HTML didefinisikan menggunakan elemen-elemen HTML / HTML elements.
Elemen HTML adalah semua yang terdapat diantara start tag sampai end tag.
Start tag * Isi Elemen End tag *
<p> This is a paragraph </p>
<a href=”google.com” > This is a link </a>
<br />

HTML Element Syntax
Sintaks elemen HTML mempunyai ciri sebagai berikut:

  • Elemen HTML dimulai dengan start tag / opening tag
  • Elemen HTML diakhiri dengan end tag / closing tag
  • Isi Elemen / element content adalah semua yang terdapat diantara start tag dan end tag
  • Beberapa elemen HTML tidak memiliki isi atau konten
  • Elemen yang tidak memiliki isi atau kosong ditutup pada awal tag
  • Sebagian besar elemen HTML dapat diberi atribut tertentu
Nested HTML Elements
Dalam penulisan dokumen HTML dipastikan menggunakan banyak elemen. Suatu elemen dapat berada di dalam elemen lain atau elemen tersebut menjadi isi / konten pada elemen lain. Hampir semua elemen HTML dapat bersarang. Sehingga dapat disimpulkan bahwa dokumen HTML terdiri dari elemen HTML yang bersarang.
Contoh Dokumen HTML
1
2
3
4
5
6
7
<html>
 
<body>
<p>Paragraf pertama</p>
</body>
 
</html>
Pada contoh diatas terdapat tiga buah elemen. Elemen-elemen tersebut adalah:
Elemen <p>. Elemen ini mendefinisikan suatu konten yaitu sebuah paragraf pada dokumen HTML. Elemen ini dimulai dengan start tag <p> dan diakhiri dengan end tag </p>. Isi atau konten dari elemen ini adalah: Paragraf pertama
<p>Paragraf pertama</p>
Elemen <body>. Elemen ini mendefinisikan suatu konten yaitu body / tubuh dokumen HTML. Bagian ini adalah konten halaman web yang akan tertampil pada halaman web. Elemen ini dimulai dengan start tag <body> dan diakhiri dengan end tag </body>. Isi atau konten dari elemen ini adalah: elemen paragraf (yang sudah dijelaskan diatas).
<body>
<p>Paragraf pertama</p>
</body>
Elemen <html>. Elemen ini mendefinisikan sebuah dokumen HTML. Elemen ini dimulai dengan start tag <html> dan diakhiri dengan end tag </html>. Isi atau konten dari elemen ini adalah: elemen body (yang sudah dijelaskan diatas).
<html>
 
<body>
<p>Paragraf pertama</p>
</body>
 
</html>
Empty HTML Elements
Elemen HTML yang tidak memiliki konten atau isi disebut empty element / elemen kosong. Elemen dapat ditutup pada awal tag. <br> adalah contoh elemen kosong yang tidak memerlukan end tag. <br> bermakna ganti baris. Pada XHTML, XML, dan versi HTML yang lebih baru, semua elemen harus ditutup dengan end tag. Cara yang tepat untuk menutup elemen kosong yang dapat diterima oleh HTML, XHTML dan XML adalah dengan menambahkan garis miring di awal tag, seperti <br />. Walaupun <br> terbukti berjalan baik disemua browser, menulis <br /> akan lebih baik.
Terkadang kita sering lupa memberi end tag pada suatu elemen. Seperti contoh dibawah ini:
<p>Paragraf pertama</p>
<p>Paragraf kedua</p>
Hampir semua browser dapat menampilkan HTML dengan baik walaupun kita lupa memberi end tag pada suatu elemen HTML. Tetapi terdapat pula beberapa elemen yang akan menimpulkan kesalahan (errors) saat kita lupa memberikan end tag. Oleh karena itu, akan lebih baik kita tidak lupa menulis end tag pada suatu elemen

Rabu, 15 Januari 2014

algoritma pengurutan

> Dalam ilmu komputer, algoritma pengurutan (sorting adalah):
1. algoritma yang meletakkan elemen-elemen suatu kumpulan data dalam urutan tertentu atau
2. prosees pengurutan data yang sebelumnya disusun secara acak sehingga
menjadi tersusun secara teratur menurut suatu aturan tertentu
>
Yang pada kenyataannya ‘urutan tertentu’ yang umum digunakan adalah
terurut secara numerikal ataupun secara leksikografi (urutan abjad
sesuai kamus)
> Ada 2 jenis sorting : Ascending & Descending

Pengertian/Konsep Buble Sort

Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada pengurutan gelembung.
Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat.

Kelebihan Bubble Sort

  • Metode Buble Sort merupakan metode yang paling simpel
  • Metode Buble Sort mudah dipahami algoritmanya

Kelemahan Bubble Sort

Meskipun simpel metode Bubble sort  merupakan metode pengurutanyang paling tidak efisien.  Kelemahan buble sort adalah pada saat mengurutkan data yang sangat besar akan mengalami kelambatan luar biasa, atau dengan kata lain kinerja memburuk cukup signifikan ketika data yang diolah jika  data cukup banyak. Kelemahan lain adalah jumlah pengulangan akan tetap sama jumlahnya walaupun data sesungguhnya sudah cukup terurut. Hal ini disebabkan setiap data dibandingkan dengan setiap data yang lain untuk menentukan posisinya.

Algoritma Bubble Sort

  1. Membandingkan data ke-i dengan data ke-(i+1) (tepat bersebelahan). Jika tidak sesuai maka tukar (data ke-i = data ke-(i+1) dan data ke-(i+1) = data ke-i). Apa maksudnya tidak sesuai? Jika kita menginginkan algoritme menghasilkan data dengan urutan ascending (A-Z) kondisi tidak sesuai adalah data ke-i > data ke-i+1, dan sebaliknya untuk urutan descending (A-Z).
  2. Membandingkan data ke-(i+1) dengan data ke-(i+2). Kita melakukan pembandingan ini sampai data terakhir. Contoh: 1 dgn 2; 2 dgn 3; 3 dgn 4; 4 dgn 5 … ; n-1 dgn n.
  3. Selesai satu iterasi, adalah jika kita sudah selesai membandingkan antara (n-1) dgn n. Setelah selesai satu iterasi kita lanjutkan lagi iterasi berikutnya sesuai dengan aturan ke-1. mulai dari data ke-1 dgn data ke-2, dst.
  4. Proses akan berhenti jika tidak ada pertukaran dalam satu iterasi.

Contoh Kasus Bubble Sort

Misalkan kita punya data seperti ini: 6, 4, 3, 2 dan kita ingin mengurutkan data ini (ascending) dengan menggunakan bubble sort. Berikut ini adalah proses yang terjadi:
Iterasi ke-1: 4, 6, 3, 2 :: 4, 3, 6, 2 :: 4, 3, 2, 6 (ada 3 pertukaran)
Iterasi ke-2: 3, 4, 2, 6 :: 3, 2, 4, 6 :: 3, 2, 4, 6 (ada 2 pertukaran)
Iterasi ke-3: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 1 pertukaran)
Iterasi ke-4: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 0 pertukaran) -> proses selesai

Analisis Algoritma Bubble Sort

Tujuan dari analisis  algoritma adalah untuk  mengetahui efisiensi dari algoritma. Dalam hal ini dilakukan pembandingan antara dua atau lebih algoritma pengurutan.Tahap analisis adalah melakukan pengecekan program untuk memastikan bahwa program telah benar secara logika maupun sintak (tahap tracing atau debugging). Tahap selanjutnya yaitu menjalankan program untuk mengetahui running time atau waktu komputasi dalam hal ini
termasuk jumlah langkah. Data uji yang digunakan adalah data yang tidak terurut atau data random, terurut membesar/, dan terurut mengecil.
Salah satu cara untuk menganalisa kecepatan algoritma sorting saat running time adalah dengan menggunakan notasi Big O. Algoritma  sorting mempunyai kompleksitas waktu terbaik, terburuk, dan rata-rata.  Dengan notasi Big O, kita dapat mengoptimalkan penggunaan algoritma sorting. Sebagai contoh, untuk kasus  dimana jumlah masukan untuk suatu pengurutan banyak, lebih baik digunakan algoritma sorting seperti quick sort, merge sort, atau heap sortkarena kompleksitas waktu untuk kasuk terburuk  adalah  O(n log n). Hal ini tentu akan sangatberbeda jika kita menggunakan algoritma sorting insertion sort atau bubble sort dimana waktu yang dibutuhkan untuk melakukan pencarian akan sangat lama. Hal ini disebabkan kompleksitas waktu terburuk untuk algoritma sorting tersebut dengan jumlah masukan yang banyak adalah O(n2).

Contoh program :
#include "stdio.h"
#include "conio.h"
#define n 7
void main()
{
 int A[n] = {15,10,7,22,17,5,12};
 int X, I, K;
 printf("Sebelum di-sort\n");
 for (I=0; I <= n-1; I++)
  printf("%3i", A[I]);
 printf("\n");

 K=0;
 while(K<=n-2)
 {
  I=0;
  while(I<=n-2 - K)
  {
   if (A[I] > A[I+1])
   {
    X = A[I];
    A[I] = A[I+1];
    A[I+1] = X;
   }
   I++;
  }
  K++;
 }
 printf("Sesudah di-sort\n");
 for (I=0; I<= n-1; I++)
  printf("%3d", A[I]);
}

Selection Sort

Pengertian  dari selection sort adalah mencari elemen yang tepat untuk diletakkan  
di posisi yang telah diketahui,dan meletakkannya di posisi tersebut  setelah data 
tersebut ditemukan.Selection Sort Membandingkan elemen yang sekarang dengan elemen 
yang berikutnya sampai dengan elemen yang terakhir. Jika ditemukan elemen lain yang 
lebih kecil dari elemen sekarang maka dicatat posisinya dan kemudian ditukar. 

ilustrasi program :


Contoh Program:

/*---- METODE ASC SELECTION SORT ----*/
#include <stdio.h>
#include <conio.h>

void main() {
 int i, j, iMin;           //Deklarasi index untuk array
 int n, Urut;              //Deklarasi untuk banyak data
 int Tmp;                  //Tmp penampung elemen array
 int Arr[50];              //Deklarasi Array

 //Aplikasi dimulai
 printf("Inputkan banyak data yang akan diurutkan : ");
 scanf("%i", &n);
 //Input array
 Urut = 1;
 for(i = 0; i < n; i++) { //Perulangan untuk inputan array
 printf("Masukan data ke %i : ", i + 1);
 scanf("%i", &Arr[i]);
 }
 //Lakukan sorting ascending dengan metode selection
 for(i = 0; i < n - 1; i++) {          //n - 1 artinya elm terakhir tidak dihitung
 iMin = i;                          //Set min = index array
 for(j = Urut; j < n; j++) {        //Lakukan perulangan sebagai pembanding
 if(Arr[j] < Arr[iMin]) {        //Cari data yang kecil
 iMin = j;                    //min diganti dengan yang lebih kecil
 if(Arr[i] != Arr[iMin]) {    //Cek untuk data yang berbeda
 Tmp = Arr[i];             //Tampung Array yang lama
 if(Arr[i] > Arr[iMin]) {  //Jika Array lama lebih besar dari yang baru
 Arr[i] = Arr[iMin];    //Ganti Array lama dengan Array baru
 Arr[iMin] = Tmp;       //Ganti Array baru dengan Array lama
 }
 }
 }
 }
 Urut = Urut + 1;                   //Tambah urut dengan 1
 }
 //Tampilkan Hasil
 printf("\nSetelah Pengurutan\n");
 for(i = 0; i < n; i++) {              //Perulangan untuk tampilan Array
 printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
 }
 getch();                              //Tahan tampilan
}

algoritma array

ARRAY di dalam Algoritma


Array adalah sekelompok data sejenis yang disimpan ke dalam variabel dengan nama yang sama, dengan memberi indeks pada variabel untuk membedakan antara yang satu dengan yang lain.
VARIABEL ARRAY
            nama_variabel[indeks]
ketentuan nama variabel arrray sama dengan nama variabel biasa.
indeks menunjukkan nomor dari variabel .
DEKLARASI VARIABEL ARRAY
BU                  : tipe nama_variabel[indeks];
Contoh           : float bil[10];
            deklarasi variabel array dengan nama bil yang akan menampung 10 data             yang  bertipe  float.  Indeks  10  menunjukkan  variabel  bil  terdiri  dari  10 elemen, dimana setiap elemen akan menampung sebuah data.
Indeks array dimulai dari nol(0) , sedang nomor elemen biasanya dimulai dari satu(1). Nomor elemen dapat dibuat sama dengan nomor indeks untuk mempermudah pembuatan program yaitu dengan memberi indeks satu lebih banyak dari jumlah data yang dibutuhkan, sehingga menjadi :
            float bil[11]
INISIALISASI  ARRAY 1 DIMENSI
Inisialisasi  dapat dilakukan bersama dengan deklarasi atau tersendiri. Inisialisasi suatu array adalah dengan meletakkan elemen array di antara tanda kurung kurawal {}, antara elemen yang satu dengan lainnya dipisahkan koma.
            int bil[2] = {4,1,8}
            bil[0] = 4
            bil[1] = 1
            bil[2] = 8
AUTOMATIC ARRAY adalah Inisialisasi array dilakukan di dalam fungsi tertentu. Hanya  compiler C yang berstandar ANSI C yang dapat menginisialisasikan automatic array.
Cara menginisialisasikan  array dari compiler yg tidak mengikuti standar  ANSI C:
1. Diinisialisasikan di luar fungsi sebagai variabel GLOBAL/EXTERNAL ARRAY.
            int bil[2]={0,0,0};
            main()
           
2. Diinisialisasikan didlm fungsi sebagai variabel LOKAL/STATIC ARRAY.
            main()
            {
                        static int bil[2]={0,0,0};
                        .........
Pada automatic array yang tidak diinisialisasikan , elemen array akan memiliki nilai yang tidak beraturan. Bila global & static array tidak diinisialisasi maka semua elemen array secara otomatis akan diberi nilai nol(0).
Contoh :
main()
{
            int y;
            int hitung=0;
            int x[0];
            for(y=0;y<5;y++)
            {
                        hitung+=y;
                        x[y]=hitung;
                        printf("%3d - %3d\n",y,x[y]);
            }
}
OUTPUT:
0-  0
1-  1
2-  3
3-  6
4-  10
MENDEFINISIKAN JUMLAH ELEMEN ARRAY DALAM VARIABEL
Besarnya variabel indeks dapat ditentukan dengan menggunakan
preprocessor directives #define
#define N 40
main()
{
            int no[N],gaji[N],gol[N],status[N],juman[N];
Bila besari indeks akan diubah menjadi 50, cukup diganti dengan
#define N 50
ARRAY 2 DIMENSI
            nama_variabel [indeks1][indeks2]
indeks1          : jumlah/nomor baris
indeks2          : jumlah/nomor kolom
Jumlah elemen yang dimiliki array 2 dimensi dapat ditentukan dari hasil perkalian          indeks1 * indeks2
misal : array A[2][3] akan memiliki 2*3 = 6 elemen.
main()
{
            float  bil [5] [5]
            .......
dapat dituliskan dengan #define
#define N 5
main()
{
            float bil [N]  [N]
            .......
INISIALISASI ARRAY 2 DIMENSI
main()
{
            float bil[2] [3] =
            { { 1,2,3},         /*baris 0*/
              { 4,5,6},         /*baris 1*/
            }
elemen bil [0] [0] = 1
elemen bil [0] [1] = 2
elemen bil [0] [2] = 3
elemen bil [1] [0] = 4
elemen bil [1] [1] = 5
elemen bil [1] [2] = 6
Contoh :
main()
{
            int x[3][5];
            int y,z;
            int hitung=0;
            for(y=0;y<3;y++)
            {
                        printf("y = %d\n",y);
                        for(z=0;z<5;z++)
                        {
                                    hitung+=z;
                                    x[y][z] = hitung;
                                    printf("%/t%3d - %3d\n",z,x[y][z]);
                        }
            }
}
OUTPUT:
y = 0
   0-  0
   1-  1
   2-  2
   3-  6
   4-  10
y = 1
   0-  10
   1-  11
   2-  13
   3-  16
   4-  20
y = 2
  0-  20
  1-  21
  2-  23
  3-  26
  4-  30
STRING dan ARRAY
1. Pada string   terdapat karakter null(\0) di akhir string
2. String sudah pasti array, array belum tentu string
CONTOH - CONTOH :
1. array dengan pengisian input melalui keyboard
            baca_input()
            {
                        float nilai[10];
                        for(i=0;i<10;i++)
                        scanf("%d",&nilai[i]);
            }
2. Fungsi yang mencetak isi array dari akhir ke awal
            cetak_array()
            {
                        float nilai[10];
                        for(i=9;i>=0;i--)
                        scanf("%3f",nilai[i]);
            }
3. Menghitung rata - rata isi array nilai
            rata_rata()
            {
                        float nilai[10],jum*rata;
                        for(i=0,jum=0;i<=9;i++)
                                    jum+=nilai[i];
                                    rata=jum/i;
            }
4. Mencari nilai terbesar
            besar()
            float temp,nilai[10];
            {
                        for(temp=nilai[0],i=1;i<=9;i++)
                        if(nilai[i] > temp)
                                    temp=nilai[i];
            }
            return(temp)