INFO PROFIL

Foto saya
JENTREK ROJOIMO WONOSOBO, jawa tengah indonesia, Indonesia
Ya Allah jadikan kami manusia yang bisa keluar dari belenggu “kemunafikan”. Bimbing kami untuk tidak mengoreksi orang lain sebelum diri ini terkoreksi ya Rabb. Jadikan kami manusia yang jujur dan tidak pernah membohongi diri sendiri apalagi orang lain. kepadaMulah kami berserah ya Allah, kepadaMulah kami bermohon karena tanpa kehendakMu kami tidak bisa berbuat apa-apa Affannur Jentrek rojoimo wonosobo . lahir13 Agustus 1989

Minggu, 31 Januari 2010


sejarah al qur'an
Al-Qur’ān (ejaan KBBI: Alquran, Arab: القرآن) adalah kitab suci agama Islam. Umat Islam memercayai bahwa Al-Qur'an merupakan puncak dan penutup wahyu Allah yang diperuntukkan bagi manusia, yang disampaikan kepada Nabi Muhammad SAW melalui perantaraan Malaikat Jibril.

Daftar isi

[sembunyikan]

[sunting] Etimologi

Ditinjau dari segi kebahasaan, Al-Qur’an berasal dari bahasa Arab yang berarti "bacaan" atau "sesuatu yang dibaca berulang-ulang". Kata Al-Qur’an adalah bentuk kata benda (masdar) dari kata kerja qara'a yang artinya membaca. Konsep pemakaian kata ini dapat juga dijumpai pada salah satu surat Al-Qur'an sendiri yakni pada ayat 17 dan 18 Surah Al-Qiyamah yang artinya:
“Sesungguhnya mengumpulkan Al-Qur’an (di dalam dadamu) dan (menetapkan) bacaannya (pada lidahmu) itu adalah tanggungan Kami. (Karena itu,) jika Kami telah membacakannya, hendaklah kamu ikuti {amalkan} bacaannya”.(75:17-75:18)

[sunting] Terminologi

Sebuah cover dari mushaf Al-Qur'an
Dr. Subhi Al Salih mendefinisikan Al-Qur'an sebagai berikut:
“Kalam Allah SWT yang merupakan mukjizat yang diturunkan kepada Nabi Muhammad SAW dan ditulis di mushaf serta diriwayatkan dengan mutawatir, membacanya termasuk ibadah”.
Adapun Muhammad Ali ash-Shabuni mendefinisikan Al-Qur'an sebagai berikut:
"Al-Qur'an adalah firman Allah yang tiada tandingannya, diturunkan kepada Nabi Muhammad SAW penutup para Nabi dan Rasul, dengan perantaraan Malaikat Jibril a.s. dan ditulis pada mushaf-mushaf yang kemudian disampaikan kepada kita secara mutawatir, serta membaca dan mempelajarinya merupakan ibadah, yang dimulai dengan surat Al-Fatihah dan ditutup dengan surat An-Nas"
Dengan definisi tersebut di atas sebagaimana dipercayai Muslim, firman Allah yang diturunkan kepada Nabi selain Nabi Muhammad SAW, tidak dinamakan Al-Qur’an seperti Kitab Taurat yang diturunkan kepada umat Nabi Musa AS atau Kitab Injil yang diturunkan kepada umat Nabi Isa AS. Demikian pula firman Allah yang diturunkan kepada Nabi Muhammad SAW yang membacanya tidak dianggap sebagai ibadah, seperti Hadits Qudsi, tidak termasuk Al-Qur’an.

[sunting] Jaminan Tentang Kemurnian Al-Quran dan Bukti-Buktinya

Kemurnian Kitab Al-Quran ini dijamin langsung oleh Allah, yaitu Dzat yang menciptakan dan menurunkan Al-Quran itu sendiri. Dan pada kenyataannya kita bisa melihat, satu-satu kitab yang mudah dipelajari bahkan sampai dihafal oleh beribu-ribu umat Islam.

[sunting] Nama-nama lain Al-Qur'an

Dalam Al-Qur'an sendiri terdapat beberapa ayat yang menyertakan nama lain yang digunakan untuk merujuk kepada Al-Qur'an itu sendiri. Berikut adalah nama-nama tersebut dan ayat yang mencantumkannya:
  • Al-Kitab, QS(2:2),QS (44:2)
  • Al-Furqan (pembeda benar salah): QS(25:1)
  • Adz-Dzikr (pemberi peringatan): QS(15:9)
  • Al-Mau'idhah (pelajaran/nasehat): QS(10:57)
  • Al-Hukm (peraturan/hukum): QS(13:37)
  • Al-Hikmah (kebijaksanaan): QS(17:39)
  • Asy-Syifa' (obat/penyembuh): QS(10:57), QS(17:82)
  • Al-Huda (petunjuk): QS(72:13), QS(9:33)
  • At-Tanzil (yang diturunkan): QS(26:192)
  • Ar-Rahmat (karunia): QS(27:77)
  • Ar-Ruh (ruh): QS(42:52)
  • Al-Bayan (penerang): QS(3:138)
  • Al-Kalam (ucapan/firman): QS(9:6)
  • Al-Busyra (kabar gembira): QS(16:102)
  • An-Nur (cahaya): QS(4:174)
  • Al-Basha'ir (pedoman): QS(45:20)
  • Al-Balagh (penyampaian/kabar) QS(14:52)
  • Al-Qaul (perkataan/ucapan) QS(28:51)

[sunting] Struktur dan pembagian Al-Qur'an

[sunting] Surat, ayat dan ruku'

Al-Qur'an terdiri atas 114 bagian yang dikenal dengan nama surah (surat). Setiap surat akan terdiri atas beberapa ayat, di mana surat terpanjang dengan 286 ayat adalah surat Al Baqarah dan yang terpendek hanya memiliki 3 ayat yakni surat Al Kautsar, An-Nasr dan Al-‘Așr. Surat-surat yang panjang terbagi lagi atas sub bagian lagi yang disebut ruku' yang membahas tema atau topik tertentu.

[sunting] Makkiyah dan Madaniyah

Sedangkan menurut tempat diturunkannya, setiap surat dapat dibagi atas surat-surat Makkiyah (surat Mekkah) dan Madaniyah (surat Madinah). Pembagian ini berdasarkan tempat dan waktu penurunan surat dan ayat tertentu di mana surat-surat yang turun sebelum Rasulullah SAW hijrah ke Madinah digolongkan surat Makkiyah sedangkan setelahnya tergolong surat Madaniyah. Pembagian berdasar fase sebelum dan sesudah hijrah ini lebih tepat, sebab ada surat Madaniyah yang turun di Mekkah.

[sunting] Juz dan manzil

Dalam skema pembagian lain, Al-Qur'an juga terbagi menjadi 30 bagian dengan panjang sama yang dikenal dengan nama juz. Pembagian ini untuk memudahkan mereka yang ingin menuntaskan bacaan Al-Qur'an dalam 30 hari (satu bulan). Pembagian lain yakni manzil memecah Al-Qur'an menjadi 7 bagian dengan tujuan penyelesaian bacaan dalam 7 hari (satu minggu). Kedua jenis pembagian ini tidak memiliki hubungan dengan pembagian subyek bahasan tertentu.

[sunting] Menurut ukuran surat

Kemudian dari segi panjang-pendeknya, surat-surat yang ada didalam Al-Qur’an terbagi menjadi empat bagian, yaitu:

[sunting] Sejarah Al-Qur'an hingga berbentuk mushaf

Manuskrip dari Al-Andalus abad ke-12

[sunting] Penurunan Al-Qur'an

Al-Qur'an tidak turun sekaligus. Al-Qur'an turun secara berangsur-angsur selama 22 tahun 2 bulan 22 hari. Oleh para ulama membagi masa turun ini dibagi menjadi 2 periode, yaitu periode Mekkah dan periode Madinah. Periode Mekkah berlangsung selama 12 tahun masa kenabian Rasulullah SAW dan surat-surat yang turun pada waktu ini tergolong surat Makkiyyah. Sedangkan periode Madinah yang dimulai sejak peristiwa hijrah berlangsung selama 10 tahun dan surat yang turun pada kurun waktu ini disebut surat Madaniyah.

[sunting] Penulisan Al-Qur'an dan perkembangannya

Penulisan (pencatatan dalam bentuk teks) Al-Qur'an sudah dimulai sejak zaman Nabi Muhammad SAW. Kemudian transformasinya menjadi teks yang dijumpai saat ini selesai dilakukan pada zaman khalifah Utsman bin Affan.

[sunting] Pengumpulan Al-Qur'an di masa Rasullulah SAW

Pada masa ketika Nabi Muhammad SAW masih hidup, terdapat beberapa orang yang ditunjuk untuk menuliskan Al Qur'an yakni Zaid bin Tsabit, Ali bin Abi Talib, Muawiyah bin Abu Sufyan dan Ubay bin Kaab. Sahabat yang lain juga kerap menuliskan wahyu tersebut walau tidak diperintahkan. Media penulisan yang digunakan saat itu berupa pelepah kurma, lempengan batu, daun lontar, kulit atau daun kayu, pelana, potongan tulang belulang binatang. Di samping itu banyak juga sahabat-sahabat langsung menghafalkan ayat-ayat Al-Qur'an setelah wahyu diturunkan.

[sunting] Pengumpulan Al-Qur'an di masa Khulafaur Rasyidin

