Archive for 2014-03-23

Bahasa Pemrograman Tingkat Rendah

Assembly Language (Ndoware, 2009)

Apakah itu bahasa pemrograman tingkat rendah?
Menurut Axe (2011), bahasa pemrograman yang berorientasi mesin. Disebut tingkat rendah karena lebih mendekat bahasa mesin dari pada bahasa manusia. Salah satu bahasa pemrograman tingkat rendah adalah bahasa rakitan (Assembly).

Menurut Wikipedia (2010), bahasa rakitan atau lebih umum dikenal sebagai Assembly adalah bahasa pemrograman tingkat rendah yang digunakan dalam pemrograman komputer, mikroprosesor dan perangkat lainnya yang dapat diprogram. Bahasa rakitan mengimplementasikan representasi atas kode mesin dalam bentuk simbol-simbol yang secara relatif lebih dapat dipahami oleh manusia.

Ada beberapa dasar alasan menggunakan bahasa rakitan dilihat dari sudut pandang penggunaannya dikutip dari Wikipedia.

  • Bahasa rakitan dibandingkan dengan bahasa mesin, bahasa rakitan merupakan representasi atas bahasa mesin yang dirancang agar lebih mudah dipahami oleh manusia. Dengan menggunakan bahasa rakitan, seorang programmer dapat lebih mudah mengingat instruksi-instruksi dengan menggunakan simbol yang lebih dimengerti dibandingkan bila menggunakan simbol mnemonic kode mesin secara langsung. Demikian halnya pula dengan mekanisme lompatan yang umum terdapat dalam bahasa mesin yang biasanya menggunakan alamat memori, programmer dapat lebih mudah menggunakan fasilitas pelabelan yang terdapat pada bahasa rakitan dibandingkan menggunakan alamat memori tertentu dalam kode mnemonic.
  • Bahasa rakitan dibandingkan dengan bahasa tingkat tinggi, bahasa rakitan memungkinkan programmer untuk mengontrol serta memanfaatkan secara penuh kapabilitas yang terdapat atas suatu perangkat keras, berbeda halnya dengan bahasa pemrograman tingkat tinggi yang memiliki banyak keterbatasan dalam pemanfaatan secara penuh suatu perangkat keras. Bahasa rakitan menjanjikan tingkat unjuk kerja yang maksimum karena sifatnya yang menerjemahkan secara langsung instruksi rakitan menjadi instruksi mesin, berbeda halnya dengan bahasa pemrograman tingkat tinggi yang biasanya menerjemahkan sebuah instruksi menjadi sejumlah kode mesin.

Kelebihan kekurangan.
- Kompatibilitas bahasa sangat terbatas pada mesin tertentu sehingga tidak bsia dijalankan disembarangan mesin. Sehingga di sisi kompatibilitas, assembly tidak bisa menandingin bahasa pemrograman tingga tinggi.

+ Karena menggunakan bahasa yang mendekati bahasa mesin, assembly bisa memanfaatkan sumber daya mesin secara maksimal dibandingkan bahasa pemrograman tingkat tinggi.

+ Ukuran yang sangat kecil sehingga sangat ringan untuk dijalankan sehingga banyak virus yang dibangun menggunakan bahasa ini sehingga sangat sulit untuk dideteksi.

Ref:
Axe. (2011). Bahasa Pemrograman Tingkat Rendah (Low Level Language). Tersedia: http://13nightevil.blogspot.com/2011/04/bahasa-tingkat-rendah-low-level.html, diakses pada 22 Maret 2014.

Wikipedia. (2010). Bahasa Rakitan. Tersedia: http://id.wikipedia.org/wiki/Assembly, diakses pada 22 Maret 2014.

Friday, March 28, 2014
Posted by Just Nanda...

Apa itu AndroidManifest.xml?



