• Tidak ada hasil yang ditemukan

BAB III PERANCANGAN 3.1. Gambaran Umum Perusahaan Sejarah Perusahaan

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III PERANCANGAN 3.1. Gambaran Umum Perusahaan Sejarah Perusahaan"

Copied!
18
0
0

Teks penuh

(1)

BAB III PERANCANGAN

3.1. Gambaran Umum Perusahaan 3.1.1. Sejarah Perusahaan

Perusahaan mebel Sumber Urip mulai berdiri dari tahun 1974, berawal dari usaha pembuatan lemari dan peralatan rumah tangga yang disalurkan ke toko-toko di daerah Jakarta dan sekitarnya dengan jumlah karyawan hanya 2 orang. Lokasi pertama dari perusahaan ini hanyalah di halaman rumah pemilik, yang pada saat itu tinggal di daerah Mangga Besar.

Setelah kurang lebih satu tahun, pemilik mengontrak sebidang tanah di daerah Klender untuk dijadikan bengkel kerja selama dua tahun. Setelah masa kontrak itu habis, pada tahun 1977 pemilik mengontrak lokasi baru di daerah Klender dengan luas tanah yang lebih besar dibanding lokasi sebelumnya untuk selama lima tahun. Pada saat ini, perusahaan sudah memiliki sejumlah 15 orang karyawan.

Kemudian pada tahun yang sama, pemilik mengontrak sebidang tanah di daerah yang sama untuk dijadikan toko yang menjual langsung barang-barang hasil produksi sendiri. Pada tahun 1978, pemilik mengontrak lagi sebuah toko di Jl. Pangeran Jayakarta selama 5 tahun untuk menjual langsung barang-barang produksi sendiri, di samping menyalurkan barang-barangnya ke toko-toko lainnya di daerah Jakarta dan sekitarnya.

Pada tahun 1980, pemilik membeli sebidang tanah dan membangun toko di Jl. Pintu Besar Selatan yang hingga kini masih digunakan untuk menjual

(2)

barang-barang produksi sendiri. Setahun kemudian, pemilik juga membeli sebidang tanah di daerah Cakung seluas 3000 m2 yang hingga kini digunakan sebagai pabrik tempat memproduksi barang-barang perabot rumah tangga.

Pada tahun 2003, perusahaan sudah memiliki sekitar 30 karyawan tetap dan sekitar 30 karyawan tidak tetap. Jumlah karyawan saat ini sekitar 30 orang untuk bagian workshop dan showroom.

3.1.2. Kegiatan Operasi Perusahaan

Perusahaan ini melakukan kegiatan produksi dan juga kegiatan penjualan. Kegiatan penjualan dibagi menjadi dua bagian, yaitu penjualan langsung ke konsumen dan penjualan ke toko-toko yang selama ini sudah menjadi langganan.

Penjualan langsung ke konsumen dilakukan melalui toko yang terletak di Jl. Pintu Besar Selatan, di mana konsumen bisa melihat-lihat dan memilih langsung barang apa yang diinginkannya. Lewat toko ini pun konsumen dapat memesan khusus apabila menginginkan barang dengan ukuran yang ditentukan sendiri.

Penjualan ke toko-toko lainnya dilakukan berdasarkan pesanan yang rutin diterima dari toko-toko yang sering memesan barang. Biasanya pesanan dilakukan beberapa kali dalam sebulan, kadang bisa beberapa kali dalam seminggu jika sedang menerima banyak pesanan.

3.2. Analisis Sistem Berjalan

Perusahaan Mebel Sumber Urip memproduksi lebih dari 30 jenis barang, dan juga dapat menerima pesanan khusus. Secara rutin perusahaan ini menerima pesanan dari toko-toko mebel lainnya untuk dijual di toko mereka, pesanan mereka

(3)

antara lain meja tulis, lemari pakaian, rak buku, dan lain-lain baik dalam partai kecil maupun besar.

Selama ini proses produksi untuk memenuhi pesanan, pemetaan potongan-potongan dilakukan dengan manual. Satu atau beberapa orang bertugas menggambar pola potong dalam tiap-tiap lembar material. Hal ini tentu saja membuat proses produksi menjadi lebih lama.

Permasalahan ini menjadi vital bagi jalannya perusahaan karena dengan optimalisasi manual yang dilakukan akan berdampak terutama pada keuntungan

dan kecepatan kerja. Dalam dunia industri, kecepatan kerja adalah salah satu faktor yang sangat penting.

