Sesungguhnya aku ini memberikan hiburan bagi batinku dengan sedikit permainan, supaya hatiku itu lebih tegar berdiri diatas kebenaran. [Abu Dardaa' r.a.]

*

*

**

**"

Informasi dan Promo TOYOTA SUMBAR HUB : Edo Toyota Astra 081363956598 Atau BBM 5A87117B
Atau instalasi sistem operasi troubleshooting, Network dan upgrading dll: 081363956598 atau blog ini....
khusus daerah padang dan sekitarnya....n_n

20 Aplikasi Android Pilihan Tahun 2011

KOMPAS.com - Jumlah aplikasi di Android Market mungkin tidak sebanyak di (Apple) App Store. Meski begitu, jumlah aplikasi di Android Market saat ini bisa dibilang lebih dari cukup dan akan terus bertambah dengan cepat.

Sampai Desember 2011 ini, lebih dari 10 miliar aplikasi telah diunduh dari Android Market. Angka tersebut mengalami kenaikan pesat karena pada Juli 2011 lalu, jumlah aplikasi yang diunduh hanya sekitar 6 miliar.

Dari ribuan aplikasi yang terdapat di Android Market, berikut ini 20 aplikasi yang berguna dan membantu produktivitas para pengguna Android, khususnya untuk kalangan profesional dan pebisnis.

1. Google Voice

Google Voice menyediakan layanan pengelolaan telepon secara gratis. Pengguna dapat memasukan sejumlah nomor telepon, sesuai ketentuan yang diinginkan. Anda bisa memisahkan nomor telepon tertentu, agar nomor tersebut hanya dapat menghubungi Anda pada jam tertentu. Selain itu, Google Voice secara otomatis bisa mentransformasi pesan suara menjadi email ataupun SMS.

2. Advanced Task Killer

Konsumsi baterai yang boros pada smartphone disebabkan karena banyak aplikasi yang berjalan di background. Jika ingin konsumsi baterai tidak terlalu boros, Anda harus menghentikan kerja beberapa aplikasi yang sebenarnya tidak sedang digunakan itu. Dengan menggunakan Advanced Task Killer, pengguna dapat menutup semua aplikasi yang berjalan di background. Aplikasi ini bahkan lebih efektif daripada Task Manager.

3. Dropbox

Dropbox bisa disebut sebagai aplikasi yang menggantikan fungsi flash disk sebagai media penyimpan data. Hanya saja, Dropbox diakses secara online dan tidak harus menggunakan komputer.

Sebelumnya, Anda harus mengunduh Dropbox di www.dropbox.com, membuat akun, dan menginstalnya di komputer. Secara otomatis folder Dropbox di komputer Anda akan muncul. Anda bisa menambah atau membuang file dalam folder tersebut.

Nah, jika Anda sedang bepergian dan membutuhkan file dalam folder Dropbox yang tersimpan di komputer, Anda bisa mengunduh file tersebut melalui perangkat Android. Anda tinggal login dan langsung unduh file yang dibutuhkan. Ini tentu sangat membantu mengingat banyak smartphone yang tidak bisa dikoneksi dengan flash disk.

4. Evernote

Evernote merupakan aplikasi yang baik untuk keperluan pencatatan (notes). Dalam hal menyimpan data, Evernote mirip dengan Dropbox. Anda bisa menyimpan catatan di perangkat smartphone, tablet, ataupun komputer. Anda juga bisa membuka catatan Evernote itu dengan perangkat apa saja.

5. Taskos

Taskos bisa dibilang aplikasi "to-do list" terbaik di Android, karena desainnya sederhana dan mudah dioperasikan. Taskos juga meiliki fitur andalan pengenal suara yang dapat menerjemahkan suara menjadi sebuah "to-do item". Meskipun masih ada huruf yang tidak benar di "to-do item" tersebut, Anda hanya cukup memperbaiki satu atau dua kata saja.

6. DroidAnalytics

DroidAnalytics digunakan untuk menyajikan visualisasi data statistik harian, mingguan dan tahunan website yang di-install Google Analytic. Google sampai saat ini tidak memiliki aplikasi resmi seperti Google Analytic untuk Android maupun iPhone. Karena itu, aplikasi DroidAnalytics bisa disebut sebagai aplikasi terbaik untuk Google Analytic.

7. Documents To Go

Documents To Go versi gratis memberikan layanan membaca file Microsoft Word dan Microsoft Excel. Anda bisa meng-upgrade Document To Go ke versi berbayar (15 dollar AS) jika ingin mendapat fitur "editing" dan untuk menambahkan agar bisa melihat dan mengedit file Power Point. Setelah Document To Go, QuickOffice menjadi aplikasi Office mobile yang juga direkomendasikan.

8. Google Docs

Google Docs memberi layanan pengelolaan data berbasis web gratis. Jika Anda sering bekerja menggunakan Google Docs, termasuk untuk upload file Microsoft Office ke Google Docs, aplikasi yang Anda butuhkan adalah Google Docs. Google Docs untuk Android akan mempermudah Anda membaca atau mengedit dokumen.

9. TripIt

Tripit merupakan aplikasi terbaik untuk mencatat semua jadwal perjalanan. Anda cukup mem-forward email konfirmasi jadwal penerbangan, hotel, sewa mobil dan hal lain yang menunjang perjalanan Anda. Setelah itu aplikasi Tripit akan mengaturnya dengan baik.

10. Google Places

Aplikasi ini memungkinkan Anda menemukan toko dan layanan lain yang ada di dekat lokasi Anda berada. Anda bisa menemukan restoran, dokter, klinik sampai taksi. Places sangat akurat dalam mencari data karena memanfaatkan informasi yang ada di Google Local dan sudah terintegrasi dengan Google Maps.

11. Astro File Manager

Astro File Manager adalah aplikasi yang memungkinkan Anda navigasi ke file sistem Android. Astro juga menyediakan fitur backup, koneksi via Bluetooth, kompresi file, downloader, mencari file, task manager, membuka attachment, dan lain-lain.

12. Speed Test

Berguna untuk menguji kecepatan bandwidth smartphone Android Anda. Aplikasi ini akan memberikan informasi fluktuatif pergerakan koneksi 3G/4G dan memeriksa kualitas WiFi di tempat Anda berada.

13. Amazon Kindle

Jika Anda bukan pengguna perangkat Amazone Kindle, bukan berarti Anda tidak menggunakan aplikasi Amazon Kindle untuk Android ini. Sebuah aplikasi untuk menyimpan dan menampilkan buku elektronik (e-book) dan media digital lainnya. Sejak dirilis, banyak orang tertarik dengan Amazon Kindle karena aplikasi ini membantu pengguna membaca e-book di manapun dan kapanpun.

14. Google+

Sejak rilis Juli lalu, Google+ telah menjadi sumber permbicaraan karena dianggap lebih interaktif. Google+ memperkenalkan layanan baru seperti Circles, Hangouts, Sparks, and Huddles. Sebagai sosial media baru, Google+ diprediksi mampu menandingi raksasa jejaring sosial Facebook.

15. TED Air

TED singkatan Technology, Entertainment, dan Design. Aplikasi ini bisa mencerahkan publik karena menawarkan beragam pemikiran dan ide-ide dari tokoh dan orang berpengaruh di dunia. Anda tinggal mendengarkan, membaca, atau melihat apa yang disampaikan TED Air melalui video. Segala temuan dan ide-ide terbaru bisa Anda temukan melalui TED Air.

16. Google Goggles

Jika biasanya Anda memasukan teks untuk melakukan pencarian di Google, maka dengan Google Goggles Anda bisa menggunakan gambar untuk melakukan pencarian. Cukup foto objeknya menggunakan kamera, Google Goggles akan mencari segala hal yang berkaitan dengan gambar tersebut.

Salah satu fitur keren dalam Google Goggles adalah kemampuan untuk mengambil gambar dari teks dalam bahasa asing, lalu aplikasi ini akan menerjemahkannya untuk Anda. Jika Anda berlibur ke luar negeri, aplikasi ini dapat membantu Anda membaca marka jalan dan tanda-tanda lainnya.

17. Photoshop Express

Siapa yang tidak kenal aplikasi editing gambar/foto terbaik di dunia, Photoshop. Aplikasi versi komputer desktop itu kini tersedia untuk platform Android. Usai memotret, Anda bisa langsung mengedit foto, cropping, mengatur brightness, sharpen, dan sebagainya.

18. Audible

Jika aplikasi Amazon Kindle digunakan untuk membaca e-book, Audible ini memiliki fitur audiobook. Anda bisa terkoneksi ke perpustakaan Audible dan langsung mengunduh audiobook.

19. Shazam

Jika kebetulan Anda mendengarkan sebuah lagu di radio tapi tidak tahu siapa penyanyi dan apa judulnya, Shazam akan membantu memberi jawaban. Biarkan aplikasi ini mendengarkan lagu tersebut selama 15 detik, secara otomatis akan mengolah pada database, dengan sekejap informasi tentang lagu itu akan muncul di layar smartphone Anda. Shazam memiliki tingkat keberhasilan sekitar 80%.

20. Google Finance

Ini adalah aplikasi kecil yang hebat. Google Finance di ponsel Android terkoneksi dengan akun Google Finance Anda, di mana Anda bisa mengatur daftar saham dan perusahaan yang ingin Anda pantau dan mengurutkan mereka ke dalam portfolio. Aplikasi ini menyediakan tiga tab sederhana - melihat pasar, melihat portofolio Anda, dan berita pasar terbaru. Google Finance sangat pas untuk para pebisnis yang selalu memantau pergerakan saham.

WiMax (Worldwide Interoperability for Microwave Access)


Teknologi berkembang dengan sangat cepatnya. Baru saja kita heboh dan sudah merasa puas dengan adanya hotspot dan Wifi, sekarang kita sudah harus dipuaskan lagi dengan kehadiran perkembangan teknologi yang satu ini.

WiMAX. WiMAX merupakan singkatan dari Worldwide Interoperability for Microwave Access memiliki kecepatan akses yang lebih tinggi dengan jangkauan yang lebih luas jika dibandingkan dengan pendahulunya, Wifi. WiMAX merupakan evolusi dari pendahulunya, namun dikemas lebih menarik dan dengan fitu-fitur yang lebih lengkap dan lebih menarik pula. Disamping mampu memberikan kecepatan data yang tinggi, WiMAX ini juga merupakan teknologi dengan open standar dimana WiMAX dapat dioperasikan oleh beberapa vendor telekomunikasi yang berbeda. Dengan kecepatan akses data yang besar (sampai 70 MBps), WiMAX dapat diaplikasikan untuk koneksi broadband ‘last mile’, ataupun backhaul dan high speed enterprise.

Walaupun tampaknya WiMAX ini mirip dengna WiFi, namun dalam implementasinya WiMAX dan WiFi sangat berbeda. Pada WiFi, dari segi OSI Layer, yakni standar pada lapis kedua, dimana Media Access Control (MAC) menggunakan metode akses kompetisi, yaitu dimana beberapa terminal secara bersamaan memperebutkan akses, sedangkan MAC pada WiMax menggunakan metode akses yang berbasis algoritma penjadwalan (scheduling algorithm). Dengan metode akses kompetisi, maka layanan seperti Voice over IP atau IPTV yang tergantung kepada Kualitas Layanan (Quality of Service) yang stabil menjadi kurang baik. Sedangkan pada WiMax, dimana digunakan algoritma penjadwalan, maka bila setelah sebuah terminal mendapat garansi untuk memperoleh sejumlah sumber daya (seperti timeslot), maka jaringan nirkabel akan terus memberikan sumber daya ini selama terminal membutuhkannya. Sistem kerja MAC-nya (Media Access Control) yang ada pada Data Link Layer adalah connection oriented, sehingga memungkinkan penggunanya melakukan komunikasi berbentuk video dan suara dan memungkinkan penggunanya untuk dapat berinternet dengan koneksi yang sangat cepat dan mudah.

Referensi :

  • http://id.wikipedia.org/wiki/WiMAX
  • http://infotkjbaqdhat.blogspot.com/2010/01/teknologi-wimax.html
  • sumber (freyskaniad73)

Array

Array


Array merupakan bagian dasar pembentukan suatu struktur data yang lebih kompleks. Hampir setiap jenis struktur data kompleks dapat disajikan secara logik oleh array.

q Array : Suatu himpunan hingga elemen yang terurut dan homogen, atau dapat didefinisikan juga sebagai pemesanan alokasi memory sementara pada komputer.

q Terurut : elemen tersebut dapat diidentifikasi sebagai element pertama, kedua, dan seterusnya sampai elemen ke-n.

q Homogen : setiap elemen data dari sebuah array tertentu haruslah mempunyai tipe data yang sama.


Karakteristik Array :

1. Mempunyai batasan dari pemesanan alokasi memory ( bersifat statis)

2. Mempunyai type data sama ( bersifat Homogen)

3. Dapat diakses secara acak.

4. Berurutan ( terstruktur ).


Array mempunyai dimensi :

  1. Array Dimensi Satu (Vektor)
  2. Array Dimensi Banyak.

- Dimensi Dua (Matriks/Tabel)

- Dimensi Tiga (Kubik).


ARRAY DIMENSI SATU

Ø Merupakan bentuk yang sangat sederhana dari array.

Ø Setiap elemen array mempunyai subskrip/indeks.

Ø Fungsi indeks/subskrip ini antara lain :

1. Menyatakan posisi elemen pada array tsb.

2. Membedakan dengan elemen lain.


Penggambaran secara fisik Array A(1:N) :


A(1)

A(2)

A(3)

A(4)

A(N)


Ket : A : nama array

1,2,3,4,…,N : indeks / subskrip


Ø Secara umum Array Dimensi Satu A dengan tipe T dan subskrip bergerak dari L sampai U ditulis : A(L:U) = (A(I)); I =L , L+1, L+2, …, U

Keterangan : L : batas bawah indeks / lower bound

U : batas atas indeks / upper bound

A : nama Array


Ø Banyaknya elemen array disebut Rentang atau Range A(L:U) = U – L + 1


Ø Range khusus untuk array Dimensi Satu yang mempunyai batas bawah indeks L=1 dan batas atas U=N, maka Range A adalah A(1:N) =( N – 1) + 1 = N


Contoh :

Data hasil pencatatan suhu suatu ruangan setiap satu jam, selama periode 24 jam ditulis dalam bentuk Array Dimensi Satu menjadi


Misal :

nama arraynya Suhu, berarti elemennya dapat kita tulis sebagai Suhu(I), dengan batas bawah 1 dan batas atas 24.

Suhu(I):menyatakan suhu pada jam ke-I dan 1<=I<=24

Range Suhu(1:24)=(24-1)+1=24


ARRAY DIMENSI BANYAK



Ø Array Dimensi Banyak (Multi-Dimensional ARRAY) :

suatu array yang elemen –elemennya berupa array juga.

Ø Array Dimensi Dua perlu dua subskrip/indeks :

a. Indeks pertama untuk menyatakan posisi baris

b. Indeks kedua untuk menyatakan posisi kolom

Ø Secara umum Array Dimensi Dua B dengan elemen-elemen bertype data T dinyatakan sbb : B(L1:U1,L2:U2)={B(I,J)}

L1<=1<=U1, L2<=1<=U2, dan setiap elemen B(I,J) bertype

data T

Keterangan : B = nama array

L1 = batas bawah indeks baris

L2 = batas bawah indeks kolom

U1 = batas atas indeks baris

U2 = batas atas indeks kolom

Ø Jumlah elemen baris dari array B adalah (U2 - L2 + 1)

Ø Jumlah elemen kolom dari array B adalah (U1 – L1 + 1)

Ø Jumlah total elemen array adalah (U2 – L2 + 1) * (U1 – L1 + 1)

Ø Suatu array B yang terdiri atas M elemen dimana elemennya berupa array dengan N elemen, maka dapat digambarkan sbb:


1 2 3 …… J ….. N

1







2







3













I





B(I,J)








M








· Array diatas dituliskan :

B(1:M, 1:N) = B(I,J) ;

Untuk I = 1,2,3,………….,M dan

J = 1,2,3,……….., N

· Jumlah elemen array B : M * N

· Array B berukuran / berorder : M * N


CROSS SECTION


Ø Cross Section dari array berdimensi dua adalah suatu himpunan yang anggotanya adalah elemen-elemen dalam satu baris saja atau satu kolom saja.

Ø Notasinya : *


Misal

Array B(1:M ;1:N) = {B(I,J)} ;

I = 1,2,3,……..,M dan

J = 1,2,3,…….,N

Maka suatu Cross Section :

B(5,*) = {B(5,1), B(5,2), B(5,3),………, B(5,N)}

B(*,5) = {B(1,5), B(2,5), B(3,5),………, B(M,5)}


TRANSPOSE


Ø Transpose dari suatu array berdimensi dua adalah menukar posisi indeksnya ( menukar posisi baris menjadi kolom atau kolom menjadi baris).

Ø Transpose suatu array dari B dinotasikan BT

Ø B adalah array dua dimensi, B(I,J) maka BT (J,I)

Ø A adalah array dua dimensi yang berorder M x N memepunyai transpose ( AT) N x M

ARRAY DIMENSI TIGA

Ø Banyaknya indeks yang diperlukan array dimensi tiga adalah 3

Ø Pada umumnya, suatu array berdimensi N memerlukan N indeks untuk setiap elemennya.

Ø Secara acak array berdimesi N ditulis sbb:

A(L1:U1, L2:U2, …….., LN:UN ) = (A(I1,I2,……,IN)) dengan LK <= IK<=UK , k = 1,2,3,…, N


Contoh :

Penyajian data mengenai jumlah mahsiswa Manajemen Informatika Universitas Gunadarma berdasarkan tingkat, untuk kelas pagi dan malam dan jenis kelamin.

Jawab :

MHS = nama array

I = 1,2,3,4,5 (tingkat 1/5)

J = 1,2 (1 = pagi; 2 = malam )

K = 1,2 (1 = pria; 2= wanita)

MHS (1:5, 1:2,1:2)


Jadi :

§ MHS(3,2,2)

jumlah mahasiswa tingkat 3 MI kelas malam untuk jenis kelamin wanita

§ Cross Section MHS (1,*,2)

jumlah mahasiswa tingkat 1 MI kelas pagi atau malam dan berjenis kelamin wanita.






MAPPING KE STORAGE DARI ARRAY


Skema penyajian dapat dievaluasi berdasarkan 4 karakteristik yaitu :

1. Kesederhanaan dari akses elemen

2. Mudah ditelusuri

3. Efisiensi dari utilitas storage

4. Mudah dikembangkan


ARRAY SATU DIMENSI


Misal:

Diberikan array dengan nama B yang mempunyai indeks 1 s/d N yaitu A(1:N). Cara untuk menyimpan array tersebut adalah sedemikian sehingga urutan secara fisik dari elemen-elemen adalah sama dengan urutan logik dari elemen.


Untuk mengetahui Address Awal ( Starting Address) dari elemen suatu array A(I) perlu diketahui :


1. Address Awal dari array yang bersangkutan

2. Ukuran dari masing-masing elemen array

Ø Address Awal dari array dinyatakan dengan notasi Address Awal yaitu

B ( Base Location)

Ø Masing-masing elemennya menggunakan ruang sebanyak S byte.

Ø Address awal dari elemen ke-I dari array A(1:N) adalah :

B + (I – 1 ) * S

Ø Address Awal yang mempunyai batas bawah tidak sama dengan satu ,elemen ke-I dari array A(L:U) adalah : B + ( I– L) * S


Misal :

A ( 1:7), address awal dari elemen A(5) adalah : B + ( 5 –1) * S

A ( 3:8), address awal dari elemen A(6) adalah : B + (6 - 3 ) * S

A (-3:4), address awal dari elemen A(2) adalah : B + (2 –(- 3) ) * S

ARRAY MULTI DIMENSI

Memori komputer linier, maka untuk memetakan array dimensi banyak ke storage harus dilinierkan.

Alternatif untuk pelinieran tersebut adalah :

q Row Major

Biasanya digunakan COBOL, PASCAL

Menyimpan pertama kali baris pertama dari array, kemudian baris kedua, ketiga dst

Array Rate ( 1:3 , 1:5)



1

2

3

4

5

1






2



Rate(2,3)



3







Menjadi

Rate(2,3)























Baris 1 Baris 2 Baris 3


Ø Array A(I,J) dari array yang didefinisikan sebagai array

A(L1:U1 , L2:U2), mempunyai

Address awal : B + (I – L1) * (U2 – L2 +1) * S + ( J – L2) * S

Contoh :

· Array A(1:3, 1:5) dan elemen A(2,3) mempunyai address awal :

B + (2-1) * (5-1+1) * S + (3-1) * S

B + 5 * S + 2 * S

B + 7 * S

· Array A(2:4, 3:5) dan elemen A(3,4) mempunyai address awal :

B + (3-2) * (5-3+1) * S + (4-3) * S

B + 1 * 3 * S + 1 * S

B + 4 * S

q Column Major


Biasanya digunakan FORTRAN

Menyimpan Kolom pertama dari array kemudian kolom kedua, ketiga, dst

Menjadi

Rate ( 2,3)
















Kolom 1 Kolom 2 Kolom 3 Kolom 4 Kolom 5



Ø Array A(I,J) dari array yang didefinisikan sebagai array

A(L1:U1 , L2:U2) mempunyai

Address awal : B + (J – L2) * (U1 – L1 +1) * S + ( I – L1) * S


Contoh :

· Array A(1:3, 1:5) dan elemen A(2,3) mempunyai address awal :

B + (3-1) * (3-1+1) * S + (2-1) * S

B + 6 * S + 1 * S

B + 7 * S

· Array A(2:4, 3:5) dan elemen A(3,4) mempunyai address awal :

B + (4-3) * (4-2+1) * S + (3-2) * S

B + 1 * 3 * S + 1 * S

B + 4 * S





ARRAY SEGITIGA (TRINGULAR ARRAY)


Ada 2 macam

1. Upper Tringular : Elemen dibawah diagonal utama adalah 0

2. Lower Tringular :Elemen diatas diagonal utama adalah 0


Ø Suatu array dimana elemen diagonalnya juga nol disebut Strictly (upper/lower) Tringular.

Ø Pada array Lower Tringular dengan N baris, jumlah maksimum elemen <> 0 pada baris ke-I adalah I

N

Ø Total elemen <> 0 adalah å I = ( N * ( N+1)) /2

K=1

Ø Untuk N kecil : tidak ada masalah

Ø Untuk N besar :

1. Elemen yang sama dengan nol tidak usah disimpan dalam memori

2. Pendekatan terhadap masalah ini adalah dengan pelinieran array dan hanya menyimpan array yang tidak nol.


1. Misal

A array segitiga atas berorder N x N

B array bersegitiga bawah dengan order ( N-1) x ( N-1)

A dan B dapat disimpan sebagai array C berorder N x N

C (I,J) = A(I,J) untuk I <= J

C(I+1,J) = B(I,J) untuk I >= J

2. Misal

A array segitiga atas berorder N x N

B array bersegitiga bawah dengan order N x N

A dan B dapat disimpan sebagai array C berorder N x ( N + 1 )

C (I,J+1) = A(I,J) untuk I <= J

C(I,J) = B(I,J) untuk I >= J

3. Misal

A dan B keduanya merupakan array segitiga atas

Maka untuk menyimpannya secara bersama-sama dengan melakukan transpose terhadap salah satu array tersebut.

Array C berorder N x (N+1)

C (I,J+1) = A(I,J) untuk I <= J

C(J,i) = B(I,J) untuk I >= J


SPARSE ARRAY


Ø Suatu type khusus yang lain dari array

Ø Dikatakan Sparse atau jarang karena elemen-elemen yang tidak nolnya relatif lebih sedikit jumlahnya

Ø Setiap elemen bukan nol pada sparse array dua dimensi dapat direpresentasikan dalam format (Row-Subscript, Column-subscript, value).

Ø Triple ini dapat diurut berdasarkan Row-Subscript Major dan Colum-Subscript Minor dan disimpan dalam bentuk vektor.

Ø Penyajian lain dari Sparse Array adalah dengan menggunakan daftar berkait/ Linked List.



STACK


q LINEAR LIST

¨ Linear list adalah suatu struktur data yang merupakan himpunan terurut dari satuan data atau dari record.

¨ Elemen yang terdapat dalam daftar disebut simpul/node.

¨ Daftar disebut Linear karena elemen nampak seperti baris, bahwa setiap simpul (kecuali simpul pertama dan terakhir) selalu memiliki elemen penerus langsung (suksesor) dan elemen pendahulu langsung (predesor).

¨ Misalnya didefinisikan suatu linear list A yang terdiri atas T buah elemen sebagai berikut :

A=[ a1,a2,……………, aT ]


Jika T = 0 , maka A dikatakan sebagai “Null List” (list hampa).

¨ Suatu elemen dapat dihapus (delete) dari sembarang posisi pada linear list .

¨ Suatu elemen baru dapat dimasukkan (insertion) kedalam list dan dapat menempati sembarang posisi pada list tersebut.

¨ Jadi suatu linear list dapat berkurang atau bertambah setiap saat

Contoh : file merupakan linier list yang elemen-elemennya berypa record.


q DEFINISI STACK

STACK adalah suatu bentuk khusus dari linear list di mana operasi penyisipan dan penghapusan atas elemen-elemennya hanya dapat dilakukan pada satu sisi saja yaitu posisi akhir dari list. Posisi ini disebut puncak atau disebut sebagai “TOP(S)”.

¨ Prinsip Stack adalah LIFO ( Last In First Out ) atau Terakhir masuk pertama keluar.

Setiap elemen tidak dapat dikeluarkan (POP keluar) sebelum semua elemen diatasnya dikeluarkan.

¨ Elemen teratas (puncak) dari stack dinotasikan sebagai TOP(S)

Misal diberikan stack S sebagai berikut :

S= [ S2,S2,………, ST ] è maka TOP(S) = ST

¨ Untuk menunjukkan jumlah elemen suatu stack digunakan notasi NOEL(S).

Dari stack diatas maka NOEL(S) = T.

NOEL(S) menghasilkan nilai integer.





Jika diberikan sebuah stack S = [A,B,C,D] maka stack S ini dapat digambarkan sebagai berikut :











A









B

D

C

C

TOP

D C B A

D

B

A

TOP



q OPERASI PADA STACK

1. CREATE (STACK)

2. ISEMPTY (STACK)

3. PUSH (ELEMEN, STACK)

4. POP (STACK)


Ø CREATE(S)

Operator ini berfungsi untuk membuat sebuah stack kosong (menjadi hampa) dan didefinisikan bahwa


NOEL (CREATE (S)) = 0 dan

TOP (CREATE(S)) = null / tidak terdefinisi


Ø ISEMPTY(S)

Operator ini berfungsi untuk menentukan apakah suatu stack adalah stack kosong (hampa) atau tidak . Operasinya akan bernilai boolean dengan definisi sebagai berikut :

ISEMPTY(S) = true, jika S adalah stack kosong atau NOEL(S) = 0

False, jika S bukan stack kosong atau NOEL(S) ¹ 0

Catatan : ISEMPTY(CREATE(S)) = true




Ø PUSH(E,S)

¨ Operator ini berfungsi untuk menambahkan satu elemen ke dalam stack . Notasi yang digunakan adalah PUSH(E,S)

Artinya : menambahkan elemen E ke dalam stack S

¨ Elemen yang baru masuk ini akan menempati posisi TOP jadi TOP(PUSH(E,S)) = E

¨ Akibat dari operasi ini jumlah elemen dalam stack akan bertambah, artinya NOEL (S) menjadi lebih besar atau stack menjadi tidak kosong (ISEMPTY(PUSH(E,S)) = false )


Ø POP(S)

¨ Operator ini berfungsi untuk mengeluarkan satu elemen dari dalam stack, notasinya POP(S)

¨ Elemen yang keluar dari dalam stack adalah elemen yang berada pada posisi TOP.

¨ Akibat dari operasi ini jumlah elemen stack akan berkurang atau NOEL(S) berkurang 1 dan elemen pada posisi TOP akan berubah.

¨ Operator ini tidak dapat digunakan pada stack kosong, artinya POP(CREATE(S)) = error condition dan

POP(PUSH(E,S)) = S

Catatan : TOP(PUSH(E,S)) = E



Queue

Adalah suatu bentuk khusus dari linear list dengan operasi penyisipan (insertion) hanya pada salah satu sisi ( Rear/ belakang) dan operasi penghapusan (deletion) hanya diperbolehkan pada sisi lainnya (Front/ depan) dari list.


Antrean Q = [ Q1, Q2, Q3,……….., QT]

Front(Q) = bagian depan dari antrean Q

Rear(Q) = bagian belakang dari antrean Q

Noel(Q) = Jumlah elemen di dalam antrean ( berharga integer)

Jadi : Front(Q) = QT

Rear(Q) = Q1

Noel(Q) = T


Antrean beroperasi secara FIFO ( First In First Out) yang pertama masuk, yang pertama keluar.


q Operasi dasar pada Antrean :


1. CREATE(Q)

Operator untuk membentuk suatu antrean hampa

Q = [,…….,]

NOEL(CREATE(Q)) = 0

FRONT(CREATE(Q)) = tidak didefinisikan

REAR(CREATE(Q)) = tidak didefinisikan


2. ISEMPTY(Q)

Operator yang menentukan apakah antrean Q hampa atau tidak.

Operand dari operator ISEMPTY adalah antrean.

Hasilnya bertipe data Boolean

ISEMPTY(Q) =TRUE jika Q adalah antrean hampa (NOEL(Q) = 0)

FALSE jika Q bukan antrean kosong (NOEL(Q) ¹ 0)


3. INSERT(E,Q)

Operator yang menyisipkan elemen E ke dalam antrean Q

Catt : Elemen Q ditempatkan pada bagian belakang antrean dan antrean menjadi lebih panjang

Q = [ A, B, C, D]

REAR(INSERT(E,Q)) = E

FRONT(Q) = A

NOEL(Q) = 5

ISEMPTY(INSERT(E,Q)) = FALSE

4. REMOVE(Q)

Operator yang menghapus elemen bagian depan dari antrean Q dan antrean menjadi lebih pendek

Jika NOEL(Q) = 0 maka

REMOVE(Q) = ERROR ( UNDERFLOW)


q Penyajian dari antrean :

1. One way list

2. Array

q Menunjukkan bagaimana suatu antrean dalam array Queue dengan N elemen

1. Antrean mula-mula terdiri dari elemen AAA, BBB, CCC, DDD


AAA BBB CCC DDD ……….


1 2 3 4 5 6 7 8 9

FRONT(Q) = AAA : 1

REAR(Q) = DDD : 4


2. REMOVE(Q)



BBB CCC DDD ……….



1 2 3 4 5 6 7 8 9


FRONT(Q) = BBB : 2

REAR(Q) = DDD : 4


3. INSERT(EEE,Q)

BBB CCC DDD EEE …….. ………. N

1 2 3 4 5 6 7 8 9


FRONT(Q) = BBB : 2

REAR(Q) = EEE : 5

KESIMPULAN :

Untuk setiap kali penghapusan nilai FRONT bertambah

Untuk setiap kali penambahan nilai REAR akan bertambah


q Antrean yang disimpan dalam array dengan 5 lokasi memori sebagai array Sirkular.

1. Pada Awal Hampa

N ………. N

FRONT = 0 REAR = 0 1 2 3 4 5

2. A dan B dimasukkan

A B N ………. N

FRONT : 1

REAR : 2 1 2 3 4 5


3. C, D , dan E dimasukkan

A B C D E N ………. N

FRONT :1

REAR : 5

1 2 3 4 5


4. A, B, dan C dihapus

D E N ………. N

FRONT : 4

REAR :5

1 2 3 4 5


5. F dimasukkan

F D E N ………. N

FRONT : 4

REAR : 1


1 2 3 4 5


6. D dihapus

F E N ………. N

FRONT : 5

REAR :1

1 2 3 4 5


7. G dan H dimasukkan

F G H E N ………. N

FRONT : 5

REAR : 3

1 2 3 4 5


8. E dihapus

F G H N ………. N

FRONT :1

REAR : 3

1 2 3 4 5



Queue

Adalah suatu bentuk khusus dari linear list dengan operasi penyisipan (insertion) hanya pada salah satu sisi ( Rear/ belakang) dan operasi penghapusan (deletion) hanya diperbolehkan pada sisi lainnya (Front/ depan) dari list.


Antrean Q = [ Q1, Q2, Q3,……….., QT]

Front(Q) = bagian depan dari antrean Q

Rear(Q) = bagian belakang dari antrean Q

Noel(Q) = Jumlah elemen di dalam antrean ( berharga integer)

Jadi : Front(Q) = QT

Rear(Q) = Q1

Noel(Q) = T


Antrean beroperasi secara FIFO ( First In First Out) yang pertama masuk, yang pertama keluar.


q Operasi dasar pada Antrean :


5. CREATE(Q)

Operator untuk membentuk suatu antrean hampa

Q = [,…….,]

NOEL(CREATE(Q)) = 0

FRONT(CREATE(Q)) = tidak didefinisikan

REAR(CREATE(Q)) = tidak didefinisikan


6. ISEMPTY(Q)

Operator yang menentukan apakah antrean Q hampa atau tidak.

Operand dari operator ISEMPTY adalah antrean.

Hasilnya bertipe data Boolean

ISEMPTY(Q) =TRUE jika Q adalah antrean hampa (NOEL(Q) = 0)

FALSE jika Q bukan antrean kosong (NOEL(Q) ¹ 0)


7. INSERT(E,Q)

Operator yang menyisipkan elemen E ke dalam antrean Q

Catt : Elemen Q ditempatkan pada bagian belakang antrean dan antrean menjadi lebih panjang

Q = [ A, B, C, D]

REAR(INSERT(E,Q)) = E

FRONT(Q) = A

NOEL(Q) = 5

ISEMPTY(INSERT(E,Q)) = FALSE

8. REMOVE(Q)

Operator yang menghapus elemen bagian depan dari antrean Q dan antrean menjadi lebih pendek

Jika NOEL(Q) = 0 maka

REMOVE(Q) = ERROR ( UNDERFLOW)


q Penyajian dari antrean :

9. One way list

10. Array

q Menunjukkan bagaimana suatu antrean dalam array Queue dengan N elemen

4. Antrean mula-mula terdiri dari elemen AAA, BBB, CCC, DDD


AAA BBB CCC DDD ……….


1 2 3 4 5 6 7 8 9

FRONT(Q) = AAA : 1

REAR(Q) = DDD : 4


5. REMOVE(Q)



BBB CCC DDD ……….



1 2 3 4 5 6 7 8 9


FRONT(Q) = BBB : 2

REAR(Q) = DDD : 4


6. INSERT(EEE,Q)

BBB CCC DDD EEE …….. ………. N

1 2 3 4 5 6 7 8 9


FRONT(Q) = BBB : 2

REAR(Q) = EEE : 5

KESIMPULAN :

Untuk setiap kali penghapusan nilai FRONT bertambah

Untuk setiap kali penambahan nilai REAR akan bertambah


q Antrean yang disimpan dalam array dengan 5 lokasi memori sebagai array Sirkular.

1. Pada Awal Hampa

N ………. N

FRONT = 0 REAR = 0 1 2 3 4 5

3. A dan B dimasukkan

A B N ………. N

FRONT : 1

REAR : 2 1 2 3 4 5


11. C, D , dan E dimasukkan

A B C D E N ………. N

FRONT :1

REAR : 5

1 2 3 4 5


12. A, B, dan C dihapus

D E N ………. N

FRONT : 4

REAR :5

1 2 3 4 5


13. F dimasukkan

F D E N ………. N

FRONT : 4

REAR : 1


1 2 3 4 5


14. D dihapus

F E N ………. N

FRONT : 5

REAR :1

1 2 3 4 5


15. G dan H dimasukkan

F G H E N ………. N

FRONT : 5

REAR : 3

1 2 3 4 5


16. E dihapus

F G H N ………. N

FRONT :1

REAR : 3

1 2 3 4 5


q ALGORITMA QINSERT

QINSERT(QUEUE, N, FRONT, DATA)

1. {Apakah antrean penuh}

Jika FRONT = 1 dan REAR = N atau Jika FRONT = REAR+1, maka Write : OVERFLOW, return.

2. Jika FRONT = NULL maka FRONT := 1, REAR := 1

Dalam hal ini

Jika FRONT = N maka REAR := 1

Dalam hal lain

REAR := REAR + 1

3. QUEUE(REAR) := DATA ( masukkan elemen baru)

4. Return


q ALGORITMA QDELETE

QDELETE(QUEUE, N, FRONT, REAR, DATA)

1. {Apakah antrean kosong}

Jika FRONT = NULL, maka Write : UNDERFLOW, return.

2. DATA := QUEUE(FRONT)

3. (FRONT mendapat nilai baru)

Jika FRONT =REAR maka FRONT := NULL

REAR := NULL

Dalam hal ini

Jika FRONT := N maka FRONT := 1

Dalam hal lain

FRONT := FRONT + 1

4. Return



LINK LIST


PENDAHULUAN

q Dalam suatu linier list kita dapat melakukan operasi penyisipan atau penghapusan atas elemen-elemennya pada sembarang posisi.

q Misalkan ada 1500 item yang merupakan elemen dari suatu linier list. Jika elemen ke-56 akan kita keluarkan, maka elemen ke-1 s/d elemen ke-55 tidak akan berubah posisinya pada linier list tersebut. Tetapi elemen ke–57akan menjadi elemen ke-56, elemen ke-58 akan menjadi elemen ke-57 dst. Selanjutnya, jika kita sisipkan satu elemen pada posisi setelah elemen ke-41, maka elemen ke-42 s/d elemen ke-1500 akan berubah posisinya.


q Untuk menyatakan keadaan diatas diperlukan suatu konsep yang berbeda dengan konsep sekuensial sebelumnya.

Linked list merupakan suatu cara non-sekuensial yang digunakan untuk merepresentasikan suatu data.


DEFINISI



q Linked list (one way list) adalah suatu kumpulan elemen data (yang disebut sebagai node) dimana urutannya ditentukan oleh suatu pointer.

q Setiap elemen (node) dari suatu linked list terdiri atas dua bagian, yaitu:

Ø INFO berisi informasi tentang elemne data yang bersangkutan.

Ø NEXT (link field/next pointer field), berisi alamat dari elemen (node) selanjutnya yang dituju.

Berikut ini sebuah contoh linked list yang terdiri atas 4 node:




Start


Info next info next info next info next

NULL

Node ke-1 node ke-2 node ke-3 node ke-4

Pada node ke-4 field NEXT–nya berisi NULL , artinya node ke-4 tsb adalah node terakhir.


q Node-node dalam linked list tidak harus selalu digambarkan paralel seperti pada gambar diatas. Linked list pada contoh diatas dapat pula digambarkan seperti berikut ini:


Info next

Info next

null

Info next

Info next





CATATAN :

Ø Ada dua hal yang menjadi kerugian dengan representasi suatu data dengan linked list ini,

yaitu:

1. Diperlukan ruang tambahan untuk menyatakan/tempat field pointer.

2. Diperlukan waktu yang lebih banyak untuk mencari suatu node dalam linked list.

Ø Sedangkan keuntungannya adalah :

1. Jenis data yang berbeda dapat di-link

2. Operasi REMOVE atau INSERT hanya dilakukan dengan mengubah pointer-nya saja .

OPERASI DASAR PADA LINKED LIST


q Ada beberapa aturan yang didefinisikan pada operasi didalam linked list yaitu:

Ø Jika P adalah suatu variabel pointer, maka nilainya adalah alamat atau lokasi dari variabel lain yang dituju.

Ø Operasi yang didefinisikan pada suatu variabel pointer adalah:

1. Test apakah sama dengan NULL

2. Test untuk kesamaan denganvariabel pointer lain

3. Menetapkan sama dengan NULL

4. Menetapkan menuju ke node lain

q Notasi yang didefinisikan sehubungan dengan operasi diatas adalah

  1. NODE (P), artinya node yang ditunjuk oleh pointer P
  2. INFO (P), artinya nilai INFO dari node yang ditunjuk pointer P
  3. NEXT (P), artinya hubungan (link) selanjutnya dari node yang ditunjuk oleh pointer P


Sebagai contoh, perhatikan linked list dibawah ini:

Info next




A

start Info next info next

C

node ke-2

node ke-1

P

node ke-3




null

D

Info next

Node ke-4




NODE (P) = node yang ditunuk oleh P yaitu node pertama

INFO (P) = A

NEXT (P) = node kedua

INFO (NEXT(NEXT(P))) = C


MENGHAPUS SUATU NODE DARI LINKED LIST (REMOVE)

q Untuk menghapus node dalam linked list digunakan procedure FREENODE.

q Jika Q adalah suatu variabel pointer, maka FREENODE (Q) akan menyebabkan node yang ditunjuk oleh variabel poinnter Q dihapus dalam linked list.


Perhatikan linked list berikut :

Ø Langkah ke-1 :

Q := Next (P)


Info next info next info next



















P Q


Info next

…….










Ø Langkah ke-2 :

Next (P) := Next (Q)

Info next

















Info next info next info next

























Ø Langkah ke-3 :

Freenode (Q)

Procedure Freenode (Q)

(a) Next (Q) := Avail

(b) Info (Q) := Null

(c) Avail := Q


MENYISIPKAN SUATU NODE KEDALAM LINKED LIST

q Untuk menyisipkan node dalam linked list digunakan procedure GETNODE

q Jika NEW adalah suatu variabel pointer, maka GETNODE (NEW) akan menyebabkan node yang ditunjuk oleh variabel pointer NEW disisipkan kedalam linked list.

Perhatikan linked list berikut:

Procedure Getnode (NEW)

If Avail = Null

Then out-of-free-space

(a) else begin

Getnode := Avail

(b) Avail := Next (Avail)

(c) Next (Getnode) := Null;

End;


q Algoritma menyisipkan sebuah node :

(a) Getnode (NEW)

(b) Info (NEW) := Name;

(c) Q := Next (P)

(d) Next (P) := NEW

(e) Next (NEW) := Q

jangan lupa tinggalkan pesan y.....okay
Twitter Delicious Facebook Digg Stumbleupon Favorites More