Diktat_Prosedural_13_StudiKasus

Degree setiap suku harus disimpan secara eksplisit

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: dasarkan keadaan P.Tabsuku } { Derajat hanya mungkin "turun". Search i [P.Maxdegree} terbesar, dengan TabSukui ≠ 0 } KAMUS LOKAL i : integer { indeks traversal } ALGORITMA if P.Degree ≠ -9999 then i ← P.Degree while (i > 0) and (P.TabSukui = 0) do i←i-1 { i = 0 or P.TabSukui ≠ 0 } if (P.TabSukui ≠ 0) then P.Degree ← i else P.Degree ← -9999 { polinom jadi kosong !!!! } { else: polinom kosong : tidak mungkin turun derajatnya } Representasi BERKAIT Dengan representasi berkait, hanya suku yang muncul saja yang disimpan datanya. Degree setiap suku harus disimpan secara eksplisit. Operasi akan lebih efisien jika suku yang muncul diurut mulai dari derajat tertinggi sampai derajat terendah, karena suku dengan derajat paling tinggi dapat diakses secara langsung dan menunjukkan derajat dari polinom. Perhatikan bahwa dengan representasi berkait dan informasi degree secara eksplisit, maka: - hanya suku yang muncul yang disimpan. - terjadi penghematan memori kalau suku-suku [0..N] banyak yang tidak muncul. Sebaliknya, jika semua suku muncul, maka representasi berkait akan lebih banyak memakan memori karena setiap derajat harus disimpan secara eksplisit. - polinom kosong menjadi sangat “natural”. KAMUS { Definisi sebuah polinom P adalah } type address : ... { terdefinisi alamat sebuah suku } type polinom : address { alamat elemen pertama list } type Suku : < Degree : integer, Coefficient : integer, Next : address > { Polinom adalah List Suku, dengan elemen yang selalu terurut menurun menurut Degree } P1, P2, P3 : polinom Dengan catatan bahwa derajat polinom dapat diketahui dari elemen pertama list berkait, dan polinom kosong adalah sebuah list kosong. Dengan demikian, setiap operasi terhadap polinom dapat dijabarkan sebagai berikut : 1. Membentuk sebuah polinom dari pasangan harga yang dibaca dari alat masukan: Data yang dimasukkan adalah pasangan (*) <Degree : integer, Coefficient : integer > (1) <-999, 0> Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 10 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB Proses pembentukan polinom adalah proses sekuensial untuk membaca dari masukan dan melakukan penyisipan dalam list Suku polinom yang selalu terurut menurun menurut Degree. Harus diperhatikan bahwa di sini elemen data yang dimasukkan tidak perlu diurut. Proses membuat sebuah polinom adalah search tempat yang sesuai, sisipkan pada tempat yang sesuai tersebut. Contoh : jika dibaca P1: <1,4>, <2,5>, <5,7>, <8,9>, <3,4>, <-999,0> Polinom yang dibentuk adalah polinom berderajat 9, dengan urutan penyisipan elemen list berkait sehingga terbentuk list berkait sebagai berikut (elemen terakhir selalu menunjuk ke Nil. <1,4> <2,5>, <1,4> <5,7>, <2,5>, <1,4> <8,9>,<5<7>, <2,5>, <1,4> <8,9>,<5,7>, <3,4>,<2,5>, <1,4> Perhatikanlah bahwa proses penyisipan harus memperhitungkan pemasukan data dengan Degree yang sama supaya didapat polinom yang absah. 2. Menuliskan sebuah polinom: Prosesnya adalah proses sekuensial dengan mark, traversal sebuah list polinom. Otomatis harga suku yang dituliskan hanya jika koefisiennya tidak nol, karena hanaa jika koefisien tidak nol maka suku itu muncul dalam list. Maka untuk contoh di atas (polinom terakhir), keluaran secara sederhana adalah : I 8 5...
View Full Document

Ask a homework question - tutors are online