3.3. Penerapan Pemodelan Dalam Perusahaan

Setelah melakukan survei awal dari perusahaan, pemodelan yang terjadi dalam Perusahaan Mebel Sumber Urip adalah:

• Material bahan baku berbentuk finite rectangle • Pola potongan-potongan berbentuk rectangle • Pemotongan menggunakan pola 3-stage

Pola 2-stage tidak mungkin dilakukan karena variasi tinggi ukuran

potongan yang diinginkan. Pola n-stage memang menghasilkan hasil yang

paling efektif. Tetapi skripsi ini tidak memakai algoritma tersebut karena dari segi pemodelan, perhitungan, dan penulisan program jauh lebih kompleks. Untuk perusahaan ini sendiri, karena pemotongan dilakukan

(4)

secara tidak terotomatisasi penuh maka pola 3-stage adalah yang paling

relevan.

• Penataan pola secara oriented karena kayu mempunyai serat khusus,

sehingga panjang setiap potongan yang disusun harus sejajar dengan panjang material bahan dasar. Contoh pola yang valid pada Gambar 3.01, sedangkan

contoh pola yang tidak valid pada Gambar 3.02.

Gambar 3.01 Bentuk Valid.

Gambar 3.02 Bentuk Tidak Valid.

3.4. Pemilihan Algoritma

Berdasarkan model permasalahan pada 3.3 maka keempat algoritma pada 2.7 bisa dipakai untuk menyelesaikan masalah ini. Keempat algoritma tersebut sama-sama mempunyai batasan: potongan-potongan rectangle, material berbentuk finite rectangle, penempatan potongan secara oriented guillotine.

(5)

Dalam skripsi ini algoritma yang dipilih adalah Finite Best-Strip (FBS),

karena menurut pengujian Berkey dan Wang (1987) algoritma FBS paling cepat

perhitungannya dan efektif seperti yang dijelaskan di 2.8.

3.5. Rancangan Output

Gambar hasil dari modul proses akan ditampilkan ke dalam layar. User

dapat memilih halaman berapa yang user ingin lihat, lalu halaman tersebut akan

ditampilkan.

Gambar 3.03 Rancangan Layar Output

3.6. Rancangan Input

User menginput besarnya panjang dan lebar papan yang akan dipotong.

Selain itu user juga menginput besarnya panjang, lebar, dan jumlah potongan yang

diinginkan. Jika ada potongan lain yang ingin ditambahkan, user dapat menekan

tombol ‘+’ untuk menambah potongan yang diinginkan. Jika user merasa

Halaman

Proses Hasil File

(6)

kelebihan potongan, user dapat menekan tombol ‘-‘ untuk mengurangi potongan

yang tidak diinginkan.

Dalam mengisi input, user tidak diijinkan untuk menginput karakter selain

angka, tidak ada input apapun (kosong), nilai 0, nilai negatif, dan nilai pecahan

atau pun koma. Input tinggi material tidak boleh melebihi input lebar potongan. Input tinggi tiap potongan tidak boleh melebihi input lebar masing-masing.

Gambar 3.04 Rancangan Layar Input

3.7. Rancangan Proses

Modul ini berjalan setelah user menekan tombol ‘proses’ dan semua input valid. Jika tidak valid, proses tidak berjalan. Jika valid maka proses dilanjutkan.

Dalam modul ini ada 4 langkah utama yang dilakukan, yaitu: sorting descending

berdasarkan inputan tinggi, memasukkan potongan ke dalam blok, memasukkan

blok ke dalam papan, lalu membuat gambarnya.

Perusahaan Mebel Sumber Urip

Proses Hasil File Material : Tinggi Lebar cm cm Potongan :

Tinggi Lebar Jumlah -

+

(7)

3.7.1. Alur Finite Best-Strip

Langkah-langkah algoritma Finite Best-Strip dapat diilustrasikan pada Gambar 3.05.

(8)

3.7.2. Pseudocode Keseluruhan

1.Input ukuran material dan potongan dari user

2.Cek input

3. Jika salah ulangi input (1)

4. Jika benar masuk ke proses (5)

5.Sorting input berdasarkan tinggi secara descending

6.Masukkan setiap potongan ke dalam blok selama masih cukup 7. Jika tidak cukup cek blok sebelumnya dari awal

8. Jika cukup masukan ke dalam blok tersebut

