Minggu, 20 Maret 2011

MACAM-MACAM TIPE DATA

Tipe data digunakan untuk menentukan batasan nilai yang digunakan suatu peubah (variabel)

Macam tipe data :

§ Tipe Sederhana (primitif)

§ Tipe Terstruktur

§ Tipe String

§ Tipe Reference/Pointer

v Macam tipe sederhana :

§ Tipe ordinal/integral

v ShortInt, Integer, LongInt, Byte, Word subrange, dan enumerated

§ Tipe floating point/real

v Real, Single, Double, Extended

§ Tipe char

v Char

§ Tipe boolean

v Boolean

v Macam tipe terstruktur :

§ Tipe Larik (Array)

§ Tipe Rekaman (Record/Struct)

§ Tipe Objek (Objek/Class)

§ Tipe Himpunan (Set/Enum)

§ Tipe Berkas (File)

Adalah suatu struktur data yng dapat menyimpan sekumpulan elemen dengan tipe yang sama

Larik disimpan pada memory yang berurutan pada komputer

Berbeda dengan variabel biasa yang hanya bisa menyimpan sebuah nilai

Nama lain : tabel, vektor atau peubah majemuk

Bila dibutuhkan suatu tempat penyimpanan (di memory) yang dapat menyimpan banyak data dengan jenis data yang seragam

Deklarasi Larik

Larik adalah struktur data yang Statik, artinya jumlah elemen larik harus sudah diketahui sebelum program dieksekusi

Ada 2 cara mendeklarasikan (Pada TP) :

§ 1. Sebagai Peubah, misal : Data : array[0..4] of integer;

§ 2. Sebagai Tipe Baru, misal : Type Data : array[0..4] 0f integer; var Nilai : Data; Nim : Data;

Inisialisasi biasanya memberikan nilai harga awal pada seluruh elemen larik. Biasanya digunakan nilai 0 (nol) atau ' ' (karakter kosong).

Array MultiDimensi

adalah suatu array/larik yang memiliki dimensi dgn indeks lebih dari satu

dapat juga disebut sebagai suatu array yang beranggotakan elemen yang juga berupa suatu array

Contoh : Matrik, dan Tabel

Karakteristik Array Multi Dimensi

v Karena juga merupakan suatu array, maka semua elemennya harus memiliki tipe data yang sama

v Merupakan struktur data yang statik, artinya jumlah elemennya sudah harus ditentukan terlebih dahulu sebelum progran dijalankan, dan jumlah tersebut tidak dapat diubah ketika program dijalankan

Enumerasi

Konstanta dengan tipe array/list yang bisa diakses menggunakan indeks berupa nama

Contoh:

type

Status = (Active, Passive, Waiting);

StatusMap = array[Status] of string[7];

const

StatStr: StatusMap = ('Active', 'Passive', 'Waiting');

Subrange

v Subrange adalah kelompok/himpunan nilai yang dibuat dari kelompok yang sudah ada sebelumnya.

v Deklarasi Subrange:

type RangeName = Low..High;

v Misal:

type AdultMemberAge = 18...30;

type Players = (GoalKeeper, RightDefender, Stopper, Libero, LeftDefender, MiddleLeft, MiddleCenterLeft, MiddleCenterRight, MiddleRight, Forward1, Forward2 );

type MiddleCourt = MiddleLeft..MiddleRight;

REFERENSI

hikaruyuuki.lecture.ub.ac.id/.../03-Tipe-Data-Array-dan-String-Pascal.pptx

STRUKTUR DASAR ALGORITMA

STRUKTUR DASAR ALGORITMA

  1. 1. Sequence
  2. 2. Selection
  3. 3. Repetition

SEQUENCE

n Sebuah runtutan terdiri dari satu atau lebih intruksi.

n Intruksi dilaksanakan setelah intruksi sebelumnya dilaksanakan.

n Urutan intruksi menentukan keadaan akhir algoritma.

1 2 3 4

A1 A2 A3 A4

Contoh:

Algoritma Tukar_Isi_Bejana

Terdapat dua buah bejana, bejana A berisi larutan berwarna merah dan bejana B berisi larutan berwarna putih. Kedua bejana tersebut dipertukarkan isinya, sehingga isi bejana A berganti dengan isi bejana B dan sebaliknya, tanpa terjadi percampuran diantara isi dua bejana tersebut.

Deskripsi:

1. Tuangkan larutan bejana A ke bejana C