Setiap aplikasi mobile android pasti memiliki sebuah file AndroidManifest.xml pada direktori rootnya. The manifest file menyajikan informasi esensial kepada sistem android tentang aplikasi anda, menginformasikan apa yang harus dimiliki sistem sebelum menjalankan apapun code yang ada pada aplikasi. Manifest melakukan hal-hal berikut:
  1. Menamai paket Java untuk aplikasi. Nama paket berfungsi sebagai identifikasi unik untuk aplikasi
  2. Mendeskripsikan komponen-komponen aplikasi (aktivitas-aktivitas, servis-servis, penerima broadcast, dan penyedia konten aplikasi)
  3. Menentukan proses mana yang akan menjalankan komponen-komponen aplikasi 
  4. Mendeklarasikan hak akses mana yang harus dimiliki aplikasi untuk mengakses bagian-bagian API yang terproteksi dan untuk berinteraksi dengan aplikasi lainnya. 
  5. Mendeklarasikan hak akses yang perlu dimiliki oleh aplikasi lain untuk berinteraksi dengan komponen-komponen aplikasi 
  6. Mendaftarkan kelas-kelas Instrumentation yang menyediakan pemrofilan dan informasi lainnya sesuai jalannya aplikasi. Deklarasi ini terdapat dalam manifest hanya ketika aplikasi sedang dikembangkan dan diuji; deklarasi ini dihilangkan sebelum aplikasi dipublikasi 
  7. Mendeklarasikan tingkat minimum dari API android yang dibutuhkan aplikasi 
  8. Mendaftarkan library yang harus dihubungkan dengan aplikasi


Struktur dari File Manifest
Diagram di bawah menunjukkan struktur umum dari file manifest dan setiap elemen yang terdapat di dalamnya.


<?xml version="1.0" encoding="utf-8"?>
<manifest>

    <uses-permission />
    <permission />
    <permission-tree />
    <permission-group />
    <instrumentation />
    <uses-sdk />
    <uses-configuration />  
    <uses-feature />  
    <supports-screens />  
    <compatible-screens />  
    <supports-gl-texture />  

    <application>

        <activity>
            <intent-filter>
                <action />
                <category />
                <data />
            </intent-filter>
            <meta-data />
        </activity>

        <activity-alias>
            <intent-filter> . . . </intent-filter>
            <meta-data />
        </activity-alias>

        <service>
            <intent-filter> . . . </intent-filter>
            <meta-data/>
        </service>

        <receiver>
            <intent-filter> . . . </intent-filter>
            <meta-data />
        </receiver>

        <provider>
            <grant-uri-permission />
            <meta-data />
            <path-permission />
        </provider>

        <uses-library />

    </application>
</manifest>





Elemen-Elemen File Manifest