9. Jika tidak buat blok baru dan masukkan ke dalamnya 10.Lakukan empat langkah di atas hingga potongan habis 11.Sorting blok berdasarkan tinggi secara descending

12.Masukkan setiap blok ke dalam finite bin selama masih cukup

13. Jika tidak buat finitebin baru dan masukkan ke dalamnya

14.Lakukan langkah 12 hingga blok habis 15.Tampilkan solusi ke dalam layar

Langkah-langkah dalam pseudocode ini kemudian diaplikasikan ke dalam bentuk modul, seperti pada Gambar 3.06.

(9)

3.7.3. Diagram alur proses

(10)

Masing-masing modul dalam diagram alur proses di atas, dijelaskan lebih detail dalam 3.7.4.

3.7.4. Rancangan Proses Pseudocode :

Modul sortPotongan : parameter n sebagai integer Deklarasi I,j sebagai integer

Deklarasi temp sebagai array[0..3] of real Dari i=1 sampai n-1 lakukan

temp[0] = potongan[0][i] temp[1] = potongan[1][i] temp[2] = potongan[2][i] j = i

selama potongan[0][j-1] lebih kecil dari temp[0] lakukan potongan[0][j] = potongan[0][j-1]

potongan[1][j] = potongan[1][j-1] potongan[2][j] = potongan[2][j-1] j = j-1

jika j <= 0 maka keluar ulangi potongan[0][j] = temp[0] potongan[1][j] = temp[1] potongan[2][j] = temp[2] selanjutnya Modul susunBlok

Deklarasikan i, jenis sebagai Integer

Deklarasikan sisaWidth sebagai array of real Deklarasikan flag sebagai Boolean

Deklarasikan sisa sebagai real

Dari i=0 sampai jmlItem-1 lakukan

jmlPotongan = jmlPotongan + bulatkan potongan[2][i] jmlBlok = 0

Deklarasikan panjang tinggiBlok sebanyak jmlBlok + 1 Deklarasikan panjang blok sebanyak jmlBlok +1 Deklarasikan panjang sisaWidthsebanyal jmlBlok +1 jenis = 0

currWidht = maxWidht

tinggiBlok[jmlBlok] = potongan[0][jenis] blok[jmlBlok] = ''

selama jmlPotongan > 0 lakukan

sisa = currWidht - potongan[1][jenis] jika sisa < 0 maka

flag = false

(11)

jika sisaWidth[i] - potongan[1][jenis] >= 0 maka

blok[i] = blok[i] + IntToStr(length(IntToStr(jenis))) + IntToStr(jenis) sisaWidth[i] = sisaWidth[i] - potongan[1][jenis] flag = true keluar akhir jika berikutnya

jika flag = false maka

sisaWidth[jmlBlok] = currWidht jmlBlok = jmlBlok +1

Deklarasikan panjang tinggiBlok sebanyak jmlBlok +1 Deklarasikan panjang sisaWidth sebanyak jmlBlok +1 Deklarasikan panjang blok sebanyak jmlBlok +1 tinggiBlok[jmlBlok] = potongan[0][jenis]

blok[i] = IntToStr(length(IntToStr(jenis))) + IntToStr(jenis) currWidht = maxWidht - potongan[1][jenis]

akhir jika

potongan[2][jenis] = potongan[2][jenis]-1 lainnya

potongan[2][jenis] = potongan[2][jenis] -1

blok[i] = blok[i] + IntToStr(length(IntToStr(jenis))) + IntToStr(jenis) currWidht =

currWidht-potongan[1][jenis] akhir jika

jika potongan[2][jenis] = 0 maka jenis = jenis+1 jmlPotongan = jmlPotongan -1

ulangi

Modul blokToPapan

Deklarasikan i sebagai Integer

Deklarasikan currHeight, sisa sebagai real Deklarasikan sisaHeight sebagai array of Real Deklarasikan flag sebagai boolean

currHeight = maxHeight jmlPapan = 0

Deklarasikan panjang sisaHeight sebanyak jmlPapan +1 Deklarasikan panjang papan sebanyak jmlPapan + 1 papan[0] = ''

dari i=0 sampai jmlBlok lakukan sisa = currHeight - tinggiBlok[i] jika sisa < 0 maka

flag = false;

dari j=0 sampai jmlPapan-1 lakukan

jika sisaHeight[j]-tinggiBlok[i] >= 0 maka

papan[j] = papan[j] + IntToStr(length(IntToStr(i))) + IntToStr(i) sisaHeight[j]

