• Tidak ada hasil yang ditemukan

Pengkodean Citra Menjadi Dua Buah Citra Bayang dan Penkodean Menjadi Citra Asal.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pengkodean Citra Menjadi Dua Buah Citra Bayang dan Penkodean Menjadi Citra Asal."

Copied!
31
0
0

Teks penuh

(1)

Penkodean Citra Menjadi Dua Buah Citra Bayang dan Pendekodean Menjadi Citra Asal

Teknik Elektro

i Universitas Kristen Maranatha

PENGKODEAN CITRA MENJADI DUA BUAH CITRA BAYANG

DAN PENDEKODEAN MENJADI CITRA ASAL

Disusun Oleh:

Albert Tanama

0622016

Email : alfonsusalberttanama@yahoo.com

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha

Jalan Prof. Drg. Suria Sumantri 65

Bandung 40164, Indonesia

ABSTRAK

Kriptografi visual merupakan salah satu perluasan dari secret sharing yang diimplementasikan untuk suatu citra. Seperti halnya teknik kriptografi yang lain, visual kriptografi memiliki persyaratan kerahasiaan, integritas data, otentikasi dan nirpenyangkalan.

Kriptografi visual yaitu teknik kriptografi data berupa gambar atau citra dengan membagi gambar tersebut menjadi beberapa bagian. Setiap bagian gambar tersebut adalah subset dari gambar awalnya. Jika dihasilkan n bagian dalam proses enkripsi, maka jika hanya terdapat n-1 bagian, gambar tidak dapat didekripsi. Tujuan awal penggunaan metode ini yaitu untuk membuat sebuah model kriptografi data berupa gambar atau citra yang dapat didekripsi tanpa bantuan komputer.

Pada Tugas Akhir ini skema yang digunakan (2,2), sebuah citra rahasia akan dilakukan pengkodean menjadi dua buah citra bayang lalu pada proses pendekodean dilakukan dengan menumpuk dua buah citra bayang tersebut untuk mendapatkan pesan berupa citra rahasia tersebut

(2)

Penkodean Citra Menjadi Dua Buah Citra Bayang dan Pendekodean Menjadi Citra Asal

Teknik Elektro

ii Universitas Kristen Maranatha

IMAGE CODING INTO TWO IMAGE SHARES AND DECODING

TO ORIGINAL IMAGE

Disusun Oleh:

Albert Tanama

0622016

Email : alfonsusalberttanama@yahoo.com

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha

Jalan Prof. Drg. Suria Sumantri 65

Bandung 40164, Indonesia

ABSTRACT

Visual Cryptography is one extension of secret sharing implemented for an image. Like the other cryptographic techniques, visual cryptography has confidentiality

requirements, data integrity, authentication and non-repudiation.

Visual cryptography is a cryptographic technique data such as pictures or images by dividing the image into several parts. Each section image is a subset of the first image. If the resulting N part in the encryption process, so if there are only N-1 parts, images cannot be decryption. The purpose of the use of this method is to create a model of cryptographic data such as pictures or images that can be decryption without any helps from computer.

In this final scheme used (2.2), a secret image will be encoding into two share images and the decoding process is done by stacking two share images in order to get the message in the form of the secret image.

(3)

Penkodean Citra Menjadi Dua Buah Citra Bayang dan Pendekodean Menjadi Citra Asal

Teknik Elektro

v Universitas Kristen Maranatha

BAB I

PENDAHULUAN

I.1 Latar Belakang Masalah ………..1

I.2 Identifikasi Masalah ……….2

I.3 Perumusan Masalah ……….2

I.4 Tujuan ……….3

I.5 Pembatasan Masalah ………3

I.6 Metodologi ………..3

I.7 Sistematika Penulisan ………..4

BAB II LANDASAN TEORI

II.1 Definisi Kriptografi ……….6

II.2 Terminologi ……….7

II.3 Tujuan Kriptografi………..14

II.4 Pengenalan Kriptografi Visual ………...16

II.5 Cara Kerja Kriptografi Visual ………18

(4)

Penkodean Citra Menjadi Dua Buah Citra Bayang dan Pendekodean Menjadi Citra Asal

Teknik Elektro

vi Universitas Kristen Maranatha

II.7 Pengembangan Kriptografi Visual ……….21

BAB III PERANCANGAN PERANGKAT LUNAK

