• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
20
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1Mikrokontroler ATmega32

Mikrokontroler ATmega32 adalah mikrokontroler 8-bit keluaran Atmel dari keluarga AVR. Pihak Atmel menyatakan bahwa AVR bukanlah sebuah akronim atau singkatan dari suatu kalimat tertentu, perancang arsitektur AVR, (http://en.wikipedia.org/wiki/Atmel_AVR). Mikrokontroler ini dirancang berdasarkan arsitektur AVR RISC (Reduced Instruction Set Computer) yang mengeksekusi satu instruksi dalam satu siklus clock sehingga dapat mencapai eksekusi instruksi sebesar 1 MIPS (Million Instruction Per Second) setiap 1 MHZ frekuensi clock yang digunakan mikrokontroler tersebut. Frekuensi clock yang digunakan dapat diatur melalui fuse bits

dan kristal yang digunakan. Jika kristal yang digunakan sebesar 16 MHZ sehingga frekuensi clock-nya sebesar 16 MHZ maka eksekusi instruksinya mencapai 16 MIPS (Atmel, 2009).

ATmega32 memiliki fitur utama antara lain: 16K x 16 byte In-System Programmable Flash Program memory dari alamat 0000H sampai 3FFFH. Flash memory ini terbagi menjadi dua bagian yaitu application flash section dan boot flash section. Data memori sebesar 2144 byte yang terbagi atas 32 general purpose register, 64 I/O register, dan 2KB internal SRAM (Static Random Access Memory), 1 KB EEPROM (Electrically Eraseable Read Only Memory), 32 I/O pin, tiga unit

timer/counter, internal dan eksternal interrupt, USART (Universal Synchronous and Asynchronous Receiver Transceiver), TWI (Two-wire Serial Interface), 10-bit ADC (Analog to Digital Converter) delapan saluran, SPI (Serial Programmable Interface),

(2)

ATmega32 memiliki 32 general purpose register, dan register ini terhubung langsung dengan dengan ALU (Arithmatic Logic Unit) sehingga dua register dapat sekaligus diakses dalam satu instruksi yang dieksekusi tiap clock-nya. Sehingga arsitektur seperti ini lebih efisien dalam eksekusi kode program dan dapat mencapai eksekusi sepuluh kali lebih cepat dibandingkan mikrokontroler CISC (Complete Instruction Set Computer) (Atmel, 2009). Gambar 2.1, 2.2, dan 2.3 masing-masing menunjukkan desain memori, susunan pin, dan arsitektur mikrokontroler ATmega32.

(a) (b)

Gambar 2.1 (a) Flash Program Memory, (b) Data Memory

(3)

Gambar 2.3 Arsitektur Mikrokontroler ATmega32

ATmega32 memiliki clock generator internal sehingga mikrokontroler ini dapat bekerja langsung tanpa menggunakan clock eksternal. Sinyal clock internal

yang dibangkitkan sebesar 1 MHZ. Jadi, cukup dengan menghubungkan Vcc dan Gnd dengan tegangan 5V DC mikrokontroler ini dapat bekerja.

Untuk membuat program untuk ATmega32 dapat digunakan WinAVR atau AVR Studio yang dapat diperoleh secara gratis (freeware). Namun dalam pembahasan

(4)

ini software yang digunakan adalah WinAVR. Program dibuat dalam bahasa C dan menambahkan file header untuk ATmega32 yang berisi register-register pada ATmega32. Setelah program di-compile akan menghasilkan file dengan tipe Intel hex

(.hex). File inilah yang nantinya akan di-programkan ke ATmega32 melalui interface bsd programmer (Brian Dean's Programmer) yang terhubung ke komputer melalui

port paralel. Koneksi antara ATmega32 dan port paralel untuk bsd programmer

diberikan oleh tabel 2.1.

Tabel 2.1 Koneksi Pin Port Paralel dan ATmega32 Port paralel ATmega32

No pin Nama pin No pin Nama pin

7 D5 9 Reset

8 D6 8 SCK

9 D7 6 MOSI

10 S6 7 MISO

19 Ground 11 Ground

2.2Antarmuka Keyboard ke Mikrokontroler ATmega32

Koneksi antara keyboard dan mikrokontroler hanya menggunakan dua jalur sinyal yaitu data dan clock, dan koneksi lain yang dibutuhkan adalah kutub positif dan negatif tegangan 5V DC yang dapat diambil dari tegangan yang diberikan untuk mikrokontroler. Antar muka keyboard dan mikrokontroler ditunjukkan gambar 2.4.

(5)

Konektor yang digunakan keyboard ada dua macam yaitu konektor 5-pin DIN dan konektor 6-pin mini DIN (Deutsches Institut fuer Norm). Sampai sekarang ini konektor yang sering dipakai adalah 6-pin mini DIN. Perbedaan antara kedua tipe konektor ini dan defenisi pin-pinnya ditunjukkan tabel 2.2.

Tabel 2.2 Konektor Keyboard AT

(Sumber: http://www.scienceprog.com)

Keyboard standar memiliki satu scancode untuk tiap tombolnya yang direpresentasikan dalam format bilangan heksadesimal, dan setiap scancode adalah unik. Scancode ini mempunyai ukuran satu byte, namun ada beberapa tombol khusus yang disebut extended keys mempunyai scancode lebih dari satu byte dan dimulai dengan byte ‘E0’. Misalnya tombol karakter ‘S’ memiliki scancode ‘1B’ dan extended key misalnya tombol ‘Home’ mempunyai scancode ‘E06C’.

Setiap suatu tombol ditekan keyboard akan mengirimkan scancode melalui pin

data. Jika tombol masih ditekan untuk beberapa saat maka scancode tombol tersebut akan terus dikirimkan sampai tombol tersebut dilepas. Setelah tombol dilepas

keyboard akan mengirimkan sinyal byte ‘F0’ dan diikuti dengan scancode-nya. Sedangkan jika tombol extended keys dilepas keyboard akan mengirimkan byte ‘E0’ terlebih dahulu kemudian diikuti byte ‘F0’ dan selanjutnya diikuti byte scancode

belakangnya setelah byte ‘E0’. Scancode untuk keyboard ditunjukkan gambar 2.5 dan 2.6.

(6)

Gambar 2.5 Scancode Keyboard AT

Gambar 2.6 Scancode Tombol Numerik dan Extended Keys

Scancode keyboard dikirimkan secara serial dengan format sebelas bit yang dimulai dengan bit awal ‘0’ diikuti dengan delapan bit scancode, satu bit parity dan diakhiri satu bit terakhir ‘1’. Delapan bit scancode yang dikirimkan dimulai dengan LSB (Least Significant Bit) dan diakhiri dengan MSB (Most Significant Bit). Setiap bit dari format serial ini nilainya valid saat perubahan clock dari high ke low. Format data serial ini ditunjukkan gambar 2.7.

(7)

Karena scancode yang dimiliki tombol-tombol ini acak, maka untuk mengkonversi scancode ke dalam format ASCII dapat digunakan tabel look-up yang menyimpan scancode dan kode ASCII dari tombol yang bersangkutan.

2.3LCD LMB162A Sebagai Output

LMB162A adalah piranti output berupa LCD untuk sistem komputer atau mikrokontroler yang dapat menampilkan karakter standar yang telah tersimpan dalam ROM pada LCD tersebut. Karakter yang dapat ditampilkan sebanyak 32 karakter yang tersusun dalam 16 kolom dan dua baris, sehingga sering disebut LCD 16x2. LCD ini memiliki 16 pin dan memerlukan tegangan 5V DC. Gambar 2.8 menunjukkan bentuk dan susunan pin LCD dan keterangan dari setiap pin diberikan pada tabel 2.3.

Gambar 2.8 Susunan Pin LMB162A

Sebelum menggunakan modul LCD ini, power supply 5V DC harus diberikan sebagai sumber arusnya seperti yang ditunjukkan gambar 2.9.

(8)

Tabel 2.3 Keterangan Pin LMB162A

No pin Nama pin Level Fungsi

1 Vss - Ground

2 Vdd - Power supply untuk chip LCD

3 Vo 0V – 5V Power supply untuk LCD

4 RS H/L Register Selection

5 R/W H/L Read atau Write

6 E H→L Enable 7 DB0 H/L Data Bit 0 8 DB1 H/L Data Bit 1 9 DB2 H/L Data Bit 2 10 DB3 H/L Data Bit 3 11 DB4 H/L Data Bit 4 12 DB5 H/L Data Bit 5 13 DB6 H/L Data Bit 6 14 DB7 H/L Data Bit 7

15 LEDA - Power supply untuk LED (+)

16 LEDK - Power supply untuk LED (-)

Untuk menampilkan karakter pada LCD ada beberapa algoritma yang harus dijalankan. Algoritma ini dilakukan dengan memberikan nilai logika 0 atau 1 pada pin yang bersangkutan. Algoritma untuk penampilan karakter ini antara lain:

1. Mengatur display LCD, cursor dan blink.

Tabel 2.4 Pengaturan Display LCD

E RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

1→0 0 0 0 0 0 0 1 D C B

Keterangan:

D: D=0 display mati dan D=1 display hidup C: C=0 cursor mati dan C=1 cursor hidup B: B=0 blink mati dan B=1 blink hidup

(9)

2. Mengatur karakter yang akan ditampilkan

Tabel 2.5 Pengaturan Karakter Tampilan LCD

E RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

1→0 1 0 Nilai berdasarkan CGROM

Keterangan:

Nilai dari DB0 sampai DB7 yang dimasukkan nantinya akan mengatur tampilan karakter yang berkorespondensi dengan kode karakter CGROM pada chip LCD. Kode karakter CGROM diberikan pada gambar 2.10 yang terdiri dari kolom yang menunjukkan DB6 – DB7 dan baris yang menunjukkan DB0 – DB3.

(10)

2.4Advanced Encryption Standard (AES)

Menurut Schneier (1996) dalam Munir (2006) kriptografi adalah seni dan ilmu untuk menjaga kerahasiaan pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya. Pengertian lain tentang kriptografi diungkapkan oleh Menezes (1996) dalam Munir (2006) yang menyatakan bahwa kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. Dalam kriptografi pesan atau disebut plainteks disandikan menggunakan algoritma tertentu dan menggunakan suatu kunci (cipher key) dan menghasilkan pesan yang telah tersandi (cipherteks).

AES adalah algoritma kriptografi kunci simetri yang berbasis cipher blok. Kunci simetri maksudnya adalah dalam proses enkripsi dan dekripsi algoritma AES menggunakan kunci atau cipher key yang sama dan cipher blok yaitu baik dalam proses enkripsi dan dekripsi plainteks atau cipherteksnya diolah dalam bentuk blok dengan ukuran blok 128 bit (16 karakter). Cipher key yang digunakan dalam AES bervariasi yaitu 128 bit, 192 bit, atau 256 bit. Untuk selanjutnya plainteks dan cipher key akan diolah dalam bentuk blok state. AES menggunakan jumlah putaran (perulangan algoritma) yang berbeda untuk tiap panjang cipher key-nya seperti tabel 2.6.

Tabel 2.6 Hubungan Panjang Kunci dan Jumlah Putaran AES Panjang kunci Ukuran blok Jumlah putaran

AES-128 128 bit 128 bit 10

AES-192 192 bit 128 bit 12

AES-256 256 bit 128 bit 14

2.4.1 Input, output, dan state dalam AES

Input (plainteks) dan output (cipherteks) dalam algoritma AES adalah urutan biner 128 bit dengan nilai 0 atau 1. Urutan biner ini yang disebut blok 128 bit. Sedangkan cipher key yang digunakan memiliki panjang yang bervariasi yaitu 128 bit,

(11)

192 bit, atau 256 bit. Untuk selanjutnya plainteks dan cipher key akan diolah dalam bentuk blok state.

Input (plainteks)

in0 in1 in2 in3 in4 in5 in6 in7 in8 in9 in10 in11 in12 in13 in14 in15

State

Gambar 2.11 Input Plainteks dan State

State adalah suatu larik dua dimensi dari bilangan biner dalam bentuk matriks 4x4, setiap elemen matriksnya sebesar 8 bit (1 byte). Jadi dalam proses enkripsi plainteks dan cipher key diubah kedalam format state. State juga dapat direpresentasikan dalam larik satu dimensi yaitu larik dari kolom state tersebut dengan panjang 32 bit setiap elemennya sehingga terdapat empat elemen state yaitu w0, w1, w2, dan w3, dengan ketentuan:

w0=s0,0 s1,0 s2,0 s3,0 w2=s0,2 s1,2 s2,2 s3,2 w1=s0,1 s1,1 s2,1 s3,1 w3=s0,3 s1,3 s2,3 s3,3

Representasi seperti ini digunakan pada proses AddRoundKey pada enkripsi AES.

2.4.2 Spesifikasi Algoritma Enkripsi AES

Untuk algoritma AES, panjang blok input, blok output, dan state adalah 128 bit yang direpresentasikan sebagai Nb = 4 yang merupakan representasi larik kolom dengan panjang 32 bit dan jumlah elemennya adalah empat elemen. Panjang kunci atau cipher key K adalah 128 bit, 192 bit, atau 256 bit yang direpresentasikan sebagai Nk = 4, 6, atau 8 yang merupakan representasi larik kolom dengan panjang 32 bit dari

(12)

yang digunakan dan jumlah putaran ini disimbolkan dengan Nr. Hubungan antara panjang kunci (Nk), ukuran blok state (Nb), dan jumlah putaran (Nr) diberikan tabel 2.7.

Tabel 2.7 Hubungan antara Nk, Nb, dan Nr Panjang kunci (Nk) Ukuran blok (Nb) Jumlah putaran (Nr) AES-128 4 4 10 AES-192 6 4 12 AES-256 8 4 14

Algoritma enkripsi AES meliputi beberapa proses algoritma tersendiri yaitu AddRoundKey, SubBytes, ShiftRows, dan MixColumns. Selain itu, terdapat algoritma pembangkitan kunci dari sejumlah Nk kunci asal dan menghasilkan total kunci ekspansi sebanyak Nb(Nr+1) dalam bentuk larik kolom 32 bit. Algoritma enkripsi AES diuraikan sebagai berikut:

1. AddRoundKey: melakukan operasi XOR antara state awal (plainteks) dengan

statecipher key. Tahap ini disebut initial round.

2. Putaran sebanyak Nr-1 (Nr adalah banyak putaran) pada algoritma berikut: a. SubBytes: substitusi state dengan menggunakan tabel substitusi S-box. b. ShiftRows: Pergeseran baris-baris state secara wrapping.

c. MixColumns: Operasi modular produk terhadap state dengan polinomial {03}x3+{01}x2+{01}x+{02}.

d. AddRoundKey: melakukan operasi XOR antara state awal (plainteks) dengan

statecipher key untuk putaran ke Nr. 2. Final round, dengan proses:

a. SubBytes b. ShiftRows c. AddRoundKey

Gambar 8.12 menunjukkan ilustrasi algoritma enkripsi AES. Dari gambar dapat terlihat ada beberapa proses yang diulang.

(13)

Gambar 2.12 Algoritma Enkripsi AES

Penjelasan untuk masing-masing algoritma akan diuraikan berikut ini. 1. AddRoundKey

Algoritma ini melakukan operasi XOR antara state plainteks dengan state cipher key

untuk putaran tertentu.

(14)

Proses AddRoundKey mengoperasikan tiap kolom dari state. Tiap kolom di-XOR-kan dengan cipher key yang telah diekspansi. Total kunci yang diekspansi adalah Nb(Nr+1) sehingga menghasilkan kunci dalam bentuk larik kolom 32 bit w0,w1, w2, …, w43 untuk Nb = 4 dan Nr = 10. Operasi AddRoundKey pada tiap putaran melakukan operasi XOR terhadap larik kolom 32 bit dari state dengan kunci hasil ekspansi berdasarkan persamaan:

[s’0,c s’1,c s’2,c s’3,c] = [s0,c s1,c s2,c s3,c] XOR [wl+c] Dengan, l = round * Nb dan 0 <= c < Nb

2. SubBytes

Algoritma ini melakukan substitusi state menggunakan tabel substitusi S-box.

Gambar 2.14 SubBytes

(15)

Misalnya state yang akan disubstitusi adalah S0,0 = $EC, maka S0,0[x,y]=$EC. Nilai dari x adalah E dan nilai dari y adalah C. Sehingga hasil substitusi state adalah nilai pertemuan antara baris E dan kolom C, yaitu S’0,0 = $CE.

3. ShiftRows

Algoritma ini melakukan pergeseran secara wrapping (siklik) pada 3 baris terakhir dari state. Untuk baris pertama digeser sejauh satu byte, baris kedua digeser sejauh dua byte, dan untuk baris ketiga digeser sejauh 3 byte.

Gambar 2.15 ShiftRows

4. MixColumns

Algoritma ini mengoperasikan tiap kolom dari state dan memperlakukan kolom-kolom ini sebagai bilangan polinomial empat suku. Tiap elemen kolom-kolom adalah polinomial dengan koefisien GF(28) yang kemudian dilakukan operasi modulur produk dengan polinomial {03}x3+{01}x2+{01}x+{02}.

Operasi ini dapat dinotasikan sebagai s’(x)=a(x) ⊗ s(x). Dengan s(x) adalah kolom dalam state dan a(x) adalah bilangan polinomial {03}x3+{01}x2+{01}x+{02}. Operasi ini dapat diilustrasikan sebagai perkalian matriks seperti berikut:

(16)

Gambar 2.16 Perkalian Matriks antara State dan Polinomial

Hasil dari perkalian matriks di atas adalah:

Gambar 2.17 Hasil perkalian matriks antara state dan polinomial

Selanjutnya operasi perkalian tiap elemen state diperlakukan sebagai bilangan polinomial, misalnya {25} atau 00100101b dinotasikan dengan bilangan polinomial sebagai x5+x2+1. Sebagai contoh {57} {83} = {c1} dapat dijabarkan sebagai berikut: {57} = 01010111b = x6+x4+x2+x+1 {83} = 10000011b = x7+x+1 Sehingga {57} {83} = (x6+x4+x2+x+1) ( x7+x+1) (x6+x4+x2+x+1) (x7) = x13+x11+x9+x8+x7 (x6+x4+x2+x+1) (x) = x7 +x5 +x3+x2+x (x6+x4+x2+x+1) (1) = x6 +x4 +x2+x+1 Menghasilkan x13+x11+x9+x8 +x6+x5+x4+x3 +1

Hasil sementara ini dilakukan operasi sisa hasil bagi (modulur) dengan {01}{1b} atau 100011011b atau x8+x4+x3+x+1. x13+x11+x9+x8 +x6+x5+x4+x3 +1 modulur x8+x4+x3+x+1 (x8+x4+x3+x+1) x5 = x13 +x9+x8 +x6+x5 = x11 +x4+x3 +1 (x8+x4+x3+x+1) x3 = x11 +x7+x6 +x4+x3 = x7+x6 +1 = 0110001b = {c1}

(17)

Algoritma mixcolumns ditunjukkan gambar 8.18.

Gambar 2.18 Mixcolumns

2.4.3 Algoritma Pembangkitan Kunci

Pada algoritma enkripsi AES dalam proses pembangkitan kuncinya, dari kunci asal cipher key K sepanjang 128 bit (Nk=4), 192 bit (Nk=6), atau 256 bit (Nk=8) akan diekspansi kunci sebanyak Nb(Nr+1) dalam bentuk larik kolom 32 bit. Hasil dari pembangkitan kunci ini adalah suatu penjadwalan kunci yang terdiri dari larik kolom 32 bit (4 byte) yang dinotasikan sebagai [wi], dengan 0<=i<Nb(Nr+1). Hasil ekspansi kunci ini adalah:

w0 ... w43 untuk Nr = 10 w0 ... w51 untuk Nr = 12 w0 ... w59 untuk Nr = 14 w1 w2 ... wNb(Nr+1)-1 w0 (4 byte)

(18)

Algoritma pembangkitan kunci ini meliputi beberapa proses seperti SubWord, RotWord, dan Rcon[i/Nk]. Algoritma pembangkitan kunci ini adalah sebagai berikut:

1. Untuk 0<=i<Nk, wi diisi dengan cipher key asal dan panjang wi adalah 32 bit. Misalkan cipher key = 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c, maka: w0 = 2b 7e 15 16 w2 = ab f7 15 88

w1 = 28 ae d2 a6 w3 = 09 cf 4f 3c

Proses yang sama dilakukan untuk panjang kunci 192 bit dan 256 bit.

Gambar 2.20 Larik Kunci Awal wi Hasil Ekspansi

2. Jika i merupakan kelipatan Nk, lakukan operasi RotWord, SubWord, XOR dengan Rcon[i/Nk].

RotWord

Operasi permutasi siklik terhadap 32 bit (4 byte) hasil ekspansi kunci sebelumnya, dalam hal ini adalah wi-1. Misal wi-1 sebagai [a0 a1 a2 a3] dipermutasi menjadi [a1 a2 a3 a0].

(19)

SubWord

Operasi substitusi dari hasil RotWord sebelumnya menggunakan tabel S-box yang juga dipergunakan pada proses SubBytes.

cf S-box 8a

4f 84

3c eb

09 01

Gambar 2.22 Operasi SubWord pada Pembangkitan Kunci

Rcon[i/Nk]

Operasi Rcon[a] memenuhi nilai yang diberikan [xa-1,{00},{00},{00}] dalam bilangan polinomial. Nilai polinomial x dinotasikan sebagai {02} dalam GF(28) atau 00000010b.

Misalnya untuk i = 4 sehingga i/Nk = 1. Rcon[a] = Rcon[1] = [x1-1,{00},{00},{00}]

= [x0,{00},{00},{00}] = [{01},{00},{00},{00}]

Selanjutnya, hasil operasi SubWord di-XOR-kan dengan Rcon[i/Nk]

8a XOR 01 8b 84 00 84 eb 00 eb 01 00 01 Rcon[i/Nk]

Gambar 2.23 Operasi Rcon[i/Nk] pada Pembangkitan Kunci

3. Jika Nk = 8 dan i - 4 adalah kelipatan Nk, maka operasi SubWord dilakukan terhadap wi-1.

4. Operasi XOR antara larik kolom sebelumnya yaitu wi-Nk dengan hasil operasi sebelumnya yaitu Rcon[i/Nk] untuk i kelipatan Nk atau SubWord jika kondisi algoritma ketiga terpenuhi. Hasil dari proses ini adalah hasil akhir untuk perhitungan wi.

(20)

Berikut ini diberikan contoh proses pembangkitan kunci 128 bit (Nk = 4) dengan cipher key = 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c.

w0 = 2b7e1516 w1 = 28aed2a6 w2 = abf71588 w3 = 09cf4f3c

Gambar

Gambar 2.1 (a) Flash Program Memory, (b) Data Memory
Gambar 2.3 Arsitektur Mikrokontroler ATmega32
Tabel 2.1 Koneksi Pin Port Paralel dan ATmega32
Tabel 2.2 Konektor Keyboard AT
+7

Referensi

Dokumen terkait

Selain itu, penelitian ini juga bertujuan untuk mengetahui keefektifan LKPD terintegrasi nilai karakter terhadap pengembangan tanggung jawab, disiplin, serta prestasi belajar

Untuk menemukan hubungan pola asuh orang tua, pergaulan teman sebaya dan media televisi terhadap karakter siswa di SMP Negeri 25 Purworejo, dengan unsur pokok kajian seperti

Jumlah Pegawai Teknisi Kehutanan pada Balai Taman Nasional Kepualuan Seribu Sampai dengan Bulan Desember

1 Hata, maka pada masa itu akan bangkit berdiri Michael, penghulu besar itu, jang memeliharakan perkara segala bani bangsamu; setelah sudah ada suatu masa kesukaran, begitu

Mengikut pemahaman saya, pentaksiran dalam Pendidikan Khas adalah untuk memberi maklumat dan gambaran tentang tahap penguasaan murid dalam pelbagai kemahiran seperti membaca,

Berdasarkan latar belakang yang telah diuraikan di atas, maka rumusan masalah dalam penelitian ini adalah adakah pengaruh intensitas mengikuti bimbingan agama

Artikel yang di muat dalam Buletin Haba kali ini terdiri dari delapan tulisan, dalam naskah tulisan tersebut para penulis mendeskripsikan dan menganalisis berbagai persoalan

Berdasarkan teori ini, suatu perusahaan yang dipandang memiliki reputasi yang baik oleh para stakeholder -nya akan membuat perusahaan itu lebih mudah untuk