(12)

= sisaHeight[j] – tinggiBlok[i] flag = true

keluar akhir jika berikutnya

jika flag = false maka

sisaHeight[jmlPapan] = currHeight jmlPapan = jmlPapan+1

Deklarasikan panjang sisaHeight sebanyak jmlPapan + 1 Deklarasikan panjang papan sebanyak jmlPapan + 1 papan[jmlPapan] = ''

papan[j] = IntToStr(length(IntToStr(i))) + IntToStr(i)currHeight = maxHeight - tinggiBlok[i]

akhir jika lainnya

papan[j] = papan[j] + IntToStr(length(IntToStr(i))) + IntToStr(i)currHeight = currHeight - tinggiBlok[i] akhir jika Modul potong sortPotongan(jmlItem) susunBlok() blokToPapan()

Modul gridDeleteRow : parameter RowNumber sebagai integer, Grid sebagai TStringGrid

Deklarasikan i sebagai Integer Grid.Row = RowNumber

jika Grid.Row = Grid.RowCount – 1 maka Grid.RowCount = Grid.RowCount - 1 lainnya

dari i = RowNumber sampai Grid.RowCount - 1 lakukan Grid.Rows[i] = Grid.Rows[i + 1]

Grid.RowCount = Grid.RowCount - 1 akhir jika

Modul isNum : parameter s sebagai String Deklarasikan Value sebagai Real

Deklarasikan Code sebagai Integer Val(s, Value, Code)

IsNum = Code

Modul drawKotak : parameter x1, y1, x2, y2 sebagai Integer, img sebagai TImage dengan img, Canvas lakukan

MoveTo(x1,y1) LineTo(x2,y1) LineTo(x2,y2)

(13)

LineTo(x1,y2) LineTo(x1,y1) akhir dengan

Modul rescale : parameter h, w sebagai Real Deklarasikan i sebagai Integer

dari i=0 sampai jmlItem-1 lakukan

p[0][i] = (potongan[0][i] * h) /maxHeight p[1][i] = (potongan[1][i] * w) /maxWidht berikutnya

Modul drawSheet : parameter page sebagai Integer Deklarasikan blk sebagai array of Integer

Deklarasikan i,j, size, jns sebagai Integer Deklarasikan h, w, currH, currW sebagai real

h = Image1.Height-1 w = Image1.Width-1 size = Length(papan[page])

Deklarasikan panjang blk sebanyak size

Deklarasikan panjang p sebanyak 2 dan jmlItem rescale(h,w)

dari i:=0 sampai size-1 lakukan

blk[i] = nilai ascii(papan[page][i+1])-48 jika blk[i] > 9 maka

blk[i] = nilai ascii(papan[page][i+1])-55 dengan Image1, Canvas lakukan

Brush.Color = clWhite fillrect(clientrect)

drawKotak(0,0,Image1.Width-1,Image1.Height-1,Image1) currH = h

dari i=0 sampai size-1 lakukan currW = 0

dari j=0 sampai Length(blok[blk[i]])-1 lakukan jns= ord(blok[blk[i]][j+1])-48

jika jns > 9 maka

jns = nilai ascii(blok[blk[i]][j+1])-55

drawKotak(Round (currW), Round (currH+0.5), Round (p[1][jns]+currW-0.5), Round (currH-p[0][jns]), Image1)

TextOut(Round (currW + (p[1][jns]/2)-10-0.5), Round (currH-13), FloatToStr(potongan[1][jns])+' cm')

TextOut(Round(currW+1.5), Round (currH - (p[0][jns]/2)-0.5), FloatToStr(potongan[0][jns])+' cm')

currW = currW + Round (p[1][jns]) berikutnya

currH = currH - Round ((tinggiBlok[blk[i]]*h)/maxHeight) akhir dengan

(14)

berikutnya

Modul tombol button2

StringGrid1.RowCount = StringGrid1.RowCount + 1 Modul tombol button1

Deklarasikan i,j sebagai Integer

Deklarasikan flag, flag2, validInput sebagai Boolean firstExec = true

flag = false flag2 = false validInput = false

jika isNum(Edit1.text) = false maka

MessageDlg('Input Tinggi Harus Berupa Angka', mtWarning, [mbOK],0 ) lainnya jika isNum(Edit2.text) = false maka

MessageDlg('Input Lebar Harus Berupa Angka', mtWarning, [mbOK],0 ) lainnya jika (StrToFloat(Edit1.Text) < 1) or (StrToFloat(Edit2.text) < 1) then

