Selasa, 09 Juni 2009

OPRAH WINFREY

Bermodal keberanian “Menjadi Diri Sendiri”, Oprah menjadi presenter paling populer di Amerika dan menjadi wanita selebritis terkaya versi majalah Forbes, dengan kekayaan lebih dari US $ 1 Milyar. Copy acara “The Oprah Winfrey Show” telah diputar di hampir seluruh penjuru bumi ini.

TAHUKAH ANDA?
Lahir di Mississisipi dari pasangan Afro-Amerika dengan nama Oprah Gail Winfrey. Ayahnya mantan serdadu yang kemudian menjadi tukang cukur, sedang ibunya seorang pembantu rumah tangga. Karena keduanya berpisah maka Oprah kecil pun diasuh oleh neneknya di dilingkungan yang kumuh dan sangat miskin. Luarbiasanya, di usia 3 tahun Oprah telah dapat membaca Injil dengan keras.

“Membaca adalah gerai untuk mengenal dunia” katanya dalam suatu wawancaranya.

Pada usia 9 tahun, Oprah mengalami pelecehan sexual, dia diperkosa oleh saudara sepupu ibunya beserta teman-temannya dan terjadi berulang kali. Di usia 13 tahun Oprah harus menerima kenyataan hamil dan melahirkan, namun bayinya meninggal dua minggu setelah dilahirkan.

Setelah kejadian itu, Oprah lari ke rumah ayahnya di Nashville. Ayahnya mendidik dengan sangat keras dan disiplin tinggi. Dia diwajibkan membaca buku dan membuat ringkasannya setiap pekan. Walaupun tertekan berat, namun kelak disadari bahwa didikan keras inilah yang menjadikannya sebagai wanita yang tegar, percaya diri dan berdisiplin tinggi.

Prestasinya sebagai siswi teladan di SMA membawanya terpilih menjadi wakil siswi yang diundang ke Gedung Putih. Beasiswa pun di dapat saat memasuki jenjang perguruan tinggi. Oprah pernah memenangkan kontes kecantikan, dan saat itulah pertama kali dia menjadi sorotan publik..

Karirnya dimulai sebagai penyiar radio lokal saat di bangku SMA. Karir di dunia TV di bangun diusia 19 tahun. Dia menjadi wanita negro pertama dan termuda sebagai pembaca berita stasiun TV lokal tersebut. Oprah memulai debut talkshow TVnya dalam acara People Are Talking. Dan keputusannya untuk pindah ke Chicago lah yang akhirnya membawa Oprah ke puncak karirnya. The Oprah Winfrey Show menjadi acara talkshow dengan rating tertinggi berskala nasional yang pernah ada dalam sejarah pertelevisian di Amerika. Sungguh luar biasa!

Latar belakang kehidupannya yang miskin, rawan kejahatan dan diskriminatif mengusik hatinya untuk berupaya membantu sesama. Tayangan acaranya di telivisi selalu sarat dengan nilai kemanusiaan, moralitas dan pendidikan. Oprah sadar, bila dia bisa mengajak seluruh pemirsa telivisi, maka bersama, akan mudah mewujudkan segala impiannya demi membantu mereka yang tertindas.

Oprah juga dikenal dengan kedermawanannya. Berbagai yayasan telah disantuni, antara lain, rumah sakit dan lembaga riset penderita AIDs, berbagai sekolah, penderita ketergantungan, penderita cacat dan banyak lagi.

Dan yang terakhir, pada 2 januari 2007 lalu, Oprah menghadiri peresmian sekolah khusus anak-anak perempuan di kota Henley-on-Klip, di luar Johannesburg, Afrika selatan, yang didirikannya bersama dengan pemirsa acara televisinya. Oprah menyisihkan 20 juta pounsterling ( 1 pons kira2 rp. 17.000,- )atau 340 milyiar rupiah dari kekayaannya. “Dengan memberi pendidikan yang baik bagi anak2 perempuan ini, kita akan memulai mengubah bangsa ini” ujarnya berharap.

Kisah Oprah Winfrey ialah kisah seorang anak manusia yang tidak mau meratapi nasib. Dia berjuang keras untuk keberhasilan hidupnya, dan dia berhasil. Dia punya mental baja dan mampu mengubah nasib, dari kehidupan nestapa menjadi manusia sukses yang punya karakter. Semangat perjuangannya pantas kita teladani!

MARK ZUCKERBERG (FACEBOOK)

Pernah mendengar situs jaringan pertemanan Friendster? Konon, melalui situs tersebut, banyak orang-orang yang lama tak bersua, bisa kembali bersatu, reunian, dan bahkan berjodoh. Karena itulah, situs pertemanan itu beberapa waktu lalu sempat sangat popular. Karena itu, tak heran jika setelah era suksesnya Friendster, berbagai situs jaringan pertemanan bermunculan. Salah satunya adalah Facebook.

Facebook ini sebenarnya dibuat sebagai situs jaringan pertemanan terbatas pada kalangan kampus pembuatnya, yakni Mark Zuckerberg. Mahasiswa Harvard University tersebut-kala itu-mencoba membuat satu program yang bisa menghubungkan teman-teman satu kampusnya. Karena itulah, nama situs yang digagas oleh Mark adalah Facebook. Nama ini ia ambil dari buku Facebook, yaitu buku yang biasanya berisi daftar anggota komunitas dalam satu kampus. Pada sejumlah college dan sekolah preparatory di Amerika Serikat, buku ini diberikan kepada mahasiswa atau staf fakultas yang baru agar bisa lebih mengenal orang lain di kampus bersangkutan.

Pada sekitar tahun 2004, Mark yang memang hobi mengotak-atik program pembuatan website berhasil menulis kode orisinal Facebook dari kamar asramanya. Untuk membuat situs ini, ia hanya butuh waktu sekitar dua mingguan. Pria kelahiran Mei 1984 itu lantas mengumumkan situsnya dan menarik rekan-rekannya untuk bergabung. Hanya dalam jangka waktu relatif singkat-sekitar dua minggu-Facebook telah mampu menjaring dua per tiga lebih mahasiswa Harvard sebagai anggota tetap.

Mendapati Facebook mampu menjadi magnet yang kuat untuk menarik banyak orang bergabung, ia memutuskan mengikuti jejak seniornya-Bill Gates-memilih drop out untuk menyeriusi situsnya itu. Bersama tiga rekannya-andre McCollum, Dustin Moskovitz, dan Chris Hughes-Mark kemudian membuka keanggotaan Facebook untuk umum.

Mark ternyata tak sekadar nekad. Ia punya banyak alasan untuk lebih memilih menyeriusi Facebook. Mark dan rekannya berhasil membuat Facebook jadi situs jaringan pertemanan yang segera melambung namanya, mengikuti tren Friendster yang juga berkembang kala itu. Namun, agar punya nilai lebih, Mark pun mengolah Facebook dengan berbagai fitur tambahan. Dan, sepertinya kelebihan fitur inilah yang membuat Facebook makin digemari. Bayangkan, Ada 9.373 aplikasi yang terbagi dalam 22 kategori yang bisa dipakai untuk menyemarakkan halaman Facebook, mulai chat, game, pesan instan, sampai urusan politik dan berbagai hal lainnya. Hebatnya lagi, sifat keanggotaan situs ini sangat terbuka. Jadi, data yang dibuat tiap orang lebih jelas dibandingkan situs pertemanan lainnya. Hal ini yang membuat orang makin nyaman dengan Facebook untuk mencari teman, baik yang sudah dikenal ataupun mencari kenalan baru di berbagai belahan dunia.