2. Tuangkan larutan bejana B ke bejana A

3. Tuangkan larutan bejana C ke bejana B

Selesai

Penyelesaian:

Maks = bilangan pertama

If x > y then

if x> y then

tulis x sebagai bilangan terbesar

else

tulis y sebgai bilangan terbesar

Else

if y> z then

tulis y sebagai bilangan terbesar

else

tulis z sebagai bilangan terbesar

SELECTION

Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. Tiap–tiap instruksi akan diseleksi oleh kondisi, apabila instruksi memenuhi kondisi yang diminta, maka instruksi akan dijalankan.

REPETITION

Kondisi yang dilaksanakan secara berulang-ulang.

1. For …….. Do

for kondisi do

aksi

Contoh:

Buatlah algoritma untuk memunculkan tulisan “ saya siswa SMA 1 Yogyakarta” sebanyak 700 kali.

Algoritma menulis_700 kalimat

Menulis kalimat saya siswa SMA 1 Yogyakarta sebanyak 700 kali

Deskripsi:

1. Tulis kalimat “saya siswa SMA 1 Yogyakarta”

2. Tulis kalimat “saya siswa SMA 1 Yogyakarta”

3. Tulis kalimat “saya siswa SMA 1 Yogyakarta”

.

.

699. Tulis kalimat “saya siswa SMA 1 Yogyakarta”

700. Tulis kalimat “saya siswa SMA 1 Yogyakarta

3. While …. Do

while kondisi do

aksi

Algoritma Pencarian data dalam tabel

Sebuah tabel berisi nis, nama dan telepon siswa. Carilah dalam tabel alamat seorang siswa dengan nis = x.

diasumsikan tabel berisi minimal satu entry.

Deskripsi:

tinjau entry pertama tabel

while nis yang dicari belum ditemukan dan akhir tabel berlum terlampaui do

if nis pada entry tabel=nis yang dicari then

ambil data nomor telepon dari nis tersebut

else

tinjau entry berikutnya dalam tabel

REFERENSI

masdi2n.files.wordpress.com/2009/10/3-struktur-dasar-algoritma1.ppt

yusufhdc.edublogs.org/files/2010/01/Struktur-Dasar-Algoritma

Hal-Hal Yang Diperhatikan Dalam Pembuatan Algoritma Dan Syarat Untuk Menjadi Algoritma Yang Bai

Hal-Hal Yang Diperhatikan Dalam Pembuatan Algoritma

1. Simulasi , sensibilitas terhadap masalah dan kemungkinan solusi. Kegiatan dilakukan di kelas, melalui permainan. Contoh : Mengurutkan tinggi badan mahasiswa dari tinggi ke pendek atau sebaliknya. Permainan dapat dilakukan secara manual maupun dengan komputer.

2. Analisis masalah secara lebih formal dan membuat spesifikasi dan algoritma dalam notasi yang ditetapkan. Mahasiswa harus menuliskan solusi algoritmiknya dalam notasi standar di kelas. Penulisan notasi algoritmik bertujuan untuk menyeragamkan pemahaman tentang algoritma program yang terbebas dari sintak (aturan) penulisan bahasa program .

3. Menulis program, yaitu menterjemahkan notasi algoritmik ke dalam sintak bahasa program.

4. Debugging dan menguji coba program. Hal ini bertujuan untuk mendapatkan program yang benar. Program dikatakan benar jika terbebas dari salah lojik dan sintak bahasa. Secara ideal mahasiswa hanya diberi kesempatan untuk me-run program sebanyak 2 kali : pertama untuk membersihkan program dari kesalahan sintak dan kedua untuk mendapatkan program benar. Pada tahap ini diharapkan tidak terjadi kesalahan lojik jika analisa benar.

5. Mengamati peristiwa eksekusi, perlu dilakukan untuk meningkatkan kepercayaan bahwa jika analisa benar maka sisa pekerjaan menjadi mudah. Pada pemrograman prosedural, aspek ini penting untuk memahami fenomena eksekusi dan perubahaan nilai suatu struktur data.

6. Membaca program : orang akan dapat menulis dengan baik kalau sering membaca. Hal ini juga berlaku dalam memprogram. Kegiatan yang dapat dilakukan di kelas adalah dengan saling tukar menukar teks algoritma, dan saling mengkritik algoritma teman. Mahasiswa harus berlatih sendiri pada kegiatan belajar bersama. Simulasi , sensibilitas terhadap masalah dan kemungkinan solusi. Kegiatan dilakukan di kelas, melalui permainan. Contoh : Mengurutkan tinggi badan mahasiswa dari tinggi ke pendek atau sebaliknya. Permainan dapat dilakukan secara manual maupun dengan komputer.