III.1 Diagram Blok Perangkat Lunak ………26

III.2 Perancangan Perangkat Lunak ………..27

III.3 Prosedur Proses Enkripsi………29

III.4 Prosedur Proses Dekripsi………34

BAB IV HASIL PERCOBAAN DAN ANALISIS DATA

IV.1 Hasil Pengujian dan Analisis Data ……….35

BAB V

KESIMPULAN DAN SARAN

V.1 Kesimpulan……….53

V.2 Saran ………..54

DAFTAR PUSTAKA

………55

(5)

Pengkodean Citra Menjadi Dua Buah Citra Bayang dan Pendekodean Menjadi Citra Asal

Teknik Elektro

vii Universitas Kristen Maranatha

DAFTAR GAMBAR

Gambar II.1 Pesan Plainteks Menjadi Cipherteks ... 7

Gambar II.2 Contoh enkripsi data tertentu di dalam arsip basisdata ... 9

Gambar II.3 (a)Skema enkripsi dan dekripsi, (b) contoh ilustrasi enkripsi dan dekripsi ... 11

Gambar II.4 Codebreaker ... 13

Gambar II.5 .. Kriptografi dan kriptanalisis adalah cabang bidang Ilmu kritologi ... 15

Gambar II.6 .. Contoh Kriptografi Visual... 17

Gambar II.7 .. Cara Kerja Kriptografi Visual ...19

Gambar II.8 .. Contoh Penggunaan Skema k dari n (k = 2, n = 3) ... 20

Gambar II.9 .. Model Kriptografi Visual 2 subpixel...21

Gambar II.10 Pembentukan Subpixel dengan m = 4……… 22

Gambar IV.1 Tabel Hasil Pengujian Kriptografi Visual 2 subpixel skema (2,2)……… 38

Gambar IV.2 Tabel Hasil Pengujian Kriptografi Visual 2 subpixel skema (2,2)……… 42

Gambar IV.2 Tabel Hasil Pengujian Kriptografi Visual 4 subpixel skema (2,2)……… 47

(6)

1 -A

LAMPIRAN A

Program Visual Kriptografi 2 subpixel

Main.m

% Program pembentukan skema kriptografi visual (2,2) 2 subpixel

% Input citra untuk program ini harus berupa citra biner

inImg = imread(‘gambar\face\face1.bmp’); figure;imshow(inImg);title(‘Secret Image’);

%Visual Cryptography

[share1, share2, share12] = VisCrypt(inImg);

%Outputs

figure;imshow(share1);title(‘Share 1’); figure;imshow(share2);title(‘Share 2’);

figure;imshow(share12);title(‘Overlapping Share 1 & 2’);

imwrite(share1,’Share1.bmp’); imwrite(share2,’Share2.bmp’); imwrite(share12,’Overlapped.bmp’);

GenerateShare.m

% Program untuk mengacak permutasi generasi share

% Program ini menghasilkan share 1 dan share 2 secara acak untuk setiap pixel

(7)

2 -A

out = zeros(size(in));

randNumber = floor(1.9*rand(1));

if (randNumber == 1) out = in;

(8)

3 -A

% share12 – Hasil overlapped share 1 dan share 2

function [share1, share2, share12] = VisCrypt(inImg)

s = size(inImg);

share1 = zeros(s(1), (2 * s(2))); share2 = zeros(s(1), (2 * s(2)));

%White Pixel Processing

%White Pixel share combinations disp('White Pixel Processing...'); s1a=[1 0];

pixShare=generateShare(s0a,s0b);

share1((a),(2*b-1):(2*b))=pixShare(1,1:2); share2((a),(2*b-1):(2*b))=pixShare(2,1:2); end

%Black Pixel Processing

%Black Pixel share combinations disp('Black Pixel Processing...'); s0a=[1 0];

(9)

4 -A [x y] = find(inImg == 0);

len = length(x);

for i=1:len a=x(i);b=y(i);

pixShare=generateShare(s1a,s1b);

share1((a),(2*b-1):(2*b))=pixShare(1,1:2); share2((a),(2*b-1):(2*b))=pixShare(2,1:2); end

share12=bitxor(share1, share2); share12 = ~share12;

(10)

5 -A Main.m

% Program pembentukan skema kriptografi visual (2,2) 2 subpixel