[sunting] Pada masa pemerintahan Abu Bakar
Pada masa kekhalifahan Abu Bakar, terjadi beberapa pertempuran (dalam perang yang dikenal dengan nama perang Ridda) yang mengakibatkan tewasnya beberapa penghafal Al-Qur'an dalam jumlah yang signifikan. Umar bin Khattab yang saat itu merasa sangat khawatir akan keadaan tersebut lantas meminta kepada Abu Bakar untuk mengumpulkan seluruh tulisan Al-Qur'an yang saat itu tersebar di antara para sahabat. Abu Bakar lantas memerintahkan Zaid bin Tsabit sebagai koordinator pelaksaan tugas tersebut. Setelah pekerjaan tersebut selesai dan Al-Qur'an tersusun secara rapi dalam satu mushaf, hasilnya diserahkan kepada Abu Bakar. Abu Bakar menyimpan mushaf tersebut hingga wafatnya kemudian mushaf tersebut berpindah kepada Umar sebagai khalifah penerusnya, selanjutnya mushaf dipegang oleh anaknya yakni Hafsah yang juga istri Nabi Muhammad SAW.
[sunting] Pada masa pemerintahan Utsman bin Affan
Pada masa pemerintahan khalifah ke-3 yakni Utsman bin Affan, terdapat keragaman dalam cara pembacaan Al-Qur'an (qira'at) yang disebabkan oleh adanya perbedaan dialek (lahjah) antar suku yang berasal dari daerah berbeda-beda. Hal ini menimbulkan kekhawatiran Utsman sehingga ia mengambil kebijakan untuk membuat sebuah mushaf standar (menyalin mushaf yang dipegang Hafsah) yang ditulis dengan sebuah jenis penulisan yang baku. Standar tersebut, yang kemudian dikenal dengan istilah cara penulisan (rasam) Utsmani yang digunakan hingga saat ini. Bersamaan dengan standarisasi ini, seluruh mushaf yang berbeda dengan standar yang dihasilkan diperintahkan untuk dimusnahkan (dibakar). Dengan proses ini Utsman berhasil mencegah bahaya laten terjadinya perselisihan di antara umat Islam di masa depan dalam penulisan dan pembacaan Al-Qur'an.
Mengutip hadist riwayat Ibnu Abi Dawud dalam Al-Mashahif, dengan sanad yang shahih:
Suwaid bin Ghaflah berkata, "Ali mengatakan: Katakanlah segala yang baik tentang Utsman. Demi Allah, apa yang telah dilakukannya mengenai mushaf-mushaf Al Qur'an sudah atas persetujuan kami. Utsman berkata, 'Bagaimana pendapatmu tentang isu qira'at ini? Saya mendapat berita bahwa sebagian mereka mengatakan bahwa qira'atnya lebih baik dari qira'at orang lain. Ini hampir menjadi suatu kekufuran'. Kami berkata, 'Bagaimana pendapatmu?' Ia menjawab, 'Aku berpendapat agar umat bersatu pada satu mushaf, sehingga tidak terjadi lagi perpecahan dan perselisihan.' Kami berkata, 'Pendapatmu sangat baik'."
Menurut Syaikh Manna' Al-Qaththan dalam Mahabits fi 'Ulum Al Qur'an, keterangan ini menunjukkan bahwa apa yang dilakukan Utsman telah disepakati oleh para sahabat. Demikianlah selanjutnya Utsman mengirim utusan kepada Hafsah untuk meminjam mushaf Abu Bakar yang ada padanya. Lalu Utsman memanggil Zaid bin Tsabit Al-Anshari dan tiga orang Quraish, yaitu Abdullah bin Az-Zubair, Said bin Al-Ash dan Abdurrahman bin Al-Harits bin Hisyam. Ia memerintahkan mereka agar menyalin dan memperbanyak mushaf, dan jika ada perbedaan antara Zaid dengan ketiga orang Quraish tersebut, hendaklah ditulis dalam bahasa Quraish karena Al Qur'an turun dalam dialek bahasa mereka. Setelah mengembalikan lembaran-lembaran asli kepada Hafsah, ia mengirimkan tujuh buah mushaf, yaitu ke Mekkah, Syam, Yaman, Bahrain, Bashrah, Kufah, dan sebuah ditahan di Madinah (mushaf al-Imam).

[sunting] Upaya penerjemahan dan penafsiran Al Qur'an

Upaya-upaya untuk mengetahui isi dan maksud Al Qur'an telah menghasilkan proses penerjemahan (literal) dan penafsiran (lebih dalam, mengupas makna) dalam berbagai bahasa. Namun demikian hasil usaha tersebut dianggap sebatas usaha manusia dan bukan usaha untuk menduplikasi atau menggantikan teks yang asli dalam bahasa Arab. Kedudukan terjemahan dan tafsir yang dihasilkan tidak sama dengan Al-Qur'an itu sendiri.

[sunting] Terjemahan

Terjemahan Al-Qur'an adalah hasil usaha penerjemahan secara literal teks Al-Qur'an yang tidak dibarengi dengan usaha interpretasi lebih jauh. Terjemahan secara literal tidak boleh dianggap sebagai arti sesungguhnya dari Al-Qur'an. Sebab Al-Qur'an menggunakan suatu lafazh dengan berbagai gaya dan untuk suatu maksud yang bervariasi; terkadang untuk arti hakiki, terkadang pula untuk arti majazi (kiasan) atau arti dan maksud lainnya.
Terjemahan dalam bahasa Indonesia di antaranya dilaksanakan oleh:
  1. Al-Qur'an dan Terjemahannya, oleh Departemen Agama Republik Indonesia, ada dua edisi revisi, yaitu tahun 1989 dan 2002
  2. Terjemah Al-Qur'an, oleh Prof. Mahmud Yunus
  3. An-Nur, oleh Prof. T.M. Hasbi Ash-Siddieqy
  4. Al-Furqan, oleh A.Hassan guru PERSIS
Terjemahan dalam bahasa Inggris
  1. The Holy Qur'an: Text, Translation and Commentary, oleh Abdullah Yusuf Ali
  2. The Meaning of the Holy Qur'an, oleh Marmaduke Pickthall
Terjemahan dalam bahasa daerah Indonesia di antaranya dilaksanakan oleh:
  1. Qur'an Kejawen (bahasa Jawa), oleh Kemajuan Islam Jogyakarta
  2. Qur'an Suadawiah (bahasa Sunda)
  3. Qur'an bahasa Sunda oleh K.H. Qomaruddien
  4. Al-Ibriz (bahasa Jawa), oleh K. Bisyri Mustafa Rembang
  5. Al-Qur'an Suci Basa Jawi (bahasa Jawa), oleh Prof. K.H.R. Muhamad Adnan
  6. Al-Amin (bahasa Sunda)

[sunting] Tafsir

Upaya penafsiran Al-Qur'an telah berkembang sejak semasa hidupnya Nabi Muhammad, saat itu para sahabat tinggal menanyakan kepada sang Nabi jika memerlukan penjelasan atas ayat tertentu. Kemudian setelah wafatnya Nabi Muhammad hingga saat ini usaha menggali lebih dalam ayat-ayat Al-Qur'an terus berlanjut. Pendekatan (metodologi) yang digunakan juga beragam, mulai dari metode analitik, tematik, hingga perbandingan antar ayat. Corak yang dihasilkan juga beragam, terdapat tafsir dengan corak sastra-bahasa, sastra-budaya, filsafat dan teologis bahkan corak ilmiah.

[sunting] Adab Terhadap Al-Qur'an

Sebelum menyentuh sebuah mushaf Al-Qur'an, seorang Muslim dianjurkan untuk menyucikan dirinya terlebih dahulu dengan berwudhu. Hal ini berdasarkan tradisi dan interpretasi secara literal dari surat Al Waaqi'ah ayat 77 hingga 79.
Terjemahannya antara lain:56-77. Sesungguhnya Al-Qur'an ini adalah bacaan yang sangat mulia, 56-78. pada kitab yang terpelihara (Lauhul Mahfuzh), 56-79. tidak menyentuhnya kecuali orang-orang yang disucikan. (56:77-56:79)
Penghormatan terhadap teks tertulis Al-Qur'an adalah salah satu unsur penting kepercayaan bagi sebagian besar Muslim. Mereka memercayai bahwa penghinaan secara sengaja terhadap Al Qur'an adalah sebuah bentuk penghinaan serius terhadap sesuatu yang suci. Berdasarkan hukum pada beberapa negara berpenduduk mayoritas Muslim, hukuman untuk hal ini dapat berupa penjara kurungan dalam waktu yang lama dan bahkan ada yang menerapkan hukuman mati.

[sunting] Hubungan dengan kitab-kitab lain

Berkaitan dengan adanya kitab-kitab yang dipercayai diturunkan kepada nabi-nabi sebelum Muhammad SAW dalam agama Islam (Taurat, Zabur, Injil, lembaran Ibrahim), Al-Qur'an dalam beberapa ayatnya menegaskan posisinya terhadap kitab-kitab tersebut. Berikut adalah pernyataan Al-Qur'an yang tentunya menjadi doktrin bagi ummat Islam mengenai hubungan Al-Qur'an dengan kitab-kitab tersebut:
  • Bahwa Al-Qur'an menuntut kepercayaan ummat Islam terhadap eksistensi kitab-kitab tersebut. QS(2:4)
  • Bahwa Al-Qur'an diposisikan sebagai pembenar dan batu ujian (verifikator) bagi kitab-kitab sebelumnya. QS(5:48)
  • Bahwa Al-Qur'an menjadi referensi untuk menghilangkan perselisihan pendapat antara ummat-ummat rasul yang berbeda. QS(16:63-64)
  • Bahwa Al-Qur'an meluruskan sejarah. Dalam Al-Qur'an terdapat cerita-cerita mengenai kaum dari rasul-rasul terdahulu, juga mengenai beberapa bagian mengenai kehidupan para rasul tersebut. Cerita tersebut pada beberapa aspek penting berbeda dengan versi yang terdapat pada teks-teks lain yang dimiliki baik oleh Yahudi dan Kristen.

[sunting] Daftar kepustakaan

  • Departemen Agama Republik Indonesia -- Al-Qur'an dan Terjemahannya.
  • Baidan, Nashruddin. 2003. Perkembangan Tafsir Al Qur'an di Indonesia. Solo. Tiga Serangkai.
  • Baltaji, Muhammad. 2005. Metodologi Ijtihad Umar bin Al Khatab. (terjemahan H. Masturi Irham, Lc). Jakarta. Khalifa.
  • Faridl, Miftah dan Syihabudin, Agus --Al-Qur'an, Sumber Hukum Islam yang Pertama, Penerbit Pustaka, Bandung, 1989 M.
  • Ichwan, Muhammad Nor. 2001. Memasuki Dunia Al-Qur’an. Semarang. Lubuk Raya.
  • ------------------------------. 2004.Tafsir 'Ilmy: Memahami Al Qur'an Melalui Pendekatan Sains Modern. Yogyakarta. Menara Kudus.
  • Ilyas, Yunahar. 1997. Feminisme dalam Kajian Tafsir Al-Qur'an Klasik dan Kontemporer. Yogyakarta. Pustaka Pelajar.
  • al Khuli, Amin dan Nasr Hamid Abu Zayd. 2004. Metode Tafsir Sastra. (terjemahan Khairon Nahdiyyin). Yogyakarta. Adab Press.
  • al Mahali, Imam Jalaluddin dan Imam Jalaluddin As Suyuthi,2001, Terjemahan Tafsir Jalalain Berikut Azbabun Nuzul Jilid 4 (terj oleh Bahrun Abu Bakar, Lc), Bandung, Sinar Algesindo.
  • Qardawi, Yusuf. 2003. Bagaimana Berinteraksi dengan Al-Qur’an. (terjemahan: Kathur Suhardi). Jakarta. Pustaka Al-Kautsar.
  • al-Qattan, Manna Khalil. 2001. Studi Ilmu-ilmu Al-Qur'an. Jakarta. Lentera Antar Nusa.
  • al-Qaththan, Syaikh Manna' Khalil. 2006. Pengantar Studi Ilmu Al-Qur'an (Mahabits fi 'Ulum Al Qur'an). Terjemahan: H. Aunur Rafiq El-Mazni, Lc, MA. Jakarta. Pustaka Al-Kautsar.
  • ash-Shabuny, Muhammad Aly. 1996. Pengantar Studi Al-Qur'an (at-Tibyan) (terjemahan: Moch. Chudlori Umar dan Moh. Matsna HS). Bandung. al-Ma’arif.
  • ash Shiddieqy,Teungku Muhammad Hasbi. 2002, Ilmu-ilmu Al Qur'an: Ilmu-ilmu Pokok dalam Menafsirkan Al Qur'an,Semarang, Pustaka Rizki Putra
  • Shihab, Muhammad Quraish. 1993. Membumikan Al-Qur'an. Bandung. Mizan.
  • -----------------------------------. 2002. Tafsir Al-Misbah; Pesan, Kesan dan Keserasian Al-Qur'an Jilid 1. Jakarta. Lentera hati.
  • Wahid, Marzuki. 2005. Studi Al Qur'an Kontemporer: Perspektif Islam dan Barat. Bandung. Pustaka Setia.

