METODE PENELITIAN HASIL DAN PEMBAHASAN
|
|
- Leony Kurniawan
- 7 tahun lalu
- Tontonan:
Transkripsi
1 METODE PENELITIAN Penelitian ini dilakukan dalam beberapa tahap. Tahapan-tahapan tersebut dapat dilihat pada Gambar 1 di bawah ini.. Gambar 1 Metodologi Penelitian. Studi Literatur Studi literatur merupakan tahap paling awal dalam metodologi penelitian ini. Tahapan ini diperlukan untuk mempelajari prinsip dasar aritmatik field prima dan kajian umum lain yang berkaitan dengan field prima tersebut. Analisis Studi Literatur Analisis Implementasi Pengujian Pada tahap ini dilakukan analisis bagaimana cara merepresentasikan bilangan besar dalam komputer dengan kapasitas yang jauh lebih kecil dari bilangan tersebut sehingga efisien dalam alokasi memorinya. Setelah itu dilakukan analisis bagaimana komputer dapat melakukan komputasi terhadap operasi penjumlahan, pengurangan, perkalian, pembagian, reduksi, invers perkalian, dan eksponensial pada bilangan besar dengan waktu yang cepat dan hasil yang benar. Hankerson et al. (2004) mengemukakan bahwa untuk dapat melakukan operasi penjumlahan, pengurangan, perkalian, reduksi, dan invers perkalian pada bilangan p yang sangat besar, setiap anggota pada field prima (F p ) dapat dipandang sebagai integer multi-kata dengan basis 2 W, W adalah ukuran mesin dalam W-bit. Dalam pemrograman, suatu a F p diekspresikan sebagai suatu array dengan array paling kanan merupakan array paling signifikan. Setelah itu dapat dilakukan operasioperasi pada bilangan tersebut dengan menggunakan algoritme tertentu. Sebagai contoh, untuk operasi penjumlahan dilakukan dengan menjumlahkan masing-masing array yang dimulai dari array paling tidak signifikan. Implementasi Tahap ini mencakup bagaimana merepresentasikan bilangan besar dalam basis 2 W dengan W adalah ukuran mesin dalam W-bit dengan menggunakan bahasa C. Selanjutnya dilakukan proses implementasi algoritme penjumlahan, pengurangan, perkalian, pembagian, invers perkalian, reduksi, dan eksponensial pada bilangan tersebut. Lingkungan Pengembangan Sistem dibangun dan diuji dengan menggunakan hardware dan software dengan spesifikasi tertentu. Hardware yang digunakan berupa personal computer (PC) dengan spesifikasi: 1. Prosesor AMD Sempron 902 MHz 2. RAM 512 MB Software yang digunakan yaitu: 1. Sistem Windows XP 2. Bloodshed Dev-C Maple 12 Pengujian Pengujian pada penelitian ini dilakukan dengan menggunakan metode blackbox. Pengujian dilakukan dengan membandingkan antara output yang dihasilkan sistem pada penelitian ini dan output yang dihasilkan software penguji sehingga dapat diketahui nilai kebenaran dari output tersebut. Selanjutnya dari masing-masing operasi dihitung nilai kecepatan eksekusinya untuk mengukur kinerja dari algoritme yang digunakan. -operasi yang akan diuji yaitu penjumlahan, pengurangan, perkalian, pembagian, dan eksponensial. Panjang bit bilangan besar yang diuji yaitu 256 bit, 512 bit, dan 1024 bit untuk masing-masing operasi. Analisis HASIL DAN PEMBAHASAN Mesin yang digunakan pada penelitian ini adalah sebuah komputer 32 bit. Oleh karena itu, basis yang digunakan untuk merepresentasikan bilangan besar dalam komputer adalah Akan tetapi, basis dasar dari bilangan besar adalah 10 sehingga perlu dilakukan proses perubahan basis/konversi dari basis 10 ke dalam basis Proses konversi tersebut dilakukan dengan cara membagi bilangan besar dalam 3
2 basis 10 tersebut dengan 2 32 secara berulangulang sampai hasil baginya bernilai 0. Dari setiap proses pembagian tersebut dihasilkan nilai sisa bagi. Nilai sisa bagi inilah yang merupakan hasil representasi bilangan besar tersebut dalam basis Untuk lebih jelasnya dapat dilihat pada algoritme di bawah ini. Input : (a) 10 Output : (b) 2 32 = (a) n 0 2. While a 0 do b n a mod 2 32 a a / 2 32 n n Return (b 0 b 1 b 2... b n-1 ) Secara matematis representasi bilangan besar adalah sebagai b = b b (n-1) (32) b n-1, dengan b i {0, 1, 2,..., }untuk i = 0, 1,..., (n-1). Representasi ini menunjukkan bahwa digit array paling kanan (b n-1 ) merupakan digit array paling signifikan. Hal ini bertujuan memudahkan proses komputasi terutama ketika terjadi carry atau penambahan digit array yang paling signifikan. Representasi bilangan besar dengan basis 2 32 mempunyai keuntungan yaitu efisien dalam alokasi memori yang terlihat dari banyaknya digit array yang digunakan. Untuk merepresentasikan bilangan 1024 bit hanya dibutuhkan 32 digit array. Semakin sedikit digit array yang digunakan tentu akan mempercepat proses komputasi pada bilangan tersebut. Selain efisien dalam alokasi memori, hasil representasi tersebut merupakan nilai bit dari bilangan besar. Nilai bit ini akan berguna dalam operasi eksponensial terutama yang menggunakan algoritme left to right exponentiation. Tipe data yang digunakan untuk merepresentasikan bilangan besar dalam basis 2 32 adalah mp_int. Struktur mp_int dalam bahasa C dapat dilihat di bawah ini. typedef struct { int used, alloc, sign; unsigned long *dp; } mp_int; Struktur mp_int tersebut dapat dijelaskan sebagai Variabel used menggunakan tipe data int. Variabel ini menunjukkan banyaknya digit array dp yang telah digunakan. Nilai used harus berupa bilangan positif dan tidak boleh melebihi jumlah nilai variabel alloc. Variabel alloc menggunakan tipe data int. Variabel ini menunjukkan banyaknya digit array dp yang tersedia dan siap digunakan. Ketika nilai used melebihi nilai alloc maka terjadi penambahan ukuran array dp sehingga dapat merepresentasikan bilangan multipresisi. Variabel sign menggunakan tipe data int. Variabel ini menunjukkan tanda suatu bilangan mp_int. Nilai variabel ini hanya ada dua yaitu 0 (MP_ZPOS) dan 1 (MP_NEG). MP_ZPOS menandakan bilangan positif dan MP_NEG menandakan bilangan negatif. Variabel dp menggunakan tipe data unsigned long dan merupakan sebuah pointer. Variabel ini dapat mengalokasikan digit array secara dinamis (dapat mengalami penambahan) sehingga dapat merepresentasikan bilangan multipresisi. Implementasi -operasi bilangan besar pada aritmatik field prima diimplementasikan dalam bahasa C. Jenis-jenis tipe data dalam bahasa C dapat dilihat pada Tabel 1 di bawah ini. Tabel 1 Tipe data dalam bahasa C Tipe Data Panjang Bit char 8 short 16 long 32 long long 64 Tabel 1 di atas menunjukkan bahwa bahasa C mempunyai tipe data long long yang mempunyai panjang 64 bit. Tipe data ini berguna dalam merepresentasikan bilangan besar dalam basis Tipe data ini digunakan dalam proses perkalian yaitu sebagai variabel sementara untuk menyimpan hasil perkalian. Bahasa C merupakan bahasa prosedural sehingga operasi-operasi bilangan besar pada aritmatik field prima diimplementasikan dalam bentuk librari yang berisi fungsi-fungsi. Masing-masing fungsi mempunyai return value yang berguna untuk mendeteksi kesalahan. Jenis-jenis return value yang ada dapat dilihat pada Tabel 2 di bawah ini. 4
3 Tabel 2 Return value pada fungsi Return Value MP_OKAY (0) Keterangan Jika fungsi berhasil MP_MEM (-2) Jika fungsi melebihi memori MP_VAL (-3) Jika nilai input tidak valid Librari dalam penelitian ini mempunyai beberapa fungsi yang menjadi dasar dalam proses komputasi. Fungsi-fungsi tersebut yaitu: a. init Fungsi init digunakan untuk melakukan inisialisasi terhadap bilangan mp_int. Proses insialisasi ini akan memberikan nilai default pada variabel-variabel yang ada pada tipe data mp_int. Algoritme fungsi init adalah sebagai Input : mp_int a Output : alokasi memori a sebanyak 10 digit array 1. Alokasi memori untuk 10 digit 2. Jika gagal, return (MP_MEM) 3. For n from 0 to 9 do a n 0 4. a.sign MP_ZPOS 5. a.used 0 6. a.alloc Return ( MP_OKAY ) Algoritme fungsi init di atas menunjukkan bahwa fungsi tersebut akan mengalokasikan memori sebanyak 10 digit array atau setara dengan bilangan 320 bit. Jika terjadi kegagalan, maka fungsi tersebut akan mengembalikan nilai MP_MEM. Fungsi ini memberikan nilai default pada variabel-varibel yang ada dengan a.sign=mp_zpos, a.used=0, a.alloc=10, dan a n = 0, untuk n=0,1,...,9. b. mp_free_mem Fungsi mp_free_mem merupakan kebalikan dari fungsi init. Fungsi ini digunakan untuk mengembalikan memori yang telah dialokasikan ke kondisi semula sehingga memori tersebut dapat digunakan kembali. Algoritme fungsi mp_free_mem adalah sebagai Input : mp_int a Output : memori a didealokasi 1. For n from 0 to a.used-1 do a n 0 2. Free alokasi memori pada a 3. a.used 0 4. a.alloc 0 5 a. sign MP_ZPOS 6. Return ( MP_OKAY ) Algoritme fungsi mp_free_mem di atas mengembalikan memori yang telah terpakai. Selanjutnya fungsi tersebut akan memberikan nilai pada variabel-varibel yang ada dengan a.sign = MP_ZPOS, a.used = 0, dan a.alloc =0. c. mp_grow Fungsi mp_grow digunakan untuk menambah digit array ketika memori yang akan dipakai melebihi memori yang telah dialokasikan (alloc < used). Algoritme fungsi mp_grow adalah sebagai Input : mp_int a dan int b Output : alokasi memori a ditambahkan sampai b digit array 1. If a.alloc < b Realokasikan digit array a menjadi b For n from a.used to b do a n 0 a.alloc b 2. Return ( MP_OKAY ) Algoritme fungsi mp_grow di atas memeriksa banyaknya memori yang dialokasikan terlebih dahulu. Jika banyaknya memori yang ingin ditambahkan lebih besar dari memori yang telah dialokasikan, maka fungsi tersebut akan mengalokasikan kembali memori sebanyak memori yang ingin ditambahkan. d. mp_clear_zero Fungsi mp_clear_zero digunakan untuk menghilangkan semua nilai 0 pada digit array paling signifikan yang merupakan nilai tidak penting. Algoritme fungsi mp_clear_zero adalah sebagai Input : mp_int a Output : semua nilai 0 yang tidak penting pada a dhilangkan 1. If a a.used-1 = 0 While a.used 0 and a a.used-1 = 0 a a.used a a.used If a.used = 0 a.sign MP_ZPOS 3. Return ( MP_OKAY ) Algoritme fungsi mp_clear_zero di atas 5
4 memeriksa nilai pada digit array paling signifikan. Jika bernilai 0, maka fungsi tersebut akan melakukan proses looping sampai digit array tidak bernilai 0. Selama proses looping, nilai a.used berkurang 1. Librari dalam penelitian ini mempunyai beberapa fungsi yang digunakan sebagai operasi dasar dalam proses komputasi. Fungsi-fungsi tersebut yaitu: a. mp_copy Fungsi mp_copy digunakan sebagai operasi sama dengan (=) pada bilangan mp_int. Fungsi ini akan melakukan proses copy dari suatu bilangan mp_int ke bilangan mp_int yang lainnya. Algoritme fungsi mp_copy adalah sebagai Output : b = a 1. If b.alloc < a.used mp_grow ( b, a.used) 2. For n from 0 to a.used b n a n 3. b.used a.used 4. b.alloc a.alloc 5 b.sign a.sign Algoritme fungsi mp_copy di atas memeriksa jumlah alokasi memori pada bilangan b terlebih dahulu. Jika alokasi memori pada b lebih kecil dari a, maka dilakukan proses penambahan alokasi memori pada b sampai sebanyak a.used. Selanjutnya semua variabel yang ada pada b diberikan nilai yang sama dengan a. b. mp_zero Fungsi mp_zero digunakan untuk memberikan nilai 0 pada bilangan mp_int. Algoritme fungsi mp_zero adalah sebagai Input : mp_int a Output : a = 0 1. a.used = 0 2. For n from 0 to a.used a n 0 3 a. sign MP_ZPOS c. mp_cmp Fungsi mp_cmp digunakan untuk membandingkan dua bilangan mp_int. Fungsi ini mempunyai tiga return value. Ketiga return value tersebut yaitu MP_LT (-1) untuk menyatakan lebih kecil, MP_GT (1) untuk menyatakan lebih besar, dan M P_EQ (0) untuk menyatakan sama dengan. Algoritme fungsi mp_cmp adalah sebagai Output : nilai perbandingan antara a dan b 1. If a.used > b.used Return ( MP_GT ) 2. if a.used < b.used Return ( MP_LT ) 3. For n from a.used-1 to 0 If a n > b n Return ( MP_GT ) if a n < b n Return ( MP_LT ) Return ( MP_EQ ) Algoritme fungsi mp_cmp di atas membandingkan jumlah memori yang digunakan oleh a dan b. Jika memori yang digunakan a lebih banyak dari memori yang digunakan b, maka a > b dan sebaliknya jika memori yang digunakan b lebih banyak dari memori yang digunakan a, maka a < b. Jika memori yang digunakan keduanya sama, maka akan dibandingkan dari digit array paling signifikan antara keduanya. Jika semua nilai digit array sama, maka a = b. Librari dalam penelitian ini mempunyai beberapa operasi aritmatik dalam field prima. -operasi tersebut yaitu: a. Penjumlahan penjumlahan yang terdapat dalam librari dibagi menjadi beberapa fungsi. Fungsifungsi tersebut yaitu: 1. s_mp_add Fungsi s_mp_add digunakan untuk melakukan proses penjumlahan dua bilangan mutlak mp_int. Algoritme yang digunakan seperti yang diajarkan di sekolah dasar. Fungsi ini melakukan proses penjumlahan antar digit array sebanyak n sehingga kompleksitasnya adalah O(n) dengan n adalah banyaknya digit array. Algoritme fungsi s_mp_add adalah sebagai Output : c = a + b 1. If a.used > b.used min b.used max a.used x a 6
5 2. min a.used max b.used x b 3 If c.alloc < max +1 mp_grow(c,max +1) 4. u 0 5. For n from 0 to min-1 c n ( a n + b n + u) mod basis u ( a n + b n + u) / basis 6. For n from min to max-1 c n (x n + u) mod basis u (x n + u) / basis 7. If u > 0 c n u c.used max c.used max 9. Return ( MP_OKAY ) Algoritme fungsi s_mp_add di atas melakukan proses penjumlahan antar digit array yang dimulai dari digit array paling tidak signifikan. Jika hasil penjumlahannya melebihi basis yang digunakan, maka akan menghasilkan nilai carry 1. Nilai carry ini akan ditambahkan ke penjumlahan digit array berikutnya. 2. mp_add Fungsi mp_add merupakan fungsi penjumlahan dua bilangan mp_int dengan melihat tanda dari bilangan tersebut. Beberapa kemungkinan tanda yang dihasilkan dari penjumlahan dua bilangan mp_int dapat dilihat pada Tabel 3. Algoritme fungsi mp_add adalah sebagai Output : c = a + b 1. If a.sign = b.sign c.sign a.sign c a + b (s_mp_add) 2. If a < b c.sign b.sign c b - a (s_mp_sub) if a > b c.sign a.sign c a - b (s_mp_sub) c.sign MP_ZPOS c 0 (mp_zero) 3. Return ( MP_OKAY ) Algoritme fungsi mp_add di atas melakukan penjumlahan dua bilangan mp_int dengan melihat tanda dari kedua bilangan tersebut. Jika kedua bilangan mempunyai tanda yang sama, maka operasi yang dilakukan adalah penjumlahan dan hasil yang diperoleh mempunyai tanda yang sama dengan bilangan yang ditambahkan. Akan tetapi, jika kedua bilangan mempunyai tanda yang berbeda, maka operasi yang dilakukan adalah operasi pengurangan dan tanda dari hasil yang diperoleh bergantung pada perbandingan kedua bilangan tersebut. Tabel 3 Tanda hasil fungsi mp_add Tanda a b Ket Tanda + + c = a + b c = a + b a < b c = b - a a < b c = b - a a > b c = a - b a > b c = a- b a = b c = a = b c = mp_add_mod Fungsi mp_add_mod merupakan fungsi penjumlahan yang digunakan dalam field prima dimana hasil yang diperoleh harus merupakan anggota field tersebut. Jika hasil penjumlahan yang diperoleh bukan merupakan anggota dalam field prima tersebut, maka hasil tersebut harus dilakukan proses reduksi dengan bilangan p. Algoritme fungsi mp_add_mod adalah sebagai Input : mp_int a, mp_int b dan mp_int p Output : c = (a + b) mod p 1. c a + b (mp_add) 2. If c = p c 0 (mp_zero) 3. if c > p c c p (mp_sub) 4. Return ( MP_OKAY ) b. Pengurangan pengurangan yang terdapat dalam librari dibagi menjadi beberapa fungsi. Fungsifungsi tersebut yaitu: c 7
6 1. s_mp_sub Fungsi s_mp_sub digunakan untuk melakukan proses pengurangan dua bilangan mutlak mp_int. Fungsi ini melakukan pengurangan antar digit array sebanyak n sehingga kompleksitasnya adalah O(n) dengan n adalah banyaknya digit array. Algoritme fungsi s_mp_sub adalah sebagai Output : c = a - b 1. min b.used 2. max a.used 3. If c.alloc < max mp_grow(c,max ) 4. u 0 5. For n from 0 to min-1 If a n b n + u c n a n - b n - u u 0 c n a n + basis - b n u u 1 6. For n from min to max-1 If a n u c n a n - u u 0 c n a n + basis u u 1 7. c.used max 8. mp_clear_zero ( c ) 9. Return ( MP_OKAY ) Algoritme fungsi s_mp_sub di atas melakukan proses pengurangan antar digit array yang dimulai dari digit array paling tidak signifikan. Jika nilai digit array a lebih besar dari digit array b ditambah carry, maka akan menghasilkan nilai carry 1. Nilai carry ini akan digunakan untuk mengurangi digit array a berikutnya. 2. mp_sub Fungsi mp_sub merupakan fungsi pengurangan dua bilangan mp_int dengan melihat tanda dari bilangan tersebut. Beberapa kemungkinan tanda yang dihasilkan dari pengurangan dua bilangan mp_int dapat dilihat pada Tabel 4. Algoritme fungsi mp_sub adalah sebagai Output : c = a b 1. If a.sign b.sign c.sign a.sign c a + b (s_mp_add) 2. If a < b c.sign ~ a.sign c b - a (s_mp_sub) if a > b c.sign a.sign c a - b (s_mp_sub) c.sign MP_ZPOS c 0 (mp_zero) 3. Return ( MP_OKAY ) Algoritme fungsi mp_sub di atas melakukan pengurangan dua bilangan mp_int dengan melihat tanda dari kedua bilangan tersebut. Jika kedua bilangan mempunyai tanda yang berbeda, maka operasi yang dilakukan adalah penjumlahan dan hasil yang diperoleh mempunyai tanda yang sama dengan bilangan yang dikurangi. Akan tetapi, jika kedua bilangan mempunyai tanda yang sama, maka operasi yang dilakukan adalah operasi pengurangan dan tanda dari hasil yang diperoleh bergantung pada perbandingan kedua bilangan tersebut. Tabel 4 Tanda hasil fungsi mp_sub Tanda a b Ket Tanda + - c = a + b c = a + b a < b c = b - a a < b c = b - a a > b c = a - b a > b c = a- b a = b c = a = b c = mp_sub_mod Fungsi mp_sub_mod merupakan fungsi pengurangan yang digunakan dalam field prima dimana hasil yang diperoleh harus merupakan anggota field tersebut. Jika hasil yang diperoleh bukan merupakan anggota dalam field prima tersebut, maka hasil tersebut harus dilakukan proses reduksi dengan bilangan p. Algoritme c 8
7 fungsi mp_sub_mod adalah sebagai Input : mp_int a, mp_int b dan mp_int p Output : c = (a - b) mod p 1. c a - b (mp_sub) 2. if c.sign = MP_NEG c c + p (mp_add) 3. Return ( MP_OKAY ) c. Perkalian perkalian yang terdapat dalam librari dibagi menjadi beberapa fungsi. Fungsifungsi tersebut yaitu: 1. s_mp_mul Fungsi s_mp_mul merupakan fungsi perkalian dua bilangan mutlak mp_int yang menggunakan algoritme schoolbook. Jika dua bilangan mp_int a dan b mempunyai digit array yang sama sebanyak n, maka banyaknya perkalian antar digit array adalah n 2 dan banyaknya penjumlahan adalah (n-1) 2 (Weimerskirch & Paar 2006). Algoritme fungsi s_mp_mul adalah sebagai Output : c = a b 1. Inisialisasi x dan y 2. For n from 0 to b.used-1 u 0 For m from 0 to a.used-1 x m+n (a m b n + u) mod basis u (a m b n + u) / basis If u > 0 x m+n u x.used m + n +1 x.used m + n y y + x (mp_add) x 0 (mp_zero) 3. c y 4. Bersihkan variabel sementara 5. Return ( MP_OKAY ) Algoritme fungsi s_mp_mul di atas menunjukkan bahwa fungsi tersebut melakukan perkalian bilangan a dengan seluruh digit array b dimana setiap perkalian menghasilkan bilangan x. Hasil akhir dari fungsi ini merupakan penjumlahan seluruh bilangan x yang dihasilkan. 2. s_mp_sqr Fungsi s_mp_sqr merupakan fungsi kuadrat atau fungsi perkalian khusus dimana nilai multiplicand sama dengan nilai multiplier. Untuk bilangan n-digit array, diperlukan (n 2 + n)/ 2 perkalian tunggal. Hal ini tentu akan lebih baik jika dibandingkan dengan perkalian biasa yang memerlukan n 2 perkalian tunggal. Algoritme fungsi s_mp_sqr adalah sebagai Input : mp_int a Output : b = a 2 1. Inisialisasi c (init) 2. c.used 2 a.used 3. For i from 0 to a.used-1 r c 2i + a i 2 c 2i r mod basis u r / basis k 1 For j from i + 1 to a.used-1 r 2 a i a j + u + c 2i + k c 2i + k r mod basis u r / basis k k +1 While u > 0 do r u + c 2i + k c 2i + k r mod basis u r / basis k k mp_clear_zero(c) 5. b c 6. Bersihkan variabel sementara 7. Return ( MP_OKAY ) 3. mp_mul Fungsi mp_mul merupakan fungsi perkalian dua bilangan mp_int dengan melihat tanda dari kedua bilangan tersebut. Algoritme fungsi mp_mul adalah sebagai Output : c = a b 1. c = a b (s_mp_mul) 2. If a.sign = b.sign c.sign MP_ZPOS 3. If c= 0 c.sign MP_ZPOS c.sign MP_NEG 4. Return ( MP_OKAY ) Algoritme fungsi mp_mul di atas mengalikan dua bilangan mp_int dengan melihat tanda dari kedua bilangan tersebut. Jika kedua bilangan mempunyai tanda yang sama, maka hasil yang diperoleh bernilai 9
8 positif. Akan tetapi, jika kedua bilangan mempunyai tanda yang berbeda maka hasil yang diperoleh bernilai negatif tetapi jika salah satu bilangannya bernilai 0 maka hasil yang diperoleh bernilai positif. 4. mp_mul_mod Fungsi mp_mul_mod merupakan fungsi perkalian yang digunakan dalam field prima dimana hasil yang diperoleh harus merupakan anggota field tersebut. Jika hasil yang diperoleh bukan merupakan anggota dalam field tersebut, maka hasil tersebut harus dilakukan proses reduksi. Algoritme fungsi mp_mul_mod adalah sebagai Input : mp_int a, mp_int b, dan mp_int p Output : c =( a b) mod p 1. c = a b (mp_mul) 2. If c = a c 0 ( mp_zero) 3. if c > p c c mod p (mp_mod) 4. Return ( MP_OKAY ) d. Pembagian pembagian yang terdapat dalam librari dibagi menjadi beberapa fungsi. Fungsifungsi tersebut yaitu: 1. mp_div Fungsi mp_div digunakan untuk melakukan operasi pembagian antara bilangan mutlak mp_int a dan bilangan mutlak mp_int b. Fungsi ini akan menghasilkan nilai hasil bagi dan sisa bagi. Algoritme yang digunakan pada fungsi ini adalah algoritme pembagian klasik seperti yang diajarkan di sekolah dasar hanya saja sebelum dilakukan proses pembagian terdapat proses normalisasi. Proses normalisasi dilakukan agar nilai digit array paling signifikan b lebih besar atau sama dengan basis/2 (b n basis/2) dengan mengalikan suatu konstanta k pada a dan b. Nilai k sebaiknya merupakan kelipatan 2 sehingga operasinya hanya shift. Dengan adanya proses normalisasi ini, nilai perkiraan hasil bagi (q ) akan mendekati nilai hasil bagi sebenarnya (q). Jika digit array a = digit array b + 1 maka nilai q diperoleh dari persamaan : anb + a q' = min bn 1 n 1, B 1 B adalah basis yang digunakan. Jika pada persamaan di atas nilai b n-1 a / b, maka q -2 q q (Knuth 1998, diacu dalam Welschenbach 2005). Dengan asumsi bahwa nilai b n-1 mendekati nilai B, maka nilai q adalah q -2 q q. Proses normalisasi pada fungsi mp_div hanya akan mengubah nilai sisa bagi pada proses pembagian tanpa mengubah nilai hasil bagi. Oleh karena itu, untuk mendapatkan nilai sisa bagi yang sebenarnya diperlukan proses denormalisasi yaitu dengan membagi sisa bagi dengan k. Algoritme fungsi mp_div dapat dilihat pada Lampiran mp_div_mod Fungsi mp_div_mod merupakan fungsi pembagian yang digunakan dalam field prima dimana pembagian suatu bilangan a oleh b merupakan perkalian bilangan a dengan b -1. Jika hasil yang diperoleh bukan merupakan anggota dalam field tersebut, maka hasil tersebut harus dilakukan proses reduksi. Algoritme fungsi mp_div_mod adalah sebagai Input : mp_int a, mp_int b, dan mp_int p Output : c =( a / b) mod p 1. Inisialisasi d 2. d b -1 (mp_invmod) 3. c a b -1 (mp_mul) 4. If c = a c 0 ( mp_zero) 5. if c > a c c mod p (mp_mod) 6. Return ( MP_OKAY ) e. Reduksi Reduksi merupakan operasi yang dilakukan untuk mencari nilai sisa bagi dari pembagian dua bilangan mp_int sehingga hasil yang diperoleh merupakan anggota field prima. Fungsi dalam librari yang digunakan untuk melakukan operasi reduksi yaitu: mp_mod Algoritme fungsi mp_mod menggunakan algoritme pembagian klasik sama seperti pada fungsi mp_div dimana output dari fungsi mp_div adalah nilai hasil bagi dan nilai sisa bagi. Nilai sisa bagi inilah yang diperlukan oleh fungsi mp_mod. 10
9 f. Invers Perkalian Invers perkalian suatu bilangan mp_int a adalah a -1 dengan a a -1 = 1. Nilai invers tersebut diperlukan dalam operasi pembagian pada field prima. Fungsi dalam librari yang digunakan untuk melakukan operasi invers perkalian yaitu: mp_invmod Fungsi mp_invmod digunakan untuk mencari nilai invers perkalian pada suatu bilangan mp_int a pada field prima p. Algoritme yang digunakan fungsi ini adalah extended Euclidean. Algoritme ini menggunakan operasi pembagian dalam prosesnya sehingga membutuhkan cost yang cukup tinggi. Algoritme fungsi mp_invmod adalah sebagai Input : mp_int a dan mp_int p Output : c = a -1 1.Inisialisasi q, r, y 1, y 2, mul, y, t a, dan t b 2. t a p 3. t b a 4. y If b=0 Return (MP_VAL) 6. While t b 0 q t a / t b r t a mod t b y y 1 q y 2 t a t b t b r y 1 y 2 y 2 y 7. c y 1 mod p 8. Bersihkan variabel sementara 9. Return ( MP_OKAY ) g. Eksponensial eksponensial merupakan operasi yang berperan penting dalam kriptografi kunci asimetrik. ini digunakan dalam proses enkripsi dan dekripsi. Fungsi dalam librari yang digunakan untuk melakukan operasi eksponensial yaitu: mp_exp_mod Fungsi mp_exp_mod merupakan fungsi eksponensial yang digunakan pada field prima. Algoritme yang digunakan pada fungsi ini adalah left to right exponentiation. Algoritme ini bekerja dengan menggunakan nilai biner dari bilangan pemangkatnya (b). Algoritme ini melakukan proses perkalian multipresisi sebanyak n + t dengan n adalah panjang bit b dan t adalah banyaknya bit b yang bernilai 1. Algoritme fungsi mp_exp_mod adalah sebagai Input : mp_int a, mp_int b, dan mp_int p Output : c = a b mod p 1. c 1 2. x 1 << bitlength(basis) For i from b.used-1 to 0 temp b i For j from 0 to bitlength(basis)-1 c c 2 mod p If temp & x 0 c (c a) mod p temp temp << 1 4. Return ( MP_OKAY ) Pengujian Pengujian dilakukan dengan cara membandingkan output yang dihasilkan sistem dengan output yang dihasilkan oleh software pembanding sehingga dapat diketahui nilai kebenaran dari output tersebut. Software yang digunakan sebagai pembanding adalah MAPLE 12. Pengujian dilakukan sebanyak 10 kali untuk masing-masing operasi dan dihasilkan output yang benar. Untuk mengetahui kinerja sistem, dihitung nilai total waktu eksekusinya. waktu eksekusi dari hasil pengujian terhadap masing-masing fungsi aritmatik field prima dapat dilihat pada tabel-tabel di bawah ini. Tabel 5 waktu eksekusi fungsi penjumlahan pada field prima Bit Konversi Basis (s) ( s) (s) Tabel 5 di atas menunjukkan bahwa total waktu konversi basis (dari basis 10 ke basis 2 32 kemudian dikonversi kembali dari basis 2 32 ke basis 10) jauh lebih besar dari waktu operasi penjumlahan. Oleh karena itu, proses konversi basis sangat mempengaruhi total waktu eksekusi operasi penjumlahan. 11
10 Tabel 6 waktu eksekusi fungsi pengurangan pada field prima Bit Konversi Basis (s) ( s) (s) Tabel 6 di atas menunjukkan bahwa total waktu eksekusi operasi pengurangan sama seperti operasi penjumlahan. Hal ini dikarenakan banyaknya proses pada operasi pengurangan dan operasi penjumlahan adalah sama atau dengan kata lain kedua proses ini memiliki kompleksitas yang sama. Tabel 7 waktu eksekusi fungsi perkalian pada field prima Bit Konversi Basis (s) ( s) (s) Tabel 7 di atas menunjukkan bahwa total waktu eksekusi operasi perkalian tidak berbeda jauh dengan operasi penjumlahan dan pengurangan. Hal ini disebabkan perbandingan antara total waktu konversi basis dan waktu operasi sangat besar. Akan tetapi, jika dilihat pada waktu operasinya, waktu operasi pada perkalian jauh lebih besar dari operasi penjumlahan dan pengurangan. Tabel 8 waktu eksekusi fungsi pembagian pada field prima Bit Konversi Basis (s) ( s) (s) Tabel 8 di atas menunjukkan bahwa total waktu konversi basis pada operasi pembagian lebih kecil dari pada waktu operasinya tetapi perbedaannya tidak terlalu signifikan. Akan tetapi, jika hanya dilihat pada waktu operasinya, operasi pembagian memerlukan waktu yang jauh lebih besar dari operasi perkalian. Hal ini disebabkan jumlah proses pada operasi pembagian jauh lebih banyak dari operasi perkalian dimana pada operasi pembagian terdapat proses invers dan juga perkalian. Tabel 9 waktu eksekusi fungsi eksponensial pada field prima Bit Konversi Basis (s) ( s) (s) Tabel 9 di atas menunjukkan bahwa waktu operasi pada operasi eksponensial jauh lebih besar dari total waktu konversi basisnya. Hal itu menyebabkan total waktu eksekusi operasi eksponensial tidak berbeda jauh dengan waktu operasinya. KESIMPULAN DAN SARAN Kesimpulan Bilangan besar direpresentasikan dalam basis 2 32 pada komputer 32 bit. Representasi ini akan membutuhkan jumlah digit array paling sedikit bila dibandingkan dengan representasi lainnya sehingga efisien dalam penggunaan memori. Untuk bilangan 1024 bit hanya dibutuhkan 32 digit array. Semakin sedikit digit array yang dibutuhkan untuk merepresentasikan bilangan besar, maka semakin cepat komputasi pada bilangan besar tersebut. Dari pengujian yang dilakukan sebanyak 10 kali untuk masing-masing operasi pada field prima, sistem menghasilkan output yang benar. Pada bilangan 1024 bit, operasi penjumlahan membutuhkan waktu eksekusi sebesar s, operasi pengurangan membutuhkan waktu eksekusi sebesar s, operasi perkalian membutuhkan waktu eksekusi sebesar s, operasi pembagian membutuhkan waktu eksekusi sebesar s, dan operasi pengurangan membutuhkan waktu eksekusi sebesar s. 12
IMPLEMENTASI ARITMATIK FIELD PRIMA DENGAN BAHASA C HARYADI
IMPLEMENTASI ARITMATIK FIELD PRIMA DENGAN BAHASA C HARYADI DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2011 IMPLEMENTASI ARITMATIK FIELD PRIMA
Lebih terperinciSoftware yang digunakan yaitu: 1. Sistem Operasi Windows 7 2. Bloodshed Dev-C Notepad++ 4. Winmerge
dapat dilihat pada Gambar 1. Penjelasan untuk masing-masing langkah adalah sebagai : Studi Literatur Tahapan ini diperlukan untuk mempelajari prinsip dasar aritmetika optimal extension field. Selain itu,
Lebih terperinciARSITEKTUR SISTEM KOMPUTER. Wayan Suparta, PhD https://wayansuparta.wordpress.com/ 3 9 April 2018
ARSITEKTUR SISTEM KOMPUTER Wayan Suparta, PhD https://wayansuparta.wordpress.com/ 3 9 April 2018 Penjumlahan dan Pengurangan Operasi Penjumlahan Operasi Pengurangan Aturan umum 0 + 0 = 0 0 + 1 = 1 1 +
Lebih terperinciIMPLEMENTASI ARITMETIKA OPTIMAL EXTENSION FIELD (OEF) MENGGUNAKAN BAHASA PEMROGRAMAN C LUQMAN AZIZ FEBRIAN NUGRAHA
IMPLEMENTASI ARITMETIKA OPTIMAL EXTENSION FIELD (OEF) MENGGUNAKAN BAHASA PEMROGRAMAN C LUQMAN AZIZ FEBRIAN NUGRAHA DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN
Lebih terperinciArithmatika Komputer. Pertemuan 3
Arithmatika Komputer Pertemuan 3 2.3. Aritmetika Integer Membahas operasi aritmetika (Sistem Komplemen Dua) Penjumlahan Pengurangan Perkalian Pembagian Penjumlahan dan Pengurangan Penambahan pada complement
Lebih terperinciTipe Data dan Variabel
PRAKTIKUM 3 Tipe Data dan Variabel A. TUJUAN PEMBELAJARAN 1. Menjelaskan tentang beberapa tipe data dasar (jenis dan jangkauannya) 2. Menjelaskan tentang Variabel 3. Menjelaskan tentang konstanta 4. Menjelaskan
Lebih terperinciHASIL DAN PEMBAHASAN. Algoritma Modular Exponentiation mempunyai kompleksitas sebesar O((lg n) 3 ) (Menezes et al. 1996).
pengukuran running time dari setiap perlakuan. Ulangan setiap perlakuan dilakukan sebanyak 10 kali untuk masing-masing RSA dan RSA-. Lingkungan Penelitian Perangkat keras dan perangkat lunak yang digunakan
Lebih terperinciDesain Class Dan Analisis Operator Pada Class Integer Tak Terbatas
J. Math. and Its Appl. ISSN: 1829-605X Vol. 1, No. 2, Nov. 2004, 21 27 Desain Class Dan Analisis Operator Pada Class Integer Tak Terbatas Bandung Arry Sanjoyo Jurusan Matematika FMIPA - ITS email:bandung@matematika.its.ac.id
Lebih terperinciBab 2. Dasar-Dasar Pemrograman C
Bab 2. Dasar-Dasar Pemrograman C Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 Overview Tipe Data Standar (Standart Data Type) Aturan Pendefinisian Identifier Variabel Mendeklarasikan
Lebih terperinciPengenalan C++ Oleh : Dewi Sartika
Pengenalan C++ Oleh : Dewi Sartika Pendahuluan Bahasa Pemrograman C++ merupakan bahasa tingkat menengah dimana bahasa ini didasarkan atas bahasa C, keistimewaan dari bahasa C++ adalah bahasa ini mendukung
Lebih terperinciTipe Data dan Variabel. Dosen Pengampu Muhammad Zidny Naf an, M.Kom
Tipe Data dan Variabel Dosen Pengampu Muhammad Zidny Naf an, M.Kom Format Pseudocode Lengkap Judul program/algoritma PROGRAM Euclidean Program untuk mencari GCD dari dua buah bilangan bulat positif m dan
Lebih terperinciTipe Data dan Operator
Tipe Data dan Operator Dasar Algoritma dan Pemrogrman Eka Maulana, ST, MT, MEng. Klasifikasi Tipe Data 1 Tipe Data Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan dalam
Lebih terperinciKegunaan Chinese Remainder Theorem dalam Mempercepat dan Meningkatkan Efisiensi Peforma Sistem Kriptografi RSA
Kegunaan Chinese Remainder Theorem dalam Mempercepat dan Meningkatkan Efisiensi Peforma Sistem Kriptografi RSA Shauma Hayyu Syakura NIM : 13507025 Program Studi Teknik Informatika Sekolah Teknik Elektro
Lebih terperinciIII PEMBAHASAN. enkripsi didefinisikan oleh mod dan menghasilkan siferteks c.
enkripsi didefinisikan oleh mod dan menghasilkan siferteks c 3 Algoritme 3 Dekripsi Untuk menemukan kembali m dari c, B harus melakukan hal-hal berikut a Menggunakan kunci pribadi a untuk menghitung mod
Lebih terperinciBAB III HASIL DAN PEMBAHASAN
BAB III HASIL DAN PEMBAHASAN Pada bab ini akan dijelaskan hal-hal yang berhubungan dengan masalah dan bagaimana mengeksplorasinya dengan logaritma diskret pada menggunakan algoritme Exhaustive Search Baby-Step
Lebih terperinciA. TUJUAN PEMBELAJARAN
Praktikum 4 Alokasi Memori A. TUJUAN PEMBELAJARAN Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami perbedaan penggunaan tipe data array dengan pointer menggunakan alokasi
Lebih terperinciBAB III ANALISIS DAN PERANCANGAN. yang ada pada sistem dimana aplikasi dibangun, meliputi perangkat
41 BAB III ANALISIS DAN PERANCANGAN 3.1 Analisis Masalah Analisis masalah bertujuan untuk mengidentifikasi permasalahanpermasalahan yang ada pada sistem dimana aplikasi dibangun, meliputi perangkat keras
Lebih terperinciAlgoritma & Pemrograman
Algoritma & Pemrograman Bahasa Pemrograman C Oleh: Supatman HP: 081578865611 Bahasa C Ditemukan Oleh: Dennis M. Ritche (1972) Kemampuan C Portable Kecepatan Library Programming Sistem Operasi (Unix, MicroShell,
Lebih terperinciPengenalan Bahasa C. 1. Struktur penulisan program. #include < [library2.h] > #define [nama2] [nilai] ;
Pengenalan Bahasa C 1. Struktur penulisan program #include < [library1.h] > #include < [library2.h] > #define [nama1] [nilai] ; #define [nama2] [nilai] ; [global variables] [functions] void main(void)
Lebih terperinciREPRESENTASI DATA. Arsitektur Komputer
REPRESENTASI DATA Arsitektur Komputer Abstraksi Data Raw data kehidupan manusia - Personal data input [lewat 5 indra] - Mass media [audio/visual] data input [populer, ilmiah, fiksi, riset, dll.] Pengertian
Lebih terperinciDasar Pemrograman Java
Dasar Pemrograman Java Tessy Badriyah, SKom. MT. http://lecturer.eepis-its.edu/~tessy Tujuan Pembelajaran Penggunaan Komentar dalam program Memahami perbedaan identifier yang valid dan yang tidak valid
Lebih terperinciAlgoritma dan Struktur data
Pertemuan 2, Algoritma dan Struktur data Tenia wahyuningrum & Sisilia Thya Safitri VISI ST3 TELKOM Menjadi Perguruan Tinggi yang Unggul di Bidang Teknologi Telematika dan membentuk insan yang berkarakter
Lebih terperinciVARIABEL, TIPE DATA DAN EKSPRESI Bab 2
VARIABEL, TIPE DATA DAN EKSPRESI Bab 2 2.1 IDENTIFIER Indentifier adalah nama yang diberikan untuk nama objek, nama fungsi, nama variable, dll ( sifatnya case sensitive ). Identifier pada C++ terdiri dari
Lebih terperinciSejarah C. Dirancang oleh Denis M. Ritchie tahun 1972 di Bell Labs.
Sejarah C Dirancang oleh Denis M. Ritchie tahun 1972 di Bell Labs. Pengembangan dari bahasa BCPL(Martin Richard, 1967) dan bahasa B (Ken Thompson, 1970) Dibantu Brian W. Kernighan, Ritchie menulis buku
Lebih terperinciReview : Sifat Implementasi Linear List dengan Array
Pertemuan 10 Linked List Disusun oleh : PH. Prima Rosa, S.Si., M.Sc. Sri Hartati Wijono, S.Si. 2003/2004 Pert. 10 Struktur Data - FMIPA USD - 2003 Hal. 1 Review : Sifat Implementasi Linear List dengan
Lebih terperinciPertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN
Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN I. Elemen-Elemen Dalam Bahasa Pemrograman Berikut adalah elemen-elemen pada bahasa pemrograman: Berikut adalah element-element pada bahasa pemrograman: 1. Aturan
Lebih terperinciModul Praktikum Algoritma dan Struktur Data
Tujuan : BAB 1 Struct, Array, dan Pointer 1. Mahasiswa memahami apakah yang dimaksud dengan struktur data. 2. Mahasiswa memahami apakah yang dimaksud dengan algoritma. 3. Mengingat kembali array, struktur,
Lebih terperinciPemrograman Berbasis Objek Operator dan Assignment
Operator dan Assignment Macam-macam macam Operator Arithmetic Op. : + - * / % Relational Op. : > >= < >>> Conditional
Lebih terperinciPRAKTIKUM 3 DASAR PEMROGRAMAN C
PRAKTIKUM 3 DASAR PEMROGRAMAN C A. TUJUAN 1. Menjelaskan tentang beberapa tipe data dasar (jenis dan jangkauannya) 2. Menjelaskan tentang Variabel 3. Menjelaskan tentang konstanta 4. Menjelaskan tentang
Lebih terperinciKisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut
Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut 1. Pengenalan Bahasa C++ a. Elemen Bahasa C+ Bahasa C++ ditulis dari beberapa elemen, antara lain: Pernyataan Satu atau beberapa ekspresi
Lebih terperinciTipe Data dan Operator dalam Pemrograman
Diktat Pelatihan Olimpiade Komputer Oleh Fakhri Pertemuan ke 2 : Tipe Data dan Operator dalam Pemrograman 2.1 Tipe Data Tipe data adalah jenis dari suatu nilai pada pemrograman, baik itu angka, tulisan,
Lebih terperinciPRAKTIKUM 2. perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh
PRAKTIKUM 2 1. Variabel Pengenal (identifier) merupakan nama yang biasa digunakan untuk suatu perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh pemrogram. Variabel adalah suatu
Lebih terperinciOPERASI PERNYATAAN KONDISI
OPERASI PERNYATAAN KONDISI A. Pernyataan IF pernyataan if mempunyai pengertian, jika kondisi bernilai benar, maka perintah dikerjakan dan jiak tidak memenuhi syarat maka diabaikan. Dapat dilihat dari diagram
Lebih terperinciPengantar Bahasa C. Tim Pengajar ASD Semester I 2017/ /7/2017 FN/ASD/Sem /2018 1
Pengantar Bahasa C Tim Pengajar ASD Semester I 2017/2018 9/7/2017 FN/ASD/Sem. 1 2017/2018 1 C Programming Language Sejarah Singkat Dikembangkan oleh Dennis Ritchie dan Brian Kernighan pada awal 1970an
Lebih terperinciLecture Notes Algoritma dan Pemrograman
Menukar Isi Dua Variabel (ed. ) / Lecture Notes Algoritma dan Pemrograman Menukar Isi Dua Variabel Thompson Susabda Ngoen Salah satu kegiatan pengolahan data adalah menukar isi dua variabel, misalnya pada
Lebih terperinciPerbandingan Algoritma Kunci Nirsimetris ElGammal dan RSA pada Citra Berwarna
Perbandingan Algoritma Kunci Nirsimetris ElGammal dan RSA pada Citra Berwarna Whilda Chaq - 13511601 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,
Lebih terperinciOperator dan Assignment
Operator dan Assignment Macam-macam Operator Arithmetic Op. : + - * / % Relational Op. : > >= < >>> Conditional Op.
Lebih terperinciModul 1 Dasar Dasar Bahasa Pemrograman C
Modul 1 Dasar Dasar Bahasa Pemrograman C 1. C dan Pengolahan Sinyal Digital C adalah bahasa pemrograman tingkat tinggi. Sebab bahasa pemrogramannya menggunakan keyword dan syntax yang mudah dimengerti
Lebih terperinciBasic Arithmetic Computing. Team Dosen Telkom University 2016
Basic Arithmetic Computing Team Dosen Telkom University 2016 Arithmetic & Logic Unit Pekerjaan : menghitung Menangani integer Bisa menangani bilangan floating point (real) dengan algortima tertentu atau
Lebih terperinciBAB III ANALISIS DAN PERANCANGAN
BAB III ANALISIS DAN PERANCANGAN Kondisi pengolahan data yang telah dijabarkan sebelumnya pada bab 1 (satu) memiliki keterkaitan terhadap permasalahan yang teridentifikasi. Yaitu permasalahan terkait desain
Lebih terperinciBAB III METODE PENELITIAN. Tahapan yang dilakukan dalam penelitian ini disajikan pada Gambar 3. Pengujian
BAB III METODE PENELITIAN 3.1 Tahapan Penelitian Tahapan yang dilakukan dalam penelitian ini disajikan pada Gambar 3. Pengujian aplikasi dilakukan berdasarkan pada skenario pengujian yang ditentukan. 30
Lebih terperinciPenerapan BFS dan DFS dalam Garbage Collection
Penerapan BFS dan DFS dalam Garbage Collection Nugroho Satriyanto 13514038 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung Bandung, Indonesia 13514038@std.stei.itb.ac.id
Lebih terperinciAlgortima. Teguh Cahyono, ST.M.Kom
Algortima Teguh Cahyono, ST.M.Kom Tipe Data & Macam Operator Macam Macam Type Data Ada enam kelompok type data pada turbo pascal yaitu : 1) Tipe data sederhana, type data sederhana dibagi menjadi dua type
Lebih terperinciArsitektur dan Organisasi
Arsitektur dan Organisasi Komputer 6-1 Aditya Wikan Mahastama, S.Kom Week 9 Computer Arithmetic (1) ALU dan Operasi Integer Arithmetic & Logic Unit Arsitektur dan Organisasi Komputer Tugas ALU: Melakukan
Lebih terperinciPRAKTIKUM 3 DASAR PEMROGRAMAN C
PRAKTIKUM 3 DASAR PEMROGRAMAN C A. TUJUAN 1. Menjelaskan tentang beberapa tipe data dasar (jenis dan jangkauannya) 2. Menjelaskan tentang Variabel 3. Menjelaskan tentang konstanta 4. Menjelaskan tentang
Lebih terperinciBAB IV HASIL DAN UJI COBA
BAB IV HASIL DAN UJI COBA IV.1. Jalannya Uji Coba 1. Halaman Utama Halaman utama dalah halaman validasi user sebelum user tertentu dapat melakukan enkripsi dan dekripsi file bahan ajar. Halaman ini bertujuan
Lebih terperinciTIPE, NAMA, DAN NILAI
TIPE, NAMA, DAN NILAI Dian Palupi Rini, M.Kom Tipe Dasar Bilangan Logika Nama Tipe adalah boolean (diambil dari nama matematikawan Inggris George Boole). Ranah Nilai : true (benar) dan false (salah). Konstanta
Lebih terperinciSTACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan
STACK (TUMPUKAN) adalah suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Contoh dalam kehidupan sehari-hari adalah tumpukan piring di sebuah restoran yang
Lebih terperinciBAB I PENDAHULUAN. terbuka bagi setiap orang. Informasi tersebut terkadang hanya ditujukan bagi
BAB I PENDAHULUAN I.1 Latar Belakang Dalam era globalisasi sekarang ini, keamanan merupakan aspek yang sangat penting dalam transaksi informasi. Informasi yang dipertukarkan tidak semuanya terbuka bagi
Lebih terperinciBAB IV IMPLEMENTASI DAN PENGUJIAN IMPLEMENTASI DAN PENGUJIAN
BAB IV IMPLEMENTASI DAN PENGUJIAN IMPLEMENTASI DAN PENGUJIAN Perintah-perintah Mikroprosesor INTEL 8088/8086 yang didukung di dalam perangkat lunak ini adalah modus pengalamatan (MOV), penjumlahan (ADD),
Lebih terperinci12/29/2011. Algoritme dan Pemrograman. Bit. Bitwise operator
Algoritme dan Pemrograman Kuliah #13 Operator Bitwise Tipe Enumerasi Manipulasi File Bit Singkatan dari binary digit (digit biner), yaitu suatu nilai bilangan yang direpresentasikan sebagai bilangan biner
Lebih terperinciAlgoritma Pendukung Kriptografi
Bahan Kuliah ke-20 IF5054 Kriptografi Algoritma Pendukung Kriptografi Disusun oleh: Ir. Rinaldi Munir, M.T. Departemen Teknik Informatika Institut Teknologi Bandung 2004 20. Algoritma Pendukung Kriptografi
Lebih terperinciPemrograman Berorientasi Obyek. Operator & Assignment
Pemrograman Berorientasi Obyek Operator & Assignment 1 MATERI POKOK Unary operator Arithmetic operator Shift operator: , dan >>> Comparison operator Bitwise operator: &, ^, dan. Short Circuit operator
Lebih terperinciSifat Prima Terhadap Fungsionalitas Algoritma RSA
Sifat Prima Terhadap Fungsionalitas Algoritma RSA Kamal Mahmudi Mahasiswa Jurusan Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Labtek V, Jalan Ganeca 10 Bandung
Lebih terperinciTanda Tangan Digital Dengan Menggunakan SHA-256 Dan Algoritma Knapsack Kunci-Publik
Tanda Tangan Digital Dengan Menggunakan SHA-256 Dan Algoritma Knapsack Kunci-Publik Bhimantyo Pamungkas - 13504016 Program Studi Teknik Informatika ITB, Bandung 40132, email: btyo_pamungkas@yahoo.co.id
Lebih terperinciPengenalan Struktur Data dan Algoritma
BAB I Pengenalan Struktur Data dan Algoritma Tujuan : 1. Mahasiswa memahami apakah yang dimaksud dengan struktur data 2. Mahasiswa memahami apakah yang dimaksud dengan algoritma 3. Mengingat kembali array,
Lebih terperinciArsitektur dan Organisasi Komputer
Arsitektur dan Organisasi Komputer Modul ke: Aritmatika Komputer Fakultas Ilmu Komputer Dian Wirawan, S.Kom, M.Kom Program Studi Teknik Informatika http://www.mercubuana.ac.id Aritmatika Komputer Arsitektur
Lebih terperinciBAB 3. OPERATOR DALAM BHS C
BAB. OPERATOR DALAM BHS C. Assigment Operator Operator Assigment digunakan untuk memberikan nilai ke suatu variabel. Operator yang digunakan adalah opertor = A = 5; (memberi nilai 5 ke dalam variabel A)
Lebih terperinciANALISIS DAN PERANCANGAN PERANGKAT LUNAK
BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK Bab ini membahas analisis perancangan perangkat lunak (diberi nama c2p) dari segi struktur data dan analisis aliran data. Hal-hal yang dibahas diantaranya
Lebih terperinciSEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA S1-TI ALGORITMA & PEMROGRAMAN MODUL V STRUKTUR KONTROL PERULANGAN SEM I WAKTU 100 MNT I. STRUKTUR PERULANGAN Salah satu kelebihan
Lebih terperinciAlgoritma dan Struktur Data. Ramos Somya
Algoritma dan Struktur Data Ramos Somya Penggunaan record dalam jumlah yang banyak alokasi memory konvensional tidak bisa diandalkan. Misal kita akan bekerja dengan file yang menyimpan sangat banyak record,
Lebih terperinciBilangan Bertanda (Sign Number)
Bilangan Bertanda (Sign Number) Disusun oleh: Tim dosen SLD Diedit ulang oleh: Endro Ariyanto Prodi S1 Teknik Informatika Fakultas Informatika Universitas Telkom Agustus 2015 Signed Integer: Sign/magnitude
Lebih terperinciStructure dasar dari bahasa pemrograman arduino adalah sederhana yang
Structuer Pemrograman 1. Structure Structure dasar dari bahasa pemrograman arduino adalah sederhana yang hanya terdiri dari dua bagian. void setup( ) // Statement; void loop( ) // Statement; Dimana setup
Lebih terperinci04. Single Linked List
04. Single Linked List ARNA FARIZA YULIANA SETIOWATI Capaian Pembelajaran 1. Mahasiswa mengerti konsep alokasi memori secara dinamis menggunakan pointer. 2. Mahasiswa mengerti konsep single linked list
Lebih terperinciBAB III ANALISA MASALAH DAN PERANCANGAN
BAB III ANALISA MASALAH DAN PERANCANGAN III.1. Analisa Sub bab ini berisikan tentang analisa sistem yang akan dibangun. Sub bab ini membahas teknik pemecahan masalah yang menguraikan sebuah sistem menjadi
Lebih terperinciAchmad Solichin.
Pemrograman Bahasa C dengan Turbo C Sh-001@plasa.com Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit),
Lebih terperinciAlgoritme dan Pemrograman
Kuliah #2 Struktur program C Tipe data Input / Output Algoritme dan Pemrograman Beberapa Catatan Lakukan KRS B jika: Belum mendaftar di KRS A Mendaftar di KRS A, tapi nama tidak muncul di absen Pindah
Lebih terperinciMETODE PENELITIAN HASIL DAN PEMBAHASAN
1 Dalam segi keamanan penyandian data algoritme IDEA mempunyai standar yang lebih sederhana namun cukup ampuh untuk mencegah serangan cryptanalysis terhadap kunci enkripsi dan dekripsi. Pembangkit kunci
Lebih terperinciDasar Pemrograman Mikrokontroler dengan Bahasa C
Dasar Pemrograman Mikrokontroler dengan Bahasa C Pokok Bahasan: 1. Penggunaan Fungsi (Using Functions) 2. Penanaman bahasa rakitan di dalam Program 'C' Tujuan Belajar: Setelah mempelajari dalam bab ini,
Lebih terperinciBAHASA PEMROGRAMAN C
BAHASA PEMROGRAMAN C A. Pengenalan Bahasa C diciptakan oleh Dennis Ritchie tahun 1972 di Bell Laboratories. Kelebihan Bahasa C: - Bahasa C tersedia hampir di semua jenis computer. - Kode bahasa C sifatnya
Lebih terperinciELEMEN DASAR C++ C++ mempunyai cara untuk menyatakan karakter-karakter yang tidak mempunyai kode tombol (seperti karakter tombol) misalnya \n.
1 ELEMEN DASAR C++ HIMPUNAN KARAKTER Himpunan karakter pada C++ terdiri huruf, digit maupun simbol-simbol lainnya (termasuk spasi dan karakter kontrol). Huruf, contoh : A s/d Z dan a s/d z Digit, contoh
Lebih terperinciBAB III METODOLOGI PENELITIAN. ditemukan oleh Rivest, Shamir dan Adleman (RSA) pada tahun
BAB III METODOLOGI PENELITIAN 3.1 Analisis Algoritma Kriptografi RSA Algoritma kriptografi RSA adalah algoritma untuk keamanan data yang ditemukan oleh Rivest, Shamir dan Adleman (RSA) pada tahun 1977-1978.
Lebih terperinciFungsi : Dasar Fungsi
PRAKTIKUM 13 Fungsi : Dasar Fungsi A. TUJUAN PEMBELAJARAN 1. Memecah program dalam fungsi fungsi yang sederhana. 2. Menjelaskan tentang pemrograman terstruktur. B. DASAR TEORI Fungsi adalah suatu bagian
Lebih terperinciAlgoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP
Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP Ahmad Ayyub Mustofa Jurusan Teknik Informatika ITB, Bandung 40132, email: rekka_zan@students.itb.ac.id Abstraksi Bahasa pemrograman
Lebih terperinciQuis. 2. Sistem bilangan yang menggunakan basis 8 adalah: A. Biner D. Hexadesimal B. Oktal E. Sexagesimal C. Desimal
Pertemuan 7 QUIS 1. Bagian yang terkait erat dengan unit-unit operasional dan interkoneksi antar komponen penyusun sistem komputer dalam merealisasikan aspek arsitekturalnya, merupakan pengertian dari:
Lebih terperinciObjek Data, Variabel, dan Konstanta. Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom
Objek Data, Variabel, dan Konstanta Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom Pengantar Penyimpanan data di komputer (memori, register, dan lainnya) Organisasi yang sederhana Barisan bit
Lebih terperinciA. TUJUAN PEMBELAJARAN 1. Mengenal berbagai macam bentuk operator 2. Memahami penggunaan berbagai macam jenis operator yang ada di Java
PRAKTIKUM 3 OPERATOR A. TUJUAN PEMBELAJARAN 1. Mengenal berbagai macam bentuk operator 2. Memahami penggunaan berbagai macam jenis operator yang ada di Java B. DASAR TEORI Operator dapat diklasifikasikan
Lebih terperinciVARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2
VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI Tujuan Pembelajaran 1. Siswa mampu memahami penulisan Tipe data, variabel dan konstanta dalam pascal 2. Siswa mampu menerapkan penggunaan Tipe data,
Lebih terperinciARNA FARIZA YULIANA SETIOWATI
03. Queue ARNA FARIZA YULIANA SETIOWATI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Capaian Pembelajaran 1. Mahasiswa mengerti konsep stack dan operasi pada queue. 2. Mahasiswa dapat menggunakan queue untuk
Lebih terperinciP 4 Bab 3 : Dasar Pemrograman C
Kampus II, Jl. Jembatan Merah, Nomor.C. Gejayan, Yogyakarta, Telp: (0), Fax (0) 00 P Bab : Dasar Pemrograman C. Tujuan Mahasiswa mampu mengetahui dan memahami identifier, keyword, variable, tipe data,
Lebih terperinciPEMROGRAMAN BERORIENTASI OBJEK
PEMROGRAMAN BERORIENTASI OBJEK Fungsi Budhi Irawan, S.Si, M.T 10/27/2017 9:12:31 AM 1 PENDAHULUAN Fungsi merupakan kumpulan statemen yang dikelompokan menjadi satu bagian kode (blok program) untuk menyelesaikan
Lebih terperinciPert 3: Algoritma Pemrograman 1 (Alpro1) 4 sks. By. Rita Wiryasaputra, ST., M. Cs.
Pert 3: Algoritma Pemrograman 1 (Alpro1) 4 sks By. Rita Wiryasaputra, ST., M. Cs. ritasaputra@gmail.com Kriteria Unjuk Kerja Algoritma Pemrograman 1 Tugas Terakhir (15): Buatlah portofolio Pengidentifikasian
Lebih terperinciORGANISASI KOMPUTER INSTRUKSI MESIN DAN PROGRAM MATA KULIAH:
MATA KULIAH: ORGANISASI KOMPUTER INSTRUKSI MESIN DAN PROGRAM PRODI PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER JURUSAN PENDIDIKAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR 2011 By: AYU
Lebih terperinciStruct Lanjutan: Studi Kasus
Struktur Data Struct Lanjutan: Studi Kasus Bayu Setiaji, S.Kom STMIK AMIKOM YOGYAKARTA 1. Tujuan 1. Pendalaman struct 2. Review fungsi 3. Dapat mengaplikasikan konsep struct dalam kasus nyata 2. Penjelasan
Lebih terperinciEnkripsi dengan Menggunakan Fungsi Polinom Rekursif
Enkripsi dengan Menggunakan Fungsi Polinom Rekursif Irfan Kamil (13510001) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132,
Lebih terperinciA. TUJUAN PEMBELAJARAN
Praktikum 2 Stack (Tumpukan) A. TUJUAN PEMBELAJARAN Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami terminologi yang terkait dengan struktur data stack. 2. Memahami operasi-operasi
Lebih terperinciSebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.
Waktu komputasi (dalam detik) Kompleksitas Algoritma Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus. Kemangkusan algoritma
Lebih terperinciTujuan. Pengenalan. Pengenalan Pemrograman Komputer. Komponen Dasar pada Komputer : Hardware. Komponen Dasar pada Komputer : Hardware
Tujuan JAVA Education Network Indonesia Pengenalan Pemrograman Komputer Pengenalan Pemrograman 1 Pada akhir pelajaran, siswa diharapkan dapat: Mengidentifikasi perbedaan komponen-komponen pada komputer
Lebih terperinciElemen Bahasa Pemrograman. Aditya Rizki Yudiantika, M.Eng.
Elemen Bahasa Pemrograman Aditya Rizki Yudiantika, M.Eng. Algoritma dan Struktur Data (SI063) Ganjil 2017/2018 Outline Pengenalan bahasa C++ Struktur penulisan kode dan elemen Tipe data Konstanta Operator
Lebih terperinciFAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA
Hal 1 dari 8 A. KOMPETENSI 1. Memahami jenis-jenis operator dalam C++ 2. Memahami operator assignment yang digunakan dalam C++ 3. Mampu menggunakan operator aritmatika 4. Mampu menggunakan operator relasional
Lebih terperinciANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM
ANALISIS ALGORITMA Analisis Masalah dan Running Time Disusun Oleh: Adam Mukharil Bachtiar Teknik Informatika UNIKOM adfbipotter@gmail.com AGENDA PERKULIAHAN DEFINISI MASALAH f x = a 0 + a n cos nπx +
Lebih terperinciBAB III ANALISIS KOMPLEKSITAS ALGORITMA
BAB III ANALISIS KOMPLEKSITAS ALGORITMA 3.1 Kompleksitas Algoritma Suatu masalah dapat mempunyai banyak algoritma penyelesaian. Algoritma yang digunakan tidak saja harus benar, namun juga harus efisien.
Lebih terperinciTIPE DATA DAN OPERASI I/O
Praktikum 4 (2/2) TIPE DATA DAN OPERASI I/O A. TUJUAN 1. Menjelaskan tentang instruksi I/O B. DASAR TEORI Untuk keperluan menampilkan data/informasi, C menyediakan sejumlah fungsi. Beberapa di antaranya
Lebih terperinciJAVA BASIC PROGRAMMING Joobshet
JAVA BASIC PROGRAMMING Joobshet 1. KOMPETENSI Mahasiswa dapat memahami jenis jenis tipe data Mahasiswa dapat memahami jenis jenis variable Mahasiswa dapat memahami jenis jenis seleksi kondisi Mahasiswa
Lebih terperinciFAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
No EKA/EKA255 Revisi:01 30 Agu 2014 Hal 1 / 5 A TUJUAN Setelah melakukan praktik mahasiswa diharapkan: 1 Menjelaskan proses pengulangan menggunakan pernyataan for 2 Menjelaskan tentang variasi pernyataan
Lebih terperinciTurbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C
1. Pendahuluan Lingkungan Turbo C++ 4.5 Turbo C++ 4.5 adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C++ 4.5. 1 2 3 4 1 : Menu Utama
Lebih terperinciPengenalan Struktur Data. Farah Zakiyah Rahmanti 2014
Pengenalan Struktur Data Farah Zakiyah Rahmanti 2014 Definisi Skema organisasi, seperti struktur dan array, yang diterapkan pada data sehingga data dapat diinterprestasikan dan sehingga operasoperasi spesifik
Lebih terperinciKONSEP POINTER DAN LINKED LIST
Pertemuan 3 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut
Lebih terperinciPROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Aritmatik Komputer. Oky Dwi Nurhayati, ST, MT
PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO Aritmatik Komputer Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id ALU Inputs and Outputs Representasi Integer Dalam sistem bilangan biner, semua
Lebih terperinciBAB III ANALISA DAN PERANCANGAN
BAB III ANALISA DAN PERANCANGAN 1.1 Analisa Masalah Masalah yang ingin diselesaikan pada Tahap Akhir ini antara lain adalah menerapkan algoritma Message Digest 5 (MD5) agar bisa digunakan untuk enkripsi
Lebih terperinci