Sejak kemunculan Facebook tahun 2004 silam, anggota terus berkembang pesat. Prosentase kenaikannya melebihi seniornya, Friendster. Situs itu tercatat sudah dikunjungi 60 juta orang dan bahkan Mark Zuckerberg berani menargetkan pada tahun 2008 ini, angka tersebut akan mencapai 200 juta anggota.

Dengan berbagai keunggulan dan jumlah peminat yang luar biasa, Facebook menjadi ‘barang dagangan' yang sangat laku. Tak heran, raksasa software micr*soft pun tertarik meminangnya. Dan, konon, untuk memiliki saham hanya 1,6 persen saja, micr*soft harus mengeluarkan dana tak kurang dari US$ 240 juta. Ini berarti nilai kapitalisasi saham Facebook bisa mencapai US$15 miliar! Tak heran, Mark kemudian dinobatkan sebagai miliarder termuda dalam sejarah yang memulai dari keringatnya sendiri.

Niat Mark Zuckerberg untuk sekadar‘menyatukan' komunitas kampusnya dalam sebuah jaringan ternyata berdampak besar. Hal ini telah mengantar pria yang baru berusia 23 tahun ini menjadi miliarder termuda dalam sejarah. Sungguh, kejelian melihat peluang dan niatan baiknya ternyata mampu digabungkan menjadi sebuah nilai tambah yang luar biasa. Ini menjadi contoh bagi kita, bahwa niat baik ditambah perjuangan dan ketekunan dalam menggarap peluang akan melahirkan kesempatan yang dapat mengubah hidup makin bermakna.

BILL GATES & PAUL ALLEN

William Henry Gates III atau lebih terkenal dengan sebutan Bill Gates, lahir di Seatle, Washington pada tanggal 28 Oktober 1955. Ayah Bill, Bill Gates Jr., bekerja di sebuah firma hukum sebagai seorang pengacara dan ibunya, Mary, adalah seorang mantan guru. Bill adalah anak kedua dari tiga bersaudara. Sejak kecil Bill mempunyai hobi “hiking”,bahkan hingga kini pun kegiatan ini masih sering dilakukannya bila ia sedang “berpikir”.

Bill kecil mampu dengan mudah melewati masa sekolah dasar dengan nilai sangat memuaskan, terutama dalam pelajaran IPA dan Matematika. Mengetahui hal ini orang tua Bill, kemudian menyekolahkannya di sebuah sekolah swasta yang terkenal dengan pembinaan akademik yang baik, bernama “LAKESIDE”. Pada saat itu , Lakeside baru saja membeli sebuah komputer, dan dalam waktu seminggu, Bill Gates, Paul Allen dan beberapa siswa lainnya (sebagian besar nantinya menjadi programmer pertama micr*soft) sudah menghabiskan semua jam pelajaran komputer untuk satu tahun.

Kemampuan komputer Bill Gates sudah diakui sejak dia masih bersekolah di Lakeside. Dimulai dengan meng”hack” komputer sekolah, mengubah jadwal, dan penempatan siswa. Tahun 1968, Bill Gates, Paul Allen, dan dua hackers lainnya disewa oleh Computer Center Corp. untuk menjadi tester sistem keamanan perusahaan tersebut. Sebagai balasan, mereka diberikan kebebasan untuk menggunakan komputer perusahaan. Menurut Bill saat itu lah mereka benar- benar dapat “memasuki” komputer. Dan disinilah mereka mulai mengembangkan kemampuan menuju pembentukan micr*soft, 7 tahun kemudian.

Selanjutnya kemampuan Bill Gates semakin terasah. Pembuatan program sistem pembayaran untuk Information Science Inc, merupakan bisnis pertamanya. Kemudian bersama Paul Ellen mendirikan perusahaan pertama mereka yang disebut Traf-O-Data. Mereka membuat sebuah komputer kecil yang mampu mengukur aliran lalu lintas. Bekerja sebagai debugger di perusahaan kontrkator pertahanan TRW, dan sebagai penanggungjawab komputerisasi jadwal sekolah, melengkapi pengalaman Bill Gates.

Musim gugur 1973, Bill Gates berangkat menuju Harvard University dan terdaftar sebagai siswa fakultas hukum. Bill mampu dengan baik mengikuti kuliah, namun sama seperti ketika di SMA, perhatiannya segera beralih ke komputer. Selama di Harvard, hubungannya dengan Allen tetap dekat. Bill dikenal sebagai seorang jenius di Harvard. Bahkan salah seorang guru Bill mengatakan bahwa Bill adalah programmer yang luar biasa jenius, namun seorang manusia yang menyebalkan.