[sunting] Lihat pula

[sunting] Referensi

Commons-logo.svg
Wikimedia Commons memiliki galeri mengenai:
Wikisource
Wikisource memiliki naskah sumber yang berkaitan dengan Al-Qur'an

[sunting] Pranala luar


SEBAIK - BAIKNYA ORANG ADALAH ORANG YANG MAU BELAJAR AL QUR'AN DAN MAU MENGAJARKANNYA
oleh affannur
Dalam kitab Shahihnya, Imam Al-Bukhari meriwayatkan sebuah hadits dari Hajjaj bin Minhal dari Syubah dari Alqamah bin Martsad dari Saad bin Ubaidah dari Abu Abdirrahman As-Sulami dari Utsman bin Affan Radhiyallahu ‘Anhu, bahwa Rasulullah Shallallahu ‘Alaihi wa Sallam bersabda,
        خَيْرُكُمْ مَنْ تَعَلَّمَ الْقُرْآنَ وَعَلَّمَهُ .
            Sebaik-baik kalian adalah orang yang belajar Al-Qur`an dan mengajarkannya.[1]
            Masih dalam hadits riwayat Al-Bukhari dari Utsman bin Affan, tetapi dalam redaksi yang agak berbeda, disebutkan bahwa Nabi Shallallahu ‘Alaihi wa Sallam bersabda,
        إِنَّ أَفْضَلَكُمْ مَنْ تَعَلَّمَ الْقُرْآنَ وَعَلَّمَهُ .
            Sesungguhnya orang yang paling utama di antara kalian adalah yang belajar Al-Qur`an dan mengajarkannya.[2]
            Dalam dua hadits di atas, terdapat dua amalan yang dapat membuat seorang muslim menjadi yang terbaik di antara saudara-saudaranya sesama muslim lainnya, yaitu belajar Al-Qur`an dan mengajarkan Al-Qur`an. Tentu, baik belajar ataupun mengajar yang dapat membuat seseorang menjadi yang terbaik di sini, tidak bisa lepas dari keutamaan Al-Qur`an itu sendiri. Al-Qur`an adalah kalam Allah, firman-firman-Nya yang diturunkan kepada Nabi-Nya melalui perantara Malaikat Jibril Alaihissalam. Al-Qur`an adalah sumber pertama dan acuan utama dalam ajaran Islam. Karena keutamaan yang tinggi inilah, yang membuat Abu Abdirrahman As-Sulami salah seorang yang meriwayatkan hadits ini rela belajar dan mengajarkan Al-Qur`an sejak zaman Utsman bin Affan hingga masa Al-Hajjaj bin Yusuf Ats-Tsaqafi.[3]
            Maksud dari belajar Al-Qur`an di sini, yaitu mempelajari cara membaca Al-Qur`an. Bukan mempelajari tafsir Al-Qur`an, asbabun nuzulnya, nasikh mansukhnya, balaghahnya, atau ilmu-ilmu lain dalam ulumul Qur`an. Meskipun ilmu-ilmu Al-Qur`an ini juga penting dipelajari, namun hadits ini menyebutkan bahwa mempelajari Al-Qur`an adalah lebih utama. Mempelajari Al-Qur`an adalah belajar membaca Al-Qur`an dengan disertai hukum tajwidnya, agar dapat membaca Al-Qur`an secara tartil dan benar seperti ketika Al-Qur`an diturunkan. Karena Allah dan Rasul-Nya sangat menyukai seorang muslim yang pandai membaca Al-Qur`an. Rasulullah Shallallahu ‘Alaihi wa Sallam bersabda,
        الْمَاهِرُ بِالْقُرْآنِ مَعَ السَّفَرَةِ الْكِرَامِ الْبَرَرَةِ وَالَّذِي يَقْرَأُ الْقُرْآنَ وَيَتَتَعْتَعُ فِيهِ وَهُوَ عَلَيْهِ شَاقٌّ لَهُ أَجْرَانِ . (متفق عليه)
            Orang yang pandai membaca Al-Qur`an, dia bersama para malaikat yang mulia dan patuh. Sedangkan orang yang membaca Al-Qur`an dengan terbata-bata dan berat melafalkannya, maka dia mendapat dua pahala. (Muttafaq ‘Alaih)[4]
            Dan dalam Al-Qur`an disebutkan perintah Allah Subhanahu wa Ta'ala untuk membaca Al-Qur`an dengan tartil,
