08.22
0
PENGENALAN ALGORITMA DAN STRUKTUR DATA (ALGORITMA PEMROGRAMAN DAN STRUKTUR DATA)
Kebanyakan orang  mempresepsi komputer  sebagai  perangkat sangat digdaya dimana kehidupan manusia telah dipercaya bergantung padanya. Agar komputer dapat dilakukan pengoperasian yang sangat cepat dan menjadi digdaya yaitu dengan adanya program. Pemogramanlah yang memberikan keajaiban itu. Program adalah himpunan arahan yang memberitahu komputer apa-apa yang perlu dilakukan, sebagai media yang digunakan manusia untuk berkomunikasi dengan komputer, memberi milyaran perintah yang akan dijalankan secara konsisten dan cepat oleh komputer. Program dapat ditulis dalam beragam bahasa pemograman untuk menspesifikasikan arahan-arahan itu ke komputer yang merupakan satu algoritma.
Algoritma adalah metode kerja yang dapat di implementasikan di komputer yang mengolah suatu data masukan untuk menghasilkan data keluaran. Data perlu distrukturkan agar dapat diperoleh algoritma yang sederhana. Algoritma tidak dapat dipisahkan dengan struktur data yang dipilih dalam merepresentasikan data persoalan.
Struktur data dan algoritma merupakan pondasi ilmu komputer. Bidang struktur  data adalah gudang perbendaharaan konsep dasar, kecerdikan, keampuhan abstraksi, beragam algoritma, dan teknik untuk evaluasi. Struktur data mengumpulkan item-item data dalam cara tertentu yang mempunyai aturan-aturan pengaksesan tertentu. Struktur data umum memuat item-item seperti record, array, set, list, stack, queue, deque, tree, binary tree, graph, string, dan sebagainya.
1 .     ALGORITMA PEMROGRAMAN
Algoritma adalah satu prosedur yakni masukannya suatu instan masukan yang mungkin dan mentransformasikan menjadi keluar yang dikehendaki.
Contoh:
Persoalan pengurutan:
Masukan : satu sekuen n kunci a1, a2, a3, …, an
Keluaran : permutasi (penyusutan ulang) sekuen masukan sehingga a1′≤ a2′≤a3′≤…≤an’
Instan persoalan dapat berupa array nama seperti {mangga, apel, durian, semangka} atau daftar angka seperti {98, 8, 7, 101, 99}.
1.1    Ciri-ciri algoritma
Algoritma disusun dari sekumpulan langkah yang berhingga, masing-masing langkahnya mungkin memerlukan satu operasi atau lebih dan dirancang untuk menyelesaikan suatu persoalan spesifik dengan usaha paling minimal.
Berikut ciri-ciri dari algoritmam:
  1. Input – masukan, terdapat nol masukan atau lebih yang diberikan.
  2. Output – keluaran, sedikitnya terdapat satu keluaran yang dihasilkan.
  3. Definite – jelas, harus secara sempurna menyatakan apa yang dilakukan.
  4. Efective – efektif, setiap instruksi harus dapat dilakukan secara manual menggunakan pensil dan kertas selama sejumlah waktu yang berhingga.
  5.  Terminater – berakhir, harus berhenti setelah sejumlah operasi.
Mengekspresikan Algoritma
Untuk mendeskripsikan algoritma diperlukan satu notasi untuk mengekspresikan satu sekuen langkah yang dilakukan.
Terdapat tiga alternatif yang paling sering digunakan, yaitu :
  1. Bahasa alami, seperti bahasa indonesia dan bahasa inggris.
  2. Pseudocode
  3.  Bahasa pemrograman
2.      STRUKTUR DATA
Definisi kata Data dan Struktur sebagai berikut :
 Data adalah:
Bahan yang digunakan dalam perhitungan atau operasi untuk menghasilkan informasi yang berguna
Sedangkan struktur mempunyai pengertian sebagai berikut:
Struktur adalah pengaturan atau hubungan”
Maka struktur data dapat didefinisikan sebagai:
Pengaturan atau hubungan dari data di dalam suatu sistem

Kita tentu sering bekerja dengan program, pertanyaan yang mungkin timbul adalah, “dimana letak kegunaan dari struktur data dalam hubungannya dengan program ?”
Sebenarnya Struktur Data + Algoritma akan menjadi Program.
1
Hubungan struktur data dengan program dan algoritma

2.1    Tipe Data
Tipe data adalah:
Identifikasi yang umum dari suatu kelompok data sehingga kelompok data tersebut dapat dibedakan dari kelompok lainnya.
Secara umum, tipe data dapat dikelompokkan ke dalam 2 kelas, yaitu tipe data atomik dan tipe data struktur. Suatu data disebut sebagai tipe atomik bila data tersebut tidak dapat diuraikan ke dalam bentuk yang lebih sederhana. Contohnya adalah: tipe data Integer, tipe data Char, tipe data float dan seterusnya. Sedangkan tipe data struktur, contohnya adalah : tipe data array, structure, dan seterusnya.
Berikut akan dikemukakan contoh dari masing-masing tipe data dengan menggunakan deskripsi yang biasanya dilakukan dalam bahasa C.
Tipe Data Atomik
  • Tipe data         :  int A;
  • Besar memori     :  16 bit
  • Jangkauan          :  -32768 sampai dengan 32768
Tipe Data Struktur
Tipe data        :   int X[5];
Jenis tipe data diatas adalah tipe data struktur, komponennya terdiri dari tipe data INTEGER (dapat diuraikan ke dalam tipe data atomic berbentuk INTEGER), struktur atau hubungan antara komponennya disusun dalam bentuk ARRAY.
2.2        Level Abstraksi Tipe Data
Kita dapat membedakan adanya beberapa level abstraksi dari suatu tipe data. Ada tipe data yang hanya berada di dalam imajinasi kita saja. Bayangkan kita mempunyai sekumpulan nama-nama orang, dan nama-nama itu diberi nomor urut. Dapat dibayangkan operasi yang dapat dilakukan terhadap kumpulan nama tersebut. Seperti mencetak nama-nama, menemukan nama dengan urutan ke tiga dst. Tipe data yang demikian dikatakan berada pada level abstrak.
Jika tipe data abstrak tersebut kita implementasikan dengan menggunakan bahasa pemrograman, maka kita dapat menuliskan program untuk melakukan operasi-operasi seperti yang telah disebutkan pada level abstrak di atas. Tipe data yang berada dalam bahasa pemrograman dikatakan berada pada level virtual.
 Pada akhirnya, pada saat program dijalankan, tipe data virtual harus secara fisik diload ke dalam memory/processor dari mesin komputer yang dipergunakan untuk menjalankan program tersebut. Tipe data yang demikian dikatakan berada pada level physical.
Secara ringkas kita dapat membagi tipe data ke dalam 3 level abstraksi, yaitu:
  •  Tipe Data Abstrak adalah tipe data sebagai hasil dari imajinasi kita.
  • Tipe Data Virtual adalah tipe data yang berada dalam virtual memory atau dalam bahasa pemrograman.
  • Tipe Data Physical adalah tipe data yang secara fisik atau nyata berada dalam memory / main processor.
NATIVE DATA TYPE
Pada level physical, semua data dinyatakan dalam binary digit (bit), yaitu berupa angka 0 dan 1. Data tipe ini sangat menyulitkan manusia dalam membaca, menulis atau mengubahnya. Maka diciptakanlah bahasa pemrograman yang memudahkan manusia untuk berkomunikasi dengan computer. Bahasa pemrograman tingkat tinggi (high level language) merupakan bahasa pemrograman yang paling mudah dimengerti oleh manusia. Dalam bahasa pemrograman ini biasanya telah tersedia beberapa tipe data yang dapat langsung dipergunakan bila kita menulis program dengan bahasa ini. Tipe data ini disebut sebagai native data type.
Contoh native data type dalam C adalah:
  • int
  • char
  • long
  • float dan lain – lain