MessageDlg('Tinggi dan lebar tidak boleh kurang dari 1', mtWarning, [mbOK],0 )

lainnya jika StrToFloat(Edit1.Text) < StrToFloat(Edit2.Text) then

MessageDlg('Tinggi tidak boleh lebih besar dari lebar', mtWarning, [mbOK],0 ) lainnya

dari i = 0 sampai StringGrid1.ColCount-1 lakukan flag = true

dari j = 1 sampai StringGrid1.RowCount-1 lakukan jika isNum(StringGrid1.Cells[i,j]) = false maka

MessageDlg('Input Baris ke-'+ IntToStr(j) +' Harus Berupa Angka', mtWarning, [mbOK],0 )

flag = false keluar

akhir jika berikutnya

jika flag = false maka keluar berikutnya

jika flag = true maka flag2 = true

dari i = 1 to StringGrid1.RowCount -1 lakukan

if StrToFloat(StringGrid1.Cells[0,i]) > StrToFloat(Edit2.Text) maka MessageDlg('Baris ke-'+ IntToStr(i) +' tidak dapat masuk ke papan',

mtWarning, [mbOK], 0) flag2 = false

keluar akhir jika

jika StrToFloat(StringGrid1.Cells[1,i]) > StrToFloat(Edit1.Text) maka MessageDlg('Baris ke-'+ IntToStr(i) +' tidak dapat masuk ke papan',

mtWarning, [mbOK], 0) flag2 = false

(15)

keluar akhir jika

jika StrToInt(StringGrid1.Cells[2,i])<1 maka

MessageDlg('Jumlah Pada baris ke-'+ IntToStr(i) +' harus lebih besar dari 0', mtWarning, [mbOK], 0) flag2 = false keluar akhir jika jika StrToFloat(StringGrid1.Cells[1,i]) < 1) or(StrToFloat(StringGrid1.Cells[0,i]) < 1) maka

MessageDlg('Baris ke-'+ IntToStr(i) +' harus bernilai lebih dari 0', mtWarning, [mbOK], 0) flag2 = false keluar akhir jika berikutnya akhir jika

jika flag2 = true maka validInput = true jika validInput = true maka

maxHeight = StrToFloat(Edit2.Text) maxWidht = StrToFloat(Edit1.Text)

Deklarasikan panjang potongan sebanyak StringGrid1.ColCount dan StringGrid1.RowCount-1

dari i = 0 sampai StringGrid1.ColCount-1 lakukan dari j = 1 sampai StringGrid1.RowCount-1 lakukan

potongan[i][j-1] = StrToFloat(StringGrid1.Cells[i,j]) jmlItem := StringGrid1.RowCount-1

potong()

ScrollBar1.Max = jmlPapan jika jmlPapan = 0 maka

ScrollBar1.Enabled = false lainnya ScrollBar1.Enabled = true PageControl1.ActivePage = TabSheet2 ScrollBar1.Position = 0 drawSheet(0) akhir jika akhir jika

Modul form dibuat firstExec = false

StringGrid1.Cells[0,0] = 'Tinggi' StringGrid1.Cells[1,0] = 'Lebar' StringGrid1.Cells[2,0] = 'Jumlah'

(16)

jmlBlok = 0 jmlPapan = 0 jmlPotongan = 0 Modul tombol button3

jika StringGrid1.RowCount > 2 maka

gridDeleteRow(StringGrid1.Row, StringGrid1) Modul menu exit

Application.Terminate() Modul geser ScrollBar1

drawSheet(ScrollBar1.Position)

label7.Caption = IntToStr(ScrollBar1.Position+1) Modul menu save1

Deklarasikan save sebagai TSaveDialog Deklarasikan fileName sebagai String Deklarasikan i sebagai Integer

save = TSaveDialog.Create(self) save.Title = 'Save your picture' save.InitialDir = GetCurrentDir save.Filter = 'Bitmap|*.bmp' save.DefaultExt = 'bmp' save.FilterIndex = 1 jika save.Execute maka

jika firstExec = false maka

ShowMessage('Harus Proses terlebih dahulu') lainnya

dari i= 0 sampai ScrollBar1.Max lakukan drawSheet(i) fileName = copy(save.FileName,1,length(save.FileName)-4) + IntToStr(i+1) + '.bmp' Image1.Picture.SaveToFile(fileName) berikutnya drawSheet(ScrollBar1.Position) akhir jika save.Free akhir jika Modul menu print