% Input citra untuk program ini harus berupa citra biner

inImg = imread(‘gambar\face\face1.bmp’); figure;imshow(inImg);title(‘Secret Image’);

%Visual Cryptography

[share1, share2, share12] = VisCrypt(inImg);

%Outputs

figure;imshow(share1);title(‘Share 1’); figure;imshow(share2);title(‘Share 2’);

figure;imshow(share12);title(‘Overlapping Share 1 & 2’);

imwrite(share1,’Share1.bmp’); imwrite(share2,’Share2.bmp’); imwrite(share12,’Overlapped.bmp’);

GenerateShare.m

% Program untuk mengacak permutasi generasi share

% Program ini menghasilkan share 1 dan share 2 secara acak untuk setiap pixel

function out = generateShare(a,b)

(11)

6 -A

out = zeros(size(in));

randNumber = floor(1.9*rand(1));

if (randNumber == 1) out = in;

elseif (randNumber == 0) a(1) = a2;

(12)

7 -A s = size(inImg);

share1 = zeros(s(1), (2 * s(2))); share2 = zeros(s(1), (2 * s(2)));

%White Pixel Processing

%White Pixel share combinations disp('White Pixel Processing...'); s1a=[0 1];

pixShare=generateShare(s0a,s0b);

share1((a),(2*b-1):(2*b))=pixShare(1,1:2); share2((a),(2*b-1):(2*b))=pixShare(2,1:2); end

%Black Pixel Processing

%Black Pixel share combinations disp('Black Pixel Processing...'); s0a=[0 1];

s0b=[1 0];

(13)

8 -A for i=1:len

a=x(i);b=y(i);

pixShare=generateShare(s1a,s1b);

share1((a),(2*b-1):(2*b))=pixShare(1,1:2); share2((a),(2*b-1):(2*b))=pixShare(2,1:2); end

share12=bitxor(share1, share2); share12 = ~share12;

(14)

1 - B

LAMPIRAN B

Program Visual Kriptografi 4 subpixel

Main.m

% Program pembentukan skema kriptografi visual (2,2) 4 subpixel

% Input citra untuk program ini harus berupa citra biner

inImg = imread(‘gambar\face\face1.bmp’); figure;imshow(inImg);title(‘Secret Image’);

%Visual Cryptography

[share1, share2, share12] = VisCrypt(inImg);

%Outputs

figure;imshow(share1);title(‘Share 1’); figure;imshow(share2);title(‘Share 2’);

figure;imshow(share12);title(‘Overlapping Share 1 & 2’);

imwrite(share1,’Share1.bmp’); imwrite(share2,’Share2.bmp’); imwrite(share12,’Overlapped.bmp’);

GenerateShare.m

% Program untuk mengacak permutasi generasi share

% Program ini menghasilkan share 1 dan share 2 secara acak untuk setiap pixel

(15)

2 - B a1 = a(1);

a2 = a(2); a3 = a(3); a4 = a(4);

b1 = b(1); b2 = b(2); b3 = b(3); b4 = b(4);

in = [a ; b ];

out = zeros(size(in));

randNumber = floor(1.9*rand(1));

if (randNumber == 0) out = in;

elseif (randNumber == 1) a(1) = a2;

a(2) = a1; a(3) = a4; a(4) = a3;

(16)

3 - B b(4) = b3;

out = [a ; b ]; end

Viscrypt.m

%Kegunaan:

%Input: inImg – Sebuah citra biner

%Output: share 1 - Generated share 1

% share 2 - Generated share 2

% share12 – Hasil overlapped share 1 dan share 2

function [share1, share2, share12] = VisCrypt(inImg)

s = size(inImg);

share1 = zeros(2*s(1), (2 * s(2))); share2 = zeros(2*s(1), (2 * s(2)));

%%White Pixel Processing %White Pixel share combinations disp('White Pixel Processing...'); s1a=[1 0;0 1];

s1b=[1 0;0 1];

(17)

4 - B for i=1:len

a=x(i)*2;b=y(i)*2;

pixShare=generateShare(s1a,s1b);

share1((a:a+1),(b:b+1))=pixShare(1:2,1:2); share2((a:a+1),(b:b+1))=pixShare(3:4,1:2);

end

%Black Pixel Processing

%Black Pixel share combinations disp('Black Pixel Processing...'); s0a=[1 0;0 1];

