Abstraksi Data Rekayasa Perangkat Lunak poltektelkom

Politeknik Telkom Rekayasa Perangkat Lunak Implementasi Perangkat Lunak 107 Ciri-ciri dari ADT adalah: - Berisi struktur data dan operasi-operasi terhadap struktur data tersebut - Menyediakan pengkapsulan - Menyediakan information hiding - Menyediakan abstraksi - Tidak menspesifikasikan implementasi struktur data - Menspesifikasikan perilaku dari ADT Kegunaan ADT antara lain: - ADT menyediakan dasar untuk modularitas perangkat lunak - Mengidentifikasikan setiap modul dengan implementasi ADT, yaitu deskripsi sekumpulan objek dengan antarmuka bersama - Antarmuka didefinisikan oleh sekumpulan operasi yang dibatasi oleh properti-properti yang abstrak - Masing-masing operasi diimplementasikan menggunakan satu representasi dari ADT Terdapat tiga komponen dalam implementasi ADT, yakni: - Spesifikasi ADT berisi fungsi-fungsi, aksioma-aksioma, dan prakondisi- prakondisi - Pemilihan representasi bagi ADT - Sekumpulan subprogram, masing-masing mengimplementasikan salah satu fungsi pada spesifikasi ADT yang beroperasi pada representasi yang telah dipilih

6.5 Analisis Statik

Analisis statik merupakan proses menganalisis kode program yang dilakukan tanpa mengeksekusi kode program tersebut, berbeda dengan analisis dinamis di mana kode program dianalisis dengan mengeksekusi kode programnya. Terdapat beberapa alasan melakukan analisis statik antara lain: - Analisis statik dapat dilakukan pada tahap awal pengkodean, tidak perlu menunggu sampai kode selesai dibuat - Beberapa jenis kesalahan sulit untuk ditemukan melalui proses pengujian, misalkan kesalahan yang berkaitan dengan timing - Proses pengujian dan analisis pada dasarnya bersifat komplemen, saling melengkapi satu sama lain Metode formal digunakan untuk melakukan analisis statik dengan menggunakan serangkaian metode matematis. Teknik matematika yang digunakan antara lain semantik detonasional, semantik aksiomatik, semantik Politeknik Telkom Rekayasa Perangkat Lunak 108 Implementasi Perangkat Lunak operasional, dan interpretasi abstrak. Salah satu implementasi dari teknik analisis statik adalah Data Flow Analysis

6.5.1 Data Flow Analysis

Data flow analysis merupakan sebuah teknik untuk memperoleh informasi tentang sekumpulan nilai yang mungkin dihitung pada bagian tertentu pada program. Sebuah program Control Flow Graph CFG digunakan untuk menentukan bagian dari program di mana ketika nilai tertentu diberikan kepada variabel, maka kemungkinan terjadi propagasi. Informasi yang diperoleh seringkali digunakan oleh compiler untuk proses optimasi program. Cara yang mudah untuk melakukan Data Flow Analysis adalah dengan menyediakan persamaan data flow untuk setiap node pada CFG dan menyelesaikannya dengan cara menghitung output dari input secara berulang pada setiap node secara lokal hingga keseluruhan sistem stabil. Persamaan data flow berbentuk: out b = trans b in b di mana trans b merupakan fungsi transfer pada blok b. Operasi join menggabungkan exit state dari predesesor p € pred b , dan menjadi entri state untuk b. Setelah menyelesaikan persamaan ini, entriexit state dari blok dapat digunakan untuk menjalankan properti program pada batasan blok. Persamaan ini kemudian diselesaikan dengan cara iteratif hingga keseluruhan blok terselesaikan persamaannya. Ada dua pendekatan dari Data Flow Analysis, yakni: - Forward Analysis Disebut juga sebagai Available Variable Analysis Sebuah definisi disebut berguna jika dapat mempengaruhi komputasi pada lokasi yang bersangkutan Variabel yang tidak diinisialisasi mengindikasikan kesalahan Contoh penggunaannya: 1: if b==4 then 2: a = 5; 3: else 4: a = 3; 5: endif 6: 7: if a 4 then