1.  <action>
Menambahkan sebuah aksi pada intent filter. Sebuah elemen <intent-filter> harus memuat satu atau lebih elemen <action>. Jika tidak mengandung satu pun, tidak ada objek intent yang akan melewati filter.
2.  <activity>
Mendeklarasikan sebuah aktivitas (subkelas Activity) yang mengimplementasikan bagian dari antarmukavisual pengguna aplikasi. Semua aktivitas harus direpresentasikan oleh elemen <activity> di dalam file manifest. Aktivitas yang tidak dideklarasikan disana tidak akan dilihat oleh sistem dan tidak akan pernah berjalan.
3.  <activity-alias>
Sebuah alias untuk aktivitas dinama oleh atribut targetActivity. Target harus berada dalam aplikasi yang sama dengan alias dan harus dideklarasikan sebelum alias dalam manifest.
4.  <application>
Deklarasi dari aplikasi. Elemen ini mengandung subelemen yang mendeklarasikan masing-masing komponen aplikasi dan memiliki atribut yang bisa mempengaruhi semua komponen.
5.  <category>
Menambah sebuah nama kategori pada sebuah intent filter.
6.  <data>
Menambah sebuah spesifikasi data pada sebuah intent. Spesifikasi bisa hanya sebuah tipe data, sebuah URI, atau keduanya.
7.  <grant-uri-permission>
Menentukan subset data dari penyedia konten induk mana yang bisa diberi hak akses. Subset data diindikasikan oleh bagian path dari sebuah content: URI.
8.  <instrumentation>
Mendeklarasikan sebuah kelas instrumentation yang memungkinkan kita untuk mengawasi interaksi sebuah aplikasi dengan sistem. Objek instrumentation diinstansiasi sebelum komponen aplikasi.
9.  <intent-filter>
Menentukan tipe intent yang akan merespon sebuah aktivitas, servis atau penerima broadcast. Sebuah intent filter mendeklarasikan kemampuan dari komponen induknya, aktivitas atau servis apa yang bisa dilakukan dan tipe broadcast apa yang bisa di tangani oleh penerima. Intent filter membuka komponen untuk menerima intent yang bertipe iklan, sambil menyaring intent yang tidak berarti untuk komponen.
10.<manifest>
Elemen dasar dari file AndroidManifest.xml, harus memuat sebuah elemen <application> dan menetapkan atribut xmlns:android dan package.
11.<meta-data>
Sepasang nama-nilai untuk item data tambahan, sembarang yang dapat diberikan kepada komponen induk. Sebuah elemen komponen dapat berisi sejumlah subelemen <meta-data>.
12.<permission>
Mendeklarasikan sebuah izin keamanan yang bisa digunakan untuk menetapkan komponen atau fitur dari aplikasi ini atau lainnya.
13.<permission-group>
Mendeklarasikan nama untuk pengelompokan logis dari izin yang terkait. Izin individual masuk ke dalam kelompok melalui atribut permissionGroup dari elemen <permission>. Anggota grup disajikan bersama dalam antarmuka pengguna.
14.<permission-tree>
Mendeklarasikan nama dasar untuk pohon hak akses. Aplikasi mengambil kepemilikan dari semua nama di dalam pohon. Hal ini dapat secara dinamis menambah izin ke dalam pohon dengan memanggil PackageManager.addPermission().
15.<provider>
Mendeklarasikan komponen penyedia konten. Penyedia konten adalah sebuah subkelas dari ContentProvider yang menyediakan akses data terstruktur yang diatur oleh aplikasi. Semua penyedia konten dalam aplikasi kita harus didefinisikan dalam sebuah elemen <provider> dalam file manifest, kalau tidak maka sistem tidak akan menyadari kehadirannya dan tidak menjalankannya. 
16.<receiver>
Mendeklarasikan sebuah penerima broadcast (subkelas BroadcastReceiver) sebagai salah satu dari komponen aplikasi. Penerima broadcast memungkinkan aplikasi untuk menenrima intent yang disiarkan oleh sistem atau aplikasi lainnya, bahkan ketika komponen lain dari aplikasi tidak berjalan.
17.<service>
Mendeklarasikan suatu servis (subkelas Service) sebagai salah satu dari komponen aplikasi. Tidak seperti aktivitas, servis tidak memiliki antarmuka visual pengguna. Mereka digunakan untuk mengimplementasikan operasi long-running background atau komunikasi API yang dipanggil oleh aplikasi lain.
18.<supports-screens>
Menetapkan ukuran layar yang didukung aplikasi dan memungkinkan mode kompatibiltas layar untuk layar yang lebih besar dari yang didukung oleh aplikasi.
19.<uses-configuration>
Mengindikasikan fitur hardware dan software apa yang dibutuhkan oleh aplikasi.
20.<uses-feature>
Mendeklarasikan fitur tunggal hardware atau software yang digunakan oleh aplikasi.
21.<uses-library>
Menetapkan library berbagi yang harus dihubungkan dengan aplikasi.
22.<uses-permission>
Meminta izin yang harus diberikan kepada aplikasi agar beroperasi dengan benar.
23.<uses-sdk>
Dengan elemen ini kita bisa menyatakan kompatibilitas sebuah aplikasi dengan satu atau lebih versi platform Android, melalui sebuah tingkat integer API.


Thursday, March 27, 2014
Posted by Unknown

- Copyright © 2013 Laboratorium Pemrograman dan Basis Data -Metrominimalist- Powered by Blogger - Designed by Johanes Djogan -