pixShare=generateShare(s0a,s0b);

share1((a:a+1),(b:b+1))=pixShare(1:2,1:2); share2((a:a+1),(b:b+1))=pixShare(3:4,1:2);

end

(18)

5 - B disp('Share Generation Completed.'); Main.m

% Program pembentukan skema kriptografi visual (2,2) 4 subpixel

% Input citra untuk program ini harus berupa citra biner

inImg = imread(‘gambar\face\face1.bmp’); figure;imshow(inImg);title(‘Secret Image’);

%Visual Cryptography

[share1, share2, share12] = VisCrypt(inImg);

%Outputs

figure;imshow(share1);title(‘Share 1’); figure;imshow(share2);title(‘Share 2’);

figure;imshow(share12);title(‘Overlapping Share 1 & 2’);

imwrite(share1,’Share1.bmp’); imwrite(share2,’Share2.bmp’); imwrite(share12,’Overlapped.bmp’);

GenerateShare.m

% Program untuk mengacak permutasi generasi share

% Program ini menghasilkan share 1 dan share 2 secara acak untuk setiap pixel

function out = generateShare(a,b)

(19)

6 - B

out = zeros(size(in));

randNumber = floor(1.9*rand(1));

if (randNumber == 0) out = in;

(20)

7 - B out = [a ; b ];

end

Viscrypt.m

%Kegunaan:

%Input: inImg – Sebuah citra biner

%Output: share 1 - Generated share 1

% share 2 - Generated share 2

% share12 – Hasil overlapped share 1 dan share 2

function [share1, share2, share12] = VisCrypt(inImg)

s = size(inImg);

share1 = zeros(2*s(1), (2 * s(2))); share2 = zeros(2*s(1), (2 * s(2)));

%%White Pixel Processing %White Pixel share combinations disp('White Pixel Processing...'); s1a=[1 0;1 0];

s1b=[1 0;1 0];

[x y] = find(inImg == 1); len = length(x);

for i=1:len

(21)

8 - B pixShare=generateShare(s1a,s1b);

share1((a:a+1),(b:b+1))=pixShare(1:2,1:2); share2((a:a+1),(b:b+1))=pixShare(3:4,1:2);

end

%Black Pixel Processing

%Black Pixel share combinations disp('Black Pixel Processing...'); s0a=[1 1;0 0];

s0b=[0 0;1 1];

[x y] = find(inImg == 0); len = length(x);

for i=1:len

a=x(i)*2;b=y(i)*2;

pixShare=generateShare(s0a,s0b);

share1((a:a+1),(b:b+1))=pixShare(1:2,1:2); share2((a:a+1),(b:b+1))=pixShare(3:4,1:2);

end

share12=bitxor(share1, share2); share12 = ~share12;

(22)

1 - C

LAMPIRAN C

inImg = imread('face1.bmp'); %citra asli%

[m,n] = size(inImg); %matriks ukuran m*n sebesar inImg% outImg = imread('face.bmp'); %citra hasil dari hasil 2 subpixel%

[k,l]= size(outImg); %matriks ukuran k*l = m*2n hasil dari 2 subpixel%

aa= size(inImg); %matriks untuk menyimpan hasil outImg seukuran array inImg%

for k = 1:k %looping k kali%

for l = 1:2:l %looping sebanyak l kali count number 2

aa(k,ceil(l/2)) = outImg(k,l); %simpan nilai outImg kedalam array ukuran mn% end

end

(23)

1-D

LAMPIRAN D

inImg = imread('view13.bmp'); %citra asli%

[m,n] = size(inImg); %matriks ukuran m*n sebesar inImg%

outImg = imread('view13a.bmp'); %citra hasil dari hasil 4 subpixel% [k,l]= size(outImg); %matriks ukuran k*l = 2m*2n hasil dari 4 subpixel%

aa= size(inImg); %matriks untuk menyimpan hasil outImg seukuran array inImg%

for k = 2:2:k %looping k kali%

for l = 2:2:l %looping sebanyak l kali count number 2

aa( ceil(k/2),ceil(l/2)) = outImg(k,l); %simpan nilai outImg kedalam array ukuran mn% end

end

mse = sum(sum(aa - inImg).^2)/(m*n) %rumus MSE = mean square error%

%secara logis jika kedua nilai dari citra adalah sama/tidak berubah maka hasil MSE adalah 0%