2.3    Tipe Data Abstrak
Ada dua terminologi atau istilah yang akan dipergunakan dalam spesifikasi tipe data. Terminologi yang pertama adalah pre, yang merupakan singkatan dari precondition; menyatakan kondisi yang harus dipenuhi agar operasi dapat menghasilkan hasil yang benar. Terminologi yang kedua adalah post, yang merupakan singkatan dari postcondition; kondisi yang merupakan hasil dari operasi.
Sebagai contoh akan didefinisikan tipe data abstrak yang disebut letterstring yang merupakan kumpulan huruf ‘a’  sampai ‘z’, ‘A’ sampai ‘Z’ dan spasi. Hasil dari letterstring bisa berupa suatu kalimat yang mempunyai arti tertentu, atau juga bisa hanya merupakan kumpulan huruf yang tidak mempunyai arti apa-apa.
Contoh:
  1. SISTEM Informasi
  2. aaaaaiiiiieeeekkkkkk
  3. Algoritma / Pseudocode
  4. Perkalian 3 dengan 2 menghasilkan 6 (enam)
Berdasarkan definisi letterstring maka nomor 1 dan 2 dari contoh di atas adalah letterstring, sedangkan 3 dan 4 bukan letterstring karena mengandung elemen yang nilainya tidak diperkenankan dalam letterstring (/, angka 3,2,6, dan tanda () ).
Batasan lain yang dispesifikasikan adalah jumlah huruf dalam letterstring tidak boleh melebihi 80 huruf, dan letterstring dengan 0 huruf (tanpa huruf) diperkenankan.
Berikut adalah spesifikasi formal dari tipe data abstrak letterstring.
  • Elemen     :  Letterstring hanya boleh terdiri dari huruf ‘a’ sampai ‘z’, ‘A’ sampai ‘Z’ dan spasi.
  • Struktur   :  Terdapat hubungan / struktur linier antara huruf-huruf.
  • Domain     :  Hanya diperkenankan 0 – 80 huruf dalam letterstring.
  • Operasi     :
Leftletter (var s:letterstring) : letter
                           {operasi untuk mengambil 1 huruf yang paling kiri dari letterstring}
                      pre   -     Jumlah huruf dalam letterstring harus lebih dari 0.
                      post  -     leftletter berisi huruf paling kiri dari letterstring, dan jumlah huruf             dalam letterstring akan berkurang 1.
                       Append (I:letter; var s:letterstring)
                  {operasi untuk menambahkan 1 huruf ke posisi paling kanan dari letterstring}
                        pre   -     Jumlah huruf dalam letterstring harus kurang dari 80.
                        post  -     leftletter bertambah 1 huruf pada posisi paling kanan.
empty (s:letterstring) : boolean
                  {operasi untuk mengecek apakah suatu string tidak berisi huruf (kosong)}
                        pre   -     tidak ada.
                        post  -     Jika letterstring tidak berisi huruf maka kondisi akan menghasilkan TRUE, selain itu FALSE.
full (s:letterstring) : boolean
                      {operasi untuk mengecek apakah suatu string sudah penuh}
                        pre   -     tidak ada.
                        post  -     Jika letterstring berisi 80 huruf maka kondisi akan menghasilkan TRUE, selain itu FALSE.
reverse (var s:letterstring)
                      {operasi untuk membalikan posisi huruf-huruf sehingga huruf pertama akan bertukar posisi dengan huruf terakhir dst}
                       pre   -     tidak ada.
                       post  -     Urutan dari huruf-huruf akan merupakan kebalikan dari posisi awalnya.
 dst…

Selengkapnya silahkan klik disini

0 komentar:

Posting Komentar