7. Membuktikan kebenaran program secara formal , satu-satunya hal yang menjamin kebenaran, tetapi kontradiktif dan sulit diterapkan dalam kehidupan sehari-hari. Program yang hanya lim baris pembuktiannya bisa sehalaman, sehingga seringkali tidak pernah diterapkan dalam aplikasi nyata. Aktifitas ini dicakup dalam matakuliah Analisis Algoritma

Syarat Untuk Menjadi Algoritma Yang Baik

Beberapa persyaratan untuk menjadi algoritma yang baik adalah:

• Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.

• Pemrosesan yang efisien (low cost). Proses harus diselesaikan secepat mungkin dan jumlah kalkulasi yang sependek mungkin.

• Bersifat general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.

• Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.

• Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma anda. Sulit dimengertinya suatu program akan membuat sulit pengelolaan.

• Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer.

Referensi

http://aetthea.blog.unsoed.ac.id/files/2009/10/modul-tugas1.pdf
http://www.slideshare.net/guestcdc95496/tugas-pt
http://www.undana.ac.id/images/data/karya_tulis/1271901762.pdf





Selasa, 01 Maret 2011

Flowchart 10 Diagram alir display ke 7 segment pada elektronika


Keterangan :

a. Inisialisasi data yang dikeluarkan ADC sebagai angka puluhan untuk menunjuk nilai dari label puluhan dan disimpan di akumulator A. Nilai dari label puluhan kemudian digunakan untuk menunjuk nilai dari label seven segment dan disimpan di DPTR.

b. Data dari label seven segment sebagai puluhan disalin ke akumulator A.

c. Nilai dari akumulator A disalin ke port 0 mikrokontroler.

d. Nilai low (0) disalain ke p3.5, p3.6, p3.7 untuk menyalakan seven segment yang pertama.

e. Seven segment pertama menyala sesuai dengan waktu tunda.

f. Inisialisasi data yang dikeluarkan ADC sebagai angka satuan untuk menunjuk nilai dari label satuan dan disimpan di akumulator A. Nilai dari label satuan kemudian digunakan untuk menunjuk nilai dari label seven segment dan disimpan di DPTR.

g. Data dari label seven segment sebagai satuan disalin ke akumulator A.

h. Nilai dari akumulator A disalin ke port 0 mikrokontroler.

i. Salin 0 ke p3.5, 1 ke p3.6 dan 0 ke p3.7 untuk menyalakn seven segment yang ke dua.

j. Seven segment ke dua menyala sesuai dengan waktu tunda.

k. Inisialisasi data yang dikeluarkan ADC sebagai angka pecahan untuk menunjuk nilai dari label pecahan dan disimpan di akumulator A. Nilai dari label pecahan kemudian digunakan untuk menunjuk nilai dari label seven segment dan disimpan di DPTR.

l. Data dari label seven segment sebagai pecahan disalin ke akumulator A.

m. Nilai dari akumulator A disalin ke port 0 mikrokontroler.

n. Salin 0 ke p3.5, 1 ke p3.6 dan 1 ke p3.7 untuk menyalakn seven segment yang ke tiga.

o. Seven segment pertama menyala sesuai dengan waktu tunda.Keterangan :

a. Inisialisasi data yang dikeluarkan ADC sebagai angka puluhan untuk menunjuk nilai dari label puluhan dan disimpan di akumulator A. Nilai dari label puluhan kemudian digunakan untuk menunjuk nilai dari label seven segment dan disimpan di DPTR.

b. Data dari label seven segment sebagai puluhan disalin ke akumulator A.

c. Nilai dari akumulator A disalin ke port 0 mikrokontroler.

d. Nilai low (0) disalain ke p3.5, p3.6, p3.7 untuk menyalakan seven segment yang pertama.

e. Seven segment pertama menyala sesuai dengan waktu tunda.

f. Inisialisasi data yang dikeluarkan ADC sebagai angka satuan untuk menunjuk nilai dari label satuan dan disimpan di akumulator A. Nilai dari label satuan kemudian digunakan untuk menunjuk nilai dari label seven segment dan disimpan di DPTR.