psnr = 10*(log(1^2/mse))

(24)

BAB I PENDAHULUAN

I.1 Latar Belakang Masalah

Berkat perkembangan teknologi yang begitu pesat memungkinkan manusia dapat berkomunikasi dan saling bertukar informasi / data secara jarak jauh. Antar kota antar wilayah antar Negara bahkan antar benua bukan merupakan suatu kendala lagi dalam melakukan komunikasi dan pertukaran data. Seiring dengan itu tuntutan akan sekuritas (keamanan) terhadap kerahasiaan informasi yang saling dipertukarkan tersebut, semakin meningkat. Begitu banyak pengguna seperti departemen pertahanan, suatu perusahaan atau bahkan individu-individu tidak ingin informasi yang disampaikannya diketahui oleh orang lain atau kompetitornya atau Negara lain. Oleh karena itu dikembangkanlah cabang ilmu yang mempelajari tentang cara-cara pengamanan data atau dikenal dengan istilah Kriptografi.

Dalam kriptografi terdapat dua konsep utama yakni enkripsi dan dekripsi. Enkripsi adalah proses dimana informasi / data yang hendak dikirim diubah menjadi bentuk yang hampir tidak dikenali dengan istilah sebagai informasi awalnya menggunakan algoritma tertentu. Dekripsi adalah kebalikan dari enkripsi yaitu mengubah kembali bentuk tersamar tersebut menjadi informasi / data awal.

(25)

BAB I PENDAHULUAN

Teknik Elektro

2

Universitas Kristen Maranatha transparansi. Skema rahasia ini disebut Kriptografi Visual. Lapisan pertama berisi piksel acak dan lapisan berikutnya berisi informasi rahasia. Kriptografi Visual dapat dikatakan merupakan bentuk visual dari operasi XOR.

Keamanan skema ini dianggap sangat tinggi dan sampai sekarang tidak dapat dipecahkan. Cara untuk mendekripsi pesan tersebut juga sangat mudah dan dapat dilakukan tanpa bantuan komputer, berbeda dengan teknik kriptografi lain yang membutuhkan bantuan komputer untuk dekripsinya. Untuk dekripsi Kriptografi Visual penerima cukup mencetak gambar hasil enkripsi pada kertas-kertas putih tipis. Kemudian kertas tersebut cukup ditumpuk di atas satu sama lain dan diarahkan ke cahaya terang, gambar-gambar pesan tersebut akan saling bertumpukan dan penerima dapat melihat pesan yang terkandung di dalamnya. Keuntungan teknik ini juga adalah penerima memerlukan bantuan visual secara manual (mata) untuk membaca pesan tersebut.

I.2 Identifikasi Masalah

Berdasarkan latar belakang di atas, masalah yang akan dibahas pada Tugas Akhir ini adalah mengenai pembuatan perangkat lunak kriptografi visual dan cara kerja dari perangkat lunak tersebut.

I.3 Perumusan Masalah

(26)

BAB I PENDAHULUAN

Teknik Elektro

3

Universitas Kristen Maranatha

 Bagaimana merealisasikan perangkat lunak yang mampu untuk melakukan pengkodean dan pendekodean pada sebuah citra.

I.4 Tujuan

Tujuan yang ingin dicapai dari Tugas Akhir ini adalah :

 Merealisasikan perangkat lunak yang mampu melakukan proses pengkodean citra menjadi dua buah citra bayang dan pendekodean menjadi citra asal.

I.5 Pembatasan Masalah

 Pembuatan program menggunakan Matlab

 Citra yang ingin digunakan hanya 2 warna yaitu hitam dan putih

I.6 Metodologi

Metodologi dalam tugas akhir ini adalah dengan eksperimental sehingga hasilnya dapat diuji. Langkah-langkahnya adalah :

1. Mempelajari teori kriptografi visual

2. Perancangan perangkat lunak kriptografi visual

(27)

BAB I PENDAHULUAN

Teknik Elektro

4

Universitas Kristen Maranatha I.7 Sistematika Penulisan

Sistematika pembahasan laporan Tugas Akhir ini disusun menjadi lima bab, yaitu sebagai berikut :

 Bab I PENDAHULUAN

Pada bab pendahuluan ini dibahas tentang latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, metodologi, dan sistematika penulisan.

 Bab II LANDASAN TEORI