Desember 1974, saat hendak mengunjungi Bill Gates, Paul Allen membaca artikel majalah Popular Electronics dengan judul “World`s First Microcomputer Kit to Rival Commercial Models”. Artikel ini memuat tentang komputer mikro pertama Altair 9090. Allen kemudian berdiskusi dengan Bill Gates. Mereka menyadari bahwa era “komputer rumah” akan segera hadir dan meledak, membuat keberadaan software untuk komputer - komputer tersebut sangat dibutuhkan. Dan ini merupakan kesempatan besar bagi mereka.

Kemudian dalam beberapa hari, Gates menghubungi perusahaan pembuat Altair, MITS (Micro Instrumentation and Telemetry Systems). Dia mengatakan bahwa dia dan Allen, telah membuat BASIC yang dapat digunakan pada Altair. Tentu saja ini adalah bohong. Bahkan mereka sama sekali belum menulis satu baris kode pun. MITS, yang tidak mengetahui hal ini, sangat tertarik pada BASIC. Dalam waktu 8 minggu BASIC telah siap. Allen menuju MITS untuk mempresentasikan BASIC. Dan walaupun, ini adalah kali pertama bagi Allen dalam mengoperasikan Altair, ternyata BASIC dapat bekerja dengan sempurna. Setahun kemudian Bill Gates meninggalkan Harvard dan mendirikan microsoft.

Kisah Bill Gates Meninggalkan Harvard Demi Mengejar Impian

Ketika ia bosan dengan Harvard, Gates melamar pekerjaan-pekerjaan yang berhubungan dengan komputer di daerah Boston. Gates mendorong Paul Allen untuk mencoba melamar sebagai pembuat program di Honey-well agar keduanya dapat melanjutkan impian mereka untuk mendirikan sebuah perusahaan perangkat lunak.
Pada suatu hari di bulan Desember yang beku, Paul Allen melihat sampul depan majalah Popular Mechanics, terbitan Januari 1975, yaitu gambar komputer mikro rakitan baru yang revolusioner MITS Altair 8080 (Komputer kecil ini menjadi cikal bakal PC di kemudian hari). Kemudian Allen menemui Gates dan membujuknya bahwa mereka harus mengembangkan sebuah bahasa untuk mesin kecil sederhana itu. Allen terus mengatakan, Yuk kita dirikan sebuah perusahaan. Yuk kita lakukan.

Kami sadar bahwa revolusi itu bisa terjadi tanpa kami. Setelah kami membaca artikel itu, tak diragukan lagi imana kami akan memfokuskan hidup kami. Kedua sahabat itu bergegas ke sebuah komputer Harvard untuk menulis sebuah adaptasi dari program bahasa BASIC. Gates dan Allen percaya bahwa komputer kecil itu dapat melakukan keajaiban. Dari sana pula mereka mempunyai mimpi, tersedianya sebuah komputer di setiap meja tulis dan di setiap rumah tangga.

Semangat Allen dan Gates tidak percuma. Berawal dari komputer kecil itulah yang menjadi mode dari segala macam komputansi. Dan sekarang bisa Anda lihat bahwa PC telah benar-benar menjadi alat jaman informasi. Dan hampir setiap orang mengenal Bill Gates sebagai orang terkaya di dunia saat ini.

"Orang yang sukses adalah orang yang memiliki mimpi dan keyakinan bahwa mimpi itu akan dapat terjadi berapapun harga yang harus ia bayar..."

Alkisah si ibu bermata satu

Ketika anak laki-lakinya pergi sekolah SD, si ibu datang ke sekolah untuk melihat2 anaknya. Tapi apa yang terjadi, si anak laki-lakinya jadi malu karena diolok-olok oleh teman-teman, karena dia mempunya ibu bermata satu. Sesampai di rumah si ibu dimarahin oleh si anak. Sejak itu si ibu tidak dibolehkan ketemu orang-orang lain agar si anak tidak malu.

Setelah anaknya dewasa, si anak telah bekerja dan sukses, dan sudah berkeluarga dan mempunyai istri yang cantik dan anak2 yang lucu.... si ibu rindu ingin ketemu dengan anak dan cucunya. Sesampai di depan pintu rumah anak laki-lakinya, dia diusir oleh anaknya sendiri, seraya berkata: untuk apa kamu datang kesini orang tua bermata satu, kamu telah menakutkan anak-anakku, kata si anak. Akhirnya, si ibu pulang dengan bersedih hati. Dia akhirnya hanya melihat cucu2nya di depan pagar, lalu pergi.

Sekian lama waktu berlalu, si ibu akhirnya sakit dan sepertinya tidak akan lama lagi umurnya. Dia memberi tahukan berita ini kepada anak laki-lakinya itu, bahwasanya dia sedang sakit parah. Tapi, si anak laki2 tetap tidak mau ketemu ibunya. Ajalnya pun menjemputnya.

Selang beberapa waktu, si istri dari si anak laki2 bertanya ke suaminya: mengapa kamu tidak datang ke rumah ibumu? Dia menjawab: saya sedang sibuk. Tapi akhirnya, dia dibujuk oleh istrinya, agar pergi ke rumah ibunya tersebut sekali saja karena ibunya sudah tiada.

Akhirnya si anak laki2 pergilah ke rumah almarhum ibunya, dia masuk ke rumah yang telah lama dia tinggalkannya, dan ada secarik kertas yang ditinggalkan oleh ibunya berisi: "anakku, aku sangat bahagia melihatmu dari kecil, sampai dewasa dan menjadi sukses sekarang ini. ketahuilah nak, bahwasanya kamu kecil hanya mempunyai mata satu, aku telah merelakan mata yang satu lagi diberikan kepadamu, agar kamu bisa hidup bahagia nantinya".

Si anak akhirnya, menanggis sijadi-jadinya: oh..ibu.............maafkan aku selama ini.

Lelaki yang gelisah

Dari pinggir kaca nako, di antara celah kain gorden, saya melihat lelaki itu mondar-mandir di depan rumah. Matanya berkali-kali melihat ke rumah saya.Tangannya yang dimasukkan ke saku celana, sesekali mengelap keringat di keningnya. Dada saya berdebar menyaksikannya.

Apa maksud remaja yang bisa jadi umurnya tak jauh dengan anak sulung saya yang baru kelas 2 SMU itu? Melihat tingkah lakunya yang gelisah, tidakkah dia punya maksud buruk dengan keluarga saya? Mau merampok? Bukankah sekarang ini orang merampok tidak lagi mengenal waktu? Siang hari saat orang-orang lalu-lalang pun penodong bisa beraksi, seperti yang banyak diberitakan koran. Atau dia punya masalah dengan Yudi, anak saya? Kenakalan remaja saat ini tidak lagi enteng. Tawuran telah menjadikan puluhan remaja meninggal.

Saya berdoa semoga lamunan itu salah semua. Tapi mengingat peristiwa buruk itu bisa saja terjadi, saya mengunci seluruh pintu dan jendela rumah. Di rumah ini, pukul sepuluh pagi seperti ini,saya hanya seorang diri. Kang Yayan, suami saya, ke kantor. Yudi sekolah, Yuni yang sekolah sore pergi les Inggris, dan Bi Nia sudah seminggu tidak masuk. Jadi kalau lelaki yang selalu memperhatikan rumah saya itu menodong, saya bisa apa? Pintu pagar rumah memang terbuka. Siapa saja bisa masuk. Tapi mengapa anak muda itu tidak juga masuk? Tidakkah dia menunggu sampai tidak ada orang yang memergoki? Saya sedikit lega saat anak muda itu berdiri di samping tiang telepon.

Saya punya pikiran lain.

Mungkin dia sedang menunggu seseorang, pacarnya, temannya, adiknya, atau siapa saja yang janjian untuk bertemu di tiang telepon itu. Saya memang tidak mesti berburuk sangka seperti tadi. Tapi dizaman ini, dengan peristiwa-peristiwa buruk, tenggang rasa yang semakin menghilang, tidakkah rasa curiga lebih baik daripada lengah? Saya masih tidak beranjak dari persembunyian, di antara kain gorden, di samping kaca nako. Saya masih was-was karena anak muda itu sesekali masih melihat ke rumah.

Apa maksudnya?

Ah, bukankah banyak pertanyaan di dunia ini yang tidak ada jawabannya. Terlintas di pikiran saya untuk menelepon tetangga. Tapi saya takut jadi ramai. Bisa-bisa penduduk se-kompleks mendatangi anak muda itu. Iya kalau anak itu ditanya-tanya secara baik, coba kalau belum apa-apa ada yang memukul. Tiba-tiba anak muda itu membalikkan badan dan masuk ke halaman rumah. Debaran jantung saya mengencang kembali. Saya memang mengidap penyakit jantung. Tekad saya untuk menelepon tetangga sudah bulat, tapi kaki saya tidak bisa melangkah.

Apalagi begitu anak muda itu mendekat, saya ingat, saya pernah melihatnya dan punya pengalaman buruk dengannya. Tapi anak muda itu tidak lama di teras rumah. Dia hanya memasukkan sesuatu ke celah di atas pintu dan bergegas pergi. Saya masih belum bisa mengambil benda itu karena kaki saya masih lemas.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Saya pernah melihat anak muda yang gelisah itu di jembatan penyeberangan, entah seminggu atau duaminggu yang lalu. Saya pulang membeli bumbu kue waktu itu. Tiba-tiba di atas jembatan penyeberangan, saya ada yang menabrak, saya hampir jatuh. Si penabrak yang tidak lain adalah anak muda yang gelisah dan mondar-mandir di depan rumah itu, meminta maaf dan bergegas mendahului saya. Saya jengkel, apalagi begitu sampai di rumah saya tahu dompet yang disimpan di kantong plastik, disatukan dengan bumbu kue, telah raib.

Dan hari ini, lelaki yang gelisah dan si penabrak yang mencopet itu, mengembalikan dompet saya lewat celah di atas pintu. Setelah saya periksa, uang tiga ratus ribu lebih, cincin emas yang selalu saya simpan di dompet bila bepergian, dan surat-surat penting, tidak ada yang berkurang. Lama saya melihat dompet itu dan melamun. Seperti dalam dongeng. Seorang anak muda yang gelisah, yang siapa pun saya pikir akan mencurigainya, dalam situasi perekonomian yang morat-marit seperti ini, mengembalikan uang yang telah digenggamnya.

Bukankah itu ajaib, seperti dalam dongeng. Atau hidup ini memang tak lebih dari sebuah dongengan? Bersama dompet yang dimasukkan ke kantong plastik hitam itu saya menemukan surat yang dilipat tidak rapi. Saya baca surat yang berhari-hari kemudian tidak lepas dari pikiran dan hati saya itu.

Isinya seperti ini: “Ibu yang baik, maafkan saya telah mengambil dompet Ibu. Tadinya saya mau mengembalikan dompet Ibu saja, tapi saya tidak punya tempat untuk mengadu, maka saya tulis surat ini, semoga Ibu mau membacanya. Sudah tiga bulan saya berhenti sekolah. Bapak saya di-PHK dan tidak mampu membayar uang SPP yang berbulan-bulan sudah nunggak, membeli alat-alat sekolah dan memberi ongkos.
Karena kemampuan keluarga yang minim itu saya berpikir tidak apa-apa saya sekolah sampai kelas 2 STM saja. Tapi yang membuat saya sakit hati, Bapak kemudian sering mabuk dan judi buntut yang beredar sembunyi-sembunyi itu. Adik saya yang tiga orang, semuanya keluar sekolah. Emak berjualan goreng-gorengan yang dititipkan di warung-warung. Adik-adik saya membantu mengantarkannya. Saya berjualan koran, membantu-bantu untuk beli beras.

Saya sadar, kalau keadaan seperti ini, saya harus berjuang lebih keras. Saya mau melakukannya. Dari pagi sampai malam saya bekerja. Tidak saja jualan koran, saya juga membantu nyuci piring di warung nasi dan kadang (sambil hiburan) saya ngamen. Tapi uang yang pas-pasan itu (Emak sering gagal belajar menabung dan saya maklum), masih juga diminta Bapak untuk memasang judi kupon gelap. Bilangnya nanti juga diganti kalau angka tebakannya tepat.

Selama ini belum pernah tebakan Bapak tepat. Lagi pula Emak yang taat beribadah itu tidak akan mau menerima uang dari hasil judi, saya yakin itu. Ketika Bapak semakin sering meminta uang kepada Emak, kadang sambil marah-marah dan memukul, saya tidak kuat untuk diam. Saya mengusir Bapak. Dan begitu Bapak memukul, saya membalasnya sampai Bapak terjatuh-jatuh. Emak memarahi saya sebagai anak laknat. Saya sakit hati. Saya bingung. Mesti bagaimana saya? Saat Emak sakit dan Bapak semakin menjadi dengan judi buntutnya, sakit hati saya semakin menggumpal, tapi saya tidak tahu sakit hati oleh siapa.

Hanya untuk membawa Emak ke dokter saja saya tidak sanggup. Bapak yang semakin sering tidur entah di mana, tidak perduli. Hampir saya memukulnya lagi. Di jalan, saat saya jualan koran, saya sering merasa punya dendam yang besar tapi tidak tahu dendam oleh siapa dan karena apa. Emak tidak bisa ke dokter. Tapi orang lain bisa dengan mobil mewah melenggang begitu saja di depan saya, sesekali bertelepon dengan handphone. Dan di seberang stopan itu, di warung jajan bertingkat, orang-orang mengeluarkan ratusan ribu untuk sekali makan. Maka tekad saya, Emak harus ke dokter. Karena dari jualan koran tidak cukup, saya merencanakan untuk mencopet.

Berhari-hari saya mengikuti bus kota, tapi saya tidak pernah berani menggerayangi saku orang. Keringat dingin malah membasahi baju. Saya gagal jadi pencopet. Dan begitu saya melihat orang-orang belanja di toko, saya melihat Ibu memasukkan dompet ke kantong plastik. Maka saya ikuti Ibu. Di atas jembatan penyeberangan, saya pura-pura menabrak Ibu dan cepat mengambil dompet. Saya gembira ketika mendapatkan uang 300 ribu lebih. Saya segera mendatangi Emak dan mengajaknya ke dokter.

Tapi Ibu, Emak malah menatap saya tajam. Dia menanyakan, dari mana saya dapat uang. Saya sebenarnya ingin mengatakan bahwa itu tabungan saya, atau meminjam dari teman. Tapi saya tidak bisa berbohong. Saya mengatakan sejujurnya, Emak mengalihkan pandangannya begitu saya selesai bercerita.

Di pipi keriputnya mengalir butir-butir air. Emak menangis. Ibu, tidak pernah saya merasakan kebingungan seperti ini. Saya ingin berteriak. Sekeras-kerasnya. Sepuas-puasnya. Dengan uang 300 ribu lebih sebenarnya saya bisa makan-makan, mabuk, hura-hura. Tidak apa saya jadi pencuri. Tidak perduli dengan Ibu, dengan orang-orang yang kehilangan. Karena orang-orang pun tidak perduli kepada saya. Tapi saya tidak bisa melakukannya. Saya harus mengembalikan dompet Ibu. Maaf.”

Surat tanpa tanda tangan itu berulang kali saya baca. Berhari-hari saya mencari-cari anak muda yang bingung dan gelisah itu. Di setiap stopan tempat puluhan anak-anak berdagang dan mengamen. Dalam bus-bus kota. Di taman-taman. Tapi anak muda itu tidak pernah kelihatan lagi. Siapapun yang berada di stopan, tidak mengenal anak muda itu ketika saya menanyakannya.

Lelah mencari, di bawah pohon rindang, saya membaca dan membaca lagi surat dari pencopet itu. Surat sederhana itu membuat saya tidak tenang. Ada sesuatu yang mempengaruhi pikiran dan perasaan saya. Saya tidak lagi silau dengan segala kemewahan. Ketika Kang Yayan membawa hadiah-hadiah istimewa sepulang kunjungannya ke luar kota, saya tidak segembira biasanya.Saya malah mengusulkan oleh-oleh yang biasa saja. Kang Yayan dan kedua anak saya mungkin aneh dengan sikap saya akhir-akhir ini.

Tapi mau bagaimana, hati saya tidak bisa lagi menikmati kemewahan. Tidak ada lagi keinginan saya untuk makan di tempat-tempat yang harganya ratusan ribu sekali makan, baju-baju merk terkenal seharga jutaan, dan sebagainya. Saya menolaknya meski Kang Yayan bilang tidak apa sekali-sekali. Saat saya ulang tahun, Kang Yayan menawarkan untuk merayakan di mana saja. Tapi saya ingin memasak di rumah, membuat makanan, dengan tangan saya sendiri.

Dan siangnya, dengan dibantu Bi Nia, lebih seratus bungkus nasi saya bikin. Diantar Kang Yayan dan kedua anak saya, nasi-nasi bungkus dibagikan kepada para pengemis, para pedagang asongan dan pengamen yang banyak di setiap stopan. Di stopan terakhir yang kami kunjungi, saya mengajak Kang Yayan dan kedua anak saya untuk makan bersama. Diam-diam air mata mengalir di mata saya.

Yuni menghampiri saya dan bilang, “Mama, saya bangga jadi anak Mama.”

Struktur Pascal

1. Bagian Judul Program
2. Bagian Deklarasi
a. Deklarasi tipe data (TYPE)
b. Deklarasi variabel (VAR)
c. Deklarasi konstanta (CONST)
d. Deklarasi label (LABEL)
e. Deklarasi sub-program (PROCEDURE dan FUNCTION)
3. Bagian Program Utama Perintah-perintah.

Teks Pascal setidaknya memiliki bagian Judul Program, bagian Deklarasi, dan Bagian Program Utama yang berupa perintah-perintah. Sedangkan untuk bagian deklarasi menyesuaikan dengan isi dari program itu sendiri. Contoh program PASCAL:

program TAMBAH_00; { Menjumlahkan dua bilangan yang nilainya diberikan dalam perintah}
var X, Y, Z: integer; { Deklarasi variabel X,Y dan Z sebagai bilangan bulat }
BEGIN { Program Utama Mulai }
X := 50; { Perintah memberikan nilai 50 pada var. X }
Y := 25; { Perintah memberikan nilai 25 pada var. Y }
Z := X + Y; { Perintah menjumlahkan X dan Y serta menyimpan hasilnya ke Z}
END. { Akhir Program Utama }

Pada contoh ini nilai X dan Y tidak bisa sembarang, karena didefiniskan tertentu. Agar nilai X dan Y bisa bebas ditentukan, nilai X dan Y dibaca dari default input.

program TAMBAH_01; { Menjumlahlan dua buah bilangan yang dibaca dari default input }
var X, Y, Z: integer; { Deklarasi variabel X,Y dan Z sebagai bilangan bulat }
BEGIN { Program Utama Mulai }
read(X); { Membaca nilai X lewat key-board }
read(Y); { Membaca nilai Y lewat key-board }
Z := X + Y; { Menjumlahkan X dan Y serta menyimpan hasilnya ke Z }
write(Z); { Menyajikan Z ke layar monitor }
END. { Akhir Program Utama }

Pointer Pada Bahasa C++ (01)

1.1 Konsep Dasar Pointer

Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat lokasi suatu memori tertentu. Jadi isi dari variabel pointer merupakan alamat dari lokasi memori yang digunakan untuk menyimpan data dan bukan nilai data itu sendiri. Misalnya X adalah suatu variabel biasa yang berisi nilai karakter ‘J’. X bukan variabel pointer. Nilai dari X ini oleh kompiler C++ akan diletakkan di suatu lokasi memori tertentu. Nilai ini dapat diakses jika diketahui alamat memorinya. Untuk mengetahui alamat memori yang digunakan oleh variabel X dalam menyimpan nilai datanya dapat diketahui dengan ungkapan &X. Alamat tersebut dapat ditulis dengan mengambil sebuah variabel lagi yang disebut dengan variabel pointer, misalnya: Alamat_X = &X. Alamat_X adalah variabel pointer karena variabel ini menunjuk ke lokasi memori di mana nilai data dari variabel X disimpan.

Contoh pada sebuah baris program berikut:

char *Alamat_X, X;

X = ‘J’;

Alamat_X = &X;

Dari baris program di atas, dapat ditemukan bahwa:

Nilai X = ‘J’

Nilai Alamat_X = 2527:24C7


Dengan ilustrasi sebagai berikut :







Ini berarti variabel X menyimpan nilai datanya yaitu ‘J’ pada alamat lokasi memori 2527:24C7. Alamat_X adalah variabel pointer yang menunjuk pada alamat lokasi memori yang digunakan oleh variabel X. Sebelum digunakan, variabel pointer harus dideklarasikan terlebih dahulu dengan diawali suatu asterisk (“*”).

Bahasa C/C++ menyediakan dua buah operator pointer, yaitu operator ‘&’ dan operator ‘*’. Operator ‘&’ digunakan untuk mendapatkan alamat lokasi memori yang digunakan oleh sebuah variabel biasa (dalam contoh di atas, &X digunakan untuk mendapatkan alamat memori yang digunakan oleh variabel X). Sedangkan operator ‘*’ digunakan untuk mendapatkan nilai data yang ditunjuk oleh variabel pointer pada alamat memori tersebut.

Contoh 1:

#include

#include

void main()

{

char *Alamat_X, X, Y, Z;

X = 'J';

Alamat_X = &X;

Y = X;

Z = *Alamat_X;

cout<<"Nilai variabel X adalah "<<

cout<<"Nilai variabel Y adalah "<<

cout<<"Nilai variabel Z adalah "<<

cout<<"Nilai variabel X berada di alamat memori ";printf("%p",Alamat_X);

}

Jika program ini dijalankan, akan didapatkan hasil:

Pada contoh-contoh di atas, kita mengalokasikan alamat lokasi memori yang digunakan oleh sebuah variabel pointer dengan menggunakan variabel bantu (dalam hal ini adalah variabel X). Jika kita ingin menciptakan sebuah variabel pointer tanpa menggunakan bantuan variabel biasa, kita harus terlebih dahulu mengalokasikan alamat lokasi memori variabel pointer yang akan digunakan. Kompiler C++ tidak dapat mengalokasikan secara otomatis alamat lokasi memori sebuah variabel pointer pada saat pertama kali variabel tersebut dideklarasikan. Untuk mengatasi hal ini, kita dapat menggunakan alokasi dinamis yang dapat dilakukan dengan pemanggilan fungsi standar malloc() dengan prototipenya berada pada file malloc.h. Cara alokasi dinamis ini akan menggunakan memori yang masih kosong. Fungsi malloc() akan mengalokasikan secara dinamis blok memori yang masih kosong untuk digunakan oleh variabel pointer.

Pointer 01

1.1 Konsep Dasar Pointer

Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat lokasi suatu memori tertentu. Jadi isi dari variabel pointer merupakan alamat dari lokasi memori yang digunakan untuk menyimpan data dan bukan nilai data itu sendiri. Misalnya X adalah suatu variabel biasa yang berisi nilai karakter ‘J’. X bukan variabel pointer. Nilai dari X ini oleh kompiler C++ akan diletakkan di suatu lokasi memori tertentu. Nilai ini dapat diakses jika diketahui alamat memorinya. Untuk mengetahui alamat memori yang digunakan oleh variabel X dalam menyimpan nilai datanya dapat diketahui dengan ungkapan &X. Alamat tersebut dapat ditulis dengan mengambil sebuah variabel lagi yang disebut dengan variabel pointer, misalnya: Alamat_X = &X. Alamat_X adalah variabel pointer karena variabel ini menunjuk ke lokasi memori di mana nilai data dari variabel X disimpan.

Contoh pada sebuah baris program berikut:

char *Alamat_X, X;

X = ‘J’;

Alamat_X = &X;

Dari baris program di atas, dapat ditemukan bahwa:

Nilai X = ‘J’

Nilai Alamat_X = 2527:24C7

Dengan ilustrasi sebagai berikut:

Ini berarti variabel X menyimpan nilai datanya yaitu ‘J’ pada alamat lokasi memori 2527:24C7. Alamat_X adalah variabel pointer yang menunjuk pada alamat lokasi memori yang digunakan oleh variabel X. Sebelum digunakan, variabel pointer harus dideklarasikan terlebih dahulu dengan diawali suatu asterisk (“*”).

Bahasa C/C++ menyediakan dua buah operator pointer, yaitu operator ‘&’ dan operator ‘*’. Operator ‘&’ digunakan untuk mendapatkan alamat lokasi memori yang digunakan oleh sebuah variabel biasa (dalam contoh di atas, &X digunakan untuk mendapatkan alamat memori yang digunakan oleh variabel X). Sedangkan operator ‘*’ digunakan untuk mendapatkan nilai data yang ditunjuk oleh variabel pointer pada alamat memori tersebut.

Contoh 1:

#include

#include

void main()

{

char *Alamat_X, X, Y, Z;

X = 'J';

Alamat_X = &X;

Y = X;

Z = *Alamat_X;

cout<<"Nilai variabel X adalah "<<

cout<<"Nilai variabel Y adalah "<<

cout<<"Nilai variabel Z adalah "<<

cout<<"Nilai variabel X berada di alamat memori ";printf("%p",Alamat_X);

}

Jika program ini dijalankan, akan didapatkan hasil:

Pada contoh-contoh di atas, kita mengalokasikan alamat lokasi memori yang digunakan oleh sebuah variabel pointer dengan menggunakan variabel bantu (dalam hal ini adalah variabel X). Jika kita ingin menciptakan sebuah variabel pointer tanpa menggunakan bantuan variabel biasa, kita harus terlebih dahulu mengalokasikan alamat lokasi memori variabel pointer yang akan digunakan. Kompiler C++ tidak dapat mengalokasikan secara otomatis alamat lokasi memori sebuah variabel pointer pada saat pertama kali variabel tersebut dideklarasikan. Untuk mengatasi hal ini, kita dapat menggunakan alokasi dinamis yang dapat dilakukan dengan pemanggilan fungsi standar malloc() dengan prototipenya berada pada file malloc.h. Cara alokasi dinamis ini akan menggunakan memori yang masih kosong. Fungsi malloc() akan mengalokasikan secara dinamis blok memori yang masih kosong untuk digunakan oleh variabel pointer.

Format pemanggilan fungsi malloc() adalah:

tipe_data *[var_pointer];

var_pointer = ([tipe_data *]) malloc(sizeof([tipe_data]));

Kemudian untuk menghapus nilai alamat lokasi memori yang disimpan oleh variabel pointer digunakanlah fungsi free().

Format pemanggilan fungsi malloc() adalah:

free([variabel_pointer]);

Contoh 2:

#include

#include

#include

#include

void main()

{

char *X;

X = (char *) malloc(sizeof(char));

if (X == NULL)

{

cout<<"Memori Tidak Cukup!!!";

}

else

{

*X = 'J';

cout<<"Nilai variabel X = "<<*X<

cout<<"Nilai variabel X berada pada alamat = "; printf("%p",X);

}

}

Jika program ini dijalankan, akan didapatkan hasil:


Seperti pada contoh di atas, kita telah menciptakan sebuah variabel pointer dengan alokasi memori secara dinamis tanpa variabel bantu dengan menggunakan fungsi malloc(). Fungsi ini akan mengalokasikan alamat memori yang digunakan oleh variabel pointer X secara dinamis pada alamat 2D37:00FA.

Pointer 02

1.2 Operasi Aritmatika Pada Pointer

Operasi aritmatika yang umum dilakukan pada suatu variabel pointer hanya berupa operasi pertambahan dan pengurangan. Suatu variabel pointer hanya dapat ditambah atau dikurangi dengan suatu nilai integer.
Operasi pertambahan pointer dengan suatu nilai integer merupakan suatu peningkatan nilai pointer yang menunjukkan alamat lokasi memori yang menyimpan nilai data berikutnya. Alamat lokasi memori dinyatakan dalam bilangan heksadesimal.
Misalnya sebuah variabel pointer X menunjuk pada alamat memori 182F:00FA, maka operasi pertambahan X+1 menunjuk pada alamat: 182F:00FA + sizeof(tipe_data_x)
Fungsi sizeof() berfungsi untuk mengembalikan nilai ukuran (dalam byte) terhadap tipe data yang digunakan oleh variabel pointer tersebut.
Jika X merupakan variabel pointer bertipe integer (dimana sizeof(int) = 2 byte), maka operasi X+1 akan menunjukkan alamat:

182F:00FA
2
------------- +
182F:00FC

Jika X merupakan variabel pointer bertipe float (dimana sizeof(float) = 4 byte), maka operasi X+1 akan menunjukkan alamat:

182F:00FA
4
------------- +
182F:00FE

Misalnya, X dideklarasikan sebagai variabel pointer bertipe int, maka hubungan operasi X+1, X+2, X+3 dan seterusnya dengan alamat lokasi memori dapat dilihat pada ilustrasi berikut ini:


Contoh 3:

#include

#include

#include

#include

void main()

{

int *X;

X = (int *) malloc(sizeof(int));

if (X == NULL)

{

cout<<"Memori Tidak Cukup!!!";

}

else

{

cout<<"Variabel X+0 menunjuk pada alamat = ";

printf("%p",X);cout<

cout<<"Variabel X+1 menunjuk pada alamat = ";

printf("%p",X+1);cout<

cout<<"Variabel X+2 menunjuk pada alamat = ";

printf("%p",X+2);cout<

cout<<"Variabel X+3 menunjuk pada alamat = ";

printf("%p",X+3);cout<

cout<<"Variabel X+4 menunjuk pada alamat = ";

printf("%p",X+4);cout<

}

}

Jika program di atas dijalankan, didapatkan hasil:

Operasi Pada Array

Sifat masing-masing elemen array mengikuti jenis data yang dimilikinya, untuk array dengan tipe bilangan integer atau real kita bisa melakukan berbagai standar operasi aritmatika seperti penjumlahan, perkalian, pengurangan, dsb. Yang perlu di garis bawahi, bahwa sifat dari array dimanfaatkan untuk operasi matrik.

a. Mencari Harga Tertentu pada Array

Mencari suatu elemen data di dalam suatu data merupakan suatu kejadian yang sering kita alami, contoh: mencari nama mahasiswa dari daftar presensi. Pencarian beruntun (sequence), merupakan suatu teknik untuk mencari suatu elemen dalam suatu sistim yang lebih besar.

Contoh.
Misal array A[8], dengan elemen sbb:
A
60 12 76 23 11 42 18 42
Untuk mencari apakah bilangan x=11 ada didalam tabel maka dilakukan pemeriksaan terhadap :
60 12 76 23 11
Sehingga ditemukan x pada elemen ke-5, dalam bahasa PASCAL diterjemahkan seperti berikut:

type PITA = ARRAY [1..8] of integer;
var AKU: PITA;
procedure CARI_MATRIK(AKU: PITA);
var
i: integer; {faktor pengulang}
begin
for i:=1 to 8 do
begin
if AKU[i]:= 11 then
writeln(‘ terdapat bilangan 11 dalam pita ini ‘);
else
writeln(‘ tidak ada bilangan 11, pencarian berhenti ‘);
end;
end;

b. Mencari Harga Maksimum pada Array
Misal array di atas kita cari harga yang tertinggi, maka kita perlu menentukan nilai tertinggi dahulu sebelum melakukan pencarian ; diawali dengan nilai maksimum=0

procedure CARI_MAKSIMUM(AKU: PITA);
var
i: integer; {faktor pengulang}
MAKS : integer;
begin
MAKS := AKU[1];
for i:=1 to 8 do
begin
if AKU[i]> MAKS then
MAKS:= AKU[i];
End;
Writeln(‘NILAI MAKSIMUM = ’,MAKS);
end;

c. Mencari Harga Minimum pada Array
Misal array di atas kita cari harga yang terendah, maka kita perlu menentukan nilai terendah dahulu sebelum melakukan pencarian ; diawali dengan nilai maksimum=3200

procedure CARI_MINIMUM(AKU: PITA);
var
i: integer; {faktor pengulang}
MIN : integer;
begin
MIN := 3200;
for i:=1 to 8 do
begin
if AKU[i]< minimum =" ’,MIN);">

d. Matrik
Sebagai perwujudan dari array dua dimensi, operasi aritmatika seperti penjumlahan, perkalian, dan pengurangan bisa dilakukan.
Contoh.

- Mendefinisikan Elemen

Program OPERASI_MATRIK;
uses wincrt;
type
matrik=array[1..100,1..100] of real;
var
m,n, p, q: integer; {dimensi dari matrik}
A,B,C: matrik; {matrik A, B sebagai input, C sebagai hasil}

- Membaca Elemen Matrik

procedure bacamatrik(var A:matrik; m,n:integer);
var
i,j: integer; {faktor pengulang}
begin {read}
for i:=1 to m do
begin {do}
for j:=1 to n do
read(A[i,j]);
readln;
end; {do}
end; {read}

- Menampilkan Elemen Matrik

procedure tulismatrik(A:matrik; m,n:integer);
var
i,j: integer; {faktor pengulang}
begin {write}
for i:=1 to m do
begin {tiap baris}
writeln;
for j:=1 to n do
write(A[i,j]:6:2);
end; {tiap baris}
writeln;
end; {write}

- Penjumlahkan Matrik

procedure check_matrik(A,B,C:matrik; m,n,p,q:integer);
var i,j :integer;
begin
if (m=p) and (n=q) then
begin
for i:=1 to m do
begin
for j:=1 to n do
begin
C[m,n]=A[m,n]+B[m,n])
end;
end;
end
else
writeln('DIMENSI MATRIK TIDAK COCOK')
end;

- Pengurangan Matrik

procedure check_matrik(A,B,C:matrik; m,n,p,q:integer);
var i,j :integer;
begin
if (m=p) and (n=q) then
begin
for i:=1 to m do
begin
for j:=1 to n do
begin
C[m,n]=A[m,n]- C[m,n])
end;
end;
end
else
writeln('DIMENSI MATRIK TIDAK COCOK')
end;

- Perkalian Matrik

procedure perkalian_matrik(A,B,C:matrik; m,n,p,q:integer);
var i,j, k :integer;
C1: matrik;
begin
if (n=p) then
begin
for i:=1 to m do
begin
for j:=1 to p do
begin {inner product}
C1[i,j]:=0;
for k:=1 to n do
C1[i,j]:=C1[i,j]+A[i,k]*B[k,j];
end; {inner product}
end;
n:=q;
for i:=1 to m do
for j:=1 to n do
C[i,j]:=C1[i,j];
end
else
writeln('DIMENSI MATRIK TIDAK COCOK')
end;

- Transpose Matrik

procedure Transpose(A,B:matrik; m,n,p,q:integer);
var i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to m do
begin
B[m,n]=A[n,m]
end;
end;
end;

- Mencari Elemen yang Kosong pada Matrik

procedure CHECK_ZERO_ELEMEN(A,matrik; m,n:integer);
var i,j:integer;
begin
for i:=1 to m do
begin
for j:=1 to n do
begin
if B[m,n]= 0 then
writeln (‘terdapat elemen yang kosong’)
else
writeln (‘tidak terdapat elemen yang kosong’)
end;
end;
end;

Pointer 03

1.3 Pointer Sebagai Suatu Larik

Pointer dan larik (array) mempunyai hubungan yang erat. Suatu nama larik yang ditulis tanpa indeks menunjukkan alamat elemen pertama dari larik. Hubungan lain antara larik dengan pointer adalah dalam hal pengaksesan nilai-nilai elemen lariknya. Pada contoh 4 di bawah ini juga dapat dilihat bahwa nilai elemen-elemen larik dapat diakses dengan menggunakan pointer, demikian sebaliknya.

Misalnya suatu larik berdimensi satu dengan nama X dan variabel pointer dengan nama P. Alamat elemen-elemen larik dimensi satu ini mulai elemen pertama sampai ke-n dapat ditunjukkan sebagai berikut:

Elemen ke-1 : &X[0] atau X atau (X+0) atau P atau (P+0)

Elemen ke-2 : &X[1] atau (X+1) atau (P+1)

Elemen ke-3 : &X[2] atau (X+2) atau (P+2)

Elemen ke-n : &X[n-1] atau (X+n-1) atau (P+n-1)

Sedangkan nilai-nilai dari elemen larik dimensi satu ini dapat diakses sebagai berikut:

Elemen ke-1 : X[0] atau *X atau *(X+0) atau *P atau *(P+0)

Elemen ke-2 : X[1] atau *(X+1) atau *(P+1)

Elemen ke-3 : X[2] atau *(X+2) atau *(P+2)

Elemen ke-n : X[n-1] atau *(X+n-1) atau *(P+n-1)

Contoh 4:

#include

#include

#include

#include

void main()

{

char *P, X[7]={'A','B','C','D'};

int i;

P = X;

for (i=0; i<=3; i++)

{

cout<<"Nilai variabel (P+"<<<") = '"<<*(P+i)<<

"' berada pada alamat = ";printf("%p",(P+i));

cout<

}

cout<

for (i=0; i<=3; i++)

{

cout<<"Nilai variabel X["<<<"] = '"<<<

"' berada pada alamat = ";printf("%p",&X[i]);

cout<

}

}

Jika program di atas dijalankan, maka didapatkan hasil:

Record (rekaman)

Sebuah record rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang berbeda-beda tipenya (di banding array). Contoh , sebuah record dengan empat buah field.

Field 1 Field 2 Field 3 Field 4
Cara pendeklarasian dari record adalah sbb:
• Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang dipakai),
• Mendefinisikan variabel untuk dilakukan operasi.
SYNTAX
type
nama_record = record
identifier_1 : tipe_data_1;
:
:
identifier_n : tipe_data_n;
end;
var variabel : nama_record;
Contoh.
type
Data_mahasiswa = record
Nama : string;
Usia : integer;
Kota : String;
Kodepos : integer;
end;
Var
x: Data_mahasiswa;

1. Pengaksesan Elemen Record
Nama variable disertai nama field.
x.Nama
x.Usia
x.Kota
x.Kodepos

Contoh.
program RECORD_INTRO;
type tanggal = record
bulan, hari, tahun : integer;
end;
var waktu : tanggal;
begin
waktu.hari :=25;
waktu.bulan:=09;
waktu.tahun:= 1983;
writeln('hari ini adalah ',waktu.hari,':',waktu.bulan,':', waktu.tahun)
end.

2. Pengunaan With … do
Pernyataan with untuk lebih menyederhanakan pengaksesan field-field pada record. Pemrograman dapat mengakses field cukup dengan menyebutkan nama field-nya saja. Misalkan pernyataan :
x.Nama
x.Usia
x.Kota
x.Kodepos
menjadi
with x do
Begin
Nama
Usia
Kota
Kodepos
end

Contoh.
program RECORD_INTRO;
type tanggal = record
bulan, hari, tahun : integer;
end;
var waktu : tanggal;
begin {program utama}
with waktu do {mulai with}
begin
hari :=25;
bulan:=09;
tahun:=1983;
writeln('hari ini adalah ',hari,':',bulan,':', tahun)
end {akhir with}
end.

3. Array dari Record
Suatu array dapat juga berisi record contoh suatu deklarasi record tanggal.
type tanggal = record
bulan, hari, tahun : integer;
end;
var waktu : tanggal;
kemudian kita membentuk suatu array dari record ini, namakan birthdays.
var birthdays : array[1..10] of tanggal;
pernyataan ini akan membentuk suatu array dengan 10 elemen. Dimana tiap elemen adalah sebuah record tanggal, yaitu, terdiri atas bulan, hari, tahun dengan tipe data Integer.
Digambarkan seperti berikut:

Contoh Pemberian nilai awal dari masing-masing elemen birthdays:
Birthdays[1].hari :=25;
Birthdays[1].bulan:=09;
Birthdays[1].tahun:=1983;

4. Record di dalam Record
Record bisa berisi record lain sebagai field. Seperti contoh record tanggal dan jam dikombinasikan menjadi sebuah record saat ini,
type tanggal = record
bulan, hari, tahun : integer;
end;
type waktu =record
jam, menit, detik : integer;
end;
type waktu_ini =record
tanggal_ini : tanggal;
waktu_ini : waktu
end;
Kemudian kita perlu membuat variabel kerja
var saat_ini : waktu_ini;
pemberian nilai akan terjadi seperti di bawah ini:
saat_ini.tanggal.bulan:= 11;
saat_ini.tanggal.hari:= 2;
saat_ini.tanggal.tahun:= 1985;
saat_ini.waktu.jam:= 3;
saat_ini.waktu.menit:= 3;
saat_ini.waktu.detik:= 33;

Tree (Struktur Data)

Merupakan salah satu bentuk struktur data tidak linear yang menggambarkan hubungan yang bersifat hirarkis (hubungan one to many) antara elemen-elemen. Tree bisa didefinisikan sebagai kumpulan simpul/node dengan satu elemen khusus yang disebut Root dan node lainnya terbagi menjadi himpunan-himpunan yang saling tak berhubungan satu sama lainnya (disebut subtree). Untuk jelasnya, di bawah akan diuraikan istilah-istilah umum dalam tree :
a) Prodecessor : node yang berada diatas node tertentu.
b) Successor : node yang berada di bawah node tertentu.
c) Ancestor : seluruh node yang terletak sebelum node tertentu dan terletak pada jalur yang sama.
d) Descendant : seluruh node yang terletak sesudah node tertentu dan terletak pada jalur yang sama.
e) Parent : predecssor satu level di atas suatu node.
f) Child : successor satu level di bawah suatu node.
g) Sibling : node-node yang memiliki parent yang sama dengan suatu node.
h) Subtree : bagian dari tree yang berupa suatu node beserta descendantnya dan memiliki semua karakteristik dari tree tersebut.
i) Size : banyaknya node dalam suatu tree.
j) Height : banyaknya tingkatan/level dalam suatu tree.
k) Root : satu-satunya node khusus dalam tree yang tak punya predecssor.
l) Leaf : node-node dalam tree yang tak memiliki seccessor.
m) Degree : banyaknya child yang dimiliki suatu node.

Beberapa jenis Tree yang memiliki sifat khusus :
Binary Tree
Binary Tree adalah tree dengan syarat bahwa tiap node hanya boleh memiliki maksimal dua subtree dan kedua subtree tersebut harus terpisah. Sesuai dengan definisi tersebut, maka tiap node dalam binary tree hanya boleh memiliki paling banyak dua child.

Jenis-jenis Binary Tree :
a) Full Binary Tree
Binary Tree yang tiap nodenya (kecuali leaf) memiliki dua child dan tiap subtree harus mempunyai panjang path yang sama.
b) Complete Binary Tree
Mirip dengan Full Binary Tree, namun tiap subtree boleh memiliki panjang path yang berbeda. Node kecuali leaf memiliki 0 atau 2 child.
c) Skewed Binary Tree
yakni Binary Tree yang semua nodenya (kecuali leaf) hanya memiliki satu child.

Implementasi Binary Tree
Binary Tree dapat diimplemntasikan dalam Pascal dengan menggunakan double Linked List. Untuk nodenya, bisa dideklarasikan sbb :
Type Tree = ^node;
Node = record
Isi : TipeData;
Left,Right : Tree;
end;