TUJUAN PEMBELAJARAN UMUM
anda dapat memecahkan masalah dengan algoritma yang berbasis pada bahasa C, Pascal dan Java serta dapat mengimplementasikan konsep dasar pemrograman terstruktur
SKEMA POKOK BAHASAN
Pengenalan AlgoritmaKonsep tipe data dan operatorFungsi Input dan OutputKonsep Struktur Dasar RuntunanKonsep Struktur Dasar Seleksi KondisiKonsep Struktur Dasar PerulanganProsedur dan FungsiArraySearchingSorting
Satuan Acara Perkuliahan
1.Pengenalan Algoritma
–Pengantar Algoritma
–Dasar-dasar algoritma
–Aturan penulisan teks algoritma
2.Konsep tipe data dan operator
–Tipe Data, Variabel dan Konstanta
–Operator aritmetika dan logika
3.Fungsi Input dan Output
–Memasukkan data
–Menampilkan hasil
4.Konsep Struktur Dasar Runtunan
–urutan instruksi
Satuan Acara Perkuliahan
5.Konsep Struktur Dasar Seleksi Kondisi
–Penyeleksian kondisi
–Struktur IF
–Struktur CASE
6.Konsep Struktur Dasar Perulangan
–Pengertian Pengulangan
–Konsep akumulator dan kounter
–Struktur FOR
–Struktur WHILE – DO
–Struktur DO – WHILE
Satuan Acara Perkuliahan
7.Prosedur
–Konsep dasar dan definisi prosedur
–Deklarasi dan pemanggilan prosedur
–Ruang lingkup variable
–Pengiriman
8.Fungsi
–Konsep dasar dan definisi fungsi
–Deklarasi dan Pemanggilan Fungsi
Satuan Acara Perkuliahan
9.Array
–Pengertian array
–Deklarasi array
10.Array 2 dimensi
–Matriks
Satuan Acara Perkuliahan
11.Searching
–Pengertian Searching
–Sequential Search
12.Sorting
–Pengertian Sorting
–Buble Sort
Pengantar
Logika merupakan dasar dari semua penalaran.
Contoh : masakan ditambah garam menjadi asin,
7 lebih besar dari 5, dll
Algoritma merupakan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
Contoh algoritma :
Masalah : membuat kue
Algoritma : resep kue
Masalah : Menggunakan mesin
Algoritma : petunjuk pemakaian alat
Apa hubungannya dengan komputer ?
Komputer tidak dapat berpikir sendiri.
Komputer mengerjakan apa yang kita perintahkan, bukan apa yang kita inginkan.
Program = rangkaian perintah yang dibuat dengan algoritma yang benar untuk dijalankan oleh komputer.
Cara Menyusun Algoritma
Untuk menyusun sebuah algoritma, harus diketahui keadaan awal dan keadaan akhir yang diinginkan.
Seringkali terdapat lebih dari satu algoritma untuk menyelesaikan suatu masalah.
Contoh : Algoritma membuat secangkir teh manis
Keadaan Awal :
Cangkir, panci, teh, gula, sendok, ada di lemari.
Air diambil dari keran.
Keadaan Akhir :
Secangkir teh manis di meja.
Semua alat dikembalikan ke tempat semula
Contoh Solusi Algoritma Membuat Teh Manis
1.Ambil cangkir dari lemari letakkan di meja.
2.Ambil panci dari lemari.
3.Isi panci dengan air keran.
4.Panaskan panci (berisi air) di atas kompor.
5.Ambil sendok dari lemari.
6.Ambil gula dari lemari, masukkan satu sendok ke dalam cangkir.
7.Ambil teh dari lemari, masukkan satu sachet ke dalam cangkir.
8.Periksa apakah air sudah mendidih
9.Jika belum tunggu hingga mendidih
10.Jika sudah mendidih, matikan kompor. Tuangkan air ke dalam cangkir.
11.Aduk sampai gula larut.
12.Buang sisa air panas. Simpan panci, teh, gula ke lemari.
Pseudocode & Flowchart
Menuliskan algoritma menggunakan bahasa sehari-hari : tidak efisien, terlalu panjang.
Programmer mengenal dua standar penulisan algoritma, yaitu :
Pseudocode
Flowchart
Pseudocode
•Pseudocode adalah bahasa yang digunakan untuk menyederhanakan penulisan algoritma.
•Pseudocode bukan bahasa pemrograman.
Flowchart
•Cara lain menuliskan algoritma adalah dengan flowchart. Cara ini sudah jarang dipakai karena sangat menyita waktu dan kertas.
•Keunggulan flowchart: Alur program sangat mudah dibaca/ditelusuri.
Sekilas tentang software
•Software adalah program yang dibuat dengan tujuan khusus, yang akan dijalankan oleh komputer.
• Jenis-jenis software:
–Sistem operasi : DOS, Unix, Linux, Windows 98, Windows 2000, Windows XP, OS/2, dll.
–Bahasa Pemrograman : Basic, Pascal, C, C++, Fortran, Java, Assembly, dll.
–Development Tools : Delphi, Visual Basic, Visual C++, C Builder, JBuilder, dll.
–Database : MS Access, SQL Server, Oracle, Interbase, MySQL, dll.
–Aplikasi : MS Word, MS Excel, Lotus 123, CorelDraw, Photoshop, dll.
–Utility : antivirus, browser, dll
Sekilas tentang pemrograman
•Teknik pemrograman dapat dibagi menjadi:
–Pemrograman prosedural
–Pemrograman deklaratif
–Pemrograman fungsional
–Pemrograman visual
–Pemrograman berorientasi objek
ALGORITMA
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
bubble_acak()
{
clrscr();
int arr[1000];
int x, i; //untuk array
int s, t, temp; //untuk sorting
//input jumlah data yang diproses
cout<<"angka yang akan dimasukkan : "; cin>>x;
//input nilai masing" array
srand(time(NULL));
for (i=0; i<x; i++)
arr[i] = rand() %1000;
//output nilai" array
clrscr();
cout<<"====== array ======"<<endl<<endl;
cout<<"angka angkanya :"<<endl;
for (i=0; i<x; i++)
cout<<arr[i]<<", ";
//sorting
cout<<endl<<endl<<endl<<endl;
cout<<"====== sorting ======"<<endl<<endl;
s = 0;
for (s=0; s<x; s++)
{
for (t = s+1; t<x; t++)
{
if (arr[s]>arr[t])
{
temp = arr[s];
arr[s] = arr[t];
arr[t] = temp;
}
}
}
cout<<"setelah sorting :"<<endl;
for (i=0; i<x; i++)
cout<<arr[i]<<", ";
getch();
}
bubble_manual()
{
clrscr();
int arr[1000];
int x, i; //untuk array
int s, t, temp; //untuk sorting
//input jumlah data yang diproses
cout<<"angka yang akan dimasukkan : "; cin>>x;
//input nilai masing" array
for (i=0; i<x; i++)
{
cout<<"masukkan angka ke-"<<i<<" : ";
cin>>arr[i];
}
//output nilai" array
clrscr();
cout<<"====== array ======"<<endl<<endl;
cout<<"angka angkanya :"<<endl;
for (i=0; i<x; i++)
cout<<arr[i]<<", ";
//sorting
cout<<endl<<endl<<endl<<endl;
cout<<"====== sorting ======"<<endl<<endl;
s = 0;
for (s=0; s<x; s++)
{
for (t = s+1; t<x; t++)
{
if (arr[s]>arr[t])
{
temp = arr[s];
arr[s] = arr[t];
arr[t] = temp;
}
}
}
cout<<"setelah sorting :"<<endl;
for (i=0; i<x; i++)
cout<<arr[i]<<", ";
//mission complete
getch();
}
main ()
{
int pilih;
char ulang;
do
{
clrscr ();
cout<<"tekan 1 : bilangan yang disorting dimasukan secara acak"<<endl;
cout<<"tekan 2 : bilangan yang disorting dimasukan secara manual"<<endl;
cout<<"masukkan pilihan : "; cin>>pilih;
switch (pilih)
{
case 1:
bubble_acak();
break;
case 2:
bubble_manual();
break;
default:
clrscr();
cout<<"\"maaf\""<<endl;
cout<<"\"pilihan yang dimasukkan salah\"";
break;
}
cout<<endl<<endl<<"tekan \"Y\" lalu \"ENTER\" untuk ulang ---> "; cin>>ulang;
}
while (ulang=='Y');
}
Pengulangan proses menggunakan For…Next adalah bentuk pengulangan
terkendali dengan variabel kendali yang terus berjalan maju atau mundur. Format
penulisan pengulangan ini adalah sebagai berikut:
For variabel = nilai_awal To nilai_akhir [Step langkah]
<Proses dalam pengulangan>
Next variable
Contoh 1:
Untuk menentukan barisan bilangan 1, 2, 3, …., 10 maka bilangan mempunyai nilai
awal = 1, nilai akhir=10 dan step antar bilangan = 1, sehingga bisa ditulis dengan
For bilangan=1 To 10 Step 1
<Proses untuk barisan bilangan>
Next bilangan
Karena step=1, maka secara default tidak perlu dituliskan sehingga perintahnya bias
ditulis dengan:
For bilangan=1 To 10
<Proses untuk barisan bilangan>
Next bilangan
Contoh Aplikasi 5.1:
Untuk menampilkan barisan bilangan 1 sampai dengan N, dengan N dimasukkan.
Hasil barisan ditampilkan pada Label.
(1) Buat project baru. Pada form, isi property [Name] dengan formLatihan51
(2) Tambahkan komponen-komponen: 1 label, 1 textbox, 1 buah listBox dan 1
command button
(3) Untuk label1, isi property [Caption] dengan ”N=”. Untuk textbox1,
kosongkan property [Text]. Untuk command1, isi property [Caption] dengan
Barisan. Atur posisi masing-masing komponen seperti gambar berikut :
Algoritma merupakan runtunan satu atau lebih instruksi yang berarti bahwa :
– Tiap instruksi dikerjakan satu per satu.
– Tiap instruksi dilaksanakan tepat sekali, tidakada instruksi yang diulang.
– Urutan instruksi yang dilaksanakan pemroses
sama dengan urutan instruksi sebagai tertulis di dalam teks algoritma.
– Akhir dari instruksi terakhir merupakan akhir
algoritma.Pengaruh Urutan Instruksi
• Urutan instruksi dalam algoritma adalah penting. Urutan instruksi menunjukkan urutan logika penyelesaian masalah.
• Urutan instruksi yang berbeda mungkin
tidak ada pengaruh terhadap solusi
persoalan, tetapi mungkin juga
menghasilkan keluaran yang berbeda,
tergantung pada masalahnya,
Contoh kasus 1
Urutan instruksi tidak berpengaruh terhadap solusi persoalan.
• Dibaca dua buah nilai integer dari keyboard, A dan B.
• Hitung jumlah keduanya dan hasil kali keduanya
• Cetak hasil jumlah dan kali ke piranti keluaran.Algoritma Runtunan_1
di baca dua buah bilangan integer kemudian hitung penjumlahan dan perkalian dua buah bilangan tersebut, dan tampilkan hasilnya ke layar.
Deklarasi :
A, B, C, D : integer
Deskripsi :
read (A, B) {1}
C - A + B {2}
D - A * B {3}
write (C, D) {4}
Hasil algoritma di atas sama jika urutan no. 2 dan 3 diubah (ditukarkan) sebagai berikut :
Algoritma Runtunan_2
{di baca dua buah bilangan integer kemudian
hitung penjumlahan dan perkalian dua buah
bilangan tersebut, dan tampilkan hasilnya ke layar}
Deklarasi :
A, B, C, D : integer
Deskripsi :
read (A, B) {1}
D - A * B {3}
C - A + B {2}
write (C, D) {4}
Contoh kasus 2
• Urutan instruksi berpengaruh terhadap solusi persoalan.Algoritma Runtunan_3
Contoh algoritma yang menghasilkan keluaran yang berbeda jika urutan instruksi diubah
Deklarasi :
A, B : integer
Deskripsi :
A-10 {1}
A- 2*A {2}
B- A {3}
write (B) {4}Algoritma Runtunan_4
Contoh algoritma yang menghasilkan keluaran yang berbeda jika urutan instruksi diubah
Deklarasi :
A, B : integer
Deskripsi :
A-10 {1}
B- A {3}
A- 2*A {2}
write (B)
Variabel adalah suatu tempat untuk menampung data yang nilainya selalu berubah.
Sedangkan, Konstanta adalah suatu tempat untuk menampung data yang nilainya selalu tetap dan tidak pernah berubah.
Deklarasi variabel bisa disebut juga memperkenalkan atau mendaftarkan variabel ke dalam program. Dalam php, deklarasi variabel seringkali digabung dengan inisialisasi. Variabel dalam PHP dinyatakan dengan awalan $.
Inisialisasi variabel adalah mengisi nilai untuk pertama kalinya ke dalam variabel.
Aturan pemberian nama variabel :
anda dapat memecahkan masalah dengan algoritma yang berbasis pada bahasa C, Pascal dan Java serta dapat mengimplementasikan konsep dasar pemrograman terstruktur
SKEMA POKOK BAHASAN
Pengenalan AlgoritmaKonsep tipe data dan operatorFungsi Input dan OutputKonsep Struktur Dasar RuntunanKonsep Struktur Dasar Seleksi KondisiKonsep Struktur Dasar PerulanganProsedur dan FungsiArraySearchingSorting
Satuan Acara Perkuliahan
1.Pengenalan Algoritma
–Pengantar Algoritma
–Dasar-dasar algoritma
–Aturan penulisan teks algoritma
2.Konsep tipe data dan operator
–Tipe Data, Variabel dan Konstanta
–Operator aritmetika dan logika
3.Fungsi Input dan Output
–Memasukkan data
–Menampilkan hasil
4.Konsep Struktur Dasar Runtunan
–urutan instruksi
Satuan Acara Perkuliahan
5.Konsep Struktur Dasar Seleksi Kondisi
–Penyeleksian kondisi
–Struktur IF
–Struktur CASE
6.Konsep Struktur Dasar Perulangan
–Pengertian Pengulangan
–Konsep akumulator dan kounter
–Struktur FOR
–Struktur WHILE – DO
–Struktur DO – WHILE
Satuan Acara Perkuliahan
7.Prosedur
–Konsep dasar dan definisi prosedur
–Deklarasi dan pemanggilan prosedur
–Ruang lingkup variable
–Pengiriman
8.Fungsi
–Konsep dasar dan definisi fungsi
–Deklarasi dan Pemanggilan Fungsi
Satuan Acara Perkuliahan
9.Array
–Pengertian array
–Deklarasi array
10.Array 2 dimensi
–Matriks
Satuan Acara Perkuliahan
11.Searching
–Pengertian Searching
–Sequential Search
12.Sorting
–Pengertian Sorting
–Buble Sort
Pengantar
Logika merupakan dasar dari semua penalaran.
Contoh : masakan ditambah garam menjadi asin,
7 lebih besar dari 5, dll
Algoritma merupakan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
Contoh algoritma :
Masalah : membuat kue
Algoritma : resep kue
Masalah : Menggunakan mesin
Algoritma : petunjuk pemakaian alat
Apa hubungannya dengan komputer ?
Komputer tidak dapat berpikir sendiri.
Komputer mengerjakan apa yang kita perintahkan, bukan apa yang kita inginkan.
Program = rangkaian perintah yang dibuat dengan algoritma yang benar untuk dijalankan oleh komputer.
Cara Menyusun Algoritma
Untuk menyusun sebuah algoritma, harus diketahui keadaan awal dan keadaan akhir yang diinginkan.
Seringkali terdapat lebih dari satu algoritma untuk menyelesaikan suatu masalah.
Contoh : Algoritma membuat secangkir teh manis
Keadaan Awal :
Cangkir, panci, teh, gula, sendok, ada di lemari.
Air diambil dari keran.
Keadaan Akhir :
Secangkir teh manis di meja.
Semua alat dikembalikan ke tempat semula
Contoh Solusi Algoritma Membuat Teh Manis
1.Ambil cangkir dari lemari letakkan di meja.
2.Ambil panci dari lemari.
3.Isi panci dengan air keran.
4.Panaskan panci (berisi air) di atas kompor.
5.Ambil sendok dari lemari.
6.Ambil gula dari lemari, masukkan satu sendok ke dalam cangkir.
7.Ambil teh dari lemari, masukkan satu sachet ke dalam cangkir.
8.Periksa apakah air sudah mendidih
9.Jika belum tunggu hingga mendidih
10.Jika sudah mendidih, matikan kompor. Tuangkan air ke dalam cangkir.
11.Aduk sampai gula larut.
12.Buang sisa air panas. Simpan panci, teh, gula ke lemari.
Pseudocode & Flowchart
Menuliskan algoritma menggunakan bahasa sehari-hari : tidak efisien, terlalu panjang.
Programmer mengenal dua standar penulisan algoritma, yaitu :
Pseudocode
Flowchart
Pseudocode
•Pseudocode adalah bahasa yang digunakan untuk menyederhanakan penulisan algoritma.
•Pseudocode bukan bahasa pemrograman.
Flowchart
•Cara lain menuliskan algoritma adalah dengan flowchart. Cara ini sudah jarang dipakai karena sangat menyita waktu dan kertas.
•Keunggulan flowchart: Alur program sangat mudah dibaca/ditelusuri.
Sekilas tentang software
•Software adalah program yang dibuat dengan tujuan khusus, yang akan dijalankan oleh komputer.
• Jenis-jenis software:
–Sistem operasi : DOS, Unix, Linux, Windows 98, Windows 2000, Windows XP, OS/2, dll.
–Bahasa Pemrograman : Basic, Pascal, C, C++, Fortran, Java, Assembly, dll.
–Development Tools : Delphi, Visual Basic, Visual C++, C Builder, JBuilder, dll.
–Database : MS Access, SQL Server, Oracle, Interbase, MySQL, dll.
–Aplikasi : MS Word, MS Excel, Lotus 123, CorelDraw, Photoshop, dll.
–Utility : antivirus, browser, dll
Sekilas tentang pemrograman
•Teknik pemrograman dapat dibagi menjadi:
–Pemrograman prosedural
–Pemrograman deklaratif
–Pemrograman fungsional
–Pemrograman visual
–Pemrograman berorientasi objek
ALGORITMA
Kamis, 21 Februari 2013
Diberi nama “Bubble”
karena proses pengurutan secara berangsur angsur bergerak/berpindah ke
posisinya yang tepat, seperti gelembung yang keluar dari sebuah gelas
bersoda.
Bubble
Sort mengurutkan data dengan cara membandingkan elemen sekarang dengan
elemen berikutnya.Jika elemen sekarang lebih besardari elemen berikutnya
maka kedua elemen tersebut ditukar (untuk pengurutan ascending).
Jika
elemen sekarang lebih kecildari elemen berikutnya, maka kedua elemen
tersebut ditukar (untuk pengurutan descending).Algoritma ini seolah-olah
menggeser satu per satu elemen dari kanan ke kiri atau kiri ke kanan,
tergantung jenis pengurutannya. Ketika satu proses telah selesai, maka
bubble sort akan mengulangi proses, demikianseterusnya.
Bubble
sort berhenti jika seluruh array telah diperiksa dan tidak ada
pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telah
diinginkan.
Contoh pengurutan data yang dilakukan dengan metode Bubble Sort sebagai berikut:
Proses 1:
22 10 15 3 8 2
22 10 15 3 2 8
22 10 15 2 3 8
22 10 2 15 3 8
22 2 10 15 3 8
2 22 10 15 3 8
Pengecekandimulaidari
data yang paling akhir, kemudiandibandingkandengan data di depannya,
jika data di depannyalebihbesarmakaakanditukar.
Proses 2:
2 22 10 15 3 8
2 22 10 15 3 8
2 22 10 3 15 8
2 22 3 10 15 8
2 3 22 10 15 8
Pengecekandilakukansampaidengan data ke-2 karena data pertamapastisudah paling kecil.
Proses 3:
2 3 22 10 15 8
2 3 22 10 8 15
2 3 22 8 10 15
2 3 8 22 10 15
Proses 4:
2 3 8 22 10 15
2 3 8 22 10 15
2 3 8 10 22 15
Proses 5:
2 3 8 10 22 15
2 3 8 10 15 22
Pengurutan berhenti.
berikut programnya c++ bubble sort:
#include <conio.h>
#include <stdlib.h>
bubble_acak()
{
clrscr();
int arr[1000];
int x, i; //untuk array
int s, t, temp; //untuk sorting
//input jumlah data yang diproses
cout<<"angka yang akan dimasukkan : "; cin>>x;
//input nilai masing" array
srand(time(NULL));
for (i=0; i<x; i++)
arr[i] = rand() %1000;
//output nilai" array
clrscr();
cout<<"====== array ======"<<endl<<endl;
cout<<"angka angkanya :"<<endl;
for (i=0; i<x; i++)
cout<<arr[i]<<", ";
//sorting
cout<<endl<<endl<<endl<<endl;
cout<<"====== sorting ======"<<endl<<endl;
s = 0;
for (s=0; s<x; s++)
{
for (t = s+1; t<x; t++)
{
if (arr[s]>arr[t])
{
temp = arr[s];
arr[s] = arr[t];
arr[t] = temp;
}
}
}
cout<<"setelah sorting :"<<endl;
for (i=0; i<x; i++)
cout<<arr[i]<<", ";
getch();
}
bubble_manual()
{
clrscr();
int arr[1000];
int x, i; //untuk array
int s, t, temp; //untuk sorting
//input jumlah data yang diproses
cout<<"angka yang akan dimasukkan : "; cin>>x;
//input nilai masing" array
for (i=0; i<x; i++)
{
cout<<"masukkan angka ke-"<<i<<" : ";
cin>>arr[i];
}
//output nilai" array
clrscr();
cout<<"====== array ======"<<endl<<endl;
cout<<"angka angkanya :"<<endl;
for (i=0; i<x; i++)
cout<<arr[i]<<", ";
//sorting
cout<<endl<<endl<<endl<<endl;
cout<<"====== sorting ======"<<endl<<endl;
s = 0;
for (s=0; s<x; s++)
{
for (t = s+1; t<x; t++)
{
if (arr[s]>arr[t])
{
temp = arr[s];
arr[s] = arr[t];
arr[t] = temp;
}
}
}
cout<<"setelah sorting :"<<endl;
for (i=0; i<x; i++)
cout<<arr[i]<<", ";
//mission complete
getch();
}
main ()
{
int pilih;
char ulang;
do
{
clrscr ();
cout<<"tekan 1 : bilangan yang disorting dimasukan secara acak"<<endl;
cout<<"tekan 2 : bilangan yang disorting dimasukan secara manual"<<endl;
cout<<"masukkan pilihan : "; cin>>pilih;
switch (pilih)
{
case 1:
bubble_acak();
break;
case 2:
bubble_manual();
break;
default:
clrscr();
cout<<"\"maaf\""<<endl;
cout<<"\"pilihan yang dimasukkan salah\"";
break;
}
cout<<endl<<endl<<"tekan \"Y\" lalu \"ENTER\" untuk ulang ---> "; cin>>ulang;
}
while (ulang=='Y');
}
ARRAY 1 DAN 2 DIMENSI
Larik
Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Larik (Bahasa Inggris: array), dalam ilmu komputer, adalah suatu tipe data terstruktur yang dapat menyimpan banyak data dengan suatu nama yang sama dan menempati tempat di memori yang berurutan (kontigu) serta bertipe data sama pula.
Larik dapat diakses berdasarkan indeksnya.
Indeks larik umumnya dimulai dari 0 dan ada pula yang dimulai dari
angka bukan 0. Pengaksesan larik biasanya dibuat dengan menggunakan
perulangan (looping).
Larik Satu Dimensi
Larik satu dimensi merupakan jenis larik dasar dan jenis larik yang
paling sering digunakan, pemakaian larik satu dimensi terutama dipakai
dalam tipe data string (terutama dalam bahasa Bahasa pemrograman C).
Larik Dua Dimensi
Larik dua dimensi merupakan tipe larik yang lain. Larik dua dimensi
sering dipakai untuk merepresentasikan tabel dan matriks dalam
pemrograman.
[sunting]Larik dalam beberapa bahasa pemrograman
[sunting]Bahasa Pascal
Larik dalam bahasa Pascal dapat didefinisikan dengan indeks awal dan indeks akhirnya.
Contoh:
program larik; var arr: array[1..10] of integer; //larik dengan indeks awal 1 dan indeks akhir 10 begin arr[1] := 5; //memasukkan nilai ke indeks 1 writeln(arr[i]); //mencetak angka 5 end.
[sunting]Bahasa C
Larik dalam bahasa C selalu dimulai dari indeks 0. Larik dapat didefinisikan secara statik atau dinamik.
Jika didefinisikan statik, ukuran larik akan tetap dari awal program
hingga akhir program. Jika didefinisikan dinamik, ukuran larik dapat
berubah selama program berjalan karena memesan tempat pada memori heap. Proses pemesanan tempat pada memori disebut dengan alokasi. Sedangkan proses pembebasan memori yang sudah dipesan disebut dengan dealokasi.
Contoh larik statik:
#include <stdio.h> int main(){ int arr[10]; //indeks awal 0 dan indeks akhir 9 arr[0] = 5; printf("%d\n", arr[0]); }
Contoh larik dinamik:
#include <malloc.h> int main(){ int * arr; arr = (int *) malloc(10 * sizeof(int)); //memesan 10 tempat pada memori arr[0] = 5; free(arr); //menghancurkan larik. Memori pada heap dibebaskan arr = (int *) malloc(5 * sizeof(int)); //memesan 5 tempat baru pada memori free(arr); //di akhir program jangan lupa untuk menghancurkan larik dinamik }
[sunting]Bahasa Java
Dalam bahasa Java tipe data larik direpresentasikan sebagai sebuah objek khusus.
Karena itu pada bahasa Java larik yang dibuat selalu bersifat dinamik.
Namun walaupun bersifat dinamik, larik pada bahasa Java tidak perlu
dihancurkan karena proes penghancuran dilakukan secara otomatis melalui suatu prosedur yang disebut dengan Pengumpulan sampah (Inggris: Garbage Collecting).
Sama seperti bahasa C, indeks larik selalu dimulai dari 0.
Contoh:
public class larik { public static void main(String args[]) { int[] arr = new arr[10]; arr[0] = 5; System.out.println(arr[0]); } }
[sunting]PHP
Sama seperti di JAVA larik di PHP juga merupakan sebuah object lebih tepatnya lagi map terorder.
Ada dua tipe larik di PHP, indexed array (simple array) dan associated
array (key=>value array). Di PHP, element larik bisa berupa string, Bilangan, boolean, dan semua tipe data primitive lainnya, termasuk larik juga bisa menjadi element larik lainnya.
Cara medefinisikan larik:
#mendefinisikan array kosong $larik = array();
Contoh indexed array (simple array):
$jam = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); $hari = array('senin', 'selasa', 'selasa', 'rabu', 'kamis', 'jumat', 'sabtu');
Contoh associated array:
$bulan = array('1'=>'January', '2'=>'February', '3'=>'Maret', '4'=>'April'); $komponenKalender = array( 'bulan'=> array(1, 2, 3, 4, 5, 6, 7, 8, 9 ,10 , 11, 12), 'hari' => array('senin', 'selasa', 'selasa', 'rabu', 'kamis', 'jumat', 'sabtu') );
Struktur algoritma
Struktur Dasar Algoritma
Category: Pemrograman
Setelah konstruksi dasar pembentuk
algoritma, sekarang kita lihat bagaimana struktur dasar dari teks
algoritma. Sehingga dengan mengikuti struktur tersebut kita dapat
menyusun algoritma-algoritma tertentu untukmenyelesaikan masalah dengan efektif.
Algoritma disusun oleh 3 bagian (blok) yang biasanya selalu ada dalam sebuah algoritma. 3 bagian itu adalah :
- bagian judul (header)
- bagian deklarasi (declaration)
- bagian algoritma (sebagian menyebutnya dengan deskripsi)
Ketiga bagian tersebut secara umum ditunjukkan dalam notasi algoritmik seperti di bawah.
PROGRAM nama program
{berisi judul algoritma, singkat dan jelas}DEKLARASI
{sebagai tempat untuk mengenalkan nama atau variabel apa saja yang digunakan dan tipe datanya serta prosedur dan fungsi yang dipakai}ALGORITMA :
{berisi langkah-langkah penyelesaian masalah}
Pada setiap bagian sebaiknya diberikan komentar untuk memperjelas maksud
dari pernyataan tersebut. Untuk komentar, penulisannya diapit oleh
tanda kurung kurawal { dan }. Dengan komentar, algoritma yang kita buat
menjadi lebih dimengerti dan dipahami, dan komentar ini tidak akan
dieksekusi karena akan dilewati saja oleh program. Namanya juga komentar…
Bagian Judul (header)
Sesuai bagiannya, kita perlu memberi judul terhadap algoritma yang kita
buat. Judul sebaiknya singkat, dan jelas serta menggambarkan apa yang
dilakukan oleh program. Di bawah judul, sebaiknya juga diberikan
komentar singkat tentang masalah yang ingin diselesaikan itu, dan
bagaimana masukan dan keluarannya.
Contohnya :
PROGRAM ucapan selamat datang
{program untuk menampilkan ucapan selamat datang kepada pengguna dengan masukan nama pengguna}
Bagian Deklarasi (declaration)
Digunakan untuk memperkenalkan semua variabel atau nama-nama yang akan
terlibat dalam algoritma termasuk tipe data dan sebagainya. Apapun nama
dan variabel yang digunakan dalam algoritma harus di ‘umumkan’ terlebih
dahulu di bagian deklarasi ini, jika tidak, algoritma (dan program)
tidak akan bisa menyelesaikan masalah. Justru malah menjadi masalah
Contoh deklarasi adalah :
DEKLARASI
nama : string
usia : integer
Nama atau variabel adalah satu kesatuan leksikal, sehingga nama tidak
boleh mengandung spasi, tanda baca, tanda operator dan sebagainya
kecuali tanda “_” (garis bawah). Pada algoritma, tidak dibedakan antara
huruf besar (kapital) atau huruf kecil, semuanya dianggap sama. Lebih
jelasnya akan kita lihat pada posting berikutnya…
Bagian Algoritma (deskripsi)
Bagian ini adalah inti dari program untuk menyelesaikan masalah. Berisi
instruksi-instruksi untuk pemecahan masalah dengan menggunakan notasi pseudo-code. Tidak perlu berpanjang lebar, kita lihat saja contohnya.
ALGORITMA :
read(nama, usia)
write(‘Selamat Datang ‘, nama)
write(‘Usia Anda sekarang adalah ‘, usia, ‘tahun’)
Nah, kalau ketiga bagian di atas digabungkan menjadi 1 kesatuan algoritma akan menjadi :
PROGRAM ucapan selamat datang
{program untuk menampilkan ucapan selamat datang kepada pengguna dengan masukan nama pengguna}DEKLARASI
nama : string
usia : integerALGORITMA :
read(nama, usia)
write(‘Selamat Datang ‘, nama)
write(‘Usia Anda sekarang adalah ‘, usia, ‘tahun’)
Runtunan
Seleksi dengan algoritma pengurutan
Satu algoritma seleksi yang sederhana dan digunakan secara luas adalah memanfaatkan algoritma pengurutan pada list, kemudian mengekstrak elemen ke-k. Ini adalah contoh reduksi satu
permasalahan ke dalam permasalahan lain. Hal ini bermanfaat ketika kita
ingin melakukan banyak seleksi terhadap sebuah list tunggal, dimana
kasus ini membutuhkan hanya satu operasi pengurutan di awal yang
membutuhkan waktu yang lama (expensive), yang diikuti oleh banyak operasi ekstraksi yang sebentar (Cheap).
Ketika kita hanya ingin melakukan satu seleksi, atau ketika kita ingin
selalu mengubah list di antara tiap seleksi, metode ini dapat jadi lebih
lama (costly), biasanya membutuhkan paling sedikit O(n log n) waktu, dimana n adalah panjang dari list.
[sunting]Algoritma minimum/maksimum linear
Kasus terburuk algoritma linear untuk menemukan minimum atau maksimum
adalah sangat jelas; kita menyimpan dua peubah, satu mengacu ke indeks
dari elemen minimum/maksimum yang didapatkan sementara, dan satu lagi
menyimpan nilainya. Bersamaan dengan kita memindai list tersebut, kita
perbarui kedua peubah tersebut jika kita menemukan sebuah elemen yang
sesuai:
function minimum(a[1..n]) minIndex := 1 minValue := a[1] for i from 2 to n if a[i] < minValue minIndex := i minValue := a[i] return minValue
function maximum(a[1..n]) maxIndex := 1 maxValue := a[1] for i from 2 to n if a[i] > maxValue maxIndex := i maxValue := a[i] return maxValue
Sebagai catatan, kemungkinan akan terdapat banyak elemen minimum atau maksimum. Oleh karena pembandingan di atas adalah kaku (strict), algoritma tersebut menemukan elemen minimum dengan indeks yang minimum. Dengan memanfaatkan pembandingan tak kaku (non-strict) (≤ and ≥), kita akan menemukan elemen minimum dengan indeks maksimum.
Jika kita ingin menemukan kedua elemen minimum dan maksimuam bersamaan,
perbaikan kecil dapat dilakukan dengan sepasang pembandingan, yaitu
membandingkan elemen ganjil dan genap pada setiap pasang dan
membandingkannya dengan elemen maksimum dan minimum.
[sunting]Algoritma seleksi umum nonlinear
Dengan memakai ide yang sama yang digunakan dalam algoritma
minimum/maksimum, kita dapat mengkonstruksi sebuah algoritma sederhana
tapi tidak efisien untuk menemukan item terkecil ke-k atau terbesar ke-k, yang membutuhkan waktu O(kn), yang efektif untuk k yang
kecil. Untuk memperolehnya, kita cukup menemukan nilai paling ekstrem
dan memindahnya ke bagian awal sampai kita mendapatkan indeks yang
diinginkan. Hal ini dapat dilihat sebagai pengurutan seleksi yang tidak lengkap. Berikut ini adalah algoritma berbasis minimum:
function select(a[1..n], k) for i from 1 to k minIndex = i minValue = a[i] for j = i+1 to n if a[j] < minValue minIndex = j minValue = a[j] swap a[i] and a[minIndex] return a[k]
Keuntungan lain dari metode ini adalah:
- Setelah mengetahui lokasi elemen terkecil ke-j, waktu yang dibutuhkan hanya O(j + (k-j)2) untuk menemukan elemen terkecil ke-k, atau hanya O(k) untuk k ≤ j.
- Metode ini dapat dilakukan dengan struktur data list berkait, dimana list terbut berbasis partisi yang membutuhkan pengaksesan acak.
PENGULANGAN
PENGULANGAN
Pengulangan Dengan For…NextPengulangan proses menggunakan For…Next adalah bentuk pengulangan
terkendali dengan variabel kendali yang terus berjalan maju atau mundur. Format
penulisan pengulangan ini adalah sebagai berikut:
For variabel = nilai_awal To nilai_akhir [Step langkah]
<Proses dalam pengulangan>
Next variable
Contoh 1:
Untuk menentukan barisan bilangan 1, 2, 3, …., 10 maka bilangan mempunyai nilai
awal = 1, nilai akhir=10 dan step antar bilangan = 1, sehingga bisa ditulis dengan
For bilangan=1 To 10 Step 1
<Proses untuk barisan bilangan>
Next bilangan
Karena step=1, maka secara default tidak perlu dituliskan sehingga perintahnya bias
ditulis dengan:
For bilangan=1 To 10
<Proses untuk barisan bilangan>
Next bilangan
Contoh Aplikasi 5.1:
Untuk menampilkan barisan bilangan 1 sampai dengan N, dengan N dimasukkan.
Hasil barisan ditampilkan pada Label.
(1) Buat project baru. Pada form, isi property [Name] dengan formLatihan51
(2) Tambahkan komponen-komponen: 1 label, 1 textbox, 1 buah listBox dan 1
command button
(3) Untuk label1, isi property [Caption] dengan ”N=”. Untuk textbox1,
kosongkan property [Text]. Untuk command1, isi property [Caption] dengan
Barisan. Atur posisi masing-masing komponen seperti gambar berikut :
Runtunan
Algoritma merupakan runtunan satu atau lebih instruksi yang berarti bahwa :
– Tiap instruksi dikerjakan satu per satu.
– Tiap instruksi dilaksanakan tepat sekali, tidakada instruksi yang diulang.
– Urutan instruksi yang dilaksanakan pemroses
sama dengan urutan instruksi sebagai tertulis di dalam teks algoritma.
– Akhir dari instruksi terakhir merupakan akhir
algoritma.Pengaruh Urutan Instruksi
• Urutan instruksi dalam algoritma adalah penting. Urutan instruksi menunjukkan urutan logika penyelesaian masalah.
• Urutan instruksi yang berbeda mungkin
tidak ada pengaruh terhadap solusi
persoalan, tetapi mungkin juga
menghasilkan keluaran yang berbeda,
tergantung pada masalahnya,
Contoh kasus 1
Urutan instruksi tidak berpengaruh terhadap solusi persoalan.
• Dibaca dua buah nilai integer dari keyboard, A dan B.
• Hitung jumlah keduanya dan hasil kali keduanya
• Cetak hasil jumlah dan kali ke piranti keluaran.Algoritma Runtunan_1
di baca dua buah bilangan integer kemudian hitung penjumlahan dan perkalian dua buah bilangan tersebut, dan tampilkan hasilnya ke layar.
Deklarasi :
A, B, C, D : integer
Deskripsi :
read (A, B) {1}
C - A + B {2}
D - A * B {3}
write (C, D) {4}
Hasil algoritma di atas sama jika urutan no. 2 dan 3 diubah (ditukarkan) sebagai berikut :
Algoritma Runtunan_2
{di baca dua buah bilangan integer kemudian
hitung penjumlahan dan perkalian dua buah
bilangan tersebut, dan tampilkan hasilnya ke layar}
Deklarasi :
A, B, C, D : integer
Deskripsi :
read (A, B) {1}
D - A * B {3}
C - A + B {2}
write (C, D) {4}
Contoh kasus 2
• Urutan instruksi berpengaruh terhadap solusi persoalan.Algoritma Runtunan_3
Contoh algoritma yang menghasilkan keluaran yang berbeda jika urutan instruksi diubah
Deklarasi :
A, B : integer
Deskripsi :
A-10 {1}
A- 2*A {2}
B- A {3}
write (B) {4}Algoritma Runtunan_4
Contoh algoritma yang menghasilkan keluaran yang berbeda jika urutan instruksi diubah
Deklarasi :
A, B : integer
Deskripsi :
A-10 {1}
B- A {3}
A- 2*A {2}
write (B)
Rabu, 20 Februari 2013
Variable!
Pengertian Variable
Sedangkan, Konstanta adalah suatu tempat untuk menampung data yang nilainya selalu tetap dan tidak pernah berubah.
Variabel digunakan sebagai tempat penyimpanan data sementara. Data yang disimpan dalam variabel akan hilang setelah program selesai dieksekusi. Untuk penyimpanan data yang permanen, kita dapat menyimpan data di database atau di disk.
Variabel di dalam PHP diawali dengan tanda $. Untuk dapat menggunakan variabel, ada dua langkah yang harus dilakukan, deklarasi dan inisialisasi.Cara mendeklarasikan variable
Deklarasi variabel bisa disebut juga memperkenalkan atau mendaftarkan variabel ke dalam program. Dalam php, deklarasi variabel seringkali digabung dengan inisialisasi. Variabel dalam PHP dinyatakan dengan awalan $.
Contoh :Inisialisasi variable
$var_angka1
$var_angka2
$var_hasil
Inisialisasi variabel adalah mengisi nilai untuk pertama kalinya ke dalam variabel.
Contoh inisialisasi :
$nama = “Heru Widayat”;
$jumlah = 3;
$harga = 500;
Aturan pemberian nama variabel :
- Dimulai dengan tanda $
- Karakter pertama harus huruf atau garis bawah ( _ )
- Karakter berikutnya boleh huruf, angka, atau garis bawah
- Tidak boleh menggunakan spasi
- Tidak boleh menggunakan karakter-karakter khusus (seperti : +, -, *, /, <, >, dll
Nice posting gan.
BalasHapusUntuk buku2 tentang pemrograman terbaru, bisa kunjung balik ke tempat saya, gan.
honbookstore.com
Jangan lupa tinggalkan jejak alias komen :)
Salam kenal