Untuk memudahkan pembahasan tentang Tugas Akhir ini, disertakan teori pendahuluan yang membahas definisi kriptografi, termonologi, tujuan kriptografi, pengenalan kriptografi visual, cara kerja kriptografi visual, serta model kriptografi.

(28)

BAB I PENDAHULUAN

Teknik Elektro

5

Universitas Kristen Maranatha

 Bab IV PENGUJIAN PERANGKAT LUNAK

Untuk melihat hasil rancangan perangkat lunak, maka dibuat pengujian perangkat lunak

 Bab V KESIMPULAN DAN SARAN

Kesimpulan dan saran disusun untuk memberikan gambaran tentang Tugas Akhir yang dilakukan.

(29)

BAB V KESIMPULAN DAN SARAN

Teknik Elektro

53 Universitas Kristen Maranatha

BAB V

KESIMPULAN DAN SARAN

Pada bab ini akan dijelaskan mengenai kesimpulan-kesimpulan yang diambil berdasarkan hasil pengamatan dan saran-saran untuk pengembangan lebih lanjut.

V.1 KESIMPULAN

1. Perangkat lunak yang digunakan untuk pengkodean citra menjadi 2 buah citra bayang dan pendekodean citra menjadi citra asal berjalan dengan baik.

2. Kriptografi visual yang diterapkan pada gambar / citra menggunakan komputasi kriptografi yang sederhana.

(30)

BAB V KESIMPULAN DAN SARAN

Teknik Elektro

54 Universitas Kristen Maranatha V.2 SARAN

1. Perangkat lunak yang dibuat dapat dikembangkan untuk skema-skema yang belum diimplementasikan, terutama pada citra berwarna.

2. Perangkat lunak yang dibuat dapat dikembangkan untuk skema > (2,2)

(31)

Pengkodean Citra Menjadi Dua Buah Citra Bayang dan Pendekodean Menjadi Citra Asal

Teknik Elektro

55

Universitas Kristen Maranatha

DAFTAR PUSTAKA

1. C.C. Wu, L.H. Chen, “A study On Visual Cryptography”, Master Thesis, Institute of Computer and Information Science, National Chiao Tung University, Taiwan, R.O.C., 1998

2. Munir, Rinaldi, Kriptografi, Penerbit Informatika, 2006

3. N.Naor and A.Shamir, Visual Cryptography Advances in Cryptography :

Eurocrypt’94, Springer Verleg, Berlin, ppi-129(1995). 4. http://informatika.stei.itb.ac.id

Referensi

Dokumen terkait

Selаnjutnyа sidаng pаdа Penggаdilаn Tinggi Medаn dаlаm pertimbаngаn hukum menyаmpаikаn, bаhwа permohonаn bаnding yаng diаjukаn oleh Kuаsа Hukum

Berdasarkan diagram 1, diperoleh gambaran pengetahuan Tentang Pemeriksaan Pap Smear Pada Pasangan Usia Subur di Desa Sungai Cemara Kecamatan Sadu Kabupaten Tanjung

Dari perincian isi buku itu, tampak bahwa Mushthafa al-Syiba’i hendak meyakinkan umat Islam betapa pentingnya posisi hadits bagi umat Islam, sekaligus pada saat yang sama

Pengertian KLB : (1) Sistem Kewaspadaan Dini (SKD) KLB adalah kewaspadaan terhadap penyakit berpotensi KLB beserta faktor-faktor yang mempengaruhinya dengan menerapkan

Pada bulan Januari 2017, NTPT mengalami penurunan sebesar 0,56 persen apabila dibandingkan bulan Desember 2016 yaitu dari 98,62 menjadi 98,07, hal ini terjadi karena

Perkembangan dilapangan yang ditemukan penulis pada Desember 2007 di ruang Yudistira Rumah Sakit Dr.H.Marzoeki Mahdi Bogor, 45% pasien setelah pemberian

Penelitian ini memfokuskan pada penghasilan usaha kecil dilihat dari manajemen usaha yang meliputi promosi, penetapan harga dan lokasi Pedagang dalam bidang penjualan

Dalam penelitian ini angket digunakan sebagai alat pengumpul data yang pokok tentang persepsi dan ekspektasi mahasiswa terhadap profesi kejuruan.. Angket berfungsi