g. Data dari label seven segment sebagai satuan disalin ke akumulator A.

h. Nilai dari akumulator A disalin ke port 0 mikrokontroler.

i. Salin 0 ke p3.5, 1 ke p3.6 dan 0 ke p3.7 untuk menyalakn seven segment yang ke dua.

j. Seven segment ke dua menyala sesuai dengan waktu tunda.

k. Inisialisasi data yang dikeluarkan ADC sebagai angka pecahan untuk menunjuk nilai dari label pecahan dan disimpan di akumulator A. Nilai dari label pecahan kemudian digunakan untuk menunjuk nilai dari label seven segment dan disimpan di DPTR.

l. Data dari label seven segment sebagai pecahan disalin ke akumulator A.

m. Nilai dari akumulator A disalin ke port 0 mikrokontroler.

n. Salin 0 ke p3.5, 1 ke p3.6 dan 1 ke p3.7 untuk menyalakn seven segment yang ke tiga.

o. Seven segment pertama menyala sesuai dengan waktu tunda.

referensi

http://elib.unikom.ac.id/download.php?id=86237

Algoritma Quick Sort

Metode Quick atau yang sering disebut juga metode partisi diperkenalkan pertama kali oleh C. A. R. Hoare pada tahun 1962. Pada metode quick, jarak dari kedua elemen yang ditukarkan dibuat cukup besar dengan tujuan untuk mempertinggi efektivitasnya. Hal ini mengingat metode gelembung yang menggunakan jarak cukup dekat ternyata kurang efektif.

Proses pengurutan dengan metode quick dapat dijelaskan sebagai berikut : mula-mula dipilih data tertentu yang dinamakan pivot, misalnya x. Pivot ini harus diletakkan pada posisi ke-j sedemikian hingga data antara 1 sampai dengan (j – 1) lebih kecil daripada x; sedangkan data pada posisi ke-(j+1) sampai dengan N lebih besar daripada x. Cara pengaturannya adalah menukarkan data di antara posisi 1 sampai dengan (j – 1) yang lebih besar daripada x dengan data di antara posisi (j + 1) sampai dengan N yang lebih kecil daripada x.

Algoritma penyisipan langsung sendiri dapat dituliskan sebagai berikut:

1. x Data [( L + R) / 2)].

2. i L

3. j R

4. Selama ( i < = j ) kerjakan baris 5 sampai dengan 12.

5. Selama ( Data [ i ] < style="mso-spacerun:yes"> i + 1

6. Selama ( Data [ j ] > x ) kerjakan i j - 1

7. Jika (i < = j ) maka kerjakan baris 8 sampai dengan 10; jika tidak kerjakan baris 11.

8. Tukar Data [ i ] dengan Data [ j ].

9. i i + 1

10. j j - 1

11. Jika ( L < r =" j.

12. Jika ( i < l =" i.

Jika suatu barisan yang terdiri dari n elemen yang ditempatkan dalam suatu array dan urutan yang diinginkan adalah urutan yang tidak turun (non decreasing) maka dapat digunakan metode Quick Sort yang dengan teknik Divide and Conquer.

Adapun algoritma Quick Sort tersebut terdiri dari dua prosedur yaitu prosedur PARTITION dan prosedur QUICKSORT. Berikut ini disajikan algoritma Quick Sort yang dimaksud, yaitu :

PROCEDURE QUICKSORT(p,q)

IF p j q + 1

CALL PARTITION(p,j)

CALL QUICKSORT(p,j-1)

CALL QUICKSORT(j+1,q)

END IF

END QUICKSORT

PROCEDURE PARTITION(m,p)

INTEGER m,p,i ; GLOBAL A(m-1,p)

V A(m) ; i m

LOOP

LOOP i i + 1 UNTIL A( i ) > = V REPEAT

LOOP p p - 1 UNTIL A( p ) < = V REPEAT

IF i

THEN CALL INTERCHANGE (A(i),A(p))

ELSE EXIT

END IF

REPEAT

A(m) A(p)

A(p) V

END PARTITION



http://www.informatika.org/~rinaldi/Matdis/2009-2010/Makalah0910/MakalahStrukdis0910-023.pdf

http://books.google.co.id/books?id=Rfa5DcATAEQC&pg=PA342&dq=Algoritma+Quick+Sort&hl=id&ei=zuNsTcWrHYvxrQeu-oX7Bg&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCoQ6AEwAA#v=onepage&q&f=false