Deklarasikan print sebagai TPrintDialog

Deklarasikan printresX, printresY sebagai Integer Deklarasikan RR sebagai TRect

Deklarasikan totalPages, page, endPage sebagai Integer jika firstExec = false maka

(17)

lainnya totalPages = jmlPapan + 1 print = TPrintDialog.Create(Form1) print.Options = [poPageNums] print.MinPage = 1 print.MaxPage = totalPages print.ToPage = totalPages jika print.Execute maka

jika print.FromPage >0 maka page = print.FromPage lainnya

page = 1

jika print.ToPage <> totalPages maka endPage = print.ToPage

lainnya

endPage = totalPages dengan Printer lakukan

Orientation = poLandscape Title = 'Print Papan'

Copies = print.Copies BeginDoc

selama(not Aborted) and Printing lakukan

printresX = GetDeviceCaps(Handle, LOGPIXELSX) printresY = GetDeviceCaps(Handle, LOGPIXELSY)

RR := Rect(printresX, printresY * 3 div 2, PageWidth - printresX, PageHeight - printresY * 3 div 2)

drawSheet(page-1) Canvas.Font.Size = 14

Canvas.TextOut((PageWidth - printresX) + 2, trunc(pageHeight/2), FloatToStr(maxHeight)+ ' cm')

Canvas.TextOut(trunc(PageWidth/2) - 10 , (pageHeight - (printresY * 3 div 2)) + 2, FloatToStr(maxWidht)+ ' cm')

Canvas.StretchDraw(RR, Image1.Picture.Graphic) page := page +1

jika(page <= endPage) and (not Printer.Aborted) maka NewPage lainnya keluar ulangi EndDoc akhir dengan akhir jika drawSheet(ScrollBar1.Position) akhir jika

(18)

3.8. Rancangan Save

User memilih folder dan nama yang diinginkan untuk menyimpan gambar

hasil proses di atas. Hasil simpanannya adalah gambar dengan format .bmp

sebanyak hasil dari proses dengan nama ‘namasimpanan+angka.bmp’. User dapat

mengaktifkan tombol ini dengan shortcut ctrl+S.

3.9. Rancangan Print

User dapat mencetak hasil proses ke dalam kertas dengan sebuah printer. User dapat memilih range halaman yang diinginkan ataupun semua halaman untuk

Gambar

Gambar 3.01 Bentuk Valid.
Gambar hasil dari modul proses akan ditampilkan ke dalam layar. User  dapat memilih halaman berapa yang user ingin lihat, lalu halaman tersebut akan  ditampilkan
Gambar 3.04 Rancangan Layar Input
Gambar 3.05 Diagram Alur Finite Best-Strip
+2

Referensi

Dokumen terkait

Penyandaran Makna Hirâbah dengan Hukum Ta‘zîr Bagi Pelaku Korupsi Sebagaimana telah dijelaskan penulis se- belumnya, hirâbah merupakan tindakan me- ngambil harta orang

Laba yang diperoleh koperasi sering disebut sisa hasil usha (SHU), laba tersebut akan dikembalikan ayau dibagikan kepada anggota sebanding dengan jasa-jasanya. Akan

Di dalam kelas dengan 40 mahasiswa, jika dosen yang bersangkutan tidak memberi nilai E, maka terdapat paling sedikit 10 mahasiswa akan mendapat nilai yang sama, yaitu sama-sama

membujur pegunungan Meratus Utara dari barat ke timur yang juga menjadi.. batas wilayah Provinsi

· Museum Lokal, museum yang koleksinya terdiri dari kumpulan benda yang berasal, mewakili dan berkaitan dengan bukti material manusia dan atau lingkungannya dari

Penulisan Skripsi yang berjudul “MODEL PENGELOLAAN ASET DALAM PENCAPAIAN KEMANDIRIAN OPERASIONAL DI PONDOK PESANTREN ANNUQAYAH DESA GULUK-GULUK KABUPATEN SUMENEP”

Bonus 1 bulan paket berlaku hanya untuk pelanggan pre-order yang menggunakan nomor baru bundling dengan Samsung Galaxy Note8. Paket data bersifat volume-based, jika kuota habis

Berdasarkan potensi, peluang dan tantangan terkait konservasi jenis ramin, telah dilakukan penelitian konservasi ramin melalui penyediaan bibit stek ramin pada