وَرَتِّلِ الْقُرْآنَ تَرْتِيلًا . (المزمل : 4)
            Dan bacalah Al-Qur`an dengan setartil-tartilnya. (Al-Muzzammil: 4)
            Adapun maksud dari mengajarkan Al-Qur`an, yaitu mengajari orang lain cara membaca Al-Qur`an yang benar berdasarkan hukum tajwid. Sekiranya mengajarkan ilmu-ilmu lain secara umum atau menyampaikan sebagian ilmu yang dimiliki kepada orang lain adalah perbuatan mulia dan mendapatkan pahala dari Allah, tentu mengajarkan Al-Qur`an lebih utama. Bahkan ketika Sufyan Ats-Tsauri ditanya, mana yang lebih utama antara berjihad di jalan Allah dan mengajarkan Al-Qur`an, dia mengatakan bahwa mengajarkan Al-Qur`an lebih utama. Ats-Tsauri mendasarkan pendapatnya pada hadits ini.[5]
            Namun demikian, meskipun orang yang belajar Al-Qur`an adalah sebaik-baik orang muslim dan mengajarkan Al-Qur`an kepada orang lain juga sebaik-baik orang muslim, tentu akan lebih baik dan utama lagi jika orang tersebut menggabungkan keduanya. Maksudnya, orang tersebut belajar cara membaca Al-Qur`an sekaligus mengajarkan kepada orang lain apa yang telah dipelajarinya. Dan, dari hadits ini juga dapat dipahami, bahwa orang yang mengajar Al-Qur`an harus mengalami fase belajar terlebih dahulu. Dia harus sudah pernah belajar membaca Al-Qur`an sebelumnya. Sebab, orang yang belum pernah belajar membaca Al-Qur`an, tetapi dia berani mengajarkan Al-Qur`an kepada orang lain, maka apa yang diajarkannya akan banyak kesalahannya. Karena dia mengajarkan sesuatu yang tidak dia kuasai ilmunya. 
jentrek rojoimo wonosobo///////////////////////////////////// affannur95@yahoo.co.id

10 Kiat Kepribadian

Orang Sukses

Suatu kesuksesan memiliki banyak definisi dan variasi tolok ukur.

Alan Kay  berpetuah : “The best way to predict the future is to create it.” –
Mungkin….Beberapa dari kita meyakini, bahwa :
“Kesuksesan berarti mencapai posisi tertinggi di kantor, variasi lainnya bermakna memiliki kecukupan finansial tertentu”.
Ada juga sebagian lagi mewujudkan kesuksesan sebagai sebuah predikat penghargaan dari kolega dan khalayak atas prestasinya.  
Dari bermacam definisi dan tolok ukur itu, satu hal yang dapat disimpulkan bahwa :“Kesuksesan merupakan pencapaian impian melalui sebuah proses terstruktur dan terencana”. So pasti kan….
Misalnya :
Si Anu mendefinisikan sukses jika dia mampu mencapai manajer pemasaran di tempat kerjanya. Usaha untuk “memuluskan” kesuksesan tersebut.
Si Anu memutuskan untuk belajar kembali di institusi pendidikan S2 dan mengikuti beberapa seminar pemasaran.
Tentu saja, banyak hal yang perlu dipersiapkan, baik itu material dan sikap pribadinya. Bentuk material berupa dana dan waktu merupakan hal yang pasti harus dipersiapkan, lalu perlu juga ditunjang dengan sikap pribadi dalam menyikapi proses pencapaian kesuksesan itu sendiri. 
Menurut : Mr. Jennie S. Bev, yaitu seorang konsultan, entrepreneur, penulis dan edukator bertempat tinggal di San Francisco Bay Area dan Beliau merupakan seorang Indonesia yang “sukses” berkompetisi pada iklim “ketat” Amerika.
Beliau mengedepankan 10 unsur kepribadian seorang sukses (baik dari segi keuangan dan prestasi) yang berdasarkan pada komunikasi dan pergaulannya dengan para billionaire dan beberapa pengusaha sukses.  
Sepuluh sikap yang harus dipunyai itu adalah sebagai berikut: 
Pertama, Keberanian untuk berinisiatif :
Kekuatan yang sebenarnya tidak lagi menjadi rahasia atas kesuksesan orang-orang terknenal yaitu mereka selalu punya ide-ide cemerlang!
Lihat saja : Seorang Donald Trump yang “mendunia” karena superioritasnya di bidang Real Estate awalnya berproses dari status bangkrut dan akhirnya berpredikat Raja Real Estate, adalah contoh dari seorang yang jenius dan berani berinisiatif.
Kita tentu mengenal serial TV The Apprentice, kontes Miss Universe, Online University bernama TrumpUniversity.com, bahkan di negara asalnya boneka Donald adalah sebuah icon dan produk laris selain buku-buku bestseller-nya. Dan inisiatif adalah kekayaan semua orang, tinggal orang itu mau atau tidak untuk berinisiatif mengemukakan ide-idenya. 
Kedua, Tepat waktu :
Sebuah hal yang pasti untuk semua orang di dunia ini tanpa terkecuali adalah bahwa kita memiliki jumlah waktu yang sama yaitu 24 jam sehari. Seorang yang menepati janji dan tepat waktu menunjukkan bahwa dia adalah seorang yang memiliki kemampuan mengatur/manage sesuatu yang paling terbatas tersebut.
Kemampuan untuk hadir sesuai janji adalah kunci dari semua keberhasilan, terutama keberhasilan berbisnis dan berinteraksi. Memberikan perhatian lebih terhadap waktu merupakan pencerminan dari respek terhadap diri sendiri dan kolega dan mitra kita. 
Ketiga, Senang melayani dan memberi:
Sebuah rumus sukses dari banyak orang sukses adalah mampu memimpin, namun sebuah additional attribute dari sikap kepemimpinan adalah kebiasaan melayani dan memberi.
“The more you give to others, the more respect you get in return
Dan, keikhlasan adalah kunci untuk sifat ini. Kebaikan lain akan terus mengalir tanpa henti saat kita mampu memberi dan melayani dengan ikhlas. Ini mungkin bisa dibilang sebagai bonus saja!
Tetapi, setidaknya dengan memberi dan melayani berarti menunjukkan kepada teman, kolega serta rekan kita betapa suksesnya diri kita sehingga membuat orang lebih yakin bermitra dan bergaul dengan diri kita.  
Keempat, Membuka diri terlebih dahulu: 
Barangkali kita pernah bertemu orang yang selalu mau tahu tentang hal pribadi orang lain namun dia terus menutup diri agar jati dirinya tidak terbuka.
Mereka biasanya hidup dalam ketakutan dan kecurigaan, dan selalu berprasangka buruk kepada siapa saja yang dijumpainya. Sikap ini adalah unsur yang tidak dimiliki banyak orang sukses.
Rasa percaya dan kebesaran hati untuk membuka diri terhadap lawan bicara merupakan cermin bahwa kita nyaman dengan diri sendiri, lantas tidak ada yang perlu ditutupi, itulah yang dicari oleh para partner sejati dan sebagian besar dari kita akan setuju bahwa tidak banyak orang yang mau bekerja sama dengan orang yang misterius, betul kan
Kelima, Senang bekerja sama dan membina hubungan baik: 
Kemampuan bekerja sama dalam tim adalah salah satu kunci keberhasilan utama.
Kembali kita mengambil contoh Donald Trump. Dalam serial TV The Apprentice, Trump memiliki tim yang loyal dan menjadi perpanjangan tangan dirinya dalam menemukan para calon “orang kepercayaan” yang baru.
Pada akhirnya, Trump akan memiliki sebuah tim yang sangat loyal dan bervisi sama dengan menciptakan jaringan kerja yang baik, sehingga jalan menuju sukses itu semakin terbuka lebar. 
Keenam, Senang mempelajari hal-hal baru: 
Ciputra dan Aburizal Bakrie adalah seorang yang bisa dikatakan sebagai orang sukses dalam bidangnya yaitu commerce. Tapi saat mereka mendirikan universitas, apakah mereka beralih sebagai seorang pendidik? Atau mereka sendiri sebenarnya adalah profesor? Jelas tidak, mereka tetap seorang entrepreneur, namun dengan kegemarannya mencari hal-hal baru serta langsung menerapkannya, maka dunia bisnis semakin terbuka luas baginya.
Dunia bisnis ibarat sebagai tempat bermain yang laus dan tidak terbatas. Jadi senang belajar dan mencari hal baru adalah sebuah sikap kesuksesan. 
Ketujuh, Jarang mengeluh, profesionalisme adalah yang paling utama: 
Lance Armstrong pernah berkata, “There are two kinds of days: good days and great days.
Hanya ada dua macam hari: hari yang baik dan hari yang sangat baik. Adalah baik jika kita tidak pernah mengeluh, walaupun suatu hari mungkin kita akan jatuh dan gagal.
Mengapa?
Karena setiap kali gagal, itu adalah kesempatan bagi diri kita untuk belajar mengatasi kegagalan itu sendiri sehingga tidak terulang lagi di kemudian hari. Hari di mana kita gagal tetap sebagai a good day (hari yang baik). 
Kedelapan, Berani menanggung resiko:
Jelas, tanpa ini tidak ada kesempatan sama sekali untuk menuju sukses. Sebenarnya setiap hari kita menanggung resiko, walaupun tidak disadari penuh.
Resiko hanyalah akan berakibat dua macam: be a good or a great day. Jadi, jadi tidak perlu dikhawatirkan lagi bukan?
Kegagalan pun hanyalah kesempatan belajar untuk tidak mengulangi hal yang sama di kemudian hari dan tentunya ambang kepada kesuksesan akan lebih dekat. 
Kesembilan, Tidak menunjukkan kekhawatiran (berpikir positif setiap saat): 
Berpikir positif adalah environment atau default state di mana keseluruhan eksistensi kita berada.
Jika kita gunakan pikiran negatif sebagai default state, maka semua perbuatan kita akan berdasarkan ini (kekhawatiran atau cemas). Dengan pikiran positif, maka perbuatan kita akan didasarkan oleh getaran positif, sehingga hal positif akan semakin besar kemungkinannya.
Semakin positif kita menyikapi hambatan, semakin besar kesempatan kita menemukan penyelesaian atas hambatan tersebut. 
Kesepuluh:  “Comfortable in their own skinMenutup-nutupi sesuatu maupun supaya tampak “lebih” dari lawan bicaranya.
Pernah bertemu dengan orang sukses yang rendah diri alias tidak nyaman dengan diri mereka sendiri? Tidak ada tentunya.
Kenyamanan menjadi diri sendiri tidak perlu ditutup-tutupi supaya lawan bicara tidak tersinggung karena setiap orang mempunyai tempat tersendiri di dunia yang tidak bisa digantikan oleh orang lain. Saya adalah saya, mereka adalah mereka.
Dengan menjadi diri saya sendiri, saya tidak akan mengusik keberadaan mereka. Jika mereka merasa tidak nyaman, itu bukan karena kepribadian saya, namun karena mindset yang berbeda dan kekurangmampuan mereka dalam mencapai kenyamanan dengan diri sendiri. 

Sikap dasar orang sukses tersebut di atas barangkali dapat menjadi cerminan dan memuluskan langkah kita untuk mencapai kesuksesan yang kita impikan, tinggal kita yang memutuskan.  
Ok… sekarang Kita Siap untuk sukses?
Mari kita coba dan terapakan dari sekarang.


Facebook | Affan Nur

Facebook Affan Nur

Facebook | Affan Nur

Facebook Affan Nur

Facebook | Affan Nur

Facebook Affan Nur

Facebook | Affan Nur

Facebook Affan Nur

Facebook | Affan Nur

Facebook Affan Nur

Kamis, 28 Januari 2010

 
oleh trimaida tsubiati
UNSIK.COM
29 JANUAARI 2009 

LATAR BELAKANG
Krisis ekonomi sedang melanda dunia, dunia usaha terguncang, semua perusahaan melakukan efisiensi yang mengakibatkan diberlakukan PHK pada tenaga-tenaga kerja yang dianggap kurang potensial. Jumlah pengangguran meningkat drastis, hal ini semakin diperparah dengan pertambahan jumlah tenaga kerja yang tidak seimbang dengan lapangan kerja yang tersedia.
Jumlah pengangguran terbuka di Indonesia per Agustus 2008 mencapai 9,39 juta jiwa (Harun Mahbub, 2009). Menurut hasil survei, pengangguran terbuka didominasi lulusan Sekolah Menengah Kejuruan sebesar 17,26 persen, lulusan Sekolah Menengah Atas 14,31 persen, lulusan universitas 12,59 persen, diploma 11,21 persen, baru lulusan SMP 9,39 persen dan SD ke bawah 4,57 persen.
Pengangguran terdidik dari perguruan tinggi menduduki peringkat ke tiga, kondisi ini terjadi karena kemandirian dan semangat kewirausahaan sarjana Indonesia masih sangat rendah sehingga mereka terjebak mencari kerja meskipun lapangan kerja terbatas.
Menurut data dari Badan Pusat Statistik, jumlah penganggur berpendidikan tinggi selama kurun 2004 -2007 mencapai 50 persen atau lebih jika dibandingkan pengangguran lulusan diploma I/II dan akademi/diploma III. Lebih dari 80 persen sarjana memilih bekerja sebagai buruh atau karyawan dan hanya sekitar enam persen yang bekerja sendiri (ELN, Kompas.com, 30 Oktober 2008).
Pendidikan entrepreneurship memang semakin perlu diajarkan untuk mahasiswa, dan yang tidak kalah penting bagaimana kita mendorong perguruan tinggi untuk bisa memiliki dan mengiplementasikan ide-ide untuk memecahkan persoalan yang sedang dihadapi oleh bangsa Indonesia.
SD Darmono (Presdir PT Jababeka Tbk.) mengatakan, perusahaan di Indonesia memang menghadapi kendala mendapatkan tenaga kerja yang berpengalaman dan terampil. Daya tarik berinvestasi di Indonesia yang menyediakan tenaga kerja murah namun dinilai tidak terampil tidak lagi diminati investor. Pengetahuan dan keterampilan bisa dipelajari. Yang memprihatinkan, kebiasaan dan sikap para sarjana di dunia kerja tersebut dalam hal disiplin, tanggung jawab, jujur dan inovatif masih kurang memuaskan.
Sebuah majalah di Indonesia mengadakan polling tentang profesi terseksi yang diminati masyarakat (Binstudio.com, 19 Januari 2009). Arsitek mendapat kedudukan pada rangking ketiga. Rangking pertama diduduki oleh pemadam kebakaran, dengan alasan mengutamakan dan menyelamatkan manusia dalam sebuah musibah. Urutan kedua adalah: dokter. Profesi arsitek ini ternyata mengalahkan profesi lawyer dan polisi atau angkatan bersenjata. Hal yang sangat menarik, kita perlu introspeksi diri mengenai hal ini.
Profesi arsitek, saat ini memang sedang banyak disoroti oleh berbagai media massa (radio, TV, majalah, tabloid, koran) bahkan buku-buku tentang arsitektur dan interior banyak dijual dimana-mana. Dunia arsitektur dan interior mulai menggeliat lagi semenjak akhir tahun 2000. Banyak bangunan-bangunan dan interior menarik yang sudah berdiri, menjadi pusat perhatian wartawan bahkan para kritikus property dan bangunan. Adalah wajar apabila profesi arsitek mendapat rangking tersebut di atas.
Yang mengkhawatirkan pada saat ini adalah bahwa banyaknya lulusan sarjana arsitek tidak sebanding dengan tersedianya lapangan kerja di biro-biro konsultan bagi mereka. Sebagian dari mereka bekerja sesuai dengan bidangnya, sisanya akan bekerja di bidang lain seperti : Bank, periklanan, broker, designer grafis, designer produk, designer interior atau developer yang paling tidak masih bersinggungan dengan profesi terseksi ini; sedangkan beberapa diantaranya menjadi penggangguran intelek. Ini adalah permasalahan bangsa yang harus sesgera ditangani.
UPAYA PENERAPAN PENDIDIKAN PROFESSIONAL DAN WIRAUSAHA
PADA PERKULIAHAN DI PRODI ARSITEKTUR
UNS
Empat pilar pendidikan menurut UNESCO yakni terdiri dari : Learning to know (belajar untuk mengetahui), learning to be (belajar untuk menjadi seseorang), learning to live together (belajar untuk hidup bersama) dan learning to do (belajar untuk melakukan). Pendidikan arsitektur sebagai salah satu cabang pendidikan keilmuan, harus menerapkan ke empat pilar tersebut dalam kurikulum silabus pembelajarannya (www.unesco.org).
Berbicara mengenai pendidikan arsitektur, tak luput dari membicarakan mengenai kampus sebagai produsen para sarjana arsitek, dan selanjutnya kurikulum silabus apa saja yang diberikan disana untuk menunjang mahasiswanya supaya siap untuk diterjunkan ke lapangan menjadi wirausaha atau tenaga kerja yang profesional dalam bidangnya.
Pemerintah RI menetapkan 7 bidang keprofesian (Keputusan Menteri Pendidikan dan Kebudayaan RI Nomor 036/U/1993 dan Nomor 056/U/1994), yaitu : Dokter, Dokter Gigi, Psikolog, Akuntan, Notaris, Insinyur dan Arsitek. Ditetapkan pula bahwa calon pelaku dalam bidang keprofesian tersebut memerlukan pendidikan tambahan sesuai dengan pendidikan tinggi S1 untuk memenuhi tuntutan keprofesiannya masing-masing.
Pendidikan tinggi untuk para arsitek pada awal pendirannya mempunyai misi untuk menghasilkan para arsitek profesional yang siap pakai dengan masa pendidikan 5 tahun, selain diberi pengetahuan tentang ilmu arsitektur para mahasiswanya juga diberi ketrampilan merancang melalui penugasan di studio, pembekalan pengalaman kerja melalui praktik kerja/magang, di akhir masa pendidikannya diuji melalui simulasi proyek nyata dan apabila lulus dinyatakan sebagai insinyur (Dewan Pendidikan Arsitektk IAI, 2007). Sekarang sudah berubah, masa pendidikan di Jurusan Arsitektur dipersingkat menjadi + 4 tahun, dengan jumlah sks yang lebih sedikit, dan apabila lulus disebut dengan Sarjana Teknik. Setelah perubahan ini terdapat keluhan dari pihak pengguna, yang menganggap bahwa sarjana arsitek yang dihasilkan oleh Perguruan Tinggi pada saat ini belum siap pakai.
Hal ini ditambah lagi timbul kesenjangan dengan organisasi arsitek sedunia Union Internationale des Architectes (UIA) bersama-sama dengan American Institutes of Architects (AIA) dan Architects’ Society of China (ASA) merekomendasikan bahwa :
• Pendidikan minimal bagi seorang calon arsitek profesional adalah 5 tahun, dilanjutkan dengan pemagangan sekurang-kurangnya 4 tahun.
• Pendidikan minimal bagi seorang calon arsitek profesional harus mencakup 37 butir pengetahuan, sedangkan pemagangannya harus menghasilkan 13 butir kemampuan.
IAI sebagai anggota UIA menerapkan rekomendasi tersebut di atas. 37 butir pengetahuan sampai saat ini masih terus sedang dicari kesepakatannya antara IAI dengan Perguruan Tinggi. Sedangkan 13 butir kemampuan oleh IAI dijadikan tolok ukur dalam penilaian karya para arsitek anggota IAI yang ingin memiliki sertifikat.
37 butir pengetahuan yang direkomendasikan UIA tersebut adalah sebagai berikut :
1. Verbal
2. Grafis
3. Riset
4. Berfikir kritis
5. Dasar-dasar perancangan
6. Kolaborasi
7. Perilaku manusia
8. Keragaman manusia
9. Sejarah dan preseden
10. Tradisi nasional dan regional
11. Tradisi barat
12. Tradisi non-barat
13. Pelestarian lingkungan
14. Aksesibilitas
15. Kondisi tapak
16. Sistem keteraturan formal
17. Sistem struktur
18. Sistem penyelamatan dari bangunan
19. Sistem sampul bangunan
20. Sistem lingkungan bangunan
21. Sistem pelayanan bangunan
22. Integrasi sistem bangunan
23. Tanggung jawab hukum
24. Kepatuhan terhadap peraturan bangunan
25. Bahan bangunan dan penerapannya
26. Ekonomi bangunan dan pengendalian biaya
27. Pengembangan detail rancangan
28. Dokumentasi grafik
29. Perancangan komprehensif
30. Persiapan program
31. Konteks hukum praktek arsitektur
32. Organisasi dan manajemen praktek
33. Kontrak dan dokumentasi
34. Pemagangan
35. Wawasan peran arsitek
36. Kondisi masa silam dan kini
37. Etika dan penilaian professional
Sedangkan 13 butir kemampuan yang direkomendasikan IAI adalah meliputi :
1. Kemampuan menghasilkan rancangan arsitektur yang memenuhi ukuran estetika dan persyaratan teknik yang bertujuan melestarikan lingkungan.
2. Pengetahuan yang mamadai tentang sejarah dan teori arsitektur termasuk seni, teknologi, dan ilmu-ilmu pengetahuan manusia.
3. Pengetahuan tentang seni rupa dan pengaruhnya terhadap kualitas rancangan arsitektur.
4. Pengetahuan yang memadai tentang perencanaan dan perancangan kota serta ketrampilan yang dibutuhkan dalam proses perencanaan itu.
5. Memahami hubungan antara manusia dan bangunan gedung serta antara bangunan gedung dan lingkungannya juga memahami pentingnya mengaitkan ruang-ruang yang terbentuk diantara manusia, bangunan gedung dan lingkungannya tersebut untuk kebutuhan manusia dan skala manusia.
6. Menguasai pengetahuan yang memadai tentang cara menghasilkan perancangan yang sesuai daya dukung lingkungan.
7. Memahami aspek keprofesian dalam bidang arsitektur dan menyadari peran arsitek di masyarakat khususnya dalam penyusunan kerangka acuan kerja yang memperhitungkan factor-faktor sosial.
8. Memahami metode penelusuran dan penyiapan program rancangan bagi sebuah proyek perancangan.
9. Memahami permasalahan struktur, konstruksi dan rekayasa yang berkaitan dengan rancangan bangunan gedung.
10. Menguasai pengetahuan yang memadai mengenai masalah fisik dan fisika, teknologi dan fungsi bangunan gedung sehingga dapat melengkapinya dengan kondisi internal yang memberi kenyamanan serta perlindungan terhadap iklim setempat.
11. Menguasai ketrampilan yang dipergunakan untuk memenuhi persyaratan pihak pengguna bangunan gedung dalam rentang kendala biaya pembangunan dan peraturan bangunan.
12. Menguasai pengetahuan yang memadai tentang industri, organisasi, peraturan dan tata cara yang berkaitan dengan proses penerjemahan konsep perancangan menjadi bangunan gedung serta proses memadukan penataan daerah-daerahnya menjadi perancangan yang menyeluruh.
13. Menguasai pengetahuan yang memadai mengenai pendanaan proyek, manajeman proyek dan pengendalian beaya pembangunan.
Cakupan 37 butir pengetahuan dan 13 butir kemampuan di atas pada dasarnya harus terkandung dalam kurikulum dan silabus pendidikan tinggi Arsitektur di Indonesia. Masukkan tersebut secara garis besar dapat digambarkan sebagai berikut :

Minggu, 24 Januari 2010

الگوریتم مرتب‌سازی

از ویکی‌پدیا، دانشنامهٔ آزاد

پرش به: ناوبری, جستجو
الگوریتم مرتب‌سازی، در علوم کامپیوتر و ریاضی، الگوریتمی است که لیستی از داده‌ها را به ترتیبی مشخص می‌چیند.
پر استفاده‌ترین ترتیب‌ها، ترتیب‌های عددی و لغت‌نامه‌ای هستند. مرتب‌سازی کارا در بهینه سازی الگوریتم‌هایی که به لیست‌های مرتب شده نیاز دارند (مثل جستجو و ترکیب) اهمیت زیادی دارد.
از ابتدای علم کامپیوتر مسائل مرتب‌سازی تحقیقات فراوانی را متوجه خود ساختند، شاید به این علت که در عین ساده بودن، حل آن به صورت کارا پیچیده‌است. برای مثال مرتب‌سازی حبابی در سال ۱۹۵۶ به وجود آمد. در حالی که بسیاری این را یک مسئلهٔ حل شده می‌پندارند، الگوریتم کارآمد جدیدی همچنان ابداع می‌شوند (مثلاً مرتب‌سازی کتاب خانه‌ای در سال ۲۰۰۴ مطرح شد).
مبحث مرتب‌سازی در کلاس‌های معرفی علم کامپیوتر بسیار پر کاربرد است، مبحثی که در آن وجود الگوریتم‌های فراوان به آشنایی با ایده‌های کلی و مراحل طراحی الگوریتم‌های مختلف کمک می‌کند؛ مانند تحلیل الگوریتم، داده‌ساختارها، الگوریتم‌های تصادفی، تحلیل بدترین و بهترین حالت و حالت میانگین، هزینهٔ زمان و حافظه، و حد پایین.

فهرست مندرجات

[نهفتن]

[ویرایش] طبقه‌بندی

در علم کامپیوتر معمولاً الگوریتم‌های مرتب‌سازی بر اساس این معیارها طبقه‌بندی می‌شوند:
  • پیچیدگی (بدترین و بهترین عملکرد و عملکرد میانگین): با توجه به اندازهٔ لیست (n). در مرتب‌سازی‌های معمولی عملکرد خوب (O(n log n و عملکرد بد (O(n۲ است. بهترین عملکرد برای مرتب‌سازی (O(n است. الگوریتم‌هایی که فقط از مقایسهٔ کلیدها استفاده می‌کنند در حالت میانگین حداقل (O(n log n مقایسه نیاز دارند.
  • حافظه (و سایر منابع کامپیوتر) : بعضی از الگوریتم‌های مرتب‌سازی «در جا[۱]» هستند. یعنی به جز داده‌هایی که باید مرتب شوند، حافظهٔ کمی ((O(۱) مورد نیاز است؛ در حالی که سایر الگوریتم‌ها به ایجاد مکان‌های کمکی در حافظه برای نگه‌داری اطلاعات موقت نیاز دارند.
  • پایداری[۲] : الگوریتم‌های مرتب‌سازی پایدار ترتیب را بین داده‌های دارای کلیدهای برابر حفظ می‌کنند. فرض کنید می‌خواهیم چند نفر را بر اساس سن با یک الگوریتم پایدار مرتب کنیم. اگر دو نفر با نام‌های الف و ب هم‌سن باشند و در لیست اولیه الف جلوتر از ب آمده باشد، در لیست مرتب شده هم الف جلوتر از ب است.
  • مقایسه‌ای بودن یا نبودن. در یک مرتب‌سازی مقایسه‌ای داده‌ها فقط با مقایسه به وسیلهٔ یک عملگر مقایسه مرتب می‌شوند.
  • روش کلی : درجی، جابجایی، گزینشی، ترکیبی و غیره. جابجایی مانند مرتب‌سازی حبابی و مرتب‌سازی سریع و گزینشی مانند مرتب‌سازی پشته‌ای.
الگوریتم‌های مرتب سازی

[ویرایش] مرتب سازی حبابی

(به انگلیسی: Bubble Sort)
فرض کنید می‌خواهیم n داده به صورت صعودی مرتب شوند. عنصر اول را با با عنصر دوم مقایسه کرده، و در صورتی که عنصر اول بزرگتر باشد باشد جای عنصر اول و دوم را عوض می‌کنیم. همین کار را با عناصر دوم و سوم انجام می‌دهیم و همینطور عناصر سوم و چهارم ، الی آخر. وقتی این کار تمام شد بزرگ‌ترین عنصر بین داده‌ها به آخر لیست می‌رسد . حالا یک بار دیگر از اول این کار را انجام می‌دهیم اما این بار تا عنصر (n -۱)ام ادامه می‌دهیم (عنصر nام در مرحله اول در جای خودش قرار گرفته). باز هم این کار را تا عنصر (n - ۲)ام تکرار می‌کنیم ، و بازهم .... تا اینکه بالاخره داده‌ها مرتب می‌شوند. مثلا:

۰ - ۰)    ۵ ۶ ۴ ۲

۱ - ۱)    ۵ ۶ ۴ ۲

۱ - ۲)    ۵ ۴ ۶ ۲

۱ - ۳)    ۵ ۴ ۲ ۶

۲ - ۱)    ۴ ۵ ۲ ۶

۲ - ۲)    ۴ ۲ ۵ ۶

۳ - ۱)    ۲ ۴ ۵ ۶
مرحله اول سه مقایسه ، مرحله دوم دو مقایسه و مرحله سوم یک مقایسه داره ، که روی هم می‌شوند شش مقایسه. در کل این روش n (n - ۱) / ۲ مقایسه لازم داره. اما نه همیشه. به مثال زیر توجه کنید:

۰ - ۰)    ۰ ۷ ۱ ۳ ۵ ۴

۱ - ۱)    ۰ ۱ ۷ ۳ ۵ ۴

۱ - ۲)    ۰ ۱ ۷ ۳ ۵ ۴

۱ - ۳)    ۰ ۱ ۳ ۷ ۵ ۴

۱ - ۴)    ۰ ۱ ۳ ۵ ۷ ۴ 

۱ - ۵)    ۰ ۱ ۳ ۵ ۴ ۷ 

۲ - ۱)    ۰ ۱ ۳ ۵ ۴ ۷

۲ - ۲)    ۰ ۱ ۳ ۵ ۴ ۷

۲ - ۳)    ۰ ۱ ۳ ۵ ۴ ۷

۲ - ۴)    ۰ ۱ ۳ ۴ ۵ ۷ 

۳ - ۱)    ۰ ۱ ۳ ۴ ۵ ۷

۳ - ۲)    ۰ ۱ ۳ ۴ ۵ ۷

۳ - ۳)    ۰ ۱ ۳ ۴ ۵ ۷

۴ - ۱)    ۰ ۱ ۳ ۴ ۵ ۷

۴ - ۲)    ۰ ۱ ۳ ۴ ۵ ۷

۵ - ۱)    ۰ ۱ ۳ ۴ ۵ ۷
همونطور که می‌بینید انتهای مرحله ۲ داده‌ها مرتب هستن. تشخیص این مساله هم کار سختی نیست: اگه به مرحله‌ای رسیدیم که هیچ جابجایی در اون رخ نداد نتیجه می‌شه که داده‌ها مرتب هستن (مرحله سوم). پس بعد از مرحله ۳ مطمئن می‌شیم که داده هامون مرتب شدن و نیازی به مراحل ۴ و ۵ نیست. پیاده سازی (مرتب سازی حبابی) در c++


void bubble_sort (int arr [ ] , int n)

{

  register int i , j , t , c;

(--  for (i = n - ۲ ; i >= ۰ ; i 

  {

    c = ۰;

   (++ for (j = ۰ ; j <= i ; j 

       if (arr [ j ] > arr [ j + ۱ ]) 

     {

     ; ] t = arr [ j

          arr [ j ] = arr [ j + ۱ ]; 

       ; arr [ j + ۱ ] = t
        C++;

   }

     (if (c == ۰ 

       ; break

  }
}

[ویرایش] مرتب سازی انتخابی

(به انگلیسی: Selection Sort)
معمولاً اطلاعات و داده‌های خامی که در اختیار برنامه نویس قرار داره بصورت نامرتب هستن. مواقعی پیش می‌یاد که لازمه این داده‌ها بر حسب فیلد خاصی مرتب بشن؛ مثل لیست دانش آموزان بر حسب معدل ، لیست کارمندان بر حسب شماره پرسنلی ، لیست دفترچه تلفن بر حسب نام خانوادگی و ... روشهای متعددی برای مرتب سازی وجود داره که من قصد دارم تا حد امکان شما رو با این روشها آشنا کنم. برای شروع روش مرتب سازی انتخابی (Selection Sort) رو توضیح می‌دم.
روش انتخابی اولین روشیه که به ذهن می‌رسه: بزرگ‌ترین رکورد بین رکوردهای لیست رو پیدا می‌کنیم و به انتهای لیست انتقال می‌دیم. از بقیه رکوردها بزرگ‌ترین رو انتخاب می‌کنیم و انتهای لیست - کنار رکورد قبلی - قرار می‌دیم و ... مثلا:

۰:  ۹ ۱ ۶ ۴ ۷ ۳ ۵

۱:  ۵ ۱ ۶ ۴ ۷ ۳ ۹

۲:  ۵ ۱ ۶ ۴ ۳ ۷ ۹

۳:  ۵ ۱ ۳ ۴ ۶ ۷ ۹

۴:  ۴ ۱ ۳ ۵ ۶ ۷ ۹

۵:  ۳ ۱ ۴ ۵ ۶ ۷ ۹

۶:  ۱ ۳ ۴ ۵ ۶ ۷ ۹

پیاده سازی (مرتب سازی انتخابی) در c++

void selection_sort (int arr[] , int n) 

{

  register int i , j; 

  int max , temp; 

  (--for (i = n - ۱ ; i > ۰ ; i 

  }

    max = ۰; 

    for (j = ۱ ; j <= i ; j++) 

      if (arr[ max ] < arr[ j]) 

            max = j; 

          ; ] temp = arr[ i

            arr[ i ] = arr[ max];

            arr[ max ] = temp;

 }

}

[ویرایش] مرتب سازی درجی

(به انگلیسی: Insertion Sort)
  • در مرتب سازی درجی،ابتدا عنصر دوم با عنصر اول لیست مقایسه می‌شود و در صورت لزوم با عنصر اول جابجا می‌شود به طوری که عناصر اول و دوم تشکیل یک لیست مرتب دوتایی را بدهند. سپس عنصر سوم به ترتیب با دو عنصر قبلی خود یعنی عناصر دوم و اول مقایسه و درجای مناسبی قرار می‌گیرد به طوری که عناصر اول و دوم و سوم تشکیل یک لیست مرتب سوم و دوم و اول مقایسه و درجای مناسب قرار می‌گیرد به طوری که عناصر اول و دوم و سوم و چهارم تشکیل یک لسیت مرتب چهارتایی را بدهند و در حالت کلی عناصر i ام با i-1 عنصر قبلی خود مقایسه می‌گردد تا در مکان مناسب قرار گیرد به طوری که i عنصر تشکیل یک لیست مرتب i تایی را بدهند و این روند تا مرتب شدن کامل لیست ادامه می‌یابد.یا به صورت دقیق تر :
  • مرحلهٔ 1:[1]A خودش به طور بدیهی مرتب است.
  • مرحلهٔ 2:[2]A را یا قبل از یا بعد از [1]A درج می کنیم طوری که [1]A و [2]A مرتب شوند.
  • مرحلهٔ 3:[3]A را در مکان صحیح در [1]A و [2]A درج می کنیم به گونه‌ای که [1]Aو [2]A و[3]A مرتب شده باشند.
  • مرحله A[n]:n را در مکان صحیح خود در [1]Aو [2]A و ... و[A[n-1 به گونه‌ای درج می کنیم که کل آرایه مرتب باشد.
  • زمان اجرای الگوریتم مرتب سازی درجی از(O(n^2 است.
  • این الگوریتم از الگوریتم های پایدار می‌باشد و در یک آرایهٔ کاملا مرتب بهترین حالت را دارد و برای یک آرایهٔ مرتب شده معکوس بدترین حالت را دارد.
  • ثابت شده است که برای n های کوچکتر از 20 مرتب سازی درجی سریع ترین روش مرتب سازی است.

  • پیاده سازی (مرتب سازی درجی) در c++

void Insertion_sort (int A[] , int n) 

{

 int i , j ,temp;  

  for (i =1 ; i < n ; i++) 

  {

    temp = A[i]; 

    for (j = i ; j >0 && A[j-1]>temp; j--) 

      A[j]=A[j-1]; 

    A[j]=temp; 

         
 }

}

[ویرایش] مرتب سازی پایه‌ای (مبنایی)

(به انگلیسی: radix sort)

  • مرتب سازی مبنایی الگوریتمی است که لیستی با اندازهٔ ثابت و اعضایی با طول k را در زمان (O(kn اتجام می‌دهد.ورودی ها را به بخش های کوچکی تقسیم می کنیم(اگر یک کلمه است آن را به حرف هایش می شکنیم و اگر عدد است آن را به ارقامش) سپس ابتدا لیست را بر اساس کم ارزش ترین بیت(حرف یا رقم) مرتب می کنیم، سپس بر اساس دومین بیت ، تا در نهایت بر اساس پرارزش ترین بیت.به این ترتیب پس از k مرحله لیست مرتب می‌شود.
  • این روش مرتب سازی پایدار است و در تهیهٔ واژه نامه‌ها و مرتب سازی اعداد استفاده می‌شود.
  • مرتبهٔ اجرایی این الگوریتم در بهترین حالت از(O(nlgn و در بدترین حالت از(O(n^2 است.
  • پیاده سازی radix sort

{

  int i , j , k ;

for (i = 1 ; i<=5 ; i++) 

  {

   

    for (j = ۰ ; j 
{ 

       k=ith digit of x[j];

    place x[j] at rear of q[k];
 
  }
for (j=0;j<10;j++)
place element of q[j] in next sequential position of x;

}

[ویرایش] bucket sort

bucket sort به طور متوسط در یک زمان خطی به طول می انجامد.این الگوریتم با فرض اینکه ورودی ها به طور تصادفی و به صورت یکنواخت در بازهٔ (1و0] توزیع شده اند، کار می‌کند.
  • ایدهٔ bucket sort این است که بازهٔ (1و0] را به زیربازه‌هایی با سایز یکسان تقسیم می‌کند و سپس ورودیها را در این زیربازه‌ها توزیع می کنیم( در واقع این ورودی ها با توجه به مقدارشان در این زیربازه‌ها قرار می‌گیرند). اگر ورودی ها توزیعی یکنواخت داشته باشند ، انتظار داریم که هر عدد در یک زیربازه قرار گرفته باشد.برای تولید خروجی ، اعداد داخل هر زیربازه را به یک روش مرتب سازی (معمولا مرتب سازی درجی به دلیل کارایی خوب در مرتب سازی تعداد کم ورودی)مرتب می کنیم. سپس داده‌های مرتب شدهٔ هر زیربازه در کنار هم قرار می دهیم.
  • شبه کد bucket sort

1.n<-length [A]

2.for i=1 to n do

3.  insert A[i] into list B[nA[i]]

4.for i=0 to n-1 do

5.  sort list B with Insertion sort

6.concatenate the list B[0],B[1],...B[n-1] together in order.


[ویرایش] مرتب سازی هرمی

(به انگلیسی: Heap Sort)
همان طور که می دانیم ، هرم تقریبا مرتب است، زیرا هر مسیری از ریشه به برگ ، مرتب است. به این ترتیب ، الگوریتم کارآمدی به نام مرتب سازی هرمی را می‌توان با استفاده از آن به دست آورد.این مرتب سازی همانند سایر مرتب سازی ها بر روی یک آرایه صورت می‌گیرد. این روش مرتب سازی همانند مرتب سازی سریع از یک تابع کمکی استفاده می‌کند.
  • پیچیدگی آن همواره از(O(nlgn است. و بر خلاف مرتب سازی سریع به صورت بازگشتی نیست.
  • در این روش درخت heap روی آرایه ساخته می‌شود.
  • این الگوریتم پایدار نمی‌باشد.

[ویرایش] مرتب سازی شل

(به انگلیسی: Shell Sort)
نام این الگوریتم از نام مخترع آن گرفته شده‌است. در این الگوریتم از روش درج استفاده می‌شود.
به عنوان مثال رشته f d a c b e را تحت این الگوریتم مرتب می‌کنیم.

F     d   a    c    b    e             : شروع

           C     d   a    f    d    e            : مرحله اول

           A     b   c    d    e    f            : مرحله دوم

           A     b   c    d    e    f             : نتیجه

در مرحله اول : داده‌های با فاصله ۳ از یکدیگر ، مقایسه و مرتب شده ، در مرحله دوم
داده‌های با فاصله ۲ از یکدیگر ، مقایسه و مرتب می‌شوند  و در مرحله دوم داده‌ها با
فاصله یک از یکدیگر مقایسه و مرتب می‌شوند .
منظور از فاصله سه این است که عنصر اول با عنصر چهارم(۳+۱) ، عنصر دوم با عنصر پنجم(۵=۳+۲) و عنصر سوم با عنصر ششم(۶=۳+۳) مقایسه شده در جای مناسب خود قرار می‌گیرد .
برای انتخاب فاصله در اولین مرحله ، تعداد عناصر لیست بر ۲ تقسیم می‌شود(n/۲) وفاصله بعدی نیز با تقسیم فاصله فعلی بر ۲ حاصل می‌گردد و الگریتم تا زمانی ادامه پیدا می‌کند که این فاصله به صفر برسد.
برای نمونه اگر تعداد عناصر برابر با ۱۰ باشد ، فاصله در مرحله اول برابر با ۵ ، در مرحله دوم برابر با ۲ ور در مرحله سوم برابر با ۱ و در نهایت برابر با صفر خواهد بود .
زمان مرتب سازی shell  از رابطه n       پیروی می‌کند که نسبت به    n^۲  بهبود
خوبی پیدا کرده‌است لذا  سرعت عمل روش مرتب سازی شل از روشهای  انتخابی ، در جی 
و حبابی بیشتر است.
پیاده سازی مرتب سازی شل)) در c++ :

#include

#include

< include

Void shell(int *,char*,int)
Int main()

{

            Char s[۸۰];

            Int gap[۸۰];

           (); Clrscr

           ;(«: Printf(» Enter a string

        ); Gets(s

        )); Shell(gap,s,strlen(s

        ); Printf(«\n the sorted string is : ٪s»,s

            Getch();

            Return ۰;

}

****************************//

Void shell(int gap [], char * item, int count)
{

                Register int I, j,step,k,p;

               ; Char x

                Gap[۰] =count /۲;

                While(gap[k] > ۱)

{

 ++; K

Gap[k]=gap[k-۱]/۲;

}//end of while

For (i= ۰;i<=k;i++)

{

Step=gap[i];

For(j=step;j

{

X=item[j];

P=j-step;

             While(p>=۰ &&  x

{

Item[p+step]=item[p];

P=p-step;

}

Item[p+step]=x;

       }

}

}

[ویرایش] مرتب سازی سریع

(به انگلیسی: Quick Sort)
مرتب سازی سریع (Quick Sort) از جمله روشهای محبوب و با سرعت بالا برای مرتب کردن داده‌ها محسوب می‌شه. این روش هم مثل روش ادغام از تقسیم و حل (Divide and Conqure) برای مرتب کردن داده‌ها استفاده می‌کنه. به این ترتیب که داده‌ها رو به دو قسمت مجزا تقسیم، و با مرتب کردن اونها کل داده‌ها رو مرتب می‌کنه. برای اینکار یکی از داده‌ها (مثلاً داده اول) به عنوان محور انتخاب می‌شه. داده‌ها بر اساس محور طوری چینش می‌شن که همه داده‌های کوچک‌تر از محور سمت چپ و داده‌های بزرگ‌تر یا مساوی اون سمت راستش قرار می‌گیرن. با مرتب کردن دو قسمت به دست اومده کل داده‌ها مرتب می‌شن. در این حالت مثل روش ادغام نیازی به ادغام کردن داده‌ها نیست. چرا که قسمت سمت راست همگی از قسمت سمت چپ کوچک‌تر هستن و بالعکس. مثلاً اعداد صحیح زیر رو در نظر بگیرید:

۵  ۶  ۱  ۹  -۲  ۴  ۵  ۱۵  ۳  ۱  ۴  ۱۰

عدد ۵ رو به عنوان محور در نظر می‌گیریم. داده‌ها به این صورت بازچینی می‌شن:

۱  -۲  ۴  ۳  ۱  ۴  ۵  ۶  ۹  ۵  ۱۵  ۱۰

همونطور که مشاهده می‌کنید اعداد سمت چپ عدد ۵ زیر خط دار همگی از ۵ کوچیکتر و اعداد سمت راست بزرگ‌تر یا مساوی اون هستن.
پیاده سازی مرتب سازی Quick sort)) در c++
تابع partition با دریافت آرایه و حد بالا و پایین تکه‌ای که باید تقسیم بشه عملیات لازم رو انجام می‌ده، و اندیس محل تفکیک رو (محل عدد ۵ در مثال بالا) به عنوان نتیجه بر می‌گردونه.

int partition (int arr[ ] , int low , int high) 

{

 int lb = low + ۱ , rb = high , temp , pivot = arr[ low ] , p; 

 while (lb <= rb)

 {

  while (arr[ lb ] <= pivot && lb <= rb) 

   lb++; 

  while (arr[ rb ] > pivot && lb <= rb) 

   rb--; 

  if (lb < rb) 

  {

   temp = arr[ lb];

   arr[ lb ] = arr[ rb];

   arr[ rb ] = temp;

  }

 }

 (if (rb == high

  p = high; 

else if(rb == low)

  p = low; 

 else

  p = lb – ۱;

 arr[ low ] = arr[ p];

 arr[ p ] = pivot;

 return p;

}
اگه این تابع رو برای مثال بالا استفاده کنیم مقدار ۶ (اندیس ۵ زیرخط دار) برگشت داده می‌شه. با تکرار کردن این عملیات برای دو قسمت به دست اومده (در مثال بالا از اندیس صفر تا ۵ و از اندیس ۷ تا ۱۱) داده‌ها به صورت کامل مرتب می‌شن.
بر اساس گفته‌های بالا تابع مرتب سازی به این صورت خواهد بود:

void quick_sort (int arr[ ] , int low , int high)

{
if (low < high) 

 {

  int p = partition(arr , low , high); 

  quick_sort(arr , low , p – ۱); 

  quick_sort(arr , p + ۱ , high);

 }

}
همونطور که مشاهده می‌کنید این تابع بصورت بازگشتی نوشته شده. در صورتی که بخواید به صورت غیر بازگشتی بنویسید باید از پشته به صورت زیر استفاده کنید:

void quick_sort (int arr[ ] ,int n)

{

 stack st;

 st.push(۰); 

 st.push(n – ۱); 

 int low , p , high; 

 while(! st.isempty())

 {

  high = st.pop();

  low = st.pop();

  p = partition(arr , low , high); 

  if (p > low)

  {

   st.push(low);

   st.push(p – ۱); 

  }

  if (p < high)

 {

   st.push(p + ۱);

   st.push(high);

  }

}

}

[ویرایش] مرتب سازی ادغامی

(به انگلیسی: Merge Sort)
روش مرتب سازی ادغامی از الگوریتم تقسیم و حل (divide-and-conqure) برای مرتب کردن داده‌ها استفاده می‌کنه. در این الگوریتم مساله به چند جزء کوچک‌تر تقسیم می‌شه. هر کدوم از این قسمت‌ها رو به طور مجزا حل کرده ، و با ترکیب اونها به مساله اصلی می‌رسیم. و اما طرح کلی مرتب سازی ادغام:
در این روش داده‌ها به دو قسمت مساوی تقسیم می‌شن. و هر کدوم از این قسمت‌ها - به صورت بازگشتی - مرتب ، و با ادغامشون دادها بصورت کامل مرتب می‌شن.
پیاده سازی مرتب سازی Merge sort)) در c++

void merge_sort (int arr[ ] , int low , int high)

{

 if (low >= high) 
  return;

 int mid = (low + high) / ۲; 

 merge_sort (arr , low , mid);

 merge_sort (arr , mid + ۱ , high); 

 merge_array (arr , low , mid , high); 

}
procedure merge_sort (var arr : array of integer ; l : integer ; h : integer);
var

 m : integer;

begin

 if l >= h then

  exit;

 m := (l + h) div ۲; 

 merge_sort (arr , l , m);

 merge_sort (arr , m + ۱ , h);

 merge_array (arr , l , m , h); 

end;

این توابع اونقدر ساده هستن که نیاز به هیچ توضیحی ندارن. فقط می‌مونه تابع merge_array که دو زیر آرایه رو با هم ادغام می‌کنه.

void merge (int arr[ ] , int low , int mid , int high)
{

 register int i , j , k , t; 

 j = low; 

 for (i = mid + ۱ ; i <= high ; i++)

 {

  while (arr[ j ] <= arr[ i ] && j < i)

   j++; 

  if (j == i)

   break; 

  t = arr[ i]; 

  for (k = i ; k > j ; k--) 

   arr[ k ] = arr[ k – ۱];

  arr[ j ] = t;

 }

}

procedure merge_array (var arr : array of integer ; l : integer ; m : integer ; h : integer); 

var

 i , j , k , t : integer; 

begin

 j := l; 

 for i := m + ۱ to h do

 begin

  while (arr[ j ] <= arr[ i ]) and (j < i) do

   inc (j);

  if j = i then

   break; 

  t := arr[ i];

  for k := i downto j + ۱ do

   arr[ k ] := arr[ k – ۱];

  arr[ j ] := t;

 end; 

End;

تابع merge_array خود آرایه و اندیسهای بالا ، پایین و جداکننده زیر آرایه‌ای رو که باید ادغام بشه دریافت می‌کنه ، و به صورت درجا (بدون استفاده از آرایه کمکی) دو قمست مرتب شده زیر آرایه رو ادغام می‌کنه.

[ویرایش] مرتب سازی درجی

(به انگلیسی: Insertion Sort)
مرتب سازی درجی یکی از روشهای مرتب سازی رایج و البته نه چندان کارا محسوب می‌شه. این روش در مقایسه با مرتب سازی حبابی و انتخابی سرعت بهتری داره و برای مرتب کردن تعداد کمی از عناصر مناسبه. به همین خاطر مراخل انتهایی روش مرتب سازی سریع با کمک گرفتن از این روش انجام می‌گیره.
الگوریتم مرتب سازی درجی بر اساس مرتب سازیهایی که معمولاً خود ما بصورت دستی انجام می‌دیم طراحی شده. فرض کنید دسته کارتی با شماره‌های ۱ تا ۱۰ بصورت نامرتب و کنار هم روی زمین چیده شدن:
۵ ۲ ۹ ۳ ۱ ۱۰ ۴ ۶ ۸ ۷
کارت دوم رو نسبت به کارت اول در جای مناسب خودش قرار می‌دیم:
۲ ۵ ۹ ۳ ۱ ۱۰ ۴ ۶ ۸ ۷
حالا نوبت به کارت سوم می‌رسه. این کارت رو نسبت به دو کارت قبلی در جای مناسب قرار می‌دیم. چون ۹ در مقایسه با ۲ و ۵ جای درستی داره بدون هیچ جابجایی به کارت چهارم می‌رسیم. جای این کارت رو نسبت به سه کارت قبلی مشخص می‌کنیم:
۲ ۳ ۵ ۹ ۱ ۱۰ ۴ ۶ ۸ ۷
و به همین ترتیب تا آخر ادامه می‌دیم.
اگه n تعداد عناصر رو مشخص کنه ، این روش n - ۱ مرحله رو برای مرتب کردن طی می‌کنه. بعد از اتمام مرحله i ام مطمئنا i + ۱ عنصر اول به صورت مرتب شده هستن (قسمتی که زیرشون خط کشیده شده). این مساله یکی از حسنهای مرتب سازی درجی محسوب می‌شه: در هر مرحله حتما قطعه‌ای از عناصر مرتب شذه هستن. مرتب سازی حبابی این ویژگی رو نداره.
پیاده سازی(مرتب سازی درجی) در c++

void insertion_sort (int arr[ ] , int n)

{

  register int i , j , t; 

 (++ for (i = ۱ ; i < n ; i

  }

  ]; t = arr[ i 

   (-- for (j = i ; j > ۰ && arr[ j - ۱ ] >= t ; j

     ; arr[ j ] = arr[ j - ۱] 

    arr[ i ] = t;

  }

}

۷ - مرتب سازی Heep Sort))

یک الگوریتم مرتب سازی در حافظه (RAM) می‌باشد. Heap یک درخت دودویی کامل است با ارتفاع Height = ëlog nû هر گره (node) یک کلید بیشتر ندارد که بزرگ‌تر یا برابر کلید گره پدر (parent) می‌باشد. بصورت یک آرایه (Array) ذخیره می‌شود. برای هر گره (i) فرزندان آن در گره‌های (۲i) و (۲i+۱) ذخیره شده‌اند. پدر هر گره (j) در گره (j/۲) می‌باشد.
الگوریتم Insert در Heap Sort چگونه است؟
۱) رکورد جدید در آخر Heap اضافه می‌شود.
۱) کلید آن با کلید گره پدر مقایسه می‌شود و اگر مقدار آن کوچک‌تر بود محل آن با محل گره پدر تعویض می‌شود.
۱) در صورت لزوم عمل (۲) تا ریشه درخت (Root) ادامه می‌یابد.
الگوریتم Remove در Heap Sort چگونه است؟ ۱) کوچک‌ترین کلید که در گره Root می‌باشد خارج می‌شود. ۲) بزرگ‌ترین کلید (آخرین گره) به گره Root منتقل می‌گردد. ۳) کلید آن با کوچک‌ترین کلید فرزند مقایسه می‌شود و اگر بیشتر بود جای آن دو تعویض می‌شود. ۴) در صورت لزوم عمل (۳) تا آخر Heap تکرار می‌گردد.

[ویرایش] فهرست الگوریتم‌های مرتب‌سازی

در این جدول، n تعداد داده‌ها و k تعداد داده‌ها با کلیدهای متفاوت است. ستون‌های بهترین، میانگین و بدترین، پیچیدگی در هر حالت را نشان می‌دهد و حافظه بیانگر مقدار حافظهٔ کمکی (علاوه بر خود داده‌ها) است.
نام بهترین میانگین بدترین حافظه پایدار مقایسه‌ای روش توضیحات
مرتب سازی حبابی (Bubble sort) (O(n (O(n۲ (O(۱ بله بله جابجایی Times are for best variant
Cocktail sort (O(n (O(n۲ (O(۱ بله بله جابجایی
Comb sort (O(n log n (O(n log n (O(۱ خیر بله جابجایی
Gnome sort (O(n (O(n۲ (O(۱ بله بله جابجایی
Selection sort (O(n۲ (O(n۲ (O(n۲ (O(۱ خیر بله گزینشی
Insertion sort (O(n (O(n۲ (O(۱ بله بله درجی
Shell sort (O(n log n (O(n log۲n (O(۱ خیر بله درجی Times are for best variant
Binary tree sort (O(n log n (O(n log n (O(۱ بله بله درجی
Library sort (O(n (O(n log n (O(n۲ ε+۱)n) بله بله درجی
Merge sort (O(n log n (O(n log n (O(n بله بله Merging
In-place merge sort (O(n log n (O(n log n (O(۱ بله بله Merging Times are for best variant
Heapsort (O(n log n (O(n log n (O(۱ خیر بله گزینشی
Smoothsort (O(n (O(n log n (O(۱ خیر بله گزینشی
Quicksort (O(n log n (O(n log n (O(n۲ (O(n خیر بله Partitioning Naive variants use (O(n space
Introsort (O(n log n (O(n log n (O(n log n (O(n خیر بله Hybrid
Pigeonhole sort (O(n+k (O(n+k (O(k بله خیر Indexing
Bucket sort (O(n (O(n (O(n۲ (O(k بله خیر Indexing
Counting sort (O(n+k (O(n+k (O(n+k بله خیر Indexing
Radix sort (O(nk (O(nk (O(n بله خیر Indexing
Patience sorting (O(n (O(n log n (O(n خیر بله درجی تمام زیر دنباله‌های صعودی را با (O(n log (log(n پیدا می‌کند.
این جدول الگوریتم‌هایی را توضیح می‌دهد که به علت اجرای بسیار ضعیف و یا نیاز به سخت‌افزار خاص، کاربرد زیادی ندارند.
نام بهترین میانگین بدترین حافظه پایدار مقایسه‌ای توضیحات
Bogosort (O(n O(n × n!) بدون حد (O(۱ خیر بله
Stooge sort (O(n۲٫۷۱ (O(n۲٫۷۱ (O(۱ خیر بله
Bead sort (O(n (O(n N/A خیر به سخت‌افزار مخصوص نیاز دارد.
Pancake sorting (O(n (O(n خیر بله به سخت‌افزار مخصوص نیاز دارد.
Sorting networks (O(log n (O(log n بله بله Requires a custom circuit of size (O(log n

[ویرایش] پاورقی

  1. ^ inplace
  2. ^ stability

[ویرایش] منابع