![]() |
![]() |
Digunakan untuk menampilkan gambar dalam format bitmaps (BMP), device independent bitmaps (DIB), metafiles (WMF), enhanced metafiles (EMF), GIF dan JPEG compressed files, dan icons (ICO dan CUR).
Properti | Fungsi |
BorderStyle | Digunakan untuk menentukan jenis border
yang digunakan (0 - None, 1 - Fixed Single)
|
DragIcon | Digunakan untuk menentukan icon yang digunakan pada operasi drag-n-drop pada kontrol label |
DragMode | Menentukan modus drag-n-drop (0 - manual, 1 - automatic) |
Enabled | Menentukan apakah kontrol dapat menerima event yang dibuat oleh pemakai, misalnya event Click, MouseDown, MouseUp, dll. |
Height | Digunakan untuk menentukan tinggi dari kontrol |
Index | Digunakan untuk menentukan nomor index, jika kontrol tersebut merupakan kontrol array. |
Left | Digunakan untuk menentukan jarak kiri kontrol dari kontainernya. |
MouseIcon | Digunakan untuk menentukan icon mouse yang digunakan ketika pointer mouse berada diatas kontrol label tersebut, properti ini berarti bila properti MousePointer diset menjadi (99 - Custom) |
MousePointer | Digunakan untuk menentukan bentuk pointer yang digunakan ketika mouse pointer berada diatas kontrol label tersebut. |
Stretch | Digunakan untuk menentukan apakah gambar
disesuaikan dengan ukuran kontrol (gambar dapat menggalami pengecilan
maupun pembesaran)
|
Picture | Digunakan untuk menentukan gambar dalam image, atau mengambil gambar dalam image. |
Tag | Properti ini dapat digunakan sebagai tempat menyimpan data sementara yang berkaitan dengan kontrol picture tersebut |
ToolTipText | Digunakan untuk menentukan tip tulisan ketika mouse pointer berada diatas kontrol |
Top | Digunakan untuk menentukan jarak atas kontrol dari kontainernya. |
Visible | Digunakan untuk menentukan apakah kontrol label tersebut Visible atau tidak (False, True) |
Width | Digunakan untuk menentukan lebar kontrol label |
Pada saat design anda dapat mengisikan gambar kedalam image box dengan menggunakan properti Picture, sedangkan pada runtime anda dapat menggunakan fungsi LoadPicture(namafile) untuk memuat gambar ke properti Picture dari kontrol image, contoh :
MyImage.Picture = LoadPicture("C:\Grafik\Indoprog.gif")
Catatan :
Fungsi LoadPicture(namafile) digunakan untuk memuat file grafik dengan format grafik bitmap (.bmp), icon (.ico), run-length encoded (.rle), metafile (.wmf), enhanced metafiles (.emf), GIF, JPEG (.jpg).
Anda dapat menggunakan metoda GetData(option) dari object Clipboard untuk mengambil isi Clipboard ke suatu kontrol image, contoh :
MyImage.Picture = Clipboard.GetData
Catatan :
Metoda GetData Mengembalikan suatu grafik dari objek Clipboard, format adalah suatu konstanta optional yang menentukan format grafik. Jika format adalah 0 (nol) atau diabaikan, GetData secara otomatis.
argumen format Optional. Suatu konstanta atau nilai yang menunjukkan format grafik pada clipboard, Jika format 0 (nol) atau diabaikan, GetData otomatis menggunakan format yang sesuai. Adapun nilai konstanta untuk argumen format Optional adalah sebagai berikut :
Konstanta | Nilai | Keterangan |
vbCFBitmap | 2 | Bitmap (.bmp) |
vbCFMetafile | 3 | Metafile (.wmf) |
vbCFDIB | 8 | Device-independent bitmap (DIB) |
vbCFPalette | 9 | Color palette |
Untuk mengosongkan kontrol image pada saat runtime, anda dapat menggunakan fungsi LoadPicture, tanpa menggunakan argumen nama file, contoh :
MyImage.Picture = LoadPicture
Anda dapat juga menggunakan fungsi LoadPicture tanpa argumen untuk memeriksa apakah kontrol image dalam keadaan kosong atau tidak.
If MyImage.Picture = LoadPicture Then
MsgBox "Gambar harus diisi"
Endif
Anda dapat menggunakan perintah SavePicture gambar, namafile untuk menyimpan gambar kedalam file dengan format BMP, contoh :
SavePicture MyImage.Picture, "C:\Grafik\Indoprog.bmp"
Catatan :
Perintah SavePicture akan selalu menyimpan gambar ke format bitmap (.bmp), tanpa memperhatikan format sumber gambar.
Kalau image digunakan untuk menampilkan gambar, demikian juga picturebox. Selain menampilkan gambar picture box mendukung berbagai metoda untuk operasi grafik, dan dapat berfungsi sebagai kontainer bagi kontrol-kontrol lain.
Contoh :
Dihasilkan oleh pemakaian metoda Line, dan Pset pada PictureBox
Private Sub cmdGrafik_Click() MyPicture.ScaleMode = 0 MyPicture.ScaleWidth = 360 MyPicture.ScaleHeight = 2 MyPicture.ScaleLeft = 0 MyPicture.ScaleTop = -1 MyPicture.Line (0, 0)-(360, 0) For i = 0 To 360 MyPicture.PSet (i, -Sin(i * 3.14 / 180)) MyPicture.PSet (i, -Cos(i * 3.14 / 180)) Next i End Sub
Berikut ini adalah picturebox sebagai kontainer.
Properti | Fungsi |
Align | Digunakan untuk menentukan bagaimana pemerataan objek pada form (0 - None, 1 - Align Top, 2 - Align Bottom, 3 - Align Left, 4 - Align Right) |
Appearance | sda |
BackColor | Digunakan untuk menentukan warna latar
belakang.
|
AutoRedraw | Digunakan untuk menentukan apakah grafik yang dihasilkan dengan metoda pengambaran (Line, Circle, PSet) akan dijadikan sebagai bitmap yang tetap. |
AutoSize | Digunakan untuk menentukan apakah ukuran kontrol otomatis disesuaikan dengan ukuran objek picture. |
BorderStyle | sda |
CauseValidation | Digunakan untuk menentukan apakan event Validate di aktifkan ketika kontrol akan kehilangan fokus (False, True) |
ClipControl | Digunakan untuk menentukan icon yang digunakan pada operasi drag-n-drop pada kontrol label |
DragIcon | Digunakan untuk menentukan icon yang digunakan pada operasi drag-n-drop pada kontrol label |
DragMode | Menentukan modus drag-n-drop (0 - manual, 1 - automatic) |
DrawMode | Menentukan jenis modus yang digunakan pada saat pengambaran grafik dalam picture dimana merupakan interaksi antara warna latar belakang dengan warna garis sehingga menghasilkan warna baru. |
DrawStyle | Menentukan style garis yang digunakan dalam mengambar garis. |
DrawWidth | Menentukan ukuran garis pengambaran |
Enabled | Menentukan apakah kontrol label dapat menerima event yang dibuat oleh pemakai, misalnya event Click, MouseDown, MouseUp, dll. |
FillColor | Menentukan warna pengisian grafik |
FillStyle | Menentukan pola pengisian grafik
|
Font | Digunakan untuk menentukan jenis font, ukuran, style, dll |
ForeColor | Digunakan untuk menentukan warna tulisan
Contoh : Private Sub cmdGrafik_Click() MyPicture.ScaleMode = 0 MyPicture.ScaleWidth = 360 MyPicture.ScaleHeight = 2 MyPicture.ScaleLeft = 0 MyPicture.ScaleTop = -1 MyPicture.ForeColor = vbBlack 'Set ForeColor jadi hitam MyPicture.Line (0, 0)-(360, 0) 'Garis hitam For i = 0 To 360 MyPicture.ForeColor = vbRed MyPicture.PSet (i, -Sin(i * 3.14 / 180)) 'Titik Merah MyPicture.ForeColor = vbBlue MyPicture.PSet (i, -Cos(i * 3.14 / 180)) 'Titik Biru Next i End Sub |
FontTransparant | Digunakan untuk menentukan apakah latar
belakang tulisan transparant atau tidak.
Private Sub MyCommand_Click() MyPicture.FontTransparent = True MyPicture.Print "Transparent" MyPicture.FontTransparent = False MyPicture.Print "Tidak Transparent" End Sub |
Height | Digunakan untuk menentukan tinggi dari kontrol |
Index | Digunakan untuk menentukan nomor index, jika kontrol tersebut merupakan kontrol array. |
Left | Digunakan untuk menentukan jarak kiri kontrol dari kontainernya. |
MouseIcon | Digunakan untuk menentukan icon mouse yang digunakan ketika pointer mouse berada diatas kontrol label tersebut, properti ini berarti bila properti MousePointer diset menjadi (99 - Custom) |
MousePointer | Digunakan untuk menentukan bentuk pointer yang digunakan ketika mouse pointer berada diatas kontrol label tersebut. |
Picture | Digunakan untuk menentukan gambar dalam picture box. |
ScaleMode | Digunakan untuk menentukan unit skala
yang digunakan (0 - User, 1 - Twip, 2 - Point, 3 - Pixel, 4 - Character,
5 - Inch, 6 - Milimeter, 7 - Centimeter)
1 inchi = 1440 Twip 1 inchi = 72 point 1 character = (120 Twip untuk lebar, 240 untuk tinggi) 1 cm = 1000 unit (Himetric) Anda dapat membuat modus skala sendiri dengan menset properti ini menjadi 0 - User, dan skala anda dapat ditentukan pada ScaleWidth dan ScaleHeight, perhatikan kembali contoh Grafik sinus sebelumnya. |
ScaleLeft | Digunakan untuk menentukan nilai koodinat horizontal paling kiri, anda dapat menggunakan properti ini untuk menentukan koordinat paling kiri dari suatu sumbu X. |
ScaleTop | Digunakan untuk menentukan nilai koodinat vertikal paling atas, anda dapat menggunakan properti ini untuk menentukan koordinat paling atas dari suatu sumbu Y. |
ScaleHeight | Digunakan untuk menentukan tinggi sumbu vertikal. Menentukan panjang sumbu Y. |
ScaleWidth | Digunakan untuk menentukan panjang sumbu horizontal. Menentukan panjang sumbu X. |
Tag | Properti ini dapat digunakan sebagai tempat menyimpan data sementara yang berkaitan dengan kontrol picture tersebut |
ToolTipText | Digunakan untuk menentukan tip tulisan ketika mouse pointer berada diatas kontrol |
Top | Digunakan untuk menentukan jarak atas kontrol dari kontainernya. |
Visible | Digunakan untuk menentukan apakah kontrol label tersebut Visible atau tidak (False, True) |
Width | Digunakan untuk menentukan lebar picturebox |
Properti | Fungsi |
CurrentX | Digunakan untuk mendapatkan/menentukan posisi X yang sedang aktif, digunakan untuk perintah Print |
CurrentY | Digunakan untuk mendapatkan/menentukan posisi Y yang sedang aktif, digunakan untuk perintah Print |
Pengolahan gambar dalam Picturebox dapat dicontoh dari contoh pada Image diatas.
Salah satu perbedaan antara Image dengan Picturebox adalah tersedianya berbagai metoda pengambaran grafik pada Picturebox, antara lain :
Metoda | Keterangan |
Circle(x,y),r,warna,awal,akhir,Aspek | Mengambarkan sebuah lingkaran dengan berpusat pada koordinat x,y dan jari-jari r dengan warna garis, mulai dari sudut awal, sampai sudut akhir yang dinyatakan dalam radian), serta aspek perbandingkan tinggi dengan lebar. |
Cls | Membersihkan Picturebox dengan warna BackColor |
Line (x1,y1) - (x2, y2),warna | Mengambarkan garis tunggal dari koordinat x1,y1 sampai dengan x2,y2 |
Line (x1,y1) - (x2, y2),warna,B | Mengambarkan kotak dari koordinat x1,y1 sampai dengan x2,y2 |
Line (x1,y1) - (x2, y2),warna,BF | Mengambarkan kotak berisi dari koordinat x1,y1 sampai dengan x2,y2 |
PSet (x,y) | Mencetak dot (titik) pada koordinat tertentu pada Form, Picturebox, dan Printer, pada koordinat yang ditentukan |
PSet Step (x,y) | Mencetak dot (titik) pada koordinat relatif terhadap posisi dot sebelunnya. |
Point(x,y) | Mendapatkan warna dot (titik) tertentu
pada layar
Contoh : Color& = MyPicture.Point(100,200) |
Refresh | Menyebabkan kontrol picture dan bitmap tetapnya digambar ulang. |
Event Paint akan diaktifkan ketika PictureBox mengalami pengambaran. Anda dapat menggunakan event ini untuk menjalankan fungsi-fungsi tertentu ketika PictureBox digambar.
Metoda PaintPicture merupakan metoda yang sangat bermanfaat untuk melakukan operasi seperti pembesaran, pengecilan, duplikasi sebagian gambar berdasarkan koordinat tertentu. Adapun sintax penulisannya adalah sebagai berikut :
PictureboxTujuan.PaintPicture PictureboxAsal, posisiXtujuan, posisiYtujuan, [lebarTujuan], _ [tinggiTujuan], [koordinatXAsal], [KoordinatYAsal], [lebarAsal], [tinggiAsal]
Private Sub cmdCopy_Click() Tujuan.PaintPicture MyPicture.Image, _ 0, 0, Tujuan.Width, Tujuan.Height, _ 0, 0, MyPicture.Width, MyPicture.Height End Sub
Untuk meyimpan ataupun mengambil grafik yang terdapat dalam suatu picturebox, baik yang di muat dari suatu file gambar, maupun yang dibuat dengan menggunakan metoda pengambaran, Anda dapat menggunakan properti image.
Contoh :
SavePicture MyPicture.Image, "C:\Grafik.bmp"
IsNumeric(ekspresi)
Mengembalikan nilai boolean yang menunjukkan suatu ekspresi dapat dievaluasi sebagai numerik
IsEmpty(ekspresi)
Mengembalikan nilai boolean yang menunjukkan suatu variabel telah diinitialiasi, biasanya fungsi ini digunakan untuk memeriksa variabel yang dideklarasikan sebagai Variant.
Contoh :
Dim A as Variant If IsEmpty(A) Then Msgbox "Variabel A Empty" 'Message akan muncul karena A belum terinisialisai End If A = 1 If IsEmpty(A) Then Msgbox "Variabel A masih Empty" 'Tidak akan muncul lagi karena A telah 'terinisialisasi sebagai Integer End If
Dim B as Integer If IsEmpty(B) Then Msgbox "Variabel B Emtpy" 'Tidak akan muncul karena B adalah Integer End If
IsNull(ekspresi)
Mengembalikan nilai boolean yang menunjukkan suatu ekspresi mengandung data yang tidak valid, biasanya digunakan untuk memeriksa isi field recordset.
IsArray(varname)
Mengembalikan suatu nilai boolean yang menunjukan suatu variabel adalah suatu array.
IsDate(ekspresi)
Mengembalikan suatu nilai boolean yang menunjukan suatu ekspresi dapat dikonversi ke date.
IsError(ekspresi)
Mengembalikan suatu nilai boolean yang menunjukkan suatu ekspresi adalah nilai error
IsObject(ekspresi)
Mengembalikan suatu nilai boolean yang menunjukkan suatu ekspresi mengacu pada suatu OLE Automation object.
IsMissing(argname)
Mengembalikan suatu nilai boolean yang menunjukan suatu argumen optional pada procedure ada dilewatkan atau tidak
CBool(ekspresi)
Konversi suatu ekspresi ke boolean
Contoh :
A = 5: B = 5 ' Inisialiasi variabel Check = CBool(A = B) ' Check berisi nilai True A = 0 Check = CBool(A) ' Check berisi False.
CByte(ekspresi)
Konversi ekspresi ke Byte
Contoh :
MyDouble = 125.5678 ' MyDouble adalah suatu nilai Double MyByte = CByte(MyDouble) ' MyByte berisi 126.
CCur(ekspresi)
Konversi suatu ekspresi ke Currency
Contoh :
MyDouble = 543.214588 ' MyDouble adalah suatu nilai Double. MyCurr = CCur(MyDouble * 2) ' Konversi hasil MyDouble * 2 ' (1086.429176) menjadi suatu ' Currency (1086.4292).
CDate(date)
Konversi suatu ekspresi ke date
Contoh :
MyDate = "February 12, 1969" ' Definisi waktu dalam string MyShortDate = CDate(MyDate) ' Konversi ke type data Date MyTime = "4:35:47 PM" ' Definisi waktu dalam string MyShortTime = CDate(MyTime) ' Konversi ke type data Date
CDbl(ekspresi)
Konversi suatu ekspresi ke Double
Contoh :
MyCurr = CCur(234.456784) ' MyCurr adalah nilai Currency. MyDouble = CDbl(MyCurr * 8.2 * 0.01) ' Konversi hasil ke suatu Double.
CInt(ekspresi)
Konversi suatu ekspresi ke Integer
Contoh :
MyDouble = 2345.5678 ' MyDouble adalah nilai Double. MyInt = CInt(MyDouble) ' MyInt berisi nilai 2346.
CLng(ekspresi)
Konversi suatu ekspresi ke Long
Contoh :
MyVal1 = 25427.45: MyVal2 = 25427.55 ' MyVal1, MyVal2 adalah Double MyLong1 = CLng(MyVal1) ' MyLong1 berisi nilai 25427. MyLong2 = CLng(MyVal2) ' MyLong2 berisi nilai 25428.
CSng(ekspresi)
Konversi suatu ekspresi ke single
Contoh :
' MyDouble1, MyDouble2 adalah Double. MyDouble1 = 75.3421115: MyDouble2 = 75.3421555 MySingle1 = CSng(MyDouble1) ' MySingle1 berisi nilai 75.34211. MySingle2 = CSng(MyDouble2) ' MySingle2 berisi nilai 75.34216.
CStr(ekspresi)
Konversi suatu ekspresi ke string
Contoh :
MyDouble = 437.324 ' MyDouble adalah Double MyString = CStr(MyDouble) ' MyString berisi nilai "437.324".
CVar(ekspresi)
Konversi suatu ekspresi ke Variant
Contoh :
MyInt = 4534 ' MyInt adalah suatu Integer. MyVar = CVar(MyInt & "000") ' MyVar berisi nilai string 4534000.
Asc(string)
Mengembalikan kode character dari huruf pertama di suatu string.
Contoh :
MyNumber = Asc("A") ' Mengembalikan 65. MyNumber = Asc("a") ' Mengembalikan 97. MyNumber = Asc("Apple") ' Mengembalikan 65.
Chr(charcode)
Mengembalikan karakter dari suatu kode karakter
Contoh :
MyChar = Chr(65) ' Mengembalikan A. MyChar = Chr(97) ' Mengembalikan a. MyChar = Chr(62) ' Mengembalikan >. MyChar = Chr(37) ' Mengembalikan %.
Format(ekspresi[, format[, hariPertamaDariMinggu[, mingguPertamaDariTahun]]])
Memformat suatu ekspresi berdasarkan ekspresi format
Contoh :
MyTime = #17:04:23# MyDate = #January 27, 1993# ' Mengembalikan waktu sistem dalam format long time MyStr = Format(Time, "Long Time") ' Mengembalikan tannggal sistem dalam format long date MyStr = Format(Date, "Long Date") MyStr = Format(MyTime, "h:m:s") ' Mengembalikan "17:4:23". MyStr = Format(MyTime, "hh:mm:ss AMPM") ' Mengembalikan "05:04:23 PM". MyStr = Format(MyDate, "dddd, mmm d yyyy") ' Mengembalikan "Wednesday, Jan 27 1993". 'Jika format tidak tersedia, suatu string dikembalikan. MyStr = Format(23) ' Mengembalikan "23". ' Format User-defined MyStr = Format(5459.4, "##,##0.00") ' Mengembalikan "5,459.40". MyStr = Format(334.9, "###0.00") ' Mengembalikan "334.90". MyStr = Format(5, "0.00%") ' Mengembalikan "500.00%". MyStr = Format("HELLO", "<") ' Mengembalikan "hello". MyStr = Format("This is it", ">") ' Mengembalikan "THIS IS IT".
Hex(number)
Oct(number)
Mengembalikan string yang mewakili Octal atau Hexa dari suatu bilangan
Contoh :
MyHex = Hex(5) ' Mengembalikan 5. MyHex = Hex(10) ' Mengembalikan A. MyHex = Hex(459) ' Mengembalikan 1CB. MyOct = Oct(4) ' Mengembalikan 4. MyOct = Oct(8) ' Mengembalikan 10. MyOct = Oct(459) ' Mengembalikan 713.
Str(number)
Mengembalikan string yang mewakili suatu angka.
Contoh :
MyString = Str(459) ' Mengembalikan " 459". MyString = Str(-459.65) ' Mengembalikan "-459.65". MyString = Str(459.001) ' Mengembalikan " 459.001".
Val(string)
Mengembalikan angka yang terkandung dalam suatu string.
Contoh :
MyVal =Val(" 1615 198th Street N.E.") ' Mengembalikan 1615198 MyVal =Val("&HFFFF") ' Mengembalikan -1 MyVal =Val("2457") ' Mengembalikan 2457. MyVal =Val(" 2 45 7") ' Mengembalikan 2457. MyVal =Val("24 and 57") ' Mengembalikan 24.
Now
Mengembalikan suatu Variant (Date) yang menunjukkan tanggal dan waktu berdasarkan sistem
komputer.
Time
Mengembalikan waktu sistem sekarang
Timer
Mengembalikan suatu bilangan yang menunjukan jumlah detik sejak tengah malam
Date
Mengembalikan tanggal sistem sekarang
Time = Time
Date = Date
Mengatur waktu atau tanggal sistem
Untuk sistem yang menjalankan Microsoft Windows 95, tanggal yang dibutuhkan harus berupa tanggal dari 1 Jan 1998 sampai 31 Des 2099. Untuk sistem yang menjalankan Microsoft Windows NT, tanggal yang dibutuhkan harus berupa tanggal dari 1 Jan 1980 sampai 31 Desember 2079.
Hour(time)
Minute(time)
Second(time)
Mengembalikan suatu Variant (Integer) berupa bilangan 0 s/d 23 untuk jam, 0 s/d 59 untuk menit, dan 0 s/d 59 untuk detik.
Day(date)
Month(date)
Year(date)
Mengembalikan suatu Variant (Integer) berupa bilangan 1 s/d 31 untuk bulan, 1 s/d 12 untuk bulan, dan tahun.
Weekday(date, [hariPertamaDariMinggu])
Mengembalikan suatu Variant (Integer) yang menunjukkan hari dari minggu
hariPertamaDariMinggu Optional. suatu konstanta yang menunjukkan hari pertama dari minggu, jika tidak ditentukan, maka vbSunday
diasumsikan.
Konstanta | Nilai | Keterangan |
vbUseSystem | 0 | Menggunakan setting NLS API |
vbSunday | 1 | Minggu (default) |
vbMonday | 2 | Senin |
vbTuesday | 3 | Selasa |
vbWednesday | 4 | Rabu |
vbThursday | 5 | Kamis |
vbFriday | 6 | Jumat |
vbSaturday | 7 | Sabtu |
Nilai yang dikembalikan :
Konstanta | Nilai | Keterangan |
vbSunday | 1 | Minggu |
vbMonday | 2 | Senin |
vbTuesday | 3 | Selasa |
vbWednesday | 4 | Rabu |
vbThursday | 5 | Kamis |
vbFriday | 6 | Jumat |
vbSaturday | 7 | Sabtu |
DateAdd(interval, number, date)
Mengembalikan suatu Variant (Date) yang mana merupakan hasil penjumlahan.
Bagian | Keterangan |
interval | Ekspresi string yang menunjukkan interval waktu yang ingin dijumlahkan (Perlu) |
number | Ekspresi numerik yang merupakan jumlah dari interval yang ingin dijumlahkan. Nilai Positif menunjukan (tanggal berikutnya), Nilai Negatif menunjukan (tanggal sebelumnya) (Perlu) |
date | Suatu Variant (Date) atau literal yang merupakan tanggal dimana interval akan dijumlahkan padanya. (Perlu) |
Setting argumen untuk interval :
Setting | Keterangan |
yyyy | Tahun |
q | Triwulan |
m | Bulan |
y | Hari dari tahun |
d | Hari |
w | Hari dari minggu |
ww | Minggu |
h | Jam |
n | Menit |
s | Detik |
Contoh :
DateAdd("m", 1, "31-Jan-95") 'mengembalikan 28-Feb-95
DateDiff(interval, date1, date2)
Mengembalikan suatu Variant (Long) untuk menunjukkan bilangan dari interval waktu antara dua
tanggal.
Latihan 1, Memanfaatkan kontrol image untuk menampilkan Foto perserta
Latihan 2, Memahami properti dan metoda serta event pada picturebox
Latihan 3, Tantangan membuat Mari Menggambar